diff --git a/Practica-14.1/EC2/ scripts /install_docker.sh b/Practica-14.1/EC2/ scripts /install_docker.sh new file mode 100644 index 0000000..026484d --- /dev/null +++ b/Practica-14.1/EC2/ scripts /install_docker.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Script de instalación de Docker y Docker Compose +# Referencia: https://docs.docker.com/engine/install/ubuntu/ + +set -x + +# Actualizamos los repositorios +sudo apt-get update + +# Instalamos los paquetes necesarios para que `apt` pueda usar repositorios sobre HTTPS +sudo apt-get install -y \ + ca-certificates \ + curl \ + gnupg \ + lsb-release + +# Añadimos la clave GPG oficial de Docker +sudo mkdir -p /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + +# Añadimos el repositorio oficial de Docker a nuestro sistema +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + +# Actualizamos la lista de paquetes +sudo apt-get update + +# Instalamos la última versión de Docker y Docker Compose +sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + +# Añadimos el usuario actual al grupo docker +sudo usermod -aG docker $USER + +# Habilitamos el servicio de Docker para que se inicie automáticamente al arrancar el sistema +sudo systemctl enable docker + +# Iniciamos el servicio de Docker +sudo systemctl start docker diff --git a/Practica-14.1/EC2/main.tf b/Practica-14.1/EC2/main.tf new file mode 100644 index 0000000..dbc29fd --- /dev/null +++ b/Practica-14.1/EC2/main.tf @@ -0,0 +1,57 @@ +# Configuramos el proveedor de AWS +provider "aws" { + region = var.region +} + +# Creamos el grupo de seguridad +resource "aws_security_group" "sg_wp_prac14" { + name = var.sg_wp_prac14 + description = var.sg_description +} + +# Creamos las reglas de entrada del grupo de seguridad. +# Utilizamos un bucle para recorrer la lista de puertos definida como variable +resource "aws_security_group_rule" "ingress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "ingress" + + count = length(var.allowed_ingress_ports) + from_port = var.allowed_ingress_ports[count.index] + to_port = var.allowed_ingress_ports[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "egress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "egress" + + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] +} + +# Creamos una instancia EC2 +resource "aws_instance" "instancia_ec2_parac_14_1" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_wp_prac14.name] + + # user_data = file("scripts/install_docker.sh") + + tags = { + Name = var.instance_name + } +} + +# Creamos una IP elástica y la asociamos a la instancia +resource "aws_eip" "ip_elastica" { + instance = aws_instance.instancia_ec2_parac_14_1.id +} + +# Mostramos la IP pública de la instancia +output "elastic_ip" { + value = aws_eip.ip_elastica.public_ip +} diff --git a/Practica-14.1/EC2/variables.tf b/Practica-14.1/EC2/variables.tf new file mode 100644 index 0000000..ddb9a2c --- /dev/null +++ b/Practica-14.1/EC2/variables.tf @@ -0,0 +1,47 @@ +variable "region" { + description = "Región de AWS donde se creará la instancia" + type = string + default = "us-east-1" +} + +variable "allowed_ingress_ports" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80, 443, 8080] +} + +variable "sg_wp_prac14" { + description = "Nombre del grupo de seguridad" + type = string + default = "sg_wp_prac14" +} + +variable "sg_description" { + description = "Descripción del grupo de seguridad" + type = string + default = "Grupo de seguridad para la instancia de la practica 14.1" +} + +variable "ami_id" { + description = "Identificador de la AMI" + type = string + default = "ami-00874d747dde814fa" +} + +variable "instance_type" { + description = "Tipo de instancia" + type = string + default = "t2.small" +} + +variable "key_name" { + description = "Nombre de la clave pública" + type = string + default = "vockey" +} + +variable "instance_name" { + description = "Nombre de la instancia" + type = string + default = "EC2-PRAC_14.1-WP" +} \ No newline at end of file diff --git a/Practica-14.1/Install WP/Docker/.env b/Practica-14.1/Install WP/Docker/.env new file mode 100644 index 0000000..b741427 --- /dev/null +++ b/Practica-14.1/Install WP/Docker/.env @@ -0,0 +1,10 @@ +# WordPress environment variables +WORDPRESS_DB_NAME=wp_database +WORDPRESS_DB_USER=wp_user +WORDPRESS_DB_PASSWORD=wp_password + +# MySQL Server environment variables +MYSQL_ROOT_PASSWORD=root + +# Domain WP +DOMAIN=alejandroalsa.ddns.net diff --git a/Practica-14.1/Install WP/Docker/docker-compose.yml b/Practica-14.1/Install WP/Docker/docker-compose.yml new file mode 100644 index 0000000..ac1cbca --- /dev/null +++ b/Practica-14.1/Install WP/Docker/docker-compose.yml @@ -0,0 +1,74 @@ +version: '3' + +services: + wordpress: + image: wordpress + # ports: + # - 80:80 + environment: + - WORDPRESS_DB_HOST=mysql + - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME} + - WORDPRESS_DB_USER=${WORDPRESS_DB_USER} + - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD} + volumes: + - wordpress_data:/var/www/html + depends_on: + - mysql + restart: always + networks: + - nt-frontend + - nt-backend + + mysql: + image: mysql:8.0 + # ports: + # - 3306:3306 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${WORDPRESS_DB_NAME} + - MYSQL_USER=${WORDPRESS_DB_USER} + - MYSQL_PASSWORD=${WORDPRESS_DB_PASSWORD} + volumes: + - mysql_data:/var/lib/mysql + restart: always + networks: + - nt-backend + healthcheck: + test: mysql --user=${WORDPRESS_DB_USER} --password=${WORDPRESS_DB_PASSWORD} -e "SHOW DATABASES;" + interval: 3s + timeout: 3s + retries: 4 + + phpmyadmin: + image: phpmyadmin + ports: + - 8080:80 + environment: + - PMA_ARBITRARY=1 + restart: always + networks: + - nt-frontend + - nt-backend + + https: + image: steveltn/https-portal:1 + ports: + - 80:80 + - 443:443 + environment: + DOMAINS: '${DOMAIN} -> http://wordpress:80' + STAGE: 'production' + restart: always + networks: + - nt-frontend + volumes: + - ssl_certs_data:/var/lib/https-portal + +volumes: + mysql_data: + wordpress_data: + ssl_certs_data: + +networks: + nt-backend: + nt-frontend: diff --git a/Practica-14.1/Install WP/inventory b/Practica-14.1/Install WP/inventory new file mode 100644 index 0000000..871671c --- /dev/null +++ b/Practica-14.1/Install WP/inventory @@ -0,0 +1,7 @@ +[EC2] +3.212.175.226 + +[all:vars] +ansible_user=ubuntu +ansible_ssh_private_key_file=/home/alejandro/Documentos/AWS/vockey.pem +ansible_ssh_common_args='-o StrictHostKeyChecking=accept-new' diff --git a/Practica-14.1/Install WP/main.yml b/Practica-14.1/Install WP/main.yml new file mode 100644 index 0000000..5f3cbcc --- /dev/null +++ b/Practica-14.1/Install WP/main.yml @@ -0,0 +1,3 @@ +--- + - import_playbook: ./playbooks/install_docker.yml + - import_playbook: ./playbooks/deploy_wp.yml diff --git a/Practica-14.1/Install WP/playbooks/deploy_wp.yml b/Practica-14.1/Install WP/playbooks/deploy_wp.yml new file mode 100644 index 0000000..6cb9886 --- /dev/null +++ b/Practica-14.1/Install WP/playbooks/deploy_wp.yml @@ -0,0 +1,17 @@ +--- +- name: Playbook para instalar DOCKER + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + - name: Iniciando el contenedor de WP + community.docker.docker_compose: + project_src: "{{ User.Directory_WP }}" + state: present + files: + - "{{ Docker.File }}" diff --git a/Practica-14.1/Install WP/playbooks/install_docker.yml b/Practica-14.1/Install WP/playbooks/install_docker.yml new file mode 100644 index 0000000..bf88e1c --- /dev/null +++ b/Practica-14.1/Install WP/playbooks/install_docker.yml @@ -0,0 +1,69 @@ +--- +- name: Playbook para instalar DOCKER + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + - name: Actualizando repositorios + ansible.builtin.apt: + update_cache: true + + - name: Instalando Docker + ansible.builtin.apt: + name: "{{ Docker.Package }}" + state: present + + - name: Creando un directorio para Docker Compose + ansible.builtin.file: + path: "{{ Type_Install.User_Home }}" + mode: 0775 + owner: "{{ User.Name_Group }}" + group: "{{ User.Name_Group }}" + state: directory + + - name: Descargando Docker Compose + ansible.builtin.get_url: + url: https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 + dest: "{{ Type_Install.User_Home }}/{{ Compose_File.New_Name }}" + mode: 0775 + owner: "{{ User.Name_Group }}" + group: "{{ User.Name_Group }}" + + - name: Asignando e grupo Docker al usuario + ansible.builtin.user: + name: "{{ User.Name_Group }}" + groups: "{{ Docker.Group }}" + append: true + + - name: Instalando el gestor de paquetes de Python + ansible.builtin.apt: + name: python3-pip + state: present + + - name: Instalando Docker para Python + ansible.builtin.pip: + name: docker + state: present + + - name: Instalando Docker Compose para Python + ansible.builtin.pip: + name: docker-compose + state: present + + - name: Copiando los archivos del Docker Compose al HOST + ansible.builtin.copy: + src: "{{ Compose_File.Local_Files }}" + dest: "{{ User.Directory }}" + owner: ubuntu + group: ubuntu + mode: 0644 + + - name: Reiniciando Docker + ansible.builtin.service: + name: docker + state: restarted diff --git a/Practica-14.1/Install WP/variables/variables.yml b/Practica-14.1/Install WP/variables/variables.yml new file mode 100644 index 0000000..9c112e0 --- /dev/null +++ b/Practica-14.1/Install WP/variables/variables.yml @@ -0,0 +1,18 @@ +User: + Directory: /home/ubuntu/WP-DOCKER-COMPOSE + Directory_WP: /home/ubuntu/WP-DOCKER-COMPOSE/Docker + Name_Group: ubuntu + +Type_Install: + User_Home: /home/ubuntu/.docker/cli-plugins + Multi_User_Directory: /usr/local/lib/docker/cli-plugins + +Compose_File: + New_Name: docker-compose + Local_Files: ../Docker + +Docker: + Package: docker.io + Group: docker + Service: docker.service + File: docker-compose.yml diff --git a/Practica-14.1/README.md b/Practica-14.1/README.md new file mode 100644 index 0000000..88a21b1 --- /dev/null +++ b/Practica-14.1/README.md @@ -0,0 +1,55 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 14.1 + +En esta práctica se realizar la implantación de un sitio WordPress en Amazon Web Services (AWS) haciendo uso de contenedores Docker y la herramienta Docker Compose. + +Las tereas a realizar son: + +* Creacion de una máquina virtual Amazon EC2. +* Instalacion y configuracion de Docker y Docker compose en la máquina virtual. +* Creacion de un archivo docker-compose.yml para poder desplegar los servicios de WordPress, MySQL y phpMyAdmin. Este utilizara las imágenes oficiales de Docker Hub. +* Mostrar la IP pública de la instancia en AWS y comprobar que se puede acceder a los servicios de WordPress y phpMyAdmin desde una navegador web. + +La estructuracion del Directorio es la seiguiente: + +```txt +├── EC2 +│   ├── scripts +│   │   └── install_docker.sh +│   ├── main.tf +│   └── variables.tf +├── Install WP +│   ├── Docker +│   │   └── docker-compose.yml +│   ├── inventory +│   ├── main.yml +│   ├── playbooks +│   │   ├── deploy_wp.yml +│   │   └── install_docker.yml +│   └── variables +│   └── variables.yml +└── README.md +``` + +En la carpeta de EC2 se realiza el despliegue de las maquinas virtuales en EC2 siguiente la estructura indicada + +En la carpera de Install WP se realiza el despliegue de WP segun la estructura indicada + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica-14.2/Ej-PS-BITNAMI/EC2/main.tf b/Practica-14.2/Ej-PS-BITNAMI/EC2/main.tf new file mode 100644 index 0000000..44758fc --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/EC2/main.tf @@ -0,0 +1,57 @@ +# Configuramos el proveedor de AWS +provider "aws" { + region = var.region +} + +# Creamos el grupo de seguridad +resource "aws_security_group" "sg_wp_prac14" { + name = var.sg_wp_prac14 + description = var.sg_description +} + +# Creamos las reglas de entrada del grupo de seguridad. +# Utilizamos un bucle para recorrer la lista de puertos definida como variable +resource "aws_security_group_rule" "ingress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "ingress" + + count = length(var.allowed_ingress_ports) + from_port = var.allowed_ingress_ports[count.index] + to_port = var.allowed_ingress_ports[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "egress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "egress" + + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] +} + +# Creamos una instancia EC2 +resource "aws_instance" "instancia_ec2_parac_14_2" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_wp_prac14.name] + + # user_data = file("scripts/install_docker.sh") + + tags = { + Name = var.instance_name + } +} + +# Creamos una IP elástica y la asociamos a la instancia +resource "aws_eip" "ip_elastica" { + instance = aws_instance.instancia_ec2_parac_14_2.id +} + +# Mostramos la IP pública de la instancia +output "elastic_ip" { + value = aws_eip.ip_elastica.public_ip +} diff --git a/Practica-14.2/Ej-PS-BITNAMI/EC2/variables.tf b/Practica-14.2/Ej-PS-BITNAMI/EC2/variables.tf new file mode 100644 index 0000000..2dfe702 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/EC2/variables.tf @@ -0,0 +1,47 @@ +variable "region" { + description = "Región de AWS donde se creará la instancia" + type = string + default = "us-east-1" +} + +variable "allowed_ingress_ports" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80, 443, 8080] +} + +variable "sg_wp_prac14" { + description = "Nombre del grupo de seguridad" + type = string + default = "sg_wp_prac14" +} + +variable "sg_description" { + description = "Descripción del grupo de seguridad" + type = string + default = "Grupo de seguridad para la instancia de la practica 14.2" +} + +variable "ami_id" { + description = "Identificador de la AMI" + type = string + default = "ami-00874d747dde814fa" +} + +variable "instance_type" { + description = "Tipo de instancia" + type = string + default = "t2.small" +} + +variable "key_name" { + description = "Nombre de la clave pública" + type = string + default = "vockey" +} + +variable "instance_name" { + description = "Nombre de la instancia" + type = string + default = "EC2-PRAC_14.2-WP" +} \ No newline at end of file diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/.env b/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/.env new file mode 100644 index 0000000..a096c88 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/.env @@ -0,0 +1,12 @@ +# Configuración de acceso a la base de datos +MYSQL_ROOT_PASSWORD=password +MYSQL_DATABASE=prestashop_db +MYSQL_USER=prestashop_user +MYSQL_PASSWORD=prestashop_password + +# Configuración de PrestaShop +PS_DOMAIN=alejandroalsa.ddns.net +ADMIN_MAIL=alejandro@alejandroalsa.es +ADMIN_PASSWD=admin_password +PS_FIRST_NAME=Alejandro +PS_LAST_NAME=Alejandroalsa \ No newline at end of file diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/docker-compose.yml b/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/docker-compose.yml new file mode 100644 index 0000000..83ca116 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/Docker/docker-compose.yml @@ -0,0 +1,82 @@ +version: '3.3' + +services: + prestashop: + image: bitnami/prestashop:8.0.1 + environment: + + - PRESTASHOP_DATABASE_HOST=${DB_SERVER:-mysql} + - PRESTASHOP_DATABASE_USER=${MYSQL_USER} + - PRESTASHOP_DATABASE_PASSWORD=${MYSQL_PASSWORD} + - PRESTASHOP_DATABASE_NAME=${MYSQL_DATABASE} + + - PRESTASHOP_FIRST_NAME=${PS_FIRST_NAME} + - PRESTASHOP_LAST_NAME=${PS_LAST_NAME} + - PRESTASHOP_HOST=${PS_DOMAIN} + - PRESTASHOP_ENABLE_HTTPS=${PS_ENABLE_SSL:-1} + - PRESTASHOP_COUNTRY=${PS_COUNTRY:-es} + - PRESTASHOP_LANGUAGE=${PS_LANGUAGE:-es} + - PRESTASHOP_EMAIL=${ADMIN_MAIL} + - PRESTASHOP_PASSWORD=${ADMIN_PASSWD} + + restart: always + volumes: + - prestashop_data:/bitnami/prestashop + depends_on: + - mysql + networks: + - frontend_network + - backend_network + + mysql: + image: mysql:8 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + restart: always + volumes: + - mysql_data:/var/lib/mysql + networks: + - backend_network + security_opt: + - seccomp:unconfined + + phpmyadmin: + image: phpmyadmin:5 + restart: always + ports: + - 8080:80 + environment: + - PMA_HOST=mysql + depends_on: + - mysql + networks: + - frontend_network + - backend_network + + https-portal: + image: steveltn/https-portal:1 + ports: + - 80:80 + - 443:443 + environment: + #DOMAINS: 'localhost -> http://prestashop:8080 #local' + DOMAINS: '${PS_DOMAIN} -> http://prestashop:8080 #production' + volumes: + - ssl_certs_data:/var/lib/https-portal + depends_on: + - prestashop + restart: always + networks: + - frontend_network + +volumes: + prestashop_data: + mysql_data: + ssl_certs_data: + +networks: + frontend_network: + backend_network: diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/inventori b/Practica-14.2/Ej-PS-BITNAMI/Install PS/inventori new file mode 100644 index 0000000..402d6d0 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/inventori @@ -0,0 +1,7 @@ +[EC2] +52.71.74.91 + +[all:vars] +ansible_user=ubuntu +ansible_ssh_private_key_file=/home/alejandro/Documentos/AWS/vockey.pem +ansible_ssh_common_args='-o StrictHostKeyChecking=accept-new' diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/main.yml b/Practica-14.2/Ej-PS-BITNAMI/Install PS/main.yml new file mode 100644 index 0000000..e3f6f8d --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/main.yml @@ -0,0 +1,3 @@ +--- + - import_playbook: ./playbooks/install_docker.yml + - import_playbook: ./playbooks/deploy_ps.yml diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/deploy_ps.yml b/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/deploy_ps.yml new file mode 100644 index 0000000..b1d1852 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/deploy_ps.yml @@ -0,0 +1,17 @@ +--- +- name: Playbook para instalar DOCKER + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + - name: Iniciando el contenedor de PS + community.docker.docker_compose: + project_src: "{{ User.Directory_PS }}" + state: present + files: + - "{{ Docker.File }}" diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/install_docker.yml b/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/install_docker.yml new file mode 100644 index 0000000..eb20eb4 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/playbooks/install_docker.yml @@ -0,0 +1,69 @@ +--- +- name: Playbook para instalar PRESTASHOP + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + - name: Actualizando repositorios + ansible.builtin.apt: + update_cache: true + + - name: Instalando Docker + ansible.builtin.apt: + name: "{{ Docker.Package }}" + state: present + + - name: Creando un directorio para Docker Compose + ansible.builtin.file: + path: "{{ Type_Install.User_Home }}" + mode: 0775 + owner: "{{ User.Name_Group }}" + group: "{{ User.Name_Group }}" + state: directory + + - name: Descargando Docker Compose + ansible.builtin.get_url: + url: https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 + dest: "{{ Type_Install.User_Home }}/{{ Compose_File.New_Name }}" + mode: 0775 + owner: "{{ User.Name_Group }}" + group: "{{ User.Name_Group }}" + + - name: Asignando e grupo Docker al usuario + ansible.builtin.user: + name: "{{ User.Name_Group }}" + groups: "{{ Docker.Group }}" + append: true + + - name: Instalando el gestor de paquetes de Python + ansible.builtin.apt: + name: python3-pip + state: present + + - name: Instalando Docker para Python + ansible.builtin.pip: + name: docker + state: present + + - name: Instalando Docker Compose para Python + ansible.builtin.pip: + name: docker-compose + state: present + + - name: Copiando los archivos del Docker Compose al HOST + ansible.builtin.copy: + src: "{{ Compose_File.Local_Files }}" + dest: "{{ User.Directory }}" + owner: ubuntu + group: ubuntu + mode: 0644 + + - name: Reiniciando Docker + ansible.builtin.service: + name: docker + state: restarted diff --git a/Practica-14.2/Ej-PS-BITNAMI/Install PS/variables/variables.yml b/Practica-14.2/Ej-PS-BITNAMI/Install PS/variables/variables.yml new file mode 100644 index 0000000..c0d5b95 --- /dev/null +++ b/Practica-14.2/Ej-PS-BITNAMI/Install PS/variables/variables.yml @@ -0,0 +1,18 @@ +User: + Directory: /home/ubuntu/PS-DOCKER-COMPOSE + Directory_PS: /home/ubuntu/PS-DOCKER-COMPOSE/Docker + Name_Group: ubuntu + +Type_Install: + User_Home: /home/ubuntu/.docker/cli-plugins + Multi_User_Directory: /usr/local/lib/docker/cli-plugins + +Compose_File: + New_Name: docker-compose + Local_Files: ../Docker + +Docker: + Package: docker.io + Group: docker + Service: docker.service + File: docker-compose.yml diff --git a/Practica-14.2/Ej-PS/EC2/main.tf b/Practica-14.2/Ej-PS/EC2/main.tf new file mode 100644 index 0000000..44758fc --- /dev/null +++ b/Practica-14.2/Ej-PS/EC2/main.tf @@ -0,0 +1,57 @@ +# Configuramos el proveedor de AWS +provider "aws" { + region = var.region +} + +# Creamos el grupo de seguridad +resource "aws_security_group" "sg_wp_prac14" { + name = var.sg_wp_prac14 + description = var.sg_description +} + +# Creamos las reglas de entrada del grupo de seguridad. +# Utilizamos un bucle para recorrer la lista de puertos definida como variable +resource "aws_security_group_rule" "ingress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "ingress" + + count = length(var.allowed_ingress_ports) + from_port = var.allowed_ingress_ports[count.index] + to_port = var.allowed_ingress_ports[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "egress" { + security_group_id = aws_security_group.sg_wp_prac14.id + type = "egress" + + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] +} + +# Creamos una instancia EC2 +resource "aws_instance" "instancia_ec2_parac_14_2" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_wp_prac14.name] + + # user_data = file("scripts/install_docker.sh") + + tags = { + Name = var.instance_name + } +} + +# Creamos una IP elástica y la asociamos a la instancia +resource "aws_eip" "ip_elastica" { + instance = aws_instance.instancia_ec2_parac_14_2.id +} + +# Mostramos la IP pública de la instancia +output "elastic_ip" { + value = aws_eip.ip_elastica.public_ip +} diff --git a/Practica-14.2/Ej-PS/EC2/variables.tf b/Practica-14.2/Ej-PS/EC2/variables.tf new file mode 100644 index 0000000..2dfe702 --- /dev/null +++ b/Practica-14.2/Ej-PS/EC2/variables.tf @@ -0,0 +1,47 @@ +variable "region" { + description = "Región de AWS donde se creará la instancia" + type = string + default = "us-east-1" +} + +variable "allowed_ingress_ports" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80, 443, 8080] +} + +variable "sg_wp_prac14" { + description = "Nombre del grupo de seguridad" + type = string + default = "sg_wp_prac14" +} + +variable "sg_description" { + description = "Descripción del grupo de seguridad" + type = string + default = "Grupo de seguridad para la instancia de la practica 14.2" +} + +variable "ami_id" { + description = "Identificador de la AMI" + type = string + default = "ami-00874d747dde814fa" +} + +variable "instance_type" { + description = "Tipo de instancia" + type = string + default = "t2.small" +} + +variable "key_name" { + description = "Nombre de la clave pública" + type = string + default = "vockey" +} + +variable "instance_name" { + description = "Nombre de la instancia" + type = string + default = "EC2-PRAC_14.2-WP" +} \ No newline at end of file diff --git a/Practica-14.2/Ej-PS/Install PS/Docker/.env b/Practica-14.2/Ej-PS/Install PS/Docker/.env new file mode 100644 index 0000000..ed93ff8 --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/Docker/.env @@ -0,0 +1,11 @@ +# Configuración de acceso a la base de datos +MYSQL_ROOT_PASSWORD=password +MYSQL_DATABASE=prestashop_db +MYSQL_USER=prestashop_user +MYSQL_PASSWORD=prestashop_password + +# Configuración de PrestaShop +PS_DOMAIN=alejandroalsaps.ddns.net +#PS_DOMAIN=iaw-test.ddns.net +ADMIN_MAIL=alejandroa@alejandroalsa.es +ADMIN_PASSWD=admin_password diff --git a/Practica-14.2/Ej-PS/Install PS/Docker/docker-compose.yml b/Practica-14.2/Ej-PS/Install PS/Docker/docker-compose.yml new file mode 100644 index 0000000..ae2d13e --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/Docker/docker-compose.yml @@ -0,0 +1,80 @@ +version: '3.3' + +services: + prestashop: + image: prestashop/prestashop:1.7 + environment: + - PS_INSTALL_AUTO=${PS_INSTALL_AUTO:-1} + - DB_SERVER=${DB_SERVER:-mysql} + - DB_USER=${MYSQL_USER} + - DB_PASSWD=${MYSQL_PASSWORD} + - DB_NAME=${MYSQL_DATABASE} + - PS_DOMAIN=${PS_DOMAIN} + - PS_ENABLE_SSL=${PS_ENABLE_SSL:-1} + - PS_FOLDER_INSTALL=${PS_FOLDER_INSTALL:-install-dev} + - PS_FOLDER_ADMIN=${PS_FOLDER_ADMIN:-admin-dev} + - PS_COUNTRY=${PS_COUNTRY:-es} + - PS_LANGUAGE=${PS_LANGUAGE:-es} + - ADMIN_MAIL=${ADMIN_MAIL} + - ADMIN_PASSWD=${ADMIN_PASSWD} + restart: always + volumes: + - prestashop_data:/var/www/html + depends_on: + - mysql + networks: + - frontend_network + - backend_network + + mysql: + image: mysql:8 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + restart: always + volumes: + - mysql_data:/var/lib/mysql + networks: + - backend_network + security_opt: + - seccomp:unconfined + + phpmyadmin: + image: phpmyadmin:5 + restart: always + ports: + - 8080:80 + environment: + - PMA_HOST=mysql + depends_on: + - mysql + networks: + - frontend_network + - backend_network + + https-portal: + image: steveltn/https-portal:1 + ports: + - 80:80 + - 443:443 + environment: + #DOMAINS: 'localhost -> http://prestashop:80 #local' + DOMAINS: 'alejandroalsaps.ddns.net -> http://prestashop:80 #production' + volumes: + - ssl_certs_data:/var/lib/https-portal + depends_on: + - prestashop + restart: always + networks: + - frontend_network + +volumes: + prestashop_data: + mysql_data: + ssl_certs_data: + +networks: + frontend_network: + backend_network: diff --git a/Practica-14.2/Ej-PS/Install PS/inventory b/Practica-14.2/Ej-PS/Install PS/inventory new file mode 100644 index 0000000..0caf8f4 --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/inventory @@ -0,0 +1,7 @@ +[EC2] +3.225.88.4 + +[all:vars] +ansible_user=ubuntu +ansible_ssh_private_key_file=/home/alejandro/Documentos/AWS/vockey.pem +ansible_ssh_common_args='-o StrictHostKeyChecking=accept-new' diff --git a/Practica-14.2/Ej-PS/Install PS/main.yml b/Practica-14.2/Ej-PS/Install PS/main.yml new file mode 100644 index 0000000..e3f6f8d --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/main.yml @@ -0,0 +1,3 @@ +--- + - import_playbook: ./playbooks/install_docker.yml + - import_playbook: ./playbooks/deploy_ps.yml diff --git a/Practica-14.2/Ej-PS/Install PS/playbooks/deploy_ps.yml b/Practica-14.2/Ej-PS/Install PS/playbooks/deploy_ps.yml new file mode 100644 index 0000000..b1d1852 --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/playbooks/deploy_ps.yml @@ -0,0 +1,17 @@ +--- +- name: Playbook para instalar DOCKER + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + - name: Iniciando el contenedor de PS + community.docker.docker_compose: + project_src: "{{ User.Directory_PS }}" + state: present + files: + - "{{ Docker.File }}" diff --git a/Practica-14.2/Ej-PS/Install PS/playbooks/install_docker.yml b/Practica-14.2/Ej-PS/Install PS/playbooks/install_docker.yml new file mode 100644 index 0000000..53103c5 --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/playbooks/install_docker.yml @@ -0,0 +1,69 @@ +--- +- name: Playbook para instalar PRESTASHOP + hosts: EC2 + become: true + + tasks: + + - name: Variables de Configuracion + ansible.builtin.include_vars: + ../variables/variables.yml + + # - name: Actualizando repositorios + # ansible.builtin.apt: + # update_cache: true + + # - name: Instalando Docker + # ansible.builtin.apt: + # name: "{{ Docker.Package }}" + # state: present + + # - name: Creando un directorio para Docker Compose + # ansible.builtin.file: + # path: "{{ Type_Install.User_Home }}" + # mode: 0775 + # owner: "{{ User.Name_Group }}" + # group: "{{ User.Name_Group }}" + # state: directory + + # - name: Descargando Docker Compose + # ansible.builtin.get_url: + # url: https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 + # dest: "{{ Type_Install.User_Home }}/{{ Compose_File.New_Name }}" + # mode: 0775 + # owner: "{{ User.Name_Group }}" + # group: "{{ User.Name_Group }}" + + # - name: Asignando e grupo Docker al usuario + # ansible.builtin.user: + # name: "{{ User.Name_Group }}" + # groups: "{{ Docker.Group }}" + # append: true + + # - name: Instalando el gestor de paquetes de Python + # ansible.builtin.apt: + # name: python3-pip + # state: present + + # - name: Instalando Docker para Python + # ansible.builtin.pip: + # name: docker + # state: present + + # - name: Instalando Docker Compose para Python + # ansible.builtin.pip: + # name: docker-compose + # state: present + + - name: Copiando los archivos del Docker Compose al HOST + ansible.builtin.copy: + src: "{{ Compose_File.Local_Files }}" + dest: "{{ User.Directory }}" + owner: ubuntu + group: ubuntu + mode: 0644 + + - name: Reiniciando Docker + ansible.builtin.service: + name: docker + state: restarted diff --git a/Practica-14.2/Ej-PS/Install PS/variables/variables.yml b/Practica-14.2/Ej-PS/Install PS/variables/variables.yml new file mode 100644 index 0000000..c0d5b95 --- /dev/null +++ b/Practica-14.2/Ej-PS/Install PS/variables/variables.yml @@ -0,0 +1,18 @@ +User: + Directory: /home/ubuntu/PS-DOCKER-COMPOSE + Directory_PS: /home/ubuntu/PS-DOCKER-COMPOSE/Docker + Name_Group: ubuntu + +Type_Install: + User_Home: /home/ubuntu/.docker/cli-plugins + Multi_User_Directory: /usr/local/lib/docker/cli-plugins + +Compose_File: + New_Name: docker-compose + Local_Files: ../Docker + +Docker: + Package: docker.io + Group: docker + Service: docker.service + File: docker-compose.yml diff --git a/Practica-14.2/README.md b/Practica-14.2/README.md new file mode 100644 index 0000000..5687d58 --- /dev/null +++ b/Practica-14.2/README.md @@ -0,0 +1,69 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 14.1 + +En esta práctica realizaremos la implantación de un sitio PrestaShop en Amazon Web Services (AWS) haciendo uso de contenedores Docker y la herramienta Docker Compose. + +Las tereas a realizar son: + +* Creacion de una máquina virtual Amazon EC2. Para evitar posibles problemas con el instalador de PrestaShop le otrogaremos la la MV al menos 2 GB de memoria RAM. +* Instalacion y configuracion de Docker y Docker compose en la máquina virtual. +* Creacion de un archivo docker-compose.yml para poder desplegar los servicios de PrestaShop, MySQL y phpMyAdmin. Utilizando las imágenes oficiales de Docker Hub. La imagen de PrestaShop que utilizaremos es la de Bitnami (bitnami/prestashop). +* Mostrar la IP pública de la instancia en AWS y comprobar que se puede acceder a los servicios de PrestaShop y phpMyAdmin desde una navegador web. +* Añadir el servicio https-portal para poder acceder al servicio de PrestaShop a través de un nombre de dominio por HTTPS. + +La estructuracion del Directorio es la seiguiente: + +```txt +├── Ej-PS +│   ├── EC2 +│   │   ├── main.tf +│   │   └── variables.tf +│   └── Install PS +│   ├── Docker +│   │   └── docker-compose.yml +│   ├── inventory +│   ├── main.yml +│   ├── playbooks +│   │   ├── deploy_ps.yml +│   │   └── install_docker.yml +│   └── variables +│   └── variables.yml +├── Ej-PS-BITNAMI +│   ├── EC2 +│   │   ├── main.tf +│   │   └── variables.tf +│   └── Install PS +│   ├── Docker +│   │   └── docker-compose.yml +│   ├── inventori +│   ├── main.yml +│   ├── playbooks +│   │   ├── deploy_ps.yml +│   │   └── install_docker.yml +│   └── variables +│   └── variables.yml +└── README.md +``` + +En la carpeta de Ej-PS se realiza el despliegue de las maquinas virtuales en EC2 siguiendo la estructura indicada y el despliegue de PS en base a las imagenes oficiales + +En la carpera de Ej-PS-BITNAMI las tereas son las mismas, la uno diferencia es que en esta utilizaremos las imagenes de BITNAMI como indica la estructura. + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica-14.4/Dockerfile b/Practica-14.4/Dockerfile new file mode 100644 index 0000000..d8e34c6 --- /dev/null +++ b/Practica-14.4/Dockerfile @@ -0,0 +1,19 @@ +# Selccionamos la imagen base +FROM nginx + +# Definimos el directorio de trabajo +WORKDIR /usr/share/nginx/html/ + +# Instalamos GIT +RUN apt update \ + && apt install git -y + +# Descargamos el codigo del juego 2048 +RUN git clone https://github.com/josejuansanchez/2048.git \ + && mv 2048/* . + +# Indicamos el puerto de NGIX +EXPOSE 80 + +# Indicamos el comando que se ejecuta al crear el contenedor +ENTRYPOINT [ "nginx", "-g", "daemon off;" ] diff --git a/Practica-14.4/README.md b/Practica-14.4/README.md new file mode 100644 index 0000000..40ce244 --- /dev/null +++ b/Practica-14.4/README.md @@ -0,0 +1,51 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 14.4 + +En esta práctica crearemos un archivo Dockerfile para crear una imagen Docker que contenga una aplicación web estática. Posteriormente la publicaremos en Docker Hub y realizaremos la implantación del sitio web en Amazon Web Services (AWS) haciendo uso de contenedores Docker y de la herramienta Docker Compose. + +La estructuracion del Dockerfile es la seiguiente: + +```dockerfile +FROM nginx +WORKDIR /usr/share/nginx/html/ +RUN apt update \ + && apt install git -y +RUN git clone https://github.com/josejuansanchez/2048.git \ + && mv 2048/* . +EXPOSE 80 +ENTRYPOINT [ "nginx", "-g", "daemon off;" ] +``` + +* `FROM nginx` Selccionamos la imagen base +* `WORKDIR /usr/share/nginx/html/` Definimos el directorio de trabajo +* `RUN apt update \ && apt install git -y` Instalamos GIT +* `RUN git clone https://github.com/josejuansanchez/2048.git \ && mv 2048/* .` Descargamos el codigo del juego 2048 +* `EXPOSE 80` Indicamos el puerto de NGIX +* `ENTRYPOINT [ "nginx", "-g", "daemon off;" ]` Indicamos el comando que se ejecuta al crear el contenedor + +Enlace al [DockerHub](https://hub.docker.com/r/diwes/2048) + +Docker Pull Command: + +```bash +docker pull diwes/2048 +``` + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica-14.5/.env b/Practica-14.5/.env new file mode 100644 index 0000000..747ce30 --- /dev/null +++ b/Practica-14.5/.env @@ -0,0 +1,5 @@ +# Configuración de acceso a la base de datos +MYSQL_ROOT_PASSWORD=time_control_roor_password +MYSQL_DATABASE=time_control +MYSQL_USER=time_control_user +MYSQL_PASSWORD=time_control_user_password diff --git a/Practica-14.5/apache/Dockerfile b/Practica-14.5/apache/Dockerfile new file mode 100644 index 0000000..0f68085 --- /dev/null +++ b/Practica-14.5/apache/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Madrid + +RUN apt-get update \ + && apt-get install -y apache2 \ + && apt-get install -y php \ + && apt-get install -y libapache2-mod-php \ + && apt-get install -y php-mysql \ + && rm -rf /var/lib/apt/lists/* + +ENV APACHE_RUN_USER www-data +ENV APACHE_RUN_GROUP www-data +ENV APACHE_LOG_DIR /var/log/apache2 + +EXPOSE 80 + +ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] \ No newline at end of file diff --git a/Practica-14.5/db/database.sql b/Practica-14.5/db/database.sql new file mode 100644 index 0000000..51bbc12 --- /dev/null +++ b/Practica-14.5/db/database.sql @@ -0,0 +1,41 @@ +DROP DATABASE IF EXISTS time_control; + +CREATE DATABASE time_control; + +USE time_control; + +CREATE TABLE users ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_name VARCHAR(255) DEFAULT NULL, + user_surname VARCHAR(255) DEFAULT NULL, + user_phone_number VARCHAR(255) DEFAULT NULL, + user_id_business VARCHAR(255) DEFAULT NULL, + registration_date_user TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + user_email VARCHAR(255) UNIQUE DEFAULT NULL, + user_working INT DEFAULT NULL, + user_password VARCHAR(255) DEFAULT NULL, + user_rol VARCHAR(255) DEFAULT NULL, + accept_terms VARCHAR(255) DEFAULT NULL +); + +CREATE TABLE records ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_id INT NOT NULL, + entry_hour DATETIME NULL DEFAULT NULL, + exit_hour DATETIME NULL DEFAULT NULL, + total_hours TIME DEFAULT NULL, + total_seconds INT(255) DEFAULT NULL, + total_remuneration DECIMAL(5,2) DEFAULT NULL, + + FOREIGN KEY (user_id) REFERENCES users(id) +); + + +CREATE TABLE remuneration ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_id INT NOT NULL, + hourly_pay DECIMAL(5,2) DEFAULT NULL, + total_remuneration DECIMAL(5,5) DEFAULT NULL, + + FOREIGN KEY (user_id) REFERENCES users(id) +); diff --git a/Practica-14.5/docker-compose.yml b/Practica-14.5/docker-compose.yml new file mode 100644 index 0000000..e023c56 --- /dev/null +++ b/Practica-14.5/docker-compose.yml @@ -0,0 +1,35 @@ +version: '3' + +services: + apache: + build: ./apache + ports: + - 80:80 + volumes: + - ./src:/var/www/html + + mysql: + image: mysql:8.0 + command: --default-authentication-plugin=mysql_native_password + ports: + - 3306:3306 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - mysql_data:/var/lib/mysql + - ./db:/docker-entrypoint-initdb.d + + phpmyadmin: + image: phpmyadmin:5 + ports: + - 8080:80 + environment: + - PMA_HOST=mysql + depends_on: + - mysql + +volumes: + mysql_data: diff --git a/Practica-14.5/src/actions/cap-admin/cap_admin.php b/Practica-14.5/src/actions/cap-admin/cap_admin.php new file mode 100644 index 0000000..94b73ad --- /dev/null +++ b/Practica-14.5/src/actions/cap-admin/cap_admin.php @@ -0,0 +1,6 @@ +query("SELECT user_rol FROM users WHERE id = {$_SESSION['user']['id']}"); + $admin->execute(); + $user_admin = $admin->fetch(PDO::FETCH_ASSOC); +?> diff --git a/Practica-14.5/src/actions/conection/db-conection.php b/Practica-14.5/src/actions/conection/db-conection.php new file mode 100644 index 0000000..03b6096 --- /dev/null +++ b/Practica-14.5/src/actions/conection/db-conection.php @@ -0,0 +1,21 @@ +query("SHOW DATABASES") as $row) { + // print_r($row); + // } + // die(); +} catch (PDOException $e) { + die("PDO Connection Error: " .$e->getMessage()); +} diff --git a/Practica-14.5/src/actions/login.php b/Practica-14.5/src/actions/login.php new file mode 100644 index 0000000..b170276 --- /dev/null +++ b/Practica-14.5/src/actions/login.php @@ -0,0 +1,47 @@ +prepare("SELECT * FROM users WHERE user_email = :user_email LIMIT 1"); + $statement->bindParam(":user_email", $_POST["user_email"]); + $statement->execute(); + + // Declaramos una condición, en dicha condición declaramos que si el email no es igual a 0 lo que en este caso que las los emails coincidan, enviara el error. + if ($statement->rowCount() == 0) { + $error = "Email o Contraseña incorrectos"; + } else { + $user = $statement->fetch(PDO::FETCH_ASSOC); + + // En este paso comprobamos que la contraseña introducida por el usuario corresponda al email introducido en el paso anterior. + if (!password_verify($_POST["user_password"], $user["user_password"])) { + $error = "Email o Contraseña incorrectos"; + } else { + + // Despues de hacer todas las comprovaciones iniciamos la Sesión y redirigimos a "home.php" + session_start(); + unset($user["user_password"]); + $_SESSION["user"] = $user; + header("Location: /sections/common/home.php"); + } + } + } + } +?> diff --git a/Practica-14.5/src/actions/logout.php b/Practica-14.5/src/actions/logout.php new file mode 100644 index 0000000..cc7dfb0 --- /dev/null +++ b/Practica-14.5/src/actions/logout.php @@ -0,0 +1,8 @@ + diff --git a/Practica-14.5/src/actions/register.php b/Practica-14.5/src/actions/register.php new file mode 100644 index 0000000..14de9e5 --- /dev/null +++ b/Practica-14.5/src/actions/register.php @@ -0,0 +1,85 @@ +prepare("SELECT * FROM users WHERE user_email = :user_email"); + $statement->bindParam(":user_email", $_POST["user_email"]); + $statement->execute(); + + // Declaramos una condición, en dicha condición declaramos que si el email es mayor que 0 lo que significaría que el email ya está registrado, enviara el error. + if ($statement->rowCount() > 0) { + $error = "Este email ya está registrado"; + } else{ + + //Después de validar que el email introducido no esté ya registrado, comprobamos que el ID de Empresa introducido no esté ya registrado con la variable "con" + $statement = $con->prepare("SELECT * FROM users WHERE user_id_business = :user_id_business"); + $statement->bindParam(":user_id_business", $_POST["user_id_business"]); + $statement->execute(); + + // Declaramos una condición, en dicha condición declaramos que si el ID de Empresa es mayor que 0 lo que significaría que el ID de Empresa ya está registrado, enviara el error. + if ($statement->rowCount() > 0) { + $error = "Este ID de Empresa ya está registrado"; + } else{ + + //Después de validar todos los datos, preparamos la sentencia SQL para introducir los datos enviados por el usuario + $con + ->prepare("INSERT INTO users (user_name, user_surname, user_email, user_phone_number, user_id_business, user_password, registration_date_user, user_working, user_rol, accept_terms) VALUES (:user_name, :user_surname, :user_email, :user_phone_number, :user_id_business, :user_password, :registration_date_user, :user_working, :user_rol, :accept_terms)") + ->execute([ + ":user_name" => $_POST["user_name"], + ":user_surname" => $_POST["user_surname"], + ":user_email" => $_POST["user_email"], + ":user_phone_number" => $_POST["user_phone_number"], + ":user_id_business" => $_POST["user_id_business"], + ":user_working" => 0, + ":user_rol" => "Usuario", + ":registration_date_user" => $registration_date_user, + ":user_password" => password_hash($_POST["user_password"], PASSWORD_BCRYPT), + ":accept_terms" => $_POST["accept_terms"], + ]); + + $user_id = $con->lastInsertId(); + + $con + ->prepare("INSERT INTO remuneration (user_id, hourly_pay) VALUES (:user_id, :hourly_pay)") + ->execute([ + ":user_id" => $user_id, + ":hourly_pay" => 0, + ]); + + // Definimos una consulta SQL para darle un valor LIMIT al "user_mail" para que así no se pueda repetir y evitar que un usuario introduzca el mismo email + $statement = $con->prepare("SELECT * FROM users WHERE user_email = :user_email LIMIT 1"); + $statement->bindParam(":user_email", $_POST["user_email"]); + $statement->execute(); + $user = $statement->fetch(PDO::FETCH_ASSOC); + + // Despues de hacer todas las comprovaciones iniciamos la Sesión y redirigimos a "home.php" + session_start(); + $_SESSION["user"] = $user; + header("Location: /sections/common/home.php"); + } + } + } + } +?> diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/COMMITMENT b/Practica-14.5/src/actions/send-email/PHPMailer/COMMITMENT new file mode 100644 index 0000000..a687e0d --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/COMMITMENT @@ -0,0 +1,46 @@ +GPL Cooperation Commitment +Version 1.0 + +Before filing or continuing to prosecute any legal proceeding or claim +(other than a Defensive Action) arising from termination of a Covered +License, we commit to extend to the person or entity ('you') accused +of violating the Covered License the following provisions regarding +cure and reinstatement, taken from GPL version 3. As used here, the +term 'this License' refers to the specific Covered License being +enforced. + + 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. + +We intend this Commitment to be irrevocable, and binding and +enforceable against us and assignees of or successors to our +copyrights. + +Definitions + +'Covered License' means the GNU General Public License, version 2 +(GPLv2), the GNU Lesser General Public License, version 2.1 +(LGPLv2.1), or the GNU Library General Public License, version 2 +(LGPLv2), all as published by the Free Software Foundation. + +'Defensive Action' means a legal proceeding or claim that We bring +against you in response to a prior proceeding or claim initiated by +you or your affiliate. + +'We' means each contributor to this repository as of the date of +inclusion of this file, including subsidiaries of a corporate +contributor. + +This work is available under a Creative Commons Attribution-ShareAlike +4.0 International license (https://creativecommons.org/licenses/by-sa/4.0/). diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/LICENSE b/Practica-14.5/src/actions/send-email/PHPMailer/LICENSE new file mode 100644 index 0000000..f166cc5 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! \ No newline at end of file diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/README.md b/Practica-14.5/src/actions/send-email/PHPMailer/README.md new file mode 100644 index 0000000..81b0897 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/README.md @@ -0,0 +1,227 @@ +![PHPMailer](https://raw.github.com/PHPMailer/PHPMailer/master/examples/images/phpmailer.png) + +# PHPMailer – A full-featured email creation and transfer class for PHP + +[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions) +[![codecov.io](https://codecov.io/gh/PHPMailer/PHPMailer/branch/master/graph/badge.svg?token=iORZpwmYmM)](https://codecov.io/gh/PHPMailer/PHPMailer) +[![Latest Stable Version](https://poser.pugx.org/phpmailer/phpmailer/v/stable.svg)](https://packagist.org/packages/phpmailer/phpmailer) +[![Total Downloads](https://poser.pugx.org/phpmailer/phpmailer/downloads)](https://packagist.org/packages/phpmailer/phpmailer) +[![License](https://poser.pugx.org/phpmailer/phpmailer/license.svg)](https://packagist.org/packages/phpmailer/phpmailer) +[![API Docs](https://github.com/phpmailer/phpmailer/workflows/Docs/badge.svg)](https://phpmailer.github.io/PHPMailer/) + +## Features +- Probably the world's most popular code for sending email from PHP! +- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more +- Integrated SMTP support – send without a local mail server +- Send emails with multiple To, CC, BCC and Reply-to addresses +- Multipart/alternative emails for mail clients that do not read HTML email +- Add attachments, including inline +- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings +- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports +- Validates email addresses automatically +- Protects against header injection attacks +- Error messages in over 50 languages! +- DKIM and S/MIME signing support +- Compatible with PHP 5.5 and later, including PHP 8.1 +- Namespaced to prevent name clashes +- Much more! + +## Why you might need it +Many PHP developers need to send email from their code. The only PHP function that supports this directly is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments. + +Formatting email correctly is surprisingly difficult. There are myriad overlapping (and conflicting) standards, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong, if not unsafe! + +The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP client allows email sending on all platforms without needing a local mail server. Be aware though, that the `mail()` function should be avoided when possible; it's both faster and [safer](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html) to use SMTP to localhost. + +*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that +you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/) +, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc. + +## License +This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read [LICENSE](https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE) for information on the software availability and distribution. + +## Installation & loading +PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file: + +```json +"phpmailer/phpmailer": "^6.5" +``` + +or run + +```sh +composer require phpmailer/phpmailer +``` + +Note that the `vendor` folder and the `vendor/autoload.php` script are generated by Composer; they are not part of PHPMailer. + +If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`. + +Alternatively, if you're not using Composer, you +can [download PHPMailer as a zip file](https://github.com/PHPMailer/PHPMailer/archive/master.zip), (note that docs and examples are not included in the zip file), then copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually: + +```php +SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output + $mail->isSMTP(); //Send using SMTP + $mail->Host = 'smtp.example.com'; //Set the SMTP server to send through + $mail->SMTPAuth = true; //Enable SMTP authentication + $mail->Username = 'user@example.com'; //SMTP username + $mail->Password = 'secret'; //SMTP password + $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption + $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` + + //Recipients + $mail->setFrom('from@example.com', 'Mailer'); + $mail->addAddress('joe@example.net', 'Joe User'); //Add a recipient + $mail->addAddress('ellen@example.com'); //Name is optional + $mail->addReplyTo('info@example.com', 'Information'); + $mail->addCC('cc@example.com'); + $mail->addBCC('bcc@example.com'); + + //Attachments + $mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments + $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name + + //Content + $mail->isHTML(true); //Set email format to HTML + $mail->Subject = 'Here is the subject'; + $mail->Body = 'This is the HTML message body in bold!'; + $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; + + $mail->send(); + echo 'Message has been sent'; +} catch (Exception $e) { + echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; +} +``` + +You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through gmail, building contact forms, sending to mailing lists, and more. + +If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance. + +That's it. You should now be ready to use PHPMailer! + +## Localization +PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this: + +```php +//To load the French version +$mail->setLanguage('fr', '/optional/path/to/language/directory/'); +``` + +We welcome corrections and new languages – if you're looking for corrections, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations. + +## Documentation +Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, head for [the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting) as it's frequently updated. + +Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps). + +To reduce PHPMailer's deployed code footprint, examples are not included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly. + +Complete generated API documentation is [available online](https://phpmailer.github.io/PHPMailer/). + +You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good reference for how to do various operations such as encryption. + +If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). + +## Tests +[PHPMailer tests](https://github.com/PHPMailer/PHPMailer/tree/master/test/) use PHPUnit 9, with [a polyfill](https://github.com/Yoast/PHPUnit-Polyfills) to let 9-style tests run on older PHPUnit and PHP versions. + +[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions) + +If this isn't passing, is there something you can do to help? + +## Security +Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately. + +See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) and [PHPMailer's security advisories on GitHub](https://github.com/PHPMailer/PHPMailer/security). + +## Contributing +Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues). + +We're particularly interested in fixing edge-cases, expanding test coverage and updating translations. + +If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it. + +If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone: + +```sh +git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git +``` + +Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained. + +## Sponsorship +Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), the world's only privacy-first email marketing system. + +Smartmessages.net privacy-first email marketing logo + +Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to PHPMailer's maintainers and contributors – just click the "Sponsor" button [on the project page](https://github.com/PHPMailer/PHPMailer). If your company uses PHPMailer, consider taking part in Tidelift's enterprise support programme. + +## PHPMailer For Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of PHPMailer and thousands of other packages are working with Tidelift to deliver commercial +support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and +improve code health, while paying the maintainers of the exact packages you +use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-phpmailer-phpmailer?utm_source=packagist-phpmailer-phpmailer&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Changelog +See [changelog](changelog.md). + +## History +- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/). +- [Marcus Bointon](https://github.com/Synchro) (`coolbru` on SF) and Andy Prevost (`codeworxtech`) took over the project in 2004. +- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski. +- Marcus created [his fork on GitHub](https://github.com/Synchro/PHPMailer) in 2008. +- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013. +- PHPMailer moves to [the PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013. + +### What's changed since moving from SourceForge? +- Official successor to the SourceForge and Google Code projects. +- Test suite. +- Continuous integration with Github Actions. +- Composer support. +- Public development. +- Additional languages and language strings. +- CRAM-MD5 authentication support. +- Preserves full repo history of authors, commits and branches from the original SourceForge project. diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/SECURITY.md b/Practica-14.5/src/actions/send-email/PHPMailer/SECURITY.md new file mode 100644 index 0000000..035a87f --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/SECURITY.md @@ -0,0 +1,37 @@ +# Security notices relating to PHPMailer + +Please disclose any security issues or vulnerabilities found through [Tidelift's coordinated disclosure system](https://tidelift.com/security) or to the maintainers privately. + +PHPMailer 6.4.1 and earlier contain a vulnerability that can result in untrusted code being called (if such code is injected into the host project's scope by other means). If the `$patternselect` parameter to `validateAddress()` is set to `'php'` (the default, defined by `PHPMailer::$validator`), and the global namespace contains a function called `php`, it will be called in preference to the built-in validator of the same name. Mitigated in PHPMailer 6.5.0 by denying the use of simple strings as validator function names. Recorded as [CVE-2021-3603](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-3603). Reported by [Vikrant Singh Chauhan](mailto:vi@hackberry.xyz) via [huntr.dev](https://www.huntr.dev/). + +PHPMailer versions 6.4.1 and earlier contain a possible remote code execution vulnerability through the `$lang_path` parameter of the `setLanguage()` method. If the `$lang_path` parameter is passed unfiltered from user input, it can be set to [a UNC path](https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#unc-paths), and if an attacker is also able to persuade the server to load a file from that UNC path, a script file under their control may be executed. This vulnerability only applies to systems that resolve UNC paths, typically only Microsoft Windows. +PHPMailer 6.5.0 mitigates this by no longer treating translation files as PHP code, but by parsing their text content directly. This approach avoids the possibility of executing unknown code while retaining backward compatibility. This isn't ideal, so the current translation format is deprecated and will be replaced in the next major release. Recorded as [CVE-2021-34551](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-34551). Reported by [Jilin Diting Information Technology Co., Ltd](https://listensec.com) via Tidelift. + +PHPMailer versions between 6.1.8 and 6.4.0 contain a regression of the earlier CVE-2018-19296 object injection vulnerability as a result of [a fix for Windows UNC paths in 6.1.8](https://github.com/PHPMailer/PHPMailer/commit/e2e07a355ee8ff36aba21d0242c5950c56e4c6f9). Recorded as [CVE-2020-36326](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36326). Reported by Fariskhi Vidyan via Tidelift. 6.4.1 fixes this issue, and also enforces stricter checks for URL schemes in local path contexts. + +PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security. + +PHPMailer versions prior to 6.0.6 and 5.2.27 are vulnerable to an object injection attack by passing `phar://` paths into `addAttachment()` and other functions that may receive unfiltered local paths, possibly leading to RCE. Recorded as [CVE-2018-19296](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-19296). See [this article](https://knasmueller.net/5-answers-about-php-phar-exploitation) for more info on this type of vulnerability. Mitigated by blocking the use of paths containing URL-protocol style prefixes such as `phar://`. Reported by Sehun Oh of cyberone.kr. + +PHPMailer versions prior to 5.2.24 (released July 26th 2017) have an XSS vulnerability in one of the code examples, [CVE-2017-11503](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-11503). The `code_generator.phps` example did not filter user input prior to output. This file is distributed with a `.phps` extension, so it it not normally executable unless it is explicitly renamed, and the file is not included when PHPMailer is loaded through composer, so it is safe by default. There was also an undisclosed potential XSS vulnerability in the default exception handler (unused by default). Patches for both issues kindly provided by Patrick Monnerat of the Fedora Project. + +PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity. + +PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer). + +PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html). + +PHPMailer versions prior to 5.2.14 (released November 2015) are vulnerable to [CVE-2015-8476](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8476) an SMTP CRLF injection bug permitting arbitrary message sending. + +PHPMailer versions prior to 5.2.10 (released May 2015) are vulnerable to [CVE-2008-5619](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-5619), a remote code execution vulnerability in the bundled html2text library. This file was removed in 5.2.10, so if you are using a version prior to that and make use of the html2text function, it's vitally important that you upgrade and remove this file. + +PHPMailer versions prior to 2.0.7 and 2.2.1 are vulnerable to [CVE-2012-0796](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0796), an email header injection attack. + +Joomla 1.6.0 uses PHPMailer in an unsafe way, allowing it to reveal local file paths, reported in [CVE-2011-3747](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-3747). + +PHPMailer didn't sanitise the `$lang_path` parameter in `SetLanguage`. This wasn't a problem in itself, but some apps (PHPClassifieds, ATutor) also failed to sanitise user-provided parameters passed to it, permitting semi-arbitrary local file inclusion, reported in [CVE-2010-4914](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4914), [CVE-2007-2021](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2021) and [CVE-2006-5734](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2006-5734). + +PHPMailer 1.7.2 and earlier contained a possible DDoS vulnerability reported in [CVE-2005-1807](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-1807). + +PHPMailer 1.7 and earlier (June 2003) have a possible vulnerability in the `SendmailSend` method where shell commands may not be sanitised. Reported in [CVE-2007-3215](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-3215). + diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/VERSION b/Practica-14.5/src/actions/send-email/PHPMailer/VERSION new file mode 100644 index 0000000..a45cc0a --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/VERSION @@ -0,0 +1 @@ +6.6.3 \ No newline at end of file diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/composer.json b/Practica-14.5/src/actions/send-email/PHPMailer/composer.json new file mode 100644 index 0000000..1db6f03 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/composer.json @@ -0,0 +1,76 @@ +{ + "name": "phpmailer/phpmailer", + "type": "library", + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, + "require": { + "php": ">=5.5.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.2", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.6.2", + "yoast/phpunit-polyfills": "^1.0.0" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "PHPMailer\\Test\\": "test/" + } + }, + "license": "LGPL-2.1-only", + "scripts": { + "check": "./vendor/bin/phpcs", + "test": "./vendor/bin/phpunit --no-coverage", + "coverage": "./vendor/bin/phpunit", + "lint": [ + "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . --show-deprecated -e php,phps --exclude vendor --exclude .git --exclude build" + ] + } +} diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/get_oauth_token.php b/Practica-14.5/src/actions/send-email/PHPMailer/get_oauth_token.php new file mode 100644 index 0000000..ba66f6c --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/get_oauth_token.php @@ -0,0 +1,162 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +/** + * Get an OAuth2 token from an OAuth2 provider. + * * Install this script on your server so that it's accessible + * as [https/http]:////get_oauth_token.php + * e.g.: http://localhost/phpmailer/get_oauth_token.php + * * Ensure dependencies are installed with 'composer install' + * * Set up an app in your Google/Yahoo/Microsoft account + * * Set the script address as the app's redirect URL + * If no refresh token is obtained when running this file, + * revoke access to your app and run the script again. + */ + +namespace PHPMailer\PHPMailer; + +/** + * Aliases for League Provider Classes + * Make sure you have added these to your composer.json and run `composer install` + * Plenty to choose from here: + * @see http://oauth2-client.thephpleague.com/providers/thirdparty/ + */ +//@see https://github.com/thephpleague/oauth2-google +use League\OAuth2\Client\Provider\Google; +//@see https://packagist.org/packages/hayageek/oauth2-yahoo +use Hayageek\OAuth2\Client\Provider\Yahoo; +//@see https://github.com/stevenmaguire/oauth2-microsoft +use Stevenmaguire\OAuth2\Client\Provider\Microsoft; + +if (!isset($_GET['code']) && !isset($_POST['provider'])) { + ?> + + +
+

Select Provider

+ +
+ +
+ +
+

Enter id and secret

+

These details are obtained by setting up an app in your provider's developer console. +

+

ClientId:

+

ClientSecret:

+ +
+ + + $clientId, + 'clientSecret' => $clientSecret, + 'redirectUri' => $redirectUri, + 'accessType' => 'offline' +]; + +$options = []; +$provider = null; + +switch ($providerName) { + case 'Google': + $provider = new Google($params); + $options = [ + 'scope' => [ + 'https://mail.google.com/' + ] + ]; + break; + case 'Yahoo': + $provider = new Yahoo($params); + break; + case 'Microsoft': + $provider = new Microsoft($params); + $options = [ + 'scope' => [ + 'wl.imap', + 'wl.offline_access' + ] + ]; + break; +} + +if (null === $provider) { + exit('Provider missing'); +} + +if (!isset($_GET['code'])) { + //If we don't have an authorization code then get one + $authUrl = $provider->getAuthorizationUrl($options); + $_SESSION['oauth2state'] = $provider->getState(); + header('Location: ' . $authUrl); + exit; + //Check given state against previously stored one to mitigate CSRF attack +} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { + unset($_SESSION['oauth2state']); + unset($_SESSION['provider']); + exit('Invalid state'); +} else { + unset($_SESSION['provider']); + //Try to get an access token (using the authorization code grant) + $token = $provider->getAccessToken( + 'authorization_code', + [ + 'code' => $_GET['code'] + ] + ); + //Use this to interact with an API on the users behalf + //Use this to get a new access token if the old one expires + echo 'Refresh Token: ', $token->getRefreshToken(); +} diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-af.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-af.php new file mode 100644 index 0000000..0b2a72d --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-af.php @@ -0,0 +1,26 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; +$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; +$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; +$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; +$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; +$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; +$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; +$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; +$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; +$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; +$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية فشل في الارسال لكل من : '; +$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; +$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; +$PHPMAILER_LANG['extension_missing'] = 'الإضافة غير موجودة: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-az.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-az.php new file mode 100644 index 0000000..552167e --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-az.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP greška: '; +$PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-be.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-be.php new file mode 100644 index 0000000..9e92dda --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-be.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; +$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; +$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; +$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; +$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; +$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; +$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; +$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; +$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; +$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; +$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; +$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; +$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; +$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-bg.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-bg.php new file mode 100644 index 0000000..c41f675 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-bg.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; +$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; +$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; +$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; +$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; +$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; +$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; +$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; +$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; +$PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; +$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; +$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ca.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ca.php new file mode 100644 index 0000000..3468485 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ca.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; +$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; +$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; +$PHPMAILER_LANG['execute'] = 'No es pot executar: '; +$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; +$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; +$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; +$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; +$PHPMAILER_LANG['signing'] = 'Error al signar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-cs.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-cs.php new file mode 100644 index 0000000..e770a1a --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-cs.php @@ -0,0 +1,28 @@ + + * Rewrite and extension of the work by Mikael Stokkebro + * + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.'; +$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold'; +$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: '; +$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: '; +$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; +$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; +$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.'; +$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; +$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfejl: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: '; +$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: '; +$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-de.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-de.php new file mode 100644 index 0000000..e7e59d2 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-de.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.'; +$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; +$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; +$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; +$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; +$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Error al firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-et.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-et.php new file mode 100644 index 0000000..93addc9 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-et.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; +$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; +$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; +$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; +$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; +$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; +$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; +$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; +$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; +$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; +$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; +$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; +$PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fa.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fa.php new file mode 100644 index 0000000..295a47f --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fa.php @@ -0,0 +1,28 @@ + + * @author Mohammad Hossein Mojtahedi + */ + +$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; +$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: داده‌ها نا‌درست هستند.'; +$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; +$PHPMAILER_LANG['encoding'] = 'کد‌گذاری نا‌شناخته: '; +$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; +$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; +$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; +$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; +$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; +$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمی‌شود.'; +$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; +$PHPMAILER_LANG['signing'] = 'خطا در امضا: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; +$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیر‌ها وجود ندارد: '; +$PHPMAILER_LANG['extension_missing'] = 'افزونه موجود نیست: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fi.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fi.php new file mode 100644 index 0000000..243c054 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fi.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; +$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; +$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; +$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; +$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; +$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; +$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fr.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fr.php new file mode 100644 index 0000000..38a7a8e --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-fr.php @@ -0,0 +1,38 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; +$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; +$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; +$PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; +$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; +$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-he.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-he.php new file mode 100644 index 0000000..b123aa5 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-he.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; +$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; +$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; +$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: '; +$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; +$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; +$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; +$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; +$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; +$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; +$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hi.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hi.php new file mode 100644 index 0000000..d973a35 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hi.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; +$PHPMAILER_LANG['connect_host'] = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; +$PHPMAILER_LANG['empty_message'] = 'संदेश खाली है। '; +$PHPMAILER_LANG['encoding'] = 'अज्ञात एन्कोडिंग प्रकार। '; +$PHPMAILER_LANG['execute'] = 'आदेश को निष्पादित करने में विफल। '; +$PHPMAILER_LANG['file_access'] = 'फ़ाइल उपलब्ध नहीं है। '; +$PHPMAILER_LANG['file_open'] = 'फ़ाइल त्रुटि: फाइल को खोला नहीं जा सका। '; +$PHPMAILER_LANG['from_failed'] = 'प्रेषक का पता गलत है। '; +$PHPMAILER_LANG['instantiate'] = 'मेल फ़ंक्शन कॉल नहीं कर सकता है।'; +$PHPMAILER_LANG['invalid_address'] = 'पता गलत है। '; +$PHPMAILER_LANG['mailer_not_supported'] = 'मेल सर्वर के साथ काम नहीं करता है। '; +$PHPMAILER_LANG['provide_address'] = 'आपको कम से कम एक प्राप्तकर्ता का ई-मेल पता प्रदान करना होगा।'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP त्रुटि: निम्न प्राप्तकर्ताओं को पते भेजने में विफल। '; +$PHPMAILER_LANG['signing'] = 'साइनअप त्रुटि:। '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP का connect () फ़ंक्शन विफल हुआ। '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP सर्वर त्रुटि। '; +$PHPMAILER_LANG['variable_set'] = 'चर को बना या संशोधित नहीं किया जा सकता। '; +$PHPMAILER_LANG['extension_missing'] = 'एक्सटेन्षन गायब है: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hr.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hr.php new file mode 100644 index 0000000..cacb6c3 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hr.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; +$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hu.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hu.php new file mode 100644 index 0000000..e6b58b0 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-hu.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; +$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; +$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; +$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; +$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; +$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; +$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; +$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; +$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; +$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; +$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; +$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; +$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-id.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-id.php new file mode 100644 index 0000000..212a11f --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-id.php @@ -0,0 +1,31 @@ + + * @author @januridp + * @author Ian Mustafa + */ + +$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.'; +$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima.'; +$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong'; +$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses: '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas: '; +$PHPMAILER_LANG['file_open'] = 'Kesalahan Berkas: Berkas tidak dapat dibuka: '; +$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan: '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel.'; +$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak sesuai: '; +$PHPMAILER_LANG['invalid_hostentry'] = 'Gagal terkirim, entri host tidak sesuai: '; +$PHPMAILER_LANG['invalid_host'] = 'Gagal terkirim, host tidak sesuai: '; +$PHPMAILER_LANG['provide_address'] = 'Harus tersedia minimal satu alamat tujuan'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung'; +$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: '; +$PHPMAILER_LANG['signing'] = 'Kesalahan dalam penandatangan SSL: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Ekstensi PHP tidak tersedia: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-it.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-it.php new file mode 100644 index 0000000..08a6b73 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-it.php @@ -0,0 +1,28 @@ + + * @author Stefano Sabatini + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.'; +$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto'; +$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: '; +$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; +$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; +$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; +$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; +$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: '; +$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; +$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: '; +$PHPMAILER_LANG['signing'] = 'Errore nella firma: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.'; +$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: '; +$PHPMAILER_LANG['extension_missing'] = 'Estensione mancante: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ja.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ja.php new file mode 100644 index 0000000..c76f526 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ja.php @@ -0,0 +1,29 @@ + + * @author Yoshi Sakai + * @author Arisophy + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; +$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; +$PHPMAILER_LANG['empty_message'] = 'メール本文が空です。'; +$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; +$PHPMAILER_LANG['execute'] = '実行できませんでした: '; +$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; +$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; +$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; +$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; +$PHPMAILER_LANG['invalid_address'] = '不正なメールアドレス: '; +$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; +$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; +$PHPMAILER_LANG['signing'] = '署名エラー: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP接続に失敗しました。'; +$PHPMAILER_LANG['smtp_error'] = 'SMTPサーバーエラー: '; +$PHPMAILER_LANG['variable_set'] = '変数が存在しません: '; +$PHPMAILER_LANG['extension_missing'] = '拡張機能が見つかりません: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ka.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ka.php new file mode 100644 index 0000000..51fe403 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ka.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.'; +$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: '; +$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: '; +$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: '; +$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: '; +$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: '; +$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.'; +$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: '; +$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია'; +$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: '; +$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: '; +$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: '; +$PHPMAILER_LANG['extension_missing'] = 'ბიბლიოთეკა არ არსებობს: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ko.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ko.php new file mode 100644 index 0000000..8c97dd9 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ko.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; +$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; +$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; +$PHPMAILER_LANG['execute'] = '실행 불가: '; +$PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; +$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; +$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; +$PHPMAILER_LANG['invalid_address'] = '잘못된 주소: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; +$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['signing'] = '서명 오류: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; +$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; +$PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lt.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lt.php new file mode 100644 index 0000000..4f115b1 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lt.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; +$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; +$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; +$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; +$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; +$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; +$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; +$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; +$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; +$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; +$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; +$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lv.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lv.php new file mode 100644 index 0000000..679b18c --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-lv.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; +$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; +$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; +$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; +$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; +$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; +$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; +$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; +$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; +$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; +$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; +$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mg.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mg.php new file mode 100644 index 0000000..8a94f6a --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mg.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.'; +$PHPMAILER_LANG['empty_message'] = 'Tsy misy ny votoaty mailaka.'; +$PHPMAILER_LANG['encoding'] = 'Tsy fantatra encoding: '; +$PHPMAILER_LANG['execute'] = 'Tsy afaka manatanteraka ity baiko manaraka ity: '; +$PHPMAILER_LANG['file_access'] = 'Tsy nahomby ny fidirana amin\'ity rakitra ity: '; +$PHPMAILER_LANG['file_open'] = 'Hadisoana diso: Tsy afaka nanokatra ity file manaraka ity: '; +$PHPMAILER_LANG['from_failed'] = 'Ny adiresy iraka manaraka dia diso: '; +$PHPMAILER_LANG['instantiate'] = 'Tsy afaka nanomboka ny hetsika mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Tsy mety ny adiresy: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tsy manohana.'; +$PHPMAILER_LANG['provide_address'] = 'Alefaso azafady iray adiresy iray farafahakeliny.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Tsy mety ireo mpanaraka ireto: '; +$PHPMAILER_LANG['signing'] = 'Error nandritra ny sonia:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Tsy nahomby ny fifandraisana tamin\'ny server SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'Fahadisoana tamin\'ny server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tsy azo atao ny mametraka na mamerina ny variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Tsy hita ny ampahany: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mn.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mn.php new file mode 100644 index 0000000..04d262c --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-mn.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; +$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; +$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; +$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; +$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; +$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; +$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; +$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; +$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; +$PHPMAILER_LANG['extension_missing'] = 'Sambungan hilang: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-nb.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-nb.php new file mode 100644 index 0000000..65793ce --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-nb.php @@ -0,0 +1,26 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; +$PHPMAILER_LANG['buggy_php'] = 'PHP versie gededecteerd die onderhavig is aan een bug die kan resulteren in gecorrumpeerde berichten. Om dit te voorkomen, gebruik SMTP voor het verzenden van berichten, zet de mail.add_x_header optie in uw php.ini file uit, gebruik MacOS of Linux, of pas de gebruikte PHP versie aan naar versie 7.0.17+ or 7.1.3+.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; +$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; +$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; +$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: '; +$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; +$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; +$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; +$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; +$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: '; +$PHPMAILER_LANG['invalid_header'] = 'Ongeldige header naam of waarde'; +$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: '; +$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; +$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; +$PHPMAILER_LANG['signing'] = 'Signeerfout: '; +$PHPMAILER_LANG['smtp_code'] = 'SMTP code: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Aanvullende SMTP informatie: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; +$PHPMAILER_LANG['smtp_detail'] = 'Detail: '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; +$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pl.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pl.php new file mode 100644 index 0000000..23caa71 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pl.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.'; +$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: '; +$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: '; +$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: '; +$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão em falta: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pt_br.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pt_br.php new file mode 100644 index 0000000..5239865 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-pt_br.php @@ -0,0 +1,38 @@ + + * @author Lucas Guimarães + * @author Phelipe Alves + * @author Fabio Beneditto + * @author Geidson Benício Coelho + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.'; +$PHPMAILER_LANG['buggy_php'] = 'Sua versão do PHP é afetada por um bug que por resultar em messagens corrompidas. Para corrigir, mude para enviar usando SMTP, desative a opção mail.add_x_header em seu php.ini, mude para MacOS ou Linux, ou atualize seu PHP para versão 7.0.17+ ou 7.1.3+ '; +$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: '; +$PHPMAILER_LANG['invalid_header'] = 'Nome ou valor de cabeçalho inválido'; +$PHPMAILER_LANG['invalid_hostentry'] = 'hostentry inválido: '; +$PHPMAILER_LANG['invalid_host'] = 'host inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: '; +$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_code'] = 'Código do servidor SMTP: '; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Informações adicionais do servidor SMTP: '; +$PHPMAILER_LANG['smtp_detail'] = 'Detalhes do servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ro.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ro.php new file mode 100644 index 0000000..45bef91 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-ro.php @@ -0,0 +1,33 @@ + + * @author Foster Snowhill + */ + +$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; +$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.'; +$PHPMAILER_LANG['encoding'] = 'Неизвестная кодировка: '; +$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: '; +$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: '; +$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удаётся открыть файл: '; +$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: '; +$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail().'; +$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один email-адрес получателя.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: не удалась отправка таким адресатам: '; +$PHPMAILER_LANG['empty_message'] = 'Пустое сообщение'; +$PHPMAILER_LANG['invalid_address'] = 'Не отправлено из-за неправильного формата email-адреса: '; +$PHPMAILER_LANG['signing'] = 'Ошибка подписи: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или сбросить переменную: '; +$PHPMAILER_LANG['extension_missing'] = 'Расширение отсутствует: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sk.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sk.php new file mode 100644 index 0000000..028f5bc --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sk.php @@ -0,0 +1,30 @@ + + * @author Peter Orlický + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; +$PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; +$PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; +$PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; +$PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; +$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; +$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; +$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; +$PHPMAILER_LANG['invalid_hostentry'] = 'Záznam hostiteľa je nesprávny: '; +$PHPMAILER_LANG['invalid_host'] = 'Hostiteľ je nesprávny: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; +$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; +$PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; +$PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; +$PHPMAILER_LANG['extension_missing'] = 'Chýba rozšírenie: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sl.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sl.php new file mode 100644 index 0000000..3e00c25 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sl.php @@ -0,0 +1,36 @@ + + * @author Filip Š + * @author Blaž Oražem + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.'; +$PHPMAILER_LANG['buggy_php'] = 'Na vašo PHP različico vpliva napaka, ki lahko povzroči poškodovana sporočila. Če želite težavo odpraviti, preklopite na pošiljanje prek SMTP, onemogočite možnost mail.add_x_header v vaši php.ini datoteki, preklopite na MacOS ali Linux, ali nadgradite vašo PHP zaličico na 7.0.17+ ali 7.1.3+.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Vzpostavljanje povezave s SMTP gostiteljem ni uspelo.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.'; +$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: '; +$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: '; +$PHPMAILER_LANG['extension_missing'] = 'Manjkajoča razširitev: '; +$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: '; +$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: '; +$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: '; +$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.'; +$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: '; +$PHPMAILER_LANG['invalid_header'] = 'Neveljavno ime ali vrednost glave'; +$PHPMAILER_LANG['invalid_hostentry'] = 'Neveljaven vnos gostitelja: '; +$PHPMAILER_LANG['invalid_host'] = 'Neveljaven gostitelj: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; +$PHPMAILER_LANG['provide_address'] = 'Prosimo, vnesite vsaj enega naslovnika.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; +$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: '; +$PHPMAILER_LANG['smtp_code'] = 'SMTP koda: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Dodatne informacije o SMTP: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; +$PHPMAILER_LANG['smtp_detail'] = 'Podrobnosti: '; +$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: '; +$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr.php new file mode 100644 index 0000000..0b5280f --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr.php @@ -0,0 +1,28 @@ + + * @author Miloš Milanović + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; +$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; +$PHPMAILER_LANG['encoding'] = 'Непознато кодирање: '; +$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; +$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; +$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; +$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; +$PHPMAILER_LANG['invalid_address'] = 'Порука није послата. Неисправна адреса: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; +$PHPMAILER_LANG['provide_address'] = 'Дефинишите бар једну адресу примаоца.'; +$PHPMAILER_LANG['signing'] = 'Грешка приликом пријаве: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Није могуће задати нити ресетовати променљиву: '; +$PHPMAILER_LANG['extension_missing'] = 'Недостаје проширење: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr_latn.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr_latn.php new file mode 100644 index 0000000..6213832 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sr_latn.php @@ -0,0 +1,28 @@ + + * @author Miloš Milanović + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP greška: autentifikacija nije uspela.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP greška: povezivanje sa SMTP serverom nije uspelo.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP greška: podaci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznato kodiranje: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP greška: slanje sa sledećih adresa nije uspelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP greška: slanje na sledeće adrese nije uspelo: '; +$PHPMAILER_LANG['instantiate'] = 'Nije moguće pokrenuti mail funkciju.'; +$PHPMAILER_LANG['invalid_address'] = 'Poruka nije poslata. Neispravna adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' majler nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definišite bar jednu adresu primaoca.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Povezivanje sa SMTP serverom nije uspelo.'; +$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP servera: '; +$PHPMAILER_LANG['variable_set'] = 'Nije moguće zadati niti resetovati promenljivu: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sv.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sv.php new file mode 100644 index 0000000..9872c19 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-sv.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; +$PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; +$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; +$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; +$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; +$PHPMAILER_LANG['invalid_address'] = 'Felaktig adress: '; +$PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() misslyckades.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serverfel: '; +$PHPMAILER_LANG['variable_set'] = 'Kunde inte definiera eller återställa variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Tillägg ej tillgängligt: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tl.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tl.php new file mode 100644 index 0000000..d15bed1 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tl.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi naitanggap.'; +$PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe'; +$PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: '; +$PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: '; +$PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Hindi mabuksan ang file: '; +$PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: '; +$PHPMAILER_LANG['instantiate'] = 'Hindi maisimulan ang instance ng mail function.'; +$PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: '; +$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: '; +$PHPMAILER_LANG['signing'] = 'Hindi ma-sign: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo.'; +$PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo: '; +$PHPMAILER_LANG['variable_set'] = 'Hindi matatakda o ma-reset ang mga variables: '; +$PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tr.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tr.php new file mode 100644 index 0000000..f938f80 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-tr.php @@ -0,0 +1,31 @@ + + * @fixed by Boris Yurchenko + */ + +$PHPMAILER_LANG['authenticate'] = 'Помилка SMTP: помилка авторизації.'; +$PHPMAILER_LANG['connect_host'] = 'Помилка SMTP: не вдається під\'єднатися до SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Помилка SMTP: дані не прийнято.'; +$PHPMAILER_LANG['encoding'] = 'Невідоме кодування: '; +$PHPMAILER_LANG['execute'] = 'Неможливо виконати команду: '; +$PHPMAILER_LANG['file_access'] = 'Немає доступу до файлу: '; +$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: '; +$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: '; +$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().'; +$PHPMAILER_LANG['provide_address'] = 'Будь ласка, введіть хоча б одну email-адресу отримувача.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.'; +$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: '; +$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення'; +$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через неправильний формат email-адреси: '; +$PHPMAILER_LANG['signing'] = 'Помилка підпису: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Неможливо встановити або скинути змінну: '; +$PHPMAILER_LANG['extension_missing'] = 'Розширення відсутнє: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-vi.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-vi.php new file mode 100644 index 0000000..d65576e --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-vi.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; +$PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; +$PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; +$PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; +$PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; +$PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; +$PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; +$PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; +$PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; +$PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; +$PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; +$PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; +$PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; +$PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; +$PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh.php new file mode 100644 index 0000000..35e4e70 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh.php @@ -0,0 +1,29 @@ + + * @author Peter Dave Hello <@PeterDaveHello/> + * @author Jason Chiang + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; +$PHPMAILER_LANG['empty_message'] = '郵件內容為空'; +$PHPMAILER_LANG['encoding'] = '未知編碼: '; +$PHPMAILER_LANG['execute'] = '無法執行:'; +$PHPMAILER_LANG['file_access'] = '無法存取檔案:'; +$PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; +$PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; +$PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; +$PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; +$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; +$PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; +$PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; +$PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; +$PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh_cn.php b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh_cn.php new file mode 100644 index 0000000..728a499 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/language/phpmailer.lang-zh_cn.php @@ -0,0 +1,29 @@ + + * @author young + * @author Teddysun + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; +$PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; +$PHPMAILER_LANG['encoding'] = '未知编码:'; +$PHPMAILER_LANG['execute'] = '无法执行:'; +$PHPMAILER_LANG['file_access'] = '无法访问文件:'; +$PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; +$PHPMAILER_LANG['from_failed'] = '发送地址错误:'; +$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; +$PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:'; +$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; +$PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; +$PHPMAILER_LANG['signing'] = '登录失败:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错:'; +$PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; +$PHPMAILER_LANG['extension_missing'] = '丢失模块 Extension:'; diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/src/Exception.php b/Practica-14.5/src/actions/send-email/PHPMailer/src/Exception.php new file mode 100644 index 0000000..52eaf95 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/src/Exception.php @@ -0,0 +1,40 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer exception handler. + * + * @author Marcus Bointon + */ +class Exception extends \Exception +{ + /** + * Prettify error message output. + * + * @return string + */ + public function errorMessage() + { + return '' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "
\n"; + } +} diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuth.php b/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuth.php new file mode 100644 index 0000000..c1d5b77 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuth.php @@ -0,0 +1,139 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +use League\OAuth2\Client\Grant\RefreshToken; +use League\OAuth2\Client\Provider\AbstractProvider; +use League\OAuth2\Client\Token\AccessToken; + +/** + * OAuth - OAuth2 authentication wrapper class. + * Uses the oauth2-client package from the League of Extraordinary Packages. + * + * @see http://oauth2-client.thephpleague.com + * + * @author Marcus Bointon (Synchro/coolbru) + */ +class OAuth implements OAuthTokenProvider +{ + /** + * An instance of the League OAuth Client Provider. + * + * @var AbstractProvider + */ + protected $provider; + + /** + * The current OAuth access token. + * + * @var AccessToken + */ + protected $oauthToken; + + /** + * The user's email address, usually used as the login ID + * and also the from address when sending email. + * + * @var string + */ + protected $oauthUserEmail = ''; + + /** + * The client secret, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientSecret = ''; + + /** + * The client ID, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientId = ''; + + /** + * The refresh token, used to obtain new AccessTokens. + * + * @var string + */ + protected $oauthRefreshToken = ''; + + /** + * OAuth constructor. + * + * @param array $options Associative array containing + * `provider`, `userName`, `clientSecret`, `clientId` and `refreshToken` elements + */ + public function __construct($options) + { + $this->provider = $options['provider']; + $this->oauthUserEmail = $options['userName']; + $this->oauthClientSecret = $options['clientSecret']; + $this->oauthClientId = $options['clientId']; + $this->oauthRefreshToken = $options['refreshToken']; + } + + /** + * Get a new RefreshToken. + * + * @return RefreshToken + */ + protected function getGrant() + { + return new RefreshToken(); + } + + /** + * Get a new AccessToken. + * + * @return AccessToken + */ + protected function getToken() + { + return $this->provider->getAccessToken( + $this->getGrant(), + ['refresh_token' => $this->oauthRefreshToken] + ); + } + + /** + * Generate a base64-encoded OAuth token. + * + * @return string + */ + public function getOauth64() + { + //Get a new token if it's not available or has expired + if (null === $this->oauthToken || $this->oauthToken->hasExpired()) { + $this->oauthToken = $this->getToken(); + } + + return base64_encode( + 'user=' . + $this->oauthUserEmail . + "\001auth=Bearer " . + $this->oauthToken . + "\001\001" + ); + } +} diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuthTokenProvider.php b/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuthTokenProvider.php new file mode 100644 index 0000000..1155507 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/src/OAuthTokenProvider.php @@ -0,0 +1,44 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * OAuthTokenProvider - OAuth2 token provider interface. + * Provides base64 encoded OAuth2 auth strings for SMTP authentication. + * + * @see OAuth + * @see SMTP::authenticate() + * + * @author Peter Scopes (pdscopes) + * @author Marcus Bointon (Synchro/coolbru) + */ +interface OAuthTokenProvider +{ + /** + * Generate a base64-encoded OAuth token ensuring that the access token has not expired. + * The string to be base 64 encoded should be in the form: + * "user=\001auth=Bearer \001\001" + * + * @return string + */ + public function getOauth64(); +} diff --git a/Practica-14.5/src/actions/send-email/PHPMailer/src/PHPMailer.php b/Practica-14.5/src/actions/send-email/PHPMailer/src/PHPMailer.php new file mode 100644 index 0000000..7d8eb39 --- /dev/null +++ b/Practica-14.5/src/actions/send-email/PHPMailer/src/PHPMailer.php @@ -0,0 +1,5078 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer - PHP email creation and transport class. + * + * @author Marcus Bointon (Synchro/coolbru) + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + */ +class PHPMailer +{ + const CHARSET_ASCII = 'us-ascii'; + const CHARSET_ISO88591 = 'iso-8859-1'; + const CHARSET_UTF8 = 'utf-8'; + + const CONTENT_TYPE_PLAINTEXT = 'text/plain'; + const CONTENT_TYPE_TEXT_CALENDAR = 'text/calendar'; + const CONTENT_TYPE_TEXT_HTML = 'text/html'; + const CONTENT_TYPE_MULTIPART_ALTERNATIVE = 'multipart/alternative'; + const CONTENT_TYPE_MULTIPART_MIXED = 'multipart/mixed'; + const CONTENT_TYPE_MULTIPART_RELATED = 'multipart/related'; + + const ENCODING_7BIT = '7bit'; + const ENCODING_8BIT = '8bit'; + const ENCODING_BASE64 = 'base64'; + const ENCODING_BINARY = 'binary'; + const ENCODING_QUOTED_PRINTABLE = 'quoted-printable'; + + const ENCRYPTION_STARTTLS = 'tls'; + const ENCRYPTION_SMTPS = 'ssl'; + + const ICAL_METHOD_REQUEST = 'REQUEST'; + const ICAL_METHOD_PUBLISH = 'PUBLISH'; + const ICAL_METHOD_REPLY = 'REPLY'; + const ICAL_METHOD_ADD = 'ADD'; + const ICAL_METHOD_CANCEL = 'CANCEL'; + const ICAL_METHOD_REFRESH = 'REFRESH'; + const ICAL_METHOD_COUNTER = 'COUNTER'; + const ICAL_METHOD_DECLINECOUNTER = 'DECLINECOUNTER'; + + /** + * Email priority. + * Options: null (default), 1 = High, 3 = Normal, 5 = low. + * When null, the header is not set at all. + * + * @var int|null + */ + public $Priority; + + /** + * The character set of the message. + * + * @var string + */ + public $CharSet = self::CHARSET_ISO88591; + + /** + * The MIME Content-type of the message. + * + * @var string + */ + public $ContentType = self::CONTENT_TYPE_PLAINTEXT; + + /** + * The message encoding. + * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". + * + * @var string + */ + public $Encoding = self::ENCODING_8BIT; + + /** + * Holds the most recent mailer error message. + * + * @var string + */ + public $ErrorInfo = ''; + + /** + * The From email address for the message. + * + * @var string + */ + public $From = ''; + + /** + * The From name of the message. + * + * @var string + */ + public $FromName = ''; + + /** + * The envelope sender of the message. + * This will usually be turned into a Return-Path header by the receiver, + * and is the address that bounces will be sent to. + * If not empty, will be passed via `-f` to sendmail or as the 'MAIL FROM' value over SMTP. + * + * @var string + */ + public $Sender = ''; + + /** + * The Subject of the message. + * + * @var string + */ + public $Subject = ''; + + /** + * An HTML or plain text message body. + * If HTML then call isHTML(true). + * + * @var string + */ + public $Body = ''; + + /** + * The plain-text message body. + * This body can be read by mail clients that do not have HTML email + * capability such as mutt & Eudora. + * Clients that can read HTML will view the normal Body. + * + * @var string + */ + public $AltBody = ''; + + /** + * An iCal message part body. + * Only supported in simple alt or alt_inline message types + * To generate iCal event structures, use classes like EasyPeasyICS or iCalcreator. + * + * @see http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ + * @see http://kigkonsult.se/iCalcreator/ + * + * @var string + */ + public $Ical = ''; + + /** + * Value-array of "method" in Contenttype header "text/calendar" + * + * @var string[] + */ + protected static $IcalMethods = [ + self::ICAL_METHOD_REQUEST, + self::ICAL_METHOD_PUBLISH, + self::ICAL_METHOD_REPLY, + self::ICAL_METHOD_ADD, + self::ICAL_METHOD_CANCEL, + self::ICAL_METHOD_REFRESH, + self::ICAL_METHOD_COUNTER, + self::ICAL_METHOD_DECLINECOUNTER, + ]; + + /** + * The complete compiled MIME message body. + * + * @var string + */ + protected $MIMEBody = ''; + + /** + * The complete compiled MIME message headers. + * + * @var string + */ + protected $MIMEHeader = ''; + + /** + * Extra headers that createHeader() doesn't fold in. + * + * @var string + */ + protected $mailHeader = ''; + + /** + * Word-wrap the message body to this number of chars. + * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. + * + * @see static::STD_LINE_LENGTH + * + * @var int + */ + public $WordWrap = 0; + + /** + * Which method to use to send mail. + * Options: "mail", "sendmail", or "smtp". + * + * @var string + */ + public $Mailer = 'mail'; + + /** + * The path to the sendmail program. + * + * @var string + */ + public $Sendmail = '/usr/sbin/sendmail'; + + /** + * Whether mail() uses a fully sendmail-compatible MTA. + * One which supports sendmail's "-oi -f" options. + * + * @var bool + */ + public $UseSendmailOptions = true; + + /** + * The email address that a reading confirmation should be sent to, also known as read receipt. + * + * @var string + */ + public $ConfirmReadingTo = ''; + + /** + * The hostname to use in the Message-ID header and as default HELO string. + * If empty, PHPMailer attempts to find one with, in order, + * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value + * 'localhost.localdomain'. + * + * @see PHPMailer::$Helo + * + * @var string + */ + public $Hostname = ''; + + /** + * An ID to be used in the Message-ID header. + * If empty, a unique id will be generated. + * You can set your own, but it must be in the format "", + * as defined in RFC5322 section 3.6.4 or it will be ignored. + * + * @see https://tools.ietf.org/html/rfc5322#section-3.6.4 + * + * @var string + */ + public $MessageID = ''; + + /** + * The message Date to be used in the Date header. + * If empty, the current date will be added. + * + * @var string + */ + public $MessageDate = ''; + + /** + * SMTP hosts. + * Either a single hostname or multiple semicolon-delimited hostnames. + * You can also specify a different port + * for each host by using this format: [hostname:port] + * (e.g. "smtp1.example.com:25;smtp2.example.com"). + * You can also specify encryption type, for example: + * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). + * Hosts will be tried in order. + * + * @var string + */ + public $Host = 'localhost'; + + /** + * The default SMTP server port. + * + * @var int + */ + public $Port = 25; + + /** + * The SMTP HELO/EHLO name used for the SMTP connection. + * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find + * one with the same method described above for $Hostname. + * + * @see PHPMailer::$Hostname + * + * @var string + */ + public $Helo = ''; + + /** + * What kind of encryption to use on the SMTP connection. + * Options: '', static::ENCRYPTION_STARTTLS, or static::ENCRYPTION_SMTPS. + * + * @var string + */ + public $SMTPSecure = ''; + + /** + * Whether to enable TLS encryption automatically if a server supports it, + * even if `SMTPSecure` is not set to 'tls'. + * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. + * + * @var bool + */ + public $SMTPAutoTLS = true; + + /** + * Whether to use SMTP authentication. + * Uses the Username and Password properties. + * + * @see PHPMailer::$Username + * @see PHPMailer::$Password + * + * @var bool + */ + public $SMTPAuth = false; + + /** + * Options array passed to stream_context_create when connecting via SMTP. + * + * @var array + */ + public $SMTPOptions = []; + + /** + * SMTP username. + * + * @var string + */ + public $Username = ''; + + /** + * SMTP password. + * + * @var string + */ + public $Password = ''; + + /** + * SMTP authentication type. Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2. + * If not specified, the first one from that list that the server supports will be selected. + * + * @var string + */ + public $AuthType = ''; + + /** + * An implementation of the PHPMailer OAuthTokenProvider interface. + * + * @var OAuthTokenProvider + */ + protected $oauth; + + /** + * The SMTP server timeout in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * + * @var int + */ + public $Timeout = 300; + + /** + * Comma separated list of DSN notifications + * 'NEVER' under no circumstances a DSN must be returned to the sender. + * If you use NEVER all other notifications will be ignored. + * 'SUCCESS' will notify you when your mail has arrived at its destination. + * 'FAILURE' will arrive if an error occurred during delivery. + * 'DELAY' will notify you if there is an unusual delay in delivery, but the actual + * delivery's outcome (success or failure) is not yet decided. + * + * @see https://tools.ietf.org/html/rfc3461 See section 4.1 for more information about NOTIFY + */ + public $dsn = ''; + + /** + * SMTP class debug output mode. + * Debug output level. + * Options: + * @see SMTP::DEBUG_OFF: No output + * @see SMTP::DEBUG_CLIENT: Client messages + * @see SMTP::DEBUG_SERVER: Client and server messages + * @see SMTP::DEBUG_CONNECTION: As SERVER plus connection status + * @see SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed + * + * @see SMTP::$do_debug + * + * @var int + */ + public $SMTPDebug = 0; + + /** + * How to handle debug output. + * Options: + * * `echo` Output plain-text as-is, appropriate for CLI + * * `html` Output escaped, line breaks converted to `
`, appropriate for browser output + * * `error_log` Output to error log as configured in php.ini + * By default PHPMailer will use `echo` if run from a `cli` or `cli-server` SAPI, `html` otherwise. + * Alternatively, you can provide a callable expecting two params: a message string and the debug level: + * + * ```php + * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; + * ``` + * + * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` + * level output is used: + * + * ```php + * $mail->Debugoutput = new myPsr3Logger; + * ``` + * + * @see SMTP::$Debugoutput + * + * @var string|callable|\Psr\Log\LoggerInterface + */ + public $Debugoutput = 'echo'; + + /** + * Whether to keep the SMTP connection open after each message. + * If this is set to true then the connection will remain open after a send, + * and closing the connection will require an explicit call to smtpClose(). + * It's a good idea to use this if you are sending multiple messages as it reduces overhead. + * See the mailing list example for how to use it. + * + * @var bool + */ + public $SMTPKeepAlive = false; + + /** + * Whether to split multiple to addresses into multiple messages + * or send them all in one message. + * Only supported in `mail` and `sendmail` transports, not in SMTP. + * + * @var bool + * + * @deprecated 6.0.0 PHPMailer isn't a mailing list manager! + */ + public $SingleTo = false; + + /** + * Storage for addresses when SingleTo is enabled. + * + * @var array + */ + protected $SingleToArray = []; + + /** + * Whether to generate VERP addresses on send. + * Only applicable when sending via SMTP. + * + * @see https://en.wikipedia.org/wiki/Variable_envelope_return_path + * @see http://www.postfix.org/VERP_README.html Postfix VERP info + * + * @var bool + */ + public $do_verp = false; + + /** + * Whether to allow sending messages with an empty body. + * + * @var bool + */ + public $AllowEmpty = false; + + /** + * DKIM selector. + * + * @var string + */ + public $DKIM_selector = ''; + + /** + * DKIM Identity. + * Usually the email address used as the source of the email. + * + * @var string + */ + public $DKIM_identity = ''; + + /** + * DKIM passphrase. + * Used if your key is encrypted. + * + * @var string + */ + public $DKIM_passphrase = ''; + + /** + * DKIM signing domain name. + * + * @example 'example.com' + * + * @var string + */ + public $DKIM_domain = ''; + + /** + * DKIM Copy header field values for diagnostic use. + * + * @var bool + */ + public $DKIM_copyHeaderFields = true; + + /** + * DKIM Extra signing headers. + * + * @example ['List-Unsubscribe', 'List-Help'] + * + * @var array + */ + public $DKIM_extraHeaders = []; + + /** + * DKIM private key file path. + * + * @var string + */ + public $DKIM_private = ''; + + /** + * DKIM private key string. + * + * If set, takes precedence over `$DKIM_private`. + * + * @var string + */ + public $DKIM_private_string = ''; + + /** + * Callback Action function name. + * + * The function that handles the result of the send email action. + * It is called out by send() for each email sent. + * + * Value can be any php callable: http://www.php.net/is_callable + * + * Parameters: + * bool $result result of the send action + * array $to email addresses of the recipients + * array $cc cc email addresses + * array $bcc bcc email addresses + * string $subject the subject + * string $body the email body + * string $from email address of sender + * string $extra extra information of possible use + * "smtp_transaction_id' => last smtp transaction id + * + * @var string + */ + public $action_function = ''; + + /** + * What to put in the X-Mailer header. + * Options: An empty string for PHPMailer default, whitespace/null for none, or a string to use. + * + * @var string|null + */ + public $XMailer = ''; + + /** + * Which validator to use by default when validating email addresses. + * May be a callable to inject your own validator, but there are several built-in validators. + * The default validator uses PHP's FILTER_VALIDATE_EMAIL filter_var option. + * + * @see PHPMailer::validateAddress() + * + * @var string|callable + */ + public static $validator = 'php'; + + /** + * An instance of the SMTP sender class. + * + * @var SMTP + */ + protected $smtp; + + /** + * The array of 'to' names and addresses. + * + * @var array + */ + protected $to = []; + + /** + * The array of 'cc' names and addresses. + * + * @var array + */ + protected $cc = []; + + /** + * The array of 'bcc' names and addresses. + * + * @var array + */ + protected $bcc = []; + + /** + * The array of reply-to names and addresses. + * + * @var array + */ + protected $ReplyTo = []; + + /** + * An array of all kinds of addresses. + * Includes all of $to, $cc, $bcc. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * + * @var array + */ + protected $all_recipients = []; + + /** + * An array of names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $all_recipients + * and one of $to, $cc, or $bcc. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * @see PHPMailer::$all_recipients + * + * @var array + */ + protected $RecipientsQueue = []; + + /** + * An array of reply-to names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $ReplyTo. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$ReplyTo + * + * @var array + */ + protected $ReplyToQueue = []; + + /** + * The array of attachments. + * + * @var array + */ + protected $attachment = []; + + /** + * The array of custom headers. + * + * @var array + */ + protected $CustomHeader = []; + + /** + * The most recent Message-ID (including angular brackets). + * + * @var string + */ + protected $lastMessageID = ''; + + /** + * The message's MIME type. + * + * @var string + */ + protected $message_type = ''; + + /** + * The array of MIME boundary strings. + * + * @var array + */ + protected $boundary = []; + + /** + * The array of available text strings for the current language. + * + * @var array + */ + protected $language = []; + + /** + * The number of errors encountered. + * + * @var int + */ + protected $error_count = 0; + + /** + * The S/MIME certificate file path. + * + * @var string + */ + protected $sign_cert_file = ''; + + /** + * The S/MIME key file path. + * + * @var string + */ + protected $sign_key_file = ''; + + /** + * The optional S/MIME extra certificates ("CA Chain") file path. + * + * @var string + */ + protected $sign_extracerts_file = ''; + + /** + * The S/MIME password for the key. + * Used only if the key is encrypted. + * + * @var string + */ + protected $sign_key_pass = ''; + + /** + * Whether to throw exceptions for errors. + * + * @var bool + */ + protected $exceptions = false; + + /** + * Unique ID used for message ID and boundaries. + * + * @var string + */ + protected $uniqueid = ''; + + /** + * The PHPMailer Version number. + * + * @var string + */ + const VERSION = '6.6.3'; + + /** + * Error severity: message only, continue processing. + * + * @var int + */ + const STOP_MESSAGE = 0; + + /** + * Error severity: message, likely ok to continue processing. + * + * @var int + */ + const STOP_CONTINUE = 1; + + /** + * Error severity: message, plus full stop, critical error reached. + * + * @var int + */ + const STOP_CRITICAL = 2; + + /** + * The SMTP standard CRLF line break. + * If you want to change line break format, change static::$LE, not this. + */ + const CRLF = "\r\n"; + + /** + * "Folding White Space" a white space string used for line folding. + */ + const FWS = ' '; + + /** + * SMTP RFC standard line ending; Carriage Return, Line Feed. + * + * @var string + */ + protected static $LE = self::CRLF; + + /** + * The maximum line length supported by mail(). + * + * Background: mail() will sometimes corrupt messages + * with headers headers longer than 65 chars, see #818. + * + * @var int + */ + const MAIL_MAX_LINE_LENGTH = 63; + + /** + * The maximum line length allowed by RFC 2822 section 2.1.1. + * + * @var int + */ + const MAX_LINE_LENGTH = 998; + + /** + * The lower maximum line length allowed by RFC 2822 section 2.1.1. + * This length does NOT include the line break + * 76 means that lines will be 77 or 78 chars depending on whether + * the line break format is LF or CRLF; both are valid. + * + * @var int + */ + const STD_LINE_LENGTH = 76; + + /** + * Constructor. + * + * @param bool $exceptions Should we throw external exceptions? + */ + public function __construct($exceptions = null) + { + if (null !== $exceptions) { + $this->exceptions = (bool) $exceptions; + } + //Pick an appropriate debug output format automatically + $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html'); + } + + /** + * Destructor. + */ + public function __destruct() + { + //Close any open SMTP connection nicely + $this->smtpClose(); + } + + /** + * Call mail() in a safe_mode-aware fashion. + * Also, unless sendmail_path points to sendmail (or something that + * claims to be sendmail), don't pass params (not a perfect fix, + * but it will do). + * + * @param string $to To + * @param string $subject Subject + * @param string $body Message Body + * @param string $header Additional Header(s) + * @param string|null $params Params + * + * @return bool + */ + private function mailPassthru($to, $subject, $body, $header, $params) + { + //Check overloading of mail function to avoid double-encoding + if (ini_get('mbstring.func_overload') & 1) { + $subject = $this->secureHeader($subject); + } else { + $subject = $this->encodeHeader($this->secureHeader($subject)); + } + //Calling mail() with null params breaks + $this->edebug('Sending with mail()'); + $this->edebug('Sendmail path: ' . ini_get('sendmail_path')); + $this->edebug("Envelope sender: {$this->Sender}"); + $this->edebug("To: {$to}"); + $this->edebug("Subject: {$subject}"); + $this->edebug("Headers: {$header}"); + if (!$this->UseSendmailOptions || null === $params) { + $result = @mail($to, $subject, $body, $header); + } else { + $this->edebug("Additional params: {$params}"); + $result = @mail($to, $subject, $body, $header, $params); + } + $this->edebug('Result: ' . ($result ? 'true' : 'false')); + return $result; + } + + /** + * Output debugging info via a user-defined method. + * Only generates output if debug output is enabled. + * + * @see PHPMailer::$Debugoutput + * @see PHPMailer::$SMTPDebug + * + * @param string $str + */ + protected function edebug($str) + { + if ($this->SMTPDebug <= 0) { + return; + } + //Is this a PSR-3 logger? + if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { + $this->Debugoutput->debug($str); + + return; + } + //Avoid clash with built-in function names + if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) { + call_user_func($this->Debugoutput, $str, $this->SMTPDebug); + + return; + } + switch ($this->Debugoutput) { + case 'error_log': + //Don't output, just log + /** @noinspection ForgottenDebugOutputInspection */ + error_log($str); + break; + case 'html': + //Cleans up output a bit for a better looking, HTML-safe output + echo htmlentities( + preg_replace('/[\r\n]+/', '', $str), + ENT_QUOTES, + 'UTF-8' + ), "
\n"; + break; + case 'echo': + default: + //Normalize line breaks + $str = preg_replace('/\r\n|\r/m', "\n", $str); + echo gmdate('Y-m-d H:i:s'), + "\t", + //Trim trailing space + trim( + //Indent for readability, except for trailing break + str_replace( + "\n", + "\n \t ", + trim($str) + ) + ), + "\n"; + } + } + + /** + * Sets message type to HTML or plain. + * + * @param bool $isHtml True for HTML mode + */ + public function isHTML($isHtml = true) + { + if ($isHtml) { + $this->ContentType = static::CONTENT_TYPE_TEXT_HTML; + } else { + $this->ContentType = static::CONTENT_TYPE_PLAINTEXT; + } + } + + /** + * Send messages using SMTP. + */ + public function isSMTP() + { + $this->Mailer = 'smtp'; + } + + /** + * Send messages using PHP's mail() function. + */ + public function isMail() + { + $this->Mailer = 'mail'; + } + + /** + * Send messages using $Sendmail. + */ + public function isSendmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'sendmail')) { + $this->Sendmail = '/usr/sbin/sendmail'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'sendmail'; + } + + /** + * Send messages using qmail. + */ + public function isQmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'qmail')) { + $this->Sendmail = '/var/qmail/bin/qmail-inject'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'qmail'; + } + + /** + * Add a "To" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addAddress($address, $name = '') + { + return $this->addOrEnqueueAnAddress('to', $address, $name); + } + + /** + * Add a "CC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('cc', $address, $name); + } + + /** + * Add a "BCC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addBCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('bcc', $address, $name); + } + + /** + * Add a "Reply-To" address. + * + * @param string $address The email address to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addReplyTo($address, $name = '') + { + return $this->addOrEnqueueAnAddress('Reply-To', $address, $name); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer + * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still + * be modified after calling this function), addition of such addresses is delayed until send(). + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address + * @param string $name An optional username associated with the address + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addOrEnqueueAnAddress($kind, $address, $name) + { + $pos = false; + if ($address !== null) { + $address = trim($address); + $pos = strrpos($address, '@'); + } + if (false === $pos) { + //At-sign is missing. + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ($name !== null && is_string($name)) { + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + } else { + $name = ''; + } + $params = [$kind, $address, $name]; + //Enqueue addresses with IDN until we know the PHPMailer::$CharSet. + //Domain is assumed to be whatever is after the last @ symbol in the address + if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) { + if ('Reply-To' !== $kind) { + if (!array_key_exists($address, $this->RecipientsQueue)) { + $this->RecipientsQueue[$address] = $params; + + return true; + } + } elseif (!array_key_exists($address, $this->ReplyToQueue)) { + $this->ReplyToQueue[$address] = $params; + + return true; + } + + return false; + } + + //Immediately add standard addresses without IDN. + return call_user_func_array([$this, 'addAnAddress'], $params); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addAnAddress($kind, $address, $name = '') + { + if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) { + $error_message = sprintf( + '%s: %s', + $this->lang('Invalid recipient kind'), + $kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if (!static::validateAddress($address)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ('Reply-To' !== $kind) { + if (!array_key_exists(strtolower($address), $this->all_recipients)) { + $this->{$kind}[] = [$address, $name]; + $this->all_recipients[strtolower($address)] = true; + + return true; + } + } elseif (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = [$address, $name]; + + return true; + } + + return false; + } + + /** + * Parse and validate a string containing one or more RFC822-style comma-separated email addresses + * of the form "display name
" into an array of name/address pairs. + * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available. + * Note that quotes in the name part are removed. + * + * @see http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation + * + * @param string $addrstr The address list string + * @param bool $useimap Whether to use the IMAP extension to parse the list + * @param string $charset The charset to use when decoding the address list string. + * + * @return array + */ + public static function parseAddresses($addrstr, $useimap = true, $charset = self::CHARSET_ISO88591) + { + $addresses = []; + if ($useimap && function_exists('imap_rfc822_parse_adrlist')) { + //Use this built-in parser if it's available + $list = imap_rfc822_parse_adrlist($addrstr, ''); + // Clear any potential IMAP errors to get rid of notices being thrown at end of script. + imap_errors(); + foreach ($list as $address) { + if ( + '.SYNTAX-ERROR.' !== $address->host && + static::validateAddress($address->mailbox . '@' . $address->host) + ) { + //Decode the name part if it's present and encoded + if ( + property_exists($address, 'personal') && + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + defined('MB_CASE_UPPER') && + preg_match('/^=\?.*\?=$/s', $address->personal) + ) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $address->personal = str_replace('_', '=20', $address->personal); + //Decode the name + $address->personal = mb_decode_mimeheader($address->personal); + mb_internal_encoding($origCharset); + } + + $addresses[] = [ + 'name' => (property_exists($address, 'personal') ? $address->personal : ''), + 'address' => $address->mailbox . '@' . $address->host, + ]; + } + } + } else { + //Use this simpler parser + $list = explode(',', $addrstr); + foreach ($list as $address) { + $address = trim($address); + //Is there a separate name part? + if (strpos($address, '<') === false) { + //No separate name, just use the whole thing + if (static::validateAddress($address)) { + $addresses[] = [ + 'name' => '', + 'address' => $address, + ]; + } + } else { + list($name, $email) = explode('<', $address); + $email = trim(str_replace('>', '', $email)); + $name = trim($name); + if (static::validateAddress($email)) { + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + //If this name is encoded, decode it + if (defined('MB_CASE_UPPER') && preg_match('/^=\?.*\?=$/s', $name)) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $name = str_replace('_', '=20', $name); + //Decode the name + $name = mb_decode_mimeheader($name); + mb_internal_encoding($origCharset); + } + $addresses[] = [ + //Remove any surrounding quotes and spaces from the name + 'name' => trim($name, '\'" '), + 'address' => $email, + ]; + } + } + } + } + + return $addresses; + } + + /** + * Set the From and FromName properties. + * + * @param string $address + * @param string $name + * @param bool $auto Whether to also set the Sender address, defaults to true + * + * @throws Exception + * + * @return bool + */ + public function setFrom($address, $name = '', $auto = true) + { + $address = trim((string)$address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + //Don't validate now addresses with IDN. Will be done in send(). + $pos = strrpos($address, '@'); + if ( + (false === $pos) + || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported()) + && !static::validateAddress($address)) + ) { + $error_message = sprintf( + '%s (From): %s', + $this->lang('invalid_address'), + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto && empty($this->Sender)) { + $this->Sender = $address; + } + + return true; + } + + /** + * Return the Message-ID header of the last email. + * Technically this is the value from the last time the headers were created, + * but it's also the message ID of the last sent message except in + * pathological cases. + * + * @return string + */ + public function getLastMessageID() + { + return $this->lastMessageID; + } + + /** + * Check that a string looks like an email address. + * Validation patterns supported: + * * `auto` Pick best pattern automatically; + * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0; + * * `pcre` Use old PCRE implementation; + * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; + * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. + * * `noregex` Don't use a regex: super fast, really dumb. + * Alternatively you may pass in a callable to inject your own validator, for example: + * + * ```php + * PHPMailer::validateAddress('user@example.com', function($address) { + * return (strpos($address, '@') !== false); + * }); + * ``` + * + * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator. + * + * @param string $address The email address to check + * @param string|callable $patternselect Which pattern to use + * + * @return bool + */ + public static function validateAddress($address, $patternselect = null) + { + if (null === $patternselect) { + $patternselect = static::$validator; + } + //Don't allow strings as callables, see SECURITY.md and CVE-2021-3603 + if (is_callable($patternselect) && !is_string($patternselect)) { + return call_user_func($patternselect, $address); + } + //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 + if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) { + return false; + } + switch ($patternselect) { + case 'pcre': //Kept for BC + case 'pcre8': + /* + * A more complex and more permissive version of the RFC5322 regex on which FILTER_VALIDATE_EMAIL + * is based. + * In addition to the addresses allowed by filter_var, also permits: + * * dotless domains: `a@b` + * * comments: `1234 @ local(blah) .machine .example` + * * quoted elements: `'"test blah"@example.org'` + * * numeric TLDs: `a@b.123` + * * unbracketed IPv4 literals: `a@192.168.0.1` + * * IPv6 literals: 'first.last@[IPv6:a1::]' + * Not all of these will necessarily work for sending! + * + * @see http://squiloople.com/2009/12/20/email-address-validation/ + * @copyright 2009-2010 Michael Rushton + * Feel free to use and redistribute this code. But please keep this copyright notice. + */ + return (bool) preg_match( + '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . + '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . + '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . + '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . + '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . + '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . + '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . + '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . + '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', + $address + ); + case 'html5': + /* + * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. + * + * @see https://html.spec.whatwg.org/#e-mail-state-(type=email) + */ + return (bool) preg_match( + '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . + '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD', + $address + ); + case 'php': + default: + return filter_var($address, FILTER_VALIDATE_EMAIL) !== false; + } + } + + /** + * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the + * `intl` and `mbstring` PHP extensions. + * + * @return bool `true` if required functions for IDN support are present + */ + public static function idnSupported() + { + return function_exists('idn_to_ascii') && function_exists('mb_convert_encoding'); + } + + /** + * Converts IDN in given email address to its ASCII form, also known as punycode, if possible. + * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet. + * This function silently returns unmodified address if: + * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form) + * - Conversion to punycode is impossible (e.g. required PHP functions are not available) + * or fails for any reason (e.g. domain contains characters not allowed in an IDN). + * + * @see PHPMailer::$CharSet + * + * @param string $address The email address to convert + * + * @return string The encoded address in ASCII form + */ + public function punyencodeAddress($address) + { + //Verify we have required functions, CharSet, and at-sign. + $pos = strrpos($address, '@'); + if ( + !empty($this->CharSet) && + false !== $pos && + static::idnSupported() + ) { + $domain = substr($address, ++$pos); + //Verify CharSet string is a valid one, and domain properly encoded in this CharSet. + if ($this->has8bitChars($domain) && @mb_check_encoding($domain, $this->CharSet)) { + //Convert the domain from whatever charset it's in to UTF-8 + $domain = mb_convert_encoding($domain, self::CHARSET_UTF8, $this->CharSet); + //Ignore IDE complaints about this line - method signature changed in PHP 5.4 + $errorcode = 0; + if (defined('INTL_IDNA_VARIANT_UTS46')) { + //Use the current punycode standard (appeared in PHP 7.2) + $punycode = idn_to_ascii( + $domain, + \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | + \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, + \INTL_IDNA_VARIANT_UTS46 + ); + } elseif (defined('INTL_IDNA_VARIANT_2003')) { + //Fall back to this old, deprecated/removed encoding + $punycode = idn_to_ascii($domain, $errorcode, \INTL_IDNA_VARIANT_2003); + } else { + //Fall back to a default we don't know about + $punycode = idn_to_ascii($domain, $errorcode); + } + if (false !== $punycode) { + return substr($address, 0, $pos) . $punycode; + } + } + } + + return $address; + } + + /** + * Create a message and send it. + * Uses the sending method specified by $Mailer. + * + * @throws Exception + * + * @return bool false on error - See the ErrorInfo property for details of the error + */ + public function send() + { + try { + if (!$this->preSend()) { + return false; + } + + return $this->postSend(); + } catch (Exception $exc) { + $this->mailHeader = ''; + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Prepare a message for sending. + * + * @throws Exception + * + * @return bool + */ + public function preSend() + { + if ( + 'smtp' === $this->Mailer + || ('mail' === $this->Mailer && (\PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0)) + ) { + //SMTP mandates RFC-compliant line endings + //and it's also used with mail() on Windows + static::setLE(self::CRLF); + } else { + //Maintain backward compatibility with legacy Linux command line mailers + static::setLE(PHP_EOL); + } + //Check for buggy PHP versions that add a header with an incorrect line break + if ( + 'mail' === $this->Mailer + && ((\PHP_VERSION_ID >= 70000 && \PHP_VERSION_ID < 70017) + || (\PHP_VERSION_ID >= 70100 && \PHP_VERSION_ID < 70103)) + && ini_get('mail.add_x_header') === '1' + && stripos(PHP_OS, 'WIN') === 0 + ) { + trigger_error($this->lang('buggy_php'), E_USER_WARNING); + } + + try { + $this->error_count = 0; //Reset errors + $this->mailHeader = ''; + + //Dequeue recipient and Reply-To addresses with IDN + foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { + $params[1] = $this->punyencodeAddress($params[1]); + call_user_func_array([$this, 'addAnAddress'], $params); + } + if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { + throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL); + } + + //Validate From, Sender, and ConfirmReadingTo addresses + foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) { + $this->{$address_kind} = trim($this->{$address_kind}); + if (empty($this->{$address_kind})) { + continue; + } + $this->{$address_kind} = $this->punyencodeAddress($this->{$address_kind}); + if (!static::validateAddress($this->{$address_kind})) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $address_kind, + $this->{$address_kind} + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + } + + //Set whether the message is multipart/alternative + if ($this->alternativeExists()) { + $this->ContentType = static::CONTENT_TYPE_MULTIPART_ALTERNATIVE; + } + + $this->setMessageType(); + //Refuse to send an empty message unless we are specifically allowing it + if (!$this->AllowEmpty && empty($this->Body)) { + throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); + } + + //Trim subject consistently + $this->Subject = trim($this->Subject); + //Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) + $this->MIMEHeader = ''; + $this->MIMEBody = $this->createBody(); + //createBody may have added some headers, so retain them + $tempheaders = $this->MIMEHeader; + $this->MIMEHeader = $this->createHeader(); + $this->MIMEHeader .= $tempheaders; + + //To capture the complete message when using mail(), create + //an extra header list which createHeader() doesn't fold in + if ('mail' === $this->Mailer) { + if (count($this->to) > 0) { + $this->mailHeader .= $this->addrAppend('To', $this->to); + } else { + $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); + } + $this->mailHeader .= $this->headerLine( + 'Subject', + $this->encodeHeader($this->secureHeader($this->Subject)) + ); + } + + //Sign with DKIM if enabled + if ( + !empty($this->DKIM_domain) + && !empty($this->DKIM_selector) + && (!empty($this->DKIM_private_string) + || (!empty($this->DKIM_private) + && static::isPermittedPath($this->DKIM_private) + && file_exists($this->DKIM_private) + ) + ) + ) { + $header_dkim = $this->DKIM_Add( + $this->MIMEHeader . $this->mailHeader, + $this->encodeHeader($this->secureHeader($this->Subject)), + $this->MIMEBody + ); + $this->MIMEHeader = static::stripTrailingWSP($this->MIMEHeader) . static::$LE . + static::normalizeBreaks($header_dkim) . static::$LE; + } + + return true; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Actually send a message via the selected mechanism. + * + * @throws Exception + * + * @return bool + */ + public function postSend() + { + try { + //Choose the mailer and send through it + switch ($this->Mailer) { + case 'sendmail': + case 'qmail': + return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + default: + $sendMethod = $this->Mailer . 'Send'; + if (method_exists($this, $sendMethod)) { + return $this->{$sendMethod}($this->MIMEHeader, $this->MIMEBody); + } + + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + } + } catch (Exception $exc) { + if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) { + $this->smtp->reset(); + } + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + } + + return false; + } + + /** + * Send mail using the $Sendmail program. + * + * @see PHPMailer::$Sendmail + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function sendmailSend($header, $body) + { + if ($this->Mailer === 'qmail') { + $this->edebug('Sending with qmail'); + } else { + $this->edebug('Sending with sendmail'); + } + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) { + if ($this->Mailer === 'qmail') { + $sendmailFmt = '%s -f%s'; + } else { + $sendmailFmt = '%s -oi -f%s -t'; + } + } else { + //allow sendmail to choose a default envelope sender. It may + //seem preferable to force it to use the From header as with + //SMTP, but that introduces new problems (see + //), and + //it has historically worked this way. + $sendmailFmt = '%s -oi -t'; + } + + $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); + $this->edebug('Sendmail path: ' . $this->Sendmail); + $this->edebug('Sendmail command: ' . $sendmail); + $this->edebug('Envelope sender: ' . $this->Sender); + $this->edebug("Headers: {$header}"); + + if ($this->SingleTo) { + foreach ($this->SingleToArray as $toAddr) { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + $this->edebug("To: {$toAddr}"); + fwrite($mail, 'To: ' . $toAddr . "\n"); + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + ($result === 0), + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $this->doCallback( + ($result === 0), + $this->to, + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + + return true; + } + + /** + * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters. + * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows. + * + * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report + * + * @param string $string The string to be validated + * + * @return bool + */ + protected static function isShellSafe($string) + { + //It's not possible to use shell commands safely (which includes the mail() function) without escapeshellarg, + //but some hosting providers disable it, creating a security problem that we don't want to have to deal with, + //so we don't. + if (!function_exists('escapeshellarg') || !function_exists('escapeshellcmd')) { + return false; + } + + if ( + escapeshellcmd($string) !== $string + || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) + ) { + return false; + } + + $length = strlen($string); + + for ($i = 0; $i < $length; ++$i) { + $c = $string[$i]; + + //All other characters have a special meaning in at least one common shell, including = and +. + //Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here. + //Note that this does permit non-Latin alphanumeric characters based on the current locale. + if (!ctype_alnum($c) && strpos('@_-.', $c) === false) { + return false; + } + } + + return true; + } + + /** + * Check whether a file path is of a permitted type. + * Used to reject URLs and phar files from functions that access local file paths, + * such as addAttachment. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function isPermittedPath($path) + { + //Matches scheme definition from https://tools.ietf.org/html/rfc3986#section-3.1 + return !preg_match('#^[a-z][a-z\d+.-]*://#i', $path); + } + + /** + * Check whether a file path is safe, accessible, and readable. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function fileIsAccessible($path) + { + if (!static::isPermittedPath($path)) { + return false; + } + $readable = file_exists($path); + //If not a UNC path (expected to start with \\), check read permission, see #2069 + if (strpos($path, '\\\\') !== 0) { + $readable = $readable && is_readable($path); + } + return $readable; + } + + /** + * Send mail using the PHP mail() function. + * + * @see http://www.php.net/manual/en/book.mail.php + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function mailSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + + $toArr = []; + foreach ($this->to as $toaddr) { + $toArr[] = $this->addrFormat($toaddr); + } + $to = implode(', ', $toArr); + + $params = null; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + if (!empty($this->Sender) && static::validateAddress($this->Sender)) { + if (self::isShellSafe($this->Sender)) { + $params = sprintf('-f%s', $this->Sender); + } + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + } + $result = false; + if ($this->SingleTo && count($toArr) > 1) { + foreach ($toArr as $toAddr) { + $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + $result, + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + } + } else { + $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); + $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if (!$result) { + throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL); + } + + return true; + } + + /** + * Get an instance to use for SMTP operations. + * Override this function to load your own SMTP implementation, + * or set one with setSMTPInstance. + * + * @return SMTP + */ + public function getSMTPInstance() + { + if (!is_object($this->smtp)) { + $this->smtp = new SMTP(); + } + + return $this->smtp; + } + + /** + * Provide an instance to use for SMTP operations. + * + * @return SMTP + */ + public function setSMTPInstance(SMTP $smtp) + { + $this->smtp = $smtp; + + return $this->smtp; + } + + /** + * Send mail via SMTP. + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * + * @see PHPMailer::setSMTPInstance() to use a different class. + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function smtpSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + $bad_rcpt = []; + if (!$this->smtpConnect($this->SMTPOptions)) { + throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + //Sender already validated in preSend() + if ('' === $this->Sender) { + $smtp_from = $this->From; + } else { + $smtp_from = $this->Sender; + } + if (!$this->smtp->mail($smtp_from)) { + $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); + throw new Exception($this->ErrorInfo, self::STOP_CRITICAL); + } + + $callbacks = []; + //Attempt to send to all recipients + foreach ([$this->to, $this->cc, $this->bcc] as $togroup) { + foreach ($togroup as $to) { + if (!$this->smtp->recipient($to[0], $this->dsn)) { + $error = $this->smtp->getError(); + $bad_rcpt[] = ['to' => $to[0], 'error' => $error['detail']]; + $isSent = false; + } else { + $isSent = true; + } + + $callbacks[] = ['issent' => $isSent, 'to' => $to[0], 'name' => $to[1]]; + } + } + + //Only send the DATA command if we have viable recipients + if ((count($this->all_recipients) > count($bad_rcpt)) && !$this->smtp->data($header . $body)) { + throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL); + } + + $smtp_transaction_id = $this->smtp->getLastTransactionID(); + + if ($this->SMTPKeepAlive) { + $this->smtp->reset(); + } else { + $this->smtp->quit(); + $this->smtp->close(); + } + + foreach ($callbacks as $cb) { + $this->doCallback( + $cb['issent'], + [[$cb['to'], $cb['name']]], + [], + [], + $this->Subject, + $body, + $this->From, + ['smtp_transaction_id' => $smtp_transaction_id] + ); + } + + //Create error message for any bad addresses + if (count($bad_rcpt) > 0) { + $errstr = ''; + foreach ($bad_rcpt as $bad) { + $errstr .= $bad['to'] . ': ' . $bad['error']; + } + throw new Exception($this->lang('recipients_failed') . $errstr, self::STOP_CONTINUE); + } + + return true; + } + + /** + * Initiate a connection to an SMTP server. + * Returns false if the operation failed. + * + * @param array $options An array of options compatible with stream_context_create() + * + * @throws Exception + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @return bool + */ + public function smtpConnect($options = null) + { + if (null === $this->smtp) { + $this->smtp = $this->getSMTPInstance(); + } + + //If no options are provided, use whatever is set in the instance + if (null === $options) { + $options = $this->SMTPOptions; + } + + //Already connected? + if ($this->smtp->connected()) { + return true; + } + + $this->smtp->setTimeout($this->Timeout); + $this->smtp->setDebugLevel($this->SMTPDebug); + $this->smtp->setDebugOutput($this->Debugoutput); + $this->smtp->setVerp($this->do_verp); + $hosts = explode(';', $this->Host); + $lastexception = null; + + foreach ($hosts as $hostentry) { + $hostinfo = []; + if ( + !preg_match( + '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', + trim($hostentry), + $hostinfo + ) + ) { + $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry)); + //Not a valid host entry + continue; + } + //$hostinfo[1]: optional ssl or tls prefix + //$hostinfo[2]: the hostname + //$hostinfo[3]: optional port number + //The host string prefix can temporarily override the current setting for SMTPSecure + //If it's not specified, the default value is used + + //Check the host name is a valid name or IP address before trying to use it + if (!static::isValidHost($hostinfo[2])) { + $this->edebug($this->lang('invalid_host') . ' ' . $hostinfo[2]); + continue; + } + $prefix = ''; + $secure = $this->SMTPSecure; + $tls = (static::ENCRYPTION_STARTTLS === $this->SMTPSecure); + if ('ssl' === $hostinfo[1] || ('' === $hostinfo[1] && static::ENCRYPTION_SMTPS === $this->SMTPSecure)) { + $prefix = 'ssl://'; + $tls = false; //Can't have SSL and TLS at the same time + $secure = static::ENCRYPTION_SMTPS; + } elseif ('tls' === $hostinfo[1]) { + $tls = true; + //TLS doesn't use a prefix + $secure = static::ENCRYPTION_STARTTLS; + } + //Do we need the OpenSSL extension? + $sslext = defined('OPENSSL_ALGO_SHA256'); + if (static::ENCRYPTION_STARTTLS === $secure || static::ENCRYPTION_SMTPS === $secure) { + //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled + if (!$sslext) { + throw new Exception($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); + } + } + $host = $hostinfo[2]; + $port = $this->Port; + if ( + array_key_exists(3, $hostinfo) && + is_numeric($hostinfo[3]) && + $hostinfo[3] > 0 && + $hostinfo[3] < 65536 + ) { + $port = (int) $hostinfo[3]; + } + if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { + try { + if ($this->Helo) { + $hello = $this->Helo; + } else { + $hello = $this->serverHostname(); + } + $this->smtp->hello($hello); + //Automatically enable TLS encryption if: + //* it's not disabled + //* we have openssl extension + //* we are not already using SSL + //* the server offers STARTTLS + if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) { + $tls = true; + } + if ($tls) { + if (!$this->smtp->startTLS()) { + $message = $this->getSmtpErrorMessage('connect_host'); + throw new Exception($message); + } + //We must resend EHLO after TLS negotiation + $this->smtp->hello($hello); + } + if ( + $this->SMTPAuth && !$this->smtp->authenticate( + $this->Username, + $this->Password, + $this->AuthType, + $this->oauth + ) + ) { + throw new Exception($this->lang('authenticate')); + } + + return true; + } catch (Exception $exc) { + $lastexception = $exc; + $this->edebug($exc->getMessage()); + //We must have connected, but then failed TLS or Auth, so close connection nicely + $this->smtp->quit(); + } + } + } + //If we get here, all connection attempts have failed, so close connection hard + $this->smtp->close(); + //As we've caught all exceptions, just report whatever the last one was + if ($this->exceptions && null !== $lastexception) { + throw $lastexception; + } + if ($this->exceptions) { + // no exception was thrown, likely $this->smtp->connect() failed + $message = $this->getSmtpErrorMessage('connect_host'); + throw new Exception($message); + } + + return false; + } + + /** + * Close the active SMTP session if one exists. + */ + public function smtpClose() + { + if ((null !== $this->smtp) && $this->smtp->connected()) { + $this->smtp->quit(); + $this->smtp->close(); + } + } + + /** + * Set the language for error messages. + * The default language is English. + * + * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") + * Optionally, the language code can be enhanced with a 4-character + * script annotation and/or a 2-character country annotation. + * @param string $lang_path Path to the language file directory, with trailing separator (slash) + * Do not set this from user input! + * + * @return bool Returns true if the requested language was loaded, false otherwise. + */ + public function setLanguage($langcode = 'en', $lang_path = '') + { + //Backwards compatibility for renamed language codes + $renamed_langcodes = [ + 'br' => 'pt_br', + 'cz' => 'cs', + 'dk' => 'da', + 'no' => 'nb', + 'se' => 'sv', + 'rs' => 'sr', + 'tg' => 'tl', + 'am' => 'hy', + ]; + + if (array_key_exists($langcode, $renamed_langcodes)) { + $langcode = $renamed_langcodes[$langcode]; + } + + //Define full set of translatable strings in English + $PHPMAILER_LANG = [ + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'buggy_php' => 'Your version of PHP is affected by a bug that may result in corrupted messages.' . + ' To fix it, switch to sending using SMTP, disable the mail.add_x_header option in' . + ' your php.ini, switch to MacOS or Linux, or upgrade your PHP to version 7.0.17+ or 7.1.3+.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'data_not_accepted' => 'SMTP Error: data not accepted.', + 'empty_message' => 'Message body empty', + 'encoding' => 'Unknown encoding: ', + 'execute' => 'Could not execute: ', + 'extension_missing' => 'Extension missing: ', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'from_failed' => 'The following From address failed: ', + 'instantiate' => 'Could not instantiate mail function.', + 'invalid_address' => 'Invalid address: ', + 'invalid_header' => 'Invalid header name or value', + 'invalid_hostentry' => 'Invalid hostentry: ', + 'invalid_host' => 'Invalid host: ', + 'mailer_not_supported' => ' mailer is not supported.', + 'provide_address' => 'You must provide at least one recipient email address.', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'signing' => 'Signing Error: ', + 'smtp_code' => 'SMTP code: ', + 'smtp_code_ex' => 'Additional SMTP info: ', + 'smtp_connect_failed' => 'SMTP connect() failed.', + 'smtp_detail' => 'Detail: ', + 'smtp_error' => 'SMTP server error: ', + 'variable_set' => 'Cannot set or reset variable: ', + ]; + if (empty($lang_path)) { + //Calculate an absolute path so it can work if CWD is not here + $lang_path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR; + } + + //Validate $langcode + $foundlang = true; + $langcode = strtolower($langcode); + if ( + !preg_match('/^(?P[a-z]{2})(?P + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animation.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animation.html new file mode 100644 index 0000000..b3a05bd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animation.html @@ -0,0 +1,51 @@ + + + + + + Class: Animation | Chart.js + + + + + + + +

# Class: Animation

# Constructors

# constructor

new Animation(cfg, target, prop, to?)

# Parameters

Name Type
cfg AnyObject
target AnyObject
prop string
to? unknown

# Defined in

animation.d.ts:5 (opens new window)

# Methods

# active

active(): boolean

# Returns

boolean

# Defined in

animation.d.ts:6 (opens new window)


# cancel

cancel(): void

# Returns

void

# Defined in

animation.d.ts:8 (opens new window)


# tick

tick(date): void

# Parameters

Name Type
date number

# Returns

void

# Defined in

animation.d.ts:9 (opens new window)


# update

update(cfg, to, date): void

# Parameters

Name Type
cfg AnyObject
to unknown
date number

# Returns

void

# Defined in

animation.d.ts:7 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animations.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animations.html new file mode 100644 index 0000000..5ff5610 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animations.html @@ -0,0 +1,51 @@ + + + + + + Class: Animations | Chart.js + + + + + + + +

# Class: Animations

# Constructors

# constructor

new Animations(chart, animations)

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
animations AnyObject

# Defined in

animation.d.ts:30 (opens new window)

# Methods

# configure

configure(animations): void

# Parameters

Name Type
animations AnyObject

# Returns

void

# Defined in

animation.d.ts:31 (opens new window)


# update

update(target, values): boolean

# Parameters

Name Type
target AnyObject
values AnyObject

# Returns

boolean

# Defined in

animation.d.ts:32 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animator.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animator.html new file mode 100644 index 0000000..cbe2ab3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Animator.html @@ -0,0 +1,51 @@ + + + + + + Class: Animator | Chart.js + + + + + + + +

# Class: Animator

# Constructors

# constructor

new Animator()

# Methods

# add

add(chart, items): void

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
items readonly Animation[]

# Returns

void

# Defined in

animation.d.ts:21 (opens new window)


# has

has(chart): boolean

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

boolean

# Defined in

animation.d.ts:22 (opens new window)


# listen

listen(chart, event, cb): void

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
event "progress" | "complete"
cb (event: AnimationEvent) => void

# Returns

void

# Defined in

animation.d.ts:20 (opens new window)


# remove

remove(chart): boolean

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

boolean

# Defined in

animation.d.ts:26 (opens new window)


# running

running(chart): boolean

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

boolean

# Defined in

animation.d.ts:24 (opens new window)


# start

start(chart): void

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Defined in

animation.d.ts:23 (opens new window)


# stop

stop(chart): void

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Defined in

animation.d.ts:25 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasePlatform.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasePlatform.html new file mode 100644 index 0000000..11c8dd6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasePlatform.html @@ -0,0 +1,53 @@ + + + + + + Class: BasePlatform | Chart.js + + + + + + + +

# Class: BasePlatform

# Hierarchy

# Constructors

# constructor

new BasePlatform()

# Methods

# acquireContext

acquireContext(canvas, options?): CanvasRenderingContext2D

Called at chart construction time, returns a context2d instance implementing +the W3C Canvas 2D Context API standard (opens new window).

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas from which to acquire context (platform specific)
options? CanvasRenderingContext2DSettings The chart options

# Returns

CanvasRenderingContext2D

# Defined in

index.esm.d.ts:2057 (opens new window)


# addEventListener

addEventListener(chart, type, listener): void

Registros the specified listener on the given chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to listen for event
type string The (ChartEvent) type to listen for
listener (e: ChartEvent) => void Receives a notification (an object that implements the ChartEvent interface) when an event of the specified type occurs.

# Returns

void

# Defined in

index.esm.d.ts:2075 (opens new window)


# getDevicePixelRatio

getDevicePixelRatio(): number

# Returns

number

the current devicePixelRatio of the device this platform is connected to.

# Defined in

index.esm.d.ts:2086 (opens new window)


# getMaximumSize

getMaximumSize(canvas, width?, height?, aspectRatio?): Object

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas for which to calculate the maximum size
width? number -
height? number -
aspectRatio? number -

# Returns

Object

the maximum size available.

Name Type
height number
width number

# Defined in

index.esm.d.ts:2094 (opens new window)


# isAttached

isAttached(canvas): boolean

# Parameters

Name Type
canvas HTMLCanvasElement

# Returns

boolean

true if the canvas is attached to the platform, false if not.

# Defined in

index.esm.d.ts:2099 (opens new window)


# releaseContext

releaseContext(context): boolean

Called at chart destruction time, releases any resources associated to the context +previously returned by the acquireContext() method.

# Parameters

Name Type Description
context CanvasRenderingContext2D The context2d instance

# Returns

boolean

true if the method succeeded, else false

# Defined in

index.esm.d.ts:2067 (opens new window)


# removeEventListener

removeEventListener(chart, type, listener): void

Removes the specified listener previously Registroed with addEventListener.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to remove the listener
type string The (ChartEvent) type to remove
listener (e: ChartEvent) => void The listener function to remove from the event target.

# Returns

void

# Defined in

index.esm.d.ts:2082 (opens new window)


# updateConfig

updateConfig(config): void

Updates config with platform specific requirements

# Parameters

Name Type
config ChartConfiguration<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> | ChartConfigurationCustomTypesPerDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Defined in

index.esm.d.ts:2104 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasicPlatform.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasicPlatform.html new file mode 100644 index 0000000..cee6172 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/BasicPlatform.html @@ -0,0 +1,53 @@ + + + + + + Class: BasicPlatform | Chart.js + + + + + + + +

# Class: BasicPlatform

# Hierarchy

# Constructors

# constructor

new BasicPlatform()

# Inherited from

BasePlatform.constructor

# Methods

# acquireContext

acquireContext(canvas, options?): CanvasRenderingContext2D

Called at chart construction time, returns a context2d instance implementing +the W3C Canvas 2D Context API standard (opens new window).

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas from which to acquire context (platform specific)
options? CanvasRenderingContext2DSettings The chart options

# Returns

CanvasRenderingContext2D

# Inherited from

BasePlatform.acquireContext

# Defined in

index.esm.d.ts:2057 (opens new window)


# addEventListener

addEventListener(chart, type, listener): void

Registros the specified listener on the given chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to listen for event
type string The (ChartEvent) type to listen for
listener (e: ChartEvent) => void Receives a notification (an object that implements the ChartEvent interface) when an event of the specified type occurs.

# Returns

void

# Inherited from

BasePlatform.addEventListener

# Defined in

index.esm.d.ts:2075 (opens new window)


# getDevicePixelRatio

getDevicePixelRatio(): number

# Returns

number

the current devicePixelRatio of the device this platform is connected to.

# Inherited from

BasePlatform.getDevicePixelRatio

# Defined in

index.esm.d.ts:2086 (opens new window)


# getMaximumSize

getMaximumSize(canvas, width?, height?, aspectRatio?): Object

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas for which to calculate the maximum size
width? number -
height? number -
aspectRatio? number -

# Returns

Object

the maximum size available.

Name Type
height number
width number

# Inherited from

BasePlatform.getMaximumSize

# Defined in

index.esm.d.ts:2094 (opens new window)


# isAttached

isAttached(canvas): boolean

# Parameters

Name Type
canvas HTMLCanvasElement

# Returns

boolean

true if the canvas is attached to the platform, false if not.

# Inherited from

BasePlatform.isAttached

# Defined in

index.esm.d.ts:2099 (opens new window)


# releaseContext

releaseContext(context): boolean

Called at chart destruction time, releases any resources associated to the context +previously returned by the acquireContext() method.

# Parameters

Name Type Description
context CanvasRenderingContext2D The context2d instance

# Returns

boolean

true if the method succeeded, else false

# Inherited from

BasePlatform.releaseContext

# Defined in

index.esm.d.ts:2067 (opens new window)


# removeEventListener

removeEventListener(chart, type, listener): void

Removes the specified listener previously Registroed with addEventListener.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to remove the listener
type string The (ChartEvent) type to remove
listener (e: ChartEvent) => void The listener function to remove from the event target.

# Returns

void

# Inherited from

BasePlatform.removeEventListener

# Defined in

index.esm.d.ts:2082 (opens new window)


# updateConfig

updateConfig(config): void

Updates config with platform specific requirements

# Parameters

Name Type
config ChartConfiguration<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> | ChartConfigurationCustomTypesPerDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Inherited from

BasePlatform.updateConfig

# Defined in

index.esm.d.ts:2104 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Chart.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Chart.html new file mode 100644 index 0000000..0e7a87f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Chart.html @@ -0,0 +1,51 @@ + + + + + + Class: Chart | Chart.js + + + + + + + +

# Class: Chart<TType, TData, TLabel>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>
TLabel unknown

# Constructors

# constructor

new Chart<TType, TData, TLabel>(item, config)

# Type parameters

Name Type
TType extends keyof ChartTypeRegistry = keyof ChartTypeRegistry
TData DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>
TLabel unknown

# Parameters

Name Type
item ChartItem
config ChartConfiguration<TType, TData, TLabel> | ChartConfigurationCustomTypesPerDataset<TType, TData, TLabel>

# Defined in

index.esm.d.ts:504 (opens new window)

# Properties

# aspectRatio

Readonly aspectRatio: number

# Defined in

index.esm.d.ts:491 (opens new window)


# attached

Readonly attached: boolean

# Defined in

index.esm.d.ts:496 (opens new window)


# boxes

Readonly boxes: LayoutItem[]

# Defined in

index.esm.d.ts:492 (opens new window)


# canvas

Readonly canvas: HTMLCanvasElement

# Defined in

index.esm.d.ts:486 (opens new window)


# chartArea

Readonly chartArea: ChartArea

# Defined in

index.esm.d.ts:494 (opens new window)


# config

Readonly config: ChartConfiguration<TType, TData, TLabel> | ChartConfigurationCustomTypesPerDataset<TType, TData, TLabel>

# Defined in

index.esm.d.ts:488 (opens new window)


# ctx

Readonly ctx: CanvasRenderingContext2D

# Defined in

index.esm.d.ts:487 (opens new window)


# currentDevicePixelRatio

Readonly currentDevicePixelRatio: number

# Defined in

index.esm.d.ts:493 (opens new window)


# data

data: ChartData<TType, TData, TLabel>

# Defined in

index.esm.d.ts:501 (opens new window)


# height

Readonly height: number

# Defined in

index.esm.d.ts:490 (opens new window)


# id

Readonly id: string

# Defined in

index.esm.d.ts:485 (opens new window)


# legend

Optional Readonly legend: LegendElement<TType>

# Defined in

index.esm.d.ts:498 (opens new window)


# options

options: DeepPartial<CoreChartOptions<TType> & ElementChartOptions<TType> & PluginChartOptions<TType> & DatasetChartOptions<TType> & ScaleChartOptions<TType> & ChartTypeRegistry[TType]["chartOptions"]>

# Defined in

index.esm.d.ts:502 (opens new window)


# platform

Readonly platform: BasePlatform

# Defined in

index.esm.d.ts:484 (opens new window)


# scales

Readonly scales: Object

# Index signature

▪ [key: string]: Scale

# Defined in

index.esm.d.ts:495 (opens new window)


# tooltip

Optional Readonly tooltip: TooltipModel<TType>

# Defined in

index.esm.d.ts:499 (opens new window)


# width

Readonly width: number

# Defined in

index.esm.d.ts:489 (opens new window)


# defaults

Static Readonly defaults: Defaults

# Defined in

index.esm.d.ts:542 (opens new window)


# instances

Static Readonly instances: Object

# Index signature

▪ [key: string]: Chart

# Defined in

index.esm.d.ts:545 (opens new window)


# overrides

Static Readonly overrides: Overrides

# Defined in

index.esm.d.ts:543 (opens new window)


# registry

Static Readonly registry: Registry

# Defined in

index.esm.d.ts:546 (opens new window)


# version

Static Readonly version: string

# Defined in

index.esm.d.ts:544 (opens new window)

# Methods

# bindEvents

bindEvents(): void

# Returns

void

# Defined in

index.esm.d.ts:536 (opens new window)


# buildOrUpdateControllers

buildOrUpdateControllers(): void

# Returns

void

# Defined in

index.esm.d.ts:512 (opens new window)


# buildOrUpdateScales

buildOrUpdateScales(): void

# Returns

void

# Defined in

index.esm.d.ts:511 (opens new window)


# clear

clear(): Chart<TType, TData, TLabel>

# Returns

Chart<TType, TData, TLabel>

# Defined in

index.esm.d.ts:506 (opens new window)


# destroy

destroy(): void

# Returns

void

# Defined in

index.esm.d.ts:534 (opens new window)


# draw

draw(): void

# Returns

void

# Defined in

index.esm.d.ts:516 (opens new window)


# ensureScalesHaveIDs

ensureScalesHaveIDs(): void

# Returns

void

# Defined in

index.esm.d.ts:510 (opens new window)


# getActiveElements

getActiveElements(): ActiveElement[]

# Returns

ActiveElement[]

# Defined in

index.esm.d.ts:531 (opens new window)


# getDataVisibility

getDataVisibility(index): boolean

# Parameters

Name Type
index number

# Returns

boolean

# Defined in

index.esm.d.ts:527 (opens new window)


# getDatasetMeta

getDatasetMeta(datasetIndex): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Parameters

Name Type
datasetIndex number

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Defined in

index.esm.d.ts:522 (opens new window)


# getElementsAtEventForMode

getElementsAtEventForMode(e, mode, options, useFinalPosition): InteractionItem[]

# Parameters

Name Type
e Event
mode string
options InteractionOptions
useFinalPosition boolean

# Returns

InteractionItem[]

# Defined in

index.esm.d.ts:519 (opens new window)


# getSortedVisibleDatasetMetas

getSortedVisibleDatasetMetas(): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Defined in

index.esm.d.ts:521 (opens new window)


# getVisibleDatasetCount

getVisibleDatasetCount(): number

# Returns

number

# Defined in

index.esm.d.ts:523 (opens new window)


# hide

hide(datasetIndex, dataIndex?): void

# Parameters

Name Type
datasetIndex number
dataIndex? number

# Returns

void

# Defined in

index.esm.d.ts:528 (opens new window)


# isDatasetVisible

isDatasetVisible(datasetIndex): boolean

# Parameters

Name Type
datasetIndex number

# Returns

boolean

# Defined in

index.esm.d.ts:524 (opens new window)


# isPointInArea

isPointInArea(point): boolean

# Parameters

Name Type
point Point

# Returns

boolean

# Defined in

index.esm.d.ts:518 (opens new window)


# notifyPlugins

notifyPlugins(hook, args?): boolean | void

# Parameters

Name Type
hook string
args? AnyObject

# Returns

boolean | void

# Defined in

index.esm.d.ts:540 (opens new window)


# render

render(): void

# Returns

void

# Defined in

index.esm.d.ts:515 (opens new window)


# reset

reset(): void

# Returns

void

# Defined in

index.esm.d.ts:513 (opens new window)


# resize

resize(width?, height?): void

# Parameters

Name Type
width? number
height? number

# Returns

void

# Defined in

index.esm.d.ts:509 (opens new window)


# setActiveElements

setActiveElements(active): void

# Parameters

Name Type
active ActiveDataPoint[]

# Returns

void

# Defined in

index.esm.d.ts:532 (opens new window)


# setDatasetVisibility

setDatasetVisibility(datasetIndex, visible): void

# Parameters

Name Type
datasetIndex number
visible boolean

# Returns

void

# Defined in

index.esm.d.ts:525 (opens new window)


# show

show(datasetIndex, dataIndex?): void

# Parameters

Name Type
datasetIndex number
dataIndex? number

# Returns

void

# Defined in

index.esm.d.ts:529 (opens new window)


# stop

stop(): Chart<TType, TData, TLabel>

# Returns

Chart<TType, TData, TLabel>

# Defined in

index.esm.d.ts:507 (opens new window)


# toBase64Image

toBase64Image(type?, quality?): string

# Parameters

Name Type
type? string
quality? unknown

# Returns

string

# Defined in

index.esm.d.ts:535 (opens new window)


# toggleDataVisibility

toggleDataVisibility(index): void

# Parameters

Name Type
index number

# Returns

void

# Defined in

index.esm.d.ts:526 (opens new window)


# unbindEvents

unbindEvents(): void

# Returns

void

# Defined in

index.esm.d.ts:537 (opens new window)


# update

update(mode?): void

# Parameters

Name Type
mode? "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Defined in

index.esm.d.ts:514 (opens new window)


# updateHoverStyle

updateHoverStyle(items, mode, enabled): void

# Parameters

Name Type
items InteractionItem[]
mode "dataset"
enabled boolean

# Returns

void

# Defined in

index.esm.d.ts:538 (opens new window)


# getChart

Static getChart(key): Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Parameters

Name Type
key string | HTMLCanvasElement | CanvasRenderingContext2D

# Returns

Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:547 (opens new window)


# Registro

Static Registro(...items): void

# Parameters

Name Type
...items ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:548 (opens new window)


# unRegistro

Static unRegistro(...items): void

# Parameters

Name Type
...items ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:549 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DatasetController.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DatasetController.html new file mode 100644 index 0000000..8e6b707 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DatasetController.html @@ -0,0 +1,51 @@ + + + + + + Class: DatasetController | Chart.js + + + + + + + +

# Class: DatasetController<TType, TElement, TDatasetElement, TParsedData>

# Type parameters

Name Type
TType extends ChartType = ChartType
TElement extends Element = Element
TDatasetElement extends Element = Element
TParsedData ParsedDataType<TType>

# Hierarchy

# Constructors

# constructor

new DatasetController<TType, TElement, TDatasetElement, TParsedData>(chart, datasetIndex)

# Type parameters

Name Type
TType extends keyof ChartTypeRegistry = keyof ChartTypeRegistry
TElement extends Element<AnyObject, AnyObject, TElement> = Element<AnyObject, AnyObject>
TDatasetElement extends Element<AnyObject, AnyObject, TDatasetElement> = Element<AnyObject, AnyObject>
TParsedData ParsedDataType<TType>

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
datasetIndex number

# Defined in

index.esm.d.ts:579 (opens new window)

# Properties

# _cachedMeta

Readonly _cachedMeta: ChartMeta<TElement, TDatasetElement, TType>

# Defined in

index.esm.d.ts:583 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:581 (opens new window)


# enableOptionSharing

enableOptionSharing: boolean

# Defined in

index.esm.d.ts:584 (opens new window)


# index

Readonly index: number

# Defined in

index.esm.d.ts:582 (opens new window)


# supportsDecimation

supportsDecimation: boolean

# Defined in

index.esm.d.ts:588 (opens new window)

# Methods

# addElements

addElements(): void

# Returns

void

# Defined in

index.esm.d.ts:604 (opens new window)


# applyStack

Protected applyStack(scale, parsed): number

# Parameters

Name Type
scale Scale<CoreScaleOptions>
parsed unknown[]

# Returns

number

# Defined in

index.esm.d.ts:640 (opens new window)


# buildOrUpdateElements

buildOrUpdateElements(resetNewElements?): void

# Parameters

Name Type
resetNewElements? boolean

# Returns

void

# Defined in

index.esm.d.ts:605 (opens new window)


# configure

configure(): void

# Returns

void

# Defined in

index.esm.d.ts:602 (opens new window)


# draw

draw(): void

# Returns

void

# Defined in

index.esm.d.ts:597 (opens new window)


# getAllParsedValues

getAllParsedValues(scale): number[]

# Parameters

Name Type
scale Scale<CoreScaleOptions>

# Returns

number[]

# Defined in

index.esm.d.ts:591 (opens new window)


# getDataset

getDataset(): ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Returns

ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Defined in

index.esm.d.ts:599 (opens new window)


# getLabelAndValue

Protected getLabelAndValue(index): Object

# Parameters

Name Type
index number

# Returns

Object

Name Type
label string
value string

# Defined in

index.esm.d.ts:592 (opens new window)


# getMaxOverflow

Protected getMaxOverflow(): number | boolean

# Returns

number | boolean

# Defined in

index.esm.d.ts:596 (opens new window)


# getMeta

getMeta(): ChartMeta<TElement, TDatasetElement, TType>

# Returns

ChartMeta<TElement, TDatasetElement, TType>

# Defined in

index.esm.d.ts:600 (opens new window)


# getMinMax

Protected getMinMax(scale, canStack?): Object

# Parameters

Name Type
scale Scale<CoreScaleOptions>
canStack? boolean

# Returns

Object

Name Type
max number
min number

# Defined in

index.esm.d.ts:647 (opens new window)


# getParsed

Protected getParsed(index): TParsedData

# Parameters

Name Type
index number

# Returns

TParsedData

# Defined in

index.esm.d.ts:639 (opens new window)


# getScaleForId

getScaleForId(scaleID): Scale<CoreScaleOptions>

# Parameters

Name Type
scaleID string

# Returns

Scale<CoreScaleOptions>

# Defined in

index.esm.d.ts:601 (opens new window)


# getSharedOptions

Protected getSharedOptions(options): AnyObject

Utility for checking if the options are shared and should be animated separately.

# Parameters

Name Type
options AnyObject

# Returns

AnyObject

# Defined in

index.esm.d.ts:614 (opens new window)


# getStyle

getStyle(index, active): AnyObject

# Parameters

Name Type
index number
active boolean

# Returns

AnyObject

# Defined in

index.esm.d.ts:607 (opens new window)


# includeOptions

Protected includeOptions(mode, sharedOptions): boolean

Utility for determining if options should be included in the updated properties

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
sharedOptions AnyObject

# Returns

boolean

# Defined in

index.esm.d.ts:619 (opens new window)


# initialize

initialize(): void

# Returns

void

# Defined in

index.esm.d.ts:603 (opens new window)


# linkScales

linkScales(): void

# Returns

void

# Defined in

index.esm.d.ts:590 (opens new window)


# parse

parse(start, count): void

# Parameters

Name Type
start number
count number

# Returns

void

# Defined in

index.esm.d.ts:635 (opens new window)


# parseArrayData

Protected parseArrayData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<TElement, TDatasetElement, TType>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Defined in

index.esm.d.ts:637 (opens new window)


# parseObjectData

Protected parseObjectData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<TElement, TDatasetElement, TType>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Defined in

index.esm.d.ts:638 (opens new window)


# parsePrimitiveData

Protected parsePrimitiveData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<TElement, TDatasetElement, TType>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Defined in

index.esm.d.ts:636 (opens new window)


# removeHoverStyle

removeHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element TElement
datasetIndex number
index number

# Returns

void

# Defined in

index.esm.d.ts:632 (opens new window)


# reset

reset(): void

# Returns

void

# Defined in

index.esm.d.ts:598 (opens new window)


# resolveDataElementOptions

Protected resolveDataElementOptions(index, mode): AnyObject

# Parameters

Name Type
index number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Defined in

index.esm.d.ts:609 (opens new window)


# resolveDatasetElementOptions

Protected resolveDatasetElementOptions(mode): AnyObject

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Defined in

index.esm.d.ts:608 (opens new window)


# setHoverStyle

setHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element TElement
datasetIndex number
index number

# Returns

void

# Defined in

index.esm.d.ts:633 (opens new window)


# update

update(mode): void

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Defined in

index.esm.d.ts:594 (opens new window)


# updateElement

Protected updateElement(element, index, properties, mode): void

Utility for updating an element with new properties, using animations when appropriate.

# Parameters

Name Type
element TElement | TDatasetElement
index number
properties AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Defined in

index.esm.d.ts:625 (opens new window)


# updateElements

updateElements(elements, start, count, mode): void

# Parameters

Name Type
elements TElement[]
start number
count number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Defined in

index.esm.d.ts:593 (opens new window)


# updateIndex

updateIndex(datasetIndex): void

# Parameters

Name Type
datasetIndex number

# Returns

void

# Defined in

index.esm.d.ts:595 (opens new window)


# updateRangeFromParsed

Protected updateRangeFromParsed(range, scale, parsed, stack): void

# Parameters

Name Type
range Object
range.max number
range.min number
scale Scale<CoreScaleOptions>
parsed unknown[]
stack string | boolean

# Returns

void

# Defined in

index.esm.d.ts:641 (opens new window)


# updateSharedOptions

Protected updateSharedOptions(sharedOptions, mode, newOptions): void

Utility to animate the shared options, that are potentially affecting multiple elements.

# Parameters

Name Type
sharedOptions AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
newOptions AnyObject

# Returns

void

# Defined in

index.esm.d.ts:631 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DomPlatform.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DomPlatform.html new file mode 100644 index 0000000..7c657f9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/DomPlatform.html @@ -0,0 +1,53 @@ + + + + + + Class: DomPlatform | Chart.js + + + + + + + +

# Class: DomPlatform

# Hierarchy

# Constructors

# constructor

new DomPlatform()

# Inherited from

BasePlatform.constructor

# Methods

# acquireContext

acquireContext(canvas, options?): CanvasRenderingContext2D

Called at chart construction time, returns a context2d instance implementing +the W3C Canvas 2D Context API standard (opens new window).

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas from which to acquire context (platform specific)
options? CanvasRenderingContext2DSettings The chart options

# Returns

CanvasRenderingContext2D

# Inherited from

BasePlatform.acquireContext

# Defined in

index.esm.d.ts:2057 (opens new window)


# addEventListener

addEventListener(chart, type, listener): void

Registros the specified listener on the given chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to listen for event
type string The (ChartEvent) type to listen for
listener (e: ChartEvent) => void Receives a notification (an object that implements the ChartEvent interface) when an event of the specified type occurs.

# Returns

void

# Inherited from

BasePlatform.addEventListener

# Defined in

index.esm.d.ts:2075 (opens new window)


# getDevicePixelRatio

getDevicePixelRatio(): number

# Returns

number

the current devicePixelRatio of the device this platform is connected to.

# Inherited from

BasePlatform.getDevicePixelRatio

# Defined in

index.esm.d.ts:2086 (opens new window)


# getMaximumSize

getMaximumSize(canvas, width?, height?, aspectRatio?): Object

# Parameters

Name Type Description
canvas HTMLCanvasElement The canvas for which to calculate the maximum size
width? number -
height? number -
aspectRatio? number -

# Returns

Object

the maximum size available.

Name Type
height number
width number

# Inherited from

BasePlatform.getMaximumSize

# Defined in

index.esm.d.ts:2094 (opens new window)


# isAttached

isAttached(canvas): boolean

# Parameters

Name Type
canvas HTMLCanvasElement

# Returns

boolean

true if the canvas is attached to the platform, false if not.

# Inherited from

BasePlatform.isAttached

# Defined in

index.esm.d.ts:2099 (opens new window)


# releaseContext

releaseContext(context): boolean

Called at chart destruction time, releases any resources associated to the context +previously returned by the acquireContext() method.

# Parameters

Name Type Description
context CanvasRenderingContext2D The context2d instance

# Returns

boolean

true if the method succeeded, else false

# Inherited from

BasePlatform.releaseContext

# Defined in

index.esm.d.ts:2067 (opens new window)


# removeEventListener

removeEventListener(chart, type, listener): void

Removes the specified listener previously Registroed with addEventListener.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> Chart from which to remove the listener
type string The (ChartEvent) type to remove
listener (e: ChartEvent) => void The listener function to remove from the event target.

# Returns

void

# Inherited from

BasePlatform.removeEventListener

# Defined in

index.esm.d.ts:2082 (opens new window)


# updateConfig

updateConfig(config): void

Updates config with platform specific requirements

# Parameters

Name Type
config ChartConfiguration<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> | ChartConfigurationCustomTypesPerDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Inherited from

BasePlatform.updateConfig

# Defined in

index.esm.d.ts:2104 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Scale.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Scale.html new file mode 100644 index 0000000..4a4346d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/classes/Scale.html @@ -0,0 +1,56 @@ + + + + + + Class: Scale | Chart.js + + + + + + + +

# Class: Scale<O>

# Type parameters

Name Type
O extends CoreScaleOptions = CoreScaleOptions

# Hierarchy

# Constructors

# constructor

new Scale<O>(cfg)

# Type parameters

Name Type
O extends CoreScaleOptions = CoreScaleOptions

# Parameters

Name Type
cfg Object
cfg.chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
cfg.ctx CanvasRenderingContext2D
cfg.id string
cfg.type string

# Inherited from

Element<unknown, O>.constructor

# Defined in

index.esm.d.ts:1337 (opens new window)

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# axis

axis: string

# Defined in

index.esm.d.ts:1239 (opens new window)


# bottom

bottom: number

Bottom edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.bottom

# Defined in

layout.d.ts:41 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:1229 (opens new window)


# ctx

Readonly ctx: CanvasRenderingContext2D

# Defined in

index.esm.d.ts:1228 (opens new window)


# fullSize

fullSize: boolean

if true, and the item is horizontal, then push vertical boxes down

# Inherited from

LayoutItem.fullSize

# Defined in

layout.d.ts:17 (opens new window)


# height

height: number

Height of item. Must be valid after update()

# Inherited from

LayoutItem.height

# Defined in

layout.d.ts:25 (opens new window)


# id

Readonly id: string

# Defined in

index.esm.d.ts:1226 (opens new window)


# labelRotation

labelRotation: number

# Defined in

index.esm.d.ts:1240 (opens new window)


# left

left: number

Left edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.left

# Defined in

layout.d.ts:29 (opens new window)


# max

max: number

# Defined in

index.esm.d.ts:1242 (opens new window)


# maxHeight

maxHeight: number

# Defined in

index.esm.d.ts:1232 (opens new window)


# maxWidth

maxWidth: number

# Defined in

index.esm.d.ts:1231 (opens new window)


# min

min: number

# Defined in

index.esm.d.ts:1241 (opens new window)


# options

Readonly options: O

# Inherited from

Element.options

# Defined in

element.d.ts:8 (opens new window)


# paddingBottom

paddingBottom: number

# Defined in

index.esm.d.ts:1235 (opens new window)


# paddingLeft

paddingLeft: number

# Defined in

index.esm.d.ts:1236 (opens new window)


# paddingRight

paddingRight: number

# Defined in

index.esm.d.ts:1237 (opens new window)


# paddingTop

paddingTop: number

# Defined in

index.esm.d.ts:1234 (opens new window)


# position

position: LayoutPosition

The position of the item in the chart layout. Possible values are

# Inherited from

LayoutItem.position

# Defined in

layout.d.ts:9 (opens new window)


right: number

Right edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.right

# Defined in

layout.d.ts:37 (opens new window)


# ticks

ticks: Tick[]

# Defined in

index.esm.d.ts:1243 (opens new window)


# top

top: number

Top edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.top

# Defined in

layout.d.ts:33 (opens new window)


# type

Readonly type: string

# Defined in

index.esm.d.ts:1227 (opens new window)


# weight

weight: number

The weight used to sort the item. Higher weights are further away from the chart area

# Inherited from

LayoutItem.weight

# Defined in

layout.d.ts:13 (opens new window)


# width

width: number

Width of item. Must be valid after update()

# Inherited from

LayoutItem.width

# Defined in

layout.d.ts:21 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# afterBuildTicks

afterBuildTicks(): void

# Returns

void

# Defined in

index.esm.d.ts:1323 (opens new window)


# afterCalculateLabelRotation

afterCalculateLabelRotation(): void

# Returns

void

# Defined in

index.esm.d.ts:1329 (opens new window)


# afterDataLimits

afterDataLimits(): void

# Returns

void

# Defined in

index.esm.d.ts:1320 (opens new window)


# afterFit

afterFit(): void

# Returns

void

# Defined in

index.esm.d.ts:1332 (opens new window)


# afterSetDimensions

afterSetDimensions(): void

# Returns

void

# Defined in

index.esm.d.ts:1317 (opens new window)


# afterTickToLabelConversion

afterTickToLabelConversion(): void

# Returns

void

# Defined in

index.esm.d.ts:1326 (opens new window)


# afterUpdate

afterUpdate(): void

# Returns

void

# Defined in

index.esm.d.ts:1314 (opens new window)


# beforeBuildTicks

beforeBuildTicks(): void

# Returns

void

# Defined in

index.esm.d.ts:1321 (opens new window)


# beforeCalculateLabelRotation

beforeCalculateLabelRotation(): void

# Returns

void

# Defined in

index.esm.d.ts:1327 (opens new window)


# beforeDataLimits

beforeDataLimits(): void

# Returns

void

# Defined in

index.esm.d.ts:1318 (opens new window)


# beforeFit

beforeFit(): void

# Returns

void

# Defined in

index.esm.d.ts:1330 (opens new window)


# beforeLayout

Optional beforeLayout(): void

Called before the layout process starts

# Returns

void

# Inherited from

LayoutItem.beforeLayout

# Defined in

layout.d.ts:46 (opens new window)


# beforeSetDimensions

beforeSetDimensions(): void

# Returns

void

# Defined in

index.esm.d.ts:1315 (opens new window)


# beforeTickToLabelConversion

beforeTickToLabelConversion(): void

# Returns

void

# Defined in

index.esm.d.ts:1324 (opens new window)


# beforeUpdate

beforeUpdate(): void

# Returns

void

# Defined in

index.esm.d.ts:1312 (opens new window)


# buildTicks

buildTicks(): Tick[]

# Returns

Tick[]

# Defined in

index.esm.d.ts:1322 (opens new window)


# calculateLabelRotation

calculateLabelRotation(): void

# Returns

void

# Defined in

index.esm.d.ts:1328 (opens new window)


# configure

configure(): void

# Returns

void

# Defined in

index.esm.d.ts:1313 (opens new window)


# determineDataLimits

determineDataLimits(): void

# Returns

void

# Defined in

index.esm.d.ts:1319 (opens new window)


# draw

draw(chartArea): void

Draws the element

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

LayoutItem.draw

# Defined in

layout.d.ts:50 (opens new window)


# drawGrid

drawGrid(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Defined in

index.esm.d.ts:1248 (opens new window)


# drawLabels

drawLabels(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Defined in

index.esm.d.ts:1247 (opens new window)


# drawTitle

drawTitle(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Defined in

index.esm.d.ts:1246 (opens new window)


# fit

fit(): void

# Returns

void

# Defined in

index.esm.d.ts:1331 (opens new window)


# generateTickLabels

generateTickLabels(ticks): void

# Parameters

Name Type
ticks Tick[]

# Returns

void

# Defined in

index.esm.d.ts:1325 (opens new window)


# getBasePixel

getBasePixel(): number

Returns the pixel for the minimum chart value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Returns

number

# Defined in

index.esm.d.ts:1304 (opens new window)


# getBaseValue

getBaseValue(): number

# Returns

number

# Defined in

index.esm.d.ts:1298 (opens new window)


# getDecimalForPixel

getDecimalForPixel(pixel): number

# Parameters

Name Type
pixel number

# Returns

number

# Defined in

index.esm.d.ts:1254 (opens new window)


# getLabelForValue

getLabelForValue(value): string

Used to get the label to display in the tooltip for the given value

# Parameters

Name Type
value number

# Returns

string

# Defined in

index.esm.d.ts:1274 (opens new window)


# getLabels

getLabels(): string[]

# Returns

string[]

# Defined in

index.esm.d.ts:1311 (opens new window)


# getLineWidthForValue

getLineWidthForValue(value): number

Returns the grid line width at given value

# Parameters

Name Type
value number

# Returns

number

# Defined in

index.esm.d.ts:1279 (opens new window)


# getMatchingVisibleMetas

getMatchingVisibleMetas(type?): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Parameters

Name Type
type? string

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Defined in

index.esm.d.ts:1244 (opens new window)


# getMinMax

getMinMax(canStack): Object

# Parameters

Name Type
canStack boolean

# Returns

Object

Name Type
max number
min number

# Defined in

index.esm.d.ts:1309 (opens new window)


# getPadding

Optional getPadding(): ChartArea

Returns an object with padding on the edges

# Returns

ChartArea

# Inherited from

LayoutItem.getPadding

# Defined in

layout.d.ts:54 (opens new window)


# getPixelForDecimal

getPixelForDecimal(decimal): number

Utility for getting the pixel location of a percentage of scale +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
decimal number

# Returns

number

# Defined in

index.esm.d.ts:1261 (opens new window)


# getPixelForTick

getPixelForTick(index): number

Returns the location of the tick at the given index +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
index number

# Returns

number

# Defined in

index.esm.d.ts:1268 (opens new window)


# getPixelForValue

getPixelForValue(value, index?): number

Returns the location of the given data point. Value can either be an index or a numerical value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
value number
index? number

# Returns

number

# Defined in

index.esm.d.ts:1288 (opens new window)


# getProps

getProps<P>(props, final?): Pick<unknown, P[number]>

# Type parameters

Name Type
P extends never[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<unknown, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# getTicks

getTicks(): Tick[]

# Returns

Tick[]

# Defined in

index.esm.d.ts:1310 (opens new window)


# getUserBounds

getUserBounds(): Object

# Returns

Object

Name Type
max number
maxDefined boolean
min number
minDefined boolean

# Defined in

index.esm.d.ts:1308 (opens new window)


# getValueForPixel

getValueForPixel(pixel): number

Used to get the data value from a given pixel. This is the inverse of getPixelForValue +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
pixel number

# Returns

number

# Defined in

index.esm.d.ts:1296 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# init

init(options): void

# Parameters

Name Type
options O

# Returns

void

# Defined in

index.esm.d.ts:1306 (opens new window)


# isFullSize

isFullSize(): boolean

# Returns

boolean

# Defined in

index.esm.d.ts:1334 (opens new window)


# isHorizontal

isHorizontal(): boolean

returns true if the layout item is horizontal (ie. top or bottom)

# Returns

boolean

# Inherited from

LayoutItem.isHorizontal

# Defined in

layout.d.ts:58 (opens new window)


# parse

parse(raw, index): unknown

# Parameters

Name Type
raw unknown
index number

# Returns

unknown

# Defined in

index.esm.d.ts:1307 (opens new window)


# setDimensions

setDimensions(): void

# Returns

void

# Defined in

index.esm.d.ts:1316 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)


# update

update(width, height, margins?): void

Takes two parameters: width and height.

# Parameters

Name Type
width number
height number
margins? ChartArea

# Returns

void

# Inherited from

LayoutItem.update

# Defined in

layout.d.ts:64 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/DecimationAlgorithm.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/DecimationAlgorithm.html new file mode 100644 index 0000000..fc4b585 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/DecimationAlgorithm.html @@ -0,0 +1,51 @@ + + + + + + Enumeration: DecimationAlgorithm | Chart.js + + + + + + + + + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/UpdateModeEnum.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/UpdateModeEnum.html new file mode 100644 index 0000000..28d74e5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/enums/UpdateModeEnum.html @@ -0,0 +1,51 @@ + + + + + + Enumeration: UpdateModeEnum | Chart.js + + + + + + + + + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/index.html new file mode 100644 index 0000000..69ee5cd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/index.html @@ -0,0 +1,47 @@ + + + + + + Chart.js - v3.9.1 | Chart.js + + + + + + + +

# Chart.js - v3.9.1

# Enumerations

# Classes

# Interfaces

# Type aliases

# Align

Ƭ Align: "start" | "center" | "end"

# Defined in

index.esm.d.ts:1682 (opens new window)


# AnimationOptions

Ƭ AnimationOptions<TType>: Object

# Type parameters

Name Type
TType extends ChartType

# Type declaration

Name Type
animation false | AnimationSpec<TType> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }
animations AnimationsSpec<TType>
transitions TransitionsSpec<TType>

# Defined in

index.esm.d.ts:1639 (opens new window)


# AnimationSpec

Ƭ AnimationSpec<TType>: Object

# Type parameters

Name Type
TType extends ChartType

# Type declaration

Name Type Description
delay? Scriptable<number, ScriptableContext<TType>> Delay before starting the animations. default 0
duration? Scriptable<number, ScriptableContext<TType>> The number of milliseconds an animation takes. default 1000
easing? Scriptable<EasingFunction, ScriptableContext<TType>> Easing function to use default 'easeOutQuart'
loop? Scriptable<boolean, ScriptableContext<TType>> If set to true, the animations loop endlessly. default false

# Defined in

index.esm.d.ts:1583 (opens new window)


# AnimationsSpec

Ƭ AnimationsSpec<TType>: Object

# Type parameters

Name Type
TType extends ChartType

# Index signature

▪ [name: string]: false | AnimationSpec<TType> & { from: Scriptable<Color | number | boolean, ScriptableContext<TType>> ; properties: string[] ; to: Scriptable<Color | number | boolean, ScriptableContext<TType>> ; type: "color" | "number" | "boolean" ; fn: <T>(from: T, to: T, factor: number) => T }

# Defined in

index.esm.d.ts:1608 (opens new window)


# BarController

Ƭ BarController: DatasetController

# Defined in

index.esm.d.ts:145 (opens new window)


# BubbleController

Ƭ BubbleController: DatasetController

# Defined in

index.esm.d.ts:173 (opens new window)


# CartesianTickOptions

Ƭ CartesianTickOptions: TickOptions & { align: Align | "inner" ; autoSkip: boolean ; autoSkipPadding: number ; crossAlign: "near" | "center" | "far" ; includeBounds: boolean ; labelOffset: number ; maxRotation: number ; maxTicksLimit: number ; minRotation: number ; mirror: boolean ; padding: number ; sampleSize: number }

# Defined in

index.esm.d.ts:2982 (opens new window)


# CategoryScale

Ƭ CategoryScale<O>: Scale<O>

# Type parameters

Name Type
O extends CategoryScaleOptions = CategoryScaleOptions

# Defined in

index.esm.d.ts:3147 (opens new window)


# CategoryScaleOptions

Ƭ CategoryScaleOptions: Omit<CartesianScaleOptions, "min" | "max"> & { labels: string[] | string[][] ; max: string | number ; min: string | number }

# Defined in

index.esm.d.ts:3141 (opens new window)


# ChartComponentLike

Ƭ ChartComponentLike: ChartComponent | ChartComponent[] | { [key: string]: ChartComponent; } | Plugin | Plugin[]

# Defined in

index.esm.d.ts:1113 (opens new window)


# ChartDataset

Ƭ ChartDataset<TType, TData>: DeepPartial<{ [key in ChartType]: Object & ChartTypeRegistry[key]["datasetOptions"] }[TType]> & ChartDatasetProperties<TType, TData>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>

# Defined in

index.esm.d.ts:3659 (opens new window)


# ChartDatasetCustomTypesPerDataset

Ƭ ChartDatasetCustomTypesPerDataset<TType, TData>: DeepPartial<{ [key in ChartType]: Object & ChartTypeRegistry[key]["datasetOptions"] }[TType]> & ChartDatasetPropertiesCustomTypesPerDataset<TType, TData>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>

# Defined in

index.esm.d.ts:3666 (opens new window)


# ChartItem

Ƭ ChartItem: string | CanvasRenderingContext2D | HTMLCanvasElement | { canvas: HTMLCanvasElement } | ArrayLike<CanvasRenderingContext2D | HTMLCanvasElement>

# Defined in

index.esm.d.ts:554 (opens new window)


# ChartMeta

Ƭ ChartMeta<TElement, TDatasetElement, TType>: DeepPartial<{ [key in ChartType]: ChartTypeRegistry[key]["metaExtensions"] }[TType]> & ChartMetaCommon<TElement, TDatasetElement>

# Type parameters

Name Type
TElement extends Element = Element
TDatasetElement extends Element = Element
TType extends ChartType = ChartType

# Defined in

index.esm.d.ts:460 (opens new window)


# ChartOptions

Ƭ ChartOptions<TType>: DeepPartial<CoreChartOptions<TType> & ElementChartOptions<TType> & PluginChartOptions<TType> & DatasetChartOptions<TType> & ScaleChartOptions<TType> & ChartTypeRegistry[TType]["chartOptions"]>

# Type parameters

Name Type
TType extends ChartType = ChartType

# Defined in

index.esm.d.ts:3636 (opens new window)


# ChartType

Ƭ ChartType: keyof ChartTypeRegistry

# Defined in

index.esm.d.ts:3615 (opens new window)


# Color

Ƭ Color: string | CanvasGradient | CanvasPattern

# Defined in

color.d.ts:1 (opens new window)


# DatasetChartOptions

Ƭ DatasetChartOptions<TType>: { [key in TType]: Object }

# Type parameters

Name Type
TType extends ChartType = ChartType

# Defined in

index.esm.d.ts:3624 (opens new window)


# DecimationOptions

Ƭ DecimationOptions: LttbDecimationOptions | MinMaxDecimationOptions

# Defined in

index.esm.d.ts:2130 (opens new window)


# DefaultDataPoint

Ƭ DefaultDataPoint<TType>: DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>

# Type parameters

Name Type
TType extends ChartType

# Defined in

index.esm.d.ts:3645 (opens new window)


# DoughnutDataPoint

Ƭ DoughnutDataPoint: number

# Defined in

index.esm.d.ts:331 (opens new window)


# EasingFunction

Ƭ EasingFunction: "linear" | "easeInQuad" | "easeOutQuad" | "easeInOutQuad" | "easeInCubic" | "easeOutCubic" | "easeInOutCubic" | "easeInQuart" | "easeOutQuart" | "easeInOutQuart" | "easeInQuint" | "easeOutQuint" | "easeInOutQuint" | "easeInSine" | "easeOutSine" | "easeInOutSine" | "easeInExpo" | "easeOutExpo" | "easeInOutExpo" | "easeInCirc" | "easeOutCirc" | "easeInOutCirc" | "easeInElastic" | "easeOutElastic" | "easeInOutElastic" | "easeInBack" | "easeOutBack" | "easeInOutBack" | "easeInBounce" | "easeOutBounce" | "easeInOutBounce"

# Defined in

index.esm.d.ts:1550 (opens new window)


# ElementChartOptions

Ƭ ElementChartOptions<TType>: Object

# Type parameters

Name Type
TType extends ChartType = ChartType

# Type declaration

Name Type
elements ElementOptionsByType<TType>

# Defined in

index.esm.d.ts:2046 (opens new window)


# FillTarget

Ƭ FillTarget: number | string | { value: number } | "start" | "end" | "origin" | "stack" | "shape" | boolean

# Defined in

index.esm.d.ts:2138 (opens new window)


# InteractionAxis

Ƭ InteractionAxis: "x" | "y" | "xy" | "r"

# Defined in

index.esm.d.ts:1422 (opens new window)


# InteractionMode

Ƭ InteractionMode: keyof InteractionModeMap

# Defined in

index.esm.d.ts:752 (opens new window)


# InteractionModeFunction

Ƭ InteractionModeFunction: (chart: Chart, e: ChartEvent, options: InteractionOptions, useFinalPosition?: boolean) => InteractionItem[]

# Type declaration

▸ (chart, e, options, useFinalPosition?): InteractionItem[]

# Parameters
Name Type
chart Chart
e ChartEvent
options InteractionOptions
useFinalPosition? boolean
# Returns

InteractionItem[]

# Defined in

index.esm.d.ts:714 (opens new window)


# LayoutPosition

Ƭ LayoutPosition: "left" | "top" | "right" | "bottom" | "center" | "chartArea" | { [scaleId: string]: number; }

# Defined in

layout.d.ts:3 (opens new window)


# LineController

Ƭ LineController: DatasetController

# Defined in

index.esm.d.ts:219 (opens new window)


# LinearScale

Ƭ LinearScale<O>: Scale<O>

# Type parameters

Name Type
O extends LinearScaleOptions = LinearScaleOptions

# Defined in

index.esm.d.ts:3196 (opens new window)


# LinearScaleOptions

Ƭ LinearScaleOptions: CartesianScaleOptions & { beginAtZero: boolean ; grace?: string | number ; suggestedMax?: number ; suggestedMin?: number ; ticks: { count: number ; format: Intl.NumberFormatOptions ; precision: number ; stepSize: number } }

# Defined in

index.esm.d.ts:3153 (opens new window)


# LogarithmicScale

Ƭ LogarithmicScale<O>: Scale<O>

# Type parameters

Name Type
O extends LogarithmicScaleOptions = LogarithmicScaleOptions

# Defined in

index.esm.d.ts:3220 (opens new window)


# LogarithmicScaleOptions

Ƭ LogarithmicScaleOptions: CartesianScaleOptions & { suggestedMax?: number ; suggestedMin?: number ; ticks: { format: Intl.NumberFormatOptions } }

# Defined in

index.esm.d.ts:3202 (opens new window)


# Overrides

Ƭ Overrides: { [key in ChartType]: CoreChartOptions<key> & ElementChartOptions<key> & PluginChartOptions<key> & DatasetChartOptions<ChartType> & ScaleChartOptions<key> & ChartTypeRegistry[key]["chartOptions"] }

# Defined in

index.esm.d.ts:691 (opens new window)


# ParsedDataType

Ƭ ParsedDataType<TType>: ChartTypeRegistry[TType]["parsedDataType"]

# Type parameters

Name Type
TType extends ChartType = ChartType

# Defined in

index.esm.d.ts:3647 (opens new window)


# PieAnimationOptions

Ƭ PieAnimationOptions: DoughnutAnimationOptions

# Defined in

index.esm.d.ts:354 (opens new window)


# PieController

Ƭ PieController: DoughnutController

# Defined in

index.esm.d.ts:359 (opens new window)


# PieControllerChartOptions

Ƭ PieControllerChartOptions: DoughnutControllerChartOptions

# Defined in

index.esm.d.ts:353 (opens new window)


# PieControllerDatasetOptions

Ƭ PieControllerDatasetOptions: DoughnutControllerDatasetOptions

# Defined in

index.esm.d.ts:352 (opens new window)


# PieDataPoint

Ƭ PieDataPoint: DoughnutDataPoint

# Defined in

index.esm.d.ts:356 (opens new window)


# PieMetaExtensions

Ƭ PieMetaExtensions: DoughnutMetaExtensions

# Defined in

index.esm.d.ts:357 (opens new window)


# PointStyle

Ƭ PointStyle: "circle" | "cross" | "crossRot" | "dash" | "line" | "rect" | "rectRounded" | "rectRot" | "star" | "triangle" | HTMLImageElement | HTMLCanvasElement

# Defined in

index.esm.d.ts:1865 (opens new window)


# PolarAreaAnimationOptions

Ƭ PolarAreaAnimationOptions: DoughnutAnimationOptions

# Defined in

index.esm.d.ts:373 (opens new window)


# RadarController

Ƭ RadarController: DatasetController

# Defined in

index.esm.d.ts:420 (opens new window)


# RadarControllerChartOptions

Ƭ RadarControllerChartOptions: LineControllerChartOptions

# Defined in

index.esm.d.ts:418 (opens new window)


# RadialLinearScaleOptions

Ƭ RadialLinearScaleOptions: CoreScaleOptions & { angleLines: { borderDash: Scriptable<number[], ScripTablascaleContext> ; borderDashOffset: Scriptable<number, ScripTablascaleContext> ; color: Scriptable<Color, ScripTablascaleContext> ; display: boolean ; lineWidth: Scriptable<number, ScripTablascaleContext> } ; animate: boolean ; beginAtZero: boolean ; grid: GridLineOptions ; max: number ; min: number ; pointLabels: { backdropColor: Scriptable<Color, ScripTablascalePointLabelContext> ; backdropPadding: Scriptable<number | ChartArea, ScripTablascalePointLabelContext> ; borderRadius: Scriptable<number | BorderRadius, ScripTablascalePointLabelContext> ; centerPointLabels: boolean ; color: Scriptable<Color, ScripTablascalePointLabelContext> ; display: boolean ; font: ScriptableAndScriptableOptions<Partial<FontSpec>, ScripTablascalePointLabelContext> ; padding: Scriptable<number, ScripTablascalePointLabelContext> ; callback: (label: string, index: number) => string | number | string[] | number[] } ; startAngle: number ; suggestedMax: number ; suggestedMin: number ; ticks: RadialTickOptions }

# Defined in

index.esm.d.ts:3356 (opens new window)


# RadialTickOptions

Ƭ RadialTickOptions: TickOptions & { count: number ; format: Intl.NumberFormatOptions ; maxTicksLimit: number ; precision: number ; stepSize: number }

# Defined in

index.esm.d.ts:3328 (opens new window)


# ScaleChartOptions

Ƭ ScaleChartOptions<TType>: Object

# Type parameters

Name Type
TType extends ChartType = ChartType

# Type declaration

Name Type
scales Object

# Defined in

index.esm.d.ts:3630 (opens new window)


# ScaleOptions

Ƭ ScaleOptions<TScale>: DeepPartial<ScaleOptionsByType<TScale>>

# Type parameters

Name Type
TScale extends ScaleType = ScaleType

# Defined in

index.esm.d.ts:3622 (opens new window)


# ScaleOptionsByType

Ƭ ScaleOptionsByType<TScale>: { [key in ScaleType]: Object & ScaleTypeRegistry[key]["options"] }[TScale]

# Type parameters

Name Type
TScale extends ScaleType = ScaleType

# Defined in

index.esm.d.ts:3617 (opens new window)


# ScaleType

Ƭ ScaleType: keyof ScaleTypeRegistry

# Defined in

index.esm.d.ts:3511 (opens new window)


# ScatterController

Ƭ ScatterController: LineController

# Defined in

index.esm.d.ts:234 (opens new window)


# ScatterControllerChartOptions

Ƭ ScatterControllerChartOptions: LineControllerChartOptions

# Defined in

index.esm.d.ts:232 (opens new window)


# ScatterControllerDatasetOptions

Ƭ ScatterControllerDatasetOptions: LineControllerDatasetOptions

# Defined in

index.esm.d.ts:225 (opens new window)


# Scriptable

Ƭ Scriptable<T, TContext>: T | (ctx: TContext, options: AnyObject) => T | undefined

# Type parameters

Name
T
TContext

# Defined in

index.esm.d.ts:39 (opens new window)


# ScriptableAndArray

Ƭ ScriptableAndArray<T, TContext>: readonly T[] | Scriptable<T, TContext>

# Type parameters

Name
T
TContext

# Defined in

index.esm.d.ts:42 (opens new window)


# ScriptableAndArrayOptions

Ƭ ScriptableAndArrayOptions<T, TContext>: { [P in keyof T]: ScriptableAndArray<T[P], TContext> }

# Type parameters

Name
T
TContext

# Defined in

index.esm.d.ts:43 (opens new window)


# ScriptableAndScriptableOptions

Ƭ ScriptableAndScriptableOptions<T, TContext>: Scriptable<T, TContext> | ScriptableOptions<T, TContext>

# Type parameters

Name
T
TContext

# Defined in

index.esm.d.ts:41 (opens new window)


# ScriptableOptions

Ƭ ScriptableOptions<T, TContext>: { [P in keyof T]: Scriptable<T[P], TContext> }

# Type parameters

Name
T
TContext

# Defined in

index.esm.d.ts:40 (opens new window)


# TextAlign

Ƭ TextAlign: "left" | "center" | "right"

# Defined in

index.esm.d.ts:1681 (opens new window)


# TimeScaleOptions

Ƭ TimeScaleOptions: Omit<CartesianScaleOptions, "min" | "max"> & { adapters: { date: unknown } ; bounds: "ticks" | "data" ; max: string | number ; min: string | number ; offsetAfterAutoskip: boolean ; suggestedMax: string | number ; suggestedMin: string | number ; ticks: { source: "labels" | "auto" | "data" } ; time: { displayFormats: { [key: string]: string; } ; isoWeekday: boolean | number ; minUnit: TimeUnit ; parser: string | (v: unknown) => number ; round: false | TimeUnit ; stepSize: number ; tooltipFormat: string ; unit: false | TimeUnit } }

# Defined in

index.esm.d.ts:3226 (opens new window)


# TimeSeriesScale

Ƭ TimeSeriesScale<O>: TimeScale<O>

# Type parameters

Name Type
O extends TimeScaleOptions = TimeScaleOptions

# Defined in

index.esm.d.ts:3322 (opens new window)


# TimeUnit

Ƭ TimeUnit: "millisecond" | "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"

# Defined in

adapters.d.ts:3 (opens new window)


# TooltipPositioner

Ƭ TooltipPositioner: keyof TooltipPositionerMap

# Defined in

index.esm.d.ts:2546 (opens new window)


# TooltipPositionerFunction

Ƭ TooltipPositionerFunction<TType>: (this: TooltipModel<TType>, items: readonly ActiveElement[], eventPosition: Point) => TooltipPosition | false

# Type parameters

Name Type
TType extends ChartType

# Type declaration

▸ (this, items, eventPosition): TooltipPosition | false

# Parameters
Name Type
this TooltipModel<TType>
items readonly ActiveElement[]
eventPosition Point
# Returns

TooltipPosition | false

# Defined in

index.esm.d.ts:2535 (opens new window)


# TooltipXAlignment

Ƭ TooltipXAlignment: "left" | "center" | "right"

# Defined in

index.esm.d.ts:2444 (opens new window)


# TooltipYAlignment

Ƭ TooltipYAlignment: "top" | "center" | "bottom"

# Defined in

index.esm.d.ts:2445 (opens new window)


# TransitionSpec

Ƭ TransitionSpec<TType>: Object

# Type parameters

Name Type
TType extends ChartType

# Type declaration

Name Type
animation AnimationSpec<TType>
animations AnimationsSpec<TType>

# Defined in

index.esm.d.ts:1630 (opens new window)


# TransitionsSpec

Ƭ TransitionsSpec<TType>: Object

# Type parameters

Name Type
TType extends ChartType

# Index signature

▪ [mode: string]: TransitionSpec<TType>

# Defined in

index.esm.d.ts:1635 (opens new window)


# UpdateMode

Ƭ UpdateMode: keyof typeof UpdateModeEnum

# Defined in

index.esm.d.ts:571 (opens new window)

# Variables

# ArcElement

ArcElement: ChartComponent & { prototype: ArcElement<ArcProps, ArcOptions> }

# Defined in

index.esm.d.ts:1765 (opens new window)


# BarController

BarController: ChartComponent & { prototype: BarController }

# Defined in

index.esm.d.ts:146 (opens new window)


# BarElement

BarElement: ChartComponent & { prototype: BarElement<BarProps, BarOptions> }

# Defined in

index.esm.d.ts:2034 (opens new window)


# BubbleController

BubbleController: ChartComponent & { prototype: BubbleController }

# Defined in

index.esm.d.ts:174 (opens new window)


# CategoryScale

CategoryScale: ChartComponent & { prototype: CategoryScale<CategoryScaleOptions> }

# Defined in

index.esm.d.ts:3148 (opens new window)


# Decimation

Decimation: Plugin

# Defined in

index.esm.d.ts:2110 (opens new window)


# DoughnutController

DoughnutController: ChartComponent & { prototype: DoughnutController }

# Defined in

index.esm.d.ts:343 (opens new window)


# Element

Element: Object

# Type declaration

Name Type
prototype Element<AnyObject, AnyObject>

# Defined in

element.d.ts:14 (opens new window)


# Filler

Filler: Plugin

# Defined in

index.esm.d.ts:2132 (opens new window)


# Interaction

Interaction: Object

# Type declaration

Name Type
modes InteractionModeMap
evaluateInteractionItems (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>, axis: InteractionAxis, position: Point, handler: (element: Element<AnyObject, AnyObject> & VisualElement, datasetIndex: number, index: number) => void, intersect?: boolean) => InteractionItem[]

# Defined in

index.esm.d.ts:754 (opens new window)


# Legend

Legend: Plugin

# Defined in

index.esm.d.ts:2162 (opens new window)


# LineController

LineController: ChartComponent & { prototype: LineController }

# Defined in

index.esm.d.ts:220 (opens new window)


# LineElement

LineElement: ChartComponent & { prototype: LineElement<LineProps, LineOptions> }

# Defined in

index.esm.d.ts:1855 (opens new window)


# LinearScale

LinearScale: ChartComponent & { prototype: LinearScale<LinearScaleOptions> }

# Defined in

index.esm.d.ts:3197 (opens new window)


# LogarithmicScale

LogarithmicScale: ChartComponent & { prototype: LogarithmicScale<LogarithmicScaleOptions> }

# Defined in

index.esm.d.ts:3221 (opens new window)


# PieController

PieController: ChartComponent & { prototype: DoughnutController }

# Defined in

index.esm.d.ts:360 (opens new window)


# PointElement

PointElement: ChartComponent & { prototype: PointElement<PointProps, PointOptions> }

# Defined in

index.esm.d.ts:1972 (opens new window)


# PolarAreaController

PolarAreaController: ChartComponent & { prototype: PolarAreaController }

# Defined in

index.esm.d.ts:388 (opens new window)


# RadarController

RadarController: ChartComponent & { prototype: RadarController }

# Defined in

index.esm.d.ts:421 (opens new window)


# RadialLinearScale

RadialLinearScale: ChartComponent & { prototype: RadialLinearScale<RadialLinearScaleOptions> }

# Defined in

index.esm.d.ts:3479 (opens new window)


# ScatterController

ScatterController: ChartComponent & { prototype: LineController }

# Defined in

index.esm.d.ts:235 (opens new window)


# SubTitle

SubTitle: Plugin

# Defined in

index.esm.d.ts:2402 (opens new window)


# Ticks

Ticks: Object

# Type declaration

Name Type
formatters Object
formatters.logarithmic [object Object]
formatters.numeric [object Object]
formatters.values [object Object]

# Defined in

index.esm.d.ts:1356 (opens new window)


# TimeScale

TimeScale: ChartComponent & { prototype: TimeScale<TimeScaleOptions> }

# Defined in

index.esm.d.ts:3317 (opens new window)


# TimeSeriesScale

TimeSeriesScale: ChartComponent & { prototype: TimeSeriesScale<TimeScaleOptions> }

# Defined in

index.esm.d.ts:3323 (opens new window)


# Title

Title: Plugin

# Defined in

index.esm.d.ts:2403 (opens new window)


# Tooltip

Tooltip: Tooltip

# Defined in

index.esm.d.ts:2552 (opens new window)


# _adapters

_adapters: Object

# Type declaration

Name Type
_date DateAdapter

# Defined in

adapters.d.ts:68 (opens new window)


# defaults

defaults: Defaults

# Defined in

index.esm.d.ts:701 (opens new window)


# layouts

layouts: Object

# Type declaration

Name Type
addBox (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>, item: LayoutItem) => void
configure (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>, item: LayoutItem, options: { fullSize?: number ; position?: LayoutPosition ; weight?: number }) => void
removeBox (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>, layoutItem: LayoutItem) => void
update (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>, width: number, height: number) => void

# Defined in

index.esm.d.ts:769 (opens new window)


# Registroables

Registroables: readonly ChartComponentLike[]

# Defined in

index.esm.d.ts:552 (opens new window)


# registry

registry: Registry

# Defined in

index.esm.d.ts:1139 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveDataPoint.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveDataPoint.html new file mode 100644 index 0000000..81857ad --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveDataPoint.html @@ -0,0 +1,51 @@ + + + + + + Interface: ActiveDataPoint | Chart.js + + + + + + + +

# Interface: ActiveDataPoint

# Hierarchy

# Properties

# datasetIndex

datasetIndex: number

# Defined in

index.esm.d.ts:471 (opens new window)


# index

index: number

# Defined in

index.esm.d.ts:472 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveElement.html new file mode 100644 index 0000000..29237d1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ActiveElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: ActiveElement | Chart.js + + + + + + + +

# Interface: ActiveElement

# Hierarchy

# Properties

# datasetIndex

datasetIndex: number

# Inherited from

ActiveDataPoint.datasetIndex

# Defined in

index.esm.d.ts:471 (opens new window)


# element

element: Element<AnyObject, AnyObject>

# Defined in

index.esm.d.ts:476 (opens new window)


# index

index: number

# Inherited from

ActiveDataPoint.index

# Defined in

index.esm.d.ts:472 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/AnimationEvent.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/AnimationEvent.html new file mode 100644 index 0000000..c722fee --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/AnimationEvent.html @@ -0,0 +1,51 @@ + + + + + + Interface: AnimationEvent | Chart.js + + + + + + + +

# Interface: AnimationEvent

# Properties

# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

animation.d.ts:13 (opens new window)


# currentStep

currentStep: number

# Defined in

animation.d.ts:16 (opens new window)


# initial

initial: boolean

# Defined in

animation.d.ts:15 (opens new window)


# numSteps

numSteps: number

# Defined in

animation.d.ts:14 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcBorderRadius.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcBorderRadius.html new file mode 100644 index 0000000..a5db0ef --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcBorderRadius.html @@ -0,0 +1,51 @@ + + + + + + Interface: ArcBorderRadius | Chart.js + + + + + + + +

# Interface: ArcBorderRadius

# Properties

# innerEnd

innerEnd: number

# Defined in

index.esm.d.ts:1725 (opens new window)


# innerStart

innerStart: number

# Defined in

index.esm.d.ts:1724 (opens new window)


# outerEnd

outerEnd: number

# Defined in

index.esm.d.ts:1723 (opens new window)


# outerStart

outerStart: number

# Defined in

index.esm.d.ts:1722 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcElement.html new file mode 100644 index 0000000..db20d2b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: ArcElement | Chart.js + + + + + + + +

# Interface: ArcElement<T, O>

# Type parameters

Name Type
T extends ArcProps = ArcProps
O extends ArcOptions = ArcOptions

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# options

Readonly options: O

# Inherited from

Element.options

# Defined in

element.d.ts:8 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# draw

draw(ctx, area?): void

# Parameters

Name Type
ctx CanvasRenderingContext2D
area? ChartArea

# Returns

void

# Inherited from

VisualElement.draw

# Defined in

index.esm.d.ts:1685 (opens new window)


# getCenterPoint

getCenterPoint(useFinalPosition?): Object

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Object

Name Type
x number
y number

# Inherited from

VisualElement.getCenterPoint

# Defined in

index.esm.d.ts:1689 (opens new window)


# getProps

getProps<P>(props, final?): Pick<T, P[number]>

# Type parameters

Name Type
P extends keyof T[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<T, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# getRange

Optional getRange(axis): number

# Parameters

Name Type
axis "x" | "y"

# Returns

number

# Inherited from

VisualElement.getRange

# Defined in

index.esm.d.ts:1690 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# inRange

inRange(mouseX, mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inRange

# Defined in

index.esm.d.ts:1686 (opens new window)


# inXRange

inXRange(mouseX, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inXRange

# Defined in

index.esm.d.ts:1687 (opens new window)


# inYRange

inYRange(mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inYRange

# Defined in

index.esm.d.ts:1688 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcHoverOptions.html new file mode 100644 index 0000000..d6334f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: ArcHoverOptions | Chart.js + + + + + + + +

# Interface: ArcHoverOptions

# Hierarchy

# Properties

# hoverBackgroundColor

hoverBackgroundColor: Color

# Inherited from

CommonHoverOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: Color

# Inherited from

CommonHoverOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: number

# Inherited from

CommonHoverOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverOffset

hoverOffset: number

# Defined in

index.esm.d.ts:1758 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcOptions.html new file mode 100644 index 0000000..665a933 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: ArcOptions | Chart.js + + + + + + + +

# Interface: ArcOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: Color

# Inherited from

CommonElementOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderAlign

borderAlign: "center" | "inner"

Arc stroke alignment.

# Defined in

index.esm.d.ts:1732 (opens new window)


# borderColor

borderColor: Color

# Inherited from

CommonElementOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderJoinStyle

borderJoinStyle: CanvasLineJoin

Line join style. See MDN. Default is 'round' when borderAlign is 'inner', else 'bevel'.

# Defined in

index.esm.d.ts:1737 (opens new window)


# borderRadius

borderRadius: number | ArcBorderRadius

Sets the border radius for arcs

default 0

# Defined in

index.esm.d.ts:1743 (opens new window)


# borderWidth

borderWidth: number

# Inherited from

CommonElementOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# circular

circular: boolean

If false, Arc will be flat.

default true

# Defined in

index.esm.d.ts:1754 (opens new window)


# offset

offset: number

Arc offset (in pixels).

# Defined in

index.esm.d.ts:1748 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcProps.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcProps.html new file mode 100644 index 0000000..0023ea2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ArcProps.html @@ -0,0 +1,51 @@ + + + + + + Interface: ArcProps | Chart.js + + + + + + + +

# Interface: ArcProps

# Properties

# circumference

circumference: number

# Defined in

index.esm.d.ts:1718 (opens new window)


# endAngle

endAngle: number

# Defined in

index.esm.d.ts:1715 (opens new window)


# innerRadius

innerRadius: number

# Defined in

index.esm.d.ts:1716 (opens new window)


# outerRadius

outerRadius: number

# Defined in

index.esm.d.ts:1717 (opens new window)


# startAngle

startAngle: number

# Defined in

index.esm.d.ts:1714 (opens new window)


# x

x: number

# Defined in

index.esm.d.ts:1712 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:1713 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerChartOptions.html new file mode 100644 index 0000000..6b77ae3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerChartOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: BarControllerChartOptions | Chart.js + + + + + + + +

# Interface: BarControllerChartOptions

# Properties

# skipNull

Optional skipNull: boolean

Should null or undefined values be omitted from drawing

# Defined in

index.esm.d.ts:142 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerDatasetOptions.html new file mode 100644 index 0000000..82fa7ea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarControllerDatasetOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: BarControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: BarControllerDatasetOptions

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<"bar"> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

AnimationOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<"bar">

# Inherited from

AnimationOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"bar">>

# Inherited from

ScriptableAndArrayOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# barPercentage

barPercentage: number

Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other.

default 0.9

# Defined in

index.esm.d.ts:109 (opens new window)


# barThickness

barThickness: number | "flex"

Manually set width of each bar in pixels. If set to 'flex', it computes "optimal" sample widths that globally arrange bars side by side. If not set (default), bars are equally sized based on the smallest interval.

# Defined in

index.esm.d.ts:119 (opens new window)


# base

base: ScriptableAndArray<number, ScriptableContext<"bar">>

The base value for the bar in data units along the value axis.

# Inherited from

ScriptableAndArrayOptions.base

# Defined in

index.esm.d.ts:1990 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"bar">>

# Inherited from

ScriptableAndArrayOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderRadius

borderRadius: ScriptableAndArray<number | BorderRadius, ScriptableContext<"bar">>

Border radius

default 0

# Inherited from

ScriptableAndArrayOptions.borderRadius

# Defined in

index.esm.d.ts:2002 (opens new window)


# borderSkipped

borderSkipped: ScriptableAndArray<boolean | "start" | "end" | "left" | "right" | "bottom" | "top" | "middle", ScriptableContext<"bar">>

Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all).

default 'start'

# Inherited from

ScriptableAndArrayOptions.borderSkipped

# Defined in

index.esm.d.ts:1996 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number | { bottom?: number ; left?: number ; right?: number ; top?: number }, ScriptableContext<"bar">>

Width of the border, number for all sides, object to specify width for each side specifically

default 0

# Inherited from

ScriptableAndArrayOptions.borderWidth

# Defined in

index.esm.d.ts:2015 (opens new window)


# categoryPercentage

categoryPercentage: number

Percent (0-1) of the available width each category should be within the sample width.

default 0.8

# Defined in

index.esm.d.ts:114 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

ControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

ControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"bar">>

# Inherited from

ScriptableAndArrayOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"bar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"bar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

ControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# inflateAmount

inflateAmount: ScriptableAndArray<number | "auto", ScriptableContext<"bar">>

Amount to inflate the rectangle(s). This can be used to hide artifacts between bars. +Unit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0.

default 'auto'

# Inherited from

ScriptableAndArrayOptions.inflateAmount

# Defined in

index.esm.d.ts:2009 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

ControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# maxBarThickness

maxBarThickness: number

Set this to ensure that bars are not sized thicker than this.

# Defined in

index.esm.d.ts:124 (opens new window)


# minBarLength

minBarLength: number

Set this to ensure that bars have a minimum length in pixels.

# Defined in

index.esm.d.ts:129 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

ControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# pointStyle

pointStyle: PointStyle

Point style for the legend

default 'circle;

# Defined in

index.esm.d.ts:135 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

ControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)


# transitions

transitions: TransitionsSpec<"bar">

# Inherited from

AnimationOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)


# xAxisID

xAxisID: string

The ID of the x axis to plot this dataset on.

# Defined in

index.esm.d.ts:99 (opens new window)


# yAxisID

yAxisID: string

The ID of the y axis to plot this dataset on.

# Defined in

index.esm.d.ts:103 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarElement.html new file mode 100644 index 0000000..5ddfeaa --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: BarElement | Chart.js + + + + + + + +

# Interface: BarElement<T, O>

# Type parameters

Name Type
T extends BarProps = BarProps
O extends BarOptions = BarOptions

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# options

Readonly options: O

# Inherited from

Element.options

# Defined in

element.d.ts:8 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# draw

draw(ctx, area?): void

# Parameters

Name Type
ctx CanvasRenderingContext2D
area? ChartArea

# Returns

void

# Inherited from

VisualElement.draw

# Defined in

index.esm.d.ts:1685 (opens new window)


# getCenterPoint

getCenterPoint(useFinalPosition?): Object

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Object

Name Type
x number
y number

# Inherited from

VisualElement.getCenterPoint

# Defined in

index.esm.d.ts:1689 (opens new window)


# getProps

getProps<P>(props, final?): Pick<T, P[number]>

# Type parameters

Name Type
P extends keyof T[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<T, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# getRange

Optional getRange(axis): number

# Parameters

Name Type
axis "x" | "y"

# Returns

number

# Inherited from

VisualElement.getRange

# Defined in

index.esm.d.ts:1690 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# inRange

inRange(mouseX, mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inRange

# Defined in

index.esm.d.ts:1686 (opens new window)


# inXRange

inXRange(mouseX, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inXRange

# Defined in

index.esm.d.ts:1687 (opens new window)


# inYRange

inYRange(mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inYRange

# Defined in

index.esm.d.ts:1688 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarHoverOptions.html new file mode 100644 index 0000000..4174d79 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: BarHoverOptions | Chart.js + + + + + + + +

# Interface: BarHoverOptions

# Hierarchy

# Properties

# hoverBackgroundColor

hoverBackgroundColor: Color

# Inherited from

CommonHoverOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: Color

# Inherited from

CommonHoverOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderRadius

hoverBorderRadius: number | BorderRadius

# Defined in

index.esm.d.ts:2026 (opens new window)


# hoverBorderWidth

hoverBorderWidth: number

# Inherited from

CommonHoverOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarOptions.html new file mode 100644 index 0000000..551852d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: BarOptions | Chart.js + + + + + + + +

# Interface: BarOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: Color

# Inherited from

Omit.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# base

base: number

The base value for the bar in data units along the value axis.

# Defined in

index.esm.d.ts:1990 (opens new window)


# borderColor

borderColor: Color

# Inherited from

Omit.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderRadius

borderRadius: number | BorderRadius

Border radius

default 0

# Defined in

index.esm.d.ts:2002 (opens new window)


# borderSkipped

borderSkipped: boolean | "start" | "end" | "left" | "right" | "bottom" | "top" | "middle"

Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all).

default 'start'

# Defined in

index.esm.d.ts:1996 (opens new window)


# borderWidth

borderWidth: number | { bottom?: number ; left?: number ; right?: number ; top?: number }

Width of the border, number for all sides, object to specify width for each side specifically

default 0

# Defined in

index.esm.d.ts:2015 (opens new window)


# inflateAmount

inflateAmount: number | "auto"

Amount to inflate the rectangle(s). This can be used to hide artifacts between bars. +Unit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0.

default 'auto'

# Defined in

index.esm.d.ts:2009 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarProps.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarProps.html new file mode 100644 index 0000000..8310bc0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BarProps.html @@ -0,0 +1,51 @@ + + + + + + Interface: BarProps | Chart.js + + + + + + + +

# Interface: BarProps

# Properties

# base

base: number

# Defined in

index.esm.d.ts:1980 (opens new window)


# height

height: number

# Defined in

index.esm.d.ts:1983 (opens new window)


# horizontal

horizontal: boolean

# Defined in

index.esm.d.ts:1981 (opens new window)


# width

width: number

# Defined in

index.esm.d.ts:1982 (opens new window)


# x

x: number

# Defined in

index.esm.d.ts:1978 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:1979 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BorderRadius.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BorderRadius.html new file mode 100644 index 0000000..219df73 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BorderRadius.html @@ -0,0 +1,51 @@ + + + + + + Interface: BorderRadius | Chart.js + + + + + + + +

# Interface: BorderRadius

# Properties

# bottomLeft

bottomLeft: number

# Defined in

index.esm.d.ts:2021 (opens new window)


# bottomRight

bottomRight: number

# Defined in

index.esm.d.ts:2022 (opens new window)


# topLeft

topLeft: number

# Defined in

index.esm.d.ts:2019 (opens new window)


# topRight

topRight: number

# Defined in

index.esm.d.ts:2020 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleControllerDatasetOptions.html new file mode 100644 index 0000000..32276e7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleControllerDatasetOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: BubbleControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: BubbleControllerDatasetOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

ControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# drawActiveElementsOnTop

drawActiveElementsOnTop: ScriptableAndArray<boolean, ScriptableContext<"bubble">>

Draw the active elements over the other elements of the dataset,

default true

# Inherited from

ScriptableAndArrayOptions.drawActiveElementsOnTop

# Defined in

index.esm.d.ts:1904 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

ControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hitRadius

hitRadius: ScriptableAndArray<number, ScriptableContext<"bubble">>

Extra radius added to point radius for hit detection.

default 1

# Inherited from

ScriptableAndArrayOptions.hitRadius

# Defined in

index.esm.d.ts:1889 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"bubble">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverRadius

hoverRadius: ScriptableAndArray<number, ScriptableContext<"bubble">>

Point radius when hovered.

default 4

# Inherited from

ScriptableAndArrayOptions.hoverRadius

# Defined in

index.esm.d.ts:1912 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

ControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

ControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

ControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# pointStyle

pointStyle: ScriptableAndArray<PointStyle, ScriptableContext<"bubble">>

Point style

default 'circle;

# Inherited from

ScriptableAndArrayOptions.pointStyle

# Defined in

index.esm.d.ts:1894 (opens new window)


# radius

radius: ScriptableAndArray<number, ScriptableContext<"bubble">>

Point radius

default 3

# Inherited from

ScriptableAndArrayOptions.radius

# Defined in

index.esm.d.ts:1884 (opens new window)


# rotation

rotation: ScriptableAndArray<number, ScriptableContext<"bubble">>

Point rotation (in degrees).

default 0

# Inherited from

ScriptableAndArrayOptions.rotation

# Defined in

index.esm.d.ts:1899 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

ControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleDataPoint.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleDataPoint.html new file mode 100644 index 0000000..99f2ff5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/BubbleDataPoint.html @@ -0,0 +1,51 @@ + + + + + + Interface: BubbleDataPoint | Chart.js + + + + + + + +

# Interface: BubbleDataPoint

# Properties

# r

r: number

Bubble radius in pixels (not scaled).

# Defined in

index.esm.d.ts:170 (opens new window)


# x

x: number

X Value

# Defined in

index.esm.d.ts:160 (opens new window)


# y

y: number

Y Value

# Defined in

index.esm.d.ts:165 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleOptions.html new file mode 100644 index 0000000..ad4761a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CartesianScaleOptions | Chart.js + + + + + + + +

# Interface: CartesianScaleOptions

# Hierarchy

# Properties

# alignToPixels

alignToPixels: boolean

Align pixel values to device pixels

# Inherited from

CoreScaleOptions.alignToPixels

# Defined in

index.esm.d.ts:1156 (opens new window)


# axis

axis: "x" | "y"

Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.

# Defined in

index.esm.d.ts:3089 (opens new window)


# bounds

bounds: "data" | "ticks"

Scale boundary strategy (bypassed by min/max time options)

  • data: make sure data are fully visible, ticks outside are removed
  • ticks: make sure ticks are fully visible, data outside are truncated

since 2.7.0

default 'ticks'

# Defined in

index.esm.d.ts:3068 (opens new window)


# display

display: boolean | "auto"

Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.

default true

# Inherited from

CoreScaleOptions.display

# Defined in

index.esm.d.ts:1152 (opens new window)


# grid

grid: GridLineOptions

# Defined in

index.esm.d.ts:3107 (opens new window)


# max

max: number

User defined maximum value for the scale, overrides maximum value from data.

# Defined in

index.esm.d.ts:3099 (opens new window)


# min

min: number

User defined minimum value for the scale, overrides minimum value from data.

# Defined in

index.esm.d.ts:3094 (opens new window)


# offset

offset: boolean

If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.

default false

# Defined in

index.esm.d.ts:3105 (opens new window)


# position

position: "left" | "right" | "bottom" | "top" | "center" | { [scale: string]: number; }

Position of the axis.

# Defined in

index.esm.d.ts:3073 (opens new window)


# reverse

reverse: boolean

Reverse the scale.

default false

# Inherited from

CoreScaleOptions.reverse

# Defined in

index.esm.d.ts:1161 (opens new window)


# stack

Optional stack: string

Stack group. Axes at the same position with same stack are stacked.

# Defined in

index.esm.d.ts:3078 (opens new window)


# stackWeight

Optional stackWeight: number

Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.

default 1

# Defined in

index.esm.d.ts:3084 (opens new window)


# stacked

Optional stacked: boolean | "single"

If true, data will be comprised between datasets of data

default false

# Defined in

index.esm.d.ts:3136 (opens new window)


# ticks

ticks: CartesianTickOptions

# Defined in

index.esm.d.ts:3138 (opens new window)


# title

title: Object

Options for the scale title.

# Type declaration

Name Type Description
align Align Alignment of the axis title.
color Color Color of the axis label.
display boolean If true, displays the axis title.
font ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableCartesianScaleContext> Information about the axis title font.
padding number | { bottom: number ; top: number ; y: number } Padding to apply around scale labels.
text string | string[] The text for the title, e.g. "# of People" or "Response Choices".

# Defined in

index.esm.d.ts:3110 (opens new window)


# weight

weight: number

The weight used to sort the axis. Higher weights are further away from the chart area.

default true

# Inherited from

CoreScaleOptions.weight

# Defined in

index.esm.d.ts:1166 (opens new window)

# Methods

# afterBuildTicks

afterBuildTicks(axis): void

Callback that runs after ticks are created. Useful for filtering ticks.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterBuildTicks

# Defined in

index.esm.d.ts:1194 (opens new window)


# afterCalculateLabelRotation

afterCalculateLabelRotation(axis): void

Callback that runs after tick rotation is determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterCalculateLabelRotation

# Defined in

index.esm.d.ts:1210 (opens new window)


# afterDataLimits

afterDataLimits(axis): void

Callback that runs after data limits are determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterDataLimits

# Defined in

index.esm.d.ts:1186 (opens new window)


# afterFit

afterFit(axis): void

Callback that runs after the scale fits to the canvas.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterFit

# Defined in

index.esm.d.ts:1218 (opens new window)


# afterSetDimensions

afterSetDimensions(axis): void

Callback that runs after dimensions are set.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterSetDimensions

# Defined in

index.esm.d.ts:1178 (opens new window)


# afterTickToLabelConversion

afterTickToLabelConversion(axis): void

Callback that runs after ticks are converted into strings.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterTickToLabelConversion

# Defined in

index.esm.d.ts:1202 (opens new window)


# afterUpdate

afterUpdate(axis): void

Callback that runs at the end of the update process.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.afterUpdate

# Defined in

index.esm.d.ts:1222 (opens new window)


# beforeBuildTicks

beforeBuildTicks(axis): void

Callback that runs before ticks are created.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeBuildTicks

# Defined in

index.esm.d.ts:1190 (opens new window)


# beforeCalculateLabelRotation

beforeCalculateLabelRotation(axis): void

Callback that runs before tick rotation is determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeCalculateLabelRotation

# Defined in

index.esm.d.ts:1206 (opens new window)


# beforeDataLimits

beforeDataLimits(axis): void

Callback that runs before data limits are determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeDataLimits

# Defined in

index.esm.d.ts:1182 (opens new window)


# beforeFit

beforeFit(axis): void

Callback that runs before the scale fits to the canvas.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeFit

# Defined in

index.esm.d.ts:1214 (opens new window)


# beforeSetDimensions

beforeSetDimensions(axis): void

Callback that runs before dimensions are set.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeSetDimensions

# Defined in

index.esm.d.ts:1174 (opens new window)


# beforeTickToLabelConversion

beforeTickToLabelConversion(axis): void

Callback that runs before ticks are converted into strings.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeTickToLabelConversion

# Defined in

index.esm.d.ts:1198 (opens new window)


# beforeUpdate

beforeUpdate(axis): void

Callback called before the update process starts.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Inherited from

CoreScaleOptions.beforeUpdate

# Defined in

index.esm.d.ts:1170 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleTypeRegistry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleTypeRegistry.html new file mode 100644 index 0000000..7a594ac --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CartesianScaleTypeRegistry.html @@ -0,0 +1,51 @@ + + + + + + Interface: CartesianScaleTypeRegistry | Chart.js + + + + + + + +

# Interface: CartesianScaleTypeRegistry

# Hierarchy

# Properties

# category

category: Object

# Type declaration

Name Type
options CategoryScaleOptions

# Defined in

index.esm.d.ts:3491 (opens new window)


# linear

linear: Object

# Type declaration

Name Type
options LinearScaleOptions

# Defined in

index.esm.d.ts:3485 (opens new window)


# logarithmic

logarithmic: Object

# Type declaration

Name Type
options LogarithmicScaleOptions

# Defined in

index.esm.d.ts:3488 (opens new window)


# time

time: Object

# Type declaration

Name Type
options TimeScaleOptions

# Defined in

index.esm.d.ts:3494 (opens new window)


# timeseries

timeseries: Object

# Type declaration

Name Type
options TimeScaleOptions

# Defined in

index.esm.d.ts:3497 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartArea.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartArea.html new file mode 100644 index 0000000..7a51171 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartArea.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartArea | Chart.js + + + + + + + +

# Interface: ChartArea

# Properties

# bottom

bottom: number

# Defined in

geometric.d.ts:5 (opens new window)


# height

height: number

# Defined in

geometric.d.ts:7 (opens new window)


# left

left: number

# Defined in

geometric.d.ts:3 (opens new window)


right: number

# Defined in

geometric.d.ts:4 (opens new window)


# top

top: number

# Defined in

geometric.d.ts:2 (opens new window)


# width

width: number

# Defined in

geometric.d.ts:6 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartComponent.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartComponent.html new file mode 100644 index 0000000..3aae0ae --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartComponent.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartComponent | Chart.js + + + + + + + +

# Interface: ChartComponent

# Hierarchy

# Properties

# defaultRoutes

Optional defaultRoutes: Object

# Index signature

▪ [property: string]: string

# Defined in

index.esm.d.ts:1414 (opens new window)


# defaults

Optional defaults: AnyObject

# Defined in

index.esm.d.ts:1413 (opens new window)


# id

id: string

# Defined in

index.esm.d.ts:1412 (opens new window)

# Methods

# afterRegistro

Optional afterRegistro(): void

# Returns

void

# Defined in

index.esm.d.ts:1417 (opens new window)


# afterUnRegistro

Optional afterUnRegistro(): void

# Returns

void

# Defined in

index.esm.d.ts:1419 (opens new window)


# beforeRegistro

Optional beforeRegistro(): void

# Returns

void

# Defined in

index.esm.d.ts:1416 (opens new window)


# beforeUnRegistro

Optional beforeUnRegistro(): void

# Returns

void

# Defined in

index.esm.d.ts:1418 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfiguration.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfiguration.html new file mode 100644 index 0000000..32df512 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfiguration.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartConfiguration | Chart.js + + + + + + + +

# Interface: ChartConfiguration<TType, TData, TLabel>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>
TLabel unknown

# Properties

# data

data: ChartData<TType, TData, TLabel>

# Defined in

index.esm.d.ts:3702 (opens new window)


# options

Optional options: DeepPartial<CoreChartOptions<TType> & ElementChartOptions<TType> & PluginChartOptions<TType> & DatasetChartOptions<TType> & ScaleChartOptions<TType> & ChartTypeRegistry[TType]["chartOptions"]>

# Defined in

index.esm.d.ts:3703 (opens new window)


# plugins

Optional plugins: Plugin<TType, AnyObject>[]

# Defined in

index.esm.d.ts:3704 (opens new window)


# type

type: TType

# Defined in

index.esm.d.ts:3701 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfigurationCustomTypesPerDataset.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfigurationCustomTypesPerDataset.html new file mode 100644 index 0000000..1684c5c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartConfigurationCustomTypesPerDataset.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartConfigurationCustomTypesPerDataset | Chart.js + + + + + + + +

# Interface: ChartConfigurationCustomTypesPerDataset<TType, TData, TLabel>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>
TLabel unknown

# Properties

# data

data: ChartDataCustomTypesPerDataset<TType, TData, TLabel>

# Defined in

index.esm.d.ts:3712 (opens new window)


# options

Optional options: DeepPartial<CoreChartOptions<TType> & ElementChartOptions<TType> & PluginChartOptions<TType> & DatasetChartOptions<TType> & ScaleChartOptions<TType> & ChartTypeRegistry[TType]["chartOptions"]>

# Defined in

index.esm.d.ts:3713 (opens new window)


# plugins

Optional plugins: Plugin<TType, AnyObject>[]

# Defined in

index.esm.d.ts:3714 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartData.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartData.html new file mode 100644 index 0000000..5138a76 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartData.html @@ -0,0 +1,53 @@ + + + + + + Interface: ChartData | Chart.js + + + + + + + +

# Interface: ChartData<TType, TData, TLabel>

TData represents the data point type. If unspecified, a default is provided +based on the chart type. +TLabel represents the label type

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>
TLabel unknown

# Properties

# datasets

datasets: ChartDataset<TType, TData>[]

# Defined in

index.esm.d.ts:3684 (opens new window)


# labels

Optional labels: TLabel[]

# Defined in

index.esm.d.ts:3683 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDataCustomTypesPerDataset.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDataCustomTypesPerDataset.html new file mode 100644 index 0000000..463275d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDataCustomTypesPerDataset.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartDataCustomTypesPerDataset | Chart.js + + + + + + + +

# Interface: ChartDataCustomTypesPerDataset<TType, TData, TLabel>

# Type parameters

Name Type
TType extends ChartType = ChartType
TData DefaultDataPoint<TType>
TLabel unknown

# Properties

# datasets

datasets: ChartDatasetCustomTypesPerDataset<TType, TData>[]

# Defined in

index.esm.d.ts:3693 (opens new window)


# labels

Optional labels: TLabel[]

# Defined in

index.esm.d.ts:3692 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetProperties.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetProperties.html new file mode 100644 index 0000000..84c6d3b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetProperties.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartDatasetProperties | Chart.js + + + + + + + +

# Interface: ChartDatasetProperties<TType, TData>

# Type parameters

Name Type
TType extends ChartType
TData TData

# Properties

# data

data: TData

# Defined in

index.esm.d.ts:3651 (opens new window)


# type

Optional type: TType

# Defined in

index.esm.d.ts:3650 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetPropertiesCustomTypesPerDataset.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetPropertiesCustomTypesPerDataset.html new file mode 100644 index 0000000..de0ab30 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartDatasetPropertiesCustomTypesPerDataset.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartDatasetPropertiesCustomTypesPerDataset | Chart.js + + + + + + + +

# Interface: ChartDatasetPropertiesCustomTypesPerDataset<TType, TData>

# Type parameters

Name Type
TType extends ChartType
TData TData

# Properties

# data

data: TData

# Defined in

index.esm.d.ts:3656 (opens new window)


# type

type: TType

# Defined in

index.esm.d.ts:3655 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartEvent.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartEvent.html new file mode 100644 index 0000000..f158f33 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartEvent.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartEvent | Chart.js + + + + + + + +

# Interface: ChartEvent

# Properties

# native

native: Event

# Defined in

index.esm.d.ts:1407 (opens new window)


# type

type: "resize" | "click" | "contextmenu" | "dblclick" | "keydown" | "keypress" | "keyup" | "mousedown" | "mouseenter" | "mousemove" | "mouseout" | "mouseup"

# Defined in

index.esm.d.ts:1394 (opens new window)


# x

x: number

# Defined in

index.esm.d.ts:1408 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:1409 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartTypeRegistry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartTypeRegistry.html new file mode 100644 index 0000000..f684810 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ChartTypeRegistry.html @@ -0,0 +1,51 @@ + + + + + + Interface: ChartTypeRegistry | Chart.js + + + + + + + +

# Interface: ChartTypeRegistry

# Properties

# bar

bar: Object

# Type declaration

Name Type
chartOptions BarControllerChartOptions
datasetOptions BarControllerDatasetOptions
defaultDataPoint number
metaExtensions Object
parsedDataType BarParsedData
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3549 (opens new window)


# bubble

bubble: Object

# Type declaration

Name Type
chartOptions unknown
datasetOptions BubbleControllerDatasetOptions
defaultDataPoint BubbleDataPoint
metaExtensions Object
parsedDataType BubbleParsedData
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3573 (opens new window)


# doughnut

doughnut: Object

# Type declaration

Name Type
chartOptions DoughnutControllerChartOptions
datasetOptions DoughnutControllerDatasetOptions
defaultDataPoint number
metaExtensions DoughnutMetaExtensions
parsedDataType number
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3589 (opens new window)


# line

line: Object

# Type declaration

Name Type
chartOptions LineControllerChartOptions
datasetOptions LineControllerDatasetOptions & FillerControllerDatasetOptions
defaultDataPoint number | ScatterDataPoint
metaExtensions Object
parsedDataType CartesianParsedData
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3557 (opens new window)


# pie

pie: Object

# Type declaration

Name Type
chartOptions DoughnutControllerChartOptions
datasetOptions DoughnutControllerDatasetOptions
defaultDataPoint number
metaExtensions DoughnutMetaExtensions
parsedDataType number
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3581 (opens new window)


# polarArea

polarArea: Object

# Type declaration

Name Type
chartOptions PolarAreaControllerChartOptions
datasetOptions PolarAreaControllerDatasetOptions
defaultDataPoint number
metaExtensions Object
parsedDataType RadialParsedData
scales "radialLinear"

# Defined in

index.esm.d.ts:3597 (opens new window)


# radar

radar: Object

# Type declaration

Name Type
chartOptions LineControllerChartOptions
datasetOptions RadarControllerDatasetOptions & FillerControllerDatasetOptions
defaultDataPoint number
metaExtensions Object
parsedDataType RadialParsedData
scales "radialLinear"

# Defined in

index.esm.d.ts:3605 (opens new window)


# scatter

scatter: Object

# Type declaration

Name Type
chartOptions LineControllerChartOptions
datasetOptions LineControllerDatasetOptions
defaultDataPoint number | ScatterDataPoint
metaExtensions Object
parsedDataType CartesianParsedData
scales keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3565 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonElementOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonElementOptions.html new file mode 100644 index 0000000..6cf2955 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonElementOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CommonElementOptions | Chart.js + + + + + + + +

# Interface: CommonElementOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: Color

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderColor

borderColor: Color

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderWidth

borderWidth: number

# Defined in

index.esm.d.ts:1694 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonHoverOptions.html new file mode 100644 index 0000000..d9621d7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CommonHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CommonHoverOptions | Chart.js + + + + + + + +

# Interface: CommonHoverOptions

# Hierarchy

# Properties

# hoverBackgroundColor

hoverBackgroundColor: Color

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: Color

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: number

# Defined in

index.esm.d.ts:1700 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ComplexFillTarget.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ComplexFillTarget.html new file mode 100644 index 0000000..a96a358 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ComplexFillTarget.html @@ -0,0 +1,51 @@ + + + + + + Interface: ComplexFillTarget | Chart.js + + + + + + + +

# Interface: ComplexFillTarget

# Properties

# above

above: Color

If no color is set, the default color will be the background color of the chart.

# Defined in

index.esm.d.ts:2148 (opens new window)


# below

below: Color

Same as the above.

# Defined in

index.esm.d.ts:2152 (opens new window)


# target

target: FillTarget

The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries.

# Defined in

index.esm.d.ts:2144 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ControllerDatasetOptions.html new file mode 100644 index 0000000..9c6b3f2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ControllerDatasetOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: ControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: ControllerDatasetOptions

# Hierarchy

# Properties

# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Defined in

index.esm.d.ts:70 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Defined in

index.esm.d.ts:88 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ParsingOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ParsingOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Defined in

index.esm.d.ts:83 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreChartOptions.html new file mode 100644 index 0000000..9da6cef --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreChartOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CoreChartOptions | Chart.js + + + + + + + +

# Interface: CoreChartOptions<TType>

# Type parameters

Name Type
TType extends ChartType

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<TType> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

AnimationOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<TType>

# Inherited from

AnimationOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# aspectRatio

aspectRatio: number

Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style.

default 2

# Defined in

index.esm.d.ts:1505 (opens new window)


# backgroundColor

backgroundColor: Scriptable<Color, ScriptableContext<TType>>

base background color

see Defaults.backgroundColor

# Defined in

index.esm.d.ts:1474 (opens new window)


# borderColor

borderColor: Scriptable<Color, ScriptableContext<TType>>

base border color

see Defaults.borderColor

# Defined in

index.esm.d.ts:1479 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Defined in

index.esm.d.ts:1463 (opens new window)


# color

color: Scriptable<Color, ScriptableContext<TType>>

base color

see Defaults.color

# Defined in

index.esm.d.ts:1469 (opens new window)


# datasets

datasets: Object

# Type declaration

Name Type
bar BarControllerDatasetOptions
bubble BubbleControllerDatasetOptions
doughnut DoughnutControllerDatasetOptions
line LineControllerDatasetOptions & FillerControllerDatasetOptions
pie DoughnutControllerDatasetOptions
polarArea PolarAreaControllerDatasetOptions
radar RadarControllerDatasetOptions & FillerControllerDatasetOptions
scatter LineControllerDatasetOptions

# Defined in

index.esm.d.ts:1450 (opens new window)


# devicePixelRatio

devicePixelRatio: number

Override the window's default devicePixelRatio.

default window.devicePixelRatio

# Defined in

index.esm.d.ts:1522 (opens new window)


# events

events: keyof HTMLElementEventMap[]

The events option defines the browser events that the chart should listen to for tooltips and hovering.

default ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']

# Defined in

index.esm.d.ts:1532 (opens new window)


# font

font: Partial<FontSpec>

base font

see Defaults.font

# Defined in

index.esm.d.ts:1484 (opens new window)


# hover

hover: CoreInteractionOptions

# Defined in

index.esm.d.ts:1526 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Defined in

index.esm.d.ts:1458 (opens new window)


# interaction

interaction: CoreInteractionOptions

# Defined in

index.esm.d.ts:1524 (opens new window)


# layout

layout: Partial<{ autoPadding: boolean ; padding: Scriptable<number | Partial<ChartArea>, ScriptableContext<TType>> }>

# Defined in

index.esm.d.ts:1544 (opens new window)


# locale

locale: string

Locale used for number formatting (using Intl.NumberFormat).

default user's browser setting

# Defined in

index.esm.d.ts:1511 (opens new window)


# maintainAspectRatio

maintainAspectRatio: boolean

Maintain the original canvas aspect ratio (width / height) when resizing.

default true

# Defined in

index.esm.d.ts:1494 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ParsingOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ParsingOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# resizeDelay

resizeDelay: number

Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements.

default 0

# Defined in

index.esm.d.ts:1499 (opens new window)


# responsive

responsive: boolean

Resizes the chart canvas when its container does (important note...).

default true

# Defined in

index.esm.d.ts:1489 (opens new window)


# transitions

transitions: TransitionsSpec<TType>

# Inherited from

AnimationOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)

# Methods

# onClick

onClick(event, elements, chart): void

Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart.

# Parameters

Name Type
event ChartEvent
elements ActiveElement[]
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Defined in

index.esm.d.ts:1542 (opens new window)


# onHover

onHover(event, elements, chart): void

Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart.

# Parameters

Name Type
event ChartEvent
elements ActiveElement[]
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Defined in

index.esm.d.ts:1537 (opens new window)


# onResize

onResize(chart, size): void

Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
size Object
size.height number
size.width number

# Returns

void

# Defined in

index.esm.d.ts:1516 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreInteractionOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreInteractionOptions.html new file mode 100644 index 0000000..1a58e3f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreInteractionOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CoreInteractionOptions | Chart.js + + + + + + + +

# Interface: CoreInteractionOptions

# Hierarchy

# Properties

# axis

axis: InteractionAxis

Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes.

# Defined in

index.esm.d.ts:1439 (opens new window)


# includeInvisible

includeInvisible: boolean

if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.

default false

# Defined in

index.esm.d.ts:1445 (opens new window)


# intersect

intersect: boolean

if true, the hover mode only applies when the mouse position intersects an item on the chart.

default true

# Defined in

index.esm.d.ts:1434 (opens new window)


# mode

mode: keyof InteractionModeMap

Sets which elements appear in the tooltip. See Interaction Modes for details.

default 'nearest'

# Defined in

index.esm.d.ts:1429 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreScaleOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreScaleOptions.html new file mode 100644 index 0000000..6bb5b68 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/CoreScaleOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: CoreScaleOptions | Chart.js + + + + + + + +

# Interface: CoreScaleOptions

# Hierarchy

# Properties

# alignToPixels

alignToPixels: boolean

Align pixel values to device pixels

# Defined in

index.esm.d.ts:1156 (opens new window)


# display

display: boolean | "auto"

Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.

default true

# Defined in

index.esm.d.ts:1152 (opens new window)


# reverse

reverse: boolean

Reverse the scale.

default false

# Defined in

index.esm.d.ts:1161 (opens new window)


# weight

weight: number

The weight used to sort the axis. Higher weights are further away from the chart area.

default true

# Defined in

index.esm.d.ts:1166 (opens new window)

# Methods

# afterBuildTicks

afterBuildTicks(axis): void

Callback that runs after ticks are created. Useful for filtering ticks.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1194 (opens new window)


# afterCalculateLabelRotation

afterCalculateLabelRotation(axis): void

Callback that runs after tick rotation is determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1210 (opens new window)


# afterDataLimits

afterDataLimits(axis): void

Callback that runs after data limits are determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1186 (opens new window)


# afterFit

afterFit(axis): void

Callback that runs after the scale fits to the canvas.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1218 (opens new window)


# afterSetDimensions

afterSetDimensions(axis): void

Callback that runs after dimensions are set.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1178 (opens new window)


# afterTickToLabelConversion

afterTickToLabelConversion(axis): void

Callback that runs after ticks are converted into strings.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1202 (opens new window)


# afterUpdate

afterUpdate(axis): void

Callback that runs at the end of the update process.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1222 (opens new window)


# beforeBuildTicks

beforeBuildTicks(axis): void

Callback that runs before ticks are created.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1190 (opens new window)


# beforeCalculateLabelRotation

beforeCalculateLabelRotation(axis): void

Callback that runs before tick rotation is determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1206 (opens new window)


# beforeDataLimits

beforeDataLimits(axis): void

Callback that runs before data limits are determined.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1182 (opens new window)


# beforeFit

beforeFit(axis): void

Callback that runs before the scale fits to the canvas.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1214 (opens new window)


# beforeSetDimensions

beforeSetDimensions(axis): void

Callback that runs before dimensions are set.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1174 (opens new window)


# beforeTickToLabelConversion

beforeTickToLabelConversion(axis): void

Callback that runs before ticks are converted into strings.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1198 (opens new window)


# beforeUpdate

beforeUpdate(axis): void

Callback called before the update process starts.

# Parameters

Name Type
axis Scale<CoreScaleOptions>

# Returns

void

# Defined in

index.esm.d.ts:1170 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DatasetControllerChartComponent.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DatasetControllerChartComponent.html new file mode 100644 index 0000000..a7b48a6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DatasetControllerChartComponent.html @@ -0,0 +1,51 @@ + + + + + + Interface: DatasetControllerChartComponent | Chart.js + + + + + + + +

# Interface: DatasetControllerChartComponent

# Hierarchy

# Properties

# defaultRoutes

Optional defaultRoutes: Object

# Index signature

▪ [property: string]: string

# Inherited from

ChartComponent.defaultRoutes

# Defined in

index.esm.d.ts:1414 (opens new window)


# defaults

defaults: Object

# Type declaration

Name Type
dataElementType? string | false
datasetElementType? string | false

# Overrides

ChartComponent.defaults

# Defined in

index.esm.d.ts:651 (opens new window)


# id

id: string

# Inherited from

ChartComponent.id

# Defined in

index.esm.d.ts:1412 (opens new window)

# Methods

# afterRegistro

Optional afterRegistro(): void

# Returns

void

# Inherited from

ChartComponent.afterRegistro

# Defined in

index.esm.d.ts:1417 (opens new window)


# afterUnRegistro

Optional afterUnRegistro(): void

# Returns

void

# Inherited from

ChartComponent.afterUnRegistro

# Defined in

index.esm.d.ts:1419 (opens new window)


# beforeRegistro

Optional beforeRegistro(): void

# Returns

void

# Inherited from

ChartComponent.beforeRegistro

# Defined in

index.esm.d.ts:1416 (opens new window)


# beforeUnRegistro

Optional beforeUnRegistro(): void

# Returns

void

# Inherited from

ChartComponent.beforeUnRegistro

# Defined in

index.esm.d.ts:1418 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DateAdapter.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DateAdapter.html new file mode 100644 index 0000000..d69410e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DateAdapter.html @@ -0,0 +1,52 @@ + + + + + + Interface: DateAdapter | Chart.js + + + + + + + +

# Interface: DateAdapter

# Properties

# options

Readonly options: unknown

# Defined in

adapters.d.ts:8 (opens new window)

# Methods

# add

add(timestamp, amount, unit): number

Adds the specified amount of unit to the given timestamp.

# Parameters

Name Type Description
timestamp number the input timestamp
amount number the amount to add
unit TimeUnit the unit as string

# Returns

number

# Defined in

adapters.d.ts:41 (opens new window)


# diff

diff(a, b, unit): number

Returns the number of unit between the given timestamps.

# Parameters

Name Type Description
a number the input timestamp (reference)
b number the timestamp to subtract
unit TimeUnit the unit as string

# Returns

number

# Defined in

adapters.d.ts:49 (opens new window)


# endOf

endOf(timestamp, unit): number

Returns end of unit for the given timestamp.

# Parameters

Name Type Description
timestamp number the input timestamp
unit TimeUnit | "isoWeek" the unit as string

# Returns

number

# Defined in

adapters.d.ts:65 (opens new window)


# format

format(timestamp, format): string

Returns the formatted date in the specified format for a given timestamp.

# Parameters

Name Type Description
timestamp number the timestamp to format
format TimeUnit the date/time token

# Returns

string

# Defined in

adapters.d.ts:33 (opens new window)


# formats

formats(): Object

Returns a map of time formats for the supported formatting units defined +in Unit as well as 'datetime' representing a detailed date/time string.

# Returns

Object

# Defined in

adapters.d.ts:20 (opens new window)


# init

init(chartOptions): void

Will called with chart options after adapter creation.

# Parameters

Name Type
chartOptions _DeepPartialObject<CoreChartOptions<keyof ChartTypeRegistry> & ElementChartOptions<keyof ChartTypeRegistry> & PluginChartOptions<keyof ChartTypeRegistry> & DatasetChartOptions<keyof ChartTypeRegistry> & ScaleChartOptions<keyof ChartTypeRegistry>>

# Returns

void

# Defined in

adapters.d.ts:14 (opens new window)


# override

override(members): void

# Parameters

Name Type
members Partial<DateAdapter>

# Returns

void

# Defined in

adapters.d.ts:7 (opens new window)


# parse

parse(value, format?): number

Parses the given value and return the associated timestamp.

# Parameters

Name Type Description
value unknown the value to parse (usually comes from the data)
format? TimeUnit -

# Returns

number

# Defined in

adapters.d.ts:26 (opens new window)


# startOf

startOf(timestamp, unit, weekday?): number

Returns start of unit for the given timestamp.

# Parameters

Name Type Description
timestamp number the input timestamp
unit TimeUnit | "isoWeek" the unit as string
weekday? number -

# Returns

number

# Defined in

adapters.d.ts:58 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Defaults.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Defaults.html new file mode 100644 index 0000000..6d29f50 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Defaults.html @@ -0,0 +1,54 @@ + + + + + + Interface: Defaults | Chart.js + + + + + + + +

# Interface: Defaults

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<keyof ChartTypeRegistry> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

CoreChartOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<keyof ChartTypeRegistry>

# Inherited from

CoreChartOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# aspectRatio

aspectRatio: number

Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style.

default 2

# Inherited from

CoreChartOptions.aspectRatio

# Defined in

index.esm.d.ts:1505 (opens new window)


# backgroundColor

backgroundColor: Scriptable<Color, ScriptableContext<keyof ChartTypeRegistry>>

base background color

see Defaults.backgroundColor

# Inherited from

CoreChartOptions.backgroundColor

# Defined in

index.esm.d.ts:1474 (opens new window)


# borderColor

borderColor: Scriptable<Color, ScriptableContext<keyof ChartTypeRegistry>>

base border color

see Defaults.borderColor

# Inherited from

CoreChartOptions.borderColor

# Defined in

index.esm.d.ts:1479 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

CoreChartOptions.clip

# Defined in

index.esm.d.ts:1463 (opens new window)


# color

color: Scriptable<Color, ScriptableContext<keyof ChartTypeRegistry>>

base color

see Defaults.color

# Inherited from

CoreChartOptions.color

# Defined in

index.esm.d.ts:1469 (opens new window)


# datasets

datasets: Object

# Type declaration

Name Type
bar BarControllerDatasetOptions
bubble BubbleControllerDatasetOptions
doughnut DoughnutControllerDatasetOptions
line LineControllerDatasetOptions & FillerControllerDatasetOptions
pie DoughnutControllerDatasetOptions
polarArea PolarAreaControllerDatasetOptions
radar RadarControllerDatasetOptions & FillerControllerDatasetOptions
scatter LineControllerDatasetOptions

# Inherited from

CoreChartOptions.datasets

# Defined in

index.esm.d.ts:1450 (opens new window)


# devicePixelRatio

devicePixelRatio: number

Override the window's default devicePixelRatio.

default window.devicePixelRatio

# Inherited from

CoreChartOptions.devicePixelRatio

# Defined in

index.esm.d.ts:1522 (opens new window)


# elements

elements: ElementOptionsByType<keyof ChartTypeRegistry>

# Inherited from

ElementChartOptions.elements

# Defined in

index.esm.d.ts:2047 (opens new window)


# events

events: keyof HTMLElementEventMap[]

The events option defines the browser events that the chart should listen to for tooltips and hovering.

default ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']

# Inherited from

CoreChartOptions.events

# Defined in

index.esm.d.ts:1532 (opens new window)


# font

font: Partial<FontSpec>

base font

see Defaults.font

# Inherited from

CoreChartOptions.font

# Defined in

index.esm.d.ts:1484 (opens new window)


# hover

hover: CoreInteractionOptions

# Inherited from

CoreChartOptions.hover

# Defined in

index.esm.d.ts:1526 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

CoreChartOptions.indexAxis

# Defined in

index.esm.d.ts:1458 (opens new window)


# interaction

interaction: CoreInteractionOptions

# Inherited from

CoreChartOptions.interaction

# Defined in

index.esm.d.ts:1524 (opens new window)


# layout

layout: Partial<{ autoPadding: boolean ; padding: Scriptable<number | Partial<ChartArea>, ScriptableContext<keyof ChartTypeRegistry>> }>

# Inherited from

CoreChartOptions.layout

# Defined in

index.esm.d.ts:1544 (opens new window)


# locale

locale: string

Locale used for number formatting (using Intl.NumberFormat).

default user's browser setting

# Inherited from

CoreChartOptions.locale

# Defined in

index.esm.d.ts:1511 (opens new window)


# maintainAspectRatio

maintainAspectRatio: boolean

Maintain the original canvas aspect ratio (width / height) when resizing.

default true

# Inherited from

CoreChartOptions.maintainAspectRatio

# Defined in

index.esm.d.ts:1494 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

CoreChartOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

CoreChartOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# plugins

plugins: PluginOptionsByType<keyof ChartTypeRegistry>

# Inherited from

PluginChartOptions.plugins

# Defined in

index.esm.d.ts:2845 (opens new window)


# resizeDelay

resizeDelay: number

Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements.

default 0

# Inherited from

CoreChartOptions.resizeDelay

# Defined in

index.esm.d.ts:1499 (opens new window)


# responsive

responsive: boolean

Resizes the chart canvas when its container does (important note...).

default true

# Inherited from

CoreChartOptions.responsive

# Defined in

index.esm.d.ts:1489 (opens new window)


# scale

scale: ScaleOptionsByType<keyof ScaleTypeRegistry>

# Defined in

index.esm.d.ts:659 (opens new window)


# scales

scales: Object

# Type declaration

Name Type
category { type: "category" } & Omit<CartesianScaleOptions, "min" | "max"> & { labels: string[] | string[][] ; max: string | number ; min: string | number }
linear { type: "linear" } & CartesianScaleOptions & { beginAtZero: boolean ; grace?: string | number ; suggestedMax?: number ; suggestedMin?: number ; ticks: { count: number ; format: NumberFormatOptions ; precision: number ; stepSize: number } }
logarithmic { type: "logarithmic" } & CartesianScaleOptions & { suggestedMax?: number ; suggestedMin?: number ; ticks: { format: NumberFormatOptions } }
radialLinear { type: "radialLinear" } & CoreScaleOptions & { angleLines: { borderDash: Scriptable<number[], ScripTablascaleContext> ; borderDashOffset: Scriptable<number, ScripTablascaleContext> ; color: Scriptable<Color, ScripTablascaleContext> ; display: boolean ; lineWidth: Scriptable<number, ScripTablascaleContext> } ; animate: boolean ; beginAtZero: boolean ; grid: GridLineOptions ; max: number ; min: number ; pointLabels: { backdropColor: Scriptable<Color, ScripTablascalePointLabelContext> ; backdropPadding: Scriptable<number | ChartArea, ScripTablascalePointLabelContext> ; borderRadius: Scriptable<number | BorderRadius, ScripTablascalePointLabelContext> ; centerPointLabels: boolean ; color: Scriptable<Color, ScripTablascalePointLabelContext> ; display: boolean ; font: ScriptableAndScriptableOptions<Partial<FontSpec>, ScripTablascalePointLabelContext> ; padding: Scriptable<number, ScripTablascalePointLabelContext> ; callback: (label: string, index: number) => string | number | string[] | number[] } ; startAngle: number ; suggestedMax: number ; suggestedMin: number ; ticks: RadialTickOptions }
time { type: "time" } & Omit<CartesianScaleOptions, "min" | "max"> & { adapters: { date: unknown } ; bounds: "data" | "ticks" ; max: string | number ; min: string | number ; offsetAfterAutoskip: boolean ; suggestedMax: string | number ; suggestedMin: string | number ; ticks: { source: "auto" | "data" | "labels" } ; time: { displayFormats: { [key: string]: string; } ; isoWeekday: number | boolean ; minUnit: TimeUnit ; parser: string | (v: unknown) => number ; round: false | TimeUnit ; stepSize: number ; tooltipFormat: string ; unit: false | TimeUnit } }
timeseries { type: "timeseries" } & Omit<CartesianScaleOptions, "min" | "max"> & { adapters: { date: unknown } ; bounds: "data" | "ticks" ; max: string | number ; min: string | number ; offsetAfterAutoskip: boolean ; suggestedMax: string | number ; suggestedMin: string | number ; ticks: { source: "auto" | "data" | "labels" } ; time: { displayFormats: { [key: string]: string; } ; isoWeekday: number | boolean ; minUnit: TimeUnit ; parser: string | (v: unknown) => number ; round: false | TimeUnit ; stepSize: number ; tooltipFormat: string ; unit: false | TimeUnit } }

# Defined in

index.esm.d.ts:660 (opens new window)


# transitions

transitions: TransitionsSpec<keyof ChartTypeRegistry>

# Inherited from

CoreChartOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)

# Methods

# describe

describe(scope, values): AnyObject

# Parameters

Name Type
scope string
values AnyObject

# Returns

AnyObject

# Defined in

index.esm.d.ts:668 (opens new window)


# get

get(scope): AnyObject

# Parameters

Name Type
scope string

# Returns

AnyObject

# Defined in

index.esm.d.ts:666 (opens new window)


# onClick

onClick(event, elements, chart): void

Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart.

# Parameters

Name Type
event ChartEvent
elements ActiveElement[]
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Inherited from

CoreChartOptions.onClick

# Defined in

index.esm.d.ts:1542 (opens new window)


# onHover

onHover(event, elements, chart): void

Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart.

# Parameters

Name Type
event ChartEvent
elements ActiveElement[]
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

void

# Inherited from

CoreChartOptions.onHover

# Defined in

index.esm.d.ts:1537 (opens new window)


# onResize

onResize(chart, size): void

Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.

# Parameters

Name Type
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
size Object
size.height number
size.width number

# Returns

void

# Inherited from

CoreChartOptions.onResize

# Defined in

index.esm.d.ts:1516 (opens new window)


# override

override(scope, values): AnyObject

# Parameters

Name Type
scope string
values AnyObject

# Returns

AnyObject

# Defined in

index.esm.d.ts:669 (opens new window)


# route

route(scope, name, targetScope, targetName): void

Routes the named defaults to fallback to another scope/name. +This routing is useful when those target values, like defaults.color, are changed runtime. +If the values would be copied, the runtime change would not take effect. By routing, the +fallback is evaluated at each access, so its always up to date.

Example:

defaults.route('elements.arc', 'backgroundColor', '', 'color')

  • reads the backgroundColor from defaults.color when undefined locally

# Parameters

Name Type Description
scope string Scope this route applies to.
name string Property name that should be routed to different namespace when not defined here.
targetScope string The namespace where those properties should be routed to. Empty string ('') is the root of defaults.
targetName string The target name in the target scope the property should be routed to.

# Returns

void

# Defined in

index.esm.d.ts:688 (opens new window)


# set

set(values): AnyObject

# Parameters

Name Type
values AnyObject

# Returns

AnyObject

# Defined in

index.esm.d.ts:664 (opens new window)

set(scope, values): AnyObject

# Parameters

Name Type
scope string
values AnyObject

# Returns

AnyObject

# Defined in

index.esm.d.ts:665 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutAnimationOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutAnimationOptions.html new file mode 100644 index 0000000..9f6a158 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutAnimationOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: DoughnutAnimationOptions | Chart.js + + + + + + + +

# Interface: DoughnutAnimationOptions

# Properties

# animateRotate

animateRotate: boolean

If true, the chart will animate in with a rotation animation. This property is in the options.animation object.

default true

# Defined in

index.esm.d.ts:282 (opens new window)


# animateScale

animateScale: boolean

If true, will animate scaling the chart from the center outwards.

default false

# Defined in

index.esm.d.ts:288 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutController.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutController.html new file mode 100644 index 0000000..c66b44f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutController.html @@ -0,0 +1,51 @@ + + + + + + Interface: DoughnutController | Chart.js + + + + + + + +

# Interface: DoughnutController

# Hierarchy

# Properties

# _cachedMeta

Readonly _cachedMeta: ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Inherited from

DatasetController._cachedMeta

# Defined in

index.esm.d.ts:583 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Inherited from

DatasetController.chart

# Defined in

index.esm.d.ts:581 (opens new window)


# enableOptionSharing

enableOptionSharing: boolean

# Inherited from

DatasetController.enableOptionSharing

# Defined in

index.esm.d.ts:584 (opens new window)


# index

Readonly index: number

# Inherited from

DatasetController.index

# Defined in

index.esm.d.ts:582 (opens new window)


# innerRadius

Readonly innerRadius: number

# Defined in

index.esm.d.ts:334 (opens new window)


# offsetX

Readonly offsetX: number

# Defined in

index.esm.d.ts:336 (opens new window)


# offsetY

Readonly offsetY: number

# Defined in

index.esm.d.ts:337 (opens new window)


# outerRadius

Readonly outerRadius: number

# Defined in

index.esm.d.ts:335 (opens new window)


# supportsDecimation

supportsDecimation: boolean

# Inherited from

DatasetController.supportsDecimation

# Defined in

index.esm.d.ts:588 (opens new window)

# Methods

# addElements

addElements(): void

# Returns

void

# Inherited from

DatasetController.addElements

# Defined in

index.esm.d.ts:604 (opens new window)


# applyStack

Protected applyStack(scale, parsed): number

# Parameters

Name Type
scale Scale<CoreScaleOptions>
parsed unknown[]

# Returns

number

# Inherited from

DatasetController.applyStack

# Defined in

index.esm.d.ts:640 (opens new window)


# buildOrUpdateElements

buildOrUpdateElements(resetNewElements?): void

# Parameters

Name Type
resetNewElements? boolean

# Returns

void

# Inherited from

DatasetController.buildOrUpdateElements

# Defined in

index.esm.d.ts:605 (opens new window)


# calculateCircumference

calculateCircumference(value): number

# Parameters

Name Type
value number

# Returns

number

# Defined in

index.esm.d.ts:340 (opens new window)


# calculateTotal

calculateTotal(): number

# Returns

number

# Defined in

index.esm.d.ts:339 (opens new window)


# configure

configure(): void

# Returns

void

# Inherited from

DatasetController.configure

# Defined in

index.esm.d.ts:602 (opens new window)


# draw

draw(): void

# Returns

void

# Inherited from

DatasetController.draw

# Defined in

index.esm.d.ts:597 (opens new window)


# getAllParsedValues

getAllParsedValues(scale): number[]

# Parameters

Name Type
scale Scale<CoreScaleOptions>

# Returns

number[]

# Inherited from

DatasetController.getAllParsedValues

# Defined in

index.esm.d.ts:591 (opens new window)


# getDataset

getDataset(): ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Returns

ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Inherited from

DatasetController.getDataset

# Defined in

index.esm.d.ts:599 (opens new window)


# getLabelAndValue

Protected getLabelAndValue(index): Object

# Parameters

Name Type
index number

# Returns

Object

Name Type
label string
value string

# Inherited from

DatasetController.getLabelAndValue

# Defined in

index.esm.d.ts:592 (opens new window)


# getMaxOverflow

Protected getMaxOverflow(): number | boolean

# Returns

number | boolean

# Inherited from

DatasetController.getMaxOverflow

# Defined in

index.esm.d.ts:596 (opens new window)


# getMeta

getMeta(): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Inherited from

DatasetController.getMeta

# Defined in

index.esm.d.ts:600 (opens new window)


# getMinMax

Protected getMinMax(scale, canStack?): Object

# Parameters

Name Type
scale Scale<CoreScaleOptions>
canStack? boolean

# Returns

Object

Name Type
max number
min number

# Inherited from

DatasetController.getMinMax

# Defined in

index.esm.d.ts:647 (opens new window)


# getParsed

Protected getParsed(index): number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData

# Parameters

Name Type
index number

# Returns

number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData

# Inherited from

DatasetController.getParsed

# Defined in

index.esm.d.ts:639 (opens new window)


# getScaleForId

getScaleForId(scaleID): Scale<CoreScaleOptions>

# Parameters

Name Type
scaleID string

# Returns

Scale<CoreScaleOptions>

# Inherited from

DatasetController.getScaleForId

# Defined in

index.esm.d.ts:601 (opens new window)


# getSharedOptions

Protected getSharedOptions(options): AnyObject

Utility for checking if the options are shared and should be animated separately.

# Parameters

Name Type
options AnyObject

# Returns

AnyObject

# Inherited from

DatasetController.getSharedOptions

# Defined in

index.esm.d.ts:614 (opens new window)


# getStyle

getStyle(index, active): AnyObject

# Parameters

Name Type
index number
active boolean

# Returns

AnyObject

# Inherited from

DatasetController.getStyle

# Defined in

index.esm.d.ts:607 (opens new window)


# includeOptions

Protected includeOptions(mode, sharedOptions): boolean

Utility for determining if options should be included in the updated properties

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
sharedOptions AnyObject

# Returns

boolean

# Inherited from

DatasetController.includeOptions

# Defined in

index.esm.d.ts:619 (opens new window)


# initialize

initialize(): void

# Returns

void

# Inherited from

DatasetController.initialize

# Defined in

index.esm.d.ts:603 (opens new window)


# linkScales

linkScales(): void

# Returns

void

# Inherited from

DatasetController.linkScales

# Defined in

index.esm.d.ts:590 (opens new window)


# parse

parse(start, count): void

# Parameters

Name Type
start number
count number

# Returns

void

# Inherited from

DatasetController.parse

# Defined in

index.esm.d.ts:635 (opens new window)


# parseArrayData

Protected parseArrayData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DatasetController.parseArrayData

# Defined in

index.esm.d.ts:637 (opens new window)


# parseObjectData

Protected parseObjectData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DatasetController.parseObjectData

# Defined in

index.esm.d.ts:638 (opens new window)


# parsePrimitiveData

Protected parsePrimitiveData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DatasetController.parsePrimitiveData

# Defined in

index.esm.d.ts:636 (opens new window)


# removeHoverStyle

removeHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element Element<AnyObject, AnyObject>
datasetIndex number
index number

# Returns

void

# Inherited from

DatasetController.removeHoverStyle

# Defined in

index.esm.d.ts:632 (opens new window)


# reset

reset(): void

# Returns

void

# Inherited from

DatasetController.reset

# Defined in

index.esm.d.ts:598 (opens new window)


# resolveDataElementOptions

Protected resolveDataElementOptions(index, mode): AnyObject

# Parameters

Name Type
index number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Inherited from

DatasetController.resolveDataElementOptions

# Defined in

index.esm.d.ts:609 (opens new window)


# resolveDatasetElementOptions

Protected resolveDatasetElementOptions(mode): AnyObject

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Inherited from

DatasetController.resolveDatasetElementOptions

# Defined in

index.esm.d.ts:608 (opens new window)


# setHoverStyle

setHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element Element<AnyObject, AnyObject>
datasetIndex number
index number

# Returns

void

# Inherited from

DatasetController.setHoverStyle

# Defined in

index.esm.d.ts:633 (opens new window)


# update

update(mode): void

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DatasetController.update

# Defined in

index.esm.d.ts:594 (opens new window)


# updateElement

Protected updateElement(element, index, properties, mode): void

Utility for updating an element with new properties, using animations when appropriate.

# Parameters

Name Type
element Element<AnyObject, AnyObject>
index number
properties AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DatasetController.updateElement

# Defined in

index.esm.d.ts:625 (opens new window)


# updateElements

updateElements(elements, start, count, mode): void

# Parameters

Name Type
elements Element<AnyObject, AnyObject>[]
start number
count number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DatasetController.updateElements

# Defined in

index.esm.d.ts:593 (opens new window)


# updateIndex

updateIndex(datasetIndex): void

# Parameters

Name Type
datasetIndex number

# Returns

void

# Inherited from

DatasetController.updateIndex

# Defined in

index.esm.d.ts:595 (opens new window)


# updateRangeFromParsed

Protected updateRangeFromParsed(range, scale, parsed, stack): void

# Parameters

Name Type
range Object
range.max number
range.min number
scale Scale<CoreScaleOptions>
parsed unknown[]
stack string | boolean

# Returns

void

# Inherited from

DatasetController.updateRangeFromParsed

# Defined in

index.esm.d.ts:641 (opens new window)


# updateSharedOptions

Protected updateSharedOptions(sharedOptions, mode, newOptions): void

Utility to animate the shared options, that are potentially affecting multiple elements.

# Parameters

Name Type
sharedOptions AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
newOptions AnyObject

# Returns

void

# Inherited from

DatasetController.updateSharedOptions

# Defined in

index.esm.d.ts:631 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerChartOptions.html new file mode 100644 index 0000000..8ad3f38 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerChartOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: DoughnutControllerChartOptions | Chart.js + + + + + + + +

# Interface: DoughnutControllerChartOptions

# Properties

# animation

animation: false | DoughnutAnimationOptions

# Defined in

index.esm.d.ts:328 (opens new window)


# circumference

circumference: number

Sweep to allow arcs to cover.

default 360

# Defined in

index.esm.d.ts:296 (opens new window)


# cutout

cutout: Scriptable<string | number, ScriptableContext<"doughnut">>

The portion of the chart that is cut out of the middle. ('50%' - for doughnut, 0 - for pie) +String ending with '%' means percentage, number means pixels.

default 50

# Defined in

index.esm.d.ts:303 (opens new window)


# offset

offset: number

Arc offset (in pixels).

# Defined in

index.esm.d.ts:308 (opens new window)


# radius

radius: Scriptable<string | number, ScriptableContext<"doughnut">>

The outer radius of the chart. String ending with '%' means percentage of maximum radius, number means pixels.

default '100%'

# Defined in

index.esm.d.ts:314 (opens new window)


# rotation

rotation: number

Starting angle to draw arcs from.

default 0

# Defined in

index.esm.d.ts:320 (opens new window)


# spacing

spacing: number

Spacing between the arcs

default 0

# Defined in

index.esm.d.ts:326 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerDatasetOptions.html new file mode 100644 index 0000000..18e458a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutControllerDatasetOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: DoughnutControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: DoughnutControllerDatasetOptions

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<"doughnut"> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

AnimationOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<"doughnut">

# Inherited from

AnimationOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderAlign

borderAlign: ScriptableAndArray<"center" | "inner", ScriptableContext<"doughnut">>

Arc stroke alignment.

# Inherited from

ScriptableAndArrayOptions.borderAlign

# Defined in

index.esm.d.ts:1732 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderJoinStyle

borderJoinStyle: ScriptableAndArray<CanvasLineJoin, ScriptableContext<"doughnut">>

Line join style. See MDN. Default is 'round' when borderAlign is 'inner', else 'bevel'.

# Inherited from

ScriptableAndArrayOptions.borderJoinStyle

# Defined in

index.esm.d.ts:1737 (opens new window)


# borderRadius

borderRadius: ScriptableAndArray<number | ArcBorderRadius, ScriptableContext<"doughnut">>

Sets the border radius for arcs

default 0

# Inherited from

ScriptableAndArrayOptions.borderRadius

# Defined in

index.esm.d.ts:1743 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# circular

circular: ScriptableAndArray<boolean, ScriptableContext<"doughnut">>

If false, Arc will be flat.

default true

# Inherited from

ScriptableAndArrayOptions.circular

# Defined in

index.esm.d.ts:1754 (opens new window)


# circumference

circumference: number

Sweep to allow arcs to cover.

default 360

# Defined in

index.esm.d.ts:250 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

ControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

ControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverOffset

hoverOffset: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

ScriptableAndArrayOptions.hoverOffset

# Defined in

index.esm.d.ts:1758 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

ControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

ControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# offset

offset: number

Arc offset (in pixels).

# Overrides

ScriptableAndArrayOptions.offset

# Defined in

index.esm.d.ts:255 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

ControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# rotation

rotation: number

Starting angle to draw this dataset from.

default 0

# Defined in

index.esm.d.ts:261 (opens new window)


# spacing

spacing: number

Similar to the offset option, but applies to all arcs. This can be used to to add spaces +between arcs

default 0

# Defined in

index.esm.d.ts:274 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

ControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)


# transitions

transitions: TransitionsSpec<"doughnut">

# Inherited from

AnimationOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)


# weight

weight: number

The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.

default 1

# Defined in

index.esm.d.ts:267 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutMetaExtensions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutMetaExtensions.html new file mode 100644 index 0000000..2ba0836 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/DoughnutMetaExtensions.html @@ -0,0 +1,51 @@ + + + + + + Interface: DoughnutMetaExtensions | Chart.js + + + + + + + +

# Interface: DoughnutMetaExtensions

# Properties

# total

total: number

# Defined in

index.esm.d.ts:349 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Element.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Element.html new file mode 100644 index 0000000..fee5b42 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Element.html @@ -0,0 +1,51 @@ + + + + + + Interface: Element | Chart.js + + + + + + + +

# Interface: Element<T, O>

# Type parameters

Name Type
T AnyObject
O AnyObject

# Properties

# active

Readonly active: boolean

# Defined in

element.d.ts:7 (opens new window)


# options

Readonly options: O

# Defined in

element.d.ts:8 (opens new window)


# x

Readonly x: number

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Defined in

element.d.ts:6 (opens new window)

# Methods

# getProps

getProps<P>(props, final?): Pick<T, P[number]>

# Type parameters

Name Type
P extends keyof T[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<T, P[number]>

# Defined in

element.d.ts:12 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Defined in

element.d.ts:11 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Defined in

element.d.ts:10 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ElementOptionsByType.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ElementOptionsByType.html new file mode 100644 index 0000000..813f6c9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ElementOptionsByType.html @@ -0,0 +1,51 @@ + + + + + + Interface: ElementOptionsByType | Chart.js + + + + + + + +
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ExtendedPlugin.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ExtendedPlugin.html new file mode 100644 index 0000000..9f2c3af --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ExtendedPlugin.html @@ -0,0 +1,53 @@ + + + + + + Interface: ExtendedPlugin | Chart.js + + + + + + + +

# Interface: ExtendedPlugin<TType, O, Model>

# Type parameters

Name Type
TType extends ChartType
O AnyObject
Model TooltipModel<TType>

# Hierarchy

# Methods

# afterTooltipDraw

Optional afterTooltipDraw(chart, args, options): void

desc Called after drawing the tooltip. Note that this hook will not +be called if the tooltip drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip Model The tooltip.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:2601 (opens new window)


# beforeTooltipDraw

Optional beforeTooltipDraw(chart, args, options): boolean | void

desc Called before drawing the tooltip. If any plugin returns false, +the tooltip drawing is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip Model The tooltip.
options O The plugin options.

# Returns

boolean | void

false to cancel the chart tooltip drawing.

# Defined in

index.esm.d.ts:2592 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerControllerDatasetOptions.html new file mode 100644 index 0000000..4f1fa2c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerControllerDatasetOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: FillerControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: FillerControllerDatasetOptions

# Properties

# fill

fill: FillTarget | ComplexFillTarget

Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end

# Defined in

index.esm.d.ts:2159 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerOptions.html new file mode 100644 index 0000000..10b0c68 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FillerOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: FillerOptions | Chart.js + + + + + + + +

# Interface: FillerOptions

# Properties

# drawTime

drawTime: "beforeDatasetDraw" | "beforeDatasetsDraw"

# Defined in

index.esm.d.ts:2134 (opens new window)


# propagate

propagate: boolean

# Defined in

index.esm.d.ts:2135 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FontSpec.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FontSpec.html new file mode 100644 index 0000000..8440193 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/FontSpec.html @@ -0,0 +1,51 @@ + + + + + + Interface: FontSpec | Chart.js + + + + + + + +

# Interface: FontSpec

# Properties

# family

family: string

Default font family for all text, follows CSS font-family options.

default "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif"

# Defined in

index.esm.d.ts:1659 (opens new window)


# lineHeight

lineHeight: string | number

Height of an individual line of text (see MDN).

default 1.2

# Defined in

index.esm.d.ts:1678 (opens new window)


# size

size: number

Default font size (in px) for text. Does not apply to radialLinear scale point labels.

default 12

# Defined in

index.esm.d.ts:1664 (opens new window)


# style

style: "normal" | "italic" | "oblique" | "initial" | "inherit"

Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit)

default 'normal'

# Defined in

index.esm.d.ts:1669 (opens new window)


# weight

weight: string

Default font weight (boldness). (see MDN).

# Defined in

index.esm.d.ts:1673 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/GridLineOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/GridLineOptions.html new file mode 100644 index 0000000..13b443b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/GridLineOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: GridLineOptions | Chart.js + + + + + + + +

# Interface: GridLineOptions

# Properties

# borderColor

borderColor: Color

# Defined in

index.esm.d.ts:2853 (opens new window)


# borderDash

borderDash: Scriptable<number[], ScripTablascaleContext>

default []

# Defined in

index.esm.d.ts:2866 (opens new window)


# borderDashOffset

borderDashOffset: Scriptable<number, ScripTablascaleContext>

default 0

# Defined in

index.esm.d.ts:2870 (opens new window)


# borderWidth

borderWidth: number

# Defined in

index.esm.d.ts:2854 (opens new window)


# circular

circular: boolean

default false

# Defined in

index.esm.d.ts:2858 (opens new window)


# color

color: ScriptableAndArray<Color, ScripTablascaleContext>

default 'rgba(0, 0, 0, 0.1)'

# Defined in

index.esm.d.ts:2862 (opens new window)


# display

display: boolean

default true

# Defined in

index.esm.d.ts:2852 (opens new window)


# drawBorder

drawBorder: boolean

default true

# Defined in

index.esm.d.ts:2879 (opens new window)


# drawOnChartArea

drawOnChartArea: boolean

default true

# Defined in

index.esm.d.ts:2883 (opens new window)


# drawTicks

drawTicks: boolean

default true

# Defined in

index.esm.d.ts:2887 (opens new window)


# lineWidth

lineWidth: ScriptableAndArray<number, ScripTablascaleContext>

default 1

# Defined in

index.esm.d.ts:2874 (opens new window)


# offset

offset: boolean

default false

# Defined in

index.esm.d.ts:2911 (opens new window)


# tickBorderDash

tickBorderDash: number[]

default []

# Defined in

index.esm.d.ts:2891 (opens new window)


# tickBorderDashOffset

tickBorderDashOffset: Scriptable<number, ScripTablascaleContext>

default 0

# Defined in

index.esm.d.ts:2895 (opens new window)


# tickColor

tickColor: ScriptableAndArray<Color, ScripTablascaleContext>

default 'rgba(0, 0, 0, 0.1)'

# Defined in

index.esm.d.ts:2899 (opens new window)


# tickLength

tickLength: number

default 10

# Defined in

index.esm.d.ts:2903 (opens new window)


# tickWidth

tickWidth: number

default 1

# Defined in

index.esm.d.ts:2907 (opens new window)


# z

z: number

default 0

# Defined in

index.esm.d.ts:2915 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionItem.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionItem.html new file mode 100644 index 0000000..7d2b3a8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionItem.html @@ -0,0 +1,51 @@ + + + + + + Interface: InteractionItem | Chart.js + + + + + + + +

# Interface: InteractionItem

# Properties

# datasetIndex

datasetIndex: number

# Defined in

index.esm.d.ts:710 (opens new window)


# element

element: Element<AnyObject, AnyObject>

# Defined in

index.esm.d.ts:709 (opens new window)


# index

index: number

# Defined in

index.esm.d.ts:711 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionModeMap.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionModeMap.html new file mode 100644 index 0000000..6f7bb93 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionModeMap.html @@ -0,0 +1,54 @@ + + + + + + Interface: InteractionModeMap | Chart.js + + + + + + + +

# Interface: InteractionModeMap

# Properties

# dataset

dataset: InteractionModeFunction

Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something +If the options.intersect is false, we find the nearest item and return the items in that dataset

# Defined in

index.esm.d.ts:732 (opens new window)


# index

index: InteractionModeFunction

Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something +If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item

# Defined in

index.esm.d.ts:726 (opens new window)


# nearest

nearest: InteractionModeFunction

nearest mode returns the element closest to the point

# Defined in

index.esm.d.ts:741 (opens new window)


# point

point: InteractionModeFunction

Point mode returns all elements that hit test based on the event position +of the event

# Defined in

index.esm.d.ts:737 (opens new window)


# x

x: InteractionModeFunction

x mode returns the elements that hit-test at the current x coordinate

# Defined in

index.esm.d.ts:745 (opens new window)


# y

y: InteractionModeFunction

y mode returns the elements that hit-test at the current y coordinate

# Defined in

index.esm.d.ts:749 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionOptions.html new file mode 100644 index 0000000..0419a14 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/InteractionOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: InteractionOptions | Chart.js + + + + + + + +

# Interface: InteractionOptions

# Properties

# axis

Optional axis: string

# Defined in

index.esm.d.ts:703 (opens new window)


# includeInvisible

Optional includeInvisible: boolean

# Defined in

index.esm.d.ts:705 (opens new window)


# intersect

Optional intersect: boolean

# Defined in

index.esm.d.ts:704 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LayoutItem.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LayoutItem.html new file mode 100644 index 0000000..97dbd56 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LayoutItem.html @@ -0,0 +1,51 @@ + + + + + + Interface: LayoutItem | Chart.js + + + + + + + +

# Interface: LayoutItem

# Hierarchy

# Properties

# bottom

bottom: number

Bottom edge of the item. Set by layout system and cannot be used in update

# Defined in

layout.d.ts:41 (opens new window)


# fullSize

fullSize: boolean

if true, and the item is horizontal, then push vertical boxes down

# Defined in

layout.d.ts:17 (opens new window)


# height

height: number

Height of item. Must be valid after update()

# Defined in

layout.d.ts:25 (opens new window)


# left

left: number

Left edge of the item. Set by layout system and cannot be used in update

# Defined in

layout.d.ts:29 (opens new window)


# position

position: LayoutPosition

The position of the item in the chart layout. Possible values are

# Defined in

layout.d.ts:9 (opens new window)


right: number

Right edge of the item. Set by layout system and cannot be used in update

# Defined in

layout.d.ts:37 (opens new window)


# top

top: number

Top edge of the item. Set by layout system and cannot be used in update

# Defined in

layout.d.ts:33 (opens new window)


# weight

weight: number

The weight used to sort the item. Higher weights are further away from the chart area

# Defined in

layout.d.ts:13 (opens new window)


# width

width: number

Width of item. Must be valid after update()

# Defined in

layout.d.ts:21 (opens new window)

# Methods

# beforeLayout

Optional beforeLayout(): void

Called before the layout process starts

# Returns

void

# Defined in

layout.d.ts:46 (opens new window)


# draw

draw(chartArea): void

Draws the element

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Defined in

layout.d.ts:50 (opens new window)


# getPadding

Optional getPadding(): ChartArea

Returns an object with padding on the edges

# Returns

ChartArea

# Defined in

layout.d.ts:54 (opens new window)


# isHorizontal

isHorizontal(): boolean

returns true if the layout item is horizontal (ie. top or bottom)

# Returns

boolean

# Defined in

layout.d.ts:58 (opens new window)


# update

update(width, height, margins?): void

Takes two parameters: width and height.

# Parameters

Name Type
width number
height number
margins? ChartArea

# Returns

void

# Defined in

layout.d.ts:64 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendElement.html new file mode 100644 index 0000000..1270943 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: LegendElement | Chart.js + + + + + + + +

# Interface: LegendElement<TType>

# Type parameters

Name Type
TType extends ChartType

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# bottom

bottom: number

Bottom edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.bottom

# Defined in

layout.d.ts:41 (opens new window)


# chart

chart: Chart<TType, DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>, unknown>

# Defined in

index.esm.d.ts:2253 (opens new window)


# ctx

ctx: CanvasRenderingContext2D

# Defined in

index.esm.d.ts:2254 (opens new window)


# fullSize

fullSize: boolean

if true, and the item is horizontal, then push vertical boxes down

# Inherited from

LayoutItem.fullSize

# Defined in

layout.d.ts:17 (opens new window)


# height

height: number

Height of item. Must be valid after update()

# Inherited from

LayoutItem.height

# Defined in

layout.d.ts:25 (opens new window)


# left

left: number

Left edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.left

# Defined in

layout.d.ts:29 (opens new window)


# legendItems

Optional legendItems: LegendItem[]

# Defined in

index.esm.d.ts:2255 (opens new window)


# options

options: LegendOptions<TType>

# Overrides

Element.options

# Defined in

index.esm.d.ts:2256 (opens new window)


# position

position: LayoutPosition

The position of the item in the chart layout. Possible values are

# Inherited from

LayoutItem.position

# Defined in

layout.d.ts:9 (opens new window)


right: number

Right edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.right

# Defined in

layout.d.ts:37 (opens new window)


# top

top: number

Top edge of the item. Set by layout system and cannot be used in update

# Inherited from

LayoutItem.top

# Defined in

layout.d.ts:33 (opens new window)


# weight

weight: number

The weight used to sort the item. Higher weights are further away from the chart area

# Inherited from

LayoutItem.weight

# Defined in

layout.d.ts:13 (opens new window)


# width

width: number

Width of item. Must be valid after update()

# Inherited from

LayoutItem.width

# Defined in

layout.d.ts:21 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# beforeLayout

Optional beforeLayout(): void

Called before the layout process starts

# Returns

void

# Inherited from

LayoutItem.beforeLayout

# Defined in

layout.d.ts:46 (opens new window)


# draw

draw(chartArea): void

Draws the element

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

LayoutItem.draw

# Defined in

layout.d.ts:50 (opens new window)


# getPadding

Optional getPadding(): ChartArea

Returns an object with padding on the edges

# Returns

ChartArea

# Inherited from

LayoutItem.getPadding

# Defined in

layout.d.ts:54 (opens new window)


# getProps

getProps<P>(props, final?): Pick<AnyObject, P[number]>

# Type parameters

Name Type
P extends string[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<AnyObject, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# isHorizontal

isHorizontal(): boolean

returns true if the layout item is horizontal (ie. top or bottom)

# Returns

boolean

# Inherited from

LayoutItem.isHorizontal

# Defined in

layout.d.ts:58 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)


# update

update(width, height, margins?): void

Takes two parameters: width and height.

# Parameters

Name Type
width number
height number
margins? ChartArea

# Returns

void

# Inherited from

LayoutItem.update

# Defined in

layout.d.ts:64 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendItem.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendItem.html new file mode 100644 index 0000000..3a2ee18 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendItem.html @@ -0,0 +1,52 @@ + + + + + + Interface: LegendItem | Chart.js + + + + + + + +

# Interface: LegendItem

# Properties

# borderRadius

Optional borderRadius: number | BorderRadius

Border radius of the legend box

since 3.1.0

# Defined in

index.esm.d.ts:2174 (opens new window)


# datasetIndex

Optional datasetIndex: number

Index of the associated dataset

# Defined in

index.esm.d.ts:2179 (opens new window)


# fillStyle

Optional fillStyle: Color

Fill style of the legend box

# Defined in

index.esm.d.ts:2189 (opens new window)


# fontColor

Optional fontColor: Color

Font color for the text +Defaults to LegendOptions.labels.color

# Defined in

index.esm.d.ts:2195 (opens new window)


# hidden

Optional hidden: boolean

If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect

# Defined in

index.esm.d.ts:2200 (opens new window)


# index

Optional index: number

Index the associated label in the labels array

# Defined in

index.esm.d.ts:2184 (opens new window)


# lineCap

Optional lineCap: CanvasLineCap

For box border.

see https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap

# Defined in

index.esm.d.ts:2206 (opens new window)


# lineDash

Optional lineDash: number[]

For box border.

see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash

# Defined in

index.esm.d.ts:2212 (opens new window)


# lineDashOffset

Optional lineDashOffset: number

For box border.

see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset

# Defined in

index.esm.d.ts:2218 (opens new window)


# lineJoin

Optional lineJoin: CanvasLineJoin

For box border.

see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin

# Defined in

index.esm.d.ts:2224 (opens new window)


# lineWidth

Optional lineWidth: number

Width of box border

# Defined in

index.esm.d.ts:2229 (opens new window)


# pointStyle

Optional pointStyle: PointStyle

Point style of the legend box (only used if usePointStyle is true)

# Defined in

index.esm.d.ts:2239 (opens new window)


# rotation

Optional rotation: number

Rotation of the point in degrees (only used if usePointStyle is true)

# Defined in

index.esm.d.ts:2244 (opens new window)


# strokeStyle

Optional strokeStyle: Color

Stroke style of the legend box

# Defined in

index.esm.d.ts:2234 (opens new window)


# text

text: string

Label that will be displayed

# Defined in

index.esm.d.ts:2168 (opens new window)


# textAlign

Optional textAlign: TextAlign

Text alignment

# Defined in

index.esm.d.ts:2249 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendOptions.html new file mode 100644 index 0000000..9c5980d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LegendOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: LegendOptions | Chart.js + + + + + + + +

# Interface: LegendOptions<TType>

# Type parameters

Name Type
TType extends ChartType

# Properties

# align

align: Align

Alignment of the legend.

default 'center'

# Defined in

index.esm.d.ts:2274 (opens new window)


# display

display: boolean

Is the legend shown?

default true

# Defined in

index.esm.d.ts:2264 (opens new window)


# fullSize

fullSize: boolean

Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use.

default true

# Defined in

index.esm.d.ts:2287 (opens new window)


# labels

labels: Object

# Type declaration

Name Type Description
boxHeight number Height of the coloured box. default fontSize
boxPadding number Padding between the color box and the text default 1
boxWidth number Width of colored box. default 40
color Color Color of label see Defaults.color
font ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableChartContext> Font of label see Defaults.font
padding number Padding between rows of colored boxes. default 10
pointStyle PointStyle Override point style for the legend. Only applies if usePointStyle is true
textAlign? TextAlign Text alignment
usePointStyle boolean Label style will match corresponding point style (size is based on the minimum value between boxWidth and font.size). default false
filter (item: LegendItem, data: ChartData<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>) => boolean -
generateLabels (chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>) => LegendItem[] -
sort (a: LegendItem, b: LegendItem, data: ChartData<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>) => number -

# Defined in

index.esm.d.ts:2306 (opens new window)


# maxHeight

maxHeight: number

Maximum height of the legend, in pixels

# Defined in

index.esm.d.ts:2278 (opens new window)


# maxWidth

maxWidth: number

Maximum width of the legend, in pixels

# Defined in

index.esm.d.ts:2282 (opens new window)


# position

position: LayoutPosition

Position of the legend.

default 'top'

# Defined in

index.esm.d.ts:2269 (opens new window)


# reverse

reverse: boolean

Legend will show datasets in reverse order.

default false

# Defined in

index.esm.d.ts:2292 (opens new window)


# rtl

rtl: boolean

true for rendering the legends from right to left.

# Defined in

index.esm.d.ts:2371 (opens new window)


# textDirection

textDirection: string

This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the legend, regardless of the css specified on the canvas

default canvas' default

# Defined in

index.esm.d.ts:2376 (opens new window)


# title

title: Object

# Type declaration

Name Type Description
color Color Color of title see Defaults.color
display boolean Is the legend title displayed. default false
font ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableChartContext> see Fonts
padding? number | ChartArea -
position "start" | "end" | "center" -
text string The string title.

# Defined in

index.esm.d.ts:2378 (opens new window)

# Methods

# onClick

onClick(e, legendItem, legend): void

A callback that is called when a click event is Registroed on a label item.

# Parameters

Name Type
e ChartEvent
legendItem LegendItem
legend LegendElement<TType>

# Returns

void

# Defined in

index.esm.d.ts:2296 (opens new window)


# onHover

onHover(e, legendItem, legend): void

A callback that is called when a 'mousemove' event is Registroed on top of a label item

# Parameters

Name Type
e ChartEvent
legendItem LegendItem
legend LegendElement<TType>

# Returns

void

# Defined in

index.esm.d.ts:2300 (opens new window)


# onLeave

onLeave(e, legendItem, legend): void

A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item.

# Parameters

Name Type
e ChartEvent
legendItem LegendItem
legend LegendElement<TType>

# Returns

void

# Defined in

index.esm.d.ts:2304 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerChartOptions.html new file mode 100644 index 0000000..0d5ed84 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerChartOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineControllerChartOptions | Chart.js + + + + + + + +

# Interface: LineControllerChartOptions

# Properties

# showLine

showLine: boolean

If false, the lines between points are not drawn.

default true

# Defined in

index.esm.d.ts:216 (opens new window)


# spanGaps

spanGaps: number | boolean

If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.

default false

# Defined in

index.esm.d.ts:211 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerDatasetOptions.html new file mode 100644 index 0000000..3abf6e5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineControllerDatasetOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: LineControllerDatasetOptions

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<"line"> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

AnimationOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<"line">

# Inherited from

AnimationOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderCapStyle

borderCapStyle: Scriptable<CanvasLineCap, ScriptableContext<"line">>

Line cap style. See MDN.

default 'butt'

# Inherited from

ScriptableOptions.borderCapStyle

# Defined in

index.esm.d.ts:1779 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderDash

borderDash: Scriptable<number[], ScriptableContext<"line">>

Line dash. See MDN.

default []

# Inherited from

ScriptableOptions.borderDash

# Defined in

index.esm.d.ts:1784 (opens new window)


# borderDashOffset

borderDashOffset: Scriptable<number, ScriptableContext<"line">>

Line dash offset. See MDN.

default 0.0

# Inherited from

ScriptableOptions.borderDashOffset

# Defined in

index.esm.d.ts:1789 (opens new window)


# borderJoinStyle

borderJoinStyle: Scriptable<CanvasLineJoin, ScriptableContext<"line">>

Line join style. See MDN.

default 'miter'

# Inherited from

ScriptableOptions.borderJoinStyle

# Defined in

index.esm.d.ts:1794 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# capBezierPoints

capBezierPoints: Scriptable<boolean, ScriptableContext<"line">>

true to keep Bézier control inside the chart, false for no restriction.

default true

# Inherited from

ScriptableOptions.capBezierPoints

# Defined in

index.esm.d.ts:1799 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

ControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# cubicInterpolationMode

cubicInterpolationMode: Scriptable<"default" | "monotone", ScriptableContext<"line">>

Interpolation mode to apply.

default 'default'

# Inherited from

ScriptableOptions.cubicInterpolationMode

# Defined in

index.esm.d.ts:1804 (opens new window)


# fill

fill: Scriptable<FillTarget | ComplexFillTarget, ScriptableContext<"line">>

Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end

# Inherited from

ScriptableOptions.fill

# Defined in

index.esm.d.ts:1818 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

ControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderCapStyle

hoverBorderCapStyle: Scriptable<CanvasLineCap, ScriptableContext<"line">>

# Inherited from

ScriptableOptions.hoverBorderCapStyle

# Defined in

index.esm.d.ts:1836 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderDash

hoverBorderDash: Scriptable<number[], ScriptableContext<"line">>

# Inherited from

ScriptableOptions.hoverBorderDash

# Defined in

index.esm.d.ts:1837 (opens new window)


# hoverBorderDashOffset

hoverBorderDashOffset: Scriptable<number, ScriptableContext<"line">>

# Inherited from

ScriptableOptions.hoverBorderDashOffset

# Defined in

index.esm.d.ts:1838 (opens new window)


# hoverBorderJoinStyle

hoverBorderJoinStyle: Scriptable<CanvasLineJoin, ScriptableContext<"line">>

# Inherited from

ScriptableOptions.hoverBorderJoinStyle

# Defined in

index.esm.d.ts:1839 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"line">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

ControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

ControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

ControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# pointBackgroundColor

pointBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"line">>

The fill color for points.

# Inherited from

ScriptableAndArrayOptions.pointBackgroundColor

# Defined in

index.esm.d.ts:1919 (opens new window)


# pointBorderColor

pointBorderColor: ScriptableAndArray<Color, ScriptableContext<"line">>

The border color for points.

# Inherited from

ScriptableAndArrayOptions.pointBorderColor

# Defined in

index.esm.d.ts:1923 (opens new window)


# pointBorderWidth

pointBorderWidth: ScriptableAndArray<number, ScriptableContext<"line">>

The width of the point border in pixels.

# Inherited from

ScriptableAndArrayOptions.pointBorderWidth

# Defined in

index.esm.d.ts:1927 (opens new window)


# pointHitRadius

pointHitRadius: ScriptableAndArray<number, ScriptableContext<"line">>

The pixel size of the non-displayed point that reacts to mouse events.

# Inherited from

ScriptableAndArrayOptions.pointHitRadius

# Defined in

index.esm.d.ts:1931 (opens new window)


# pointHoverBackgroundColor

pointHoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"line">>

Point background color when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBackgroundColor

# Defined in

index.esm.d.ts:1950 (opens new window)


# pointHoverBorderColor

pointHoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"line">>

Point border color when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBorderColor

# Defined in

index.esm.d.ts:1954 (opens new window)


# pointHoverBorderWidth

pointHoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"line">>

Border width of point when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBorderWidth

# Defined in

index.esm.d.ts:1958 (opens new window)


# pointHoverRadius

pointHoverRadius: ScriptableAndArray<number, ScriptableContext<"line">>

The radius of the point when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverRadius

# Defined in

index.esm.d.ts:1962 (opens new window)


# pointRadius

pointRadius: ScriptableAndArray<number, ScriptableContext<"line">>

The radius of the point shape. If set to 0, the point is not rendered.

# Inherited from

ScriptableAndArrayOptions.pointRadius

# Defined in

index.esm.d.ts:1935 (opens new window)


# pointRotation

pointRotation: ScriptableAndArray<number, ScriptableContext<"line">>

The rotation of the point in degrees.

# Inherited from

ScriptableAndArrayOptions.pointRotation

# Defined in

index.esm.d.ts:1939 (opens new window)


# pointStyle

pointStyle: ScriptableAndArray<PointStyle, ScriptableContext<"line">>

Style of the point.

# Inherited from

ScriptableAndArrayOptions.pointStyle

# Defined in

index.esm.d.ts:1943 (opens new window)


# segment

segment: Scriptable<{ backgroundColor: Scriptable<Color, ScriptableLineSegmentContext> ; borderCapStyle: Scriptable<CanvasLineCap, ScriptableLineSegmentContext> ; borderColor: Scriptable<Color, ScriptableLineSegmentContext> ; borderDash: Scriptable<number[], ScriptableLineSegmentContext> ; borderDashOffset: Scriptable<number, ScriptableLineSegmentContext> ; borderJoinStyle: Scriptable<CanvasLineJoin, ScriptableLineSegmentContext> ; borderWidth: Scriptable<number, ScriptableLineSegmentContext> }, ScriptableContext<"line">>

# Inherited from

ScriptableOptions.segment

# Defined in

index.esm.d.ts:1824 (opens new window)


# showLine

showLine: boolean

# Defined in

index.esm.d.ts:203 (opens new window)


# spanGaps

spanGaps: number | boolean

If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.

default false

# Overrides

ScriptableOptions.spanGaps

# Defined in

index.esm.d.ts:201 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

ControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)


# stepped

stepped: Scriptable<boolean | "middle" | "before" | "after", ScriptableContext<"line">>

true to show the line as a stepped line (tension will be ignored).

default false

# Inherited from

ScriptableOptions.stepped

# Defined in

index.esm.d.ts:1814 (opens new window)


# tension

tension: Scriptable<number, ScriptableContext<"line">>

Bézier curve tension (0 for no Bézier curves).

default 0

# Inherited from

ScriptableOptions.tension

# Defined in

index.esm.d.ts:1809 (opens new window)


# transitions

transitions: TransitionsSpec<"line">

# Inherited from

AnimationOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)


# xAxisID

xAxisID: string

The ID of the x axis to plot this dataset on.

# Defined in

index.esm.d.ts:191 (opens new window)


# yAxisID

yAxisID: string

The ID of the y axis to plot this dataset on.

# Defined in

index.esm.d.ts:195 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineElement.html new file mode 100644 index 0000000..1d66e29 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineElement | Chart.js + + + + + + + +

# Interface: LineElement<T, O>

# Type parameters

Name Type
T extends LineProps = LineProps
O extends LineOptions = LineOptions

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# options

Readonly options: O

# Inherited from

Element.options

# Defined in

element.d.ts:8 (opens new window)


# points

points: Point[]

# Defined in

index.esm.d.ts:1846 (opens new window)


# segments

Readonly segments: Segment[]

# Defined in

index.esm.d.ts:1847 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# draw

draw(ctx, area?): void

# Parameters

Name Type
ctx CanvasRenderingContext2D
area? ChartArea

# Returns

void

# Inherited from

VisualElement.draw

# Defined in

index.esm.d.ts:1685 (opens new window)


# first

first(): false | Point

# Returns

false | Point

# Defined in

index.esm.d.ts:1848 (opens new window)


# getCenterPoint

getCenterPoint(useFinalPosition?): Object

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Object

Name Type
x number
y number

# Inherited from

VisualElement.getCenterPoint

# Defined in

index.esm.d.ts:1689 (opens new window)


# getProps

getProps<P>(props, final?): Pick<T, P[number]>

# Type parameters

Name Type
P extends keyof T[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<T, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# getRange

Optional getRange(axis): number

# Parameters

Name Type
axis "x" | "y"

# Returns

number

# Inherited from

VisualElement.getRange

# Defined in

index.esm.d.ts:1690 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# inRange

inRange(mouseX, mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inRange

# Defined in

index.esm.d.ts:1686 (opens new window)


# inXRange

inXRange(mouseX, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inXRange

# Defined in

index.esm.d.ts:1687 (opens new window)


# inYRange

inYRange(mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inYRange

# Defined in

index.esm.d.ts:1688 (opens new window)


# interpolate

interpolate(point, property): Point | Point[]

# Parameters

Name Type
point Point
property "x" | "y"

# Returns

Point | Point[]

# Defined in

index.esm.d.ts:1850 (opens new window)


# last

last(): false | Point

# Returns

false | Point

# Defined in

index.esm.d.ts:1849 (opens new window)


# path

path(ctx): boolean

# Parameters

Name Type
ctx CanvasRenderingContext2D

# Returns

boolean

# Defined in

index.esm.d.ts:1852 (opens new window)


# pathSegment

pathSegment(ctx, segment, params): boolean

# Parameters

Name Type
ctx CanvasRenderingContext2D
segment Segment
params AnyObject

# Returns

boolean

# Defined in

index.esm.d.ts:1851 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)


# updateControlPoints

updateControlPoints(chartArea, indexAxis?): void

# Parameters

Name Type
chartArea ChartArea
indexAxis? "x" | "y"

# Returns

void

# Defined in

index.esm.d.ts:1845 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineHoverOptions.html new file mode 100644 index 0000000..d988dfd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineHoverOptions | Chart.js + + + + + + + +

# Interface: LineHoverOptions

# Hierarchy

# Properties

# hoverBackgroundColor

hoverBackgroundColor: Color

# Inherited from

CommonHoverOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderCapStyle

hoverBorderCapStyle: CanvasLineCap

# Defined in

index.esm.d.ts:1836 (opens new window)


# hoverBorderColor

hoverBorderColor: Color

# Inherited from

CommonHoverOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderDash

hoverBorderDash: number[]

# Defined in

index.esm.d.ts:1837 (opens new window)


# hoverBorderDashOffset

hoverBorderDashOffset: number

# Defined in

index.esm.d.ts:1838 (opens new window)


# hoverBorderJoinStyle

hoverBorderJoinStyle: CanvasLineJoin

# Defined in

index.esm.d.ts:1839 (opens new window)


# hoverBorderWidth

hoverBorderWidth: number

# Inherited from

CommonHoverOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineOptions.html new file mode 100644 index 0000000..7969079 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineOptions | Chart.js + + + + + + + +

# Interface: LineOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: Color

# Inherited from

CommonElementOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderCapStyle

borderCapStyle: CanvasLineCap

Line cap style. See MDN.

default 'butt'

# Defined in

index.esm.d.ts:1779 (opens new window)


# borderColor

borderColor: Color

# Inherited from

CommonElementOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderDash

borderDash: number[]

Line dash. See MDN.

default []

# Defined in

index.esm.d.ts:1784 (opens new window)


# borderDashOffset

borderDashOffset: number

Line dash offset. See MDN.

default 0.0

# Defined in

index.esm.d.ts:1789 (opens new window)


# borderJoinStyle

borderJoinStyle: CanvasLineJoin

Line join style. See MDN.

default 'miter'

# Defined in

index.esm.d.ts:1794 (opens new window)


# borderWidth

borderWidth: number

# Inherited from

CommonElementOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# capBezierPoints

capBezierPoints: boolean

true to keep Bézier control inside the chart, false for no restriction.

default true

# Defined in

index.esm.d.ts:1799 (opens new window)


# cubicInterpolationMode

cubicInterpolationMode: "default" | "monotone"

Interpolation mode to apply.

default 'default'

# Defined in

index.esm.d.ts:1804 (opens new window)


# fill

fill: FillTarget | ComplexFillTarget

Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end

# Defined in

index.esm.d.ts:1818 (opens new window)


# segment

segment: Object

# Type declaration

Name Type
backgroundColor Scriptable<Color, ScriptableLineSegmentContext>
borderCapStyle Scriptable<CanvasLineCap, ScriptableLineSegmentContext>
borderColor Scriptable<Color, ScriptableLineSegmentContext>
borderDash Scriptable<number[], ScriptableLineSegmentContext>
borderDashOffset Scriptable<number, ScriptableLineSegmentContext>
borderJoinStyle Scriptable<CanvasLineJoin, ScriptableLineSegmentContext>
borderWidth Scriptable<number, ScriptableLineSegmentContext>

# Defined in

index.esm.d.ts:1824 (opens new window)


# spanGaps

spanGaps: number | boolean

If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.

# Defined in

index.esm.d.ts:1822 (opens new window)


# stepped

stepped: boolean | "middle" | "before" | "after"

true to show the line as a stepped line (tension will be ignored).

default false

# Defined in

index.esm.d.ts:1814 (opens new window)


# tension

tension: number

Bézier curve tension (0 for no Bézier curves).

default 0

# Defined in

index.esm.d.ts:1809 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineProps.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineProps.html new file mode 100644 index 0000000..0afed92 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/LineProps.html @@ -0,0 +1,51 @@ + + + + + + Interface: LineProps | Chart.js + + + + + + + +

# Interface: LineProps

# Properties

# points

points: Point[]

# Defined in

index.esm.d.ts:1771 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ParsingOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ParsingOptions.html new file mode 100644 index 0000000..f2e5ce4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ParsingOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: ParsingOptions | Chart.js + + + + + + + +

# Interface: ParsingOptions

# Hierarchy

# Properties

# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Defined in

index.esm.d.ts:58 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Defined in

index.esm.d.ts:49 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Plugin.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Plugin.html new file mode 100644 index 0000000..ed0f37f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Plugin.html @@ -0,0 +1,74 @@ + + + + + + Interface: Plugin | Chart.js + + + + + + + +

# Interface: Plugin<TType, O>

# Type parameters

Name Type
TType extends ChartType = ChartType
O AnyObject

# Hierarchy

# Properties

# id

id: string

# Defined in

index.esm.d.ts:808 (opens new window)

# Methods

# afterBuildTicks

Optional afterBuildTicks(chart, args, options): void

desc Called after scale has build its ticks. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:967 (opens new window)


# afterDataLimits

Optional afterDataLimits(chart, args, options): void

desc Called after scale data limits are calculated. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:951 (opens new window)


# afterDatasetDraw

Optional afterDatasetDraw(chart, args, options): void

desc Called after the chart datasets at the given args.index have been drawn +(datasets are drawn in the reverse order). Note that this hook will not be called +if the datasets drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1049 (opens new window)


# afterDatasetUpdate

Optional afterDatasetUpdate(chart, args, options): void

desc Called after the chart datasets at the given args.index has been updated. Note +that this hook will not be called if the datasets update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable false -
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:926 (opens new window)


# afterDatasetsDraw

Optional afterDatasetsDraw(chart, args, options, cancelable): void

desc Called after the chart datasets have been drawn. Note that this hook +will not be called if the datasets drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.
cancelable false -

# Returns

void

# Defined in

index.esm.d.ts:1026 (opens new window)


# afterDatasetsUpdate

Optional afterDatasetsUpdate(chart, args, options): void

desc Called after the chart datasets have been updated. Note that this hook +will not be called if the datasets update has been previously cancelled.

since version 2.1.5

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:903 (opens new window)


# afterDestroy

Optional afterDestroy(chart, args, options): void

Called after the chart has been destroyed.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1102 (opens new window)


# afterDraw

Optional afterDraw(chart, args, options): void

desc Called after the chart has been drawn. Note that this hook will not be called +if the drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1009 (opens new window)


# afterEvent

Optional afterEvent(chart, args, options): void

desc Called after the event has been consumed. Note that this hook +will not be called if the event has been previously discarded.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable false -
args.changed? boolean -
args.event ChartEvent The event object.
args.inChartArea boolean The event position is inside chartArea
args.replay boolean True if this event is replayed from Chart.update
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1072 (opens new window)


# afterInit

Optional afterInit(chart, args, options): void

desc Called after chart has been initialized and before the first update.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:847 (opens new window)


# afterLayout

Optional afterLayout(chart, args, options): void

desc Called after the chart has been laid out. Note that this hook will not +be called if the layout update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:975 (opens new window)


# afterRender

Optional afterRender(chart, args, options): void

desc Called after the chart has been fully rendered (and animation completed). Note +that this hook will not be called if the rendering has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:992 (opens new window)


# afterTooltipDraw

Optional afterTooltipDraw(chart, args, options): void

desc Called after drawing the tooltip. Note that this hook will not +be called if the tooltip drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip TooltipModel<TType> The tooltip.
options O The plugin options.

# Returns

void

# Inherited from

ExtendedPlugin.afterTooltipDraw

# Defined in

index.esm.d.ts:2601 (opens new window)


# afterUpdate

Optional afterUpdate(chart, args, options): void

desc Called after chart has been updated and before rendering. Note that this +hook will not be called if the chart update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:866 (opens new window)


# beforeBuildTicks

Optional beforeBuildTicks(chart, args, options): void

desc Called before scale builds its ticks. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:959 (opens new window)


# beforeDataLimits

Optional beforeDataLimits(chart, args, options): void

desc Called before scale data limits are calculated. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:943 (opens new window)


# beforeDatasetDraw

Optional beforeDatasetDraw(chart, args, options): boolean | void

desc Called before drawing the chart dataset at the given args.index (datasets +are drawn in the reverse order). If any plugin returns false, the datasets drawing +is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
options O The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Defined in

index.esm.d.ts:1038 (opens new window)


# beforeDatasetUpdate

Optional beforeDatasetUpdate(chart, args, options): boolean | void

desc Called before updating the chart dataset at the given args.index. If any plugin +returns false, the datasets update is cancelled until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options O The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Defined in

index.esm.d.ts:915 (opens new window)


# beforeDatasetsDraw

Optional beforeDatasetsDraw(chart, args, options): boolean | void

desc Called before drawing the chart datasets. If any plugin returns false, +the datasets drawing is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options O The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Defined in

index.esm.d.ts:1018 (opens new window)


# beforeDatasetsUpdate

Optional beforeDatasetsUpdate(chart, args, options): boolean | void

desc Called before updating the chart datasets. If any plugin returns false, +the datasets update is cancelled until another update is triggered.

since version 2.1.5

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options O The plugin options.

# Returns

boolean | void

false to cancel the datasets update.

# Defined in

index.esm.d.ts:893 (opens new window)


# beforeDestroy

Optional beforeDestroy(chart, args, options): void

Called before the chart is being destroyed.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1087 (opens new window)


# beforeDraw

Optional beforeDraw(chart, args, options): boolean | void

desc Called before drawing chart at every animation frame. If any plugin returns false, +the frame drawing is cancelled untilanother render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options O The plugin options.

# Returns

boolean | void

false to cancel the chart drawing.

# Defined in

index.esm.d.ts:1001 (opens new window)


# beforeElementsUpdate

Optional beforeElementsUpdate(chart, args, options): void

desc Called during the update process, before any chart elements have been created. +This can be used for data decimation by changing the data array inside a dataset.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:874 (opens new window)


# beforeEvent

Optional beforeEvent(chart, args, options): boolean | void

desc Called before processing the specified event. If any plugin returns false, +the event will be discarded.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.event ChartEvent The event object.
args.inChartArea boolean The event position is inside chartArea
args.replay boolean True if this event is replayed from Chart.update
options O The plugin options.

# Returns

boolean | void

# Defined in

index.esm.d.ts:1060 (opens new window)


# beforeInit

Optional beforeInit(chart, args, options): void

desc Called before initializing chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:840 (opens new window)


# beforeLayout

Optional beforeLayout(chart, args, options): boolean | void

desc Called before laying out chart. If any plugin returns false, +the layout update is cancelled until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options O The plugin options.

# Returns

boolean | void

false to cancel the chart layout.

# Defined in

index.esm.d.ts:935 (opens new window)


# beforeRender

Optional beforeRender(chart, args, options): boolean | void

desc Called before rendering chart. If any plugin returns false, +the rendering is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options O The plugin options.

# Returns

boolean | void

false to cancel the chart rendering.

# Defined in

index.esm.d.ts:984 (opens new window)


# beforeTooltipDraw

Optional beforeTooltipDraw(chart, args, options): boolean | void

desc Called before drawing the tooltip. If any plugin returns false, +the tooltip drawing is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip TooltipModel<TType> The tooltip.
options O The plugin options.

# Returns

boolean | void

false to cancel the chart tooltip drawing.

# Inherited from

ExtendedPlugin.beforeTooltipDraw

# Defined in

index.esm.d.ts:2592 (opens new window)


# beforeUpdate

Optional beforeUpdate(chart, args, options): boolean | void

desc Called before updating chart. If any plugin returns false, the update +is cancelled (and thus subsequent render(s)) until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode
options O The plugin options.

# Returns

boolean | void

false to cancel the chart update.

# Defined in

index.esm.d.ts:857 (opens new window)


# destroy

Optional destroy(chart, args, options): void

Called after the chart has been destroyed.

deprecated since version 3.7.0 in favour of afterDestroy

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1095 (opens new window)


# install

Optional install(chart, args, options): void

desc Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false).

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:817 (opens new window)


# reset

Optional reset(chart, args, options): void

desc Called during chart reset

since version 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:882 (opens new window)


# resize

Optional resize(chart, args, options): void

desc Called after the chart as been resized.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.size Object The new canvas display size (eq. canvas.style width & height).
args.size.height number -
args.size.width number -
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1080 (opens new window)


# start

Optional start(chart, args, options): void

desc Called when a plugin is starting. This happens when chart is created or plugin is enabled.

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:825 (opens new window)


# stop

Optional stop(chart, args, options): void

desc Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled.

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:833 (opens new window)


# uninstall

Optional uninstall(chart, args, options): void

Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false).

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options O The plugin options.

# Returns

void

# Defined in

index.esm.d.ts:1110 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginChartOptions.html new file mode 100644 index 0000000..c63db6b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginChartOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PluginChartOptions | Chart.js + + + + + + + +

# Interface: PluginChartOptions<TType>

# Type parameters

Name Type
TType extends ChartType

# Hierarchy

# Properties

# plugins

plugins: PluginOptionsByType<TType>

# Defined in

index.esm.d.ts:2845 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginOptionsByType.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginOptionsByType.html new file mode 100644 index 0000000..12fdeda --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PluginOptionsByType.html @@ -0,0 +1,51 @@ + + + + + + Interface: PluginOptionsByType | Chart.js + + + + + + + +

# Interface: PluginOptionsByType<TType>

# Type parameters

Name Type
TType extends ChartType

# Properties

# decimation

decimation: DecimationOptions

# Defined in

index.esm.d.ts:2837 (opens new window)


# filler

filler: FillerOptions

# Defined in

index.esm.d.ts:2838 (opens new window)


# legend

legend: LegendOptions<TType>

# Defined in

index.esm.d.ts:2839 (opens new window)


# subtitle

subtitle: TitleOptions

# Defined in

index.esm.d.ts:2840 (opens new window)


# title

title: TitleOptions

# Defined in

index.esm.d.ts:2841 (opens new window)


# tooltip

tooltip: TooltipOptions<TType>

# Defined in

index.esm.d.ts:2842 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Point.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Point.html new file mode 100644 index 0000000..b78188f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Point.html @@ -0,0 +1,51 @@ + + + + + + Interface: Point | Chart.js + + + + + + + +

# Interface: Point

# Properties

# x

x: number

# Defined in

geometric.d.ts:11 (opens new window)


# y

y: number

# Defined in

geometric.d.ts:12 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointElement.html new file mode 100644 index 0000000..1beb64c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointElement.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointElement | Chart.js + + + + + + + +

# Interface: PointElement<T, O>

# Type parameters

Name Type
T extends PointProps = PointProps
O extends PointOptions = PointOptions

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# options

Readonly options: O

# Inherited from

Element.options

# Defined in

element.d.ts:8 (opens new window)


# parsed

Readonly parsed: CartesianParsedData

# Defined in

index.esm.d.ts:1969 (opens new window)


# skip

Readonly skip: boolean

# Defined in

index.esm.d.ts:1968 (opens new window)


# x

Readonly x: number

# Inherited from

Element.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Element.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# draw

draw(ctx, area?): void

# Parameters

Name Type
ctx CanvasRenderingContext2D
area? ChartArea

# Returns

void

# Inherited from

VisualElement.draw

# Defined in

index.esm.d.ts:1685 (opens new window)


# getCenterPoint

getCenterPoint(useFinalPosition?): Object

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Object

Name Type
x number
y number

# Inherited from

VisualElement.getCenterPoint

# Defined in

index.esm.d.ts:1689 (opens new window)


# getProps

getProps<P>(props, final?): Pick<T, P[number]>

# Type parameters

Name Type
P extends keyof T[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<T, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# getRange

Optional getRange(axis): number

# Parameters

Name Type
axis "x" | "y"

# Returns

number

# Inherited from

VisualElement.getRange

# Defined in

index.esm.d.ts:1690 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# inRange

inRange(mouseX, mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inRange

# Defined in

index.esm.d.ts:1686 (opens new window)


# inXRange

inXRange(mouseX, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inXRange

# Defined in

index.esm.d.ts:1687 (opens new window)


# inYRange

inYRange(mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Inherited from

VisualElement.inYRange

# Defined in

index.esm.d.ts:1688 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointHoverOptions.html new file mode 100644 index 0000000..2b92d8b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointHoverOptions | Chart.js + + + + + + + +

# Interface: PointHoverOptions

# Hierarchy

# Properties

# hoverBackgroundColor

hoverBackgroundColor: Color

# Inherited from

CommonHoverOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: Color

# Inherited from

CommonHoverOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: number

# Inherited from

CommonHoverOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverRadius

hoverRadius: number

Point radius when hovered.

default 4

# Defined in

index.esm.d.ts:1912 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointOptions.html new file mode 100644 index 0000000..4067247 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointOptions | Chart.js + + + + + + + +

# Interface: PointOptions

# Hierarchy

# Properties

# backgroundColor

backgroundColor: Color

# Inherited from

CommonElementOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderColor

borderColor: Color

# Inherited from

CommonElementOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderWidth

borderWidth: number

# Inherited from

CommonElementOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# drawActiveElementsOnTop

drawActiveElementsOnTop: boolean

Draw the active elements over the other elements of the dataset,

default true

# Defined in

index.esm.d.ts:1904 (opens new window)


# hitRadius

hitRadius: number

Extra radius added to point radius for hit detection.

default 1

# Defined in

index.esm.d.ts:1889 (opens new window)


# pointStyle

pointStyle: PointStyle

Point style

default 'circle;

# Defined in

index.esm.d.ts:1894 (opens new window)


# radius

radius: number

Point radius

default 3

# Defined in

index.esm.d.ts:1884 (opens new window)


# rotation

rotation: number

Point rotation (in degrees).

default 0

# Defined in

index.esm.d.ts:1899 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedHoverOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedHoverOptions.html new file mode 100644 index 0000000..d04b1a7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedHoverOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointPrefixedHoverOptions | Chart.js + + + + + + + +

# Interface: PointPrefixedHoverOptions

# Properties

# pointHoverBackgroundColor

pointHoverBackgroundColor: Color

Point background color when hovered.

# Defined in

index.esm.d.ts:1950 (opens new window)


# pointHoverBorderColor

pointHoverBorderColor: Color

Point border color when hovered.

# Defined in

index.esm.d.ts:1954 (opens new window)


# pointHoverBorderWidth

pointHoverBorderWidth: number

Border width of point when hovered.

# Defined in

index.esm.d.ts:1958 (opens new window)


# pointHoverRadius

pointHoverRadius: number

The radius of the point when hovered.

# Defined in

index.esm.d.ts:1962 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedOptions.html new file mode 100644 index 0000000..29d73c6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointPrefixedOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointPrefixedOptions | Chart.js + + + + + + + +

# Interface: PointPrefixedOptions

# Properties

# pointBackgroundColor

pointBackgroundColor: Color

The fill color for points.

# Defined in

index.esm.d.ts:1919 (opens new window)


# pointBorderColor

pointBorderColor: Color

The border color for points.

# Defined in

index.esm.d.ts:1923 (opens new window)


# pointBorderWidth

pointBorderWidth: number

The width of the point border in pixels.

# Defined in

index.esm.d.ts:1927 (opens new window)


# pointHitRadius

pointHitRadius: number

The pixel size of the non-displayed point that reacts to mouse events.

# Defined in

index.esm.d.ts:1931 (opens new window)


# pointRadius

pointRadius: number

The radius of the point shape. If set to 0, the point is not rendered.

# Defined in

index.esm.d.ts:1935 (opens new window)


# pointRotation

pointRotation: number

The rotation of the point in degrees.

# Defined in

index.esm.d.ts:1939 (opens new window)


# pointStyle

pointStyle: PointStyle

Style of the point.

# Defined in

index.esm.d.ts:1943 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointProps.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointProps.html new file mode 100644 index 0000000..47b0db9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PointProps.html @@ -0,0 +1,51 @@ + + + + + + Interface: PointProps | Chart.js + + + + + + + +

# Interface: PointProps

# Properties

# x

x: number

# Defined in

index.esm.d.ts:1861 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:1862 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaController.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaController.html new file mode 100644 index 0000000..2a793a9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaController.html @@ -0,0 +1,51 @@ + + + + + + Interface: PolarAreaController | Chart.js + + + + + + + +

# Interface: PolarAreaController

# Hierarchy

# Properties

# _cachedMeta

Readonly _cachedMeta: ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Inherited from

DoughnutController._cachedMeta

# Defined in

index.esm.d.ts:583 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Inherited from

DoughnutController.chart

# Defined in

index.esm.d.ts:581 (opens new window)


# enableOptionSharing

enableOptionSharing: boolean

# Inherited from

DoughnutController.enableOptionSharing

# Defined in

index.esm.d.ts:584 (opens new window)


# index

Readonly index: number

# Inherited from

DoughnutController.index

# Defined in

index.esm.d.ts:582 (opens new window)


# innerRadius

Readonly innerRadius: number

# Inherited from

DoughnutController.innerRadius

# Defined in

index.esm.d.ts:334 (opens new window)


# offsetX

Readonly offsetX: number

# Inherited from

DoughnutController.offsetX

# Defined in

index.esm.d.ts:336 (opens new window)


# offsetY

Readonly offsetY: number

# Inherited from

DoughnutController.offsetY

# Defined in

index.esm.d.ts:337 (opens new window)


# outerRadius

Readonly outerRadius: number

# Inherited from

DoughnutController.outerRadius

# Defined in

index.esm.d.ts:335 (opens new window)


# supportsDecimation

supportsDecimation: boolean

# Inherited from

DoughnutController.supportsDecimation

# Defined in

index.esm.d.ts:588 (opens new window)

# Methods

# addElements

addElements(): void

# Returns

void

# Inherited from

DoughnutController.addElements

# Defined in

index.esm.d.ts:604 (opens new window)


# applyStack

Protected applyStack(scale, parsed): number

# Parameters

Name Type
scale Scale<CoreScaleOptions>
parsed unknown[]

# Returns

number

# Inherited from

DoughnutController.applyStack

# Defined in

index.esm.d.ts:640 (opens new window)


# buildOrUpdateElements

buildOrUpdateElements(resetNewElements?): void

# Parameters

Name Type
resetNewElements? boolean

# Returns

void

# Inherited from

DoughnutController.buildOrUpdateElements

# Defined in

index.esm.d.ts:605 (opens new window)


# calculateCircumference

calculateCircumference(value): number

# Parameters

Name Type
value number

# Returns

number

# Inherited from

DoughnutController.calculateCircumference

# Defined in

index.esm.d.ts:340 (opens new window)


# calculateTotal

calculateTotal(): number

# Returns

number

# Inherited from

DoughnutController.calculateTotal

# Defined in

index.esm.d.ts:339 (opens new window)


# configure

configure(): void

# Returns

void

# Inherited from

DoughnutController.configure

# Defined in

index.esm.d.ts:602 (opens new window)


# countVisibleElements

countVisibleElements(): number

# Returns

number

# Defined in

index.esm.d.ts:386 (opens new window)


# draw

draw(): void

# Returns

void

# Inherited from

DoughnutController.draw

# Defined in

index.esm.d.ts:597 (opens new window)


# getAllParsedValues

getAllParsedValues(scale): number[]

# Parameters

Name Type
scale Scale<CoreScaleOptions>

# Returns

number[]

# Inherited from

DoughnutController.getAllParsedValues

# Defined in

index.esm.d.ts:591 (opens new window)


# getDataset

getDataset(): ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Returns

ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[]>

# Inherited from

DoughnutController.getDataset

# Defined in

index.esm.d.ts:599 (opens new window)


# getLabelAndValue

Protected getLabelAndValue(index): Object

# Parameters

Name Type
index number

# Returns

Object

Name Type
label string
value string

# Inherited from

DoughnutController.getLabelAndValue

# Defined in

index.esm.d.ts:592 (opens new window)


# getMaxOverflow

Protected getMaxOverflow(): number | boolean

# Returns

number | boolean

# Inherited from

DoughnutController.getMaxOverflow

# Defined in

index.esm.d.ts:596 (opens new window)


# getMeta

getMeta(): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>

# Inherited from

DoughnutController.getMeta

# Defined in

index.esm.d.ts:600 (opens new window)


# getMinMax

Protected getMinMax(scale, canStack?): Object

# Parameters

Name Type
scale Scale<CoreScaleOptions>
canStack? boolean

# Returns

Object

Name Type
max number
min number

# Inherited from

DoughnutController.getMinMax

# Defined in

index.esm.d.ts:647 (opens new window)


# getParsed

Protected getParsed(index): number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData

# Parameters

Name Type
index number

# Returns

number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData

# Inherited from

DoughnutController.getParsed

# Defined in

index.esm.d.ts:639 (opens new window)


# getScaleForId

getScaleForId(scaleID): Scale<CoreScaleOptions>

# Parameters

Name Type
scaleID string

# Returns

Scale<CoreScaleOptions>

# Inherited from

DoughnutController.getScaleForId

# Defined in

index.esm.d.ts:601 (opens new window)


# getSharedOptions

Protected getSharedOptions(options): AnyObject

Utility for checking if the options are shared and should be animated separately.

# Parameters

Name Type
options AnyObject

# Returns

AnyObject

# Inherited from

DoughnutController.getSharedOptions

# Defined in

index.esm.d.ts:614 (opens new window)


# getStyle

getStyle(index, active): AnyObject

# Parameters

Name Type
index number
active boolean

# Returns

AnyObject

# Inherited from

DoughnutController.getStyle

# Defined in

index.esm.d.ts:607 (opens new window)


# includeOptions

Protected includeOptions(mode, sharedOptions): boolean

Utility for determining if options should be included in the updated properties

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
sharedOptions AnyObject

# Returns

boolean

# Inherited from

DoughnutController.includeOptions

# Defined in

index.esm.d.ts:619 (opens new window)


# initialize

initialize(): void

# Returns

void

# Inherited from

DoughnutController.initialize

# Defined in

index.esm.d.ts:603 (opens new window)


# linkScales

linkScales(): void

# Returns

void

# Inherited from

DoughnutController.linkScales

# Defined in

index.esm.d.ts:590 (opens new window)


# parse

parse(start, count): void

# Parameters

Name Type
start number
count number

# Returns

void

# Inherited from

DoughnutController.parse

# Defined in

index.esm.d.ts:635 (opens new window)


# parseArrayData

Protected parseArrayData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DoughnutController.parseArrayData

# Defined in

index.esm.d.ts:637 (opens new window)


# parseObjectData

Protected parseObjectData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DoughnutController.parseObjectData

# Defined in

index.esm.d.ts:638 (opens new window)


# parsePrimitiveData

Protected parsePrimitiveData(meta, data, start, count): AnyObject[]

# Parameters

Name Type
meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>
data AnyObject[]
start number
count number

# Returns

AnyObject[]

# Inherited from

DoughnutController.parsePrimitiveData

# Defined in

index.esm.d.ts:636 (opens new window)


# removeHoverStyle

removeHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element Element<AnyObject, AnyObject>
datasetIndex number
index number

# Returns

void

# Inherited from

DoughnutController.removeHoverStyle

# Defined in

index.esm.d.ts:632 (opens new window)


# reset

reset(): void

# Returns

void

# Inherited from

DoughnutController.reset

# Defined in

index.esm.d.ts:598 (opens new window)


# resolveDataElementOptions

Protected resolveDataElementOptions(index, mode): AnyObject

# Parameters

Name Type
index number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Inherited from

DoughnutController.resolveDataElementOptions

# Defined in

index.esm.d.ts:609 (opens new window)


# resolveDatasetElementOptions

Protected resolveDatasetElementOptions(mode): AnyObject

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

AnyObject

# Inherited from

DoughnutController.resolveDatasetElementOptions

# Defined in

index.esm.d.ts:608 (opens new window)


# setHoverStyle

setHoverStyle(element, datasetIndex, index): void

# Parameters

Name Type
element Element<AnyObject, AnyObject>
datasetIndex number
index number

# Returns

void

# Inherited from

DoughnutController.setHoverStyle

# Defined in

index.esm.d.ts:633 (opens new window)


# update

update(mode): void

# Parameters

Name Type
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DoughnutController.update

# Defined in

index.esm.d.ts:594 (opens new window)


# updateElement

Protected updateElement(element, index, properties, mode): void

Utility for updating an element with new properties, using animations when appropriate.

# Parameters

Name Type
element Element<AnyObject, AnyObject>
index number
properties AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DoughnutController.updateElement

# Defined in

index.esm.d.ts:625 (opens new window)


# updateElements

updateElements(elements, start, count, mode): void

# Parameters

Name Type
elements Element<AnyObject, AnyObject>[]
start number
count number
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"

# Returns

void

# Inherited from

DoughnutController.updateElements

# Defined in

index.esm.d.ts:593 (opens new window)


# updateIndex

updateIndex(datasetIndex): void

# Parameters

Name Type
datasetIndex number

# Returns

void

# Inherited from

DoughnutController.updateIndex

# Defined in

index.esm.d.ts:595 (opens new window)


# updateRangeFromParsed

Protected updateRangeFromParsed(range, scale, parsed, stack): void

# Parameters

Name Type
range Object
range.max number
range.min number
scale Scale<CoreScaleOptions>
parsed unknown[]
stack string | boolean

# Returns

void

# Inherited from

DoughnutController.updateRangeFromParsed

# Defined in

index.esm.d.ts:641 (opens new window)


# updateSharedOptions

Protected updateSharedOptions(sharedOptions, mode, newOptions): void

Utility to animate the shared options, that are potentially affecting multiple elements.

# Parameters

Name Type
sharedOptions AnyObject
mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active"
newOptions AnyObject

# Returns

void

# Inherited from

DoughnutController.updateSharedOptions

# Defined in

index.esm.d.ts:631 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerChartOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerChartOptions.html new file mode 100644 index 0000000..bb81958 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerChartOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: PolarAreaControllerChartOptions | Chart.js + + + + + + + +

# Interface: PolarAreaControllerChartOptions

# Properties

# animation

animation: false | DoughnutAnimationOptions

# Defined in

index.esm.d.ts:382 (opens new window)


# startAngle

startAngle: number

Starting angle to draw arcs for the first item in a dataset. In degrees, 0 is at top.

default 0

# Defined in

index.esm.d.ts:380 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerDatasetOptions.html new file mode 100644 index 0000000..201c9e0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/PolarAreaControllerDatasetOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: PolarAreaControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: PolarAreaControllerDatasetOptions

# Hierarchy

# Properties

# angle

angle: number

Arc angle to cover. - for polar only

default circumference / (arc count)

# Defined in

index.esm.d.ts:370 (opens new window)


# animation

animation: false | AnimationSpec<"doughnut"> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

DoughnutControllerDatasetOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<"doughnut">

# Inherited from

DoughnutControllerDatasetOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderAlign

borderAlign: ScriptableAndArray<"center" | "inner", ScriptableContext<"doughnut">>

Arc stroke alignment.

# Inherited from

DoughnutControllerDatasetOptions.borderAlign

# Defined in

index.esm.d.ts:1732 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderJoinStyle

borderJoinStyle: ScriptableAndArray<CanvasLineJoin, ScriptableContext<"doughnut">>

Line join style. See MDN. Default is 'round' when borderAlign is 'inner', else 'bevel'.

# Inherited from

DoughnutControllerDatasetOptions.borderJoinStyle

# Defined in

index.esm.d.ts:1737 (opens new window)


# borderRadius

borderRadius: ScriptableAndArray<number | ArcBorderRadius, ScriptableContext<"doughnut">>

Sets the border radius for arcs

default 0

# Inherited from

DoughnutControllerDatasetOptions.borderRadius

# Defined in

index.esm.d.ts:1743 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# circular

circular: ScriptableAndArray<boolean, ScriptableContext<"doughnut">>

If false, Arc will be flat.

default true

# Inherited from

DoughnutControllerDatasetOptions.circular

# Defined in

index.esm.d.ts:1754 (opens new window)


# circumference

circumference: number

Sweep to allow arcs to cover.

default 360

# Inherited from

DoughnutControllerDatasetOptions.circumference

# Defined in

index.esm.d.ts:250 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

DoughnutControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

DoughnutControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverOffset

hoverOffset: ScriptableAndArray<number, ScriptableContext<"doughnut">>

# Inherited from

DoughnutControllerDatasetOptions.hoverOffset

# Defined in

index.esm.d.ts:1758 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

DoughnutControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

DoughnutControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

DoughnutControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# offset

offset: number

Arc offset (in pixels).

# Inherited from

DoughnutControllerDatasetOptions.offset

# Defined in

index.esm.d.ts:255 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

DoughnutControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

DoughnutControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# rotation

rotation: number

Starting angle to draw this dataset from.

default 0

# Inherited from

DoughnutControllerDatasetOptions.rotation

# Defined in

index.esm.d.ts:261 (opens new window)


# spacing

spacing: number

Similar to the offset option, but applies to all arcs. This can be used to to add spaces +between arcs

default 0

# Inherited from

DoughnutControllerDatasetOptions.spacing

# Defined in

index.esm.d.ts:274 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

DoughnutControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)


# transitions

transitions: TransitionsSpec<"doughnut">

# Inherited from

DoughnutControllerDatasetOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)


# weight

weight: number

The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.

default 1

# Inherited from

DoughnutControllerDatasetOptions.weight

# Defined in

index.esm.d.ts:267 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadarControllerDatasetOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadarControllerDatasetOptions.html new file mode 100644 index 0000000..b1ec3e9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadarControllerDatasetOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: RadarControllerDatasetOptions | Chart.js + + + + + + + +

# Interface: RadarControllerDatasetOptions

# Hierarchy

# Properties

# animation

animation: false | AnimationSpec<"radar"> & { onComplete?: (event: AnimationEvent) => void ; onProgress?: (event: AnimationEvent) => void }

# Inherited from

AnimationOptions.animation

# Defined in

index.esm.d.ts:1640 (opens new window)


# animations

animations: AnimationsSpec<"radar">

# Inherited from

AnimationOptions.animations

# Defined in

index.esm.d.ts:1650 (opens new window)


# backgroundColor

backgroundColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.backgroundColor

# Defined in

index.esm.d.ts:1696 (opens new window)


# borderCapStyle

borderCapStyle: ScriptableAndArray<CanvasLineCap, ScriptableContext<"radar">>

Line cap style. See MDN.

default 'butt'

# Inherited from

ScriptableAndArrayOptions.borderCapStyle

# Defined in

index.esm.d.ts:1779 (opens new window)


# borderColor

borderColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.borderColor

# Defined in

index.esm.d.ts:1695 (opens new window)


# borderDash

borderDash: ScriptableAndArray<number[], ScriptableContext<"radar">>

Line dash. See MDN.

default []

# Inherited from

ScriptableAndArrayOptions.borderDash

# Defined in

index.esm.d.ts:1784 (opens new window)


# borderDashOffset

borderDashOffset: ScriptableAndArray<number, ScriptableContext<"radar">>

Line dash offset. See MDN.

default 0.0

# Inherited from

ScriptableAndArrayOptions.borderDashOffset

# Defined in

index.esm.d.ts:1789 (opens new window)


# borderJoinStyle

borderJoinStyle: ScriptableAndArray<CanvasLineJoin, ScriptableContext<"radar">>

Line join style. See MDN.

default 'miter'

# Inherited from

ScriptableAndArrayOptions.borderJoinStyle

# Defined in

index.esm.d.ts:1794 (opens new window)


# borderWidth

borderWidth: ScriptableAndArray<number, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.borderWidth

# Defined in

index.esm.d.ts:1694 (opens new window)


# capBezierPoints

capBezierPoints: ScriptableAndArray<boolean, ScriptableContext<"radar">>

true to keep Bézier control inside the chart, false for no restriction.

default true

# Inherited from

ScriptableAndArrayOptions.capBezierPoints

# Defined in

index.esm.d.ts:1799 (opens new window)


# clip

clip: number | false | ChartArea

How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

# Inherited from

ControllerDatasetOptions.clip

# Defined in

index.esm.d.ts:70 (opens new window)


# cubicInterpolationMode

cubicInterpolationMode: ScriptableAndArray<"default" | "monotone", ScriptableContext<"radar">>

Interpolation mode to apply.

default 'default'

# Inherited from

ScriptableAndArrayOptions.cubicInterpolationMode

# Defined in

index.esm.d.ts:1804 (opens new window)


# drawActiveElementsOnTop

drawActiveElementsOnTop: ScriptableAndArray<boolean, ScriptableContext<"radar">>

Draw the active elements over the other elements of the dataset,

default true

# Inherited from

ScriptableAndArrayOptions.drawActiveElementsOnTop

# Defined in

index.esm.d.ts:1904 (opens new window)


# fill

fill: ScriptableAndArray<FillTarget | ComplexFillTarget, ScriptableContext<"radar">>

Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end

# Inherited from

ScriptableAndArrayOptions.fill

# Defined in

index.esm.d.ts:1818 (opens new window)


# hidden

hidden: boolean

Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.

default false

# Inherited from

ControllerDatasetOptions.hidden

# Defined in

index.esm.d.ts:88 (opens new window)


# hitRadius

hitRadius: ScriptableAndArray<number, ScriptableContext<"radar">>

Extra radius added to point radius for hit detection.

default 1

# Inherited from

ScriptableAndArrayOptions.hitRadius

# Defined in

index.esm.d.ts:1889 (opens new window)


# hoverBackgroundColor

hoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBackgroundColor

# Defined in

index.esm.d.ts:1702 (opens new window)


# hoverBorderCapStyle

hoverBorderCapStyle: ScriptableAndArray<CanvasLineCap, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderCapStyle

# Defined in

index.esm.d.ts:1836 (opens new window)


# hoverBorderColor

hoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderColor

# Defined in

index.esm.d.ts:1701 (opens new window)


# hoverBorderDash

hoverBorderDash: ScriptableAndArray<number[], ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderDash

# Defined in

index.esm.d.ts:1837 (opens new window)


# hoverBorderDashOffset

hoverBorderDashOffset: ScriptableAndArray<number, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderDashOffset

# Defined in

index.esm.d.ts:1838 (opens new window)


# hoverBorderJoinStyle

hoverBorderJoinStyle: ScriptableAndArray<CanvasLineJoin, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderJoinStyle

# Defined in

index.esm.d.ts:1839 (opens new window)


# hoverBorderWidth

hoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.hoverBorderWidth

# Defined in

index.esm.d.ts:1700 (opens new window)


# hoverRadius

hoverRadius: ScriptableAndArray<number, ScriptableContext<"radar">>

Point radius when hovered.

default 4

# Inherited from

ScriptableAndArrayOptions.hoverRadius

# Defined in

index.esm.d.ts:1912 (opens new window)


# indexAxis

indexAxis: "x" | "y"

The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.

default 'x'

# Inherited from

ControllerDatasetOptions.indexAxis

# Defined in

index.esm.d.ts:66 (opens new window)


# label

label: string

The label for the dataset which appears in the legend and tooltips.

# Inherited from

ControllerDatasetOptions.label

# Defined in

index.esm.d.ts:74 (opens new window)


# normalized

normalized: boolean

Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.

# Inherited from

ControllerDatasetOptions.normalized

# Defined in

index.esm.d.ts:58 (opens new window)


# order

order: number

The drawing order of dataset. Also affects order for stacking, tooltip and legend.

# Inherited from

ControllerDatasetOptions.order

# Defined in

index.esm.d.ts:78 (opens new window)


# parsing

parsing: false | { [key: string]: string; }

How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

# Inherited from

ControllerDatasetOptions.parsing

# Defined in

index.esm.d.ts:49 (opens new window)


# pointBackgroundColor

pointBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

The fill color for points.

# Inherited from

ScriptableAndArrayOptions.pointBackgroundColor

# Defined in

index.esm.d.ts:1919 (opens new window)


# pointBorderColor

pointBorderColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

The border color for points.

# Inherited from

ScriptableAndArrayOptions.pointBorderColor

# Defined in

index.esm.d.ts:1923 (opens new window)


# pointBorderWidth

pointBorderWidth: ScriptableAndArray<number, ScriptableContext<"radar">>

The width of the point border in pixels.

# Inherited from

ScriptableAndArrayOptions.pointBorderWidth

# Defined in

index.esm.d.ts:1927 (opens new window)


# pointHitRadius

pointHitRadius: ScriptableAndArray<number, ScriptableContext<"radar">>

The pixel size of the non-displayed point that reacts to mouse events.

# Inherited from

ScriptableAndArrayOptions.pointHitRadius

# Defined in

index.esm.d.ts:1931 (opens new window)


# pointHoverBackgroundColor

pointHoverBackgroundColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

Point background color when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBackgroundColor

# Defined in

index.esm.d.ts:1950 (opens new window)


# pointHoverBorderColor

pointHoverBorderColor: ScriptableAndArray<Color, ScriptableContext<"radar">>

Point border color when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBorderColor

# Defined in

index.esm.d.ts:1954 (opens new window)


# pointHoverBorderWidth

pointHoverBorderWidth: ScriptableAndArray<number, ScriptableContext<"radar">>

Border width of point when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverBorderWidth

# Defined in

index.esm.d.ts:1958 (opens new window)


# pointHoverRadius

pointHoverRadius: ScriptableAndArray<number, ScriptableContext<"radar">>

The radius of the point when hovered.

# Inherited from

ScriptableAndArrayOptions.pointHoverRadius

# Defined in

index.esm.d.ts:1962 (opens new window)


# pointRadius

pointRadius: ScriptableAndArray<number, ScriptableContext<"radar">>

The radius of the point shape. If set to 0, the point is not rendered.

# Inherited from

ScriptableAndArrayOptions.pointRadius

# Defined in

index.esm.d.ts:1935 (opens new window)


# pointRotation

pointRotation: ScriptableAndArray<number, ScriptableContext<"radar">>

The rotation of the point in degrees.

# Inherited from

ScriptableAndArrayOptions.pointRotation

# Defined in

index.esm.d.ts:1939 (opens new window)


# pointStyle

pointStyle: ScriptableAndArray<PointStyle, ScriptableContext<"radar">>

Point style

default 'circle;

# Inherited from

ScriptableAndArrayOptions.pointStyle

# Defined in

index.esm.d.ts:1894 (opens new window)


# radius

radius: ScriptableAndArray<number, ScriptableContext<"radar">>

Point radius

default 3

# Inherited from

ScriptableAndArrayOptions.radius

# Defined in

index.esm.d.ts:1884 (opens new window)


# rotation

rotation: ScriptableAndArray<number, ScriptableContext<"radar">>

Point rotation (in degrees).

default 0

# Inherited from

ScriptableAndArrayOptions.rotation

# Defined in

index.esm.d.ts:1899 (opens new window)


# segment

segment: ScriptableAndArray<{ backgroundColor: Scriptable<Color, ScriptableLineSegmentContext> ; borderCapStyle: Scriptable<CanvasLineCap, ScriptableLineSegmentContext> ; borderColor: Scriptable<Color, ScriptableLineSegmentContext> ; borderDash: Scriptable<number[], ScriptableLineSegmentContext> ; borderDashOffset: Scriptable<number, ScriptableLineSegmentContext> ; borderJoinStyle: Scriptable<CanvasLineJoin, ScriptableLineSegmentContext> ; borderWidth: Scriptable<number, ScriptableLineSegmentContext> }, ScriptableContext<"radar">>

# Inherited from

ScriptableAndArrayOptions.segment

# Defined in

index.esm.d.ts:1824 (opens new window)


# showLine

showLine: boolean

If false, the line is not drawn for this dataset.

# Defined in

index.esm.d.ts:415 (opens new window)


# spanGaps

spanGaps: number | boolean

If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.

# Overrides

ScriptableAndArrayOptions.spanGaps

# Defined in

index.esm.d.ts:410 (opens new window)


# stack

stack: string

The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).

# Inherited from

ControllerDatasetOptions.stack

# Defined in

index.esm.d.ts:83 (opens new window)


# stepped

stepped: ScriptableAndArray<boolean | "middle" | "before" | "after", ScriptableContext<"radar">>

true to show the line as a stepped line (tension will be ignored).

default false

# Inherited from

ScriptableAndArrayOptions.stepped

# Defined in

index.esm.d.ts:1814 (opens new window)


# tension

tension: ScriptableAndArray<number, ScriptableContext<"radar">>

Bézier curve tension (0 for no Bézier curves).

default 0

# Inherited from

ScriptableAndArrayOptions.tension

# Defined in

index.esm.d.ts:1809 (opens new window)


# transitions

transitions: TransitionsSpec<"radar">

# Inherited from

AnimationOptions.transitions

# Defined in

index.esm.d.ts:1651 (opens new window)


# xAxisID

xAxisID: string

The ID of the x axis to plot this dataset on.

# Defined in

index.esm.d.ts:401 (opens new window)


# yAxisID

yAxisID: string

The ID of the y axis to plot this dataset on.

# Defined in

index.esm.d.ts:405 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialLinearScale.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialLinearScale.html new file mode 100644 index 0000000..8c4cc92 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialLinearScale.html @@ -0,0 +1,56 @@ + + + + + + Interface: RadialLinearScale | Chart.js + + + + + + + +

# Interface: RadialLinearScale<O>

# Type parameters

Name Type
O extends RadialLinearScaleOptions = RadialLinearScaleOptions

# Hierarchy

  • Scale<O>

    RadialLinearScale

# Properties

# active

Readonly active: boolean

# Inherited from

Scale.active

# Defined in

element.d.ts:7 (opens new window)


# axis

axis: string

# Inherited from

Scale.axis

# Defined in

index.esm.d.ts:1239 (opens new window)


# bottom

bottom: number

Bottom edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.bottom

# Defined in

layout.d.ts:41 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Inherited from

Scale.chart

# Defined in

index.esm.d.ts:1229 (opens new window)


# ctx

Readonly ctx: CanvasRenderingContext2D

# Inherited from

Scale.ctx

# Defined in

index.esm.d.ts:1228 (opens new window)


# fullSize

fullSize: boolean

if true, and the item is horizontal, then push vertical boxes down

# Inherited from

Scale.fullSize

# Defined in

layout.d.ts:17 (opens new window)


# height

height: number

Height of item. Must be valid after update()

# Inherited from

Scale.height

# Defined in

layout.d.ts:25 (opens new window)


# id

Readonly id: string

# Inherited from

Scale.id

# Defined in

index.esm.d.ts:1226 (opens new window)


# labelRotation

labelRotation: number

# Inherited from

Scale.labelRotation

# Defined in

index.esm.d.ts:1240 (opens new window)


# left

left: number

Left edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.left

# Defined in

layout.d.ts:29 (opens new window)


# max

max: number

# Inherited from

Scale.max

# Defined in

index.esm.d.ts:1242 (opens new window)


# maxHeight

maxHeight: number

# Inherited from

Scale.maxHeight

# Defined in

index.esm.d.ts:1232 (opens new window)


# maxWidth

maxWidth: number

# Inherited from

Scale.maxWidth

# Defined in

index.esm.d.ts:1231 (opens new window)


# min

min: number

# Inherited from

Scale.min

# Defined in

index.esm.d.ts:1241 (opens new window)


# options

Readonly options: O

# Inherited from

Scale.options

# Defined in

element.d.ts:8 (opens new window)


# paddingBottom

paddingBottom: number

# Inherited from

Scale.paddingBottom

# Defined in

index.esm.d.ts:1235 (opens new window)


# paddingLeft

paddingLeft: number

# Inherited from

Scale.paddingLeft

# Defined in

index.esm.d.ts:1236 (opens new window)


# paddingRight

paddingRight: number

# Inherited from

Scale.paddingRight

# Defined in

index.esm.d.ts:1237 (opens new window)


# paddingTop

paddingTop: number

# Inherited from

Scale.paddingTop

# Defined in

index.esm.d.ts:1234 (opens new window)


# position

position: LayoutPosition

The position of the item in the chart layout. Possible values are

# Inherited from

Scale.position

# Defined in

layout.d.ts:9 (opens new window)


right: number

Right edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.right

# Defined in

layout.d.ts:37 (opens new window)


# ticks

ticks: Tick[]

# Inherited from

Scale.ticks

# Defined in

index.esm.d.ts:1243 (opens new window)


# top

top: number

Top edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.top

# Defined in

layout.d.ts:33 (opens new window)


# type

Readonly type: string

# Inherited from

Scale.type

# Defined in

index.esm.d.ts:1227 (opens new window)


# weight

weight: number

The weight used to sort the item. Higher weights are further away from the chart area

# Inherited from

Scale.weight

# Defined in

layout.d.ts:13 (opens new window)


# width

width: number

Width of item. Must be valid after update()

# Inherited from

Scale.width

# Defined in

layout.d.ts:21 (opens new window)


# x

Readonly x: number

# Inherited from

Scale.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Scale.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# afterBuildTicks

afterBuildTicks(): void

# Returns

void

# Inherited from

Scale.afterBuildTicks

# Defined in

index.esm.d.ts:1323 (opens new window)


# afterCalculateLabelRotation

afterCalculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.afterCalculateLabelRotation

# Defined in

index.esm.d.ts:1329 (opens new window)


# afterDataLimits

afterDataLimits(): void

# Returns

void

# Inherited from

Scale.afterDataLimits

# Defined in

index.esm.d.ts:1320 (opens new window)


# afterFit

afterFit(): void

# Returns

void

# Inherited from

Scale.afterFit

# Defined in

index.esm.d.ts:1332 (opens new window)


# afterSetDimensions

afterSetDimensions(): void

# Returns

void

# Inherited from

Scale.afterSetDimensions

# Defined in

index.esm.d.ts:1317 (opens new window)


# afterTickToLabelConversion

afterTickToLabelConversion(): void

# Returns

void

# Inherited from

Scale.afterTickToLabelConversion

# Defined in

index.esm.d.ts:1326 (opens new window)


# afterUpdate

afterUpdate(): void

# Returns

void

# Inherited from

Scale.afterUpdate

# Defined in

index.esm.d.ts:1314 (opens new window)


# beforeBuildTicks

beforeBuildTicks(): void

# Returns

void

# Inherited from

Scale.beforeBuildTicks

# Defined in

index.esm.d.ts:1321 (opens new window)


# beforeCalculateLabelRotation

beforeCalculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.beforeCalculateLabelRotation

# Defined in

index.esm.d.ts:1327 (opens new window)


# beforeDataLimits

beforeDataLimits(): void

# Returns

void

# Inherited from

Scale.beforeDataLimits

# Defined in

index.esm.d.ts:1318 (opens new window)


# beforeFit

beforeFit(): void

# Returns

void

# Inherited from

Scale.beforeFit

# Defined in

index.esm.d.ts:1330 (opens new window)


# beforeLayout

Optional beforeLayout(): void

Called before the layout process starts

# Returns

void

# Inherited from

Scale.beforeLayout

# Defined in

layout.d.ts:46 (opens new window)


# beforeSetDimensions

beforeSetDimensions(): void

# Returns

void

# Inherited from

Scale.beforeSetDimensions

# Defined in

index.esm.d.ts:1315 (opens new window)


# beforeTickToLabelConversion

beforeTickToLabelConversion(): void

# Returns

void

# Inherited from

Scale.beforeTickToLabelConversion

# Defined in

index.esm.d.ts:1324 (opens new window)


# beforeUpdate

beforeUpdate(): void

# Returns

void

# Inherited from

Scale.beforeUpdate

# Defined in

index.esm.d.ts:1312 (opens new window)


# buildTicks

buildTicks(): Tick[]

# Returns

Tick[]

# Inherited from

Scale.buildTicks

# Defined in

index.esm.d.ts:1322 (opens new window)


# calculateLabelRotation

calculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.calculateLabelRotation

# Defined in

index.esm.d.ts:1328 (opens new window)


# configure

configure(): void

# Returns

void

# Inherited from

Scale.configure

# Defined in

index.esm.d.ts:1313 (opens new window)


# determineDataLimits

determineDataLimits(): void

# Returns

void

# Inherited from

Scale.determineDataLimits

# Defined in

index.esm.d.ts:1319 (opens new window)


# draw

draw(chartArea): void

Draws the element

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.draw

# Defined in

layout.d.ts:50 (opens new window)


# drawGrid

drawGrid(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawGrid

# Defined in

index.esm.d.ts:1248 (opens new window)


# drawLabels

drawLabels(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawLabels

# Defined in

index.esm.d.ts:1247 (opens new window)


# drawTitle

drawTitle(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawTitle

# Defined in

index.esm.d.ts:1246 (opens new window)


# fit

fit(): void

# Returns

void

# Inherited from

Scale.fit

# Defined in

index.esm.d.ts:1331 (opens new window)


# generateTickLabels

generateTickLabels(ticks): void

# Parameters

Name Type
ticks Tick[]

# Returns

void

# Inherited from

Scale.generateTickLabels

# Defined in

index.esm.d.ts:1325 (opens new window)


# getBasePixel

getBasePixel(): number

Returns the pixel for the minimum chart value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Returns

number

# Inherited from

Scale.getBasePixel

# Defined in

index.esm.d.ts:1304 (opens new window)


# getBasePosition

getBasePosition(index): Object

# Parameters

Name Type
index number

# Returns

Object

Name Type
angle number
x number
y number

# Defined in

index.esm.d.ts:3477 (opens new window)


# getBaseValue

getBaseValue(): number

# Returns

number

# Inherited from

Scale.getBaseValue

# Defined in

index.esm.d.ts:1298 (opens new window)


# getDecimalForPixel

getDecimalForPixel(pixel): number

# Parameters

Name Type
pixel number

# Returns

number

# Inherited from

Scale.getDecimalForPixel

# Defined in

index.esm.d.ts:1254 (opens new window)


# getDistanceFromCenterForValue

getDistanceFromCenterForValue(value): number

# Parameters

Name Type
value number

# Returns

number

# Defined in

index.esm.d.ts:3472 (opens new window)


# getIndexAngle

getIndexAngle(index): number

# Parameters

Name Type
index number

# Returns

number

# Defined in

index.esm.d.ts:3471 (opens new window)


# getLabelForValue

getLabelForValue(value): string

Used to get the label to display in the tooltip for the given value

# Parameters

Name Type
value number

# Returns

string

# Inherited from

Scale.getLabelForValue

# Defined in

index.esm.d.ts:1274 (opens new window)


# getLabels

getLabels(): string[]

# Returns

string[]

# Inherited from

Scale.getLabels

# Defined in

index.esm.d.ts:1311 (opens new window)


# getLineWidthForValue

getLineWidthForValue(value): number

Returns the grid line width at given value

# Parameters

Name Type
value number

# Returns

number

# Inherited from

Scale.getLineWidthForValue

# Defined in

index.esm.d.ts:1279 (opens new window)


# getMatchingVisibleMetas

getMatchingVisibleMetas(type?): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Parameters

Name Type
type? string

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Inherited from

Scale.getMatchingVisibleMetas

# Defined in

index.esm.d.ts:1244 (opens new window)


# getMinMax

getMinMax(canStack): Object

# Parameters

Name Type
canStack boolean

# Returns

Object

Name Type
max number
min number

# Inherited from

Scale.getMinMax

# Defined in

index.esm.d.ts:1309 (opens new window)


# getPadding

Optional getPadding(): ChartArea

Returns an object with padding on the edges

# Returns

ChartArea

# Inherited from

Scale.getPadding

# Defined in

layout.d.ts:54 (opens new window)


# getPixelForDecimal

getPixelForDecimal(decimal): number

Utility for getting the pixel location of a percentage of scale +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
decimal number

# Returns

number

# Inherited from

Scale.getPixelForDecimal

# Defined in

index.esm.d.ts:1261 (opens new window)


# getPixelForTick

getPixelForTick(index): number

Returns the location of the tick at the given index +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
index number

# Returns

number

# Inherited from

Scale.getPixelForTick

# Defined in

index.esm.d.ts:1268 (opens new window)


# getPixelForValue

getPixelForValue(value, index?): number

Returns the location of the given data point. Value can either be an index or a numerical value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
value number
index? number

# Returns

number

# Inherited from

Scale.getPixelForValue

# Defined in

index.esm.d.ts:1288 (opens new window)


# getPointLabelPosition

getPointLabelPosition(index): ChartArea

# Parameters

Name Type
index number

# Returns

ChartArea

# Defined in

index.esm.d.ts:3476 (opens new window)


# getPointPosition

getPointPosition(index, distanceFromCenter): Object

# Parameters

Name Type
index number
distanceFromCenter number

# Returns

Object

Name Type
angle number
x number
y number

# Defined in

index.esm.d.ts:3474 (opens new window)


# getPointPositionForValue

getPointPositionForValue(index, value): Object

# Parameters

Name Type
index number
value number

# Returns

Object

Name Type
angle number
x number
y number

# Defined in

index.esm.d.ts:3475 (opens new window)


# getProps

getProps<P>(props, final?): Pick<unknown, P[number]>

# Type parameters

Name Type
P extends never[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<unknown, P[number]>

# Inherited from

Scale.getProps

# Defined in

element.d.ts:12 (opens new window)


# getTicks

getTicks(): Tick[]

# Returns

Tick[]

# Inherited from

Scale.getTicks

# Defined in

index.esm.d.ts:1310 (opens new window)


# getUserBounds

getUserBounds(): Object

# Returns

Object

Name Type
max number
maxDefined boolean
min number
minDefined boolean

# Inherited from

Scale.getUserBounds

# Defined in

index.esm.d.ts:1308 (opens new window)


# getValueForDistanceFromCenter

getValueForDistanceFromCenter(distance): number

# Parameters

Name Type
distance number

# Returns

number

# Defined in

index.esm.d.ts:3473 (opens new window)


# getValueForPixel

getValueForPixel(pixel): number

Used to get the data value from a given pixel. This is the inverse of getPixelForValue +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
pixel number

# Returns

number

# Inherited from

Scale.getValueForPixel

# Defined in

index.esm.d.ts:1296 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Scale.hasValue

# Defined in

element.d.ts:11 (opens new window)


# init

init(options): void

# Parameters

Name Type
options O

# Returns

void

# Inherited from

Scale.init

# Defined in

index.esm.d.ts:1306 (opens new window)


# isFullSize

isFullSize(): boolean

# Returns

boolean

# Inherited from

Scale.isFullSize

# Defined in

index.esm.d.ts:1334 (opens new window)


# isHorizontal

isHorizontal(): boolean

returns true if the layout item is horizontal (ie. top or bottom)

# Returns

boolean

# Inherited from

Scale.isHorizontal

# Defined in

layout.d.ts:58 (opens new window)


# parse

parse(raw, index): unknown

# Parameters

Name Type
raw unknown
index number

# Returns

unknown

# Inherited from

Scale.parse

# Defined in

index.esm.d.ts:1307 (opens new window)


# setCenterPoint

setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement): void

# Parameters

Name Type
leftMovement number
rightMovement number
topMovement number
bottomMovement number

# Returns

void

# Defined in

index.esm.d.ts:3470 (opens new window)


# setDimensions

setDimensions(): void

# Returns

void

# Inherited from

Scale.setDimensions

# Defined in

index.esm.d.ts:1316 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Scale.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)


# update

update(width, height, margins?): void

Takes two parameters: width and height.

# Parameters

Name Type
width number
height number
margins? ChartArea

# Returns

void

# Inherited from

Scale.update

# Defined in

layout.d.ts:64 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialScaleTypeRegistry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialScaleTypeRegistry.html new file mode 100644 index 0000000..aca1e89 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/RadialScaleTypeRegistry.html @@ -0,0 +1,51 @@ + + + + + + Interface: RadialScaleTypeRegistry | Chart.js + + + + + + + +

# Interface: RadialScaleTypeRegistry

# Hierarchy

# Properties

# radialLinear

radialLinear: Object

# Type declaration

Name Type
options RadialLinearScaleOptions

# Defined in

index.esm.d.ts:3503 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Registry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Registry.html new file mode 100644 index 0000000..296bf7b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Registry.html @@ -0,0 +1,52 @@ + + + + + + Interface: Registry | Chart.js + + + + + + + +

# Interface: Registry

Please use the module's default export which provides a singleton instance +Note: class is exported for typedoc

# Properties

# controllers

Readonly controllers: TypedRegistry<DatasetController<keyof ChartTypeRegistry, Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData>>

# Defined in

index.esm.d.ts:1120 (opens new window)


# elements

Readonly elements: TypedRegistry<Element<AnyObject, AnyObject>>

# Defined in

index.esm.d.ts:1121 (opens new window)


# plugins

Readonly plugins: TypedRegistry<Plugin<keyof ChartTypeRegistry, AnyObject>>

# Defined in

index.esm.d.ts:1122 (opens new window)


# scales

Readonly scales: TypedRegistry<Scale<CoreScaleOptions>>

# Defined in

index.esm.d.ts:1123 (opens new window)

# Methods

# add

add(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1125 (opens new window)


# addControllers

addControllers(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1128 (opens new window)


# addElements

addElements(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1129 (opens new window)


# addPlugins

addPlugins(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1130 (opens new window)


# addScales

addScales(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1131 (opens new window)


# getController

getController(id): DatasetController<keyof ChartTypeRegistry, Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData>

# Parameters

Name Type
id string

# Returns

DatasetController<keyof ChartTypeRegistry, Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, number | BarParsedData | CartesianParsedData | BubbleParsedData | RadialParsedData>

# Defined in

index.esm.d.ts:1133 (opens new window)


# getElement

getElement(id): Element<AnyObject, AnyObject>

# Parameters

Name Type
id string

# Returns

Element<AnyObject, AnyObject>

# Defined in

index.esm.d.ts:1134 (opens new window)


# getPlugin

getPlugin(id): Plugin<keyof ChartTypeRegistry, AnyObject>

# Parameters

Name Type
id string

# Returns

Plugin<keyof ChartTypeRegistry, AnyObject>

# Defined in

index.esm.d.ts:1135 (opens new window)


# getScale

getScale(id): Scale<CoreScaleOptions>

# Parameters

Name Type
id string

# Returns

Scale<CoreScaleOptions>

# Defined in

index.esm.d.ts:1136 (opens new window)


# remove

remove(...args): void

# Parameters

Name Type
...args ChartComponentLike[]

# Returns

void

# Defined in

index.esm.d.ts:1126 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScaleTypeRegistry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScaleTypeRegistry.html new file mode 100644 index 0000000..ac9fc69 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScaleTypeRegistry.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScaleTypeRegistry | Chart.js + + + + + + + +

# Interface: ScaleTypeRegistry

# Hierarchy

# Properties

# category

category: Object

# Type declaration

Name Type
options CategoryScaleOptions

# Inherited from

CartesianScaleTypeRegistry.category

# Defined in

index.esm.d.ts:3491 (opens new window)


# linear

linear: Object

# Type declaration

Name Type
options LinearScaleOptions

# Inherited from

CartesianScaleTypeRegistry.linear

# Defined in

index.esm.d.ts:3485 (opens new window)


# logarithmic

logarithmic: Object

# Type declaration

Name Type
options LogarithmicScaleOptions

# Inherited from

CartesianScaleTypeRegistry.logarithmic

# Defined in

index.esm.d.ts:3488 (opens new window)


# radialLinear

radialLinear: Object

# Type declaration

Name Type
options RadialLinearScaleOptions

# Inherited from

RadialScaleTypeRegistry.radialLinear

# Defined in

index.esm.d.ts:3503 (opens new window)


# time

time: Object

# Type declaration

Name Type
options TimeScaleOptions

# Inherited from

CartesianScaleTypeRegistry.time

# Defined in

index.esm.d.ts:3494 (opens new window)


# timeseries

timeseries: Object

# Type declaration

Name Type
options TimeScaleOptions

# Inherited from

CartesianScaleTypeRegistry.timeseries

# Defined in

index.esm.d.ts:3497 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScatterDataPoint.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScatterDataPoint.html new file mode 100644 index 0000000..21be910 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScatterDataPoint.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScatterDataPoint | Chart.js + + + + + + + +

# Interface: ScatterDataPoint

# Properties

# x

x: number

# Defined in

index.esm.d.ts:228 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:229 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableCartesianScaleContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableCartesianScaleContext.html new file mode 100644 index 0000000..7988818 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableCartesianScaleContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScriptableCartesianScaleContext | Chart.js + + + + + + + +

# Interface: ScriptableCartesianScaleContext

# Properties

# scale

scale: keyof CartesianScaleTypeRegistry

# Defined in

index.esm.d.ts:3051 (opens new window)


# type

type: string

# Defined in

index.esm.d.ts:3052 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableChartContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableChartContext.html new file mode 100644 index 0000000..2b05655 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableChartContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScriptableChartContext | Chart.js + + + + + + + +

# Interface: ScriptableChartContext

# Properties

# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:3056 (opens new window)


# type

type: string

# Defined in

index.esm.d.ts:3057 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableContext.html new file mode 100644 index 0000000..d281367 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScriptableContext | Chart.js + + + + + + + +

# Interface: ScriptableContext<TType>

# Type parameters

Name Type
TType extends ChartType

# Properties

# active

active: boolean

# Defined in

index.esm.d.ts:19 (opens new window)


# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:20 (opens new window)


# dataIndex

dataIndex: number

# Defined in

index.esm.d.ts:21 (opens new window)


# dataset

dataset: UnionToIntersection<ChartDataset<TType, DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>>>

# Defined in

index.esm.d.ts:22 (opens new window)


# datasetIndex

datasetIndex: number

# Defined in

index.esm.d.ts:23 (opens new window)


# mode

mode: string

# Defined in

index.esm.d.ts:25 (opens new window)


# parsed

parsed: UnionToIntersection<ParsedDataType<TType>>

# Defined in

index.esm.d.ts:26 (opens new window)


# raw

raw: unknown

# Defined in

index.esm.d.ts:27 (opens new window)


# type

type: string

# Defined in

index.esm.d.ts:24 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableLineSegmentContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableLineSegmentContext.html new file mode 100644 index 0000000..977c846 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableLineSegmentContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScriptableLineSegmentContext | Chart.js + + + + + + + +

# Interface: ScriptableLineSegmentContext

# Properties

# datasetIndex

datasetIndex: number

# Defined in

index.esm.d.ts:36 (opens new window)


# p0

p0: PointElement<PointProps, PointOptions>

# Defined in

index.esm.d.ts:32 (opens new window)


# p0DataIndex

p0DataIndex: number

# Defined in

index.esm.d.ts:34 (opens new window)


# p1

p1: PointElement<PointProps, PointOptions>

# Defined in

index.esm.d.ts:33 (opens new window)


# p1DataIndex

p1DataIndex: number

# Defined in

index.esm.d.ts:35 (opens new window)


# type

type: "segment"

# Defined in

index.esm.d.ts:31 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScaleContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScaleContext.html new file mode 100644 index 0000000..9b405d5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScaleContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScripTablascaleContext | Chart.js + + + + + + + +

# Interface: ScripTablascaleContext

# Properties

# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:1341 (opens new window)


# index

index: number

# Defined in

index.esm.d.ts:1343 (opens new window)


# scale

scale: Scale<CoreScaleOptions>

# Defined in

index.esm.d.ts:1342 (opens new window)


# tick

tick: Tick

# Defined in

index.esm.d.ts:1344 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScalePointLabelContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScalePointLabelContext.html new file mode 100644 index 0000000..e76a21b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableScalePointLabelContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScripTablascalePointLabelContext | Chart.js + + + + + + + +

# Interface: ScripTablascalePointLabelContext

# Properties

# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Defined in

index.esm.d.ts:1348 (opens new window)


# index

index: number

# Defined in

index.esm.d.ts:1350 (opens new window)


# label

label: string

# Defined in

index.esm.d.ts:1351 (opens new window)


# scale

scale: Scale<CoreScaleOptions>

# Defined in

index.esm.d.ts:1349 (opens new window)


# type

type: string

# Defined in

index.esm.d.ts:1352 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableTooltipContext.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableTooltipContext.html new file mode 100644 index 0000000..852d36c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/ScriptableTooltipContext.html @@ -0,0 +1,51 @@ + + + + + + Interface: ScriptableTooltipContext | Chart.js + + + + + + + +

# Interface: ScriptableTooltipContext<TType>

# Type parameters

Name Type
TType extends ChartType

# Properties

# chart

chart: Chart<TType, DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>, unknown>

# Defined in

index.esm.d.ts:2605 (opens new window)


# tooltip

tooltip: TooltipModel<TType>

# Defined in

index.esm.d.ts:2606 (opens new window)


# tooltipItems

tooltipItems: TooltipItem<TType>[]

# Defined in

index.esm.d.ts:2607 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Segment.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Segment.html new file mode 100644 index 0000000..19e490b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Segment.html @@ -0,0 +1,51 @@ + + + + + + Interface: Segment | Chart.js + + + + + + + +

# Interface: Segment

# Properties

# end

end: number

# Defined in

index.esm.d.ts:1707 (opens new window)


# loop

loop: boolean

# Defined in

index.esm.d.ts:1708 (opens new window)


# start

start: number

# Defined in

index.esm.d.ts:1706 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tick.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tick.html new file mode 100644 index 0000000..6130f3c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tick.html @@ -0,0 +1,51 @@ + + + + + + Interface: Tick | Chart.js + + + + + + + +

# Interface: Tick

# Properties

# label

Optional label: string | string[]

# Defined in

index.esm.d.ts:1143 (opens new window)


# major

Optional major: boolean

# Defined in

index.esm.d.ts:1144 (opens new window)


# value

value: number

# Defined in

index.esm.d.ts:1142 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TickOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TickOptions.html new file mode 100644 index 0000000..9f3d06d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TickOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: TickOptions | Chart.js + + + + + + + +

# Interface: TickOptions

# Properties

# backdropColor

backdropColor: Scriptable<Color, ScripTablascaleContext>

Color of label backdrops.

default 'rgba(255, 255, 255, 0.75)'

# Defined in

index.esm.d.ts:2923 (opens new window)


# backdropPadding

backdropPadding: number | ChartArea

Padding of tick backdrop.

default 2

# Defined in

index.esm.d.ts:2928 (opens new window)


# color

color: ScriptableAndArray<Color, ScripTablascaleContext>

Color of tick

see Defaults.color

# Defined in

index.esm.d.ts:2943 (opens new window)


# display

display: boolean

If true, show tick labels.

default true

# Defined in

index.esm.d.ts:2938 (opens new window)


# font

font: ScriptableAndScriptableOptions<Partial<FontSpec>, ScripTablascaleContext>

see Fonts

# Defined in

index.esm.d.ts:2947 (opens new window)


# major

major: Object

# Type declaration

Name Type Description
enabled boolean If true, major ticks are generated. A major tick will affect autoskipping and major will be defined on ticks in the scriptable options context. default false

# Defined in

index.esm.d.ts:2973 (opens new window)


# padding

padding: number

Sets the offset of the tick labels from the axis

# Defined in

index.esm.d.ts:2951 (opens new window)


# showLabelBackdrop

showLabelBackdrop: Scriptable<boolean, ScripTablascaleContext>

If true, draw a background behind the tick labels.

default false

# Defined in

index.esm.d.ts:2956 (opens new window)


# textStrokeColor

textStrokeColor: Scriptable<Color, ScripTablascaleContext>

The color of the stroke around the text.

default undefined

# Defined in

index.esm.d.ts:2961 (opens new window)


# textStrokeWidth

textStrokeWidth: Scriptable<number, ScripTablascaleContext>

Stroke width around the text.

default 0

# Defined in

index.esm.d.ts:2966 (opens new window)


# z

z: number

z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

default 0

# Defined in

index.esm.d.ts:2971 (opens new window)

# Methods

# callback

callback(tickValue, index, ticks): string | number | string[] | number[]

Returns the string representation of the tick value as it should be displayed on the chart. See callback.

# Parameters

Name Type
tickValue string | number
index number
ticks Tick[]

# Returns

string | number | string[] | number[]

# Defined in

index.esm.d.ts:2933 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TimeScale.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TimeScale.html new file mode 100644 index 0000000..992bf55 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TimeScale.html @@ -0,0 +1,56 @@ + + + + + + Interface: TimeScale | Chart.js + + + + + + + +

# Interface: TimeScale<O>

# Type parameters

Name Type
O extends TimeScaleOptions = TimeScaleOptions

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Scale.active

# Defined in

element.d.ts:7 (opens new window)


# axis

axis: string

# Inherited from

Scale.axis

# Defined in

index.esm.d.ts:1239 (opens new window)


# bottom

bottom: number

Bottom edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.bottom

# Defined in

layout.d.ts:41 (opens new window)


# chart

Readonly chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Inherited from

Scale.chart

# Defined in

index.esm.d.ts:1229 (opens new window)


# ctx

Readonly ctx: CanvasRenderingContext2D

# Inherited from

Scale.ctx

# Defined in

index.esm.d.ts:1228 (opens new window)


# fullSize

fullSize: boolean

if true, and the item is horizontal, then push vertical boxes down

# Inherited from

Scale.fullSize

# Defined in

layout.d.ts:17 (opens new window)


# height

height: number

Height of item. Must be valid after update()

# Inherited from

Scale.height

# Defined in

layout.d.ts:25 (opens new window)


# id

Readonly id: string

# Inherited from

Scale.id

# Defined in

index.esm.d.ts:1226 (opens new window)


# labelRotation

labelRotation: number

# Inherited from

Scale.labelRotation

# Defined in

index.esm.d.ts:1240 (opens new window)


# left

left: number

Left edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.left

# Defined in

layout.d.ts:29 (opens new window)


# max

max: number

# Inherited from

Scale.max

# Defined in

index.esm.d.ts:1242 (opens new window)


# maxHeight

maxHeight: number

# Inherited from

Scale.maxHeight

# Defined in

index.esm.d.ts:1232 (opens new window)


# maxWidth

maxWidth: number

# Inherited from

Scale.maxWidth

# Defined in

index.esm.d.ts:1231 (opens new window)


# min

min: number

# Inherited from

Scale.min

# Defined in

index.esm.d.ts:1241 (opens new window)


# options

Readonly options: O

# Inherited from

Scale.options

# Defined in

element.d.ts:8 (opens new window)


# paddingBottom

paddingBottom: number

# Inherited from

Scale.paddingBottom

# Defined in

index.esm.d.ts:1235 (opens new window)


# paddingLeft

paddingLeft: number

# Inherited from

Scale.paddingLeft

# Defined in

index.esm.d.ts:1236 (opens new window)


# paddingRight

paddingRight: number

# Inherited from

Scale.paddingRight

# Defined in

index.esm.d.ts:1237 (opens new window)


# paddingTop

paddingTop: number

# Inherited from

Scale.paddingTop

# Defined in

index.esm.d.ts:1234 (opens new window)


# position

position: LayoutPosition

The position of the item in the chart layout. Possible values are

# Inherited from

Scale.position

# Defined in

layout.d.ts:9 (opens new window)


right: number

Right edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.right

# Defined in

layout.d.ts:37 (opens new window)


# ticks

ticks: Tick[]

# Inherited from

Scale.ticks

# Defined in

index.esm.d.ts:1243 (opens new window)


# top

top: number

Top edge of the item. Set by layout system and cannot be used in update

# Inherited from

Scale.top

# Defined in

layout.d.ts:33 (opens new window)


# type

Readonly type: string

# Inherited from

Scale.type

# Defined in

index.esm.d.ts:1227 (opens new window)


# weight

weight: number

The weight used to sort the item. Higher weights are further away from the chart area

# Inherited from

Scale.weight

# Defined in

layout.d.ts:13 (opens new window)


# width

width: number

Width of item. Must be valid after update()

# Inherited from

Scale.width

# Defined in

layout.d.ts:21 (opens new window)


# x

Readonly x: number

# Inherited from

Scale.x

# Defined in

element.d.ts:5 (opens new window)


# y

Readonly y: number

# Inherited from

Scale.y

# Defined in

element.d.ts:6 (opens new window)

# Methods

# afterBuildTicks

afterBuildTicks(): void

# Returns

void

# Inherited from

Scale.afterBuildTicks

# Defined in

index.esm.d.ts:1323 (opens new window)


# afterCalculateLabelRotation

afterCalculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.afterCalculateLabelRotation

# Defined in

index.esm.d.ts:1329 (opens new window)


# afterDataLimits

afterDataLimits(): void

# Returns

void

# Inherited from

Scale.afterDataLimits

# Defined in

index.esm.d.ts:1320 (opens new window)


# afterFit

afterFit(): void

# Returns

void

# Inherited from

Scale.afterFit

# Defined in

index.esm.d.ts:1332 (opens new window)


# afterSetDimensions

afterSetDimensions(): void

# Returns

void

# Inherited from

Scale.afterSetDimensions

# Defined in

index.esm.d.ts:1317 (opens new window)


# afterTickToLabelConversion

afterTickToLabelConversion(): void

# Returns

void

# Inherited from

Scale.afterTickToLabelConversion

# Defined in

index.esm.d.ts:1326 (opens new window)


# afterUpdate

afterUpdate(): void

# Returns

void

# Inherited from

Scale.afterUpdate

# Defined in

index.esm.d.ts:1314 (opens new window)


# beforeBuildTicks

beforeBuildTicks(): void

# Returns

void

# Inherited from

Scale.beforeBuildTicks

# Defined in

index.esm.d.ts:1321 (opens new window)


# beforeCalculateLabelRotation

beforeCalculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.beforeCalculateLabelRotation

# Defined in

index.esm.d.ts:1327 (opens new window)


# beforeDataLimits

beforeDataLimits(): void

# Returns

void

# Inherited from

Scale.beforeDataLimits

# Defined in

index.esm.d.ts:1318 (opens new window)


# beforeFit

beforeFit(): void

# Returns

void

# Inherited from

Scale.beforeFit

# Defined in

index.esm.d.ts:1330 (opens new window)


# beforeLayout

Optional beforeLayout(): void

Called before the layout process starts

# Returns

void

# Inherited from

Scale.beforeLayout

# Defined in

layout.d.ts:46 (opens new window)


# beforeSetDimensions

beforeSetDimensions(): void

# Returns

void

# Inherited from

Scale.beforeSetDimensions

# Defined in

index.esm.d.ts:1315 (opens new window)


# beforeTickToLabelConversion

beforeTickToLabelConversion(): void

# Returns

void

# Inherited from

Scale.beforeTickToLabelConversion

# Defined in

index.esm.d.ts:1324 (opens new window)


# beforeUpdate

beforeUpdate(): void

# Returns

void

# Inherited from

Scale.beforeUpdate

# Defined in

index.esm.d.ts:1312 (opens new window)


# buildTicks

buildTicks(): Tick[]

# Returns

Tick[]

# Inherited from

Scale.buildTicks

# Defined in

index.esm.d.ts:1322 (opens new window)


# calculateLabelRotation

calculateLabelRotation(): void

# Returns

void

# Inherited from

Scale.calculateLabelRotation

# Defined in

index.esm.d.ts:1328 (opens new window)


# configure

configure(): void

# Returns

void

# Inherited from

Scale.configure

# Defined in

index.esm.d.ts:1313 (opens new window)


# determineDataLimits

determineDataLimits(): void

# Returns

void

# Inherited from

Scale.determineDataLimits

# Defined in

index.esm.d.ts:1319 (opens new window)


# draw

draw(chartArea): void

Draws the element

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.draw

# Defined in

layout.d.ts:50 (opens new window)


# drawGrid

drawGrid(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawGrid

# Defined in

index.esm.d.ts:1248 (opens new window)


# drawLabels

drawLabels(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawLabels

# Defined in

index.esm.d.ts:1247 (opens new window)


# drawTitle

drawTitle(chartArea): void

# Parameters

Name Type
chartArea ChartArea

# Returns

void

# Inherited from

Scale.drawTitle

# Defined in

index.esm.d.ts:1246 (opens new window)


# fit

fit(): void

# Returns

void

# Inherited from

Scale.fit

# Defined in

index.esm.d.ts:1331 (opens new window)


# generateTickLabels

generateTickLabels(ticks): void

# Parameters

Name Type
ticks Tick[]

# Returns

void

# Inherited from

Scale.generateTickLabels

# Defined in

index.esm.d.ts:1325 (opens new window)


# getBasePixel

getBasePixel(): number

Returns the pixel for the minimum chart value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Returns

number

# Inherited from

Scale.getBasePixel

# Defined in

index.esm.d.ts:1304 (opens new window)


# getBaseValue

getBaseValue(): number

# Returns

number

# Inherited from

Scale.getBaseValue

# Defined in

index.esm.d.ts:1298 (opens new window)


# getDataTimestamps

getDataTimestamps(): number[]

# Returns

number[]

# Defined in

index.esm.d.ts:3312 (opens new window)


# getDecimalForPixel

getDecimalForPixel(pixel): number

# Parameters

Name Type
pixel number

# Returns

number

# Inherited from

Scale.getDecimalForPixel

# Defined in

index.esm.d.ts:1254 (opens new window)


# getLabelForValue

getLabelForValue(value): string

Used to get the label to display in the tooltip for the given value

# Parameters

Name Type
value number

# Returns

string

# Inherited from

Scale.getLabelForValue

# Defined in

index.esm.d.ts:1274 (opens new window)


# getLabelTimestamps

getLabelTimestamps(): string[]

# Returns

string[]

# Defined in

index.esm.d.ts:3313 (opens new window)


# getLabels

getLabels(): string[]

# Returns

string[]

# Inherited from

Scale.getLabels

# Defined in

index.esm.d.ts:1311 (opens new window)


# getLineWidthForValue

getLineWidthForValue(value): number

Returns the grid line width at given value

# Parameters

Name Type
value number

# Returns

number

# Inherited from

Scale.getLineWidthForValue

# Defined in

index.esm.d.ts:1279 (opens new window)


# getMatchingVisibleMetas

getMatchingVisibleMetas(type?): ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Parameters

Name Type
type? string

# Returns

ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry>[]

# Inherited from

Scale.getMatchingVisibleMetas

# Defined in

index.esm.d.ts:1244 (opens new window)


# getMinMax

getMinMax(canStack): Object

# Parameters

Name Type
canStack boolean

# Returns

Object

Name Type
max number
min number

# Inherited from

Scale.getMinMax

# Defined in

index.esm.d.ts:1309 (opens new window)


# getPadding

Optional getPadding(): ChartArea

Returns an object with padding on the edges

# Returns

ChartArea

# Inherited from

Scale.getPadding

# Defined in

layout.d.ts:54 (opens new window)


# getPixelForDecimal

getPixelForDecimal(decimal): number

Utility for getting the pixel location of a percentage of scale +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
decimal number

# Returns

number

# Inherited from

Scale.getPixelForDecimal

# Defined in

index.esm.d.ts:1261 (opens new window)


# getPixelForTick

getPixelForTick(index): number

Returns the location of the tick at the given index +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
index number

# Returns

number

# Inherited from

Scale.getPixelForTick

# Defined in

index.esm.d.ts:1268 (opens new window)


# getPixelForValue

getPixelForValue(value, index?): number

Returns the location of the given data point. Value can either be an index or a numerical value +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
value number
index? number

# Returns

number

# Inherited from

Scale.getPixelForValue

# Defined in

index.esm.d.ts:1288 (opens new window)


# getProps

getProps<P>(props, final?): Pick<unknown, P[number]>

# Type parameters

Name Type
P extends never[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<unknown, P[number]>

# Inherited from

Scale.getProps

# Defined in

element.d.ts:12 (opens new window)


# getTicks

getTicks(): Tick[]

# Returns

Tick[]

# Inherited from

Scale.getTicks

# Defined in

index.esm.d.ts:1310 (opens new window)


# getUserBounds

getUserBounds(): Object

# Returns

Object

Name Type
max number
maxDefined boolean
min number
minDefined boolean

# Inherited from

Scale.getUserBounds

# Defined in

index.esm.d.ts:1308 (opens new window)


# getValueForPixel

getValueForPixel(pixel): number

Used to get the data value from a given pixel. This is the inverse of getPixelForValue +The coordinate (0, 0) is at the upper-left corner of the canvas

# Parameters

Name Type
pixel number

# Returns

number

# Inherited from

Scale.getValueForPixel

# Defined in

index.esm.d.ts:1296 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Scale.hasValue

# Defined in

element.d.ts:11 (opens new window)


# init

init(options): void

# Parameters

Name Type
options O

# Returns

void

# Inherited from

Scale.init

# Defined in

index.esm.d.ts:1306 (opens new window)


# isFullSize

isFullSize(): boolean

# Returns

boolean

# Inherited from

Scale.isFullSize

# Defined in

index.esm.d.ts:1334 (opens new window)


# isHorizontal

isHorizontal(): boolean

returns true if the layout item is horizontal (ie. top or bottom)

# Returns

boolean

# Inherited from

Scale.isHorizontal

# Defined in

layout.d.ts:58 (opens new window)


# normalize

normalize(values): number[]

# Parameters

Name Type
values number[]

# Returns

number[]

# Defined in

index.esm.d.ts:3314 (opens new window)


# parse

parse(raw, index): unknown

# Parameters

Name Type
raw unknown
index number

# Returns

unknown

# Inherited from

Scale.parse

# Defined in

index.esm.d.ts:1307 (opens new window)


# setDimensions

setDimensions(): void

# Returns

void

# Inherited from

Scale.setDimensions

# Defined in

index.esm.d.ts:1316 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Scale.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)


# update

update(width, height, margins?): void

Takes two parameters: width and height.

# Parameters

Name Type
width number
height number
margins? ChartArea

# Returns

void

# Inherited from

Scale.update

# Defined in

layout.d.ts:64 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TitleOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TitleOptions.html new file mode 100644 index 0000000..7edfb71 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TitleOptions.html @@ -0,0 +1,52 @@ + + + + + + Interface: TitleOptions | Chart.js + + + + + + + +

# Interface: TitleOptions

# Properties

# align

align: Align

Alignment of the title.

default 'center'

# Defined in

index.esm.d.ts:2410 (opens new window)


# color

color: Color

Color of text

see Defaults.color

# Defined in

index.esm.d.ts:2425 (opens new window)


# display

display: boolean

Is the title shown?

default false

# Defined in

index.esm.d.ts:2415 (opens new window)


# font

font: ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableChartContext>

# Defined in

index.esm.d.ts:2426 (opens new window)


# fullSize

fullSize: boolean

Marks that this box should take the full width/height of the canvas (moving other boxes). If set to false, places the box above/beside the +chart area

default true

# Defined in

index.esm.d.ts:2433 (opens new window)


# padding

padding: number | { bottom: number ; top: number }

Adds padding above and below the title text if a single number is specified. It is also possible to change top and bottom padding separately.

# Defined in

index.esm.d.ts:2437 (opens new window)


# position

position: "left" | "right" | "bottom" | "top"

Position of title

default 'top'

# Defined in

index.esm.d.ts:2420 (opens new window)


# text

text: string | string[]

Title text to display. If specified as an array, text is rendered on multiple lines.

# Defined in

index.esm.d.ts:2441 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tooltip.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tooltip.html new file mode 100644 index 0000000..f6f1ec1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/Tooltip.html @@ -0,0 +1,74 @@ + + + + + + Interface: Tooltip | Chart.js + + + + + + + +

# Interface: Tooltip

# Hierarchy

# Properties

# id

id: string

# Inherited from

Plugin.id

# Defined in

index.esm.d.ts:808 (opens new window)


# positioners

Readonly positioners: TooltipPositionerMap

# Defined in

index.esm.d.ts:2549 (opens new window)

# Methods

# afterBuildTicks

Optional afterBuildTicks(chart, args, options): void

desc Called after scale has build its ticks. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterBuildTicks

# Defined in

index.esm.d.ts:967 (opens new window)


# afterDataLimits

Optional afterDataLimits(chart, args, options): void

desc Called after scale data limits are calculated. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDataLimits

# Defined in

index.esm.d.ts:951 (opens new window)


# afterDatasetDraw

Optional afterDatasetDraw(chart, args, options): void

desc Called after the chart datasets at the given args.index have been drawn +(datasets are drawn in the reverse order). Note that this hook will not be called +if the datasets drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDatasetDraw

# Defined in

index.esm.d.ts:1049 (opens new window)


# afterDatasetUpdate

Optional afterDatasetUpdate(chart, args, options): void

desc Called after the chart datasets at the given args.index has been updated. Note +that this hook will not be called if the datasets update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable false -
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDatasetUpdate

# Defined in

index.esm.d.ts:926 (opens new window)


# afterDatasetsDraw

Optional afterDatasetsDraw(chart, args, options, cancelable): void

desc Called after the chart datasets have been drawn. Note that this hook +will not be called if the datasets drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.
cancelable false -

# Returns

void

# Inherited from

Plugin.afterDatasetsDraw

# Defined in

index.esm.d.ts:1026 (opens new window)


# afterDatasetsUpdate

Optional afterDatasetsUpdate(chart, args, options): void

desc Called after the chart datasets have been updated. Note that this hook +will not be called if the datasets update has been previously cancelled.

since version 2.1.5

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDatasetsUpdate

# Defined in

index.esm.d.ts:903 (opens new window)


# afterDestroy

Optional afterDestroy(chart, args, options): void

Called after the chart has been destroyed.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDestroy

# Defined in

index.esm.d.ts:1102 (opens new window)


# afterDraw

Optional afterDraw(chart, args, options): void

desc Called after the chart has been drawn. Note that this hook will not be called +if the drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterDraw

# Defined in

index.esm.d.ts:1009 (opens new window)


# afterEvent

Optional afterEvent(chart, args, options): void

desc Called after the event has been consumed. Note that this hook +will not be called if the event has been previously discarded.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable false -
args.changed? boolean -
args.event ChartEvent The event object.
args.inChartArea boolean The event position is inside chartArea
args.replay boolean True if this event is replayed from Chart.update
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterEvent

# Defined in

index.esm.d.ts:1072 (opens new window)


# afterInit

Optional afterInit(chart, args, options): void

desc Called after chart has been initialized and before the first update.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterInit

# Defined in

index.esm.d.ts:847 (opens new window)


# afterLayout

Optional afterLayout(chart, args, options): void

desc Called after the chart has been laid out. Note that this hook will not +be called if the layout update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterLayout

# Defined in

index.esm.d.ts:975 (opens new window)


# afterRender

Optional afterRender(chart, args, options): void

desc Called after the chart has been fully rendered (and animation completed). Note +that this hook will not be called if the rendering has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterRender

# Defined in

index.esm.d.ts:992 (opens new window)


# afterTooltipDraw

Optional afterTooltipDraw(chart, args, options): void

desc Called after drawing the tooltip. Note that this hook will not +be called if the tooltip drawing has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip TooltipModel<keyof ChartTypeRegistry> The tooltip.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterTooltipDraw

# Defined in

index.esm.d.ts:2601 (opens new window)


# afterUpdate

Optional afterUpdate(chart, args, options): void

desc Called after chart has been updated and before rendering. Note that this +hook will not be called if the chart update has been previously cancelled.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.afterUpdate

# Defined in

index.esm.d.ts:866 (opens new window)


# beforeBuildTicks

Optional beforeBuildTicks(chart, args, options): void

desc Called before scale builds its ticks. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.beforeBuildTicks

# Defined in

index.esm.d.ts:959 (opens new window)


# beforeDataLimits

Optional beforeDataLimits(chart, args, options): void

desc Called before scale data limits are calculated. This hook is called separately for each scale in the chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.scale Scale<CoreScaleOptions> The scale.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.beforeDataLimits

# Defined in

index.esm.d.ts:943 (opens new window)


# beforeDatasetDraw

Optional beforeDatasetDraw(chart, args, options): boolean | void

desc Called before drawing the chart dataset at the given args.index (datasets +are drawn in the reverse order). If any plugin returns false, the datasets drawing +is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Inherited from

Plugin.beforeDatasetDraw

# Defined in

index.esm.d.ts:1038 (opens new window)


# beforeDatasetUpdate

Optional beforeDatasetUpdate(chart, args, options): boolean | void

desc Called before updating the chart dataset at the given args.index. If any plugin +returns false, the datasets update is cancelled until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.index number The dataset index.
args.meta ChartMeta<Element<AnyObject, AnyObject>, Element<AnyObject, AnyObject>, keyof ChartTypeRegistry> The dataset metadata.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Inherited from

Plugin.beforeDatasetUpdate

# Defined in

index.esm.d.ts:915 (opens new window)


# beforeDatasetsDraw

Optional beforeDatasetsDraw(chart, args, options): boolean | void

desc Called before drawing the chart datasets. If any plugin returns false, +the datasets drawing is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart datasets drawing.

# Inherited from

Plugin.beforeDatasetsDraw

# Defined in

index.esm.d.ts:1018 (opens new window)


# beforeDatasetsUpdate

Optional beforeDatasetsUpdate(chart, args, options): boolean | void

desc Called before updating the chart datasets. If any plugin returns false, +the datasets update is cancelled until another update is triggered.

since version 2.1.5

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode.
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the datasets update.

# Inherited from

Plugin.beforeDatasetsUpdate

# Defined in

index.esm.d.ts:893 (opens new window)


# beforeDestroy

Optional beforeDestroy(chart, args, options): void

Called before the chart is being destroyed.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.beforeDestroy

# Defined in

index.esm.d.ts:1087 (opens new window)


# beforeDraw

Optional beforeDraw(chart, args, options): boolean | void

desc Called before drawing chart at every animation frame. If any plugin returns false, +the frame drawing is cancelled untilanother render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart drawing.

# Inherited from

Plugin.beforeDraw

# Defined in

index.esm.d.ts:1001 (opens new window)


# beforeElementsUpdate

Optional beforeElementsUpdate(chart, args, options): void

desc Called during the update process, before any chart elements have been created. +This can be used for data decimation by changing the data array inside a dataset.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.beforeElementsUpdate

# Defined in

index.esm.d.ts:874 (opens new window)


# beforeEvent

Optional beforeEvent(chart, args, options): boolean | void

desc Called before processing the specified event. If any plugin returns false, +the event will be discarded.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.event ChartEvent The event object.
args.inChartArea boolean The event position is inside chartArea
args.replay boolean True if this event is replayed from Chart.update
options AnyObject The plugin options.

# Returns

boolean | void

# Inherited from

Plugin.beforeEvent

# Defined in

index.esm.d.ts:1060 (opens new window)


# beforeInit

Optional beforeInit(chart, args, options): void

desc Called before initializing chart.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.beforeInit

# Defined in

index.esm.d.ts:840 (opens new window)


# beforeLayout

Optional beforeLayout(chart, args, options): boolean | void

desc Called before laying out chart. If any plugin returns false, +the layout update is cancelled until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart layout.

# Inherited from

Plugin.beforeLayout

# Defined in

index.esm.d.ts:935 (opens new window)


# beforeRender

Optional beforeRender(chart, args, options): boolean | void

desc Called before rendering chart. If any plugin returns false, +the rendering is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart rendering.

# Inherited from

Plugin.beforeRender

# Defined in

index.esm.d.ts:984 (opens new window)


# beforeTooltipDraw

Optional beforeTooltipDraw(chart, args, options): boolean | void

desc Called before drawing the tooltip. If any plugin returns false, +the tooltip drawing is cancelled until another render is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.tooltip TooltipModel<keyof ChartTypeRegistry> The tooltip.
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart tooltip drawing.

# Inherited from

Plugin.beforeTooltipDraw

# Defined in

index.esm.d.ts:2592 (opens new window)


# beforeUpdate

Optional beforeUpdate(chart, args, options): boolean | void

desc Called before updating chart. If any plugin returns false, the update +is cancelled (and thus subsequent render(s)) until another update is triggered.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.cancelable true -
args.mode "resize" | "reset" | "none" | "hide" | "show" | "normal" | "active" The update mode
options AnyObject The plugin options.

# Returns

boolean | void

false to cancel the chart update.

# Inherited from

Plugin.beforeUpdate

# Defined in

index.esm.d.ts:857 (opens new window)


# destroy

Optional destroy(chart, args, options): void

Called after the chart has been destroyed.

deprecated since version 3.7.0 in favour of afterDestroy

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.destroy

# Defined in

index.esm.d.ts:1095 (opens new window)


# install

Optional install(chart, args, options): void

desc Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false).

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.install

# Defined in

index.esm.d.ts:817 (opens new window)


# reset

Optional reset(chart, args, options): void

desc Called during chart reset

since version 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.reset

# Defined in

index.esm.d.ts:882 (opens new window)


# resize

Optional resize(chart, args, options): void

desc Called after the chart as been resized.

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args Object The call arguments.
args.size Object The new canvas display size (eq. canvas.style width & height).
args.size.height number -
args.size.width number -
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.resize

# Defined in

index.esm.d.ts:1080 (opens new window)


# start

Optional start(chart, args, options): void

desc Called when a plugin is starting. This happens when chart is created or plugin is enabled.

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.start

# Defined in

index.esm.d.ts:825 (opens new window)


# stop

Optional stop(chart, args, options): void

desc Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled.

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.stop

# Defined in

index.esm.d.ts:833 (opens new window)


# uninstall

Optional uninstall(chart, args, options): void

Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false).

since 3.0.0

# Parameters

Name Type Description
chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown> The chart instance.
args EmptyObject The call arguments.
options AnyObject The plugin options.

# Returns

void

# Inherited from

Plugin.uninstall

# Defined in

index.esm.d.ts:1110 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipCallbacks.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipCallbacks.html new file mode 100644 index 0000000..3dacc96 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipCallbacks.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipCallbacks | Chart.js + + + + + + + +

# Interface: TooltipCallbacks<TType, Model, Item>

# Type parameters

Name Type
TType extends ChartType
Model TooltipModel<TType>
Item TooltipItem<TType>

# Methods

# afterBody

afterBody(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2564 (opens new window)


# afterFooter

afterFooter(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2576 (opens new window)


# afterLabel

afterLabel(tooltipItem): string | string[]

# Parameters

Name Type
tooltipItem Item

# Returns

string | string[]

# Defined in

index.esm.d.ts:2568 (opens new window)


# afterTitle

afterTitle(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2561 (opens new window)


# beforeBody

beforeBody(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2563 (opens new window)


# beforeFooter

beforeFooter(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2574 (opens new window)


# beforeLabel

beforeLabel(tooltipItem): string | string[]

# Parameters

Name Type
tooltipItem Item

# Returns

string | string[]

# Defined in

index.esm.d.ts:2566 (opens new window)


# beforeTitle

beforeTitle(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2559 (opens new window)


footer(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2575 (opens new window)


# label

label(tooltipItem): string | string[]

# Parameters

Name Type
tooltipItem Item

# Returns

string | string[]

# Defined in

index.esm.d.ts:2567 (opens new window)


# labelColor

labelColor(tooltipItem): TooltipLabelStyle

# Parameters

Name Type
tooltipItem Item

# Returns

TooltipLabelStyle

# Defined in

index.esm.d.ts:2570 (opens new window)


# labelPointStyle

labelPointStyle(tooltipItem): Object

# Parameters

Name Type
tooltipItem Item

# Returns

Object

Name Type
pointStyle PointStyle
rotation number

# Defined in

index.esm.d.ts:2572 (opens new window)


# labelTextColor

labelTextColor(tooltipItem): Color

# Parameters

Name Type
tooltipItem Item

# Returns

Color

# Defined in

index.esm.d.ts:2571 (opens new window)


# title

title(tooltipItems): string | string[]

# Parameters

Name Type
tooltipItems Item[]

# Returns

string | string[]

# Defined in

index.esm.d.ts:2560 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipItem.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipItem.html new file mode 100644 index 0000000..a6c092f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipItem.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipItem | Chart.js + + + + + + + +

# Interface: TooltipItem<TType>

# Type parameters

Name Type
TType extends ChartType

# Properties

# chart

chart: Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

The chart the tooltip is being shown on

# Defined in

index.esm.d.ts:2793 (opens new window)


# dataIndex

dataIndex: number

Index of this data item in the dataset

# Defined in

index.esm.d.ts:2828 (opens new window)


# dataset

dataset: UnionToIntersection<ChartDataset<TType, DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>>>

The dataset the item comes from

# Defined in

index.esm.d.ts:2818 (opens new window)


# datasetIndex

datasetIndex: number

Index of the dataset the item comes from

# Defined in

index.esm.d.ts:2823 (opens new window)


# element

element: Element<AnyObject, AnyObject>

The chart element (point, arc, bar, etc.) for this tooltip item

# Defined in

index.esm.d.ts:2833 (opens new window)


# formattedValue

formattedValue: string

Formatted value for the tooltip

# Defined in

index.esm.d.ts:2813 (opens new window)


# label

label: string

Label for the tooltip

# Defined in

index.esm.d.ts:2798 (opens new window)


# parsed

parsed: UnionToIntersection<ParsedDataType<TType>>

Parsed data values for the given dataIndex and datasetIndex

# Defined in

index.esm.d.ts:2803 (opens new window)


# raw

raw: unknown

Raw data values for the given dataIndex and datasetIndex

# Defined in

index.esm.d.ts:2808 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipLabelStyle.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipLabelStyle.html new file mode 100644 index 0000000..822c4b3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipLabelStyle.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipLabelStyle | Chart.js + + + + + + + +

# Interface: TooltipLabelStyle

# Properties

# backgroundColor

backgroundColor: Color

# Defined in

index.esm.d.ts:2448 (opens new window)


# borderColor

borderColor: Color

# Defined in

index.esm.d.ts:2447 (opens new window)


# borderDash

Optional borderDash: [number, number]

Border dash

since 3.1.0

# Defined in

index.esm.d.ts:2460 (opens new window)


# borderDashOffset

Optional borderDashOffset: number

Border dash offset

since 3.1.0

# Defined in

index.esm.d.ts:2466 (opens new window)


# borderRadius

Optional borderRadius: number | BorderRadius

borderRadius

since 3.1.0

# Defined in

index.esm.d.ts:2472 (opens new window)


# borderWidth

Optional borderWidth: number

Width of border line

since 3.1.0

# Defined in

index.esm.d.ts:2454 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipModel.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipModel.html new file mode 100644 index 0000000..cb49f35 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipModel.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipModel | Chart.js + + + + + + + +

# Interface: TooltipModel<TType>

# Type parameters

Name Type
TType extends ChartType

# Hierarchy

# Properties

# active

Readonly active: boolean

# Inherited from

Element.active

# Defined in

element.d.ts:7 (opens new window)


# afterBody

afterBody: string[]

# Defined in

index.esm.d.ts:2503 (opens new window)


# beforeBody

beforeBody: string[]

# Defined in

index.esm.d.ts:2501 (opens new window)


# body

body: { after: string[] ; before: string[] ; lines: string[] }[]

# Defined in

index.esm.d.ts:2499 (opens new window)


# caretX

caretX: number

# Defined in

index.esm.d.ts:2490 (opens new window)


# caretY

caretY: number

# Defined in

index.esm.d.ts:2491 (opens new window)


# chart

Readonly chart: Chart<TType, DistributiveArray<ChartTypeRegistry[TType]["defaultDataPoint"]>, unknown>

# Defined in

index.esm.d.ts:2475 (opens new window)


# dataPoints

dataPoints: TooltipItem<TType>[]

# Defined in

index.esm.d.ts:2478 (opens new window)


footer: string[]

# Defined in

index.esm.d.ts:2511 (opens new window)


# height

height: number

# Defined in

index.esm.d.ts:2488 (opens new window)


# labelColors

labelColors: TooltipLabelStyle[]

# Defined in

index.esm.d.ts:2514 (opens new window)


# labelPointStyles

labelPointStyles: { pointStyle: PointStyle ; rotation: number }[]

# Defined in

index.esm.d.ts:2516 (opens new window)


# labelTextColors

labelTextColors: Color[]

# Defined in

index.esm.d.ts:2515 (opens new window)


# opacity

opacity: number

# Defined in

index.esm.d.ts:2519 (opens new window)


# options

options: TooltipOptions<TType>

# Overrides

Element.options

# Defined in

index.esm.d.ts:2522 (opens new window)


# title

title: string[]

# Defined in

index.esm.d.ts:2507 (opens new window)


# width

width: number

# Defined in

index.esm.d.ts:2487 (opens new window)


# x

x: number

# Overrides

Element.x

# Defined in

index.esm.d.ts:2485 (opens new window)


# xAlign

xAlign: TooltipXAlignment

# Defined in

index.esm.d.ts:2481 (opens new window)


# y

y: number

# Overrides

Element.y

# Defined in

index.esm.d.ts:2486 (opens new window)


# yAlign

yAlign: TooltipYAlignment

# Defined in

index.esm.d.ts:2482 (opens new window)

# Methods

# getActiveElements

getActiveElements(): ActiveElement[]

# Returns

ActiveElement[]

# Defined in

index.esm.d.ts:2524 (opens new window)


# getProps

getProps<P>(props, final?): Pick<AnyObject, P[number]>

# Type parameters

Name Type
P extends string[]

# Parameters

Name Type
props P
final? boolean

# Returns

Pick<AnyObject, P[number]>

# Inherited from

Element.getProps

# Defined in

element.d.ts:12 (opens new window)


# hasValue

hasValue(): boolean

# Returns

boolean

# Inherited from

Element.hasValue

# Defined in

element.d.ts:11 (opens new window)


# setActiveElements

setActiveElements(active, eventPosition): void

# Parameters

Name Type
active ActiveDataPoint[]
eventPosition Point

# Returns

void

# Defined in

index.esm.d.ts:2525 (opens new window)


# tooltipPosition

tooltipPosition(useFinalPosition?): Point

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Point

# Inherited from

Element.tooltipPosition

# Defined in

element.d.ts:10 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipOptions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipOptions.html new file mode 100644 index 0000000..3346ea1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipOptions.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipOptions | Chart.js + + + + + + + +

# Interface: TooltipOptions<TType>

# Type parameters

Name Type
TType extends ChartType = ChartType

# Hierarchy

# Properties

# animation

animation: AnimationSpec<TType>

# Defined in

index.esm.d.ts:2784 (opens new window)


# animations

animations: AnimationsSpec<TType>

# Defined in

index.esm.d.ts:2785 (opens new window)


# axis

axis: InteractionAxis

Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes.

# Inherited from

CoreInteractionOptions.axis

# Defined in

index.esm.d.ts:1439 (opens new window)


# backgroundColor

backgroundColor: Scriptable<Color, ScriptableTooltipContext<TType>>

Background color of the tooltip.

default 'rgba(0, 0, 0, 0.8)'

# Defined in

index.esm.d.ts:2642 (opens new window)


# bodyAlign

bodyAlign: Scriptable<TextAlign, ScriptableTooltipContext<TType>>

Horizontal alignment of the body text lines.

default 'left'

# Defined in

index.esm.d.ts:2692 (opens new window)


# bodyColor

bodyColor: Scriptable<Color, ScriptableTooltipContext<TType>>

Color of body

default '#fff'

# Defined in

index.esm.d.ts:2682 (opens new window)


# bodyFont

bodyFont: ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableTooltipContext<TType>>

See Fonts.

default {}

# Defined in

index.esm.d.ts:2687 (opens new window)


# bodySpacing

bodySpacing: Scriptable<number, ScriptableTooltipContext<TType>>

Spacing to add to top and bottom of each tooltip item.

default 2

# Defined in

index.esm.d.ts:2677 (opens new window)


# borderColor

borderColor: Scriptable<Color, ScriptableTooltipContext<TType>>

Color of the border.

default 'rgba(0, 0, 0, 0)'

# Defined in

index.esm.d.ts:2767 (opens new window)


# borderWidth

borderWidth: Scriptable<number, ScriptableTooltipContext<TType>>

Size of the border.

default 0

# Defined in

index.esm.d.ts:2772 (opens new window)


# boxHeight

boxHeight: Scriptable<number, ScriptableTooltipContext<TType>>

Height of the color box if displayColors is true.

default bodyFont.size

# Defined in

index.esm.d.ts:2757 (opens new window)


# boxPadding

boxPadding: number

Padding between the color box and the text.

default 1

# Defined in

index.esm.d.ts:2647 (opens new window)


# boxWidth

boxWidth: Scriptable<number, ScriptableTooltipContext<TType>>

Width of the color box if displayColors is true.

default bodyFont.size

# Defined in

index.esm.d.ts:2752 (opens new window)


# callbacks

callbacks: TooltipCallbacks<TType, TooltipModel<TType>, TooltipItem<TType>>

# Defined in

index.esm.d.ts:2786 (opens new window)


# caretPadding

caretPadding: Scriptable<number, ScriptableTooltipContext<TType>>

Extra distance to move the end of the tooltip arrow away from the tooltip point.

default 2

# Defined in

index.esm.d.ts:2727 (opens new window)


# caretSize

caretSize: Scriptable<number, ScriptableTooltipContext<TType>>

Size, in px, of the tooltip arrow.

default 5

# Defined in

index.esm.d.ts:2732 (opens new window)


# cornerRadius

cornerRadius: Scriptable<number | BorderRadius, ScriptableTooltipContext<TType>>

Radius of tooltip corner curves.

default 6

# Defined in

index.esm.d.ts:2737 (opens new window)


# displayColors

displayColors: Scriptable<boolean, ScriptableTooltipContext<TType>>

If true, color boxes are shown in the tooltip.

default true

# Defined in

index.esm.d.ts:2747 (opens new window)


# enabled

enabled: Scriptable<boolean, ScriptableTooltipContext<TType>>

Are on-canvas tooltips enabled?

default true

# Defined in

index.esm.d.ts:2615 (opens new window)


# footerAlign

footerAlign: Scriptable<TextAlign, ScriptableTooltipContext<TType>>

Horizontal alignment of the footer text lines.

default 'left'

# Defined in

index.esm.d.ts:2717 (opens new window)


# footerColor

footerColor: Scriptable<Color, ScriptableTooltipContext<TType>>

Color of footer

default '#fff'

# Defined in

index.esm.d.ts:2707 (opens new window)


# footerFont

footerFont: ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableTooltipContext<TType>>

See Fonts

default {weight: 'bold'}

# Defined in

index.esm.d.ts:2712 (opens new window)


# footerMarginTop

footerMarginTop: Scriptable<number, ScriptableTooltipContext<TType>>

Margin to add before drawing the footer.

default 6

# Defined in

index.esm.d.ts:2702 (opens new window)


# footerSpacing

footerSpacing: Scriptable<number, ScriptableTooltipContext<TType>>

Spacing to add to top and bottom of each footer line.

default 2

# Defined in

index.esm.d.ts:2697 (opens new window)


# includeInvisible

includeInvisible: boolean

if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.

default false

# Inherited from

CoreInteractionOptions.includeInvisible

# Defined in

index.esm.d.ts:1445 (opens new window)


# intersect

intersect: boolean

if true, the hover mode only applies when the mouse position intersects an item on the chart.

default true

# Inherited from

CoreInteractionOptions.intersect

# Defined in

index.esm.d.ts:1434 (opens new window)


# mode

mode: keyof InteractionModeMap

Sets which elements appear in the tooltip. See Interaction Modes for details.

default 'nearest'

# Inherited from

CoreInteractionOptions.mode

# Defined in

index.esm.d.ts:1429 (opens new window)


# multiKeyBackground

multiKeyBackground: Scriptable<Color, ScriptableTooltipContext<TType>>

Color to draw behind the colored boxes when multiple items are in the tooltip.

default '#fff'

# Defined in

index.esm.d.ts:2742 (opens new window)


# padding

padding: Scriptable<number | ChartArea, ScriptableTooltipContext<TType>>

Padding to add to the tooltip

default 6

# Defined in

index.esm.d.ts:2722 (opens new window)


# position

position: Scriptable<keyof TooltipPositionerMap, ScriptableTooltipContext<TType>>

The mode for positioning the tooltip

# Defined in

index.esm.d.ts:2623 (opens new window)


# rtl

rtl: Scriptable<boolean, ScriptableTooltipContext<TType>>

true for rendering the legends from right to left.

# Defined in

index.esm.d.ts:2776 (opens new window)


# textDirection

textDirection: Scriptable<string, ScriptableTooltipContext<TType>>

This will force the text direction 'rtl' or 'ltr on the canvas for rendering the tooltips, regardless of the css specified on the canvas

default canvas's default

# Defined in

index.esm.d.ts:2782 (opens new window)


# titleAlign

titleAlign: Scriptable<TextAlign, ScriptableTooltipContext<TType>>

Horizontal alignment of the title text lines.

default 'left'

# Defined in

index.esm.d.ts:2672 (opens new window)


# titleColor

titleColor: Scriptable<Color, ScriptableTooltipContext<TType>>

Color of title

default '#fff'

# Defined in

index.esm.d.ts:2652 (opens new window)


# titleFont

titleFont: ScriptableAndScriptableOptions<Partial<FontSpec>, ScriptableTooltipContext<TType>>

See Fonts

default {weight: 'bold'}

# Defined in

index.esm.d.ts:2657 (opens new window)


# titleMarginBottom

titleMarginBottom: Scriptable<number, ScriptableTooltipContext<TType>>

Margin to add on bottom of title section.

default 6

# Defined in

index.esm.d.ts:2667 (opens new window)


# titleSpacing

titleSpacing: Scriptable<number, ScriptableTooltipContext<TType>>

Spacing to add to top and bottom of each title line.

default 2

# Defined in

index.esm.d.ts:2662 (opens new window)


# usePointStyle

usePointStyle: Scriptable<boolean, ScriptableTooltipContext<TType>>

Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight)

default false

# Defined in

index.esm.d.ts:2762 (opens new window)


# xAlign

xAlign: Scriptable<TooltipXAlignment, ScriptableTooltipContext<TType>>

Override the tooltip alignment calculations

# Defined in

index.esm.d.ts:2628 (opens new window)


# yAlign

yAlign: Scriptable<TooltipYAlignment, ScriptableTooltipContext<TType>>

# Defined in

index.esm.d.ts:2629 (opens new window)

# Methods

# external

external(args): void

See external tooltip section.

# Parameters

Name Type
args Object
args.chart Chart<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>
args.tooltip TooltipModel<TType>

# Returns

void

# Defined in

index.esm.d.ts:2619 (opens new window)


# filter

filter(e, index, array, data): boolean

# Parameters

Name Type
e TooltipItem<TType>
index number
array TooltipItem<TType>[]
data ChartData<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

boolean

# Defined in

index.esm.d.ts:2636 (opens new window)


# itemSort

itemSort(a, b, data): number

Sort tooltip items.

# Parameters

Name Type
a TooltipItem<TType>
b TooltipItem<TType>
data ChartData<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint)[], unknown>

# Returns

number

# Defined in

index.esm.d.ts:2634 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPosition.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPosition.html new file mode 100644 index 0000000..4cad7f0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPosition.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipPosition | Chart.js + + + + + + + +

# Interface: TooltipPosition

# Properties

# x

x: number

# Defined in

index.esm.d.ts:2529 (opens new window)


# xAlign

Optional xAlign: TooltipXAlignment

# Defined in

index.esm.d.ts:2531 (opens new window)


# y

y: number

# Defined in

index.esm.d.ts:2530 (opens new window)


# yAlign

Optional yAlign: TooltipYAlignment

# Defined in

index.esm.d.ts:2532 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPositionerMap.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPositionerMap.html new file mode 100644 index 0000000..a732da6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TooltipPositionerMap.html @@ -0,0 +1,51 @@ + + + + + + Interface: TooltipPositionerMap | Chart.js + + + + + + + +

# Interface: TooltipPositionerMap

# Properties

# average

average: TooltipPositionerFunction<keyof ChartTypeRegistry>

# Defined in

index.esm.d.ts:2542 (opens new window)


# nearest

nearest: TooltipPositionerFunction<keyof ChartTypeRegistry>

# Defined in

index.esm.d.ts:2543 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TypedRegistry.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TypedRegistry.html new file mode 100644 index 0000000..d02b701 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/TypedRegistry.html @@ -0,0 +1,51 @@ + + + + + + Interface: TypedRegistry | Chart.js + + + + + + + +

# Interface: TypedRegistry<T>

# Type parameters

Name
T

# Methods

# get

get(id): T

# Parameters

Name Type
id string

# Returns

T

# Defined in

index.esm.d.ts:1389 (opens new window)


# Registro

Registro(item): string

# Parameters

Name Type
item ChartComponent

# Returns

string

The scope where items defaults were Registroed to.

# Defined in

index.esm.d.ts:1388 (opens new window)


# unRegistro

unRegistro(item): void

# Parameters

Name Type
item ChartComponent

# Returns

void

# Defined in

index.esm.d.ts:1390 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/VisualElement.html b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/VisualElement.html new file mode 100644 index 0000000..8a95a74 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/api/interfaces/VisualElement.html @@ -0,0 +1,47 @@ + + + + + + Interface: VisualElement | Chart.js + + + + + + + +

# Interface: VisualElement

# Hierarchy

# Methods

# draw

draw(ctx, area?): void

# Parameters

Name Type
ctx CanvasRenderingContext2D
area? ChartArea

# Returns

void

# Defined in

index.esm.d.ts:1685 (opens new window)


# getCenterPoint

getCenterPoint(useFinalPosition?): Object

# Parameters

Name Type
useFinalPosition? boolean

# Returns

Object

Name Type
x number
y number

# Defined in

index.esm.d.ts:1689 (opens new window)


# getRange

Optional getRange(axis): number

# Parameters

Name Type
axis "x" | "y"

# Returns

number

# Defined in

index.esm.d.ts:1690 (opens new window)


# inRange

inRange(mouseX, mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Defined in

index.esm.d.ts:1686 (opens new window)


# inXRange

inXRange(mouseX, useFinalPosition?): boolean

# Parameters

Name Type
mouseX number
useFinalPosition? boolean

# Returns

boolean

# Defined in

index.esm.d.ts:1687 (opens new window)


# inYRange

inYRange(mouseY, useFinalPosition?): boolean

# Parameters

Name Type
mouseY number
useFinalPosition? boolean

# Returns

boolean

# Defined in

index.esm.d.ts:1688 (opens new window)

+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/css/0.styles.7d07a4d1.css b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/css/0.styles.7d07a4d1.css new file mode 100644 index 0000000..2c3b15b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/css/0.styles.7d07a4d1.css @@ -0,0 +1 @@ +@import url(https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.1/css/all.min.css);svg[data-v-49140617]{position:absolute;right:7.5px;opacity:.75;cursor:pointer}svg.hover[data-v-49140617]{opacity:0}svg[data-v-49140617]:hover{opacity:1!important}span[data-v-49140617]{position:absolute;font-size:.85rem;line-height:.425rem;right:50px;opacity:0;transition:opacity .5s}.success[data-v-49140617]{opacity:1!important}.code-copy-added:hover>.code-copy svg{opacity:.75}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title,.dropdown-wrapper .mobile-dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:#404244}.dropdown-wrapper .dropdown-title:hover,.dropdown-wrapper .mobile-dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow,.dropdown-wrapper .mobile-dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .mobile-dropdown-title{display:none;font-weight:600}.dropdown-wrapper .mobile-dropdown-title font-size inherit:hover{color:#3080d0}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:1rem 1.5rem .45rem 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3080d0}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active{color:#3080d0}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3080d0;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{display:none}.dropdown-wrapper .mobile-dropdown-title{display:block}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.versions-dropdown[data-v-3dd359e2]{display:inline-block;position:relative;outline:none}:not(.nav-links)>.versions-dropdown[data-v-3dd359e2]{margin:8px 16px}.versions-dropdown[data-v-3dd359e2] .dropdown-title,.versions-dropdown[data-v-3dd359e2] .dropdown-wrapper{outline:none}.versions-dropdown[data-v-3dd359e2] .dropdown-title .nav-dropdown,.versions-dropdown[data-v-3dd359e2] .dropdown-wrapper .nav-dropdown{right:auto}.versions-dropdown[data-v-3dd359e2] .nav-link{color:inherit}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{height:15px;bottom:0}.ps__rail-x,.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;position:absolute}.ps__rail-y{width:15px;right:0}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y,.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y{opacity:.6}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:#eee;opacity:.9}.ps__thumb-x{transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px}.ps__thumb-x,.ps__thumb-y{background-color:#aaa;border-radius:6px;position:absolute}.ps__thumb-y{transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px}.ps__rail-x.ps--clicking .ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x:hover>.ps__thumb-x{background-color:#999;height:11px}.ps__rail-y.ps--clicking .ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y:hover>.ps__thumb-y{background-color:#999;width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ps{overflow:auto!important}}.ps{position:relative}.theme-default-content code{color:#65686b;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#3080d0}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#404244}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#404244}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1.6em 0;padding:1.6em;background-color:#eee}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:768px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#404244}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:4.25rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:4.25rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:4.25rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3080d0}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.75rem;padding-top:5.25rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:4.25rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.ps .ps__rail-x.ps--clicking,.ps .ps__rail-x:focus,.ps .ps__rail-x:hover,.ps .ps__rail-y.ps--clicking,.ps .ps__rail-y:focus,.ps .ps__rail-y:hover{background-color:transparent!important}.prism-editor__textarea:focus{outline:none!important}.text-muted{opacity:.5!important}.text-error{color:#e05025!important}.theme-container .navbar .nav-link,.theme-container .navbar .repo-link,.theme-container .sidebar .nav-link,.theme-container .sidebar .repo-link{font-weight:700}.theme-container .navbar{box-shadow:0 8px 8px -10px rgba(0,0,0,.15);border:none}.theme-container .navbar .nav-links{margin-left:1rem}.theme-container .navbar .nav-links :first-child{margin-left:0}.theme-container .navbar .nav-links .nav-link:not(.external){border-bottom-width:4px;margin-top:-20px;padding-top:20px;padding-bottom:20px}.theme-container .navbar .logo{margin-right:.5rem;margin-top:.25rem;min-width:2.5rem;height:2.5rem}.theme-container .navbar .site-name{color:#ff6384;font-size:1.1rem}.theme-container .navbar .sidebar-button{margin:.375rem 0;height:auto;width:auto}.theme-container .Buscar-box input{background-color:#f4f4f4;background-position:.75rem .55rem;border-radius:8px;border-color:transparent;border-width:2px;padding-left:2.2rem;height:2.2rem}.theme-container .Buscar-box input:hover{border-color:rgba(0,0,0,.2);background-color:#fff}.theme-container .Buscar-box input:focus{border-color:rgba(48,128,208,.8);background-color:#fff}.theme-container .sidebar{border-right:1px dashed #eee}.theme-container .sidebar .sidebar-heading,.theme-container .sidebar .sidebar-link{transition:border-color .25s;padding:.35rem 1.475rem}.theme-container .sidebar .sidebar-heading.active,.theme-container .sidebar .sidebar-link.active{font-weight:700}.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading,.theme-container .sidebar>.sidebar-links>li>.sidebar-link{align-items:center;display:flex;border:none}.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-link:before{content:"\2981";font-size:1.25rem;margin-right:.75rem;line-height:0;opacity:.25}.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading.open,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link.open,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading.open,.theme-container .sidebar>.sidebar-links>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-link.open{color:#3080d0}.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading.active:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading.open:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link.active:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link.open:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading.active:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading.open:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-link.active:before,.theme-container .sidebar>.sidebar-links>li>.sidebar-link.open:before{opacity:1}.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-heading .arrow,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-link .arrow,.theme-container .sidebar>.sidebar-links>li>.sidebar-heading .arrow,.theme-container .sidebar>.sidebar-links>li>.sidebar-link .arrow{display:none}.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers{padding-left:1.75rem}.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-link,.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-sub-headers,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-link,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-sub-headers,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-link,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-sub-headers,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-link,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-sub-headers{border-left:1px solid rgba(48,128,208,.25)}.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-sub-headers.active{border-left-color:#3080d0}.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-link:hover,.theme-container .sidebar>.sidebar-links>li>.sidebar-group-items>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-link:hover,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-group-items>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-link:hover,.theme-container .sidebar>.sidebar-links>li>.sidebar-group>.sidebar-sub-headers>li>.sidebar-sub-headers.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-link.active,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-link:hover,.theme-container .sidebar>.sidebar-links>li>.sidebar-sub-headers>li>.sidebar-sub-headers.active{border-left-width:3px;margin-left:-1px;padding-left:calc(1.475rem - 1px)}.theme-container .home .hero h1{font-size:2.5rem;font-weight:700;margin-bottom:.75rem}.theme-container .home .hero .description{font-size:1.5rem;margin-top:.75rem;margin-bottom:3rem}.theme-default-content:not(.custom){padding-top:2.86875rem}.theme-default-content a .icon.outbound{margin-left:2px}.theme-default-content a .sr-only{display:none}.theme-default-content a img+span>.icon.outbound{display:none}.theme-default-content a code{color:#3080d0!important}.theme-default-content h1,.theme-default-content h2,.theme-default-content h3,.theme-default-content h4,.theme-default-content h5,.theme-default-content h6{font-weight:700}.theme-default-content h2{border-bottom-style:dashed}.theme-default-content sup{font-size:.75em!important}.theme-default-content td>a{align-items:center;display:inline-flex}.tabs-component{margin:2em 0}.tabs-component-tabs{border:1px solid #ddd;border-radius:6px;margin-bottom:5px;padding-left:0}.tabs-component-tab{color:#999;font-size:14px;font-weight:600;margin-right:0;list-style:none}.tabs-component-tab:hover{color:#666}.tabs-component-tab.is-active{color:#3080d0}.tabs-component-tab.is-disabled *{color:#cdcdcd;cursor:not-allowed!important}.tabs-component-tab-a{align-items:center;color:inherit;display:flex;padding:.25em .5em;text-decoration:none}.tabs-component-panels{padding:1em 0}@media (min-width:700px){.tabs-component-tabs{border:0;align-items:stretch;display:flex;justify-content:flex-start;margin-bottom:-1px}.tabs-component-tab{background-color:#fff;border:1px solid #ddd;border-radius:3px 3px 0 0;margin-right:.25em;transition:transform .3s ease}.is-active{border-bottom:1px solid #fff;z-index:2;transform:translateY(0)}.tabs-component-panels{border-top-left-radius:0;background-color:#fff;border:1px solid #ddd;border-radius:0 6px 6px 6px;box-shadow:0 0 10px rgba(0,0,0,.05);padding:1em}}.theme-default-content:not(.custom){max-width:unset}.theme-default-content .chart-view{max-width:800px}.sidebar-group.is-sub-group.depth-1>.sidebar-group-items{border-left:1px solid rgba(48,128,208,.25)}.sidebar-group.is-sub-group.depth-1>.sidebar-heading:not(.open){border-left:1px solid rgba(48,128,208,.25);margin-left:0}.sidebar-group.is-sub-group.depth-1>.sidebar-heading{transition:border-color .25s;padding:.35rem 1.475rem;border-left-width:3px;margin-left:-1px;font-size:1em;line-height:1.4;opacity:1!important}.sidebar-group.is-sub-group.depth-1>.sidebar-heading.active,.sidebar-group.is-sub-group.depth-1>.sidebar-heading.open{border-left-color:#3080d0;color:#3080d0;font-weight:700}.sidebar-group.is-sub-group.depth-1>.sidebar-heading>.arrow{display:none}.sidebar-group.is-sub-group.depth-1>.sidebar-heading>.sidebar-group-items{padding-left:0}.sidebar-group.is-sub-group.depth-1:hover .sidebar-heading:not(.open){color:#3080d0;margin-left:-1px;border-left:3px solid rgba(48,128,208,.25);padding-left:calc(1.475rem - 1px)}#nprogress{pointer-events:none}#nprogress .bar{background:#3080d0;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3080d0,0 0 5px #3080d0;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#3080d0 transparent transparent #3080d0;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.home{padding:4.25rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#8a8e91}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3080d0;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #2b73bc}.home .hero .action-button:hover{background-color:#458dd5}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#525557}.home .feature p{color:#6e7175}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#6e7175}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.Buscar-box{display:inline-block;position:relative;margin-right:1rem}.Buscar-box input{cursor:text;width:10rem;height:2rem;color:#6e7175;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/docs/3.9.1/assets/img/Buscar.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.Buscar-box input:focus{cursor:auto;border-color:#3080d0}.Buscar-box .suggestions{background:#fff;width:20rem;position:absolute;top:2rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.Buscar-box .suggestions.align-right{right:0}.Buscar-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.Buscar-box .suggestion a{white-space:normal;color:#808488}.Buscar-box .suggestion a .page-title{font-weight:600}.Buscar-box .suggestion a .header{font-size:.9em;margin-left:.25em}.Buscar-box .suggestion.focused{background-color:#f3f4f5}.Buscar-box .suggestion.focused a{color:#3080d0}@media (max-width:959px){.Buscar-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.Buscar-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.Buscar-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.Buscar-box .suggestions{left:0}}@media (max-width:719px){.Buscar-box{margin-right:0}.Buscar-box input{left:1rem}.Buscar-box .suggestions{right:0}}@media (max-width:419px){.Buscar-box .suggestions{width:calc(100vw - 4rem)}.Buscar-box input:focus{width:8rem}}.Buscar-box input{border-radius:.4rem}.Buscar-box input:focus{width:15rem}.Buscar-box .suggestions{top:1.5rem;border-radius:.6rem}.Buscar-box .suggestion{padding:.6rem 1rem}.Buscar-box .suggestion a em{color:#3080d0;font-weight:700;font-style:normal}.Buscar-box .suggestion a .suggestion__title{font-weight:600;color:#404244;display:block;padding-bottom:.4rem}.Buscar-box .suggestion a .suggestion__text{font-size:.9em}.Buscar-box .suggestion.focused{background-color:#f1f6fc}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3080d0}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#404244}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #418ad4}}.navbar{padding:.7rem 1.5rem;line-height:2.85rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.85rem;min-width:2.85rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#404244;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .Buscar-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:768px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit{padding:2rem}}@media (max-width:419px){.page-edit{padding:1.5rem}}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#6e7175;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#6e7175}.page-edit .last-updated .time{font-weight:400;color:#767676}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.page-nav{max-width:768px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-nav{padding:2rem}}@media (max-width:419px){.page-nav{padding:1.5rem}}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page{padding-bottom:2rem;display:block}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#404244;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#3080d0;border-left-color:#3080d0}.sidebar-heading.clickable:hover{color:#3080d0}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#404244;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3080d0}a.sidebar-link.active{font-weight:600;color:#3080d0;border-left-color:#3080d0}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.chart-actions[data-v-2afd21f1]{align-items:center;display:flex;flex-wrap:wrap}.chart-action[data-v-2afd21f1]{transition:background .25s,border-color .25s;background:rgba(40,44,52,.05);border:1px solid transparent;border-radius:6px;color:#3080d0;text-decoration:none!important;display:inline-block;font-size:.8rem;padding:8px 16px;margin:0 8px 8px 0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chart-action[data-v-2afd21f1]:hover{background:rgba(48,128,208,.15);border-color:rgba(48,128,208,.2);color:#3080d0}.chart-action[data-v-2afd21f1]:active{background:rgba(48,128,208,.3);border-color:rgba(48,128,208,.4);color:#3080d0}.editor-output[data-v-42be9875]{color:#e0e0e0;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.85em;line-height:1.5;height:inherit}.editor-output-content[data-v-42be9875]{padding:16px 24px}.editor-output-content>span[data-v-42be9875]{white-space:pre-wrap;position:relative;display:block;margin-left:5px;opacity:.25}.editor-output-content>span[data-v-42be9875]:first-child:before{content:">";font-weight:700;position:absolute;opacity:.5;left:-15px}.editor-output-content>span[data-v-42be9875]:first-child{opacity:1}.editor-output-content>span[data-v-42be9875]:nth-child(2){opacity:.95}.editor-output-content>span[data-v-42be9875]:nth-child(3){opacity:.9}.editor-output-content>span[data-v-42be9875]:nth-child(4){opacity:.85}.editor-output-content>span[data-v-42be9875]:nth-child(5){opacity:.8}.editor-output-content>span[data-v-42be9875]:nth-child(6){opacity:.75}.editor-output-content>span[data-v-42be9875]:nth-child(7){opacity:.7}.editor-output-content>span[data-v-42be9875]:nth-child(8){opacity:.65}.editor-output-content>span[data-v-42be9875]:nth-child(9){opacity:.6}.editor-output-content>span[data-v-42be9875]:nth-child(10){opacity:.55}.editor-output-content>span[data-v-42be9875]:nth-child(11){opacity:.5}.editor-output-content>span[data-v-42be9875]:nth-child(12){opacity:.45}.editor-output-content>span[data-v-42be9875]:nth-child(13){opacity:.4}.editor-output-content>span[data-v-42be9875]:nth-child(14){opacity:.35}.editor-output-content>span[data-v-42be9875]:nth-child(15){opacity:.3}.editor-output-content>span[data-v-42be9875]:nth-child(16){opacity:.25}.prism-editor-wrapper{width:100%;height:100%;display:flex;align-items:flex-start;overflow:auto;-o-tab-size:1.5em;tab-size:1.5em;-moz-tab-size:1.5em}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.prism-editor-wrapper .prism-editor__textarea{color:transparent!important}.prism-editor-wrapper .prism-editor__textarea::-moz-selection{background-color:#accef7!important;color:transparent!important}.prism-editor-wrapper .prism-editor__textarea::selection{background-color:#accef7!important;color:transparent!important}}.prism-editor-wrapper .prism-editor__container{position:relative;text-align:left;box-sizing:border-box;padding:0;overflow:hidden;width:100%}.prism-editor-wrapper .prism-editor__line-numbers{height:100%;overflow:hidden;flex-shrink:0;padding-top:4px;margin-top:0;margin-right:10px}.prism-editor-wrapper .prism-editor__line-number{text-align:right;white-space:nowrap}.prism-editor-wrapper .prism-editor__textarea{position:absolute;top:0;left:0;height:100%;width:100%;resize:none;color:inherit;overflow:hidden;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:transparent}.prism-editor-wrapper .prism-editor__editor,.prism-editor-wrapper .prism-editor__textarea{margin:0;border:0;background:none;box-sizing:inherit;display:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-variant-ligatures:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;-moz-tab-size:inherit;-o-tab-size:inherit;tab-size:inherit;text-indent:inherit;text-rendering:inherit;text-transform:inherit;white-space:pre-wrap;word-wrap:keep-all;overflow-wrap:break-word;padding:0}.prism-editor-wrapper .prism-editor__textarea--empty{-webkit-text-fill-color:inherit!important}.prism-editor-wrapper .prism-editor__editor{position:relative;pointer-events:none}.editor-textarea[data-v-05f11386]{color:#e0e0e0;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.85em;line-height:1.5;height:inherit}.editor-textarea[data-v-05f11386]:before{margin-right:8px;margin-top:4px}.editor-textarea .prism-editor-wrapper[data-v-05f11386]{overflow:visible}.editor-textarea-content[data-v-05f11386]{padding:16px 24px}.tooltip[data-v-402b0086]{position:relative}.tooltip .content[data-v-402b0086]{background:#eee;color:#444;box-shadow:0 4px 8px 0 rgba(0,0,0,.15);border-radius:6px;display:none;font-size:.8rem;position:absolute;min-width:256px;max-width:512px;max-height:256px;z-index:999;right:0}.tooltip:hover .content[data-v-402b0086]{display:block}.tooltip[data-v-402b0086] pre{background:none;overflow:visible;padding:0 16px}.code-editor[data-v-66ca8197]{background-color:#282c34;border-radius:6px}@media (max-width:419px){.code-editor[data-v-66ca8197]{border-radius:0!important;margin:0 -1.5rem}}.code-editor-header[data-v-66ca8197]{background:hsla(0,0%,100%,.02);padding:0 16px;display:flex}.code-editor-header .code-editor-tab[data-v-66ca8197],.code-editor-header .code-editor-tool[data-v-66ca8197]{margin:0 8px}.code-editor-tabs[data-v-66ca8197]{align-items:center;display:flex;flex:1}.code-editor-tab[data-v-66ca8197]{background:none;border:none;border-bottom:2px solid transparent;color:#e0e0e0;text-transform:capitalize;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;cursor:pointer;padding:20px 4px 18px}.code-editor-tab[data-v-66ca8197]:focus{outline:none}.code-editor-tab.active[data-v-66ca8197]{border-bottom-color:#3080d0}.code-editor-tools[data-v-66ca8197]{align-items:center;display:flex;padding:16px 0}.code-editor-tool[data-v-66ca8197]{color:#e0e0e0;text-decoration:none!important}.code-editor-views[data-v-66ca8197]{height:360px}.chart-actions[data-v-365c20ab],.chart-view[data-v-365c20ab]{margin:16px 0}.badge[data-v-15b7b770]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff;background-color:#42b983}.badge.green[data-v-15b7b770],.badge.tip[data-v-15b7b770]{background-color:#42b983}.badge.error[data-v-15b7b770]{background-color:#da5961}.badge.warn[data-v-15b7b770],.badge.warning[data-v-15b7b770],.badge.yellow[data-v-15b7b770]{background-color:#e7c000}.badge+.badge[data-v-15b7b770]{margin-left:5px}.theme-code-block[data-v-759a7d02]{display:none}.theme-code-block__active[data-v-759a7d02]{display:block}.theme-code-block>pre[data-v-759a7d02]{background-color:orange}.theme-code-group__nav[data-v-deefee04]{margin-bottom:-35px;background-color:#282c34;padding-bottom:22px;border-top-left-radius:6px;border-top-right-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__ul[data-v-deefee04]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__nav-tab[data-v-deefee04]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:hsla(0,0%,100%,.9);font-weight:600}.theme-code-group__nav-tab-active[data-v-deefee04]{border-bottom:1px solid #42b983}.pre-blank[data-v-deefee04]{color:#42b983} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/destroy_flowchart.10814816.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/destroy_flowchart.10814816.png new file mode 100644 index 0000000..c8d5cba Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/destroy_flowchart.10814816.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/event_flowchart.83015c7a.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/event_flowchart.83015c7a.png new file mode 100644 index 0000000..08ee5ed Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/event_flowchart.83015c7a.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/init_flowchart.ee5be600.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/init_flowchart.ee5be600.png new file mode 100644 index 0000000..f52d628 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/init_flowchart.ee5be600.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/render_flowchart.41a98316.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/render_flowchart.41a98316.png new file mode 100644 index 0000000..db03a04 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/render_flowchart.41a98316.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/scale_flowchart.fa1ab63e.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/scale_flowchart.fa1ab63e.png new file mode 100644 index 0000000..29e680f Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/scale_flowchart.fa1ab63e.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/search.83621669.svg b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/search.83621669.svg new file mode 100644 index 0000000..03d8391 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/search.83621669.svg @@ -0,0 +1 @@ + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/update_flowchart.0556691d.png b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/update_flowchart.0556691d.png new file mode 100644 index 0000000..f3270c2 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/img/update_flowchart.0556691d.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/10.edbecfa9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/10.edbecfa9.js new file mode 100644 index 0000000..c144474 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/10.edbecfa9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{340:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-animation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-animation"}},[t._v("#")]),t._v(" Class: Animation")]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new Animation")]),t._v("("),a("code",[t._v("cfg")]),t._v(", "),a("code",[t._v("target")]),t._v(", "),a("code",[t._v("prop")]),t._v(", "),a("code",[t._v("to?")]),t._v(")")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("target")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("prop")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("to?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("active")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"cancel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cancel"}},[t._v("#")]),t._v(" cancel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("cancel")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick"}},[t._v("#")]),t._v(" tick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tick")]),t._v("("),a("code",[t._v("date")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("date")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("cfg")]),t._v(", "),a("code",[t._v("to")]),t._v(", "),a("code",[t._v("date")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("to")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("date")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:7"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/100.f7a12d8b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/100.f7a12d8b.js new file mode 100644 index 0000000..cb7273e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/100.f7a12d8b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{431:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-radiallinearscale-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-radiallinearscale-o"}},[t._v("#")]),t._v(" Interface: RadialLinearScale")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#radiallinearscaleoptions"}},[a("code",[t._v("RadialLinearScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#radiallinearscaleoptions"}},[a("code",[t._v("RadialLinearScaleOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("RadialLinearScale")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#active"}},[t._v("active")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[t._v("#")]),t._v(" axis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("axis")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#axis"}},[t._v("axis")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1239",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1239"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Bottom edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#bottom"}},[t._v("bottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#chart"}},[t._v("chart")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1229",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1229"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ctx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ctx"}},[t._v("#")]),t._v(" ctx")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("ctx")]),t._v(": "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ctx"}},[t._v("ctx")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1228",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1228"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("if true, and the item is horizontal, then push vertical boxes down")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#fullsize"}},[t._v("fullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:17"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Height of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#height"}},[t._v("height")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#id"}},[t._v("id")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1226",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1226"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelrotation"}},[t._v("#")]),t._v(" labelRotation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelRotation")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#labelrotation"}},[t._v("labelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1240",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1240"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"left"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("left")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Left edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#left"}},[t._v("left")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L29",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:29"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#max"}},[t._v("#")]),t._v(" max")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("max")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#max"}},[t._v("max")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1242",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1242"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxheight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxheight"}},[t._v("#")]),t._v(" maxHeight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxHeight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#maxheight"}},[t._v("maxHeight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1232",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1232"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxwidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxwidth"}},[t._v("#")]),t._v(" maxWidth")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxWidth")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#maxwidth"}},[t._v("maxWidth")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1231",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1231"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"min"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min"}},[t._v("#")]),t._v(" min")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("min")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#min"}},[t._v("min")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1241",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1241"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#options"}},[t._v("options")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingbottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingbottom"}},[t._v("#")]),t._v(" paddingBottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingBottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingbottom"}},[t._v("paddingBottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1235",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1235"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingleft"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingleft"}},[t._v("#")]),t._v(" paddingLeft")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingLeft")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingleft"}},[t._v("paddingLeft")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1236",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1236"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingright"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingright"}},[t._v("#")]),t._v(" paddingRight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingRight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingright"}},[t._v("paddingRight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1237",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1237"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingtop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingtop"}},[t._v("#")]),t._v(" paddingTop")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingTop")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingtop"}},[t._v("paddingTop")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1234",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1234"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("The position of the item in the chart layout. Possible values are")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#position"}},[t._v("position")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"right"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("right")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Right edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#right"}},[t._v("right")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L37",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:37"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[t._v("#")]),t._v(" ticks")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ticks"}},[t._v("ticks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1243",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1243"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"top"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("top")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Top edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#top"}},[t._v("top")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#type"}},[t._v("type")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1227",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1227"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the item. Higher weights are further away from the chart area")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#weight"}},[t._v("weight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Width of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#width"}},[t._v("width")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#x"}},[t._v("x")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#y"}},[t._v("y")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterbuildticks"}},[t._v("afterBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1323",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1323"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftercalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftercalculatelabelrotation"}},[t._v("#")]),t._v(" afterCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#aftercalculatelabelrotation"}},[t._v("afterCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1329",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1329"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterdatalimits"}},[t._v("afterDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1320",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1320"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfit"}},[t._v("#")]),t._v(" afterFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterfit"}},[t._v("afterFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1332",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1332"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftersetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftersetdimensions"}},[t._v("#")]),t._v(" afterSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#aftersetdimensions"}},[t._v("afterSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1317",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1317"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterticktolabelconversion"}},[t._v("#")]),t._v(" afterTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterticktolabelconversion"}},[t._v("afterTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1326",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1326"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterupdate"}},[t._v("afterUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1314",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1314"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforebuildticks"}},[t._v("beforeBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1321",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1321"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforecalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecalculatelabelrotation"}},[t._v("#")]),t._v(" beforeCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforecalculatelabelrotation"}},[t._v("beforeCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1327",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1327"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforedatalimits"}},[t._v("beforeDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1318",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1318"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefit"}},[t._v("#")]),t._v(" beforeFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-39"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforefit"}},[t._v("beforeFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1330",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1330"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the layout process starts")]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-40"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforelayout"}},[t._v("beforeLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L46",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:46"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforesetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforesetdimensions"}},[t._v("#")]),t._v(" beforeSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-41"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforesetdimensions"}},[t._v("beforeSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1315",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1315"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeticktolabelconversion"}},[t._v("#")]),t._v(" beforeTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-42"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforeticktolabelconversion"}},[t._v("beforeTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1324",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1324"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-43"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforeupdate"}},[t._v("beforeUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1312",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1312"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildticks"}},[t._v("#")]),t._v(" buildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-44"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#buildticks"}},[t._v("buildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1322",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1322"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatelabelrotation"}},[t._v("#")]),t._v(" calculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-45"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#calculatelabelrotation"}},[t._v("calculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1328",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1328"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-46"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#configure"}},[t._v("configure")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1313",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1313"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"determinedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#determinedatalimits"}},[t._v("#")]),t._v(" determineDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("determineDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-47"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#determinedatalimits"}},[t._v("determineDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1319",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1319"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Draws the element")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-48"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L50",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:50"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawgrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawgrid"}},[t._v("#")]),t._v(" drawGrid")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawGrid")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-49"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawgrid"}},[t._v("drawGrid")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1248",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1248"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawlabels"}},[t._v("#")]),t._v(" drawLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawLabels")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-50"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawlabels"}},[t._v("drawLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1247",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1247"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawtitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawtitle"}},[t._v("#")]),t._v(" drawTitle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawTitle")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-51"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawtitle"}},[t._v("drawTitle")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1246",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1246"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fit"}},[t._v("#")]),t._v(" fit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("fit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-52"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#fit"}},[t._v("fit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-52"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1331",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1331"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"generateticklabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#generateticklabels"}},[t._v("#")]),t._v(" generateTickLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("generateTickLabels")]),t._v("("),a("code",[t._v("ticks")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ticks")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-53"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#generateticklabels"}},[t._v("generateTickLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-53"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1325",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1325"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasepixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasepixel"}},[t._v("#")]),t._v(" getBasePixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBasePixel")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the pixel for the minimum chart value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-54"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getbasepixel"}},[t._v("getBasePixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-54"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1304",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1304"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbaseposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbaseposition"}},[t._v("#")]),t._v(" getBasePosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBasePosition")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("angle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-55"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3477",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3477"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasevalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasevalue"}},[t._v("#")]),t._v(" getBaseValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBaseValue")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-55"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getbasevalue"}},[t._v("getBaseValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-56"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1298",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1298"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdecimalforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdecimalforpixel"}},[t._v("#")]),t._v(" getDecimalForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDecimalForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-56"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getdecimalforpixel"}},[t._v("getDecimalForPixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-57"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1254",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1254"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdistancefromcenterforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdistancefromcenterforvalue"}},[t._v("#")]),t._v(" getDistanceFromCenterForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDistanceFromCenterForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-58"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3472",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3472"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getindexangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getindexangle"}},[t._v("#")]),t._v(" getIndexAngle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getIndexAngle")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-59"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3471",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3471"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelforvalue"}},[t._v("#")]),t._v(" getLabelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabelForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Used to get the label to display in the tooltip for the given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-57"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlabelforvalue"}},[t._v("getLabelForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-60"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1274"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabels"}},[t._v("#")]),t._v(" getLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabels")]),t._v("(): "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-58"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlabels"}},[t._v("getLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-61"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1311",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1311"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlinewidthforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlinewidthforvalue"}},[t._v("#")]),t._v(" getLineWidthForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLineWidthForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the grid line width at given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-59"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlinewidthforvalue"}},[t._v("getLineWidthForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-62"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1279",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1279"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmatchingvisiblemetas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmatchingvisiblemetas"}},[t._v("#")]),t._v(" getMatchingVisibleMetas")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMatchingVisibleMetas")]),t._v("("),a("code",[t._v("type?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-60"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getmatchingvisiblemetas"}},[t._v("getMatchingVisibleMetas")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-63"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1244",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1244"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("canStack")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-61"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getminmax"}},[t._v("getMinMax")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-64"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1309",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1309"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpadding"}},[t._v("#")]),t._v(" getPadding")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getPadding")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Returns an object with padding on the edges")]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-62"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpadding"}},[t._v("getPadding")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-65"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L54",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:54"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfordecimal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfordecimal"}},[t._v("#")]),t._v(" getPixelForDecimal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForDecimal")]),t._v("("),a("code",[t._v("decimal")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Utility for getting the pixel location of a percentage of scale\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("decimal")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-63"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelfordecimal"}},[t._v("getPixelForDecimal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-66"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1261",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1261"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfortick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfortick"}},[t._v("#")]),t._v(" getPixelForTick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForTick")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the tick at the given index\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-64"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelfortick"}},[t._v("getPixelForTick")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-67"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1268",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1268"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelforvalue"}},[t._v("#")]),t._v(" getPixelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForValue")]),t._v("("),a("code",[t._v("value")]),t._v(", "),a("code",[t._v("index?")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the given data point. Value can either be an index or a numerical value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-65"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelforvalue"}},[t._v("getPixelForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-68"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1288",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1288"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpointlabelposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpointlabelposition"}},[t._v("#")]),t._v(" getPointLabelPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPointLabelPosition")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-69"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3476",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3476"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpointposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpointposition"}},[t._v("#")]),t._v(" getPointPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPointPosition")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("distanceFromCenter")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("distanceFromCenter")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("angle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-70"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3474",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3474"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpointpositionforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpointpositionforvalue"}},[t._v("#")]),t._v(" getPointPositionForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPointPositionForValue")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("angle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-71"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3475",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3475"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("code",[t._v("never")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-66"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getprops"}},[t._v("getProps")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-72"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getticks"}},[t._v("#")]),t._v(" getTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-67"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getticks"}},[t._v("getTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-73"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1310",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1310"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getuserbounds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getuserbounds"}},[t._v("#")]),t._v(" getUserBounds")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getUserBounds")]),t._v("(): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("maxDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("minDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-68"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getuserbounds"}},[t._v("getUserBounds")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-74"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1308",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1308"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getvaluefordistancefromcenter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getvaluefordistancefromcenter"}},[t._v("#")]),t._v(" getValueForDistanceFromCenter")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getValueForDistanceFromCenter")]),t._v("("),a("code",[t._v("distance")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("distance")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-75"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3473",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3473"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getvalueforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getvalueforpixel"}},[t._v("#")]),t._v(" getValueForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getValueForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Used to get the data value from a given pixel. This is the inverse of getPixelForValue\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-69"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getvalueforpixel"}},[t._v("getValueForPixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-76"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1296",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1296"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-70"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#hasvalue"}},[t._v("hasValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-77"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"init"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init"}},[t._v("#")]),t._v(" init")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("init")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-71"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#init"}},[t._v("init")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-78"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1306",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1306"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isfullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfullsize"}},[t._v("#")]),t._v(" isFullSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isFullSize")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-72"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#isfullsize"}},[t._v("isFullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-79"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1334",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1334"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ishorizontal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ishorizontal"}},[t._v("#")]),t._v(" isHorizontal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isHorizontal")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("returns true if the layout item is horizontal (ie. top or bottom)")]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-73"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ishorizontal"}},[t._v("isHorizontal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-80"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("raw")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("raw")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-74"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#parse"}},[t._v("parse")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-81"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1307",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1307"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setcenterpoint"}},[t._v("#")]),t._v(" setCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setCenterPoint")]),t._v("("),a("code",[t._v("leftMovement")]),t._v(", "),a("code",[t._v("rightMovement")]),t._v(", "),a("code",[t._v("topMovement")]),t._v(", "),a("code",[t._v("bottomMovement")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("leftMovement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("rightMovement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("topMovement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("bottomMovement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-82"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3470",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3470"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setdimensions"}},[t._v("#")]),t._v(" setDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-75"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#setdimensions"}},[t._v("setDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-83"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1316",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1316"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-76"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#tooltipposition"}},[t._v("tooltipPosition")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-84"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("width")]),t._v(", "),a("code",[t._v("height")]),t._v(", "),a("code",[t._v("margins?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Takes two parameters: width and height.")]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("margins?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-77"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#update"}},[t._v("update")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-85"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L64",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:64"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/101.15c56dbb.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/101.15c56dbb.js new file mode 100644 index 0000000..8a90e8d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/101.15c56dbb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{432:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-radialscaletyperegistry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-radialscaletyperegistry"}},[t._v("#")]),t._v(" Interface: RadialScaleTypeRegistry")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("RadialScaleTypeRegistry")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/ScaleTypeRegistry.html"}},[a("code",[t._v("ScaleTypeRegistry")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"radiallinear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radiallinear"}},[t._v("#")]),t._v(" radialLinear")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("radialLinear")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#radiallinearscaleoptions"}},[a("code",[t._v("RadialLinearScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3503",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3503"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/102.33b746ea.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/102.33b746ea.js new file mode 100644 index 0000000..73e8129 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/102.33b746ea.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{433:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-registry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-registry"}},[t._v("#")]),t._v(" Interface: Registry")]),t._v(" "),a("p",[t._v("Please use the module's default export which provides a singleton instance\nNote: class is exported for typedoc")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"controllers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#controllers"}},[t._v("#")]),t._v(" controllers")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("controllers")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TypedRegistry.html"}},[a("code",[t._v("TypedRegistry")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")]),t._v(">>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1120",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1120"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"elements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#elements"}},[t._v("#")]),t._v(" elements")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("elements")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TypedRegistry.html"}},[a("code",[t._v("TypedRegistry")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1121",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1121"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("plugins")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TypedRegistry.html"}},[a("code",[t._v("TypedRegistry")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1122",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1122"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scales"}},[t._v("#")]),t._v(" scales")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("scales")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TypedRegistry.html"}},[a("code",[t._v("TypedRegistry")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1123",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1123"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"add"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add"}},[t._v("#")]),t._v(" add")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("add")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1125",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1125"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addcontrollers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addcontrollers"}},[t._v("#")]),t._v(" addControllers")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addControllers")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1128",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1128"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addelements"}},[t._v("#")]),t._v(" addElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addElements")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1129",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1129"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addplugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addplugins"}},[t._v("#")]),t._v(" addPlugins")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addPlugins")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1130",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1130"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addscales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addscales"}},[t._v("#")]),t._v(" addScales")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addScales")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1131",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1131"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcontroller"}},[t._v("#")]),t._v(" getController")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getController")]),t._v("("),a("code",[t._v("id")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1133",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1133"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getelement"}},[t._v("#")]),t._v(" getElement")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getElement")]),t._v("("),a("code",[t._v("id")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1134",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1134"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getplugin"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getplugin"}},[t._v("#")]),t._v(" getPlugin")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPlugin")]),t._v("("),a("code",[t._v("id")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1135",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1135"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getscale"}},[t._v("#")]),t._v(" getScale")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getScale")]),t._v("("),a("code",[t._v("id")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1136",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1136"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"remove"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remove"}},[t._v("#")]),t._v(" remove")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("remove")]),t._v("(..."),a("code",[t._v("args")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1126",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1126"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/103.850a4486.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/103.850a4486.js new file mode 100644 index 0000000..b141620 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/103.850a4486.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{434:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scaletyperegistry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scaletyperegistry"}},[t._v("#")]),t._v(" Interface: ScaleTypeRegistry")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/RadialScaleTypeRegistry.html"}},[a("code",[t._v("RadialScaleTypeRegistry")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("ScaleTypeRegistry")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"category"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category"}},[t._v("#")]),t._v(" category")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("category")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#categoryscaleoptions"}},[a("code",[t._v("CategoryScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html#category"}},[t._v("category")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3491",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3491"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear"}},[t._v("#")]),t._v(" linear")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("linear")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#linearscaleoptions"}},[a("code",[t._v("LinearScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html#linear"}},[t._v("linear")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3485",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3485"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"logarithmic"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#logarithmic"}},[t._v("#")]),t._v(" logarithmic")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("logarithmic")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-3"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#logarithmicscaleoptions"}},[a("code",[t._v("LogarithmicScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html#logarithmic"}},[t._v("logarithmic")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3488",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3488"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radiallinear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radiallinear"}},[t._v("#")]),t._v(" radialLinear")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("radialLinear")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-4"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#radiallinearscaleoptions"}},[a("code",[t._v("RadialLinearScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/RadialScaleTypeRegistry.html"}},[t._v("RadialScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/RadialScaleTypeRegistry.html#radiallinear"}},[t._v("radialLinear")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3503",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3503"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time"}},[t._v("#")]),t._v(" time")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("time")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-5"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html#time"}},[t._v("time")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3494",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3494"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timeseries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeseries"}},[t._v("#")]),t._v(" timeseries")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("timeseries")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-6"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html#timeseries"}},[t._v("timeseries")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3497",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3497"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/104.8b4f368b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/104.8b4f368b.js new file mode 100644 index 0000000..614274c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/104.8b4f368b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{435:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-scatterdatapoint"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-scatterdatapoint"}},[t._v("#")]),t._v(" Interface: ScatterDataPoint")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("x")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L228",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:228"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("y")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L229",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:229"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/105.1a3d6c41.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/105.1a3d6c41.js new file mode 100644 index 0000000..f3d0997 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/105.1a3d6c41.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[105],{436:function(e,t,a){"use strict";a.r(t);var r=a(6),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scriptablecartesianscalecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scriptablecartesianscalecontext"}},[e._v("#")]),e._v(" Interface: ScriptableCartesianScaleContext")]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale"}},[e._v("#")]),e._v(" scale")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("scale")]),e._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[e._v("CartesianScaleTypeRegistry")])])],1),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3051",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:3051"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[e._v("#")]),e._v(" type")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("type")]),e._v(": "),a("code",[e._v("string")])]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3052",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:3052"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/106.d8f8b4c1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/106.d8f8b4c1.js new file mode 100644 index 0000000..f5d3107 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/106.d8f8b4c1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{437:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-scriptablechartcontext"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-scriptablechartcontext"}},[t._v("#")]),t._v(" Interface: ScriptableChartContext")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"chart"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("chart")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[r("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3056",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3056"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"type"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("type")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3057",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3057"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/107.38cf9b4f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/107.38cf9b4f.js new file mode 100644 index 0000000..556f295 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/107.38cf9b4f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{438:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scriptablecontext-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scriptablecontext-ttype"}},[t._v("#")]),t._v(" Interface: ScriptableContext")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L19",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:19"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L20",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:20"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"dataindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataindex"}},[t._v("#")]),t._v(" dataIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("dataIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"dataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset"}},[t._v("#")]),t._v(" dataset")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("dataset")]),t._v(": "),a("code",[t._v("UnionToIntersection")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>>>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L22",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:22"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datasetindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[t._v("#")]),t._v(" datasetIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L23",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:23"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"mode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mode"}},[t._v("#")]),t._v(" mode")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("mode")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsed"}},[t._v("#")]),t._v(" parsed")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsed")]),t._v(": "),a("code",[t._v("UnionToIntersection")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#parseddatatype"}},[a("code",[t._v("ParsedDataType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L26",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:26"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"raw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#raw"}},[t._v("#")]),t._v(" raw")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("raw")]),t._v(": "),a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L27",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:27"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L24",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:24"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/108.a30da8c9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/108.a30da8c9.js new file mode 100644 index 0000000..7cd68b2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/108.a30da8c9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{439:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scriptablelinesegmentcontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scriptablelinesegmentcontext"}},[t._v("#")]),t._v(" Interface: ScriptableLineSegmentContext")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"datasetindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[t._v("#")]),t._v(" datasetIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L36",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:36"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"p0"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#p0"}},[t._v("#")]),t._v(" p0")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("p0")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#pointelement"}},[a("code",[t._v("PointElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[a("code",[t._v("PointProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[a("code",[t._v("PointOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L32",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:32"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"p0dataindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#p0dataindex"}},[t._v("#")]),t._v(" p0DataIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("p0DataIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L34",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:34"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"p1"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#p1"}},[t._v("#")]),t._v(" p1")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("p1")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#pointelement"}},[a("code",[t._v("PointElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[a("code",[t._v("PointProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[a("code",[t._v("PointOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"p1dataindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#p1dataindex"}},[t._v("#")]),t._v(" p1DataIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("p1DataIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L35",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:35"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v('"segment"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L31",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:31"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/109.6d56b7d1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/109.6d56b7d1.js new file mode 100644 index 0000000..6446ef1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/109.6d56b7d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{440:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scripTablascalecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scripTablascalecontext"}},[t._v("#")]),t._v(" Interface: ScripTablascaleContext")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1341",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1341"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1343",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1343"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale"}},[t._v("#")]),t._v(" scale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("scale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1342",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1342"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick"}},[t._v("#")]),t._v(" tick")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("tick")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1344",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1344"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/11.b98e8151.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/11.b98e8151.js new file mode 100644 index 0000000..fd76361 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/11.b98e8151.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{342:function(t,a,e){"use strict";e.r(a);var r=e(6),s=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"class-animations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#class-animations"}},[t._v("#")]),t._v(" Class: Animations")]),t._v(" "),e("h2",{attrs:{id:"constructors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),e("h3",{attrs:{id:"constructor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),e("p",[t._v("• "),e("strong",[t._v("new Animations")]),t._v("("),e("code",[t._v("chart")]),t._v(", "),e("code",[t._v("animations")]),t._v(")")]),t._v(" "),e("h4",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("chart")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[e("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("animations")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("AnyObject")])])])])]),t._v(" "),e("h4",{attrs:{id:"defined-in"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L30",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:30"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"methods"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),e("h3",{attrs:{id:"configure"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),e("p",[t._v("▸ "),e("strong",[t._v("configure")]),t._v("("),e("code",[t._v("animations")]),t._v("): "),e("code",[t._v("void")])]),t._v(" "),e("h4",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("animations")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("AnyObject")])])])])]),t._v(" "),e("h4",{attrs:{id:"returns"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[e("code",[t._v("void")])]),t._v(" "),e("h4",{attrs:{id:"defined-in-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L31",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:31"),e("OutboundLink")],1)]),t._v(" "),e("hr"),t._v(" "),e("h3",{attrs:{id:"update"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),e("p",[t._v("▸ "),e("strong",[t._v("update")]),t._v("("),e("code",[t._v("target")]),t._v(", "),e("code",[t._v("values")]),t._v("): "),e("code",[t._v("boolean")])]),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("target")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("AnyObject")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("values")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("AnyObject")])])])])]),t._v(" "),e("h4",{attrs:{id:"returns-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[e("code",[t._v("boolean")])]),t._v(" "),e("h4",{attrs:{id:"defined-in-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L32",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:32"),e("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/110.c44e533c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/110.c44e533c.js new file mode 100644 index 0000000..f1080a5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/110.c44e533c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{441:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scripTablascalepointlabelcontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scripTablascalepointlabelcontext"}},[t._v("#")]),t._v(" Interface: ScripTablascalePointLabelContext")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1348",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1348"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1350",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1350"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"label"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("label")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1351",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1351"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale"}},[t._v("#")]),t._v(" scale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("scale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1349",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1349"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1352",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1352"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/111.ccb9a835.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/111.ccb9a835.js new file mode 100644 index 0000000..7375b32 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/111.ccb9a835.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{442:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-scriptabletooltipcontext-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-scriptabletooltipcontext-ttype"}},[t._v("#")]),t._v(" Interface: ScriptableTooltipContext")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>, "),a("code",[t._v("unknown")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2605",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2605"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" tooltip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("tooltip")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2606",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2606"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipitems"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipitems"}},[t._v("#")]),t._v(" tooltipItems")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("tooltipItems")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[a("code",[t._v("TooltipItem")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2607",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2607"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/112.2d2a2890.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/112.2d2a2890.js new file mode 100644 index 0000000..86b39bc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/112.2d2a2890.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{443:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-segment"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-segment"}},[e._v("#")]),e._v(" Interface: Segment")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"end"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#end"}},[e._v("#")]),e._v(" end")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("end")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1707",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1707"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"loop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#loop"}},[e._v("#")]),e._v(" loop")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("loop")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1708",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1708"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"start"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#start"}},[e._v("#")]),e._v(" start")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("start")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1706",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1706"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/113.5ac0921f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/113.5ac0921f.js new file mode 100644 index 0000000..bff75de --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/113.5ac0921f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{444:function(e,t,a){"use strict";a.r(t);var r=a(6),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tick"}},[e._v("#")]),e._v(" Interface: Tick")]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"label"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[e._v("#")]),e._v(" label")]),e._v(" "),a("p",[e._v("• "),a("code",[e._v("Optional")]),e._v(" "),a("strong",[e._v("label")]),e._v(": "),a("code",[e._v("string")]),e._v(" | "),a("code",[e._v("string")]),e._v("[]")]),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1143",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1143"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"major"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#major"}},[e._v("#")]),e._v(" major")]),e._v(" "),a("p",[e._v("• "),a("code",[e._v("Optional")]),e._v(" "),a("strong",[e._v("major")]),e._v(": "),a("code",[e._v("boolean")])]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1144",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1144"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#value"}},[e._v("#")]),e._v(" value")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("value")]),e._v(": "),a("code",[e._v("number")])]),e._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1142",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1142"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/114.90ef8814.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/114.90ef8814.js new file mode 100644 index 0000000..e651b6d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/114.90ef8814.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{445:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tickoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tickoptions"}},[t._v("#")]),t._v(" Interface: TickOptions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"backdropcolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backdropcolor"}},[t._v("#")]),t._v(" backdropColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("backdropColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("Color of label backdrops.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'rgba(255, 255, 255, 0.75)'")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2923",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2923"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"backdroppadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backdroppadding"}},[t._v("#")]),t._v(" backdropPadding")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("backdropPadding")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Padding of tick backdrop.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2928",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2928"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"color"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" color")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[a("code",[t._v("ScriptableAndArray")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("Color of tick")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2943",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2943"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"display"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("If true, show tick labels.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2938",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2938"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"font"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#font"}},[t._v("#")]),t._v(" font")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("font")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("see Fonts")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2947",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2947"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"major"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#major"}},[t._v("#")]),t._v(" major")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("major")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("enabled")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("If true, major ticks are generated. A major tick will affect autoskipping and major will be defined on ticks in the scriptable options context. "),a("strong",[a("code",[t._v("default")])]),t._v(" false")])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2973",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2973"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"padding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#padding"}},[t._v("#")]),t._v(" padding")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("padding")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Sets the offset of the tick labels from the axis")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2951",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2951"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"showlabelbackdrop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#showlabelbackdrop"}},[t._v("#")]),t._v(" showLabelBackdrop")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("showLabelBackdrop")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("boolean")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("If true, draw a background behind the tick labels.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2956",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2956"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"textstrokecolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#textstrokecolor"}},[t._v("#")]),t._v(" textStrokeColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("textStrokeColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("The color of the stroke around the text.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" undefined")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2961",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2961"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"textstrokewidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#textstrokewidth"}},[t._v("#")]),t._v(" textStrokeWidth")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("textStrokeWidth")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("Stroke width around the text.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2966",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2966"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"z"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#z"}},[t._v("#")]),t._v(" z")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("z")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2971",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2971"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#callback"}},[t._v("#")]),t._v(" callback")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("callback")]),t._v("("),a("code",[t._v("tickValue")]),t._v(", "),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("ticks")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("p",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See callback.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tickValue")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ticks")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2933",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2933"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/115.12a72d27.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/115.12a72d27.js new file mode 100644 index 0000000..6a87040 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/115.12a72d27.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{446:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-timescale-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-timescale-o"}},[t._v("#")]),t._v(" Interface: TimeScale")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("TimeScale")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#active"}},[t._v("active")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[t._v("#")]),t._v(" axis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("axis")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#axis"}},[t._v("axis")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1239",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1239"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Bottom edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#bottom"}},[t._v("bottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#chart"}},[t._v("chart")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1229",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1229"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ctx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ctx"}},[t._v("#")]),t._v(" ctx")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("ctx")]),t._v(": "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ctx"}},[t._v("ctx")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1228",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1228"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("if true, and the item is horizontal, then push vertical boxes down")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#fullsize"}},[t._v("fullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:17"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Height of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#height"}},[t._v("height")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#id"}},[t._v("id")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1226",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1226"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelrotation"}},[t._v("#")]),t._v(" labelRotation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelRotation")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#labelrotation"}},[t._v("labelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1240",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1240"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"left"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("left")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Left edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#left"}},[t._v("left")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L29",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:29"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#max"}},[t._v("#")]),t._v(" max")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("max")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#max"}},[t._v("max")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1242",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1242"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxheight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxheight"}},[t._v("#")]),t._v(" maxHeight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxHeight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#maxheight"}},[t._v("maxHeight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1232",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1232"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxwidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxwidth"}},[t._v("#")]),t._v(" maxWidth")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxWidth")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#maxwidth"}},[t._v("maxWidth")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1231",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1231"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"min"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min"}},[t._v("#")]),t._v(" min")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("min")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#min"}},[t._v("min")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1241",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1241"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#options"}},[t._v("options")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingbottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingbottom"}},[t._v("#")]),t._v(" paddingBottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingBottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingbottom"}},[t._v("paddingBottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1235",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1235"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingleft"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingleft"}},[t._v("#")]),t._v(" paddingLeft")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingLeft")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingleft"}},[t._v("paddingLeft")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1236",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1236"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingright"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingright"}},[t._v("#")]),t._v(" paddingRight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingRight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingright"}},[t._v("paddingRight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1237",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1237"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingtop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingtop"}},[t._v("#")]),t._v(" paddingTop")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingTop")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#paddingtop"}},[t._v("paddingTop")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1234",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1234"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("The position of the item in the chart layout. Possible values are")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#position"}},[t._v("position")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"right"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("right")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Right edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#right"}},[t._v("right")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L37",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:37"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[t._v("#")]),t._v(" ticks")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ticks"}},[t._v("ticks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1243",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1243"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"top"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("top")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Top edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#top"}},[t._v("top")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#type"}},[t._v("type")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1227",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1227"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the item. Higher weights are further away from the chart area")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#weight"}},[t._v("weight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Width of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#width"}},[t._v("width")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#x"}},[t._v("x")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#y"}},[t._v("y")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterbuildticks"}},[t._v("afterBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1323",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1323"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftercalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftercalculatelabelrotation"}},[t._v("#")]),t._v(" afterCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#aftercalculatelabelrotation"}},[t._v("afterCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1329",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1329"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterdatalimits"}},[t._v("afterDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1320",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1320"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfit"}},[t._v("#")]),t._v(" afterFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterfit"}},[t._v("afterFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1332",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1332"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftersetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftersetdimensions"}},[t._v("#")]),t._v(" afterSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#aftersetdimensions"}},[t._v("afterSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1317",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1317"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterticktolabelconversion"}},[t._v("#")]),t._v(" afterTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterticktolabelconversion"}},[t._v("afterTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1326",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1326"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#afterupdate"}},[t._v("afterUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1314",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1314"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforebuildticks"}},[t._v("beforeBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1321",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1321"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforecalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecalculatelabelrotation"}},[t._v("#")]),t._v(" beforeCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforecalculatelabelrotation"}},[t._v("beforeCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1327",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1327"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforedatalimits"}},[t._v("beforeDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1318",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1318"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefit"}},[t._v("#")]),t._v(" beforeFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-39"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforefit"}},[t._v("beforeFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1330",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1330"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the layout process starts")]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-40"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforelayout"}},[t._v("beforeLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L46",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:46"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforesetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforesetdimensions"}},[t._v("#")]),t._v(" beforeSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-41"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforesetdimensions"}},[t._v("beforeSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1315",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1315"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeticktolabelconversion"}},[t._v("#")]),t._v(" beforeTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-42"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforeticktolabelconversion"}},[t._v("beforeTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1324",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1324"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-43"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#beforeupdate"}},[t._v("beforeUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1312",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1312"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildticks"}},[t._v("#")]),t._v(" buildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-44"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#buildticks"}},[t._v("buildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1322",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1322"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatelabelrotation"}},[t._v("#")]),t._v(" calculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-45"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#calculatelabelrotation"}},[t._v("calculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1328",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1328"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-46"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#configure"}},[t._v("configure")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1313",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1313"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"determinedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#determinedatalimits"}},[t._v("#")]),t._v(" determineDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("determineDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-47"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#determinedatalimits"}},[t._v("determineDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1319",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1319"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Draws the element")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-48"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L50",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:50"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawgrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawgrid"}},[t._v("#")]),t._v(" drawGrid")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawGrid")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-49"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawgrid"}},[t._v("drawGrid")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1248",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1248"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawlabels"}},[t._v("#")]),t._v(" drawLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawLabels")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-50"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawlabels"}},[t._v("drawLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1247",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1247"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawtitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawtitle"}},[t._v("#")]),t._v(" drawTitle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawTitle")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-51"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#drawtitle"}},[t._v("drawTitle")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1246",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1246"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fit"}},[t._v("#")]),t._v(" fit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("fit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-52"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#fit"}},[t._v("fit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-52"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1331",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1331"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"generateticklabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#generateticklabels"}},[t._v("#")]),t._v(" generateTickLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("generateTickLabels")]),t._v("("),a("code",[t._v("ticks")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ticks")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-53"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#generateticklabels"}},[t._v("generateTickLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-53"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1325",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1325"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasepixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasepixel"}},[t._v("#")]),t._v(" getBasePixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBasePixel")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the pixel for the minimum chart value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-54"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getbasepixel"}},[t._v("getBasePixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-54"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1304",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1304"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasevalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasevalue"}},[t._v("#")]),t._v(" getBaseValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBaseValue")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-55"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getbasevalue"}},[t._v("getBaseValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-55"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1298",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1298"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdatatimestamps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdatatimestamps"}},[t._v("#")]),t._v(" getDataTimestamps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDataTimestamps")]),t._v("(): "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-56"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3312",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3312"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdecimalforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdecimalforpixel"}},[t._v("#")]),t._v(" getDecimalForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDecimalForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-56"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getdecimalforpixel"}},[t._v("getDecimalForPixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-57"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1254",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1254"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelforvalue"}},[t._v("#")]),t._v(" getLabelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabelForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Used to get the label to display in the tooltip for the given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-57"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlabelforvalue"}},[t._v("getLabelForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-58"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1274"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabeltimestamps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabeltimestamps"}},[t._v("#")]),t._v(" getLabelTimestamps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabelTimestamps")]),t._v("(): "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-59"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3313",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3313"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabels"}},[t._v("#")]),t._v(" getLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabels")]),t._v("(): "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-58"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlabels"}},[t._v("getLabels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-60"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1311",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1311"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlinewidthforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlinewidthforvalue"}},[t._v("#")]),t._v(" getLineWidthForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLineWidthForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the grid line width at given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-59"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlinewidthforvalue"}},[t._v("getLineWidthForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-61"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1279",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1279"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmatchingvisiblemetas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmatchingvisiblemetas"}},[t._v("#")]),t._v(" getMatchingVisibleMetas")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMatchingVisibleMetas")]),t._v("("),a("code",[t._v("type?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-60"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getmatchingvisiblemetas"}},[t._v("getMatchingVisibleMetas")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-62"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1244",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1244"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("canStack")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-61"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getminmax"}},[t._v("getMinMax")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-63"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1309",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1309"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpadding"}},[t._v("#")]),t._v(" getPadding")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getPadding")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Returns an object with padding on the edges")]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-62"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpadding"}},[t._v("getPadding")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-64"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L54",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:54"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfordecimal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfordecimal"}},[t._v("#")]),t._v(" getPixelForDecimal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForDecimal")]),t._v("("),a("code",[t._v("decimal")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Utility for getting the pixel location of a percentage of scale\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("decimal")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-63"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelfordecimal"}},[t._v("getPixelForDecimal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-65"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1261",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1261"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfortick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfortick"}},[t._v("#")]),t._v(" getPixelForTick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForTick")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the tick at the given index\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-64"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelfortick"}},[t._v("getPixelForTick")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-66"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1268",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1268"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelforvalue"}},[t._v("#")]),t._v(" getPixelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForValue")]),t._v("("),a("code",[t._v("value")]),t._v(", "),a("code",[t._v("index?")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the given data point. Value can either be an index or a numerical value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-65"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelforvalue"}},[t._v("getPixelForValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-67"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1288",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1288"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("code",[t._v("never")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-66"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getprops"}},[t._v("getProps")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-68"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getticks"}},[t._v("#")]),t._v(" getTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-67"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getticks"}},[t._v("getTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-69"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1310",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1310"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getuserbounds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getuserbounds"}},[t._v("#")]),t._v(" getUserBounds")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getUserBounds")]),t._v("(): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("maxDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("minDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-68"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getuserbounds"}},[t._v("getUserBounds")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-70"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1308",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1308"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getvalueforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getvalueforpixel"}},[t._v("#")]),t._v(" getValueForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getValueForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Used to get the data value from a given pixel. This is the inverse of getPixelForValue\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-69"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getvalueforpixel"}},[t._v("getValueForPixel")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-71"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1296",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1296"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-70"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#hasvalue"}},[t._v("hasValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-72"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"init"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init"}},[t._v("#")]),t._v(" init")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("init")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-71"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#init"}},[t._v("init")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-73"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1306",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1306"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isfullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfullsize"}},[t._v("#")]),t._v(" isFullSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isFullSize")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-72"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#isfullsize"}},[t._v("isFullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-74"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1334",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1334"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ishorizontal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ishorizontal"}},[t._v("#")]),t._v(" isHorizontal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isHorizontal")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("returns true if the layout item is horizontal (ie. top or bottom)")]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-73"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#ishorizontal"}},[t._v("isHorizontal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-75"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"normalize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#normalize"}},[t._v("#")]),t._v(" normalize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("normalize")]),t._v("("),a("code",[t._v("values")]),t._v("): "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-76"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3314",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3314"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("raw")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("raw")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-74"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#parse"}},[t._v("parse")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-77"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1307",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1307"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setdimensions"}},[t._v("#")]),t._v(" setDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-75"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#setdimensions"}},[t._v("setDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-78"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1316",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1316"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-76"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#tooltipposition"}},[t._v("tooltipPosition")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-79"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("width")]),t._v(", "),a("code",[t._v("height")]),t._v(", "),a("code",[t._v("margins?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Takes two parameters: width and height.")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("margins?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-77"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/Scale.html#update"}},[t._v("update")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-80"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L64",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:64"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/116.6b780970.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/116.6b780970.js new file mode 100644 index 0000000..a4364bb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/116.6b780970.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{447:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-titleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-titleoptions"}},[t._v("#")]),t._v(" Interface: TitleOptions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"align"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#align"}},[t._v("#")]),t._v(" align")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("align")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#align"}},[a("code",[t._v("Align")])])],1),t._v(" "),a("p",[t._v("Alignment of the title.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'center'")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2410",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2410"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"color"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" color")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("p",[t._v("Color of text")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2425",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2425"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"display"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Is the title shown?")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2415",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2415"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"font"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#font"}},[t._v("#")]),t._v(" font")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("font")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableChartContext.html"}},[a("code",[t._v("ScriptableChartContext")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2426",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2426"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Marks that this box should take the full width/height of the canvas (moving other boxes). If set to "),a("code",[t._v("false")]),t._v(", places the box above/beside the\nchart area")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2433",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2433"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"padding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#padding"}},[t._v("#")]),t._v(" padding")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("padding")]),t._v(": "),a("code",[t._v("number")]),t._v(" | { "),a("code",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("top")]),t._v(": "),a("code",[t._v("number")]),t._v(" }")]),t._v(" "),a("p",[t._v("Adds padding above and below the title text if a single number is specified. It is also possible to change top and bottom padding separately.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2437",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2437"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("code",[t._v('"left"')]),t._v(" | "),a("code",[t._v('"right"')]),t._v(" | "),a("code",[t._v('"bottom"')]),t._v(" | "),a("code",[t._v('"top"')])]),t._v(" "),a("p",[t._v("Position of title")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'top'")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2420",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2420"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"text"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#text"}},[t._v("#")]),t._v(" text")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("text")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("p",[t._v("Title text to display. If specified as an array, text is rendered on multiple lines.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2441",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2441"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/117.79604442.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/117.79604442.js new file mode 100644 index 0000000..dc568cb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/117.79604442.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{448:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltip"}},[t._v("#")]),t._v(" Interface: Tooltip")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("Tooltip")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#id"}},[t._v("id")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L808",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:808"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"positioners"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#positioners"}},[t._v("#")]),t._v(" positioners")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("positioners")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPositionerMap.html"}},[a("code",[t._v("TooltipPositionerMap")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2549",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2549"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterBuildTicks")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after scale has build its ticks. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterbuildticks"}},[t._v("afterBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L967",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:967"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDataLimits")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after scale data limits are calculated. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdatalimits"}},[t._v("afterDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L951",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:951"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetdraw"}},[t._v("#")]),t._v(" afterDatasetDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets at the given "),a("code",[t._v("args.index")]),t._v(" have been drawn\n(datasets are drawn in the reverse order). Note that this hook will not be called\nif the datasets drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdatasetdraw"}},[t._v("afterDatasetDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1049",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1049"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetupdate"}},[t._v("#")]),t._v(" afterDatasetUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets at the given "),a("code",[t._v("args.index")]),t._v(" has been updated. Note\nthat this hook will not be called if the datasets update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdatasetupdate"}},[t._v("afterDatasetUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L926",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:926"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetsdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetsdraw"}},[t._v("#")]),t._v(" afterDatasetsDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetsDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v(", "),a("code",[t._v("cancelable")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets have been drawn. Note that this hook\nwill not be called if the datasets drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdatasetsdraw"}},[t._v("afterDatasetsDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1026",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1026"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetsupdate"}},[t._v("#")]),t._v(" afterDatasetsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets have been updated. Note that this hook\nwill not be called if the datasets update has been previously cancelled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 2.1.5")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdatasetsupdate"}},[t._v("afterDatasetsUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L903",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:903"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdestroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdestroy"}},[t._v("#")]),t._v(" afterDestroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDestroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after the chart has been destroyed.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdestroy"}},[t._v("afterDestroy")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1102",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1102"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdraw"}},[t._v("#")]),t._v(" afterDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been drawn. Note that this hook will not be called\nif the drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterdraw"}},[t._v("afterDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1009",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1009"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterevent"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterevent"}},[t._v("#")]),t._v(" afterEvent")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterEvent")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("event")]),t._v(" has been consumed. Note that this hook\nwill not be called if the "),a("code",[t._v("event")]),t._v(" has been previously discarded.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.changed?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event object.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.inChartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event position is inside chartArea")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.replay")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("True if this event is replayed from "),a("code",[t._v("Chart.update")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterevent"}},[t._v("afterEvent")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1072",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1072"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterinit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterinit"}},[t._v("#")]),t._v(" afterInit")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterInit")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after "),a("code",[t._v("chart")]),t._v(" has been initialized and before the first update.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterinit"}},[t._v("afterInit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L847",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:847"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterlayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterlayout"}},[t._v("#")]),t._v(" afterLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterLayout")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been laid out. Note that this hook will not\nbe called if the layout update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterlayout"}},[t._v("afterLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L975",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:975"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterrender"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterrender"}},[t._v("#")]),t._v(" afterRender")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterRender")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been fully rendered (and animation completed). Note\nthat this hook will not be called if the rendering has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterrender"}},[t._v("afterRender")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L992",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:992"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftertooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftertooltipdraw"}},[t._v("#")]),t._v(" afterTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after drawing the "),a("code",[t._v("tooltip")]),t._v(". Note that this hook will not\nbe called if the tooltip drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#aftertooltipdraw"}},[t._v("afterTooltipDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after "),a("code",[t._v("chart")]),t._v(" has been updated and before rendering. Note that this\nhook will not be called if the chart update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#afterupdate"}},[t._v("afterUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L866",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:866"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeBuildTicks")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before scale builds its ticks. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforebuildticks"}},[t._v("beforeBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L959",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:959"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDataLimits")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before scale data limits are calculated. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedatalimits"}},[t._v("beforeDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L943",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:943"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetdraw"}},[t._v("#")]),t._v(" beforeDatasetDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("chart")]),t._v(" dataset at the given "),a("code",[t._v("args.index")]),t._v(" (datasets\nare drawn in the reverse order). If any plugin returns "),a("code",[t._v("false")]),t._v(", the datasets drawing\nis cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedatasetdraw"}},[t._v("beforeDatasetDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1038",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1038"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetupdate"}},[t._v("#")]),t._v(" beforeDatasetUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating the "),a("code",[t._v("chart")]),t._v(" dataset at the given "),a("code",[t._v("args.index")]),t._v(". If any plugin\nreturns "),a("code",[t._v("false")]),t._v(", the datasets update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedatasetupdate"}},[t._v("beforeDatasetUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L915",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:915"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetsdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetsdraw"}},[t._v("#")]),t._v(" beforeDatasetsDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetsDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("chart")]),t._v(" datasets. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe datasets drawing is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedatasetsdraw"}},[t._v("beforeDatasetsDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1018",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1018"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetsupdate"}},[t._v("#")]),t._v(" beforeDatasetsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating the "),a("code",[t._v("chart")]),t._v(" datasets. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe datasets update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 2.1.5")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("false to cancel the datasets update.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedatasetsupdate"}},[t._v("beforeDatasetsUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L893",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:893"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedestroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedestroy"}},[t._v("#")]),t._v(" beforeDestroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDestroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the chart is being destroyed.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedestroy"}},[t._v("beforeDestroy")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1087",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1087"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedraw"}},[t._v("#")]),t._v(" beforeDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing "),a("code",[t._v("chart")]),t._v(" at every animation frame. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe frame drawing is cancelled untilanother "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforedraw"}},[t._v("beforeDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1001",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1001"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeelementsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeelementsupdate"}},[t._v("#")]),t._v(" beforeElementsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeElementsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called during the update process, before any chart elements have been created.\nThis can be used for data decimation by changing the data array inside a dataset.")]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforeelementsupdate"}},[t._v("beforeElementsUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L874",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:874"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeevent"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeevent"}},[t._v("#")]),t._v(" beforeEvent")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeEvent")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before processing the specified "),a("code",[t._v("event")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe event will be discarded.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event object.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.inChartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event position is inside chartArea")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.replay")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("True if this event is replayed from "),a("code",[t._v("Chart.update")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforeevent"}},[t._v("beforeEvent")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1060",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1060"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeinit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeinit"}},[t._v("#")]),t._v(" beforeInit")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeInit")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before initializing "),a("code",[t._v("chart")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforeinit"}},[t._v("beforeInit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L840",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:840"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before laying out "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe layout update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart layout.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforelayout"}},[t._v("beforeLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L935",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:935"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforerender"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforerender"}},[t._v("#")]),t._v(" beforeRender")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeRender")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before rendering "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe rendering is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart rendering.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforerender"}},[t._v("beforeRender")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L984",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:984"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforetooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforetooltipdraw"}},[t._v("#")]),t._v(" beforeTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("tooltip")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe tooltip drawing is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart tooltip drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforetooltipdraw"}},[t._v("beforeTooltipDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2592"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(", the update\nis cancelled (and thus subsequent render(s)) until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart update.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#beforeupdate"}},[t._v("beforeUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L857",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:857"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"destroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#destroy"}},[t._v("#")]),t._v(" destroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("destroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after the chart has been destroyed.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("deprecated")])]),t._v(" since version 3.7.0 in favour of afterDestroy")]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#destroy"}},[t._v("destroy")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1095",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1095"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"install"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[t._v("#")]),t._v(" install")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("install")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#install"}},[t._v("install")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L817",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:817"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("reset")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called during chart reset")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#reset"}},[t._v("reset")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L882",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:882"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resize"}},[t._v("#")]),t._v(" resize")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("resize")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the chart as been resized.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The new canvas display size (eq. canvas.style width & height).")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size.height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size.width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#resize"}},[t._v("resize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1080",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1080"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"start"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start"}},[t._v("#")]),t._v(" start")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("start")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when a plugin is starting. This happens when chart is created or plugin is enabled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#start"}},[t._v("start")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L825",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:825"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("stop")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#stop"}},[t._v("stop")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L833",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:833"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"uninstall"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uninstall"}},[t._v("#")]),t._v(" uninstall")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("uninstall")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html#uninstall"}},[t._v("uninstall")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1110",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1110"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/118.7752bc89.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/118.7752bc89.js new file mode 100644 index 0000000..aa3c89a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/118.7752bc89.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{591:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tooltipcallbacks-ttype-model-item"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltipcallbacks-ttype-model-item"}},[t._v("#")]),t._v(" Interface: TooltipCallbacks")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Model")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[a("code",[t._v("TooltipItem")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbody"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbody"}},[t._v("#")]),t._v(" afterBody")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBody")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2564",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2564"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfooter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfooter"}},[t._v("#")]),t._v(" afterFooter")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFooter")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2576",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2576"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterlabel"}},[t._v("#")]),t._v(" afterLabel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterLabel")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2568",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2568"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftertitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftertitle"}},[t._v("#")]),t._v(" afterTitle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTitle")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2561",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2561"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebody"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebody"}},[t._v("#")]),t._v(" beforeBody")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBody")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2563",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2563"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefooter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefooter"}},[t._v("#")]),t._v(" beforeFooter")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFooter")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2574",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2574"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelabel"}},[t._v("#")]),t._v(" beforeLabel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeLabel")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2566",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2566"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforetitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforetitle"}},[t._v("#")]),t._v(" beforeTitle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTitle")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2559",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2559"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"footer"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#footer"}},[t._v("#")]),t._v(" footer")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("footer")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2575",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2575"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"label"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("label")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2567",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2567"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelcolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelcolor"}},[t._v("#")]),t._v(" labelColor")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("labelColor")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipLabelStyle.html"}},[a("code",[t._v("TooltipLabelStyle")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipLabelStyle.html"}},[a("code",[t._v("TooltipLabelStyle")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2570",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2570"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelpointstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelpointstyle"}},[t._v("#")]),t._v(" labelPointStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("labelPointStyle")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#pointstyle"}},[a("code",[t._v("PointStyle")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("rotation")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2572",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2572"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labeltextcolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labeltextcolor"}},[t._v("#")]),t._v(" labelTextColor")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("labelTextColor")]),t._v("("),a("code",[t._v("tooltipItem")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2571",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2571"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("title")]),t._v("("),a("code",[t._v("tooltipItems")]),t._v("): "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("tooltipItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Item")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2560",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2560"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/119.d8e76ef0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/119.d8e76ef0.js new file mode 100644 index 0000000..222a165 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/119.d8e76ef0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{449:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tooltipitem-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltipitem-ttype"}},[t._v("#")]),t._v(" Interface: TooltipItem")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("p",[t._v("The chart the tooltip is being shown on")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2793",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2793"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"dataindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataindex"}},[t._v("#")]),t._v(" dataIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("dataIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Index of this data item in the dataset")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2828",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2828"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"dataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset"}},[t._v("#")]),t._v(" dataset")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("dataset")]),t._v(": "),a("code",[t._v("UnionToIntersection")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>>>")],1),t._v(" "),a("p",[t._v("The dataset the item comes from")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2818",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2818"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datasetindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[t._v("#")]),t._v(" datasetIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Index of the dataset the item comes from")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2823",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2823"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"element"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#element"}},[t._v("#")]),t._v(" element")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("element")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1),t._v(" "),a("p",[t._v("The chart element (point, arc, bar, etc.) for this tooltip item")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2833",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2833"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"formattedvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#formattedvalue"}},[t._v("#")]),t._v(" formattedValue")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("formattedValue")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Formatted value for the tooltip")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2813",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2813"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"label"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("label")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Label for the tooltip")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2798",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2798"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsed"}},[t._v("#")]),t._v(" parsed")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsed")]),t._v(": "),a("code",[t._v("UnionToIntersection")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#parseddatatype"}},[a("code",[t._v("ParsedDataType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("p",[t._v("Parsed data values for the given "),a("code",[t._v("dataIndex")]),t._v(" and "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2803",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2803"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"raw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#raw"}},[t._v("#")]),t._v(" raw")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("raw")]),t._v(": "),a("code",[t._v("unknown")])]),t._v(" "),a("p",[t._v("Raw data values for the given "),a("code",[t._v("dataIndex")]),t._v(" and "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2808",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2808"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/12.433f0c7e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/12.433f0c7e.js new file mode 100644 index 0000000..532caa5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/12.433f0c7e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{343:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-animator"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-animator"}},[t._v("#")]),t._v(" Class: Animator")]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new Animator")]),t._v("()")]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"add"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add"}},[t._v("#")]),t._v(" add")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("add")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("items")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("items")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("readonly "),a("RouterLink",{attrs:{to:"/api/classes/Animation.html"}},[a("code",[t._v("Animation")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"has"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#has"}},[t._v("#")]),t._v(" has")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("has")]),t._v("("),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L22",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:22"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"listen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#listen"}},[t._v("#")]),t._v(" listen")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("listen")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("event")]),t._v(", "),a("code",[t._v("cb")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"progress"')]),t._v(" | "),a("code",[t._v('"complete"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cb")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L20",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:20"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"remove"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remove"}},[t._v("#")]),t._v(" remove")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("remove")]),t._v("("),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L26",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:26"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"running"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#running"}},[t._v("#")]),t._v(" running")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("running")]),t._v("("),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L24",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:24"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"start"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start"}},[t._v("#")]),t._v(" start")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("start")]),t._v("("),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L23",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:23"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("stop")]),t._v("("),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:25"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/120.ed76595e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/120.ed76595e.js new file mode 100644 index 0000000..b833a37 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/120.ed76595e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{575:function(e,r,t){"use strict";t.r(r);var a=t(6),s=Object(a.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"interface-tooltiplabelstyle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltiplabelstyle"}},[e._v("#")]),e._v(" Interface: TooltipLabelStyle")]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("h3",{attrs:{id:"backgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[e._v("#")]),e._v(" backgroundColor")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("backgroundColor")]),e._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[e._v("Color")])])],1),e._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2448",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2448"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"bordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[e._v("#")]),e._v(" borderColor")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderColor")]),e._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[e._v("Color")])])],1),e._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2447",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2447"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderdash"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderdash"}},[e._v("#")]),e._v(" borderDash")]),e._v(" "),t("p",[e._v("• "),t("code",[e._v("Optional")]),e._v(" "),t("strong",[e._v("borderDash")]),e._v(": ["),t("code",[e._v("number")]),e._v(", "),t("code",[e._v("number")]),e._v("]")]),e._v(" "),t("p",[e._v("Border dash")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("since")])]),e._v(" 3.1.0")]),e._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2460",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2460"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderdashoffset"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderdashoffset"}},[e._v("#")]),e._v(" borderDashOffset")]),e._v(" "),t("p",[e._v("• "),t("code",[e._v("Optional")]),e._v(" "),t("strong",[e._v("borderDashOffset")]),e._v(": "),t("code",[e._v("number")])]),e._v(" "),t("p",[e._v("Border dash offset")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("since")])]),e._v(" 3.1.0")]),e._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2466",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2466"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderradius"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[e._v("#")]),e._v(" borderRadius")]),e._v(" "),t("p",[e._v("• "),t("code",[e._v("Optional")]),e._v(" "),t("strong",[e._v("borderRadius")]),e._v(": "),t("code",[e._v("number")]),e._v(" | "),t("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[t("code",[e._v("BorderRadius")])])],1),e._v(" "),t("p",[e._v("borderRadius")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("since")])]),e._v(" 3.1.0")]),e._v(" "),t("h4",{attrs:{id:"defined-in-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2472",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2472"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[e._v("#")]),e._v(" borderWidth")]),e._v(" "),t("p",[e._v("• "),t("code",[e._v("Optional")]),e._v(" "),t("strong",[e._v("borderWidth")]),e._v(": "),t("code",[e._v("number")])]),e._v(" "),t("p",[e._v("Width of border line")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("since")])]),e._v(" 3.1.0")]),e._v(" "),t("h4",{attrs:{id:"defined-in-6"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2454",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2454"),t("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/121.cc3d56f2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/121.cc3d56f2.js new file mode 100644 index 0000000..90a6718 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/121.cc3d56f2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{451:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-tooltipmodel-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltipmodel-ttype"}},[t._v("#")]),t._v(" Interface: TooltipModel")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipOptions.html"}},[a("code",[t._v("TooltipOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("TooltipModel")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterbody"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbody"}},[t._v("#")]),t._v(" afterBody")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("afterBody")]),t._v(": "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2503",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2503"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebody"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebody"}},[t._v("#")]),t._v(" beforeBody")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("beforeBody")]),t._v(": "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2501",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2501"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"body"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#body"}},[t._v("#")]),t._v(" body")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("body")]),t._v(": { "),a("code",[t._v("after")]),t._v(": "),a("code",[t._v("string")]),t._v("[] ; "),a("code",[t._v("before")]),t._v(": "),a("code",[t._v("string")]),t._v("[] ; "),a("code",[t._v("lines")]),t._v(": "),a("code",[t._v("string")]),t._v("[] }[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2499",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2499"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"caretx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#caretx"}},[t._v("#")]),t._v(" caretX")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("caretX")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2490",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2490"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"carety"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#carety"}},[t._v("#")]),t._v(" caretY")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("caretY")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2491",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2491"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>, "),a("code",[t._v("unknown")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2475",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2475"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datapoints"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datapoints"}},[t._v("#")]),t._v(" dataPoints")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("dataPoints")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[a("code",[t._v("TooltipItem")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2478",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2478"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"footer"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#footer"}},[t._v("#")]),t._v(" footer")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("footer")]),t._v(": "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2511",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2511"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2488",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2488"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelcolors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelcolors"}},[t._v("#")]),t._v(" labelColors")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelColors")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipLabelStyle.html"}},[a("code",[t._v("TooltipLabelStyle")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2514",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2514"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelpointstyles"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelpointstyles"}},[t._v("#")]),t._v(" labelPointStyles")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelPointStyles")]),t._v(": { "),a("code",[t._v("pointStyle")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#pointstyle"}},[a("code",[t._v("PointStyle")])]),t._v(" ; "),a("code",[t._v("rotation")]),t._v(": "),a("code",[t._v("number")]),t._v(" }[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2516",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2516"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labeltextcolors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labeltextcolors"}},[t._v("#")]),t._v(" labelTextColors")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelTextColors")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2515",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2515"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"opacity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#opacity"}},[t._v("#")]),t._v(" opacity")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("opacity")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2519",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2519"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("options")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipOptions.html"}},[a("code",[t._v("TooltipOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"overrides"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2522",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2522"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("title")]),t._v(": "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2507",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2507"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2487",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2487"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"overrides-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides-2"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2485",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2485"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"xalign"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#xalign"}},[t._v("#")]),t._v(" xAlign")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("xAlign")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#tooltipxalignment"}},[a("code",[t._v("TooltipXAlignment")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2481",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2481"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"overrides-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides-3"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2486",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2486"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"yalign"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#yalign"}},[t._v("#")]),t._v(" yAlign")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("yAlign")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#tooltipyalignment"}},[a("code",[t._v("TooltipYAlignment")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2482",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2482"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"getactiveelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getactiveelements"}},[t._v("#")]),t._v(" getActiveElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getActiveElements")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2524",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2524"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("code",[t._v("string")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setactiveelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setactiveelements"}},[t._v("#")]),t._v(" setActiveElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setActiveElements")]),t._v("("),a("code",[t._v("active")]),t._v(", "),a("code",[t._v("eventPosition")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("active")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[a("code",[t._v("ActiveDataPoint")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("eventPosition")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2525",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2525"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/122.c8651871.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/122.c8651871.js new file mode 100644 index 0000000..70a1967 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/122.c8651871.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{450:function(t,e,r){"use strict";r.r(e);var a=r(6),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-tooltipoptions-ttype"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltipoptions-ttype"}},[t._v("#")]),t._v(" Interface: TooltipOptions")]),t._v(" "),r("h2",{attrs:{id:"type-parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("TType")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),r("RouterLink",{attrs:{to:"/api/#charttype"}},[r("code",[t._v("ChartType")])]),t._v(" = "),r("RouterLink",{attrs:{to:"/api/#charttype"}},[r("code",[t._v("ChartType")])])],1)])])]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[r("code",[t._v("CoreInteractionOptions")])])],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("TooltipOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2784",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2784"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2785",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2785"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"axis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[t._v("#")]),t._v(" axis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("axis")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#interactionaxis"}},[r("code",[t._v("InteractionAxis")])])],1),t._v(" "),r("p",[t._v("Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[t._v("CoreInteractionOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html#axis"}},[t._v("axis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1439",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1439"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Background color of the tooltip.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'rgba(0, 0, 0, 0.8)'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2642",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2642"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bodyalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bodyalign"}},[t._v("#")]),t._v(" bodyAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bodyAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#textalign"}},[r("code",[t._v("TextAlign")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Horizontal alignment of the body text lines.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'left'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2692",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2692"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bodycolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bodycolor"}},[t._v("#")]),t._v(" bodyColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bodyColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Color of body")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" '#fff'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2682",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2682"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bodyfont"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bodyfont"}},[t._v("#")]),t._v(" bodyFont")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bodyFont")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[r("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),r("code",[t._v("Partial")]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[r("code",[t._v("FontSpec")])]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("See Fonts.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" {}")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2687"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bodyspacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bodyspacing"}},[t._v("#")]),t._v(" bodySpacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bodySpacing")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Spacing to add to top and bottom of each tooltip item.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2677",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2677"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Color of the border.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'rgba(0, 0, 0, 0)'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2767",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2767"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Size of the border.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2772",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2772"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"boxheight"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#boxheight"}},[t._v("#")]),t._v(" boxHeight")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("boxHeight")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Height of the color box if displayColors is true.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" bodyFont.size")]),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2757",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2757"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"boxpadding"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#boxpadding"}},[t._v("#")]),t._v(" boxPadding")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("boxPadding")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Padding between the color box and the text.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2647",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2647"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"boxwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#boxwidth"}},[t._v("#")]),t._v(" boxWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("boxWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Width of the color box if displayColors is true.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" bodyFont.size")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2752",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2752"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"callbacks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#callbacks"}},[t._v("#")]),t._v(" callbacks")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("callbacks")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/TooltipCallbacks.html"}},[r("code",[t._v("TooltipCallbacks")])]),t._v("<"),r("code",[t._v("TType")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[r("code",[t._v("TooltipModel")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[r("code",[t._v("TooltipItem")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2786",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2786"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"caretpadding"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#caretpadding"}},[t._v("#")]),t._v(" caretPadding")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("caretPadding")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Extra distance to move the end of the tooltip arrow away from the tooltip point.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2727",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2727"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"caretsize"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#caretsize"}},[t._v("#")]),t._v(" caretSize")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("caretSize")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Size, in px, of the tooltip arrow.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 5")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2732",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2732"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"cornerradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cornerradius"}},[t._v("#")]),t._v(" cornerRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("cornerRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[r("code",[t._v("BorderRadius")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Radius of tooltip corner curves.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 6")]),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2737",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2737"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"displaycolors"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#displaycolors"}},[t._v("#")]),t._v(" displayColors")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("displayColors")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("If true, color boxes are shown in the tooltip.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2747",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2747"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"enabled"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#enabled"}},[t._v("#")]),t._v(" enabled")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("enabled")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Are on-canvas tooltips enabled?")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2615",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2615"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"footeralign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#footeralign"}},[t._v("#")]),t._v(" footerAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("footerAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#textalign"}},[r("code",[t._v("TextAlign")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Horizontal alignment of the footer text lines.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'left'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2717",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2717"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"footercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#footercolor"}},[t._v("#")]),t._v(" footerColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("footerColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Color of footer")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" '#fff'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2707",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2707"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"footerfont"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#footerfont"}},[t._v("#")]),t._v(" footerFont")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("footerFont")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[r("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),r("code",[t._v("Partial")]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[r("code",[t._v("FontSpec")])]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("See Fonts")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" {weight: 'bold'}")]),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2712",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2712"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"footermargintop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#footermargintop"}},[t._v("#")]),t._v(" footerMarginTop")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("footerMarginTop")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Margin to add before drawing the footer.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 6")]),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"footerspacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#footerspacing"}},[t._v("#")]),t._v(" footerSpacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("footerSpacing")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Spacing to add to top and bottom of each footer line.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2697",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2697"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"includeinvisible"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#includeinvisible"}},[t._v("#")]),t._v(" includeInvisible")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("includeInvisible")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[t._v("CoreInteractionOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html#includeinvisible"}},[t._v("includeInvisible")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1445",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1445"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"intersect"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#intersect"}},[t._v("#")]),t._v(" intersect")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("intersect")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("if true, the hover mode only applies when the mouse position intersects an item on the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[t._v("CoreInteractionOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html#intersect"}},[t._v("intersect")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1434",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1434"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"mode"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#mode"}},[t._v("#")]),t._v(" mode")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("mode")]),t._v(": keyof "),r("RouterLink",{attrs:{to:"/api/interfaces/InteractionModeMap.html"}},[r("code",[t._v("InteractionModeMap")])])],1),t._v(" "),r("p",[t._v("Sets which elements appear in the tooltip. See Interaction Modes for details.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'nearest'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[t._v("CoreInteractionOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html#mode"}},[t._v("mode")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1429",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1429"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"multikeybackground"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#multikeybackground"}},[t._v("#")]),t._v(" multiKeyBackground")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("multiKeyBackground")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Color to draw behind the colored boxes when multiple items are in the tooltip.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" '#fff'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2742",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2742"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"padding"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#padding"}},[t._v("#")]),t._v(" padding")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("padding")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Padding to add to the tooltip")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 6")]),t._v(" "),r("h4",{attrs:{id:"defined-in-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2722",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2722"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"position"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("position")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v(">")],1),t._v(" "),r("p",[t._v("The mode for positioning the tooltip")]),t._v(" "),r("h4",{attrs:{id:"defined-in-30"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2623",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2623"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rtl"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rtl"}},[t._v("#")]),t._v(" rtl")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rtl")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("true for rendering the legends from right to left.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-31"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2776",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2776"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"textdirection"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#textdirection"}},[t._v("#")]),t._v(" textDirection")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("textDirection")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("string")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("This will force the text direction 'rtl' or 'ltr on the canvas for rendering the tooltips, regardless of the css specified on the canvas")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" canvas's default")]),t._v(" "),r("h4",{attrs:{id:"defined-in-32"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2782",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2782"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"titlealign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#titlealign"}},[t._v("#")]),t._v(" titleAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("titleAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#textalign"}},[r("code",[t._v("TextAlign")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Horizontal alignment of the title text lines.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'left'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-33"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2672",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2672"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"titlecolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#titlecolor"}},[t._v("#")]),t._v(" titleColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("titleColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Color of title")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" '#fff'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-34"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2652",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2652"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"titlefont"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#titlefont"}},[t._v("#")]),t._v(" titleFont")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("titleFont")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[r("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),r("code",[t._v("Partial")]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[r("code",[t._v("FontSpec")])]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("See Fonts")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" {weight: 'bold'}")]),t._v(" "),r("h4",{attrs:{id:"defined-in-35"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2657",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2657"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"titlemarginbottom"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#titlemarginbottom"}},[t._v("#")]),t._v(" titleMarginBottom")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("titleMarginBottom")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Margin to add on bottom of title section.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 6")]),t._v(" "),r("h4",{attrs:{id:"defined-in-36"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2667",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2667"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"titlespacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#titlespacing"}},[t._v("#")]),t._v(" titleSpacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("titleSpacing")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Spacing to add to top and bottom of each title line.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),r("h4",{attrs:{id:"defined-in-37"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2662",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2662"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"usepointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#usepointstyle"}},[t._v("#")]),t._v(" usePointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("usePointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight)")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"defined-in-38"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2762",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2762"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"xalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xalign"}},[t._v("#")]),t._v(" xAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("xAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#tooltipxalignment"}},[r("code",[t._v("TooltipXAlignment")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("p",[t._v("Override the tooltip alignment calculations")]),t._v(" "),r("h4",{attrs:{id:"defined-in-39"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2628",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2628"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"yalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#yalign"}},[t._v("#")]),t._v(" yAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("yAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#tooltipyalignment"}},[r("code",[t._v("TooltipYAlignment")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[r("code",[t._v("ScriptableTooltipContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-40"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2629",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2629"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"methods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),r("h3",{attrs:{id:"external"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#external"}},[t._v("#")]),t._v(" external")]),t._v(" "),r("p",[t._v("▸ "),r("strong",[t._v("external")]),t._v("("),r("code",[t._v("args")]),t._v("): "),r("code",[t._v("void")])]),t._v(" "),r("p",[t._v("See external tooltip section.")]),t._v(" "),r("h4",{attrs:{id:"parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("args")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("Object")])])]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("args.chart")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[r("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("args.tooltip")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[r("code",[t._v("TooltipModel")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),r("h4",{attrs:{id:"returns"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-41"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2619",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2619"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"filter"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#filter"}},[t._v("#")]),t._v(" filter")]),t._v(" "),r("p",[t._v("▸ "),r("strong",[t._v("filter")]),t._v("("),r("code",[t._v("e")]),t._v(", "),r("code",[t._v("index")]),t._v(", "),r("code",[t._v("array")]),t._v(", "),r("code",[t._v("data")]),t._v("): "),r("code",[t._v("boolean")])]),t._v(" "),r("h4",{attrs:{id:"parameters-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("e")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[r("code",[t._v("TooltipItem")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("index")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("number")])])]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("array")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[r("code",[t._v("TooltipItem")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">[]")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("data")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[r("code",[t._v("ChartData")])]),t._v("")],1)])])]),t._v(" "),r("h4",{attrs:{id:"returns-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("boolean")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-42"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2636",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2636"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"itemsort"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#itemsort"}},[t._v("#")]),t._v(" itemSort")]),t._v(" "),r("p",[t._v("▸ "),r("strong",[t._v("itemSort")]),t._v("("),r("code",[t._v("a")]),t._v(", "),r("code",[t._v("b")]),t._v(", "),r("code",[t._v("data")]),t._v("): "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Sort tooltip items.")]),t._v(" "),r("h4",{attrs:{id:"parameters-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("a")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[r("code",[t._v("TooltipItem")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("b")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[r("code",[t._v("TooltipItem")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("data")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[r("code",[t._v("ChartData")])]),t._v("")],1)])])]),t._v(" "),r("h4",{attrs:{id:"returns-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-43"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2634",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2634"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/123.f7d5f223.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/123.f7d5f223.js new file mode 100644 index 0000000..471fc21 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/123.f7d5f223.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{452:function(t,e,r){"use strict";r.r(e);var a=r(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-tooltipposition"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltipposition"}},[t._v("#")]),t._v(" Interface: TooltipPosition")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("x")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2529",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2529"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"xalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xalign"}},[t._v("#")]),t._v(" xAlign")]),t._v(" "),r("p",[t._v("• "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("xAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#tooltipxalignment"}},[r("code",[t._v("TooltipXAlignment")])])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2531",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2531"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("y")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2530",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2530"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"yalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#yalign"}},[t._v("#")]),t._v(" yAlign")]),t._v(" "),r("p",[t._v("• "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("yAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#tooltipyalignment"}},[r("code",[t._v("TooltipYAlignment")])])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2532",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2532"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/124.88ce07a4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/124.88ce07a4.js new file mode 100644 index 0000000..de53027 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/124.88ce07a4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{453:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-tooltippositionermap"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-tooltippositionermap"}},[t._v("#")]),t._v(" Interface: TooltipPositionerMap")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"average"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#average"}},[t._v("#")]),t._v(" average")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("average")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#tooltippositionerfunction"}},[r("code",[t._v("TooltipPositionerFunction")])]),t._v("")],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2542",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2542"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"nearest"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#nearest"}},[t._v("#")]),t._v(" nearest")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("nearest")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#tooltippositionerfunction"}},[r("code",[t._v("TooltipPositionerFunction")])]),t._v("")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2543",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2543"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/125.a9572036.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/125.a9572036.js new file mode 100644 index 0000000..a6a8ee3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/125.a9572036.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{454:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-typedregistry-t"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-typedregistry-t"}},[t._v("#")]),t._v(" Interface: TypedRegistry")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])])])]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" get")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("get")]),t._v("("),a("code",[t._v("id")]),t._v("): "),a("code",[t._v("T")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("T")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1389",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1389"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"Registro"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#Registro"}},[t._v("#")]),t._v(" Registro")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("Registro")]),t._v("("),a("code",[t._v("item")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("item")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("The scope where items defaults were Registroed to.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1388",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1388"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"unRegistro"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unRegistro"}},[t._v("#")]),t._v(" unRegistro")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("unRegistro")]),t._v("("),a("code",[t._v("item")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("item")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1390",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1390"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/126.879447b3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/126.879447b3.js new file mode 100644 index 0000000..ea4cc35 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/126.879447b3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{455:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-visualelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-visualelement"}},[t._v("#")]),t._v(" Interface: VisualElement")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("VisualElement")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcElement.html"}},[a("code",[t._v("ArcElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/LineElement.html"}},[a("code",[t._v("LineElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/PointElement.html"}},[a("code",[t._v("PointElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/BarElement.html"}},[a("code",[t._v("BarElement")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("area?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("area?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1685",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1685"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcenterpoint"}},[t._v("#")]),t._v(" getCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getCenterPoint")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1689",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1689"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getrange"}},[t._v("#")]),t._v(" getRange")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getRange")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1690",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1690"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inrange"}},[t._v("#")]),t._v(" inRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1686",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1686"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inxrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inxrange"}},[t._v("#")]),t._v(" inXRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inXRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1687"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inyrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inyrange"}},[t._v("#")]),t._v(" inYRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inYRange")]),t._v("("),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1688"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/127.3b8478f3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/127.3b8478f3.js new file mode 100644 index 0000000..87449ed --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/127.3b8478f3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[127],{456:function(t,e,o){"use strict";o.r(e);var v=o(6),d=Object(v.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h3",{attrs:{id:"common-options-to-all-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId]")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("type")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("alignToPixels")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("backgroundColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Background color of the scale area.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("display")])]),t._v(" "),o("td",[o("code",[t._v("boolean")]),t._v("|"),o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("Controls the axis global visibility (visible when "),o("code",[t._v("true")]),t._v(", hidden when "),o("code",[t._v("false")]),t._v("). When "),o("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("grid")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Grid line configuration. "),o("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("min")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("max")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("reverse")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Reverse the scale.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stacked")])]),t._v(" "),o("td",[o("code",[t._v("boolean")]),t._v("|"),o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Should the data be stacked. "),o("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("suggestedMax")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Adjustment used when calculating the maximum data value. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("suggestedMin")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Adjustment used when calculating the minimum data value. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("ticks")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Tick configuration. "),o("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("weight")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])])])}),[],!1,null,null,null);e.default=d.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/128.87d67ad7.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/128.87d67ad7.js new file mode 100644 index 0000000..6483550 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/128.87d67ad7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{457:function(t,e,o){"use strict";o.r(e);var d=o(6),v=Object(d.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("backdropColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),o("td",[t._v("Color of label backdrops.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("backdropPadding")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/padding.html"}},[o("code",[t._v("Padding")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("2")])]),t._v(" "),o("td",[t._v("Padding of label backdrop.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("callback")])]),t._v(" "),o("td",[o("code",[t._v("function")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),o("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("display")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("If true, show tick labels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("color")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("Chart.defaults.color")])]),t._v(" "),o("td",[t._v("Color of ticks.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("font")])]),t._v(" "),o("td",[o("code",[t._v("Font")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("Chart.defaults.font")])]),t._v(" "),o("td",[t._v("See "),o("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("major")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("{}")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("padding")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("3")])]),t._v(" "),o("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("showLabelBackdrop")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("true")]),t._v(" for radial scale, "),o("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),o("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("textStrokeColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[t._v("``")]),t._v(" "),o("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("textStrokeWidth")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("Stroke width around the text.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("z")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/129.f6241700.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/129.f6241700.js new file mode 100644 index 0000000..3ef5d67 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/129.f6241700.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{458:function(t,e,o){"use strict";o.r(e);var s=o(6),a=Object(s.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId]")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("bounds")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("'ticks'")])]),t._v(" "),o("td",[t._v("Determines the scale bounds. "),o("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("position")])]),t._v(" "),o("td",[o("code",[t._v("string")]),t._v(" | "),o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Position of the axis. "),o("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stack")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Stack group. Axes at the same "),o("code",[t._v("position")]),t._v(" with same "),o("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stackWeight")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[t._v("1")]),t._v(" "),o("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("axis")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Which type of axis this is. Possible values are: "),o("code",[t._v("'x'")]),t._v(", "),o("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),o("code",[t._v("'x'")]),t._v(" or "),o("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("offset")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),o("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("title")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Scale title configuration. "),o("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/13.b6743084.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/13.b6743084.js new file mode 100644 index 0000000..74234df --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/13.b6743084.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{344:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-baseplatform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-baseplatform"}},[t._v("#")]),t._v(" Class: BasePlatform")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("BasePlatform")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/classes/BasicPlatform.html"}},[a("code",[t._v("BasicPlatform")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/classes/DomPlatform.html"}},[a("code",[t._v("DomPlatform")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new BasePlatform")]),t._v("()")]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"acquirecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#acquirecontext"}},[t._v("#")]),t._v(" acquireContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("acquireContext")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("options?")]),t._v("): "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("p",[t._v("Called at chart construction time, returns a context2d instance implementing\nthe "),a("a",{attrs:{href:"https://www.w3.org/TR/2dcontext/",target:"_blank",rel:"noopener noreferrer"}},[t._v("W3C Canvas 2D Context API standard"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas from which to acquire context (platform specific)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2DSettings")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart options")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2057",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2057"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addeventlistener"}},[t._v("#")]),t._v(" addEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Registros the specified listener on the given chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to listen for event")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to listen for")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Receives a notification (an object that implements the "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(" interface) when an event of the specified type occurs.")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2075",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2075"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdevicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdevicepixelratio"}},[t._v("#")]),t._v(" getDevicePixelRatio")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDevicePixelRatio")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("the current devicePixelRatio of the device this platform is connected to.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2086",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2086"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaximumsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaximumsize"}},[t._v("#")]),t._v(" getMaximumSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMaximumSize")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("width?")]),t._v(", "),a("code",[t._v("height?")]),t._v(", "),a("code",[t._v("aspectRatio?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas for which to calculate the maximum size")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("aspectRatio?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("p",[t._v("the maximum size available.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2094",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2094"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isattached"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isattached"}},[t._v("#")]),t._v(" isAttached")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isAttached")]),t._v("("),a("code",[t._v("canvas")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the canvas is attached to the platform, false if not.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2099",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2099"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"releasecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#releasecontext"}},[t._v("#")]),t._v(" releaseContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("releaseContext")]),t._v("("),a("code",[t._v("context")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Called at chart destruction time, releases any resources associated to the context\npreviously returned by the acquireContext() method.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("context")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The context2d instance")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the method succeeded, else false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2067",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2067"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removeeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removeeventlistener"}},[t._v("#")]),t._v(" removeEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Removes the specified listener previously Registroed with addEventListener.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to remove the listener")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to remove")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The listener function to remove from the event target.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2082",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2082"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateconfig"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateconfig"}},[t._v("#")]),t._v(" updateConfig")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateConfig")]),t._v("("),a("code",[t._v("config")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Updates config with platform specific requirements")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("config")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[a("code",[t._v("ChartConfiguration")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[a("code",[t._v("ChartConfigurationCustomTypesPerDataset")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2104",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2104"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/130.a9cb856a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/130.a9cb856a.js new file mode 100644 index 0000000..38dd5c3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/130.a9cb856a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[130],{459:function(e,t,o){"use strict";o.r(t);var a=o(6),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h3",{attrs:{id:"common-tick-options-to-all-cartesian-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-cartesian-axes"}},[e._v("#")]),e._v(" Common tick options to all cartesian axes")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options.scales[scaleId].ticks")])]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("align")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("'center'")])]),e._v(" "),o("td",[e._v("The tick alignment along the axis. Can be "),o("code",[e._v("'start'")]),e._v(", "),o("code",[e._v("'center'")]),e._v(", "),o("code",[e._v("'end'")]),e._v(", or "),o("code",[e._v("'inner'")]),e._v(". "),o("code",[e._v("inner")]),e._v(" alignment means align "),o("code",[e._v("start")]),e._v(" for first tick and "),o("code",[e._v("end")]),e._v(" for the last tick of horizontal axis")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("crossAlign")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("'near'")])]),e._v(" "),o("td",[e._v("The tick alignment perpendicular to the axis. Can be "),o("code",[e._v("'near'")]),e._v(", "),o("code",[e._v("'center'")]),e._v(", or "),o("code",[e._v("'far'")]),e._v(". See "),o("RouterLink",{attrs:{to:"/axes/cartesian/#tick-alignment"}},[e._v("Tick Alignment")])],1)]),e._v(" "),o("tr",[o("td",[o("code",[e._v("sampleSize")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("ticks.length")])]),e._v(" "),o("td",[e._v("The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("autoSkip")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("true")])]),e._v(" "),o("td",[e._v("If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to "),o("code",[e._v("maxRotation")]),e._v(" before skipping any. Turn "),o("code",[e._v("autoSkip")]),e._v(" off to show all labels no matter what.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("autoSkipPadding")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("3")])]),e._v(" "),o("td",[e._v("Padding between the ticks on the horizontal axis when "),o("code",[e._v("autoSkip")]),e._v(" is enabled.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("includeBounds")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("true")])]),e._v(" "),o("td",[e._v("Should the defined "),o("code",[e._v("min")]),e._v(" and "),o("code",[e._v("max")]),e._v(' values be presented as ticks even if they are not "nice".')])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("labelOffset")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). "),o("em",[e._v("Note: this can cause labels at the edges to be cropped by the edge of the canvas")])])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("maxRotation")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("50")])]),e._v(" "),o("td",[e._v("Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. "),o("em",[e._v("Note: Only applicable to horizontal scales.")])])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("minRotation")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Minimum rotation for tick labels. "),o("em",[e._v("Note: Only applicable to horizontal scales.")])])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("mirror")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("false")])]),e._v(" "),o("td",[e._v("Flips tick labels around axis, displaying the labels inside the chart instead of outside. "),o("em",[e._v("Note: Only applicable to vertical scales.")])])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("padding")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("maxTicksLimit")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("11")])]),e._v(" "),o("td",[e._v("Maximum number of ticks and gridlines to show.")])])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/131.45e904c9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/131.45e904c9.js new file mode 100644 index 0000000..27aae89 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/131.45e904c9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[131],{461:function(t,e,a){"use strict";a.r(e);var s=a(6),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"category-axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category-axis"}},[t._v("#")]),t._v(" Category Axis")]),t._v(" "),a("p",[t._v("If the global configuration is used, labels are drawn from one of the label arrays included in the chart data. If only "),a("code",[t._v("data.labels")]),t._v(" is defined, this will be used. If "),a("code",[t._v("data.xLabels")]),t._v(" is defined and the axis is horizontal, this will be used. Similarly, if "),a("code",[t._v("data.yLabels")]),t._v(" is defined and the axis is vertical, this property will be used. Using both "),a("code",[t._v("xLabels")]),t._v(" and "),a("code",[t._v("yLabels")]),t._v(" together can create a chart that uses strings for both the X and Y axes.")]),t._v(" "),a("p",[t._v("Specifying any of the settings above defines the x-axis as "),a("code",[t._v("type: 'category'")]),t._v(" if not defined otherwise. For more fine-grained control of category labels, it is also possible to add "),a("code",[t._v("labels")]),t._v(" as part of the category axis definition. Doing so does not apply the global defaults.")]),t._v(" "),a("h2",{attrs:{id:"category-axis-definition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category-axis-definition"}},[t._v("#")]),t._v(" Category Axis Definition")]),t._v(" "),a("p",[t._v("Globally:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'June'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("As part of axis definition:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'category'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'June'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"configuration-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),a("h3",{attrs:{id:"category-axis-specific-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category-axis-specific-options"}},[t._v("#")]),t._v(" Category Axis specific options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("min")])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v("|"),a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("The minimum item to display. "),a("a",{attrs:{href:"#min-max-configuration"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("max")])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v("|"),a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("The maximum item to display. "),a("a",{attrs:{href:"#min-max-configuration"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labels")])]),t._v(" "),a("td",[a("code",[t._v("string[]")]),t._v("|"),a("code",[t._v("string[][]")])]),t._v(" "),a("td",[t._v("An array of labels to display. When an individual label is an array of strings, each item is rendered on a new line.")])])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("bounds")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'ticks'")])]),t._v(" "),a("td",[t._v("Determines the scale bounds. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("position")])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Position of the axis. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stack")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Stack group. Axes at the same "),a("code",[t._v("position")]),t._v(" with same "),a("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stackWeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("1")]),t._v(" "),a("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("axis")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Which type of axis this is. Possible values are: "),a("code",[t._v("'x'")]),t._v(", "),a("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),a("code",[t._v("'x'")]),t._v(" or "),a("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("offset")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),a("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("title")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Scale title configuration. "),a("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("type")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("alignToPixels")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Background color of the scale area.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Controls the axis global visibility (visible when "),a("code",[t._v("true")]),t._v(", hidden when "),a("code",[t._v("false")]),t._v("). When "),a("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grid")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Grid line configuration. "),a("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("min")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("max")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("reverse")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Reverse the scale.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stacked")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Should the data be stacked. "),a("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMax")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the maximum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMin")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the minimum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("ticks")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Tick configuration. "),a("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("weight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),a("h2",{attrs:{id:"tick-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common tick options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("align")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'center'")])]),t._v(" "),a("td",[t._v("The tick alignment along the axis. Can be "),a("code",[t._v("'start'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", "),a("code",[t._v("'end'")]),t._v(", or "),a("code",[t._v("'inner'")]),t._v(". "),a("code",[t._v("inner")]),t._v(" alignment means align "),a("code",[t._v("start")]),t._v(" for first tick and "),a("code",[t._v("end")]),t._v(" for the last tick of horizontal axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("crossAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'near'")])]),t._v(" "),a("td",[t._v("The tick alignment perpendicular to the axis. Can be "),a("code",[t._v("'near'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", or "),a("code",[t._v("'far'")]),t._v(". See "),a("RouterLink",{attrs:{to:"/axes/cartesian/#tick-alignment"}},[t._v("Tick Alignment")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("sampleSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("ticks.length")])]),t._v(" "),a("td",[t._v("The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkip")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to "),a("code",[t._v("maxRotation")]),t._v(" before skipping any. Turn "),a("code",[t._v("autoSkip")]),t._v(" off to show all labels no matter what.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkipPadding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Padding between the ticks on the horizontal axis when "),a("code",[t._v("autoSkip")]),t._v(" is enabled.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("includeBounds")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Should the defined "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(' values be presented as ticks even if they are not "nice".')])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelOffset")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). "),a("em",[t._v("Note: this can cause labels at the edges to be cropped by the edge of the canvas")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("50")])]),t._v(" "),a("td",[t._v("Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("minRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Minimum rotation for tick labels. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("mirror")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Flips tick labels around axis, displaying the labels inside the chart instead of outside. "),a("em",[t._v("Note: Only applicable to vertical scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxTicksLimit")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("11")])]),t._v(" "),a("td",[t._v("Maximum number of ticks and gridlines to show.")])])])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backdropColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),a("td",[t._v("Color of label backdrops.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backdropPadding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Padding of label backdrop.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callback")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),a("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, show tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of ticks.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("major")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("{}")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("showLabelBackdrop")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for radial scale, "),a("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),a("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[t._v("``")]),t._v(" "),a("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Stroke width around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("z")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),a("h2",{attrs:{id:"min-max-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min-max-configuration"}},[t._v("#")]),t._v(" Min Max Configuration")]),t._v(" "),a("p",[t._v("For both the "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(" properties, the value must be "),a("code",[t._v("string")]),t._v(" in the "),a("code",[t._v("labels")]),t._v(" array or "),a("code",[t._v("numeric")]),t._v(' value as an index of a label in that array. In the example below, the x axis would only display "March" through "June".')]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'June'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[t._v("Internally category scale uses label indices")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/132.abd9e4c2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/132.abd9e4c2.js new file mode 100644 index 0000000..008a587 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/132.abd9e4c2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[132],{460:function(t,e,a){"use strict";a.r(e);var s=a(6),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cartesian-axes"}},[t._v("#")]),t._v(" Cartesian Axes")]),t._v(" "),a("p",[t._v("Axes that follow a cartesian grid are known as 'Cartesian Axes'. Cartesian axes are used for line, bar, and bubble Graficas. Four cartesian axes are included in Chart.js by default.")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/linear.html"}},[t._v("linear")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/logarithmic.html"}},[t._v("logarithmic")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/category.html"}},[t._v("category")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[t._v("time")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/timeseries.html"}},[t._v("timeseries")])],1)]),t._v(" "),a("h2",{attrs:{id:"visual-Componentes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#visual-Componentes"}},[t._v("#")]),t._v(" Visual Componentes")]),t._v(" "),a("p",[t._v("A cartesian axis is composed of visual Componentes that can be individually configured. These Componentes are:")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#border"}},[t._v("border")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#grid-lines"}},[t._v("grid lines")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#ticks-and-tick-marks"}},[t._v("tick")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#ticks-and-tick-marks"}},[t._v("tick mark")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#title"}},[t._v("title")])])]),t._v(" "),a("h3",{attrs:{id:"border"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#border"}},[t._v("#")]),t._v(" Border")]),t._v(" "),a("p",[t._v("The axis border is drawn at the edge of the axis, beside the chart area. In the image below, it is drawn in red.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data,\n options: {\n scales: {\n x: {\n grid: {\n borderColor: 'red'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h3",{attrs:{id:"grid-lines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grid-lines"}},[t._v("#")]),t._v(" Grid lines")]),t._v(" "),a("p",[t._v("The grid lines for an axis are drawn on the chart area. In the image below, they are red.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data,\n options: {\n scales: {\n x: {\n grid: {\n color: 'red',\n borderColor: 'grey',\n tickColor: 'grey'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h3",{attrs:{id:"ticks-and-tick-marks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks-and-tick-marks"}},[t._v("#")]),t._v(" Ticks and Tick Marks")]),t._v(" "),a("p",[t._v("Ticks represent data values on the axis that appear as labels. The tick mark is the extension of the grid line from the axis border to the label.\nIn this example, the tick mark is drawn in red while the tick label is drawn in blue.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data,\n options: {\n scales: {\n x: {\n grid: {\n tickColor: 'red'\n },\n ticks: {\n color: 'blue',\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" Title")]),t._v(" "),a("p",[t._v("The title component of the axis is used to label the data. In the example below, it is shown in red.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data,\n options: {\n scales: {\n x: {\n title: {\n color: 'red',\n display: true,\n text: 'Month'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"common-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-configuration"}},[t._v("#")]),t._v(" Common Configuration")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("These are only the common options supported by all cartesian axes. Please see the specific axis documentation for all the available options for that axis.")])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("bounds")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'ticks'")])]),t._v(" "),a("td",[t._v("Determines the scale bounds. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("position")])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Position of the axis. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stack")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Stack group. Axes at the same "),a("code",[t._v("position")]),t._v(" with same "),a("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stackWeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("1")]),t._v(" "),a("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("axis")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Which type of axis this is. Possible values are: "),a("code",[t._v("'x'")]),t._v(", "),a("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),a("code",[t._v("'x'")]),t._v(" or "),a("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("offset")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),a("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("title")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Scale title configuration. "),a("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("type")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("alignToPixels")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Background color of the scale area.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Controls the axis global visibility (visible when "),a("code",[t._v("true")]),t._v(", hidden when "),a("code",[t._v("false")]),t._v("). When "),a("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grid")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Grid line configuration. "),a("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("min")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("max")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("reverse")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Reverse the scale.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stacked")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Should the data be stacked. "),a("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMax")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the maximum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMin")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the minimum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("ticks")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Tick configuration. "),a("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("weight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),a("h3",{attrs:{id:"axis-position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis-position"}},[t._v("#")]),t._v(" Axis Position")]),t._v(" "),a("p",[t._v("An axis can either be positioned at the edge of the chart, at the center of the chart area, or dynamically with respect to a data value.")]),t._v(" "),a("p",[t._v("To position the axis at the edge of the chart, set the "),a("code",[t._v("position")]),t._v(" option to one of: "),a("code",[t._v("'top'")]),t._v(", "),a("code",[t._v("'left'")]),t._v(", "),a("code",[t._v("'bottom'")]),t._v(", "),a("code",[t._v("'right'")]),t._v(".\nTo position the axis at the center of the chart area, set the "),a("code",[t._v("position")]),t._v(" option to "),a("code",[t._v("'center'")]),t._v(". In this mode, either the "),a("code",[t._v("axis")]),t._v(" option must be specified or the axis ID has to start with the letter 'x' or 'y'. This is so chart.js knows what kind of axis (horizontal or vertical) it is.\nTo position the axis with respect to a data value, set the "),a("code",[t._v("position")]),t._v(" option to an object such as:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v('This will position the axis at a value of -20 on the axis with ID "x". For cartesian axes, only 1 axis may be specified.')]),t._v(" "),a("h3",{attrs:{id:"scale-bounds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale-bounds"}},[t._v("#")]),t._v(" Scale Bounds")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("bounds")]),t._v(" property controls the scale boundary strategy (bypassed by "),a("code",[t._v("min")]),t._v("/"),a("code",[t._v("max")]),t._v(" options).")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'data'")]),t._v(": makes sure data are fully visible, labels outside are removed")]),t._v(" "),a("li",[a("code",[t._v("'ticks'")]),t._v(": makes sure ticks are fully visible, data outside are truncated")])]),t._v(" "),a("h3",{attrs:{id:"tick-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("These are only the common tick options supported by all cartesian axes. Please see specific axis documentation for all of the available options for that axis.")])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common tick options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("align")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'center'")])]),t._v(" "),a("td",[t._v("The tick alignment along the axis. Can be "),a("code",[t._v("'start'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", "),a("code",[t._v("'end'")]),t._v(", or "),a("code",[t._v("'inner'")]),t._v(". "),a("code",[t._v("inner")]),t._v(" alignment means align "),a("code",[t._v("start")]),t._v(" for first tick and "),a("code",[t._v("end")]),t._v(" for the last tick of horizontal axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("crossAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'near'")])]),t._v(" "),a("td",[t._v("The tick alignment perpendicular to the axis. Can be "),a("code",[t._v("'near'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", or "),a("code",[t._v("'far'")]),t._v(". See "),a("RouterLink",{attrs:{to:"/axes/cartesian/#tick-alignment"}},[t._v("Tick Alignment")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("sampleSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("ticks.length")])]),t._v(" "),a("td",[t._v("The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkip")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to "),a("code",[t._v("maxRotation")]),t._v(" before skipping any. Turn "),a("code",[t._v("autoSkip")]),t._v(" off to show all labels no matter what.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkipPadding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Padding between the ticks on the horizontal axis when "),a("code",[t._v("autoSkip")]),t._v(" is enabled.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("includeBounds")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Should the defined "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(' values be presented as ticks even if they are not "nice".')])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelOffset")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). "),a("em",[t._v("Note: this can cause labels at the edges to be cropped by the edge of the canvas")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("50")])]),t._v(" "),a("td",[t._v("Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("minRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Minimum rotation for tick labels. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("mirror")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Flips tick labels around axis, displaying the labels inside the chart instead of outside. "),a("em",[t._v("Note: Only applicable to vertical scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxTicksLimit")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("11")])]),t._v(" "),a("td",[t._v("Maximum number of ticks and gridlines to show.")])])])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backdropColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),a("td",[t._v("Color of label backdrops.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backdropPadding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Padding of label backdrop.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callback")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),a("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, show tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of ticks.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("major")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("{}")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("showLabelBackdrop")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for radial scale, "),a("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),a("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[t._v("``")]),t._v(" "),a("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Stroke width around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("z")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),a("h3",{attrs:{id:"tick-alignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick-alignment"}},[t._v("#")]),t._v(" Tick Alignment")]),t._v(" "),a("p",[t._v("The alignment of ticks is primarily controlled using two settings on the tick configuration object: "),a("code",[t._v("align")]),t._v(" and "),a("code",[t._v("crossAlign")]),t._v(". The "),a("code",[t._v("align")]),t._v(" setting configures how labels align with the tick mark along the axis direction (i.e. horizontal for a horizontal axis and vertical for a vertical axis). The "),a("code",[t._v("crossAlign")]),t._v(" setting configures how labels align with the tick mark in the perpendicular direction (i.e. vertical for a horizontal axis and horizontal for a vertical axis). In the example below, the "),a("code",[t._v("crossAlign")]),t._v(" setting is used to left align the labels on the Y axis.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: [\n 'rgba(255, 99, 132, 0.2)',\n 'rgba(255, 159, 64, 0.2)',\n 'rgba(255, 205, 86, 0.2)',\n 'rgba(75, 192, 192, 0.2)',\n 'rgba(54, 162, 235, 0.2)',\n 'rgba(153, 102, 255, 0.2)',\n 'rgba(201, 203, 207, 0.2)'\n ],\n borderColor: [\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(54, 162, 235)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)'\n ],\n borderWidth: 1,\n data: [65, 59, 80, 81, 56, 55, 40],\n }]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data,\n options: {\n indexAxis: 'y',\n scales: {\n y: {\n ticks: {\n crossAlign: 'far',\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("crossAlign")]),t._v(" setting is only effective when these preconditions are met:")]),t._v(" "),a("ul",[a("li",[t._v("tick rotation is "),a("code",[t._v("0")])]),t._v(" "),a("li",[t._v("axis position is "),a("code",[t._v("'top'")]),t._v(", '"),a("code",[t._v("left'")]),t._v(", "),a("code",[t._v("'bottom'")]),t._v(" or "),a("code",[t._v("'right'")])])])]),t._v(" "),a("h3",{attrs:{id:"axis-id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis-id"}},[t._v("#")]),t._v(" Axis ID")]),t._v(" "),a("p",[t._v("The properties "),a("code",[t._v("dataset.xAxisID")]),t._v(" or "),a("code",[t._v("dataset.yAxisID")]),t._v(" have to match to "),a("code",[t._v("scales")]),t._v(" property. This is especially needed if multi-axes Graficas are used.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This dataset appears on the first axis")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisID")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'first-y-axis'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This dataset appears on the second axis")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisID")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'second-y-axis'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'first-y-axis'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'linear'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'second-y-axis'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'linear'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"creating-multiple-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creating-multiple-axes"}},[t._v("#")]),t._v(" Creating Multiple Axes")]),t._v(" "),a("p",[t._v("With cartesian axes, it is possible to create multiple X and Y axes. To do so, you can add multiple configuration objects to the "),a("code",[t._v("xAxes")]),t._v(" and "),a("code",[t._v("yAxes")]),t._v(" properties. When adding new axes, it is important to ensure that you specify the type of the new axes as default types are "),a("strong",[t._v("not")]),t._v(" used in this case.")]),t._v(" "),a("p",[t._v("In the example below, we are creating two Y axes. We then use the "),a("code",[t._v("yAxisID")]),t._v(" property to map the datasets to their correct axes.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("75")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Left dataset'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This binds the dataset to the left y axis")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisID")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'left-y-axis'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Right dataset'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This binds the dataset to the right y axis")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisID")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'right-y-axis'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Jan'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Feb'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Mar'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Apr'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Jun'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'left-y-axis'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'linear'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'left'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'right-y-axis'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'linear'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'right'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/133.d5aa1db6.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/133.d5aa1db6.js new file mode 100644 index 0000000..bfb35a8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/133.d5aa1db6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[133],{462:function(t,e,a){"use strict";a.r(e);var o=a(6),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"linear-axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-axis"}},[t._v("#")]),t._v(" Linear Axis")]),t._v(" "),a("p",[t._v("The linear scale is used to chart numerical data. It can be placed on either the x or y-axis. The scatter chart type automatically configures a line chart to use one of these scales for the x-axis. As the name suggests, linear interpolation is used to determine where a value lies on the axis.")]),t._v(" "),a("h2",{attrs:{id:"configuration-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),a("h3",{attrs:{id:"linear-axis-specific-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-axis-specific-options"}},[t._v("#")]),t._v(" Linear Axis specific options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("beginAtZero")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[t._v("if true, scale will include 0 if it is not already included.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grace")])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[t._v("Percentage (string ending with "),a("code",[t._v("%")]),t._v(") or amount (number) for added room in the scale range above and below data. "),a("a",{attrs:{href:"#grace"}},[t._v("more...")])])])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("bounds")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'ticks'")])]),t._v(" "),a("td",[t._v("Determines the scale bounds. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("position")])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Position of the axis. "),a("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stack")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Stack group. Axes at the same "),a("code",[t._v("position")]),t._v(" with same "),a("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stackWeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("1")]),t._v(" "),a("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("axis")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Which type of axis this is. Possible values are: "),a("code",[t._v("'x'")]),t._v(", "),a("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),a("code",[t._v("'x'")]),t._v(" or "),a("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("offset")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),a("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("title")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Scale title configuration. "),a("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("type")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("alignToPixels")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Background color of the scale area.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Controls the axis global visibility (visible when "),a("code",[t._v("true")]),t._v(", hidden when "),a("code",[t._v("false")]),t._v("). When "),a("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grid")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Grid line configuration. "),a("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("min")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("max")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("reverse")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Reverse the scale.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stacked")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Should the data be stacked. "),a("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMax")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the maximum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMin")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the minimum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("ticks")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Tick configuration. "),a("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("weight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),a("h2",{attrs:{id:"tick-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),a("h3",{attrs:{id:"linear-axis-specific-tick-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-axis-specific-tick-options"}},[t._v("#")]),t._v(" Linear Axis specific tick options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("count")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])]),t._v(" "),a("td",[t._v("The number of ticks to generate. If specified, this overrides the automatic generation.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("format")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("The "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("Intl.NumberFormat")]),a("OutboundLink")],1),t._v(" options used by the default label formatter")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("precision")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("if defined and "),a("code",[t._v("stepSize")]),t._v(" is not specified, the step size will be rounded to this many decimal places.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stepSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User-defined fixed step size for the scale. "),a("a",{attrs:{href:"#step-size"}},[t._v("more...")])])])])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-cartesian-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common tick options to all cartesian axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("align")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'center'")])]),t._v(" "),a("td",[t._v("The tick alignment along the axis. Can be "),a("code",[t._v("'start'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", "),a("code",[t._v("'end'")]),t._v(", or "),a("code",[t._v("'inner'")]),t._v(". "),a("code",[t._v("inner")]),t._v(" alignment means align "),a("code",[t._v("start")]),t._v(" for first tick and "),a("code",[t._v("end")]),t._v(" for the last tick of horizontal axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("crossAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'near'")])]),t._v(" "),a("td",[t._v("The tick alignment perpendicular to the axis. Can be "),a("code",[t._v("'near'")]),t._v(", "),a("code",[t._v("'center'")]),t._v(", or "),a("code",[t._v("'far'")]),t._v(". See "),a("RouterLink",{attrs:{to:"/axes/cartesian/#tick-alignment"}},[t._v("Tick Alignment")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("sampleSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("ticks.length")])]),t._v(" "),a("td",[t._v("The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkip")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to "),a("code",[t._v("maxRotation")]),t._v(" before skipping any. Turn "),a("code",[t._v("autoSkip")]),t._v(" off to show all labels no matter what.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("autoSkipPadding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Padding between the ticks on the horizontal axis when "),a("code",[t._v("autoSkip")]),t._v(" is enabled.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("includeBounds")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Should the defined "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(' values be presented as ticks even if they are not "nice".')])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelOffset")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). "),a("em",[t._v("Note: this can cause labels at the edges to be cropped by the edge of the canvas")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("50")])]),t._v(" "),a("td",[t._v("Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("minRotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Minimum rotation for tick labels. "),a("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("mirror")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Flips tick labels around axis, displaying the labels inside the chart instead of outside. "),a("em",[t._v("Note: Only applicable to vertical scales.")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxTicksLimit")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("11")])]),t._v(" "),a("td",[t._v("Maximum number of ticks and gridlines to show.")])])])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backdropColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),a("td",[t._v("Color of label backdrops.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backdropPadding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Padding of label backdrop.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callback")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),a("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, show tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of ticks.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("major")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("{}")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("showLabelBackdrop")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for radial scale, "),a("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),a("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[t._v("``")]),t._v(" "),a("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Stroke width around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("z")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),a("h2",{attrs:{id:"step-size"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-size"}},[t._v("#")]),t._v(" Step Size")]),t._v(" "),a("p",[t._v("If set, the scale ticks will be enumerated by multiple of "),a("code",[t._v("stepSize")]),t._v(", having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.")]),t._v(" "),a("p",[t._v("This example sets up a chart with a y axis that creates ticks at "),a("code",[t._v("0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" options "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("max")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("ticks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("stepSize")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.5")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"grace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grace"}},[t._v("#")]),t._v(" Grace")]),t._v(" "),a("p",[t._v("If the value is string ending with "),a("code",[t._v("%")]),t._v(", its treat as percentage. If number, its treat as value.\nThe value is added to the maximum data value and subtracted from the minimum data. This extends the scale range as if the data values were that much greater.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: ['Positive', 'Negative'],\n datasets: [{\n data: [100, -50],\n backgroundColor: 'rgb(255, 99, 132)'\n }],\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data,\n options: {\n scales: {\n y: {\n type: 'linear',\n grace: '5%'\n }\n },\n plugins: {\n legend: false\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[t._v("Internally, the linear scale uses numeric data")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/134.4bfa3b5a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/134.4bfa3b5a.js new file mode 100644 index 0000000..1f49dfc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/134.4bfa3b5a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[134],{463:function(t,e,o){"use strict";o.r(e);var a=o(6),v=Object(a.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"logarithmic-axis"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#logarithmic-axis"}},[t._v("#")]),t._v(" Logarithmic Axis")]),t._v(" "),o("p",[t._v("The logarithmic scale is used to chart numerical data. It can be placed on either the x or y-axis. As the name suggests, logarithmic interpolation is used to determine where a value lies on the axis.")]),t._v(" "),o("h2",{attrs:{id:"configuration-options"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),o("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId]")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("bounds")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("'ticks'")])]),t._v(" "),o("td",[t._v("Determines the scale bounds. "),o("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("position")])]),t._v(" "),o("td",[o("code",[t._v("string")]),t._v(" | "),o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Position of the axis. "),o("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stack")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Stack group. Axes at the same "),o("code",[t._v("position")]),t._v(" with same "),o("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stackWeight")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[t._v("1")]),t._v(" "),o("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("axis")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Which type of axis this is. Possible values are: "),o("code",[t._v("'x'")]),t._v(", "),o("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),o("code",[t._v("'x'")]),t._v(" or "),o("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("offset")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),o("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("title")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Scale title configuration. "),o("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])]),t._v(" "),o("h3",{attrs:{id:"common-options-to-all-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId]")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("type")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("alignToPixels")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("backgroundColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Background color of the scale area.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("display")])]),t._v(" "),o("td",[o("code",[t._v("boolean")]),t._v("|"),o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("Controls the axis global visibility (visible when "),o("code",[t._v("true")]),t._v(", hidden when "),o("code",[t._v("false")]),t._v("). When "),o("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("grid")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Grid line configuration. "),o("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("min")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("max")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("reverse")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Reverse the scale.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("stacked")])]),t._v(" "),o("td",[o("code",[t._v("boolean")]),t._v("|"),o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Should the data be stacked. "),o("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("suggestedMax")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Adjustment used when calculating the maximum data value. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("suggestedMin")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Adjustment used when calculating the minimum data value. "),o("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("ticks")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Tick configuration. "),o("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("weight")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),o("h2",{attrs:{id:"tick-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),o("h3",{attrs:{id:"logarithmic-axis-specific-options"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#logarithmic-axis-specific-options"}},[t._v("#")]),t._v(" Logarithmic Axis specific options")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId]")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("format")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td"),t._v(" "),o("td",[t._v("The "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat",target:"_blank",rel:"noopener noreferrer"}},[o("code",[t._v("Intl.NumberFormat")]),o("OutboundLink")],1),t._v(" options used by the default label formatter")])])])]),t._v(" "),o("h3",{attrs:{id:"common-tick-options-to-all-cartesian-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common tick options to all cartesian axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("align")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("'center'")])]),t._v(" "),o("td",[t._v("The tick alignment along the axis. Can be "),o("code",[t._v("'start'")]),t._v(", "),o("code",[t._v("'center'")]),t._v(", "),o("code",[t._v("'end'")]),t._v(", or "),o("code",[t._v("'inner'")]),t._v(". "),o("code",[t._v("inner")]),t._v(" alignment means align "),o("code",[t._v("start")]),t._v(" for first tick and "),o("code",[t._v("end")]),t._v(" for the last tick of horizontal axis")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("crossAlign")])]),t._v(" "),o("td",[o("code",[t._v("string")])]),t._v(" "),o("td",[o("code",[t._v("'near'")])]),t._v(" "),o("td",[t._v("The tick alignment perpendicular to the axis. Can be "),o("code",[t._v("'near'")]),t._v(", "),o("code",[t._v("'center'")]),t._v(", or "),o("code",[t._v("'far'")]),t._v(". See "),o("RouterLink",{attrs:{to:"/axes/cartesian/#tick-alignment"}},[t._v("Tick Alignment")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("sampleSize")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("ticks.length")])]),t._v(" "),o("td",[t._v("The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("autoSkip")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to "),o("code",[t._v("maxRotation")]),t._v(" before skipping any. Turn "),o("code",[t._v("autoSkip")]),t._v(" off to show all labels no matter what.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("autoSkipPadding")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("3")])]),t._v(" "),o("td",[t._v("Padding between the ticks on the horizontal axis when "),o("code",[t._v("autoSkip")]),t._v(" is enabled.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("includeBounds")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("Should the defined "),o("code",[t._v("min")]),t._v(" and "),o("code",[t._v("max")]),t._v(' values be presented as ticks even if they are not "nice".')])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("labelOffset")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). "),o("em",[t._v("Note: this can cause labels at the edges to be cropped by the edge of the canvas")])])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("maxRotation")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("50")])]),t._v(" "),o("td",[t._v("Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. "),o("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("minRotation")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("Minimum rotation for tick labels. "),o("em",[t._v("Note: Only applicable to horizontal scales.")])])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("mirror")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",[o("code",[t._v("false")])]),t._v(" "),o("td",[t._v("Flips tick labels around axis, displaying the labels inside the chart instead of outside. "),o("em",[t._v("Note: Only applicable to vertical scales.")])])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("padding")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("maxTicksLimit")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",[o("code",[t._v("11")])]),t._v(" "),o("td",[t._v("Maximum number of ticks and gridlines to show.")])])])]),t._v(" "),o("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),o("p",[t._v("Namespace: "),o("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Name")]),t._v(" "),o("th",[t._v("Type")]),t._v(" "),o("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),o("th",[t._v("Default")]),t._v(" "),o("th",[t._v("Description")])])]),t._v(" "),o("tbody",[o("tr",[o("td",[o("code",[t._v("backdropColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),o("td",[t._v("Color of label backdrops.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("backdropPadding")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/padding.html"}},[o("code",[t._v("Padding")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("2")])]),t._v(" "),o("td",[t._v("Padding of label backdrop.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("callback")])]),t._v(" "),o("td",[o("code",[t._v("function")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td"),t._v(" "),o("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),o("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("display")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("true")])]),t._v(" "),o("td",[t._v("If true, show tick labels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("color")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("Chart.defaults.color")])]),t._v(" "),o("td",[t._v("Color of ticks.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("font")])]),t._v(" "),o("td",[o("code",[t._v("Font")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("Chart.defaults.font")])]),t._v(" "),o("td",[t._v("See "),o("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("major")])]),t._v(" "),o("td",[o("code",[t._v("object")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("{}")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),o("tr",[o("td",[o("code",[t._v("padding")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("3")])]),t._v(" "),o("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("showLabelBackdrop")])]),t._v(" "),o("td",[o("code",[t._v("boolean")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("true")]),t._v(" for radial scale, "),o("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),o("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("textStrokeColor")])]),t._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[t._v("Color")])])],1),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[t._v("``")]),t._v(" "),o("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("textStrokeWidth")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("Stroke width around the text.")])]),t._v(" "),o("tr",[o("td",[o("code",[t._v("z")])]),t._v(" "),o("td",[o("code",[t._v("number")])]),t._v(" "),o("td",{staticStyle:{"text-align":"center"}}),t._v(" "),o("td",[o("code",[t._v("0")])]),t._v(" "),o("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),o("h2",{attrs:{id:"internal-data-format"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),o("p",[t._v("Internally, the logarithmic scale uses numeric data.")])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/135.8c7630ad.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/135.8c7630ad.js new file mode 100644 index 0000000..abbf098 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/135.8c7630ad.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[135],{465:function(t,a,e){"use strict";e.r(a);var s=e(6),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"time-cartesian-axis"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#time-cartesian-axis"}},[t._v("#")]),t._v(" Time Cartesian Axis")]),t._v(" "),e("p",[t._v("The time scale is used to display times and dates. Data are spread according to the amount of time between data points. When building its ticks, it will automatically calculate the most comfortable unit base on the size of the scale.")]),t._v(" "),e("h2",{attrs:{id:"date-adapters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#date-adapters"}},[t._v("#")]),t._v(" Date Adapters")]),t._v(" "),e("p",[t._v("The time scale "),e("strong",[t._v("requires")]),t._v(" both a date library and a corresponding adapter to be present. Please choose from the "),e("a",{attrs:{href:"https://github.com/chartjs/awesome#adapters",target:"_blank",rel:"noopener noreferrer"}},[t._v("available adapters"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"data-sets"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-sets"}},[t._v("#")]),t._v(" Data Sets")]),t._v(" "),e("h3",{attrs:{id:"input-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#input-data"}},[t._v("#")]),t._v(" Input Data")]),t._v(" "),e("p",[t._v("See "),e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("data structures")]),t._v(".")],1),t._v(" "),e("h3",{attrs:{id:"date-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#date-formats"}},[t._v("#")]),t._v(" Date Formats")]),t._v(" "),e("p",[t._v("When providing data for the time scale, Chart.js uses timestamps defined as milliseconds since the epoch (midnight January 1, 1970, UTC) internally. However, Chart.js also supports all of the formats that your chosen date adapter accepts. You should use timestamps if you'd like to set "),e("code",[t._v("parsing: false")]),t._v(" for better performance.")]),t._v(" "),e("h2",{attrs:{id:"configuration-options"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),e("h3",{attrs:{id:"time-axis-specific-options"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#time-axis-specific-options"}},[t._v("#")]),t._v(" Time Axis specific options")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("min")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("The minimum item to display. "),e("a",{attrs:{href:"#min-max-configuration"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("max")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("The maximum item to display. "),e("a",{attrs:{href:"#min-max-configuration"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMin")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("The minimum item to display if there is no datapoint before it. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMax")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("The maximum item to display if there is no datapoint behind it. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("adapters.date")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td",[e("code",[t._v("{}")])]),t._v(" "),e("td",[t._v("Options for adapter for external date library if that adapter needs or supports options")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("bounds")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'data'")])]),t._v(" "),e("td",[t._v("Determines the scale bounds. "),e("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("offsetAfterAutoskip")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If true, bar chart offsets are computed with auto skipped ticks.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("ticks.source")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'auto'")])]),t._v(" "),e("td",[t._v("How ticks are generated. "),e("a",{attrs:{href:"#ticks-source"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.displayFormats")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Sets how different time units are displayed. "),e("a",{attrs:{href:"#display-formats"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.isoWeekday")])]),t._v(" "),e("td",[e("code",[t._v("boolean")]),t._v("|"),e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If "),e("code",[t._v("boolean")]),t._v(" and true and the unit is set to 'week', then the first day of the week will be Monday. Otherwise, it will be Sunday. If "),e("code",[t._v("number")]),t._v(", the index of the first day of the week (0 - Sunday, 6 - Saturday)")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.parser")])]),t._v(" "),e("td",[e("code",[t._v("string")]),t._v("|"),e("code",[t._v("function")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Custom parser for dates. "),e("a",{attrs:{href:"#parser"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.round")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If defined, dates will be rounded to the start of this unit. See "),e("a",{attrs:{href:"#time-units"}},[t._v("Time Units")]),t._v(" below for the allowed units.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.tooltipFormat")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("The format string to use for the tooltip.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.unit")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If defined, will force the unit to be a certain type. See "),e("a",{attrs:{href:"#time-units"}},[t._v("Time Units")]),t._v(" section below for details.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.stepSize")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("1")])]),t._v(" "),e("td",[t._v("The number of units between grid lines.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("time.minUnit")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'millisecond'")])]),t._v(" "),e("td",[t._v("The minimum display format to be used for a time unit.")])])])]),t._v(" "),e("h3",{attrs:{id:"common-options-to-all-cartesian-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-cartesian-axes"}},[t._v("#")]),t._v(" Common options to all cartesian axes")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("bounds")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'ticks'")])]),t._v(" "),e("td",[t._v("Determines the scale bounds. "),e("RouterLink",{attrs:{to:"/axes/cartesian/#scale-bounds"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("position")])]),t._v(" "),e("td",[e("code",[t._v("string")]),t._v(" | "),e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Position of the axis. "),e("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("stack")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Stack group. Axes at the same "),e("code",[t._v("position")]),t._v(" with same "),e("code",[t._v("stack")]),t._v(" are stacked.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("stackWeight")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[t._v("1")]),t._v(" "),e("td",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Which type of axis this is. Possible values are: "),e("code",[t._v("'x'")]),t._v(", "),e("code",[t._v("'y'")]),t._v(". If not set, this is inferred from the first character of the ID which should be "),e("code",[t._v("'x'")]),t._v(" or "),e("code",[t._v("'y'")]),t._v(".")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("offset")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to "),e("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("title")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Scale title configuration. "),e("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("more...")])],1)])])]),t._v(" "),e("h3",{attrs:{id:"common-options-to-all-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("type")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("alignToPixels")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("backgroundColor")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Background color of the scale area.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("display")])]),t._v(" "),e("td",[e("code",[t._v("boolean")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",[t._v("Controls the axis global visibility (visible when "),e("code",[t._v("true")]),t._v(", hidden when "),e("code",[t._v("false")]),t._v("). When "),e("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("grid")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Grid line configuration. "),e("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("min")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("max")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("reverse")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Reverse the scale.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("stacked")])]),t._v(" "),e("td",[e("code",[t._v("boolean")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Should the data be stacked. "),e("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMax")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Adjustment used when calculating the maximum data value. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMin")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Adjustment used when calculating the minimum data value. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("ticks")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Tick configuration. "),e("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("weight")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("0")])]),t._v(" "),e("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),e("h4",{attrs:{id:"time-units"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#time-units"}},[t._v("#")]),t._v(" Time Units")]),t._v(" "),e("p",[t._v("The following time measurements are supported. The names can be passed as strings to the "),e("code",[t._v("time.unit")]),t._v(" config option to force a certain unit.")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("'millisecond'")])]),t._v(" "),e("li",[e("code",[t._v("'second'")])]),t._v(" "),e("li",[e("code",[t._v("'minute'")])]),t._v(" "),e("li",[e("code",[t._v("'hour'")])]),t._v(" "),e("li",[e("code",[t._v("'day'")])]),t._v(" "),e("li",[e("code",[t._v("'week'")])]),t._v(" "),e("li",[e("code",[t._v("'month'")])]),t._v(" "),e("li",[e("code",[t._v("'quarter'")])]),t._v(" "),e("li",[e("code",[t._v("'year'")])])]),t._v(" "),e("p",[t._v("For example, to create a chart with a time scale that always displayed units per month, the following config could be used.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("time")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("unit")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'month'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h4",{attrs:{id:"display-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#display-formats"}},[t._v("#")]),t._v(" Display Formats")]),t._v(" "),e("p",[t._v("You may specify a map of display formats with a key for each unit:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("millisecond")])]),t._v(" "),e("li",[e("code",[t._v("second")])]),t._v(" "),e("li",[e("code",[t._v("minute")])]),t._v(" "),e("li",[e("code",[t._v("hour")])]),t._v(" "),e("li",[e("code",[t._v("day")])]),t._v(" "),e("li",[e("code",[t._v("week")])]),t._v(" "),e("li",[e("code",[t._v("month")])]),t._v(" "),e("li",[e("code",[t._v("quarter")])]),t._v(" "),e("li",[e("code",[t._v("year")])])]),t._v(" "),e("p",[t._v("The format string used as a value depends on the date adapter you chose to use.")]),t._v(" "),e("p",[t._v("For example, to set the display format for the "),e("code",[t._v("quarter")]),t._v(" unit to show the month and year, the following config might be passed to the chart constructor.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("time")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("displayFormats")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("quarter")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'MMM YYYY'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h4",{attrs:{id:"ticks-source"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ticks-source"}},[t._v("#")]),t._v(" Ticks Source")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("ticks.source")]),t._v(" property controls the ticks generation.")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("'auto'")]),t._v(': generates "optimal" ticks based on scale size and time options')]),t._v(" "),e("li",[e("code",[t._v("'data'")]),t._v(": generates ticks from data (including labels from data "),e("code",[t._v("{x|y}")]),t._v(" objects)")]),t._v(" "),e("li",[e("code",[t._v("'labels'")]),t._v(": generates ticks from user given "),e("code",[t._v("labels")]),t._v(" ONLY")])]),t._v(" "),e("h4",{attrs:{id:"parser"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parser"}},[t._v("#")]),t._v(" Parser")]),t._v(" "),e("p",[t._v("If this property is defined as a string, it is interpreted as a custom format to be used by the date adapter to parse the date.")]),t._v(" "),e("p",[t._v("If this is a function, it must return a type that can be handled by your date adapter's "),e("code",[t._v("parse")]),t._v(" method.")]),t._v(" "),e("h2",{attrs:{id:"min-max-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#min-max-configuration"}},[t._v("#")]),t._v(" Min Max Configuration")]),t._v(" "),e("p",[t._v("For both the "),e("code",[t._v("min")]),t._v(" and "),e("code",[t._v("max")]),t._v(" properties, the value must be "),e("code",[t._v("string")]),t._v(" that is parsable by your date adapter or a number with the amount of milliseconds that have elapsed since UNIX epoch.\nIn the example below the x axis will start at 7 October 2021.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2021-11-06 23:39:30'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2021-11-07 01:00:28'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2021-11-07 09:00:28'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2021-11-07 00:00:00'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"changing-the-scale-type-from-time-scale-to-logarithmic-linear-scale"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#changing-the-scale-type-from-time-scale-to-logarithmic-linear-scale"}},[t._v("#")]),t._v(" Changing the scale type from Time scale to Logarithmic/Linear scale.")]),t._v(" "),e("p",[t._v("When changing the scale type from Time scale to Logarithmic/Linear scale, you need to add "),e("code",[t._v("bounds: 'ticks'")]),t._v(" to the scale options. Changing the "),e("code",[t._v("bounds")]),t._v(" parameter is necessary because its default value is the "),e("code",[t._v("'data'")]),t._v(" for the Time scale.")]),t._v(" "),e("p",[t._v("Initial config:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Scale update:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'logarithmic'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bounds")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'ticks'")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"internal-data-format"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),e("p",[t._v("Internally time scale uses milliseconds since epoch")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/136.f813e062.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/136.f813e062.js new file mode 100644 index 0000000..1fe6f3b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/136.f813e062.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[136],{464:function(t,s,a){"use strict";a.r(s);var e=a(6),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"time-series-axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time-series-axis"}},[t._v("#")]),t._v(" Time Series Axis")]),t._v(" "),a("p",[t._v("The time series scale extends from the time scale and supports all the same options. However, for the time series scale, each data point is spread equidistant.")]),t._v(" "),a("h2",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'timeseries'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"more-details"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#more-details"}},[t._v("#")]),t._v(" More details")]),t._v(" "),a("p",[t._v("Please see "),a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[t._v("the time scale documentation")]),t._v(" for all other details.")],1)])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/137.6cab2863.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/137.6cab2863.js new file mode 100644 index 0000000..5669a8e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/137.6cab2863.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[137],{467:function(t,a,e){"use strict";e.r(a);var s=e(6),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#axes"}},[t._v("#")]),t._v(" Axes")]),t._v(" "),e("p",[t._v("Axes are an integral part of a chart. They are used to determine how data maps to a pixel value on the chart. In a cartesian chart, there is 1 or more X-axis and 1 or more Y-axis to map points onto the 2-dimensional canvas. These axes are known as "),e("RouterLink",{attrs:{to:"/axes/cartesian/"}},[t._v("'cartesian axes'")]),t._v(".")],1),t._v(" "),e("p",[t._v("In a radial chart, such as a radar chart or a polar area chart, there is a single axis that maps points in the angular and radial directions. These are known as "),e("RouterLink",{attrs:{to:"/axes/radial/"}},[t._v("'radial axes'")]),t._v(".")],1),t._v(" "),e("p",[t._v("Scales in Chart.js >v2.0 are significantly more powerful, but also different than those of v1.0.")]),t._v(" "),e("ul",[e("li",[t._v("Multiple X & Y axes are supported.")]),t._v(" "),e("li",[t._v("A built-in label auto-skip feature detects would-be overlapping ticks and labels and removes every nth label to keep things displaying normally.")]),t._v(" "),e("li",[t._v("Scale titles are supported.")]),t._v(" "),e("li",[t._v("New scale types can be extended without writing an entirely new chart type.")])]),t._v(" "),e("h2",{attrs:{id:"default-scales"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#default-scales"}},[t._v("#")]),t._v(" Default scales")]),t._v(" "),e("p",[t._v("The default "),e("code",[t._v("scaleId")]),t._v("'s for carterian Graficas are "),e("code",[t._v("'x'")]),t._v(" and "),e("code",[t._v("'y'")]),t._v(". For radial Graficas: "),e("code",[t._v("'r'")]),t._v(".\nEach dataset is mapped to a scale for each axis (x, y or r) it requires. The scaleId's that a dataset is mapped to, is determined by the "),e("code",[t._v("xAxisID")]),t._v(", "),e("code",[t._v("yAxisID")]),t._v(" or "),e("code",[t._v("rAxisID")]),t._v(".\nIf the ID for an axis is not specified, first scale for that axis is used. If no scale for an axis is found, a new scale is created.")]),t._v(" "),e("p",[t._v("Some examples:")]),t._v(" "),e("p",[t._v("The following chart will have "),e("code",[t._v("'x'")]),t._v(" and "),e("code",[t._v("'y'")]),t._v(" scales:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("The following chart will have scales "),e("code",[t._v("'x'")]),t._v(" and "),e("code",[t._v("'myScale'")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("myScale")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'logarithmic'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("position")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'right'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `axis` is determined by the position as `'y'`")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("The following chart will have scales "),e("code",[t._v("'xAxis'")]),t._v(" and "),e("code",[t._v("'yAxis'")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisID")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'yAxis'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("xAxis")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The axis for this scale is determined from the first letter of the id as `'x'`")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// It is recommended to specify `position` and / or `axis` explicitly.")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("The following chart will have "),e("code",[t._v("'r'")]),t._v(" scale:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'radar'")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("The following chart will have "),e("code",[t._v("'myScale'")]),t._v(" scale:")]),t._v(" "),e("div",{staticClass:"language-js extra-class"},[e("pre",{pre:!0,attrs:{class:"language-js"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'radar'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("myScale")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("axis")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'r'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"common-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#common-configuration"}},[t._v("#")]),t._v(" Common Configuration")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("These are only the common options supported by all axes. Please see specific axis documentation for all of the available options for that axis.")])]),t._v(" "),e("h3",{attrs:{id:"common-options-to-all-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("type")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("alignToPixels")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("backgroundColor")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Background color of the scale area.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("display")])]),t._v(" "),e("td",[e("code",[t._v("boolean")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",[t._v("Controls the axis global visibility (visible when "),e("code",[t._v("true")]),t._v(", hidden when "),e("code",[t._v("false")]),t._v("). When "),e("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("grid")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Grid line configuration. "),e("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("min")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("max")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("reverse")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Reverse the scale.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("stacked")])]),t._v(" "),e("td",[e("code",[t._v("boolean")]),t._v("|"),e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("Should the data be stacked. "),e("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMax")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Adjustment used when calculating the maximum data value. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("suggestedMin")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Adjustment used when calculating the minimum data value. "),e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("ticks")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Tick configuration. "),e("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("weight")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("0")])]),t._v(" "),e("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),e("h2",{attrs:{id:"tick-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("These are only the common tick options supported by all axes. Please see specific axis documentation for all of the available tick options for that axis.")])]),t._v(" "),e("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("backdropColor")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[e("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),e("td",[t._v("Color of label backdrops.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("backdropPadding")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/padding.html"}},[e("code",[t._v("Padding")])])],1),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td",[e("code",[t._v("2")])]),t._v(" "),e("td",[t._v("Padding of label backdrop.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("callback")])]),t._v(" "),e("td",[e("code",[t._v("function")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td"),t._v(" "),e("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),e("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("display")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",[t._v("If true, show tick labels.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("color")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[e("code",[t._v("Chart.defaults.color")])]),t._v(" "),e("td",[t._v("Color of ticks.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("font")])]),t._v(" "),e("td",[e("code",[t._v("Font")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[e("code",[t._v("Chart.defaults.font")])]),t._v(" "),e("td",[t._v("See "),e("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("major")])]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td",[e("code",[t._v("{}")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("padding")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td",[e("code",[t._v("3")])]),t._v(" "),e("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("showLabelBackdrop")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[e("code",[t._v("true")]),t._v(" for radial scale, "),e("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),e("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("textStrokeColor")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("``")]),t._v(" "),e("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("textStrokeWidth")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[e("code",[t._v("0")])]),t._v(" "),e("td",[t._v("Stroke width around the text.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("z")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}}),t._v(" "),e("td",[e("code",[t._v("0")])]),t._v(" "),e("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),e("h2",{attrs:{id:"axis-range-settings"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#axis-range-settings"}},[t._v("#")]),t._v(" Axis Range Settings")]),t._v(" "),e("p",[t._v("Given the number of axis range settings, it is important to understand how they all interact with each other.")]),t._v(" "),e("p",[t._v("The "),e("code",[t._v("suggestedMax")]),t._v(" and "),e("code",[t._v("suggestedMin")]),t._v(" settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" minDataValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("min")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mostNegativeValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("suggestedMin"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" maxDataValue "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("max")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mostPositiveValue"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("suggestedMax"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the "),e("code",[t._v("suggestedMin")]),t._v(" setting, it is ignored.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'First dataset'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMin")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMax")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("In contrast to the "),e("code",[t._v("suggested*")]),t._v(" settings, the "),e("code",[t._v("min")]),t._v(" and "),e("code",[t._v("max")]),t._v(" settings set explicit ends to the axes. When these are set, some data points may not be visible.")]),t._v(" "),e("h2",{attrs:{id:"stacking"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stacking"}},[t._v("#")]),t._v(" Stacking")]),t._v(" "),e("p",[t._v("By default data is not stacked. If the "),e("code",[t._v("stacked")]),t._v(" option of the value scale (y-axis on horizontal chart) is "),e("code",[t._v("true")]),t._v(", positive and negative values are stacked separately. Additionally a "),e("code",[t._v("stack")]),t._v(" option can be defined per dataset to further divide into stack groups "),e("RouterLink",{attrs:{to:"/general/data-structures/#dataset-configuration"}},[t._v("more...")]),t._v(".\nFor some Graficas, you might want to stack positive and negative values together. That can be achieved by specifying "),e("code",[t._v("stacked: 'single'")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"callbacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#callbacks"}},[t._v("#")]),t._v(" Callbacks")]),t._v(" "),e("p",[t._v("There are a number of config callbacks that can be used to change parameters in the scale at different points in the update process. The options are supplied at the top level of the axis options.")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Arguments")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("beforeUpdate")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback called before the update process starts.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeSetDimensions")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before dimensions are set.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterSetDimensions")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after dimensions are set.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeDataLimits")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before data limits are determined.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterDataLimits")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after data limits are determined.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeBuildTicks")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before ticks are created.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterBuildTicks")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after ticks are created. Useful for filtering ticks.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeTickToLabelConversion")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before ticks are converted into strings.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterTickToLabelConversion")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after ticks are converted into strings.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeCalculateLabelRotation")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before tick rotation is determined.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterCalculateLabelRotation")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after tick rotation is determined.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("beforeFit")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs before the scale fits to the canvas.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterFit")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs after the scale fits to the canvas.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("afterUpdate")])]),t._v(" "),e("td",[e("code",[t._v("axis")])]),t._v(" "),e("td",[t._v("Callback that runs at the end of the update process.")])])])]),t._v(" "),e("h3",{attrs:{id:"updating-axis-defaults"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#updating-axis-defaults"}},[t._v("#")]),t._v(" Updating Axis Defaults")]),t._v(" "),e("p",[t._v("The default configuration for a scale can be easily changed. All you need to do is set the new options to "),e("code",[t._v("Chart.defaults.scales[type]")]),t._v(".")]),t._v(" "),e("p",[t._v("For example, to set the minimum value of 0 for all linear scales, you would do the following. Any linear scales created after this time would now have a minimum of 0.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("Chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("linear"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"creating-new-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-new-axes"}},[t._v("#")]),t._v(" Creating New Axes")]),t._v(" "),e("p",[t._v("To create a new axis, see the "),e("RouterLink",{attrs:{to:"/developers/axes.html"}},[t._v("developer docs")]),t._v(".")],1)])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/138.03ec5265.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/138.03ec5265.js new file mode 100644 index 0000000..9b4fde0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/138.03ec5265.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[138],{466:function(t,a,e){"use strict";e.r(a);var s=e(6),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"labeling-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#labeling-axes"}},[t._v("#")]),t._v(" Labeling Axes")]),t._v(" "),e("p",[t._v("When creating a chart, you want to tell the viewer what data they are viewing. To do this, you need to label the axis.")]),t._v(" "),e("h2",{attrs:{id:"scale-title-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#scale-title-configuration"}},[t._v("#")]),t._v(" Scale Title Configuration")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.scales[scaleId].title")]),t._v(", it defines options for the scale title. Note that this only applies to cartesian axes.")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("display")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",[t._v("If true, display the axis title.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("align")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'center'")])]),t._v(" "),e("td",[t._v("Alignment of the axis title. Possible options are "),e("code",[t._v("'start'")]),t._v(", "),e("code",[t._v("'center'")]),t._v(" and "),e("code",[t._v("'end'")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("text")])]),t._v(" "),e("td",[e("code",[t._v("string")]),t._v("|"),e("code",[t._v("string[]")])]),t._v(" "),e("td",[e("code",[t._v("''")])]),t._v(" "),e("td",[t._v('The text for the title. (i.e. "# of People" or "Response Choices").')])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("color")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td",[e("code",[t._v("Chart.defaults.color")])]),t._v(" "),e("td",[t._v("Color of label.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("font")])]),t._v(" "),e("td",[e("code",[t._v("Font")])]),t._v(" "),e("td",[e("code",[t._v("Chart.defaults.font")])]),t._v(" "),e("td",[t._v("See "),e("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("padding")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/padding.html"}},[e("code",[t._v("Padding")])])],1),t._v(" "),e("td",[e("code",[t._v("4")])]),t._v(" "),e("td",[t._v("Padding to apply around scale labels. Only "),e("code",[t._v("top")]),t._v(", "),e("code",[t._v("bottom")]),t._v(" and "),e("code",[t._v("y")]),t._v(" are implemented.")])])])]),t._v(" "),e("h2",{attrs:{id:"creating-custom-tick-formats"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#creating-custom-tick-formats"}},[t._v("#")]),t._v(" Creating Custom Tick Formats")]),t._v(" "),e("p",[t._v("It is also common to want to change the tick marks to include information about the data type. For example, adding a dollar sign ('$').\nTo do this, you need to override the "),e("code",[t._v("ticks.callback")]),t._v(" method in the axis configuration.")]),t._v(" "),e("p",[t._v("The method receives 3 arguments:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("value")]),t._v(" - the tick value in the "),e("strong",[t._v("internal data format")]),t._v(" of the associated scale.")]),t._v(" "),e("li",[e("code",[t._v("index")]),t._v(" - the tick index in the ticks array.")]),t._v(" "),e("li",[e("code",[t._v("ticks")]),t._v(" - the array containing all of the "),e("a",{attrs:{href:"../api/interfaces/Tick"}},[t._v("tick objects")]),t._v(".")])]),t._v(" "),e("p",[t._v("The call to the method is scoped to the scale. "),e("code",[t._v("this")]),t._v(" inside the method is the scale object.")]),t._v(" "),e("p",[t._v("If the callback returns "),e("code",[t._v("null")]),t._v(" or "),e("code",[t._v("undefined")]),t._v(" the associated grid line will be hidden.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The "),e("a",{attrs:{href:"../axes/cartesian/category"}},[t._v("category axis")]),t._v(", which is the default x-axis for line and bar Graficas, uses the "),e("code",[t._v("index")]),t._v(" as internal data format. For accessing the label, use "),e("code",[t._v("this.getLabelForValue(value)")]),t._v(". "),e("RouterLink",{attrs:{to:"/api/classes/Scale.html#getlabelforvalue"}},[t._v("API: getLabelForValue")])],1)]),t._v(" "),e("p",[t._v("In the following example, every label of the Y-axis would be displayed with a dollar sign at the front.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("ticks")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Include a dollar sign in the ticks")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("callback")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" ticks")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'$'")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Keep in mind that overriding "),e("code",[t._v("ticks.callback")]),t._v(" means that you are responsible for all formatting of the label. Depending on your use case, you may want to call the default formatter and then modify its output. In the example above, that would look like:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// call the default formatter, forwarding `this`")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'$'")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" Chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Ticks"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("formatters"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("numeric")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("apply")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("value"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" ticks"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Related samples:")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"../samples/scale-options/ticks"}},[t._v("Tick configuration sample")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/139.924812c0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/139.924812c0.js new file mode 100644 index 0000000..1a2d349 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/139.924812c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[139],{468:function(n,a,e){"use strict";e.r(a);var t=e(6),s=Object(t.a)({},(function(){var n=this,a=n.$createElement,e=n._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"radial-axes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#radial-axes"}},[n._v("#")]),n._v(" Radial Axes")]),n._v(" "),e("p",[n._v("Radial axes are used specifically for the radar and polar area chart types. These axes overlay the chart area, rather than being positioned on one of the edges. One radial axis is included by default in Chart.js.")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/radial/linear.html"}},[n._v("radialLinear")])],1)]),n._v(" "),e("h2",{attrs:{id:"visual-Componentes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#visual-Componentes"}},[n._v("#")]),n._v(" Visual Componentes")]),n._v(" "),e("p",[n._v("A radial axis is composed of visual Componentes that can be individually configured. These Componentes are:")]),n._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#angle-lines"}},[n._v("angle lines")])]),n._v(" "),e("li",[e("a",{attrs:{href:"#grid-lines"}},[n._v("grid lines")])]),n._v(" "),e("li",[e("a",{attrs:{href:"#point-labels"}},[n._v("point labels")])]),n._v(" "),e("li",[e("a",{attrs:{href:"#ticks"}},[n._v("ticks")])])]),n._v(" "),e("h3",{attrs:{id:"angle-lines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#angle-lines"}},[n._v("#")]),n._v(" Angle Lines")]),n._v(" "),e("p",[n._v("The grid lines for an axis are drawn on the chart area. They stretch out from the center towards the edge of the canvas. In the example below, they are red.")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data,\n options: {\n scales: {\n r: {\n angleLines: {\n color: 'red'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h3",{attrs:{id:"grid-lines"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#grid-lines"}},[n._v("#")]),n._v(" Grid Lines")]),n._v(" "),e("p",[n._v("The grid lines for an axis are drawn on the chart area. In the example below, they are red.")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data,\n options: {\n scales: {\n r: {\n grid: {\n color: 'red'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h3",{attrs:{id:"point-labels"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#point-labels"}},[n._v("#")]),n._v(" Point Labels")]),n._v(" "),e("p",[n._v("The point labels indicate the value for each angle line. In the example below, they are red.")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data,\n options: {\n scales: {\n r: {\n pointLabels: {\n color: 'red'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h3",{attrs:{id:"ticks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[n._v("#")]),n._v(" Ticks")]),n._v(" "),e("p",[n._v("The ticks are used to label values based on how far they are from the center of the axis. In the example below, they are red.")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgba(54, 162, 235, 0.5)',\n borderColor: 'rgb(54, 162, 235)',\n borderWidth: 1,\n data: [10, 20, 30, 40, 50, 0, 5],\n }]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data,\n options: {\n scales: {\n r: {\n ticks: {\n color: 'red'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/14.422fec10.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/14.422fec10.js new file mode 100644 index 0000000..da21f98 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/14.422fec10.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{345:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-basicplatform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-basicplatform"}},[t._v("#")]),t._v(" Class: BasicPlatform")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[a("code",[t._v("BasePlatform")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("BasicPlatform")])])])])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new BasicPlatform")]),t._v("()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#constructor"}},[t._v("constructor")])],1),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"acquirecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#acquirecontext"}},[t._v("#")]),t._v(" acquireContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("acquireContext")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("options?")]),t._v("): "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("p",[t._v("Called at chart construction time, returns a context2d instance implementing\nthe "),a("a",{attrs:{href:"https://www.w3.org/TR/2dcontext/",target:"_blank",rel:"noopener noreferrer"}},[t._v("W3C Canvas 2D Context API standard"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas from which to acquire context (platform specific)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2DSettings")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart options")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#acquirecontext"}},[t._v("acquireContext")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2057",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2057"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addeventlistener"}},[t._v("#")]),t._v(" addEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Registros the specified listener on the given chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to listen for event")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to listen for")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Receives a notification (an object that implements the "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(" interface) when an event of the specified type occurs.")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#addeventlistener"}},[t._v("addEventListener")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2075",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2075"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdevicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdevicepixelratio"}},[t._v("#")]),t._v(" getDevicePixelRatio")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDevicePixelRatio")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("the current devicePixelRatio of the device this platform is connected to.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#getdevicepixelratio"}},[t._v("getDevicePixelRatio")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2086",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2086"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaximumsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaximumsize"}},[t._v("#")]),t._v(" getMaximumSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMaximumSize")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("width?")]),t._v(", "),a("code",[t._v("height?")]),t._v(", "),a("code",[t._v("aspectRatio?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas for which to calculate the maximum size")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("aspectRatio?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("p",[t._v("the maximum size available.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#getmaximumsize"}},[t._v("getMaximumSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2094",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2094"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isattached"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isattached"}},[t._v("#")]),t._v(" isAttached")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isAttached")]),t._v("("),a("code",[t._v("canvas")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the canvas is attached to the platform, false if not.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#isattached"}},[t._v("isAttached")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2099",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2099"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"releasecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#releasecontext"}},[t._v("#")]),t._v(" releaseContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("releaseContext")]),t._v("("),a("code",[t._v("context")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Called at chart destruction time, releases any resources associated to the context\npreviously returned by the acquireContext() method.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("context")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The context2d instance")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the method succeeded, else false")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#releasecontext"}},[t._v("releaseContext")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2067",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2067"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removeeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removeeventlistener"}},[t._v("#")]),t._v(" removeEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Removes the specified listener previously Registroed with addEventListener.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to remove the listener")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to remove")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The listener function to remove from the event target.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#removeeventlistener"}},[t._v("removeEventListener")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2082",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2082"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateconfig"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateconfig"}},[t._v("#")]),t._v(" updateConfig")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateConfig")]),t._v("("),a("code",[t._v("config")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Updates config with platform specific requirements")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("config")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[a("code",[t._v("ChartConfiguration")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[a("code",[t._v("ChartConfigurationCustomTypesPerDataset")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#updateconfig"}},[t._v("updateConfig")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2104",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2104"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/140.a7967a5d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/140.a7967a5d.js new file mode 100644 index 0000000..e8b783a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/140.a7967a5d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{469:function(t,e,a){"use strict";a.r(e);var s=a(6),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"linear-radial-axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-radial-axis"}},[t._v("#")]),t._v(" Linear Radial Axis")]),t._v(" "),a("p",[t._v("The linear radial scale is used to chart numerical data. As the name suggests, linear interpolation is used to determine where a value lies in relation to the center of the axis.")]),t._v(" "),a("p",[t._v("The following additional configuration options are provided by the radial linear scale.")]),t._v(" "),a("h2",{attrs:{id:"configuration-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),a("h3",{attrs:{id:"linear-radial-axis-specific-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-radial-axis-specific-options"}},[t._v("#")]),t._v(" Linear Radial Axis specific options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("animate")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Whether to animate scaling the chart from the centre")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("angleLines")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Angle line configuration. "),a("a",{attrs:{href:"#angle-line-options"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("beginAtZero")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, scale will include 0 if it is not already included.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointLabels")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Point label configuration. "),a("a",{attrs:{href:"#point-label-options"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("startAngle")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Starting angle of the scale. In degrees, 0 is at top.")])])])]),t._v(" "),a("h3",{attrs:{id:"common-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-options-to-all-axes"}},[t._v("#")]),t._v(" Common options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId]")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("type")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("alignToPixels")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Align pixel values to device pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Background color of the scale area.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Controls the axis global visibility (visible when "),a("code",[t._v("true")]),t._v(", hidden when "),a("code",[t._v("false")]),t._v("). When "),a("code",[t._v("display: 'auto'")]),t._v(", the axis is visible only if at least one associated dataset is visible.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grid")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Grid line configuration. "),a("a",{attrs:{href:"#grid-line-configuration"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("min")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined minimum number for the scale, overrides minimum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("max")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined maximum number for the scale, overrides maximum value from data. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("reverse")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Reverse the scale.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stacked")])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Should the data be stacked. "),a("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMax")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the maximum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("suggestedMin")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Adjustment used when calculating the minimum data value. "),a("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("ticks")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Tick configuration. "),a("RouterLink",{attrs:{to:"/axes/#tick-configuration"}},[t._v("more...")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("weight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")])])])]),t._v(" "),a("h2",{attrs:{id:"tick-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),a("h3",{attrs:{id:"linear-radial-axis-specific-tick-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-radial-axis-specific-tick-options"}},[t._v("#")]),t._v(" Linear Radial Axis specific tick options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("count")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])]),t._v(" "),a("td",[t._v("The number of ticks to generate. If specified, this overrides the automatic generation.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("format")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("The "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("Intl.NumberFormat")]),a("OutboundLink")],1),t._v(" options used by the default label formatter")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxTicksLimit")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("11")])]),t._v(" "),a("td",[t._v("Maximum number of ticks and gridlines to show.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("precision")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("If defined and "),a("code",[t._v("stepSize")]),t._v(" is not specified, the step size will be rounded to this many decimal places.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stepSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("User defined fixed step size for the scale. "),a("a",{attrs:{href:"#step-size"}},[t._v("more...")])])])])]),t._v(" "),a("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backdropColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),a("td",[t._v("Color of label backdrops.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backdropPadding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Padding of label backdrop.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callback")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),a("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, show tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of ticks.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("major")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("{}")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("3")])]),t._v(" "),a("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("showLabelBackdrop")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for radial scale, "),a("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),a("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[t._v("``")]),t._v(" "),a("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textStrokeWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Stroke width around the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("z")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),a("p",[t._v("The scriptable context is described in "),a("RouterLink",{attrs:{to:"/general/options.html#tick"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),a("h2",{attrs:{id:"grid-line-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grid-line-configuration"}},[t._v("#")]),t._v(" Grid Line Configuration")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.scales[scaleId].grid")]),t._v(", it defines options for the grid lines of the axis.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[t._v("Indexable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("borderDash")])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("[]")])]),t._v(" "),a("td",[t._v("Length and spacing of dashes on grid lines. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDashOffset")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("0.0")])]),t._v(" "),a("td",[t._v("Offset for line dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("circular")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, gridlines are circular (on radar and polar area Graficas only).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/axes/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.borderColor")])]),t._v(" "),a("td",[t._v("The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line, and so on.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",{staticStyle:{"text-align":"center"}}),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If false, do not display grid lines for this axis.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("lineWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])]),t._v(" "),a("td",[t._v("Stroke width of grid lines.")])])])]),t._v(" "),a("p",[t._v("The scriptable context is described in "),a("RouterLink",{attrs:{to:"/axes/general/options.html#tick"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),a("h2",{attrs:{id:"axis-range-settings"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis-range-settings"}},[t._v("#")]),t._v(" Axis Range Settings")]),t._v(" "),a("p",[t._v("Given the number of axis range settings, it is important to understand how they all interact with each other.")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("suggestedMax")]),t._v(" and "),a("code",[t._v("suggestedMin")]),t._v(" settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" minDataValue "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("min")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mostNegativeValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("suggestedMin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" maxDataValue "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("max")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mostPositiveValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("suggestedMax"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the "),a("code",[t._v("suggestedMin")]),t._v(" setting, it is ignored.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'radar'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'First dataset'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("r")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMin")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMax")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("In contrast to the "),a("code",[t._v("suggested*")]),t._v(" settings, the "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(" settings set explicit ends to the axes. When these are set, some data points may not be visible.")]),t._v(" "),a("h2",{attrs:{id:"step-size"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-size"}},[t._v("#")]),t._v(" Step Size")]),t._v(" "),a("p",[t._v("If set, the scale ticks will be enumerated by multiple of "),a("code",[t._v("stepSize")]),t._v(", having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.")]),t._v(" "),a("p",[t._v("This example sets up a chart with a y axis that creates ticks at "),a("code",[t._v("0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" options "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("r")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("max")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("ticks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("stepSize")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.5")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"angle-line-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#angle-line-options"}},[t._v("#")]),t._v(" Angle Line Options")]),t._v(" "),a("p",[t._v("The following options are used to configure angled lines that radiate from the center of the chart to the point labels.\nNamespace: "),a("code",[t._v("options.scales[scaleId].angleLines")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, angle lines are shown.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.borderColor")])]),t._v(" "),a("td",[t._v("Color of angled lines.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("lineWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])]),t._v(" "),a("td",[t._v("Width of angled lines.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDash")])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",[t._v("Yes"),a("sup",[t._v("1")])]),t._v(" "),a("td",[a("code",[t._v("[]")])]),t._v(" "),a("td",[t._v("Length and spacing of dashes on angled lines. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDashOffset")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0.0")])]),t._v(" "),a("td",[t._v("Offset for line dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])])])]),t._v(" "),a("ol",[a("li",[t._v("the "),a("code",[t._v("borderDash")]),t._v(" setting only accepts a static value or a function. Passing an array of arrays is not supported.")])]),t._v(" "),a("p",[t._v("The scriptable context is described in "),a("RouterLink",{attrs:{to:"/general/options.html#scale"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),a("h2",{attrs:{id:"point-label-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#point-label-options"}},[t._v("#")]),t._v(" Point Label Options")]),t._v(" "),a("p",[t._v("The following options are used to configure the point labels that are shown on the perimeter of the scale.\nNamespace: "),a("code",[t._v("options.scales[scaleId].pointLabels")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Scriptable")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backdropColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[a("code",[t._v("undefined")])]),t._v(" "),a("td",[t._v("Background color of the point label.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backdropPadding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Padding of label backdrop.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderRadius")])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Border radius of the point label")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, point labels are shown.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callback")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Callback function to transform data labels to point labels. The default implementation simply returns the current string.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of label.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("5")]),t._v(" "),a("td",[t._v("Padding between chart and point labels.")])]),t._v(" "),a("tr",[a("td",[a("RouterLink",{attrs:{to:"/samples/other-Graficas/polar-area-center-labels.html"}},[a("code",[t._v("centerPointLabels")])])],1),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, point labels are centered.")])])])]),t._v(" "),a("p",[t._v("The scriptable context is described in "),a("RouterLink",{attrs:{to:"/general/options.html#scale"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[t._v("Internally, the linear radial scale uses numeric data")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/141.34a018bb.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/141.34a018bb.js new file mode 100644 index 0000000..0d89fc3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/141.34a018bb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[141],{470:function(t,e,d){"use strict";d.r(e);var a=d(6),r=Object(a.a)({},(function(){var t=this,e=t.$createElement,d=t._self._c||e;return d("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[d("h1",{attrs:{id:"styling"}},[d("a",{staticClass:"header-anchor",attrs:{href:"#styling"}},[t._v("#")]),t._v(" Styling")]),t._v(" "),d("p",[t._v("There are a number of options to allow styling an axis. There are settings to control "),d("a",{attrs:{href:"#grid-line-configuration"}},[t._v("grid lines")]),t._v(" and "),d("a",{attrs:{href:"#tick-configuration"}},[t._v("ticks")]),t._v(".")]),t._v(" "),d("h2",{attrs:{id:"grid-line-configuration"}},[d("a",{staticClass:"header-anchor",attrs:{href:"#grid-line-configuration"}},[t._v("#")]),t._v(" Grid Line Configuration")]),t._v(" "),d("p",[t._v("Namespace: "),d("code",[t._v("options.scales[scaleId].grid")]),t._v(", it defines options for the grid lines that run perpendicular to the axis.")]),t._v(" "),d("table",[d("thead",[d("tr",[d("th",[t._v("Name")]),t._v(" "),d("th",[t._v("Type")]),t._v(" "),d("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),d("th",{staticStyle:{"text-align":"center"}},[t._v("Indexable")]),t._v(" "),d("th",[t._v("Default")]),t._v(" "),d("th",[t._v("Description")])])]),t._v(" "),d("tbody",[d("tr",[d("td",[d("code",[t._v("borderColor")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("Chart.defaults.borderColor")])]),t._v(" "),d("td",[t._v("The color of the border line.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("borderWidth")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("1")])]),t._v(" "),d("td",[t._v("The width of the border line.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("borderDash")])]),t._v(" "),d("td",[d("code",[t._v("number[]")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("[]")])]),t._v(" "),d("td",[t._v("Length and spacing of dashes on grid lines. See "),d("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),d("OutboundLink")],1),t._v(".")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("borderDashOffset")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("0.0")])]),t._v(" "),d("td",[t._v("Offset for line dashes. See "),d("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),d("OutboundLink")],1),t._v(".")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("circular")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("false")])]),t._v(" "),d("td",[t._v("If true, gridlines are circular (on radar and polar area Graficas only).")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("color")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("Chart.defaults.borderColor")])]),t._v(" "),d("td",[t._v("The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line, and so on.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("display")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("true")])]),t._v(" "),d("td",[t._v("If false, do not display grid lines for this axis.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("drawBorder")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("true")])]),t._v(" "),d("td",[t._v("If true, draw a border at the edge between the axis and the chart area.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("drawOnChartArea")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("true")])]),t._v(" "),d("td",[t._v("If true, draw lines on the chart area inside the axis lines. This is useful when there are multiple axes and you need to control which grid lines are drawn.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("drawTicks")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("true")])]),t._v(" "),d("td",[t._v("If true, draw lines beside the ticks in the axis area beside the chart.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("lineWidth")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("1")])]),t._v(" "),d("td",[t._v("Stroke width of grid lines.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("offset")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("false")])]),t._v(" "),d("td",[t._v("If true, grid lines will be shifted to be between labels. This is set to "),d("code",[t._v("true")]),t._v(" for a bar chart by default.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("tickBorderDash")])]),t._v(" "),d("td",[d("code",[t._v("number[]")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td"),t._v(" "),d("td",[t._v("Length and spacing of the tick mark line. If not set, defaults to the grid line "),d("code",[t._v("borderDash")]),t._v(" value.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("tickBorderDashOffset")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td"),t._v(" "),d("td",[t._v("Offset for the line dash of the tick mark. If unset, defaults to the grid line "),d("code",[t._v("borderDashOffset")]),t._v(" value")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("tickColor")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td"),t._v(" "),d("td",[t._v("Color of the tick line. If unset, defaults to the grid line color.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("tickLength")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("8")])]),t._v(" "),d("td",[t._v("Length in pixels that the grid lines will draw into the axis area.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("tickWidth")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td"),t._v(" "),d("td",[t._v("Width of the tick mark in pixels. If unset, defaults to the grid line width.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("z")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("0")])]),t._v(" "),d("td",[t._v("z-index of gridline layer. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),d("p",[t._v("The scriptable context is described in "),d("RouterLink",{attrs:{to:"/general/options.html#tick"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),d("h2",{attrs:{id:"tick-configuration"}},[d("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[t._v("#")]),t._v(" Tick Configuration")]),t._v(" "),d("h3",{attrs:{id:"common-tick-options-to-all-axes"}},[d("a",{staticClass:"header-anchor",attrs:{href:"#common-tick-options-to-all-axes"}},[t._v("#")]),t._v(" Common tick options to all axes")]),t._v(" "),d("p",[t._v("Namespace: "),d("code",[t._v("options.scales[scaleId].ticks")])]),t._v(" "),d("table",[d("thead",[d("tr",[d("th",[t._v("Name")]),t._v(" "),d("th",[t._v("Type")]),t._v(" "),d("th",{staticStyle:{"text-align":"center"}},[t._v("Scriptable")]),t._v(" "),d("th",[t._v("Default")]),t._v(" "),d("th",[t._v("Description")])])]),t._v(" "),d("tbody",[d("tr",[d("td",[d("code",[t._v("backdropColor")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("'rgba(255, 255, 255, 0.75)'")])]),t._v(" "),d("td",[t._v("Color of label backdrops.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("backdropPadding")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/padding.html"}},[d("code",[t._v("Padding")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("2")])]),t._v(" "),d("td",[t._v("Padding of label backdrop.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("callback")])]),t._v(" "),d("td",[d("code",[t._v("function")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td"),t._v(" "),d("td",[t._v("Returns the string representation of the tick value as it should be displayed on the chart. See "),d("RouterLink",{attrs:{to:"/axes/labelling.html#creating-custom-tick-formats"}},[t._v("callback")]),t._v(".")],1)]),t._v(" "),d("tr",[d("td",[d("code",[t._v("display")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("true")])]),t._v(" "),d("td",[t._v("If true, show tick labels.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("color")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("Chart.defaults.color")])]),t._v(" "),d("td",[t._v("Color of ticks.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("font")])]),t._v(" "),d("td",[d("code",[t._v("Font")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("Chart.defaults.font")])]),t._v(" "),d("td",[t._v("See "),d("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),d("tr",[d("td",[d("code",[t._v("major")])]),t._v(" "),d("td",[d("code",[t._v("object")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("{}")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/axes/styling.html#major-tick-configuration"}},[t._v("Major ticks configuration")]),t._v(".")],1)]),t._v(" "),d("tr",[d("td",[d("code",[t._v("padding")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("3")])]),t._v(" "),d("td",[t._v("Sets the offset of the tick labels from the axis")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("showLabelBackdrop")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("true")]),t._v(" for radial scale, "),d("code",[t._v("false")]),t._v(" otherwise")]),t._v(" "),d("td",[t._v("If true, draw a background behind the tick labels.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("textStrokeColor")])]),t._v(" "),d("td",[d("RouterLink",{attrs:{to:"/general/colors.html"}},[d("code",[t._v("Color")])])],1),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[t._v("``")]),t._v(" "),d("td",[t._v("The color of the stroke around the text.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("textStrokeWidth")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),d("td",[d("code",[t._v("0")])]),t._v(" "),d("td",[t._v("Stroke width around the text.")])]),t._v(" "),d("tr",[d("td",[d("code",[t._v("z")])]),t._v(" "),d("td",[d("code",[t._v("number")])]),t._v(" "),d("td",{staticStyle:{"text-align":"center"}}),t._v(" "),d("td",[d("code",[t._v("0")])]),t._v(" "),d("td",[t._v("z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.")])])])]),t._v(" "),d("p",[t._v("The scriptable context is described in "),d("RouterLink",{attrs:{to:"/general/options.html#tick"}},[t._v("Options")]),t._v(" section.")],1),t._v(" "),d("h2",{attrs:{id:"major-tick-configuration"}},[d("a",{staticClass:"header-anchor",attrs:{href:"#major-tick-configuration"}},[t._v("#")]),t._v(" Major Tick Configuration")]),t._v(" "),d("p",[t._v("Namespace: "),d("code",[t._v("options.scales[scaleId].ticks.major")]),t._v(", it defines options for the major tick marks that are generated by the axis.")]),t._v(" "),d("table",[d("thead",[d("tr",[d("th",[t._v("Name")]),t._v(" "),d("th",[t._v("Type")]),t._v(" "),d("th",[t._v("Default")]),t._v(" "),d("th",[t._v("Description")])])]),t._v(" "),d("tbody",[d("tr",[d("td",[d("code",[t._v("enabled")])]),t._v(" "),d("td",[d("code",[t._v("boolean")])]),t._v(" "),d("td",[d("code",[t._v("false")])]),t._v(" "),d("td",[t._v("If true, major ticks are generated. A major tick will affect autoskipping and "),d("code",[t._v("major")]),t._v(" will be defined on ticks in the scriptable options context.")])])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/142.c5bfcdd4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/142.c5bfcdd4.js new file mode 100644 index 0000000..b5dba2f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/142.c5bfcdd4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[142],{471:function(t,a,e){"use strict";e.r(a);var s=e(6),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"area-chart"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#area-chart"}},[t._v("#")]),t._v(" Area Chart")]),t._v(" "),e("p",[t._v("Both "),e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("line")]),t._v(" and "),e("RouterLink",{attrs:{to:"/Graficas/radar.html"}},[t._v("radar")]),t._v(" Graficas support a "),e("code",[t._v("fill")]),t._v(" option on the dataset object which can be used to create space between two datasets or a dataset and a boundary, i.e. the scale "),e("code",[t._v("origin")]),t._v(", "),e("code",[t._v("start,")]),t._v(" or "),e("code",[t._v("end")]),t._v(" (see "),e("a",{attrs:{href:"#filling-modes"}},[t._v("filling modes")]),t._v(").")],1),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("This feature is implemented by the "),e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/master/src/plugins/plugin.filler/index.js",target:"_blank",rel:"noopener noreferrer"}},[e("code",[t._v("filler")]),t._v(" plugin"),e("OutboundLink")],1),t._v(".")])]),t._v(" "),e("h2",{attrs:{id:"filling-modes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#filling-modes"}},[t._v("#")]),t._v(" Filling modes")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Mode")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Values")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Absolute dataset index")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("number")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("1")]),t._v(", "),e("code",[t._v("2")]),t._v(", "),e("code",[t._v("3")]),t._v(", ...")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Relative dataset index")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("string")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("'-1'")]),t._v(", "),e("code",[t._v("'-2'")]),t._v(", "),e("code",[t._v("'+1'")]),t._v(", ...")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Boundary")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("string")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("'start'")]),t._v(", "),e("code",[t._v("'end'")]),t._v(", "),e("code",[t._v("'origin'")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Disabled "),e("sup",[t._v("1")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("boolean")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("false")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Stacked value below")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("string")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("'stack'")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Axis value")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("object")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("{ value: number; }")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[t._v("Shape (fill inside line)")]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("string")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("'shape'")])])])])]),t._v(" "),e("blockquote",[e("p",[e("sup",[t._v("1")]),t._v(" for backward compatibility, "),e("code",[t._v("fill: true")]),t._v(" is equivalent to "),e("code",[t._v("fill: 'origin'")]),e("br")])]),t._v(" "),e("h3",{attrs:{id:"example"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'origin'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 0: fill to 'origin'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'+2'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 1: fill to dataset 3")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 2: fill to dataset 1")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 3: no fill")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'-2'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 4: fill to dataset 2")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 5: fill to axis value 25")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("If you need to support multiple colors when filling from one dataset to another, you may specify an object with the following option :")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Param")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("target")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("number")]),t._v(", "),e("code",[t._v("string")]),t._v(", "),e("code",[t._v("boolean")]),t._v(", "),e("code",[t._v("object")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[t._v("The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries.")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("above")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("Color")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[t._v("If no color is set, the default color will be the background color of the chart.")])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("below")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("Color")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[t._v("Same as the above.")])])])]),t._v(" "),e("h3",{attrs:{id:"example-with-multiple-colors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-with-multiple-colors"}},[t._v("#")]),t._v(" Example with multiple colors")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("target")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'origin'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("above")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 0, 0)'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Area will be red above the origin")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("below")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(0, 0, 255)'")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// And blue below the origin")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("h2",{attrs:{id:"configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configuration"}},[t._v("#")]),t._v(" Configuration")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.plugins.filler")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",{staticStyle:{"text-align":"left"}},[t._v("Option")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Default")]),t._v(" "),e("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("drawTime")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("string")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("beforeDatasetDraw")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[t._v("Filler draw time. Supported values: "),e("code",[t._v("'beforeDraw'")]),t._v(", "),e("code",[t._v("'beforeDatasetDraw'")]),t._v(", "),e("code",[t._v("'beforeDatasetsDraw'")])])]),t._v(" "),e("tr",[e("td",{staticStyle:{"text-align":"left"}},[e("a",{attrs:{href:"#propagate"}},[e("code",[t._v("propagate")])])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("boolean")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[e("code",[t._v("true")])]),t._v(" "),e("td",{staticStyle:{"text-align":"left"}},[t._v("Fill propagation when target is hidden.")])])])]),t._v(" "),e("h3",{attrs:{id:"propagate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#propagate"}},[t._v("#")]),t._v(" propagate")]),t._v(" "),e("p",[e("code",[t._v("propagate")]),t._v(" takes a "),e("code",[t._v("boolean")]),t._v(" value (default: "),e("code",[t._v("true")]),t._v(").")]),t._v(" "),e("p",[t._v("If "),e("code",[t._v("true")]),t._v(", the fill area will be recursively extended to the visible target defined by the "),e("code",[t._v("fill")]),t._v(" value of hidden dataset targets:")]),t._v(" "),e("h4",{attrs:{id:"example-using-propagate"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-using-propagate"}},[t._v("#")]),t._v(" Example using propagate")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'origin'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 0: fill to 'origin'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'-1'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 1: fill to dataset 0")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 2: fill to dataset 1")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 3: no fill")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fill")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'-2'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 4: fill to dataset 2")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("filler")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("propagate")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[e("code",[t._v("propagate: true")]),t._v(":\n-if dataset 2 is hidden, dataset 4 will fill to dataset 1\n-if dataset 2 and 1 are hidden, dataset 4 will fill to "),e("code",[t._v("'origin'")])]),t._v(" "),e("p",[e("code",[t._v("propagate: false")]),t._v(":\n-if dataset 2 and/or 4 are hidden, dataset 4 will not be filled")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/143.05e388ba.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/143.05e388ba.js new file mode 100644 index 0000000..de47d6c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/143.05e388ba.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[143],{472:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"bar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bar-chart"}},[t._v("#")]),t._v(" Bar Chart")]),t._v(" "),a("p",[t._v("A bar chart provides a way of showing data values represented as vertical bars. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First Dataset',\n data: [65, 59, 80, 81, 56, 55, 40],\n backgroundColor: [\n 'rgba(255, 99, 132, 0.2)',\n 'rgba(255, 159, 64, 0.2)',\n 'rgba(255, 205, 86, 0.2)',\n 'rgba(75, 192, 192, 0.2)',\n 'rgba(54, 162, 235, 0.2)',\n 'rgba(153, 102, 255, 0.2)',\n 'rgba(201, 203, 207, 0.2)'\n ],\n borderColor: [\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(54, 162, 235)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)'\n ],\n borderWidth: 1\n }]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n scales: {\n y: {\n beginAtZero: true\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.bar")]),t._v(" - options for all bar datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.bar")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#bar-configuration"}},[t._v("bar elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The bar chart allows a number of properties to be specified for each dataset.\nThese are used to set display properties for a specific dataset. For example,\nthe color of the bars is generally set this way.\nOnly the "),a("code",[t._v("data")]),t._v(" option needs to be specified in the dataset namespace.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("base")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#barpercentage"}},[a("code",[t._v("barPercentage")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0.9")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#barthickness"}},[a("code",[t._v("barThickness")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])])]),t._v(" "),a("td",[a("code",[t._v("string")]),t._v("|"),a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'start'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderwidth"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderradius"}},[a("code",[t._v("borderRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#categorypercentage"}},[a("code",[t._v("categoryPercentage")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0.8")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("object")]),t._v("|"),a("code",[t._v("object[]")]),t._v("| "),a("code",[t._v("number[]")]),t._v("|"),a("code",[t._v("string[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("grouped")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("true")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("indexAxis")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'x'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#inflateamount"}},[a("code",[t._v("inflateAmount")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("'auto'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'auto'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#maxbarthickness"}},[a("code",[t._v("maxBarThickness")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("minBarLength")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("label")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("''")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("order")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#types"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'circle'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("skipNull")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td")]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("stack")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'bar'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("xAxisID")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[t._v("first x axis")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("yAxisID")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[t._v("first y axis")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"example-dataset-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-dataset-configuration"}},[t._v("#")]),t._v(" Example dataset configuration")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("barPercentage")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("barThickness")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("maxBarThickness")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("minBarLength")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("60")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("70")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("base")])]),t._v(" "),a("td",[t._v("Base value for the bar in data units along the value axis. If not set, defaults to the value axis base value.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grouped")])]),t._v(" "),a("td",[t._v("Should the bars be grouped on index axis. When "),a("code",[t._v("true")]),t._v(", all the datasets at same index value will be placed next to each other centering on that index value. When "),a("code",[t._v("false")]),t._v(", each bar is placed on its actual index-axis value.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("indexAxis")])]),t._v(" "),a("td",[t._v("The base axis of the dataset. "),a("code",[t._v("'x'")]),t._v(" for vertical bars and "),a("code",[t._v("'y'")]),t._v(" for horizontal bars.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("label")])]),t._v(" "),a("td",[t._v("The label for the dataset which appears in the legend and tooltips.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("order")])]),t._v(" "),a("td",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend. "),a("RouterLink",{attrs:{to:"/Graficas/mixed.html#drawing-order"}},[t._v("more")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("skipNull")])]),t._v(" "),a("td",[t._v("If "),a("code",[t._v("true")]),t._v(", null or undefined values will not be used for spacing calculations when determining bar size.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stack")])]),t._v(" "),a("td",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). "),a("a",{attrs:{href:"#stacked-bar-chart"}},[t._v("more")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("xAxisID")])]),t._v(" "),a("td",[t._v("The ID of the x-axis to plot this dataset on.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("yAxisID")])]),t._v(" "),a("td",[t._v("The ID of the y-axis to plot this dataset on.")])])])]),t._v(" "),a("h3",{attrs:{id:"styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#styling"}},[t._v("#")]),t._v(" Styling")]),t._v(" "),a("p",[t._v("The style of each bar can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("The bar background color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("The bar border color.")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])])]),t._v(" "),a("td",[t._v("The edge to skip when drawing bar.")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderwidth"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[t._v("The bar border width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#borderradius"}},[a("code",[t._v("borderRadius")])])]),t._v(" "),a("td",[t._v("The bar border radius (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("minBarLength")])]),t._v(" "),a("td",[t._v("Set this to ensure that bars have a minimum length in pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",[t._v("Style of the point for legend. "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[t._v("more...")])],1)])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#bar-configuration"}},[a("code",[t._v("elements.bar.*")])]),t._v(" options.")],1),t._v(" "),a("h4",{attrs:{id:"borderskipped"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#borderskipped"}},[t._v("#")]),t._v(" borderSkipped")]),t._v(" "),a("p",[t._v("This setting is used to avoid drawing the bar stroke at the base of the fill, or disable the border radius.\nIn general, this does not need to be changed except when creating chart types\nthat derive from a bar chart.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("For negative bars in a vertical chart, "),a("code",[t._v("top")]),t._v(" and "),a("code",[t._v("bottom")]),t._v(" are flipped. Same goes for "),a("code",[t._v("left")]),t._v(" and "),a("code",[t._v("right")]),t._v(" in a horizontal chart.")])]),t._v(" "),a("p",[t._v("Options are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'start'")])]),t._v(" "),a("li",[a("code",[t._v("'end'")])]),t._v(" "),a("li",[a("code",[t._v("'middle'")]),t._v(" (only valid on stacked bars: the borders between bars are skipped)")]),t._v(" "),a("li",[a("code",[t._v("'bottom'")])]),t._v(" "),a("li",[a("code",[t._v("'left'")])]),t._v(" "),a("li",[a("code",[t._v("'top'")])]),t._v(" "),a("li",[a("code",[t._v("'right'")])]),t._v(" "),a("li",[a("code",[t._v("false")]),t._v(" (don't skip any borders)")]),t._v(" "),a("li",[a("code",[t._v("true")]),t._v(" (skip all borders)")])]),t._v(" "),a("h4",{attrs:{id:"borderwidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),a("p",[t._v("If this value is a number, it is applied to all sides of the rectangle (left, top, right, bottom), except "),a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])]),t._v(". If this value is an object, the "),a("code",[t._v("left")]),t._v(" property defines the left border width. Similarly, the "),a("code",[t._v("right")]),t._v(", "),a("code",[t._v("top")]),t._v(", and "),a("code",[t._v("bottom")]),t._v(" properties can also be specified. Omitted borders and "),a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])]),t._v(" are skipped.")]),t._v(" "),a("h4",{attrs:{id:"borderradius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[t._v("#")]),t._v(" borderRadius")]),t._v(" "),a("p",[t._v("If this value is a number, it is applied to all corners of the rectangle (topLeft, topRight, bottomLeft, bottomRight), except corners touching the "),a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])]),t._v(". If this value is an object, the "),a("code",[t._v("topLeft")]),t._v(" property defines the top-left corners border radius. Similarly, the "),a("code",[t._v("topRight")]),t._v(", "),a("code",[t._v("bottomLeft")]),t._v(", and "),a("code",[t._v("bottomRight")]),t._v(" properties can also be specified. Omitted corners and those touching the "),a("a",{attrs:{href:"#borderskipped"}},[a("code",[t._v("borderSkipped")])]),t._v(" are skipped. For example if the "),a("code",[t._v("top")]),t._v(" border is skipped, the border radius for the corners "),a("code",[t._v("topLeft")]),t._v(" and "),a("code",[t._v("topRight")]),t._v(" will be skipped as well.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Stacked Graficas")]),t._v(" "),a("p",[t._v("When the border radius is supplied as a number and the chart is stacked, the radius will only be applied to the bars that are at the edges of the stack or where the bar is floating. The object syntax can be used to override this behavior.")])]),t._v(" "),a("h4",{attrs:{id:"inflateamount"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inflateamount"}},[t._v("#")]),t._v(" inflateAmount")]),t._v(" "),a("p",[t._v("This option can be used to inflate the rects that are used to draw the bars. This can be used to hide artifacts between bars when "),a("code",[t._v("barPercentage")]),t._v("(#barpercentage) * "),a("code",[t._v("categoryPercentage")]),t._v("(#categorypercentage) is 1. The default value "),a("code",[t._v("'auto'")]),t._v(" should work in most cases.")]),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each bar can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("hoverBackgroundColor")])]),t._v(" "),a("td",[t._v("The bar background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderColor")])]),t._v(" "),a("td",[t._v("The bar border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderWidth")])]),t._v(" "),a("td",[t._v("The bar border width when hovered (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderRadius")])]),t._v(" "),a("td",[t._v("The bar border radius when hovered (in pixels).")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#bar-configuration"}},[a("code",[t._v("elements.bar.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"barpercentage"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barpercentage"}},[t._v("#")]),t._v(" barPercentage")]),t._v(" "),a("p",[t._v("Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other. "),a("a",{attrs:{href:"#barpercentage-vs-categorypercentage"}},[t._v("more...")])]),t._v(" "),a("h3",{attrs:{id:"categorypercentage"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#categorypercentage"}},[t._v("#")]),t._v(" categoryPercentage")]),t._v(" "),a("p",[t._v("Percent (0-1) of the available width each category should be within the sample width. "),a("a",{attrs:{href:"#barpercentage-vs-categorypercentage"}},[t._v("more...")])]),t._v(" "),a("h3",{attrs:{id:"barthickness"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barthickness"}},[t._v("#")]),t._v(" barThickness")]),t._v(" "),a("p",[t._v("If this value is a number, it is applied to the width of each bar, in pixels. When this is enforced, "),a("code",[t._v("barPercentage")]),t._v(" and "),a("code",[t._v("categoryPercentage")]),t._v(" are ignored.")]),t._v(" "),a("p",[t._v("If set to "),a("code",[t._v("'flex'")]),t._v(", the base sample widths are calculated automatically based on the previous and following samples so that they take the full available widths without overlap. Then, bars are sized using "),a("code",[t._v("barPercentage")]),t._v(" and "),a("code",[t._v("categoryPercentage")]),t._v(". There is no gap when the percentage options are 1. This mode generates bars with different widths when data are not evenly spaced.")]),t._v(" "),a("p",[t._v("If not set (default), the base sample widths are calculated using the smallest interval that prevents bar overlapping, and bars are sized using "),a("code",[t._v("barPercentage")]),t._v(" and "),a("code",[t._v("categoryPercentage")]),t._v(". This mode always generates bars equally sized.")]),t._v(" "),a("h3",{attrs:{id:"maxbarthickness"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxbarthickness"}},[t._v("#")]),t._v(" maxBarThickness")]),t._v(" "),a("p",[t._v("Set this to ensure that bars are not sized thicker than this.")]),t._v(" "),a("h2",{attrs:{id:"scale-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale-configuration"}},[t._v("#")]),t._v(" Scale Configuration")]),t._v(" "),a("p",[t._v("The bar chart sets unique default values for the following configuration from the associated "),a("code",[t._v("scale")]),t._v(" options:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("offset")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, extra space is added to both edges and the axis is scaled to fit into the chart area.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("grid.offset")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval. If false, the grid line will go right down the middle of the bars. "),a("a",{attrs:{href:"#offsetgridlines"}},[t._v("more...")])])])])]),t._v(" "),a("h3",{attrs:{id:"example-scale-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-scale-configuration"}},[t._v("#")]),t._v(" Example scale configuration")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("options "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("grid")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("offset")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"offset-grid-lines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offset-grid-lines"}},[t._v("#")]),t._v(" Offset Grid Lines")]),t._v(" "),a("p",[t._v("If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval, which is the space between the grid lines. If false, the grid line will go right down the middle of the bars. This is set to true for a category scale in a bar chart while false for other scales or chart types by default.")]),t._v(" "),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("It is common to want to apply a configuration setting to all created bar Graficas. The global bar chart settings are stored in "),a("code",[t._v("Chart.overrides.bar")]),t._v(". Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.")]),t._v(" "),a("h2",{attrs:{id:"barpercentage-vs-categorypercentage"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barpercentage-vs-categorypercentage"}},[t._v("#")]),t._v(" barPercentage vs categoryPercentage")]),t._v(" "),a("p",[t._v("The following shows the relationship between the bar percentage option and the category percentage option.")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("// categoryPercentage: 1.0\n// barPercentage: 1.0\nBar: | 1.0 | 1.0 |\nCategory: | 1.0 |\nSample: |===========|\n\n// categoryPercentage: 1.0\n// barPercentage: 0.5\nBar: |.5| |.5|\nCategory: | 1.0 |\nSample: |==============|\n\n// categoryPercentage: 0.5\n// barPercentage: 1.0\nBar: |1.0||1.0|\nCategory: | .5 |\nSample: |==================|\n")])])]),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("All of the supported "),a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("data structures")]),t._v(" can be used with bar Graficas.")],1),t._v(" "),a("h2",{attrs:{id:"stacked-bar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stacked-bar-chart"}},[t._v("#")]),t._v(" Stacked Bar Chart")]),t._v(" "),a("p",[t._v("Bar Graficas can be configured into stacked bar Graficas by changing the settings on the X and Y axes to enable stacking. Stacked bar Graficas can be used to show how one data series is made up of a number of smaller pieces.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" stackedBar "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("stacked")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("stacked")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"horizontal-bar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#horizontal-bar-chart"}},[t._v("#")]),t._v(" Horizontal Bar Chart")]),t._v(" "),a("p",[t._v("A horizontal bar chart is a variation on a vertical bar chart. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.\nTo achieve this you will have to set the "),a("code",[t._v("indexAxis")]),t._v(" property in the options object to "),a("code",[t._v("'y'")]),t._v(".\nThe default for this property is "),a("code",[t._v("'x'")]),t._v(" and thus will show vertical bars.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n axis: 'y',\n label: 'My First Dataset',\n data: [65, 59, 80, 81, 56, 55, 40],\n fill: false,\n backgroundColor: [\n 'rgba(255, 99, 132, 0.2)',\n 'rgba(255, 159, 64, 0.2)',\n 'rgba(255, 205, 86, 0.2)',\n 'rgba(75, 192, 192, 0.2)',\n 'rgba(54, 162, 235, 0.2)',\n 'rgba(153, 102, 255, 0.2)',\n 'rgba(201, 203, 207, 0.2)'\n ],\n borderColor: [\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(54, 162, 235)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)'\n ],\n borderWidth: 1\n }]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data,\n options: {\n indexAxis: 'y',\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h3",{attrs:{id:"horizontal-bar-chart-config-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#horizontal-bar-chart-config-options"}},[t._v("#")]),t._v(" Horizontal Bar Chart config Options")]),t._v(" "),a("p",[t._v("The configuration options for the horizontal bar chart are the same as for the "),a("a",{attrs:{href:"#scale-configuration"}},[t._v("bar chart")]),t._v(". However, any options specified on the x-axis in a bar chart, are applied to the y-axis in a horizontal bar chart.")]),t._v(" "),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[a("code",[t._v("{x, y, _custom}")]),t._v(" where "),a("code",[t._v("_custom")]),t._v(" is an optional object defining stacked bar properties: "),a("code",[t._v("{start, end, barStart, barEnd, min, max}")]),t._v(". "),a("code",[t._v("start")]),t._v(" and "),a("code",[t._v("end")]),t._v(" are the input values. Those two are repeated in "),a("code",[t._v("barStart")]),t._v(" (closer to origin), "),a("code",[t._v("barEnd")]),t._v(" (further from origin), "),a("code",[t._v("min")]),t._v(" and "),a("code",[t._v("max")]),t._v(".")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/144.a98bdbcc.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/144.a98bdbcc.js new file mode 100644 index 0000000..ac176f2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/144.a98bdbcc.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[144],{474:function(t,e,a){"use strict";a.r(e);var r=a(6),o=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"bubble-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubble-chart"}},[t._v("#")]),t._v(" Bubble Chart")]),t._v(" "),a("p",[t._v("A bubble chart is used to display three dimensions of data at the same time. The location of the bubble is determined by the first two dimensions and the corresponding horizontal and vertical axes. The third dimension is represented by the size of the individual bubbles.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst data = {\n datasets: [{\n label: 'First Dataset',\n data: [{\n x: 20,\n y: 30,\n r: 15\n }, {\n x: 40,\n y: 10,\n r: 10\n }],\n backgroundColor: 'rgb(255, 99, 132)'\n }]\n};\n// \n\n// \nconst config = {\n type: 'bubble',\n data: data,\n options: {}\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.bubble")]),t._v(" - options for all bubble datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.point")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("point elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The bubble chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of the bubbles is generally set this way.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("3")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("object[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("drawActiveElementsOnTop")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("4")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hitRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("label")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("order")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("pointStyle")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#types"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'circle'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("rotation")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("radius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("3")])])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("drawActiveElementsOnTop")])]),t._v(" "),a("td",[t._v("Draw the active bubbles of a dataset over the other bubbles of the dataset")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("label")])]),t._v(" "),a("td",[t._v("The label for the dataset which appears in the legend and tooltips.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("order")])]),t._v(" "),a("td",[t._v("The drawing order of dataset. Also affects order for tooltip and legend. "),a("RouterLink",{attrs:{to:"/Graficas/mixed.html#drawing-order"}},[t._v("more")])],1)])])]),t._v(" "),a("h3",{attrs:{id:"styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#styling"}},[t._v("#")]),t._v(" Styling")]),t._v(" "),a("p",[t._v("The style of each bubble can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("bubble background color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("bubble border color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[t._v("bubble border width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",[t._v("bubble "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[t._v("shape style")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("rotation")])]),t._v(" "),a("td",[t._v("bubble rotation (in degrees).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("radius")])]),t._v(" "),a("td",[t._v("bubble radius (in pixels).")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[a("code",[t._v("elements.point.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each bubble can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("hitRadius")])]),t._v(" "),a("td",[t._v("bubble "),a("strong",[t._v("additional")]),t._v(" radius for hit detection (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBackgroundColor")])]),t._v(" "),a("td",[t._v("bubble background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderColor")])]),t._v(" "),a("td",[t._v("bubble border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderWidth")])]),t._v(" "),a("td",[t._v("bubble border width when hovered (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverRadius")])]),t._v(" "),a("td",[t._v("bubble "),a("strong",[t._v("additional")]),t._v(" radius when hovered (in pixels).")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[a("code",[t._v("elements.point.*")])]),t._v(" options.")],1),t._v(" "),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("We can also change the default values for the Bubble chart type. Doing so will give all bubble Graficas created after this point the new defaults. The default configuration for the bubble chart can be accessed at "),a("code",[t._v("Chart.overrides.bubble")]),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("Bubble chart datasets need to contain a "),a("code",[t._v("data")]),t._v(" array of points, each point represented by an object containing the following properties:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// X Value")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Y Value")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Bubble radius in pixels (not scaled).")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("r")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("strong",[t._v("Important:")]),t._v(" the radius property, "),a("code",[t._v("r")]),t._v(" is "),a("strong",[t._v("not")]),t._v(" scaled by the chart, it is the raw radius in pixels of the bubble that is drawn on the canvas.")]),t._v(" "),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[a("code",[t._v("{x, y, _custom}")]),t._v(" where "),a("code",[t._v("_custom")]),t._v(" is the radius.")])],1)}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/145.826b73e0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/145.826b73e0.js new file mode 100644 index 0000000..58680ef --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/145.826b73e0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[145],{473:function(t,e,a){"use strict";a.r(e);var r=a(6),o=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"doughnut-and-pie-Graficas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#doughnut-and-pie-Graficas"}},[t._v("#")]),t._v(" Doughnut and Pie Graficas")]),t._v(" "),a("p",[t._v("Pie and doughnut Graficas are probably the most commonly used Graficas. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.")]),t._v(" "),a("p",[t._v("They are excellent at showing the relational proportions between data.")]),t._v(" "),a("p",[t._v("Pie and doughnut Graficas are effectively the same class in Chart.js, but have one different default value - their "),a("code",[t._v("cutout")]),t._v(". This equates to what portion of the inner should be cut out. This defaults to "),a("code",[t._v("0")]),t._v(" for pie Graficas, and "),a("code",[t._v("'50%'")]),t._v(" for doughnuts.")]),t._v(" "),a("p",[t._v("They are also Registroed under two aliases in the "),a("code",[t._v("Chart")]),t._v(" core. Other than their different default value, and different alias, they are exactly the same.")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"Doughnut"}},[a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Red',\n 'Blue',\n 'Yellow'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [300, 50, 100],\n backgroundColor: [\n 'rgb(255, 99, 132)',\n 'rgb(54, 162, 235)',\n 'rgb(255, 205, 86)'\n ],\n hoverOffset: 4\n }]\n};\n// \n\n// \nconst config = {\n type: 'doughnut',\n data: data,\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1),t._v(" "),a("tab",{attrs:{name:"Pie"}},[a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Red',\n 'Blue',\n 'Yellow'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [300, 50, 100],\n backgroundColor: [\n 'rgb(255, 99, 132)',\n 'rgb(54, 162, 235)',\n 'rgb(255, 205, 86)'\n ],\n hoverOffset: 4\n }]\n};\n// \n\n// \nconst config = {\n type: 'pie',\n data: data,\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1)],1),t._v(" "),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.doughnut")]),t._v(" - options for all doughnut datasets")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.pie")]),t._v(" - options for all pie datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.arc")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[t._v("arc elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The doughnut/pie chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colours of the dataset's arcs are generally set this way.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#border-alignment"}},[a("code",[t._v("borderAlign")])])]),t._v(" "),a("td",[a("code",[t._v("'center'")]),t._v("|"),a("code",[t._v("'inner'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'center'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'#fff'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#border-radius"}},[a("code",[t._v("borderRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("2")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("circumference")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverOffset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("offset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("rotation")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("spacing")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("weight")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("1")])])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("circumference")])]),t._v(" "),a("td",[t._v("Per-dataset override for the sweep that the arcs cover")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("rotation")])]),t._v(" "),a("td",[t._v("Per-dataset override for the starting angle to draw arcs from")])])])]),t._v(" "),a("h3",{attrs:{id:"styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#styling"}},[t._v("#")]),t._v(" Styling")]),t._v(" "),a("p",[t._v("The style of each arc can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("arc background color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("arc border color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderJoinStyle")])]),t._v(" "),a("td",[t._v("arc border join style. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[t._v("arc border width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("offset")])]),t._v(" "),a("td",[t._v("arc offset (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("spacing")])]),t._v(" "),a("td",[t._v("Fixed arc offset (in pixels). Similar to "),a("code",[t._v("offset")]),t._v(" but applies to all arcs.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("weight")])]),t._v(" "),a("td",[t._v("The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[a("code",[t._v("elements.arc.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"border-alignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#border-alignment"}},[t._v("#")]),t._v(" Border Alignment")]),t._v(" "),a("p",[t._v("The following values are supported for "),a("code",[t._v("borderAlign")]),t._v(".")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'center'")]),t._v(" (default)")]),t._v(" "),a("li",[a("code",[t._v("'inner'")])])]),t._v(" "),a("p",[t._v("When "),a("code",[t._v("'center'")]),t._v(" is set, the borders of arcs next to each other will overlap. When "),a("code",[t._v("'inner'")]),t._v(" is set, it is guaranteed that all borders will not overlap.")]),t._v(" "),a("h3",{attrs:{id:"border-radius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#border-radius"}},[t._v("#")]),t._v(" Border Radius")]),t._v(" "),a("p",[t._v("If this value is a number, it is applied to all corners of the arc (outerStart, outerEnd, innerStart, innerRight). If this value is an object, the "),a("code",[t._v("outerStart")]),t._v(" property defines the outer-start corner's border radius. Similarly, the "),a("code",[t._v("outerEnd")]),t._v(", "),a("code",[t._v("innerStart")]),t._v(", and "),a("code",[t._v("innerEnd")]),t._v(" properties can also be specified.")]),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each arc can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("hoverBackgroundColor")])]),t._v(" "),a("td",[t._v("arc background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderColor")])]),t._v(" "),a("td",[t._v("arc border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderJoinStyle")])]),t._v(" "),a("td",[t._v("arc border join style when hovered. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderWidth")])]),t._v(" "),a("td",[t._v("arc border width when hovered (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverOffset")])]),t._v(" "),a("td",[t._v("arc offset when hovered (in pixels).")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[a("code",[t._v("elements.arc.*")])]),t._v(" options.")],1),t._v(" "),a("h2",{attrs:{id:"config-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#config-options"}},[t._v("#")]),t._v(" Config Options")]),t._v(" "),a("p",[t._v("These are the customisation options specific to Pie & Doughnut Graficas. These options are looked up on access, and form together with the global chart configuration the options of the chart.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("cutout")])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("50%")]),t._v(" - for doughnut, "),a("code",[t._v("0")]),t._v(" - for pie")]),t._v(" "),a("td",[t._v("The portion of the chart that is cut out of the middle. If "),a("code",[t._v("string")]),t._v(" and ending with '%', percentage of the chart radius. "),a("code",[t._v("number")]),t._v(" is considered to be pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("radius")])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("100%")])]),t._v(" "),a("td",[t._v("The outer radius of the chart. If "),a("code",[t._v("string")]),t._v(" and ending with '%', percentage of the maximum radius. "),a("code",[t._v("number")]),t._v(" is considered to be pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("rotation")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("0")]),t._v(" "),a("td",[t._v("Starting angle to draw arcs from.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("circumference")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[t._v("360")]),t._v(" "),a("td",[t._v("Sweep to allow arcs to cover.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("animation.animateRotate")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, the chart will animate in with a rotation animation. This property is in the "),a("code",[t._v("options.animation")]),t._v(" object.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("animation.animateScale")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("If true, will animate scaling the chart from the center outwards.")])])])]),t._v(" "),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("We can also change these default values for each Doughnut type that is created, this object is available at "),a("code",[t._v("Chart.overrides.doughnut")]),t._v(". Pie Graficas also have a clone of these defaults available to change at "),a("code",[t._v("Chart.overrides.pie")]),t._v(", with the only difference being "),a("code",[t._v("cutout")]),t._v(" being set to 0.")]),t._v(" "),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("For a pie chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.")]),t._v(" "),a("p",[t._v("You also need to specify an array of labels so that tooltips appear correctly.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These labels appear in the legend and in the tooltips when hovering different arcs")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Red'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Yellow'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Blue'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])],1)}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/146.001afadf.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/146.001afadf.js new file mode 100644 index 0000000..cd7df75 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/146.001afadf.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[146],{475:function(t,e,a){"use strict";a.r(e);var n=a(6),o=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart"}},[t._v("#")]),t._v(" Line Chart")]),t._v(" "),a("p",[t._v("A line chart is a way of plotting data points on a line. Often, it is used to show trend data, or the comparison of two data sets.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First Dataset',\n data: [65, 59, 80, 81, 56, 55, 40],\n fill: false,\n borderColor: 'rgb(75, 192, 192)',\n tension: 0.1\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.line")]),t._v(" - options for all line datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.line")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#line-configuration"}},[t._v("line elements")])],1),t._v(" "),a("li",[a("code",[t._v("options.elements.point")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("point elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The line chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderCapStyle")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'butt'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderDash")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("[]")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderDashOffset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0.0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'miter'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("3")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#cubicinterpolationmode"}},[a("code",[t._v("cubicInterpolationMode")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'default'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("object")]),t._v("|"),a("code",[t._v("object[]")]),t._v("| "),a("code",[t._v("number[]")]),t._v("|"),a("code",[t._v("string[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("drawActiveElementsOnTop")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("fill")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("false")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderCapStyle")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderDash")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderDashOffset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("indexAxis")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'x'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("label")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("''")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("order")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBackgroundColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBorderColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointHitRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBackgroundColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBorderColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("4")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("3")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointRotation")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointStyle")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#types"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'circle'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#segment"}},[a("code",[t._v("segment")])])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("showLine")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("true")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("spanGaps")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("stack")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'line'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#stepped"}},[a("code",[t._v("stepped")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("false")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("tension")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("xAxisID")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[t._v("first x axis")])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("yAxisID")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[t._v("first y axis")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("drawActiveElementsOnTop")])]),t._v(" "),a("td",[t._v("Draw the active points of a dataset over the other points of the dataset")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("indexAxis")])]),t._v(" "),a("td",[t._v("The base axis of the dataset. "),a("code",[t._v("'x'")]),t._v(" for horizontal lines and "),a("code",[t._v("'y'")]),t._v(" for vertical lines.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("label")])]),t._v(" "),a("td",[t._v("The label for the dataset which appears in the legend and tooltips.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("order")])]),t._v(" "),a("td",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend. "),a("RouterLink",{attrs:{to:"/Graficas/mixed.html#drawing-order"}},[t._v("more")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("stack")])]),t._v(" "),a("td",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). "),a("a",{attrs:{href:"#stacked-area-chart"}},[t._v("more")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("xAxisID")])]),t._v(" "),a("td",[t._v("The ID of the x-axis to plot this dataset on.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("yAxisID")])]),t._v(" "),a("td",[t._v("The ID of the y-axis to plot this dataset on.")])])])]),t._v(" "),a("h3",{attrs:{id:"point-styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#point-styling"}},[t._v("#")]),t._v(" Point Styling")]),t._v(" "),a("p",[t._v("The style of each point can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("pointBackgroundColor")])]),t._v(" "),a("td",[t._v("The fill color for points.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointBorderColor")])]),t._v(" "),a("td",[t._v("The border color for points.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointBorderWidth")])]),t._v(" "),a("td",[t._v("The width of the point border in pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHitRadius")])]),t._v(" "),a("td",[t._v("The pixel size of the non-displayed point that reacts to mouse events.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointRadius")])]),t._v(" "),a("td",[t._v("The radius of the point shape. If set to 0, the point is not rendered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointRotation")])]),t._v(" "),a("td",[t._v("The rotation of the point in degrees.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",[t._v("Style of the point. "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[t._v("more...")])],1)])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback first to the dataset options then to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[a("code",[t._v("elements.point.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"line-styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-styling"}},[t._v("#")]),t._v(" Line Styling")]),t._v(" "),a("p",[t._v("The style of the line can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("The line fill color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderCapStyle")])]),t._v(" "),a("td",[t._v("Cap style of the line. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("The line color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDash")])]),t._v(" "),a("td",[t._v("Length and spacing of dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDashOffset")])]),t._v(" "),a("td",[t._v("Offset for line dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderJoinStyle")])]),t._v(" "),a("td",[t._v("Line joint style. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[t._v("The line width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("fill")])]),t._v(" "),a("td",[t._v("How to fill the area under the line. See "),a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[t._v("area Graficas")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("tension")])]),t._v(" "),a("td",[t._v("Bezier curve tension of the line. Set to 0 to draw straightlines. This option is ignored if monotone cubic interpolation is used.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("showLine")])]),t._v(" "),a("td",[t._v("If false, the line is not drawn for this dataset.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("spanGaps")])]),t._v(" "),a("td",[t._v("If true, lines will be drawn between points with no or null data. If false, points with "),a("code",[t._v("null")]),t._v(" data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.")])])])]),t._v(" "),a("p",[t._v("If the value is "),a("code",[t._v("undefined")]),t._v(", the values fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#line-configuration"}},[a("code",[t._v("elements.line.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each point can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("pointHoverBackgroundColor")])]),t._v(" "),a("td",[t._v("Point background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverBorderColor")])]),t._v(" "),a("td",[t._v("Point border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverBorderWidth")])]),t._v(" "),a("td",[t._v("Border width of point when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverRadius")])]),t._v(" "),a("td",[t._v("The radius of the point when hovered.")])])])]),t._v(" "),a("h3",{attrs:{id:"cubicinterpolationmode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cubicinterpolationmode"}},[t._v("#")]),t._v(" cubicInterpolationMode")]),t._v(" "),a("p",[t._v("The following interpolation modes are supported.")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'default'")])]),t._v(" "),a("li",[a("code",[t._v("'monotone'")])])]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("'default'")]),t._v(" algorithm uses a custom weighted cubic interpolation, which produces pleasant curves for all types of datasets.")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("'monotone'")]),t._v(" algorithm is more suited to "),a("code",[t._v("y = f(x)")]),t._v(" datasets: it preserves monotonicity (or piecewise monotonicity) of the dataset being interpolated, and ensures local extremums (if any) stay at input data points.")]),t._v(" "),a("p",[t._v("If left untouched ("),a("code",[t._v("undefined")]),t._v("), the global "),a("code",[t._v("options.elements.line.cubicInterpolationMode")]),t._v(" property is used.")]),t._v(" "),a("h3",{attrs:{id:"segment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#segment"}},[t._v("#")]),t._v(" Segment")]),t._v(" "),a("p",[t._v("Line segment styles can be overridden by scriptable options in the "),a("code",[t._v("segment")]),t._v(" object. Currently all of the "),a("code",[t._v("border*")]),t._v(" and "),a("code",[t._v("backgroundColor")]),t._v(" options are supported. The segment styles are resolved for each section of the line between each point. "),a("code",[t._v("undefined")]),t._v(" fallbacks to main line styles.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("To be able to style gaps, you need the "),a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("spanGaps")])]),t._v(" option enabled.")])]),t._v(" "),a("p",[t._v("Context for the scriptable segment contains the following properties:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'segment'")])]),t._v(" "),a("li",[a("code",[t._v("p0")]),t._v(": first point element")]),t._v(" "),a("li",[a("code",[t._v("p1")]),t._v(": second point element")]),t._v(" "),a("li",[a("code",[t._v("p0DataIndex")]),t._v(": index of first point in the data array")]),t._v(" "),a("li",[a("code",[t._v("p1DataIndex")]),t._v(": index of second point in the data array")]),t._v(" "),a("li",[a("code",[t._v("datasetIndex")]),t._v(": dataset index")])]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/samples/line/segments.html"}},[t._v("Example usage")])],1),t._v(" "),a("h3",{attrs:{id:"stepped"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stepped"}},[t._v("#")]),t._v(" Stepped")]),t._v(" "),a("p",[t._v("The following values are supported for "),a("code",[t._v("stepped")]),t._v(".")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("false")]),t._v(": No Step Interpolation (default)")]),t._v(" "),a("li",[a("code",[t._v("true")]),t._v(": Step-before Interpolation (eq. "),a("code",[t._v("'before'")]),t._v(")")]),t._v(" "),a("li",[a("code",[t._v("'before'")]),t._v(": Step-before Interpolation")]),t._v(" "),a("li",[a("code",[t._v("'after'")]),t._v(": Step-after Interpolation")]),t._v(" "),a("li",[a("code",[t._v("'middle'")]),t._v(": Step-middle Interpolation")])]),t._v(" "),a("p",[t._v("If the "),a("code",[t._v("stepped")]),t._v(" value is set to anything other than false, "),a("code",[t._v("tension")]),t._v(" will be ignored.")]),t._v(" "),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("It is common to want to apply a configuration setting to all created line Graficas. The global line chart settings are stored in "),a("code",[t._v("Chart.overrides.line")]),t._v(". Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.")]),t._v(" "),a("p",[t._v("For example, to configure all line Graficas with "),a("code",[t._v("spanGaps = true")]),t._v(" you would do:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("overrides"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("line"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("spanGaps "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("All of the supported "),a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("data structures")]),t._v(" can be used with line Graficas.")],1),t._v(" "),a("h2",{attrs:{id:"stacked-area-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stacked-area-chart"}},[t._v("#")]),t._v(" Stacked Area Chart")]),t._v(" "),a("p",[t._v("Line Graficas can be configured into stacked area Graficas by changing the settings on the y-axis to enable stacking. Stacked area Graficas can be used to show how one data trend is made up of a number of smaller pieces.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" stackedLine "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("stacked")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"vertical-line-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vertical-line-chart"}},[t._v("#")]),t._v(" Vertical Line Chart")]),t._v(" "),a("p",[t._v("A vertical line chart is a variation on the horizontal line chart.\nTo achieve this you will have to set the "),a("code",[t._v("indexAxis")]),t._v(" property in the options object to "),a("code",[t._v("'y'")]),t._v(".\nThe default for this property is "),a("code",[t._v("'x'")]),t._v(" and thus will show horizontal lines.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [{\n axis: 'y',\n label: 'My First Dataset',\n data: [65, 59, 80, 81, 56, 55, 40],\n fill: false,\n backgroundColor: [\n 'rgba(255, 99, 132, 0.2)',\n 'rgba(255, 159, 64, 0.2)',\n 'rgba(255, 205, 86, 0.2)',\n 'rgba(75, 192, 192, 0.2)',\n 'rgba(54, 162, 235, 0.2)',\n 'rgba(153, 102, 255, 0.2)',\n 'rgba(201, 203, 207, 0.2)'\n ],\n borderColor: [\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(54, 162, 235)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)'\n ],\n borderWidth: 1\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n indexAxis: 'y',\n scales: {\n x: {\n beginAtZero: true\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h3",{attrs:{id:"config-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#config-options"}},[t._v("#")]),t._v(" Config Options")]),t._v(" "),a("p",[t._v("The configuration options for the vertical line chart are the same as for the "),a("a",{attrs:{href:"#configuration-options"}},[t._v("line chart")]),t._v(". However, any options specified on the x-axis in a line chart, are applied to the y-axis in a vertical line chart.")]),t._v(" "),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[a("code",[t._v("{x, y}")])])],1)}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/147.fcadaef3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/147.fcadaef3.js new file mode 100644 index 0000000..ca30673 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/147.fcadaef3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[147],{476:function(t,a,s){"use strict";s.r(a);var n=s(6),r=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"mixed-chart-types"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#mixed-chart-types"}},[t._v("#")]),t._v(" Mixed Chart Types")]),t._v(" "),s("p",[t._v("With Chart.js, it is possible to create mixed Graficas that are a combination of two or more different chart types. A common example is a bar chart that also includes a line dataset.")]),t._v(" "),s("p",[t._v("When creating a mixed chart, we specify the chart type on each dataset.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mixedChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Bar Dataset'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Line Dataset'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" options\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("At this point, we have a chart rendering how we'd like. It's important to note that the default options for the Graficas are only considered at the dataset level and are not merged at the chart level in this case.")]),t._v(" "),s("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'January',\n 'February',\n 'March',\n 'April'\n ],\n datasets: [{\n type: 'bar',\n label: 'Bar Dataset',\n data: [10, 20, 30, 40],\n borderColor: 'rgb(255, 99, 132)',\n backgroundColor: 'rgba(255, 99, 132, 0.2)'\n }, {\n type: 'line',\n label: 'Line Dataset',\n data: [50, 50, 50, 50],\n fill: false,\n borderColor: 'rgb(54, 162, 235)'\n }]\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n scales: {\n y: {\n beginAtZero: true\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),s("h2",{attrs:{id:"drawing-order"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#drawing-order"}},[t._v("#")]),t._v(" Drawing order")]),t._v(" "),s("p",[t._v("By default, datasets are drawn such that the first one is top-most. This can be altered by specifying "),s("code",[t._v("order")]),t._v(" option to datasets. "),s("code",[t._v("order")]),t._v(" defaults to "),s("code",[t._v("0")]),t._v(". Note that this also affects stacking, legend, and tooltip. So it's essentially the same as reordering the datasets.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("order")]),t._v(" property behaves like a weight instead of a specific order, so the higher the number, the sooner that dataset is drawn on the canvas and thus other datasets with a lower order number will get drawn over it.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" mixedChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Bar Dataset'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("40")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this dataset is drawn below")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("order")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Line Dataset'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this dataset is drawn on top")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("order")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" options\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/148.604863a4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/148.604863a4.js new file mode 100644 index 0000000..c9f1aaf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/148.604863a4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[148],{478:function(t,e,a){"use strict";a.r(e);var r=a(6),o=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"polar-area-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polar-area-chart"}},[t._v("#")]),t._v(" Polar Area Chart")]),t._v(" "),a("p",[t._v("Polar area Graficas are similar to pie Graficas, but each segment has the same angle - the radius of the segment differs depending on the value.")]),t._v(" "),a("p",[t._v("This type of chart is often useful when we want to show a comparison data similar to a pie chart, but also show a scale of values for context.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Red',\n 'Green',\n 'Yellow',\n 'Grey',\n 'Blue'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [11, 16, 7, 3, 14],\n backgroundColor: [\n 'rgb(255, 99, 132)',\n 'rgb(75, 192, 192)',\n 'rgb(255, 205, 86)',\n 'rgb(201, 203, 207)',\n 'rgb(54, 162, 235)'\n ]\n }]\n};\n// \n\n// \nconst config = {\n type: 'polarArea',\n data: data,\n options: {}\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.polarArea")]),t._v(" - options for all polarArea datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.arc")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[t._v("arc elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The following options can be included in a polar area chart dataset to configure options for that specific dataset.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#border-alignment"}},[a("code",[t._v("borderAlign")])])]),t._v(" "),a("td",[a("code",[t._v("'center'")]),t._v("|"),a("code",[t._v("'inner'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'center'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'#fff'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("2")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#styling"}},[a("code",[t._v("circular")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("true")])])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])])])]),t._v(" "),a("h3",{attrs:{id:"styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#styling"}},[t._v("#")]),t._v(" Styling")]),t._v(" "),a("p",[t._v("The style of each arc can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("arc background color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("arc border color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderJoinStyle")])]),t._v(" "),a("td",[t._v("arc border join style. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[t._v("arc border width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("circular")])]),t._v(" "),a("td",[t._v("By default the Arc is curved. If "),a("code",[t._v("circular: false")]),t._v(" the Arc will be flat.")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[a("code",[t._v("elements.arc.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"border-alignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#border-alignment"}},[t._v("#")]),t._v(" Border Alignment")]),t._v(" "),a("p",[t._v("The following values are supported for "),a("code",[t._v("borderAlign")]),t._v(".")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'center'")]),t._v(" (default)")]),t._v(" "),a("li",[a("code",[t._v("'inner'")])])]),t._v(" "),a("p",[t._v("When "),a("code",[t._v("'center'")]),t._v(" is set, the borders of arcs next to each other will overlap. When "),a("code",[t._v("'inner'")]),t._v(" is set, it is guaranteed that all the borders do not overlap.")]),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each arc can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("hoverBackgroundColor")])]),t._v(" "),a("td",[t._v("arc background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderColor")])]),t._v(" "),a("td",[t._v("arc border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderJoinStyle")])]),t._v(" "),a("td",[t._v("arc border join style when hovered. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("hoverBorderWidth")])]),t._v(" "),a("td",[t._v("arc border width when hovered (in pixels).")])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#arc-configuration"}},[a("code",[t._v("elements.arc.*")])]),t._v(" options.")],1),t._v(" "),a("h2",{attrs:{id:"config-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#config-options"}},[t._v("#")]),t._v(" Config Options")]),t._v(" "),a("p",[t._v("These are the customisation options specific to Polar Area Graficas. These options are looked up on access, and form together with the "),a("a",{attrs:{href:"#default-options"}},[t._v("global chart default options")]),t._v(" the options of the chart.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("animation.animateRotate")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, the chart will animate in with a rotation animation. This property is in the "),a("code",[t._v("options.animation")]),t._v(" object.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("animation.animateScale")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, will animate scaling the chart from the center outwards.")])])])]),t._v(" "),a("p",[t._v("The polar area chart uses the "),a("RouterLink",{attrs:{to:"/axes/radial/linear.html"}},[t._v("radialLinear")]),t._v(" scale. Additional configuration is provided via the scale.")],1),t._v(" "),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("We can also change these default values for each PolarArea type that is created, this object is available at "),a("code",[t._v("Chart.overrides.polarArea")]),t._v(". Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.")]),t._v(" "),a("p",[t._v("For example, to configure all new polar area Graficas with "),a("code",[t._v("animateScale = false")]),t._v(" you would do:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("overrides"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("polarArea"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animation"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animateScale "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("For a polar area chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.")]),t._v(" "),a("p",[t._v("You also need to specify an array of labels so that tooltips appear correctly for each slice.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These labels appear in the legend and in the tooltips when hovering different arcs")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Red'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Yellow'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Blue'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])],1)}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/149.6509ed9f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/149.6509ed9f.js new file mode 100644 index 0000000..56efed2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/149.6509ed9f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[149],{477:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"radar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radar-chart"}},[t._v("#")]),t._v(" Radar Chart")]),t._v(" "),a("p",[t._v("A radar chart is a way of showing multiple data points and the variation between them.")]),t._v(" "),a("p",[t._v("They are often useful for comparing the points of two or more different data sets.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Eating',\n 'Drinking',\n 'Sleeping',\n 'Designing',\n 'Coding',\n 'Cycling',\n 'Running'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [65, 59, 90, 81, 56, 55, 40],\n fill: true,\n backgroundColor: 'rgba(255, 99, 132, 0.2)',\n borderColor: 'rgb(255, 99, 132)',\n pointBackgroundColor: 'rgb(255, 99, 132)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgb(255, 99, 132)'\n }, {\n label: 'My Second Dataset',\n data: [28, 48, 40, 19, 96, 27, 100],\n fill: true,\n backgroundColor: 'rgba(54, 162, 235, 0.2)',\n borderColor: 'rgb(54, 162, 235)',\n pointBackgroundColor: 'rgb(54, 162, 235)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgb(54, 162, 235)'\n }]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data: data,\n options: {\n elements: {\n line: {\n borderWidth: 3\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"dataset-properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),a("p",[t._v("Namespaces:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),a("li",[a("code",[t._v("options.datasets.line")]),t._v(" - options for all line datasets")]),t._v(" "),a("li",[a("code",[t._v("options.elements.line")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#line-configuration"}},[t._v("line elements")])],1),t._v(" "),a("li",[a("code",[t._v("options.elements.point")]),t._v(" - options for all "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("point elements")])],1),t._v(" "),a("li",[a("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),a("p",[t._v("The radar chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#indexable-options"}},[t._v("Indexable")])],1),t._v(" "),a("th",[t._v("Default")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("backgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderCapStyle")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'butt'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderDash")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("[]")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderDashOffset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0.0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("'miter'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("borderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("3")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBackgroundColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderCapStyle")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderColor")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderDash")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderDashOffset")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderJoinStyle")])])]),t._v(" "),a("td",[a("code",[t._v("'round'")]),t._v("|"),a("code",[t._v("'bevel'")]),t._v("|"),a("code",[t._v("'miter'")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("hoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("clip")])])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")]),t._v("|"),a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#data-structure"}},[a("code",[t._v("data")])])]),t._v(" "),a("td",[a("code",[t._v("number[]")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("strong",[t._v("required")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("fill")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")]),t._v("|"),a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("false")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("label")])])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("''")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#general"}},[a("code",[t._v("order")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("tension")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBackgroundColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBorderColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.1)'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointHitRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBackgroundColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBorderColor")])])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverBorderWidth")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("1")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#interactions"}},[a("code",[t._v("pointHoverRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("4")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointRadius")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("3")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointRotation")])])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("0")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#point-styling"}},[a("code",[t._v("pointStyle")])])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#types"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[a("code",[t._v("'circle'")])])]),t._v(" "),a("tr",[a("td",[a("a",{attrs:{href:"#line-styling"}},[a("code",[t._v("spanGaps")])])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("-")]),t._v(" "),a("td",[a("code",[t._v("undefined")])])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback to the scopes described in "),a("a",{attrs:{href:"../general/options"}},[t._v("option resolution")])]),t._v(" "),a("h3",{attrs:{id:"general"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#general"}},[t._v("#")]),t._v(" General")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("clip")])]),t._v(" "),a("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. "),a("code",[t._v("0")]),t._v(" = clip at chartArea. Clipping can also be configured per side: "),a("code",[t._v("clip: {left: 5, top: false, right: -2, bottom: 0}")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("label")])]),t._v(" "),a("td",[t._v("The label for the dataset which appears in the legend and tooltips.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("order")])]),t._v(" "),a("td",[t._v("The drawing order of dataset. Also affects order for tooltip and legend. "),a("RouterLink",{attrs:{to:"/Graficas/mixed.html#drawing-order"}},[t._v("more")])],1)])])]),t._v(" "),a("h3",{attrs:{id:"point-styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#point-styling"}},[t._v("#")]),t._v(" Point Styling")]),t._v(" "),a("p",[t._v("The style of each point can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("pointBackgroundColor")])]),t._v(" "),a("td",[t._v("The fill color for points.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointBorderColor")])]),t._v(" "),a("td",[t._v("The border color for points.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointBorderWidth")])]),t._v(" "),a("td",[t._v("The width of the point border in pixels.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHitRadius")])]),t._v(" "),a("td",[t._v("The pixel size of the non-displayed point that reacts to mouse events.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointRadius")])]),t._v(" "),a("td",[t._v("The radius of the point shape. If set to 0, the point is not rendered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointRotation")])]),t._v(" "),a("td",[t._v("The rotation of the point in degrees.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",[t._v("Style of the point. "),a("a",{attrs:{href:"../configuration/elements#point-styles"}},[t._v("more...")])])])])]),t._v(" "),a("p",[t._v("All these values, if "),a("code",[t._v("undefined")]),t._v(", fallback first to the dataset options then to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[a("code",[t._v("elements.point.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"line-styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-styling"}},[t._v("#")]),t._v(" Line Styling")]),t._v(" "),a("p",[t._v("The style of the line can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[t._v("The line fill color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderCapStyle")])]),t._v(" "),a("td",[t._v("Cap style of the line. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[t._v("The line color.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDash")])]),t._v(" "),a("td",[t._v("Length and spacing of dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderDashOffset")])]),t._v(" "),a("td",[t._v("Offset for line dashes. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderJoinStyle")])]),t._v(" "),a("td",[t._v("Line joint style. See "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),a("OutboundLink")],1),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[t._v("The line width (in pixels).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("fill")])]),t._v(" "),a("td",[t._v("How to fill the area under the line. See "),a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[t._v("area Graficas")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("tension")])]),t._v(" "),a("td",[t._v("Bezier curve tension of the line. Set to 0 to draw straight lines.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("spanGaps")])]),t._v(" "),a("td",[t._v("If true, lines will be drawn between points with no or null data. If false, points with "),a("code",[t._v("null")]),t._v(" data will create a break in the line.")])])])]),t._v(" "),a("p",[t._v("If the value is "),a("code",[t._v("undefined")]),t._v(", the values fallback to the associated "),a("RouterLink",{attrs:{to:"/configuration/elements.html#line-configuration"}},[a("code",[t._v("elements.line.*")])]),t._v(" options.")],1),t._v(" "),a("h3",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("The interaction with each point can be controlled with the following properties:")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("pointHoverBackgroundColor")])]),t._v(" "),a("td",[t._v("Point background color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverBorderColor")])]),t._v(" "),a("td",[t._v("Point border color when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverBorderWidth")])]),t._v(" "),a("td",[t._v("Border width of point when hovered.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointHoverRadius")])]),t._v(" "),a("td",[t._v("The radius of the point when hovered.")])])])]),t._v(" "),a("h2",{attrs:{id:"scale-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale-options"}},[t._v("#")]),t._v(" Scale Options")]),t._v(" "),a("p",[t._v("The radar chart supports only a single scale. The options for this scale are defined in the "),a("code",[t._v("scales.r")]),t._v(" property, which can be referenced from the "),a("a",{attrs:{href:"../axes/radial/linear"}},[t._v("Linear Radial Axis page")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("options "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("r")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("angleLines")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMin")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("suggestedMax")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"default-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#default-options"}},[t._v("#")]),t._v(" Default Options")]),t._v(" "),a("p",[t._v("It is common to want to apply a configuration setting to all created radar Graficas. The global radar chart settings are stored in "),a("code",[t._v("Chart.overrides.radar")]),t._v(". Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.")]),t._v(" "),a("h2",{attrs:{id:"data-structure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("data")]),t._v(" property of a dataset for a radar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("p",[t._v("For a radar chart, to provide context of what each point means, we include an array of strings that show around each point in the chart.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Running'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Swimming'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Eating'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Cycling'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"internal-data-format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),a("p",[a("code",[t._v("{x, y}")])])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/15.09a69fc3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/15.09a69fc3.js new file mode 100644 index 0000000..12f50af --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/15.09a69fc3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{346:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-chart-ttype-tdata-tlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-chart-ttype-tdata-tlabel"}},[t._v("#")]),t._v(" Class: Chart")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new Chart")]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">("),a("code",[t._v("item")]),t._v(", "),a("code",[t._v("config")]),t._v(")")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(" = keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("item")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartitem"}},[a("code",[t._v("ChartItem")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("config")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[a("code",[t._v("ChartConfiguration")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v("> | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[a("code",[t._v("ChartConfigurationCustomTypesPerDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L504",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:504"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"aspectratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aspectratio"}},[t._v("#")]),t._v(" aspectRatio")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("aspectRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L491",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:491"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"attached"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#attached"}},[t._v("#")]),t._v(" attached")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("attached")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L496",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:496"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"boxes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#boxes"}},[t._v("#")]),t._v(" boxes")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("boxes")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L492",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:492"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"canvas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#canvas"}},[t._v("#")]),t._v(" canvas")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("canvas")]),t._v(": "),a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L486",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:486"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartarea"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartarea"}},[t._v("#")]),t._v(" chartArea")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chartArea")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L494",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:494"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"config"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#config"}},[t._v("#")]),t._v(" config")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("config")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[a("code",[t._v("ChartConfiguration")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v("> | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[a("code",[t._v("ChartConfigurationCustomTypesPerDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L488",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:488"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ctx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ctx"}},[t._v("#")]),t._v(" ctx")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("ctx")]),t._v(": "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L487",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:487"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"currentdevicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#currentdevicepixelratio"}},[t._v("#")]),t._v(" currentDevicePixelRatio")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("currentDevicePixelRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L493",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:493"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("data")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[a("code",[t._v("ChartData")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L501",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:501"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L490",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:490"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L485",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:485"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"legend"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend"}},[t._v("#")]),t._v(" legend")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("legend")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[a("code",[t._v("LegendElement")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L498",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:498"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("DeepPartial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#datasetchartoptions"}},[a("code",[t._v("DatasetChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#scalechartoptions"}},[a("code",[t._v("ScaleChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"chartOptions"')]),t._v("]>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L502",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:502"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"platform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#platform"}},[t._v("#")]),t._v(" platform")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("platform")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[a("code",[t._v("BasePlatform")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L484",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:484"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scales"}},[t._v("#")]),t._v(" scales")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("scales")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"index-signature"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index-signature"}},[t._v("#")]),t._v(" Index signature")]),t._v(" "),a("p",[t._v("▪ [key: "),a("code",[t._v("string")]),t._v("]: "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L495",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:495"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" tooltip")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("tooltip")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L499",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:499"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L489",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:489"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"defaults"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defaults"}},[t._v("#")]),t._v(" defaults")]),t._v(" "),a("p",[t._v("▪ "),a("code",[t._v("Static")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("defaults")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Defaults.html"}},[a("code",[t._v("Defaults")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L542",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:542"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"instances"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#instances"}},[t._v("#")]),t._v(" instances")]),t._v(" "),a("p",[t._v("▪ "),a("code",[t._v("Static")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("instances")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"index-signature-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index-signature-2"}},[t._v("#")]),t._v(" Index signature")]),t._v(" "),a("p",[t._v("▪ [key: "),a("code",[t._v("string")]),t._v("]: "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L545",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:545"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"overrides"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" overrides")]),t._v(" "),a("p",[t._v("▪ "),a("code",[t._v("Static")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("overrides")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#overrides"}},[a("code",[t._v("Overrides")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L543",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:543"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"registry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#registry"}},[t._v("#")]),t._v(" registry")]),t._v(" "),a("p",[t._v("▪ "),a("code",[t._v("Static")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("registry")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Registry.html"}},[a("code",[t._v("Registry")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L546",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:546"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"version"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#version"}},[t._v("#")]),t._v(" version")]),t._v(" "),a("p",[t._v("▪ "),a("code",[t._v("Static")]),t._v(" "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("version")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L544",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:544"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"bindevents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bindevents"}},[t._v("#")]),t._v(" bindEvents")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("bindEvents")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L536",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:536"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildorupdatecontrollers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildorupdatecontrollers"}},[t._v("#")]),t._v(" buildOrUpdateControllers")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildOrUpdateControllers")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L512",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:512"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildorupdatescales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildorupdatescales"}},[t._v("#")]),t._v(" buildOrUpdateScales")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildOrUpdateScales")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L511",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:511"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"clear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clear"}},[t._v("#")]),t._v(" clear")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("clear")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L506",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:506"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"destroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#destroy"}},[t._v("#")]),t._v(" destroy")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("destroy")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L534",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:534"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L516",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:516"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ensurescaleshaveids"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ensurescaleshaveids"}},[t._v("#")]),t._v(" ensureScalesHaveIDs")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("ensureScalesHaveIDs")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L510",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:510"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getactiveelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getactiveelements"}},[t._v("#")]),t._v(" getActiveElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getActiveElements")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L531",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:531"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdatavisibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdatavisibility"}},[t._v("#")]),t._v(" getDataVisibility")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDataVisibility")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L527",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:527"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdatasetmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdatasetmeta"}},[t._v("#")]),t._v(" getDatasetMeta")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDatasetMeta")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L522",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:522"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getelementsateventformode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getelementsateventformode"}},[t._v("#")]),t._v(" getElementsAtEventForMode")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getElementsAtEventForMode")]),t._v("("),a("code",[t._v("e")]),t._v(", "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("options")]),t._v(", "),a("code",[t._v("useFinalPosition")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("e")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Event")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionOptions.html"}},[a("code",[t._v("InteractionOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L519",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:519"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getsortedvisibledatasetmetas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsortedvisibledatasetmetas"}},[t._v("#")]),t._v(" getSortedVisibleDatasetMetas")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getSortedVisibleDatasetMetas")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L521",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:521"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getvisibledatasetcount"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getvisibledatasetcount"}},[t._v("#")]),t._v(" getVisibleDatasetCount")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getVisibleDatasetCount")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L523",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:523"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hide"}},[t._v("#")]),t._v(" hide")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hide")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("dataIndex?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("dataIndex?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L528",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:528"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isdatasetvisible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isdatasetvisible"}},[t._v("#")]),t._v(" isDatasetVisible")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isDatasetVisible")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L524",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:524"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ispointinarea"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ispointinarea"}},[t._v("#")]),t._v(" isPointInArea")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isPointInArea")]),t._v("("),a("code",[t._v("point")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("point")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L518",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:518"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"notifyplugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notifyplugins"}},[t._v("#")]),t._v(" notifyPlugins")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("notifyPlugins")]),t._v("("),a("code",[t._v("hook")]),t._v(", "),a("code",[t._v("args?")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("hook")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L540",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:540"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"render"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render"}},[t._v("#")]),t._v(" render")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("render")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L515",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:515"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("reset")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L513",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:513"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resize"}},[t._v("#")]),t._v(" resize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("resize")]),t._v("("),a("code",[t._v("width?")]),t._v(", "),a("code",[t._v("height?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L509",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:509"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setactiveelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setactiveelements"}},[t._v("#")]),t._v(" setActiveElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setActiveElements")]),t._v("("),a("code",[t._v("active")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("active")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[a("code",[t._v("ActiveDataPoint")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L532",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:532"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setdatasetvisibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setdatasetvisibility"}},[t._v("#")]),t._v(" setDatasetVisibility")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setDatasetVisibility")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("visible")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("visible")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L525",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:525"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"show"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#show"}},[t._v("#")]),t._v(" show")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("show")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("dataIndex?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("dataIndex?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L529",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:529"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("stop")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L507",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:507"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tobase64image"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tobase64image"}},[t._v("#")]),t._v(" toBase64Image")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("toBase64Image")]),t._v("("),a("code",[t._v("type?")]),t._v(", "),a("code",[t._v("quality?")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("quality?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L535",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:535"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"toggledatavisibility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#toggledatavisibility"}},[t._v("#")]),t._v(" toggleDataVisibility")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("toggleDataVisibility")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L526",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:526"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"unbindevents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unbindevents"}},[t._v("#")]),t._v(" unbindEvents")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("unbindEvents")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L537",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:537"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("mode?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L514",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:514"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatehoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatehoverstyle"}},[t._v("#")]),t._v(" updateHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateHoverStyle")]),t._v("("),a("code",[t._v("items")]),t._v(", "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("enabled")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("items")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"dataset"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("enabled")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-52"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L538",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:538"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getchart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getchart"}},[t._v("#")]),t._v(" getChart")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Static")]),t._v(" "),a("strong",[t._v("getChart")]),t._v("("),a("code",[t._v("key")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("key")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("HTMLCanvasElement")]),t._v(" | "),a("code",[t._v("CanvasRenderingContext2D")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-53"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L547",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:547"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"Registro"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#Registro"}},[t._v("#")]),t._v(" Registro")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Static")]),t._v(" "),a("strong",[t._v("Registro")]),t._v("(..."),a("code",[t._v("items")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...items")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-54"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L548",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:548"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"unRegistro"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unRegistro"}},[t._v("#")]),t._v(" unRegistro")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Static")]),t._v(" "),a("strong",[t._v("unRegistro")]),t._v("(..."),a("code",[t._v("items")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("...items")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-55"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L549",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:549"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/150.fd8575ca.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/150.fd8575ca.js new file mode 100644 index 0000000..1ade89a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/150.fd8575ca.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{479:function(t,a,e){"use strict";e.r(a);var s=e(6),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"scatter-chart"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#scatter-chart"}},[t._v("#")]),t._v(" Scatter Chart")]),t._v(" "),e("p",[t._v("Scatter Graficas are based on basic line Graficas with the x axis changed to a linear axis. To use a scatter chart, data must be passed as objects containing X and Y properties. The example below creates a scatter chart with 4 points.")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst data = {\n datasets: [{\n label: 'Scatter Dataset',\n data: [{\n x: -10,\n y: 0\n }, {\n x: 0,\n y: 10\n }, {\n x: 10,\n y: 5\n }, {\n x: 0.5,\n y: 5.5\n }],\n backgroundColor: 'rgb(255, 99, 132)'\n }],\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n scales: {\n x: {\n type: 'linear',\n position: 'bottom'\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"dataset-properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#dataset-properties"}},[t._v("#")]),t._v(" Dataset Properties")]),t._v(" "),e("p",[t._v("Namespaces:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("data.datasets[index]")]),t._v(" - options for this dataset only")]),t._v(" "),e("li",[e("code",[t._v("options.datasets.scatter")]),t._v(" - options for all scatter datasets")]),t._v(" "),e("li",[e("code",[t._v("options.elements.line")]),t._v(" - options for all "),e("RouterLink",{attrs:{to:"/configuration/elements.html#line-configuration"}},[t._v("line elements")])],1),t._v(" "),e("li",[e("code",[t._v("options.elements.point")]),t._v(" - options for all "),e("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("point elements")])],1),t._v(" "),e("li",[e("code",[t._v("options")]),t._v(" - options for the whole chart")])]),t._v(" "),e("p",[t._v("The scatter chart supports all of the same properties as the "),e("RouterLink",{attrs:{to:"/Graficas/line.html#dataset-properties"}},[t._v("line chart")]),t._v(".\nBy default, the scatter chart will override the showLine property of the line chart to "),e("code",[t._v("false")]),t._v(".")],1),t._v(" "),e("p",[t._v("The index scale is of the type "),e("code",[t._v("linear")]),t._v(". This means if you are using the labels array the values have to be numbers or parsable to numbers, the same applies to the object format for the keys.")]),t._v(" "),e("h2",{attrs:{id:"data-structure"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#data-structure"}},[t._v("#")]),t._v(" Data Structure")]),t._v(" "),e("p",[t._v("Unlike the line chart where data can be supplied in two different formats, the scatter chart only accepts data in a point format.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),e("h2",{attrs:{id:"internal-data-format"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#internal-data-format"}},[t._v("#")]),t._v(" Internal data format")]),t._v(" "),e("p",[e("code",[t._v("{x, y}")])])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/151.67ecd4a3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/151.67ecd4a3.js new file mode 100644 index 0000000..42475ce --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/151.67ecd4a3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{480:function(t,a,e){"use strict";e.r(a);var n=e(6),o=Object(n.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"animations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" Animations")]),t._v(" "),e("p",[t._v("Chart.js animates Graficas out of the box. A number of options are provided to configure how the animation looks and how long it takes.")]),t._v(" "),e("tabs",[e("tab",{attrs:{name:"Looping tension [property]"}},[e("chart-editor",{attrs:{code:"// \nconst data = {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: [{\n label: 'Looping tension',\n data: [65, 59, 80, 81, 26, 55, 40],\n fill: false,\n borderColor: 'rgb(75, 192, 192)',\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n animations: {\n tension: {\n duration: 1000,\n easing: 'linear',\n from: 1,\n to: 0,\n loop: true\n }\n },\n scales: {\n y: { // defining min and max so hiding the dataset does not change scale range\n min: 0,\n max: 100\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1),t._v(" "),e("tab",{attrs:{name:"Hide and show [mode]"}},[e("chart-editor",{attrs:{code:"// \nconst data = {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: [{\n label: 'Try hiding me',\n data: [65, 59, 80, 81, 26, 55, 40],\n fill: false,\n borderColor: 'rgb(75, 192, 192)',\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n transitions: {\n show: {\n animations: {\n x: {\n from: 0\n },\n y: {\n from: 0\n }\n }\n },\n hide: {\n animations: {\n x: {\n to: 0\n },\n y: {\n to: 0\n }\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1)],1),t._v(" "),e("h2",{attrs:{id:"animation-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#animation-configuration"}},[t._v("#")]),t._v(" Animation configuration")]),t._v(" "),e("p",[t._v("Animation configuration consists of 3 keys.")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Details")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("animation")]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td",[e("a",{attrs:{href:"#animation"}},[t._v("animation")])])]),t._v(" "),e("tr",[e("td",[t._v("animations")]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td",[e("a",{attrs:{href:"#animations"}},[t._v("animations")])])]),t._v(" "),e("tr",[e("td",[t._v("transitions")]),t._v(" "),e("td",[e("code",[t._v("object")])]),t._v(" "),e("td",[e("a",{attrs:{href:"#transitions"}},[t._v("transitions")])])])])]),t._v(" "),e("p",[t._v("These keys can be configured in following paths:")]),t._v(" "),e("ul",[e("li",[t._v("`` - chart options")]),t._v(" "),e("li",[e("code",[t._v("datasets[type]")]),t._v(" - dataset type options")]),t._v(" "),e("li",[e("code",[t._v("overrides[type]")]),t._v(" - chart type options")])]),t._v(" "),e("p",[t._v("These paths are valid under "),e("code",[t._v("defaults")]),t._v(" for global configuration and "),e("code",[t._v("options")]),t._v(" for instance configuration.")]),t._v(" "),e("h2",{attrs:{id:"animation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),e("p",[t._v("The default configuration is defined here: "),e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/master/src/core/core.animations.js",target:"_blank"}},[t._v("core.animations.js")])]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.animation")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("duration")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("1000")])]),t._v(" "),e("td",[t._v("The number of milliseconds an animation takes.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("easing")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'easeOutQuart'")])]),t._v(" "),e("td",[t._v("Easing function to use. "),e("a",{attrs:{href:"#easing"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("delay")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("undefined")])]),t._v(" "),e("td",[t._v("Delay before starting the animations.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("loop")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("undefined")])]),t._v(" "),e("td",[t._v("If set to "),e("code",[t._v("true")]),t._v(", the animations loop endlessly.")])])])]),t._v(" "),e("p",[t._v("These defaults can be overridden in "),e("code",[t._v("options.animation")]),t._v(" or "),e("code",[t._v("dataset.animation")]),t._v(" and "),e("code",[t._v("tooltip.animation")]),t._v(". These keys are also "),e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")]),t._v(".")],1),t._v(" "),e("h2",{attrs:{id:"animations-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#animations-2"}},[t._v("#")]),t._v(" animations")]),t._v(" "),e("p",[t._v("Animations options configures which element properties are animated and how.\nIn addition to the main "),e("a",{attrs:{href:"#animation-configuration"}},[t._v("animation configuration")]),t._v(", the following options are available:")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.animations[animation]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("properties")])]),t._v(" "),e("td",[e("code",[t._v("string[]")])]),t._v(" "),e("td",[e("code",[t._v("key")])]),t._v(" "),e("td",[t._v("The property names this configuration applies to. Defaults to the key name of this object.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("type")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("typeof property")])]),t._v(" "),e("td",[t._v("Type of property, determines the interpolator used. Possible values: "),e("code",[t._v("'number'")]),t._v(", "),e("code",[t._v("'color'")]),t._v(" and "),e("code",[t._v("'boolean'")]),t._v(". Only really needed for "),e("code",[t._v("'color'")]),t._v(", because "),e("code",[t._v("typeof")]),t._v(" does not get that right.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("from")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("Color")]),t._v("|"),e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("undefined")])]),t._v(" "),e("td",[t._v("Start value for the animation. Current value is used when "),e("code",[t._v("undefined")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("to")])]),t._v(" "),e("td",[e("code",[t._v("number")]),t._v("|"),e("code",[t._v("Color")]),t._v("|"),e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("undefined")])]),t._v(" "),e("td",[t._v("End value for the animation. Updated value is used when "),e("code",[t._v("undefined")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("fn")])]),t._v(" "),e("td",[e("code",[t._v("(from: T, to: T, factor: number) => T;")])]),t._v(" "),e("td",[e("code",[t._v("undefined")])]),t._v(" "),e("td",[t._v("Optional custom interpolator, instead of using a predefined interpolator from "),e("code",[t._v("type")])])])])]),t._v(" "),e("h3",{attrs:{id:"default-animations"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#default-animations"}},[t._v("#")]),t._v(" Default animations")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Option")]),t._v(" "),e("th",[t._v("Value")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("numbers")])]),t._v(" "),e("td",[e("code",[t._v("properties")])]),t._v(" "),e("td",[e("code",[t._v("['x', 'y', 'borderWidth', 'radius', 'tension']")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("numbers")])]),t._v(" "),e("td",[e("code",[t._v("type")])]),t._v(" "),e("td",[e("code",[t._v("'number'")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("colors")])]),t._v(" "),e("td",[e("code",[t._v("properties")])]),t._v(" "),e("td",[e("code",[t._v("['color', 'borderColor', 'backgroundColor']")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("colors")])]),t._v(" "),e("td",[e("code",[t._v("type")])]),t._v(" "),e("td",[e("code",[t._v("'color'")])])])])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),e("p",[t._v("These default animations are overridden by most of the dataset controllers.")])]),t._v(" "),e("h2",{attrs:{id:"transitions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),e("p",[t._v("The core transitions are "),e("code",[t._v("'active'")]),t._v(", "),e("code",[t._v("'hide'")]),t._v(", "),e("code",[t._v("'reset'")]),t._v(", "),e("code",[t._v("'resize'")]),t._v(", "),e("code",[t._v("'show'")]),t._v(".\nA custom transition can be used by passing a custom "),e("code",[t._v("mode")]),t._v(" to "),e("RouterLink",{attrs:{to:"/developers/api.html#updatemode"}},[t._v("update")]),t._v(".\nTransition extends the main "),e("a",{attrs:{href:"#animation-configuration"}},[t._v("animation configuration")]),t._v(" and "),e("a",{attrs:{href:"#animations-configuration"}},[t._v("animations configuration")]),t._v(".")],1),t._v(" "),e("h3",{attrs:{id:"default-transitions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#default-transitions"}},[t._v("#")]),t._v(" Default transitions")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.transitions[mode]")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Mode")]),t._v(" "),e("th",[t._v("Option")]),t._v(" "),e("th",[t._v("Value")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("'active'")])]),t._v(" "),e("td",[t._v("animation.duration")]),t._v(" "),e("td",[t._v("400")]),t._v(" "),e("td",[t._v("Override default duration to 400ms for hover animations")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("'resize'")])]),t._v(" "),e("td",[t._v("animation.duration")]),t._v(" "),e("td",[t._v("0")]),t._v(" "),e("td",[t._v("Override default duration to 0ms (= no animation) for resize")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("'show'")])]),t._v(" "),e("td",[t._v("animations.colors")]),t._v(" "),e("td",[e("code",[t._v("{ type: 'color', properties: ['borderColor', 'backgroundColor'], from: 'transparent' }")])]),t._v(" "),e("td",[t._v("Colors are faded in from transparent when dataset is shown using legend / "),e("RouterLink",{attrs:{to:"/developers/api.html#showdatasetIndex"}},[t._v("api")]),t._v(".")],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("'show'")])]),t._v(" "),e("td",[t._v("animations.visible")]),t._v(" "),e("td",[e("code",[t._v("{ type: 'boolean', duration: 0 }")])]),t._v(" "),e("td",[t._v("Dataset visibility is immediately changed to true so the color transition from transparent is visible.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("'hide'")])]),t._v(" "),e("td",[t._v("animations.colors")]),t._v(" "),e("td",[e("code",[t._v("{ type: 'color', properties: ['borderColor', 'backgroundColor'], to: 'transparent' }")])]),t._v(" "),e("td",[t._v("Colors are faded to transparent when dataset id hidden using legend / "),e("RouterLink",{attrs:{to:"/developers/api.html#hidedatasetIndex"}},[t._v("api")]),t._v(".")],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("'hide'")])]),t._v(" "),e("td",[t._v("animations.visible")]),t._v(" "),e("td",[e("code",[t._v("{ type: 'boolean', easing: 'easeInExpo' }")])]),t._v(" "),e("td",[t._v("Visibility is changed to false at a very late phase of animation")])])])]),t._v(" "),e("h2",{attrs:{id:"disabling-animation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#disabling-animation"}},[t._v("#")]),t._v(" Disabling animation")]),t._v(" "),e("p",[t._v("To disable an animation configuration, the animation node must be set to "),e("code",[t._v("false")]),t._v(", with the exception for animation modes which can be disabled by setting the "),e("code",[t._v("duration")]),t._v(" to "),e("code",[t._v("0")]),t._v(".")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animation "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disables all animations")]),t._v("\nchart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animations"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("colors "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disables animation defined by the collection of 'colors' properties")]),t._v("\nchart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animations"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disables animation defined by the 'x' property")]),t._v("\nchart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("transitions"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("active"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("animation"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("duration "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disables the animation for 'active' mode")]),t._v("\n")])])]),e("h2",{attrs:{id:"easing"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#easing"}},[t._v("#")]),t._v(" Easing")]),t._v(" "),e("p",[t._v("Available options are:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("'linear'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInQuad'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutQuad'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutQuad'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInCubic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutCubic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutCubic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInQuart'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutQuart'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutQuart'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInQuint'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutQuint'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutQuint'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInSine'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutSine'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutSine'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInExpo'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutExpo'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutExpo'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInCirc'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutCirc'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutCirc'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInElastic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutElastic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutElastic'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInBack'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutBack'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutBack'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInBounce'")])]),t._v(" "),e("li",[e("code",[t._v("'easeOutBounce'")])]),t._v(" "),e("li",[e("code",[t._v("'easeInOutBounce'")])])]),t._v(" "),e("p",[t._v("See "),e("a",{attrs:{href:"http://robertpenner.com/easing/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Robert Penner's easing equations"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"animation-callbacks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#animation-callbacks"}},[t._v("#")]),t._v(" Animation Callbacks")]),t._v(" "),e("p",[t._v("The animation configuration provides callbacks which are useful for synchronizing an external draw to the chart animation.\nThe callbacks can be set only at main "),e("a",{attrs:{href:"#animation-configuration"}},[t._v("animation configuration")]),t._v(".")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.animation")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("onProgress")])]),t._v(" "),e("td",[e("code",[t._v("function")])]),t._v(" "),e("td",[e("code",[t._v("null")])]),t._v(" "),e("td",[t._v("Callback called on each step of an animation.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("onComplete")])]),t._v(" "),e("td",[e("code",[t._v("function")])]),t._v(" "),e("td",[e("code",[t._v("null")])]),t._v(" "),e("td",[t._v("Callback called when all animations are completed.")])])])]),t._v(" "),e("p",[t._v("The callback is passed the following object:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Chart object")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("chart")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Number of animations still in progress")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("currentStep")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// `true` for the initial animation of the chart")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("initial")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" boolean"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Total number of animations at the start of current animation")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("numSteps")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("The following example fills a progress bar during the chart animation.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("animation")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onProgress")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("animation")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n progress"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" animation"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("currentStep "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" animation"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("numSteps"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Another example usage of these callbacks can be found "),e("RouterLink",{attrs:{to:"/samples/advanced/progress-bar.html"}},[t._v("in this progress bar sample.")]),t._v(" which displays a progress bar showing how far along the animation is.")],1)],1)}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/152.481a7bd4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/152.481a7bd4.js new file mode 100644 index 0000000..e4e69e2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/152.481a7bd4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[152],{482:function(n,t,a){"use strict";a.r(t);var e=a(6),o=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"canvas-background"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#canvas-background"}},[n._v("#")]),n._v(" Canvas background")]),n._v(" "),a("p",[n._v("In some use cases you would want a background image or color over the whole canvas. There is no built-in support for this, the way you can achieve this is by writing a custom plugin.")]),n._v(" "),a("p",[n._v("In the two example plugins underneath here you can see how you can draw a color or image to the canvas as background. This way of giving the chart a background is only necessary if you want to export the chart with that specific background.\nFor normal use you can set the background more easily with "),a("a",{attrs:{href:"https://www.w3schools.com/cssref/css3_pr_background.asp",target:"_blank",rel:"noopener noreferrer"}},[n._v("CSS"),a("OutboundLink")],1),n._v(".")]),n._v(" "),a("tabs",[a("tab",{attrs:{name:"Color"}},[a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Red',\n 'Blue',\n 'Yellow'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [300, 50, 100],\n backgroundColor: [\n 'rgb(255, 99, 132)',\n 'rgb(54, 162, 235)',\n 'rgb(255, 205, 86)'\n ],\n hoverOffset: 4\n }]\n};\n// \n\n// \n// Note: changes to the plugin code is not reflected to the chart, because the plugin is loaded at chart construction time and editor changes only trigger an chart.update().\nconst plugin = {\n id: 'custom_canvas_background_color',\n beforeDraw: (chart) => {\n const {ctx} = chart;\n ctx.save();\n ctx.globalCompositeOperation = 'destination-over';\n ctx.fillStyle = 'lightGreen';\n ctx.fillRect(0, 0, chart.width, chart.height);\n ctx.restore();\n }\n};\n// \n\n// \nconst config = {\n type: 'doughnut',\n data: data,\n plugins: [plugin],\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1),n._v(" "),a("tab",{attrs:{name:"Image"}},[a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [\n 'Red',\n 'Blue',\n 'Yellow'\n ],\n datasets: [{\n label: 'My First Dataset',\n data: [300, 50, 100],\n backgroundColor: [\n 'rgb(255, 99, 132)',\n 'rgb(54, 162, 235)',\n 'rgb(255, 205, 86)'\n ],\n hoverOffset: 4\n }]\n};\n// \n\n// \n// Note: changes to the plugin code is not reflected to the chart, because the plugin is loaded at chart construction time and editor changes only trigger an chart.update().\nconst image = new Image();\nimage.src = 'https://www.chartjs.org/img/chartjs-logo.svg';\n\nconst plugin = {\n id: 'custom_canvas_background_image',\n beforeDraw: (chart) => {\n if (image.complete) {\n const ctx = chart.ctx;\n const {top, left, width, height} = chart.chartArea;\n const x = left + width / 2 - image.width / 2;\n const y = top + height / 2 - image.height / 2;\n ctx.drawImage(image, x, y);\n } else {\n image.onload = () => chart.draw();\n }\n }\n};\n// \n\n// \nconst config = {\n type: 'doughnut',\n data: data,\n plugins: [plugin],\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}})],1)],1)],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/153.dbf3f3aa.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/153.dbf3f3aa.js new file mode 100644 index 0000000..6fded41 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/153.dbf3f3aa.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[153],{481:function(t,e,a){"use strict";a.r(e);var i=a(6),r=Object(i.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"data-decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-decimation"}},[t._v("#")]),t._v(" Data Decimation")]),t._v(" "),a("p",[t._v("The decimation plugin can be used with line Graficas to automatically decimate data at the start of the chart lifecycle. Before enabling this plugin, review the "),a("a",{attrs:{href:"#requirements"}},[t._v("requirements")]),t._v(" to ensure that it will work with the chart you want to create.")]),t._v(" "),a("h2",{attrs:{id:"configuration-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.decimation")]),t._v(", the global options for the plugin are defined in "),a("code",[t._v("Chart.defaults.plugins.decimation")]),t._v(".")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("enabled")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Is decimation enabled?")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("algorithm")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'min-max'")])]),t._v(" "),a("td",[t._v("Decimation algorithm to use. See the "),a("a",{attrs:{href:"#decimation-algorithms"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("samples")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("If the "),a("code",[t._v("'lttb'")]),t._v(" algorithm is used, this is the number of samples in the output dataset. Defaults to the canvas width to pick 1 sample per pixel.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("threshold")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("If the number of samples in the current axis range is above this value, the decimation will be triggered. Defaults to 4 times the canvas width."),a("br"),t._v("The number of point after decimation can be higher than the "),a("code",[t._v("threshold")]),t._v(" value.")])])])]),t._v(" "),a("h2",{attrs:{id:"decimation-algorithms"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decimation-algorithms"}},[t._v("#")]),t._v(" Decimation Algorithms")]),t._v(" "),a("p",[t._v("Decimation algorithm to use for data. Options are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'lttb'")])]),t._v(" "),a("li",[a("code",[t._v("'min-max'")])])]),t._v(" "),a("h3",{attrs:{id:"largest-triangle-three-bucket-lttb-decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#largest-triangle-three-bucket-lttb-decimation"}},[t._v("#")]),t._v(" Largest Triangle Three Bucket (LTTB) Decimation")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/sveinn-steinarsson/flot-downsample",target:"_blank",rel:"noopener noreferrer"}},[t._v("LTTB"),a("OutboundLink")],1),t._v(" decimation reduces the number of data points significantly. This is most useful for showing trends in data using only a few data points.")]),t._v(" "),a("h3",{attrs:{id:"min-max-decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min-max-decimation"}},[t._v("#")]),t._v(" Min/Max Decimation")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://digital.ni.com/public.nsf/allkb/F694FFEEA0ACF282862576020075F784",target:"_blank",rel:"noopener noreferrer"}},[t._v("Min/max"),a("OutboundLink")],1),t._v(" decimation will preserve peaks in your data but could require up to 4 points for each pixel. This type of decimation would work well for a very noisy signal where you need to see data peaks.")]),t._v(" "),a("h2",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements"}},[t._v("#")]),t._v(" Requirements")]),t._v(" "),a("p",[t._v("To use the decimation plugin, the following requirements must be met:")]),t._v(" "),a("ol",[a("li",[t._v("The dataset must have an "),a("RouterLink",{attrs:{to:"/Graficas/line.html#general"}},[a("code",[t._v("indexAxis")])]),t._v(" of "),a("code",[t._v("'x'")])],1),t._v(" "),a("li",[t._v("The dataset must be a line")]),t._v(" "),a("li",[t._v("The X axis for the dataset must be either a "),a("RouterLink",{attrs:{to:"/axes/cartesian/linear.html"}},[a("code",[t._v("'linear'")])]),t._v(" or "),a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[a("code",[t._v("'time'")])]),t._v(" type axis")],1),t._v(" "),a("li",[t._v("Data must not need parsing, i.e. "),a("RouterLink",{attrs:{to:"/general/data-structures.html#dataset-configuration"}},[a("code",[t._v("parsing")])]),t._v(" must be "),a("code",[t._v("false")])],1),t._v(" "),a("li",[t._v("The dataset object must be mutable. The plugin stores the original data as "),a("code",[t._v("dataset._data")]),t._v(" and then defines a new "),a("code",[t._v("data")]),t._v(" property on the dataset.")]),t._v(" "),a("li",[t._v("There must be more points on the chart than the threshold value. Take a look at the Configuration Options for more information.")])]),t._v(" "),a("h2",{attrs:{id:"related-samples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#related-samples"}},[t._v("#")]),t._v(" Related Samples")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"../samples/advanced/data-decimation"}},[t._v("Data Decimation Sample")])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/154.2aa9c67d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/154.2aa9c67d.js new file mode 100644 index 0000000..ef12d8a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/154.2aa9c67d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[154],{483:function(e,t,i){"use strict";i.r(t);var a=i(6),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h1",{attrs:{id:"device-pixel-ratio"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#device-pixel-ratio"}},[e._v("#")]),e._v(" Device Pixel Ratio")]),e._v(" "),i("p",[e._v("By default the chart's canvas will use a 1:1 pixel ratio, unless the physical display has a higher pixel ratio (e.g. Retina displays).")]),e._v(" "),i("p",[e._v("For applications where a chart will be converted to a bitmap, or printed to a higher DPI medium it can be desirable to render the chart at a higher resolution than the default.")]),e._v(" "),i("p",[e._v("Setting "),i("code",[e._v("devicePixelRatio")]),e._v(" to a value other than 1 will force the canvas size to be scaled by that amount, relative to the container size. There should be no visible difference on screen; the difference will only be visible when the image is zoomed or printed.")]),e._v(" "),i("h2",{attrs:{id:"configuration-options"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[e._v("#")]),e._v(" Configuration Options")]),e._v(" "),i("p",[e._v("Namespace: "),i("code",[e._v("options")])]),e._v(" "),i("table",[i("thead",[i("tr",[i("th",[e._v("Name")]),e._v(" "),i("th",[e._v("Type")]),e._v(" "),i("th",[e._v("Default")]),e._v(" "),i("th",[e._v("Description")])])]),e._v(" "),i("tbody",[i("tr",[i("td",[i("code",[e._v("devicePixelRatio")])]),e._v(" "),i("td",[i("code",[e._v("number")])]),e._v(" "),i("td",[i("code",[e._v("window.devicePixelRatio")])]),e._v(" "),i("td",[e._v("Override the window's default devicePixelRatio.")])])])])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/155.e3367ebc.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/155.e3367ebc.js new file mode 100644 index 0000000..75000ce --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/155.e3367ebc.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[155],{484:function(e,t,o){"use strict";o.r(t);var r=o(6),v=Object(r.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"elements"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#elements"}},[e._v("#")]),e._v(" Elements")]),e._v(" "),o("p",[e._v("While chart types provide settings to configure the styling of each dataset, you sometimes want to style "),o("strong",[e._v("all datasets the same way")]),e._v(". A common example would be to stroke all of the bars in a bar chart with the same colour but change the fill per dataset. Options can be configured for four different types of elements: "),o("strong",[o("a",{attrs:{href:"#arc-configuration"}},[e._v("arc")])]),e._v(", "),o("strong",[o("a",{attrs:{href:"#line-configuration"}},[e._v("lines")])]),e._v(", "),o("strong",[o("a",{attrs:{href:"#point-configuration"}},[e._v("points")])]),e._v(", and "),o("strong",[o("a",{attrs:{href:"#bar-configuration"}},[e._v("bars")])]),e._v(". When set, these options apply to all objects of that type unless specifically overridden by the configuration attached to a dataset.")]),e._v(" "),o("h2",{attrs:{id:"global-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#global-configuration"}},[e._v("#")]),e._v(" Global Configuration")]),e._v(" "),o("p",[e._v("The element options can be specified per chart or globally. The global options for elements are defined in "),o("code",[e._v("Chart.defaults.elements")]),e._v(". For example, to set the border width of all bar Graficas globally you would do:")]),e._v(" "),o("div",{staticClass:"language-javascript extra-class"},[o("pre",{pre:!0,attrs:{class:"language-javascript"}},[o("code",[e._v("Chart"),o("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("defaults"),o("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("elements"),o("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("bar"),o("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("borderWidth "),o("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),o("span",{pre:!0,attrs:{class:"token number"}},[e._v("2")]),o("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n")])])]),o("h2",{attrs:{id:"point-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#point-configuration"}},[e._v("#")]),e._v(" Point Configuration")]),e._v(" "),o("p",[e._v("Point elements are used to represent the points in a line, radar or bubble chart.")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options.elements.point")]),e._v(", global point options: "),o("code",[e._v("Chart.defaults.elements.point")]),e._v(".")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("radius")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("3")])]),e._v(" "),o("td",[e._v("Point radius.")])]),e._v(" "),o("tr",[o("td",[o("a",{attrs:{href:"#point-styles"}},[o("code",[e._v("pointStyle")])])]),e._v(" "),o("td",[o("a",{attrs:{href:"#types"}},[o("code",[e._v("pointStyle")])])]),e._v(" "),o("td",[o("code",[e._v("'circle'")])]),e._v(" "),o("td",[e._v("Point style.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("rotation")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Point rotation (in degrees).")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("backgroundColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.backgroundColor")])]),e._v(" "),o("td",[e._v("Point fill color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderWidth")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("1")])]),e._v(" "),o("td",[e._v("Point stroke width.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("'Chart.defaults.borderColor")])]),e._v(" "),o("td",[e._v("Point stroke color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("hitRadius")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("1")])]),e._v(" "),o("td",[e._v("Extra radius added to point radius for hit detection.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("hoverRadius")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("4")])]),e._v(" "),o("td",[e._v("Point radius when hovered.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("hoverBorderWidth")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("1")])]),e._v(" "),o("td",[e._v("Stroke width when hovered.")])])])]),e._v(" "),o("h3",{attrs:{id:"point-styles"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#point-styles"}},[e._v("#")]),e._v(" Point Styles")]),e._v(" "),o("h4",{attrs:{id:"types"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#types"}},[e._v("#")]),e._v(" Types")]),e._v(" "),o("p",[e._v("The "),o("code",[e._v("pointStyle")]),e._v(" argument accepts the following type of inputs: "),o("code",[e._v("string")]),e._v(", "),o("code",[e._v("Image")]),e._v(" and "),o("code",[e._v("HTMLCanvasElement")])]),e._v(" "),o("h4",{attrs:{id:"info"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#info"}},[e._v("#")]),e._v(" Info")]),e._v(" "),o("p",[e._v("When a string is provided, the following values are supported:")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("'circle'")])]),e._v(" "),o("li",[o("code",[e._v("'cross'")])]),e._v(" "),o("li",[o("code",[e._v("'crossRot'")])]),e._v(" "),o("li",[o("code",[e._v("'dash'")])]),e._v(" "),o("li",[o("code",[e._v("'line'")])]),e._v(" "),o("li",[o("code",[e._v("'rect'")])]),e._v(" "),o("li",[o("code",[e._v("'rectRounded'")])]),e._v(" "),o("li",[o("code",[e._v("'rectRot'")])]),e._v(" "),o("li",[o("code",[e._v("'star'")])]),e._v(" "),o("li",[o("code",[e._v("'triangle'")])])]),e._v(" "),o("p",[e._v("If the value is an image or a canvas element, that image or canvas element is drawn on the canvas using "),o("a",{attrs:{href:"https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/drawImage",target:"_blank",rel:"noopener noreferrer"}},[e._v("drawImage"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("h2",{attrs:{id:"line-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#line-configuration"}},[e._v("#")]),e._v(" Line Configuration")]),e._v(" "),o("p",[e._v("Line elements are used to represent the line in a line chart.")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options.elements.line")]),e._v(", global line options: "),o("code",[e._v("Chart.defaults.elements.line")]),e._v(".")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("tension")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Bézier curve tension ("),o("code",[e._v("0")]),e._v(" for no Bézier curves).")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("backgroundColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.backgroundColor")])]),e._v(" "),o("td",[e._v("Line fill color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderWidth")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("3")])]),e._v(" "),o("td",[e._v("Line stroke width.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.borderColor")])]),e._v(" "),o("td",[e._v("Line stroke color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderCapStyle")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("'butt'")])]),e._v(" "),o("td",[e._v("Line cap style. See "),o("a",{attrs:{href:"https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap",target:"_blank",rel:"noopener noreferrer"}},[e._v("MDN"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderDash")])]),e._v(" "),o("td",[o("code",[e._v("number[]")])]),e._v(" "),o("td",[o("code",[e._v("[]")])]),e._v(" "),o("td",[e._v("Line dash. See "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash",target:"_blank",rel:"noopener noreferrer"}},[e._v("MDN"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderDashOffset")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0.0")])]),e._v(" "),o("td",[e._v("Line dash offset. See "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset",target:"_blank",rel:"noopener noreferrer"}},[e._v("MDN"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderJoinStyle")])]),e._v(" "),o("td",[o("code",[e._v("'round'")]),e._v("|"),o("code",[e._v("'bevel'")]),e._v("|"),o("code",[e._v("'miter'")])]),e._v(" "),o("td",[o("code",[e._v("'miter'")])]),e._v(" "),o("td",[e._v("Line join style. See "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[e._v("MDN"),o("OutboundLink")],1),e._v(".")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("capBezierPoints")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("true")])]),e._v(" "),o("td",[o("code",[e._v("true")]),e._v(" to keep Bézier control inside the chart, "),o("code",[e._v("false")]),e._v(" for no restriction.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("cubicInterpolationMode")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("'default'")])]),e._v(" "),o("td",[e._v("Interpolation mode to apply. "),o("RouterLink",{attrs:{to:"/Graficas/line.html#cubicinterpolationmode"}},[e._v("See more...")])],1)]),e._v(" "),o("tr",[o("td",[o("code",[e._v("fill")])]),e._v(" "),o("td",[o("code",[e._v("boolean")]),e._v("|"),o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("false")])]),e._v(" "),o("td",[e._v("How to fill the area under the line. See "),o("RouterLink",{attrs:{to:"/Graficas/area.html#filling-modes"}},[e._v("area Graficas")]),e._v(".")],1)]),e._v(" "),o("tr",[o("td",[o("code",[e._v("stepped")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("false")])]),e._v(" "),o("td",[o("code",[e._v("true")]),e._v(" to show the line as a stepped line ("),o("code",[e._v("tension")]),e._v(" will be ignored).")])])])]),e._v(" "),o("h2",{attrs:{id:"bar-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#bar-configuration"}},[e._v("#")]),e._v(" Bar Configuration")]),e._v(" "),o("p",[e._v("Bar elements are used to represent the bars in a bar chart.")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options.elements.bar")]),e._v(", global bar options: "),o("code",[e._v("Chart.defaults.elements.bar")]),e._v(".")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("backgroundColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.backgroundColor")])]),e._v(" "),o("td",[e._v("Bar fill color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderWidth")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("Bar stroke width.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.borderColor")])]),e._v(" "),o("td",[e._v("Bar stroke color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderSkipped")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("'start'")])]),e._v(" "),o("td",[e._v("Skipped (excluded) border: "),o("code",[e._v("'start'")]),e._v(", "),o("code",[e._v("'end'")]),e._v(", "),o("code",[e._v("'middle'")]),e._v(", "),o("code",[e._v("'bottom'")]),e._v(", "),o("code",[e._v("'left'")]),e._v(", "),o("code",[e._v("'top'")]),e._v(", "),o("code",[e._v("'right'")]),e._v(" or "),o("code",[e._v("false")]),e._v(".")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderRadius")])]),e._v(" "),o("td",[o("code",[e._v("number")]),e._v("|"),o("code",[e._v("object")])]),e._v(" "),o("td",[o("code",[e._v("0")])]),e._v(" "),o("td",[e._v("The bar border radius (in pixels).")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("inflateAmount")])]),e._v(" "),o("td",[o("code",[e._v("number")]),e._v("|"),o("code",[e._v("'auto'")])]),e._v(" "),o("td",[o("code",[e._v("'auto'")])]),e._v(" "),o("td",[e._v("The amount of pixels to inflate the bar rectangle(s) when drawing.")])]),e._v(" "),o("tr",[o("td",[o("a",{attrs:{href:"#point-styles"}},[o("code",[e._v("pointStyle")])])]),e._v(" "),o("td",[o("code",[e._v("string")]),e._v("|"),o("code",[e._v("Image")]),e._v("|"),o("code",[e._v("HTMLCanvasElement")])]),e._v(" "),o("td",[o("code",[e._v("'circle'")])]),e._v(" "),o("td",[e._v("Style of the point for legend.")])])])]),e._v(" "),o("h2",{attrs:{id:"arc-configuration"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#arc-configuration"}},[e._v("#")]),e._v(" Arc Configuration")]),e._v(" "),o("p",[e._v("Arcs are used in the polar area, doughnut and pie Graficas.")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options.elements.arc")]),e._v(", global arc options: "),o("code",[e._v("Chart.defaults.elements.arc")]),e._v(".")]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("angle")]),e._v(" - for polar only")]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("circumference / (arc count)")])]),e._v(" "),o("td",[e._v("Arc angle to cover.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("backgroundColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("Chart.defaults.backgroundColor")])]),e._v(" "),o("td",[e._v("Arc fill color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderAlign")])]),e._v(" "),o("td",[o("code",[e._v("'center'")]),e._v("|"),o("code",[e._v("'inner'")])]),e._v(" "),o("td",[o("code",[e._v("'center'")])]),e._v(" "),o("td",[e._v("Arc stroke alignment.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderColor")])]),e._v(" "),o("td",[o("RouterLink",{attrs:{to:"/general/colors.html"}},[o("code",[e._v("Color")])])],1),e._v(" "),o("td",[o("code",[e._v("'#fff'")])]),e._v(" "),o("td",[e._v("Arc stroke color.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderJoinStyle")])]),e._v(" "),o("td",[o("code",[e._v("'round'")]),e._v("|"),o("code",[e._v("'bevel'")]),e._v("|"),o("code",[e._v("'miter'")])]),e._v(" "),o("td",[o("code",[e._v("'bevel'")]),e._v("|"),o("code",[e._v("'round'")])]),e._v(" "),o("td",[e._v("Line join style. See "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin",target:"_blank",rel:"noopener noreferrer"}},[e._v("MDN"),o("OutboundLink")],1),e._v(". The default is "),o("code",[e._v("'round'")]),e._v(" when "),o("code",[e._v("borderAlign")]),e._v(" is "),o("code",[e._v("'inner'")])])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("borderWidth")])]),e._v(" "),o("td",[o("code",[e._v("number")])]),e._v(" "),o("td",[o("code",[e._v("2")])]),e._v(" "),o("td",[e._v("Arc stroke width.")])]),e._v(" "),o("tr",[o("td",[o("code",[e._v("circular")])]),e._v(" "),o("td",[o("code",[e._v("boolean")])]),e._v(" "),o("td",[o("code",[e._v("true")])]),e._v(" "),o("td",[e._v("By default the Arc is curved. If "),o("code",[e._v("circular: false")]),e._v(" the Arc will be flat")])])])])])}),[],!1,null,null,null);t.default=v.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/156.a5bb942d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/156.a5bb942d.js new file mode 100644 index 0000000..0e843b0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/156.a5bb942d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[156],{485:function(t,a,s){"use strict";s.r(a);var e=s(6),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#configuration"}},[t._v("#")]),t._v(" Configuration")]),t._v(" "),s("p",[t._v("The configuration is used to change how the chart behaves. There are properties to control styling, fonts, the legend, etc.")]),t._v(" "),s("h2",{attrs:{id:"configuration-object-structure"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#configuration-object-structure"}},[t._v("#")]),t._v(" Configuration object structure")]),t._v(" "),s("p",[t._v("The top level structure of Chart.js configuration:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" config "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"type"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),s("p",[t._v("Chart type determines the main type of the chart.")]),t._v(" "),s("p",[s("strong",[t._v("note")]),t._v(" A dataset can override the "),s("code",[t._v("type")]),t._v(", this is how mixed Graficas are constructed.")]),t._v(" "),s("h3",{attrs:{id:"data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),s("p",[t._v("See "),s("a",{attrs:{href:"../general/data-structures"}},[t._v("Data Structures")]),t._v(" for details.")]),t._v(" "),s("h3",{attrs:{id:"options"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),s("p",[t._v("Majority of the documentation talks about these options.")]),t._v(" "),s("h3",{attrs:{id:"plugins"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),s("p",[t._v("Inline plugins can be included in this array. It is an alternative way of adding plugins for single chart (vs Registroing the plugin globally).\nMore about plugins in the "),s("RouterLink",{attrs:{to:"/developers/plugins.html"}},[t._v("developers section")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"global-configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#global-configuration"}},[t._v("#")]),t._v(" Global Configuration")]),t._v(" "),s("p",[t._v("This concept was introduced in Chart.js 1.0 to keep configuration "),s("a",{attrs:{href:"https://en.wikipedia.org/wiki/Don%27t_repeat_yourself",target:"_blank",rel:"noopener noreferrer"}},[t._v("DRY"),s("OutboundLink")],1),t._v(", and allow for changing options globally across chart types, avoiding the need to specify options for each instance, or the default for a particular chart type.")]),t._v(" "),s("p",[t._v("Chart.js merges the options object passed to the chart with the global configuration using chart type defaults and scales defaults appropriately. This way you can be as specific as you would like in your individual chart configuration, while still changing the defaults for all chart types where applicable. The global general options are defined in "),s("code",[t._v("Chart.defaults")]),t._v(". The defaults for each chart type are discussed in the documentation for that chart type.")]),t._v(" "),s("p",[t._v("The following example would set the interaction mode to 'nearest' for all Graficas where this was not overridden by the chart type defaults or the options passed to the constructor on creation.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("interaction"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("mode "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'nearest'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Interaction mode is set to nearest because it was not overridden here")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chartInteractionModeNearest "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This chart would have the interaction mode that was passed in")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chartDifferentInteractionMode "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Overrides the global setting")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'index'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"dataset-configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dataset-configuration"}},[t._v("#")]),t._v(" Dataset Configuration")]),t._v(" "),s("p",[t._v("Options may be configured directly on the dataset. The dataset options can be changed at multiple different levels. See "),s("RouterLink",{attrs:{to:"/general/options.html#dataset-level-options"}},[t._v("options")]),t._v(" for details on how the options are resolved.")],1),t._v(" "),s("p",[t._v("The following example would set the "),s("code",[t._v("showLine")]),t._v(" option to 'false' for all line datasets except for those overridden by options passed to the dataset on creation.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do not show lines for all datasets by default")]),t._v("\nChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("line"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("showLine "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This chart would show a line only for the third dataset")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("showLine")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// overrides the `line` dataset default")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'scatter'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 'line' dataset default does not affect this dataset since it's a 'scatter'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/157.09caef4e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/157.09caef4e.js new file mode 100644 index 0000000..1e4e809 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/157.09caef4e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[157],{486:function(t,s,a){"use strict";a.r(s);var n=a(6),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[t._v("#")]),t._v(" Interactions")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.interaction")]),t._v(", the global interaction configuration is at "),a("code",[t._v("Chart.defaults.interaction")]),t._v(". To configure which events trigger chart interactions, see "),a("a",{attrs:{href:"#events"}},[t._v("events")]),t._v(".")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("mode")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'nearest'")])]),t._v(" "),a("td",[t._v("Sets which elements appear in the interaction. See "),a("a",{attrs:{href:"#modes"}},[t._v("Interaction Modes")]),t._v(" for details.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("intersect")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("if true, the interaction mode only applies when the mouse position intersects an item on the chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("axis")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'x'")])]),t._v(" "),a("td",[t._v("Can be set to "),a("code",[t._v("'x'")]),t._v(", "),a("code",[t._v("'y'")]),t._v(", "),a("code",[t._v("'xy'")]),t._v(" or "),a("code",[t._v("'r'")]),t._v(" to define which directions are used in calculating distances. Defaults to "),a("code",[t._v("'x'")]),t._v(" for "),a("code",[t._v("'index'")]),t._v(" mode and "),a("code",[t._v("'xy'")]),t._v(" in "),a("code",[t._v("dataset")]),t._v(" and "),a("code",[t._v("'nearest'")]),t._v(" modes.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("includeInvisible")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.")])])])]),t._v(" "),a("p",[t._v("By default, these options apply to both the hover and tooltip interactions. The same options can be set in the "),a("code",[t._v("options.hover")]),t._v(" namespace, in which case they will only affect the hover interaction. Similarly, the options can be set in the "),a("code",[t._v("options.plugins.tooltip")]),t._v(" namespace to independently configure the tooltip interactions.")]),t._v(" "),a("h2",{attrs:{id:"events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[t._v("#")]),t._v(" Events")]),t._v(" "),a("p",[t._v("The following properties define how the chart interacts with events.\nNamespace: "),a("code",[t._v("options")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("events")])]),t._v(" "),a("td",[a("code",[t._v("string[]")])]),t._v(" "),a("td",[a("code",[t._v("['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']")])]),t._v(" "),a("td",[t._v("The "),a("code",[t._v("events")]),t._v(" option defines the browser events that the chart should listen to for. Each of these events trigger hover and are passed to plugins. "),a("a",{attrs:{href:"#event-option"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("onHover")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("Called when any of the events fire over chartArea. Passed the event, an array of active elements (bars, points, etc), and the chart.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("onClick")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("Called if the event is of type "),a("code",[t._v("'mouseup'")]),t._v(", "),a("code",[t._v("'click'")]),t._v(" or '"),a("code",[t._v("'contextmenu'")]),t._v(" over chartArea. Passed the event, an array of active elements, and the chart.")])])])]),t._v(" "),a("h3",{attrs:{id:"event-option"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#event-option"}},[t._v("#")]),t._v(" Event Option")]),t._v(" "),a("p",[t._v("For example, to have the chart only respond to click events, you could do:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This chart will not respond to mousemove, etc")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("events")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'click'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("Events for each plugin can be further limited by defining (allowed) events array in plugin options:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// All of these (default) events trigger a hover and are passed to all plugins,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// unless limited at plugin options")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("events")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mousemove'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseout'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'click'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'touchstart'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'touchmove'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Tooltip will only receive click events")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("events")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'click'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("Events that do not fire over chartArea, like "),a("code",[t._v("mouseout")]),t._v(", can be captured using a simple plugin:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// these are the default events:")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myEventCatcher'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforeEvent")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" pluginOptions")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" event "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" args"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("event"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("event"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("type "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'mouseout'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// process the event")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("For more information about plugins, see "),a("RouterLink",{attrs:{to:"/developers/plugins.html"}},[t._v("Plugins")])],1),t._v(" "),a("h3",{attrs:{id:"converting-events-to-data-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#converting-events-to-data-values"}},[t._v("#")]),t._v(" Converting Events to Data Values")]),t._v(" "),a("p",[t._v("A common occurrence is taking an event, such as a click, and finding the data coordinates on the chart where the event occurred. Chart.js provides helpers that make this a straightforward process.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onClick")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("e")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" canvasPosition "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("helpers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRelativePosition")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Substitute the appropriate scale IDs")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" dataX "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getValueForPixel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasPosition"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" dataY "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getValueForPixel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasPosition"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("When using a bundler, the helper functions have to be imported seperatly, for a full explanation of this please head over to the "),a("RouterLink",{attrs:{to:"/getting-started/integration.html#helper-functions"}},[t._v("integration")]),t._v(" page")],1),t._v(" "),a("h2",{attrs:{id:"modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#modes"}},[t._v("#")]),t._v(" Modes")]),t._v(" "),a("p",[t._v("When configuring the interaction with the graph via "),a("code",[t._v("interaction")]),t._v(", "),a("code",[t._v("hover")]),t._v(" or "),a("code",[t._v("tooltips")]),t._v(", a number of different modes are available.")]),t._v(" "),a("p",[a("code",[t._v("options.hover")]),t._v(" and "),a("code",[t._v("options.plugins.tooltip")]),t._v(" extend from "),a("code",[t._v("options.interaction")]),t._v(". So if "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("intersect")]),t._v(" or any other common settings are configured only in "),a("code",[t._v("options.interaction")]),t._v(", both hover and tooltips obey that.")]),t._v(" "),a("p",[t._v("The modes are detailed below and how they behave in conjunction with the "),a("code",[t._v("intersect")]),t._v(" setting.")]),t._v(" "),a("p",[t._v("See how different modes work with the tooltip in "),a("RouterLink",{attrs:{to:"/samples/tooltip/interactions.html"}},[t._v("tooltip interactions sample")])],1),t._v(" "),a("h3",{attrs:{id:"point"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#point"}},[t._v("#")]),t._v(" point")]),t._v(" "),a("p",[t._v("Finds all of the items that intersect the point.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'point'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"nearest"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nearest"}},[t._v("#")]),t._v(" nearest")]),t._v(" "),a("p",[t._v("Gets the items that are at the nearest distance to the point. The nearest item is determined based on the distance to the center of the chart item (point, bar). You can use the "),a("code",[t._v("axis")]),t._v(" setting to define which coordinates are considered in distance calculation. If "),a("code",[t._v("intersect")]),t._v(" is true, this is only triggered when the mouse position intersects an item in the graph. This is very useful for combo Graficas where points are hidden behind bars.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'nearest'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("Finds item at the same index. If the "),a("code",[t._v("intersect")]),t._v(" setting is true, the first intersecting item is used to determine the index in the data. If "),a("code",[t._v("intersect")]),t._v(" false the nearest item, in the x direction, is used to determine the index.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'index'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("To use index mode in a chart like the horizontal bar chart, where we Buscar along the y direction, you can use the "),a("code",[t._v("axis")]),t._v(" setting introduced in v2.7.0. By setting this value to "),a("code",[t._v("'y'")]),t._v(" on the y direction is used.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'index'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("axis")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'y'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"dataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset"}},[t._v("#")]),t._v(" dataset")]),t._v(" "),a("p",[t._v("Finds items in the same dataset. If the "),a("code",[t._v("intersect")]),t._v(" setting is true, the first intersecting item is used to determine the index in the data. If "),a("code",[t._v("intersect")]),t._v(" false the nearest item is used to determine the index.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'dataset'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("Returns all items that would intersect based on the "),a("code",[t._v("X")]),t._v(" coordinate of the position only. Would be useful for a vertical cursor implementation. Note that this only applies to cartesian Graficas.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'x'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("Returns all items that would intersect based on the "),a("code",[t._v("Y")]),t._v(" coordinate of the position. This would be useful for a horizontal cursor implementation. Note that this only applies to cartesian Graficas.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'y'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"custom-interaction-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#custom-interaction-modes"}},[t._v("#")]),t._v(" Custom Interaction Modes")]),t._v(" "),a("p",[t._v("New modes can be defined by adding functions to the "),a("code",[t._v("Chart.Interaction.modes")]),t._v(" map. You can use the "),a("code",[t._v("Chart.Interaction.evaluateInteractionItems")]),t._v(" function to help implement these.")]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Interaction "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" getRelativePosition "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js/helpers'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Custom interaction mode\n * @function Interaction.modes.myCustomMode\n * @param {Chart} chart - the chart we are returning items from\n * @param {Event} e - the event we are find things at\n * @param {InteractionOptions} options - options to use\n * @param {boolean} [useFinalPosition] - use final element position (animation target)\n * @return {InteractionItem[]} - items that are found\n */")]),t._v("\nInteraction"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("modes"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("myCustomMode")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" useFinalPosition")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" position "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRelativePosition")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" items "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n Interaction"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("evaluateInteractionItems")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'x'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" position"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("element"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" datasetIndex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("element"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("inXRange")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("position"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" useFinalPosition"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("myCustomLogic")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("element"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("element"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" datasetIndex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" items"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Then, to use it...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("js")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("interaction")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myCustomMode'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("If you're using TypeScript, you'll also need to Registro the new mode:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("declare")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("module")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("InteractionModeMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myCustomMode"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" InteractionModeFunction"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/158.1f82587f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/158.1f82587f.js new file mode 100644 index 0000000..060d30c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/158.1f82587f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[158],{487:function(t,e,a){"use strict";a.r(e);var o=a(6),d=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"layout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layout"}},[t._v("#")]),t._v(" Layout")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.layout")]),t._v(", the global options for the chart layout is defined in "),a("code",[t._v("Chart.defaults.layout")]),t._v(".")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",{staticStyle:{"text-align":"center"}},[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("autoPadding")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("No")]),t._v(" "),a("td",[t._v("Apply automatic padding so visible elements are completely drawn.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),a("td",[t._v("The padding to add inside the chart.")])])])])])}),[],!1,null,null,null);e.default=d.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/159.4cebd9d3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/159.4cebd9d3.js new file mode 100644 index 0000000..6b767bf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/159.4cebd9d3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[159],{488:function(t,e,a){"use strict";a.r(e);var s=a(6),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"legend"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend"}},[t._v("#")]),t._v(" Legend")]),t._v(" "),a("p",[t._v("The chart legend displays data about the datasets that are appearing on the chart.")]),t._v(" "),a("h2",{attrs:{id:"configuration-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration options")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.legend")]),t._v(", the global options for the chart legend is defined in "),a("code",[t._v("Chart.defaults.plugins.legend")]),t._v(".")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("The doughnut, pie, and polar area Graficas override the legend defaults. To change the overrides for those chart types, the options are defined in "),a("code",[t._v("Chart.overrides[type].plugins.legend")]),t._v(".")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Is the legend shown?")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("position")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'top'")])]),t._v(" "),a("td",[t._v("Position of the legend. "),a("a",{attrs:{href:"#position"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("align")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'center'")])]),t._v(" "),a("td",[t._v("Alignment of the legend. "),a("a",{attrs:{href:"#align"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxHeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Maximum height of the legend, in pixels")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("maxWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Maximum width of the legend, in pixels")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("fullSize")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("onClick")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("A callback that is called when a click event is Registroed on a label item. Arguments: "),a("code",[t._v("[event, legendItem, legend]")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("onHover")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("A callback that is called when a 'mousemove' event is Registroed on top of a label item. Arguments: "),a("code",[t._v("[event, legendItem, legend]")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("onLeave")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item. Arguments: "),a("code",[t._v("[event, legendItem, legend]")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("reverse")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Legend will show datasets in reverse order.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labels")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("See the "),a("a",{attrs:{href:"#legend-label-configuration"}},[t._v("Legend Label Configuration")]),t._v(" section below.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("rtl")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for rendering the legends from right to left.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textDirection")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[t._v("canvas' default")]),t._v(" "),a("td",[t._v("This will force the text direction "),a("code",[t._v("'rtl'")]),t._v(" or "),a("code",[t._v("'ltr'")]),t._v(" on the canvas for rendering the legend, regardless of the css specified on the canvas")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("title")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("See the "),a("a",{attrs:{href:"#legend-title-configuration"}},[t._v("Legend Title Configuration")]),t._v(" section below.")])])])]),t._v(" "),a("h2",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" Position")]),t._v(" "),a("p",[t._v("Position of the legend. Options are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'top'")])]),t._v(" "),a("li",[a("code",[t._v("'left'")])]),t._v(" "),a("li",[a("code",[t._v("'bottom'")])]),t._v(" "),a("li",[a("code",[t._v("'right'")])]),t._v(" "),a("li",[a("code",[t._v("'chartArea'")])])]),t._v(" "),a("p",[t._v("When using the "),a("code",[t._v("'chartArea'")]),t._v(" option the legend position is at the moment not configurable, it will always be on the left side of the chart in the middle.")]),t._v(" "),a("h2",{attrs:{id:"align"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#align"}},[t._v("#")]),t._v(" Align")]),t._v(" "),a("p",[t._v("Alignment of the legend. Options are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'start'")])]),t._v(" "),a("li",[a("code",[t._v("'center'")])]),t._v(" "),a("li",[a("code",[t._v("'end'")])])]),t._v(" "),a("p",[t._v("Defaults to "),a("code",[t._v("'center'")]),t._v(" for unrecognized values.")]),t._v(" "),a("h2",{attrs:{id:"legend-label-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend-label-configuration"}},[t._v("#")]),t._v(" Legend Label Configuration")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.legend.labels")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("boxWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("40")])]),t._v(" "),a("td",[t._v("Width of coloured box.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("boxHeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("font.size")])]),t._v(" "),a("td",[t._v("Height of the coloured box.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of label and the strikethrough.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("10")])]),t._v(" "),a("td",[t._v("Padding between rows of colored boxes.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("generateLabels")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Generates legend items for each thing in the legend. Default implementation returns the text + styling for the color box. See "),a("a",{attrs:{href:"#legend-item-interface"}},[t._v("Legend Item")]),t._v(" for details.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("filter")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("Filters legend items out of the legend. Receives 2 parameters, a "),a("a",{attrs:{href:"#legend-item-interface"}},[t._v("Legend Item")]),t._v(" and the chart data.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("sort")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("Sorts legend items. Type is : "),a("code",[t._v("sort(a: LegendItem, b: LegendItem, data: ChartData): number;")]),t._v(". Receives 3 parameters, two "),a("a",{attrs:{href:"#legend-item-interface"}},[t._v("Legend Items")]),t._v(" and the chart data. The return value of the function is a number that indicates the order of the two legend item parameters. The ordering matches the "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description",target:"_blank",rel:"noopener noreferrer"}},[t._v("return value"),a("OutboundLink")],1),t._v(" of "),a("code",[t._v("Array.prototype.sort()")])])]),t._v(" "),a("tr",[a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/configuration/elements.html#types"}},[a("code",[t._v("pointStyle")])])],1),t._v(" "),a("td",[a("code",[t._v("'circle'")])]),t._v(" "),a("td",[t._v("If specified, this style of point is used for the legend. Only used if "),a("code",[t._v("usePointStyle")]),t._v(" is true.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'center'")])]),t._v(" "),a("td",[t._v("Horizontal alignment of the label text. Options are: "),a("code",[t._v("'left'")]),t._v(", "),a("code",[t._v("'right'")]),t._v(" or "),a("code",[t._v("'center'")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("usePointStyle")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Label style will match corresponding point style (size is based on pointStyleWidth or the minimum value between boxWidth and font.size).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("pointStyleWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("If "),a("code",[t._v("usePointStyle")]),t._v(" is true, the width of the point style used for the legend (only for "),a("code",[t._v("circle")]),t._v(", "),a("code",[t._v("rect")]),t._v(" and "),a("code",[t._v("line")]),t._v(" point stlye).")])])])]),t._v(" "),a("h2",{attrs:{id:"legend-title-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend-title-configuration"}},[t._v("#")]),t._v(" Legend Title Configuration")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.legend.title")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("color")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.color")])]),t._v(" "),a("td",[t._v("Color of text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("display")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Is the legend title displayed.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("font")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[a("code",[t._v("Chart.defaults.font")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Padding around the title.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("text")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("The string title.")])])])]),t._v(" "),a("h2",{attrs:{id:"legend-item-interface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend-item-interface"}},[t._v("#")]),t._v(" Legend Item Interface")]),t._v(" "),a("p",[t._v("Items passed to the legend "),a("code",[t._v("onClick")]),t._v(" function are the ones returned from "),a("code",[t._v("labels.generateLabels")]),t._v(". These items must implement the following interface.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Label that will be displayed")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Border radius of the legend item.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Introduced in 3.1.0")]),t._v("\n borderRadius"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" BorderRadius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Index of the associated dataset")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasetIndex")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Fill style of the legend box")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fillStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Text color")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("fontColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("hidden")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" boolean"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For box border. See https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lineCap")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lineDash")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lineDashOffset")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lineJoin")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Width of box border")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("lineWidth")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Stroke style of the legend box")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("strokeStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Point style of the legend box (only used if usePointStyle is true)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("pointStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" Image "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" HTMLCanvasElement"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Rotation of the point in degrees (only used if usePointStyle is true)")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("rotation")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("p",[t._v("The following example will create a chart with the legend enabled and turn all of the text red in color.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("legend")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("color")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 99, 132)'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"custom-on-click-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#custom-on-click-actions"}},[t._v("#")]),t._v(" Custom On Click Actions")]),t._v(" "),a("p",[t._v("It can be common to want to trigger different behaviour when clicking an item in the legend. This can be easily achieved using a callback in the config object.")]),t._v(" "),a("p",[t._v("The default legend click handler is:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legend")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasetIndex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ci "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("isDatasetVisible")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("hide")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hidden "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("show")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hidden "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("Lets say we wanted instead to link the display of the first two datasets. We could change the click handler accordingly.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" defaultLegendClickHandler "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("plugins"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onClick"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" pieDoughnutLegendClickHandler "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("controllers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("doughnut"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("overrides"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("plugins"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("onClick"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("newLegendClickHandler")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legend")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasetIndex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" type "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("type"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Do the original logic")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("type "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'pie'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" type "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'doughnut'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pieDoughnutLegendClickHandler")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("defaultLegendClickHandler")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legendItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" ci "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" legend"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDatasetMeta")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDatasetMeta")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("forEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("meta")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n meta"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hidden "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" meta"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hidden "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hidden "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ci"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("legend")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("onClick")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" newLegendClickHandler\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("Now when you click the legend in this chart, the visibility of the first two datasets will be linked together.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/16.0414f390.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/16.0414f390.js new file mode 100644 index 0000000..37f080c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/16.0414f390.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{347:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-datasetcontroller-ttype-telement-tdatasetelement-tparseddata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-datasetcontroller-ttype-telement-tdatasetelement-tparseddata"}},[t._v("#")]),t._v(" Class: DatasetController")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TDatasetElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TParsedData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#parseddatatype"}},[a("code",[t._v("ParsedDataType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("DatasetController")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutController.html"}},[a("code",[t._v("DoughnutController")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new DatasetController")]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TParsedData")]),t._v(">("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(")")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(" = keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("TElement")]),t._v("> = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TDatasetElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v("> = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TParsedData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#parseddatatype"}},[a("code",[t._v("ParsedDataType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L579",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:579"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"cachedmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cachedmeta"}},[t._v("#")]),t._v(" _cachedMeta")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("_cachedMeta")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L583",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:583"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L581",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:581"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"enableoptionsharing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enableoptionsharing"}},[t._v("#")]),t._v(" enableOptionSharing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("enableOptionSharing")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L584",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:584"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L582",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:582"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"supportsdecimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#supportsdecimation"}},[t._v("#")]),t._v(" supportsDecimation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("supportsDecimation")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L588",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:588"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"addelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addelements"}},[t._v("#")]),t._v(" addElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addElements")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L604",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:604"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"applystack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#applystack"}},[t._v("#")]),t._v(" applyStack")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("applyStack")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:640"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildorupdateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildorupdateelements"}},[t._v("#")]),t._v(" buildOrUpdateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildOrUpdateElements")]),t._v("("),a("code",[t._v("resetNewElements?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("resetNewElements?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L605",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:605"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L602",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:602"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L597",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:597"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getallparsedvalues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getallparsedvalues"}},[t._v("#")]),t._v(" getAllParsedValues")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getAllParsedValues")]),t._v("("),a("code",[t._v("scale")]),t._v("): "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L591",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:591"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdataset"}},[t._v("#")]),t._v(" getDataset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDataset")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L599",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:599"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelandvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelandvalue"}},[t._v("#")]),t._v(" getLabelAndValue")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getLabelAndValue")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("label")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:592"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaxoverflow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaxoverflow"}},[t._v("#")]),t._v(" getMaxOverflow")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMaxOverflow")]),t._v("(): "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L596",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:596"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmeta"}},[t._v("#")]),t._v(" getMeta")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMeta")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L600",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:600"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("canStack?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L647",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:647"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getparsed"}},[t._v("#")]),t._v(" getParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getParsed")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("TParsedData")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("TParsedData")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L639",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:639"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getscaleforid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getscaleforid"}},[t._v("#")]),t._v(" getScaleForId")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getScaleForId")]),t._v("("),a("code",[t._v("scaleID")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scaleID")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getsharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsharedoptions"}},[t._v("#")]),t._v(" getSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getSharedOptions")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("p",[t._v("Utility for checking if the options are shared and should be animated separately.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L614",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:614"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getstyle"}},[t._v("#")]),t._v(" getStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getStyle")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("active")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("active")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L607",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:607"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"includeoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#includeoptions"}},[t._v("#")]),t._v(" includeOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("includeOptions")]),t._v("("),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("sharedOptions")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Utility for determining if "),a("code",[t._v("options")]),t._v(" should be included in the updated properties")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L619",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:619"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"initialize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[t._v("#")]),t._v(" initialize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("initialize")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L603",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:603"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linkscales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linkscales"}},[t._v("#")]),t._v(" linkScales")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("linkScales")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L590",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:590"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L635",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:635"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsearraydata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsearraydata"}},[t._v("#")]),t._v(" parseArrayData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseArrayData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L637",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:637"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseobjectdata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseobjectdata"}},[t._v("#")]),t._v(" parseObjectData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseObjectData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L638",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:638"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseprimitivedata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseprimitivedata"}},[t._v("#")]),t._v(" parsePrimitiveData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parsePrimitiveData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L636",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:636"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removehoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removehoverstyle"}},[t._v("#")]),t._v(" removeHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L632",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:632"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("reset")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L598",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:598"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedataelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedataelementoptions"}},[t._v("#")]),t._v(" resolveDataElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDataElementOptions")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L609",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:609"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedatasetelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedatasetelementoptions"}},[t._v("#")]),t._v(" resolveDatasetElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDatasetElementOptions")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L608",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:608"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"sethoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sethoverstyle"}},[t._v("#")]),t._v(" setHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L633",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:633"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L594",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:594"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelement"}},[t._v("#")]),t._v(" updateElement")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateElement")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("properties")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility for updating an element with new properties, using animations when appropriate.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")]),t._v(" | "),a("code",[t._v("TDatasetElement")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("properties")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L625",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:625"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelements"}},[t._v("#")]),t._v(" updateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateElements")]),t._v("("),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L593",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:593"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateindex"}},[t._v("#")]),t._v(" updateIndex")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateIndex")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L595",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:595"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updaterangefromparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updaterangefromparsed"}},[t._v("#")]),t._v(" updateRangeFromParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateRangeFromParsed")]),t._v("("),a("code",[t._v("range")]),t._v(", "),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v(", "),a("code",[t._v("stack")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("stack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L641",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:641"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatesharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatesharedoptions"}},[t._v("#")]),t._v(" updateSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateSharedOptions")]),t._v("("),a("code",[t._v("sharedOptions")]),t._v(", "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("newOptions")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility to animate the shared options, that are potentially affecting multiple elements.")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("newOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L631",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:631"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/160.47df8215.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/160.47df8215.js new file mode 100644 index 0000000..9755773 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/160.47df8215.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[160],{489:function(e,t,o){"use strict";o.r(t);var a=o(6),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"locale"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#locale"}},[e._v("#")]),e._v(" Locale")]),e._v(" "),o("p",[e._v("For applications where the numbers of ticks on scales must be formatted accordingly with a language sensitive number formatting, you can enable this kind of formatting by setting the "),o("code",[e._v("locale")]),e._v(" option.")]),e._v(" "),o("p",[e._v("The locale is a string that is a "),o("a",{attrs:{href:"https://www.unicode.org/reports/tr35/tr35.html#BCP_47_Conformance",target:"_blank",rel:"noopener noreferrer"}},[e._v("Unicode BCP 47 locale identifier"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("A Unicode BCP 47 locale identifier consists of")]),e._v(" "),o("ol",[o("li",[e._v("a language code,")]),e._v(" "),o("li",[e._v("(optionally) a script code,")]),e._v(" "),o("li",[e._v("(optionally) a region (or country) code,")]),e._v(" "),o("li",[e._v("(optionally) one or more variant codes, and")]),e._v(" "),o("li",[e._v("(optionally) one or more extension sequences,")])]),e._v(" "),o("p",[e._v("with all present Componentes separated by hyphens.")]),e._v(" "),o("p",[e._v("By default the chart is using the default locale of the platform which is running on.")]),e._v(" "),o("h2",{attrs:{id:"configuration-options"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[e._v("#")]),e._v(" Configuration Options")]),e._v(" "),o("p",[e._v("Namespace: "),o("code",[e._v("options")])]),e._v(" "),o("table",[o("thead",[o("tr",[o("th",[e._v("Name")]),e._v(" "),o("th",[e._v("Type")]),e._v(" "),o("th",[e._v("Default")]),e._v(" "),o("th",[e._v("Description")])])]),e._v(" "),o("tbody",[o("tr",[o("td",[o("code",[e._v("locale")])]),e._v(" "),o("td",[o("code",[e._v("string")])]),e._v(" "),o("td",[o("code",[e._v("undefined")])]),e._v(" "),o("td",[e._v("a string with a BCP 47 language tag, leveraging on "),o("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat",target:"_blank",rel:"noopener noreferrer"}},[e._v("INTL NumberFormat"),o("OutboundLink")],1),e._v(".")])])])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/161.fac79692.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/161.fac79692.js new file mode 100644 index 0000000..d33f84a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/161.fac79692.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[161],{490:function(t,a,e){"use strict";e.r(a);var s=e(6),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"responsive-Graficas"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#responsive-Graficas"}},[t._v("#")]),t._v(" Responsive Graficas")]),t._v(" "),e("p",[t._v("When it comes to changing the chart size based on the window size, a major limitation is that the canvas "),e("em",[t._v("render")]),t._v(" size ("),e("code",[t._v("canvas.width")]),t._v(" and "),e("code",[t._v(".height")]),t._v(") can "),e("strong",[t._v("not")]),t._v(" be expressed with relative values, contrary to the "),e("em",[t._v("display")]),t._v(" size ("),e("code",[t._v("canvas.style.width")]),t._v(" and "),e("code",[t._v(".height")]),t._v("). Furthermore, these sizes are independent from each other and thus the canvas "),e("em",[t._v("render")]),t._v(" size does not adjust automatically based on the "),e("em",[t._v("display")]),t._v(" size, making the rendering inaccurate.")]),t._v(" "),e("p",[t._v("The following examples "),e("strong",[t._v("do not work")]),t._v(":")]),t._v(" "),e("ul",[e("li",[e("code",[t._v('')]),t._v(": "),e("strong",[t._v("invalid")]),t._v(" values, the canvas doesn't resize ("),e("a",{attrs:{href:"https://codepen.io/chartjs/pen/oWLZaR",target:"_blank",rel:"noopener noreferrer"}},[t._v("example"),e("OutboundLink")],1),t._v(")")]),t._v(" "),e("li",[e("code",[t._v('')]),t._v(": "),e("strong",[t._v("invalid")]),t._v(" behavior, the canvas is resized but becomes blurry ("),e("a",{attrs:{href:"https://codepen.io/chartjs/pen/WjxpmO",target:"_blank",rel:"noopener noreferrer"}},[t._v("example"),e("OutboundLink")],1),t._v(")")]),t._v(" "),e("li",[e("code",[t._v('')]),t._v(": "),e("strong",[t._v("invalid")]),t._v(" behavior, the canvas continually shrinks. Chart.js needs a dedicated container for each canvas and this styling should be applied there.")])]),t._v(" "),e("p",[t._v("Chart.js provides a "),e("a",{attrs:{href:"#configuration-options"}},[t._v("few options")]),t._v(" to enable responsiveness and control the resize behavior of Graficas by detecting when the canvas "),e("em",[t._v("display")]),t._v(" size changes and update the "),e("em",[t._v("render")]),t._v(" size accordingly.")]),t._v(" "),e("h2",{attrs:{id:"configuration-options"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#configuration-options"}},[t._v("#")]),t._v(" Configuration Options")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options")])]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("responsive")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",[t._v("Resizes the chart canvas when its container does ("),e("a",{attrs:{href:"#important-note"}},[t._v("important note...")]),t._v(").")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("maintainAspectRatio")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",[t._v("Maintain the original canvas aspect ratio "),e("code",[t._v("(width / height)")]),t._v(" when resizing.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("aspectRatio")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("1")]),t._v("|"),e("code",[t._v("2")])]),t._v(" "),e("td",[t._v("Canvas aspect ratio (i.e. "),e("code",[t._v("width / height")]),t._v(", a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style. The default value varies by chart type; Radial Graficas (doughnut, pie, polarArea, radar) default to "),e("code",[t._v("1")]),t._v(" and others default to "),e("code",[t._v("2")]),t._v(".")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("onResize")])]),t._v(" "),e("td",[e("code",[t._v("function")])]),t._v(" "),e("td",[e("code",[t._v("null")])]),t._v(" "),e("td",[t._v("Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("resizeDelay")])]),t._v(" "),e("td",[e("code",[t._v("number")])]),t._v(" "),e("td",[e("code",[t._v("0")])]),t._v(" "),e("td",[t._v("Delay the resize update by the given amount of milliseconds. This can ease the resize process by debouncing the update of the elements.")])])])]),t._v(" "),e("h2",{attrs:{id:"important-note"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#important-note"}},[t._v("#")]),t._v(" Important Note")]),t._v(" "),e("p",[t._v("Detecting when the canvas size changes can not be done directly from the "),e("code",[t._v("canvas")]),t._v(" element. Chart.js uses its parent container to update the canvas "),e("em",[t._v("render")]),t._v(" and "),e("em",[t._v("display")]),t._v(" sizes. However, this method requires the container to be "),e("strong",[t._v("relatively positioned")]),t._v(" and "),e("strong",[t._v("dedicated to the chart canvas only")]),t._v(". Responsiveness can then be achieved by setting relative values for the container size ("),e("a",{attrs:{href:"https://codepen.io/chartjs/pen/YVWZbz",target:"_blank",rel:"noopener noreferrer"}},[t._v("example"),e("OutboundLink")],1),t._v("):")]),t._v(" "),e("div",{staticClass:"language-html extra-class"},[e("pre",{pre:!0,attrs:{class:"language-html"}},[e("code",[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("class")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("chart-container"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),e("span",{pre:!0,attrs:{class:"token special-attr"}},[e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("style")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),e("span",{pre:!0,attrs:{class:"token value css language-css"}},[e("span",{pre:!0,attrs:{class:"token property"}},[t._v("position")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" relative"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v("height")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("40vh"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token property"}},[t._v("width")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("80vw")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),e("span",{pre:!0,attrs:{class:"token attr-value"}},[e("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token tag"}},[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),e("p",[t._v("The chart can also be programmatically resized by modifying the container size:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("canvas"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("parentNode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("height "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'128px'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nchart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("canvas"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("parentNode"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("width "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'128px'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("Note that in order for the above code to correctly resize the chart height, the "),e("a",{attrs:{href:"#configuration-options"}},[e("code",[t._v("maintainAspectRatio")])]),t._v(" option must also be set to "),e("code",[t._v("false")]),t._v(".")]),t._v(" "),e("h2",{attrs:{id:"printing-resizable-Graficas"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#printing-resizable-Graficas"}},[t._v("#")]),t._v(" Printing Resizable Graficas")]),t._v(" "),e("p",[t._v("CSS media queries allow changing styles when printing a page. The CSS applied from these media queries may cause Graficas to need to resize. However, the resize won't happen automatically. To support resizing Graficas when printing, you need to hook the "),e("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint",target:"_blank",rel:"noopener noreferrer"}},[t._v("onbeforeprint"),e("OutboundLink")],1),t._v(" event and manually trigger resizing of each chart.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("beforePrintHandler")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" id "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" Chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instances"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("instances"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("id"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("You may also find that, due to complexities in when the browser lays out the document for printing and when resize events are fired, Chart.js is unable to properly resize for the print layout. To work around this, you can pass an explicit size to "),e("code",[t._v(".resize()")]),t._v(" then use an "),e("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onafterprint",target:"_blank",rel:"noopener noreferrer"}},[t._v("onafterprint"),e("OutboundLink")],1),t._v(" event to restore the automatic size when done.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("window"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addEventListener")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'beforeprint'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myChart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("600")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("600")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nwindow"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("addEventListener")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'afterprint'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myChart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/162.9f2f870f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/162.9f2f870f.js new file mode 100644 index 0000000..fcbfe2d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/162.9f2f870f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[162],{491:function(t,a,s){"use strict";s.r(a);var e=s(6),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"subtitle"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#subtitle"}},[t._v("#")]),t._v(" Subtitle")]),t._v(" "),s("p",[t._v("Subtitle is a second title placed under the main title, by default. It has exactly the same configuration options with the main "),s("RouterLink",{attrs:{to:"/configuration/title.html"}},[t._v("title")]),t._v(".")],1),t._v(" "),s("h2",{attrs:{id:"subtitle-configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#subtitle-configuration"}},[t._v("#")]),t._v(" Subtitle Configuration")]),t._v(" "),s("p",[t._v("Namespace: "),s("code",[t._v("options.plugins.subtitle")]),t._v(". The global defaults for subtitle are configured in "),s("code",[t._v("Chart.defaults.plugins.subtitle")]),t._v(".")]),t._v(" "),s("p",[t._v("Exactly the same configuration options with "),s("RouterLink",{attrs:{to:"/configuration/title.html"}},[t._v("title")]),t._v(" are available for subtitle, the namespaces only differ.")],1),t._v(" "),s("h2",{attrs:{id:"example-usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#example-usage"}},[t._v("#")]),t._v(" Example Usage")]),t._v(" "),s("p",[t._v("The example below would enable a title of 'Custom Chart Subtitle' on the chart that is created.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("subtitle")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("text")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Custom Chart Subtitle'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/163.4f1604f9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/163.4f1604f9.js new file mode 100644 index 0000000..b2cc838 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/163.4f1604f9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[163],{492:function(t,a,e){"use strict";e.r(a);var s=e(6),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"title"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" Title")]),t._v(" "),e("p",[t._v("The chart title defines text to draw at the top of the chart.")]),t._v(" "),e("h2",{attrs:{id:"title-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#title-configuration"}},[t._v("#")]),t._v(" Title Configuration")]),t._v(" "),e("p",[t._v("Namespace: "),e("code",[t._v("options.plugins.title")]),t._v(", the global options for the chart title is defined in "),e("code",[t._v("Chart.defaults.plugins.title")]),t._v(".")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Name")]),t._v(" "),e("th",[t._v("Type")]),t._v(" "),e("th",[t._v("Default")]),t._v(" "),e("th",{staticStyle:{"text-align":"center"}},[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable")])],1),t._v(" "),e("th",[t._v("Description")])])]),t._v(" "),e("tbody",[e("tr",[e("td",[e("code",[t._v("align")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'center'")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Alignment of the title. "),e("a",{attrs:{href:"#align"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("color")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/colors.html"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("td",[e("code",[t._v("Chart.defaults.color")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Color of text.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("display")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("false")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Is the title shown?")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("fullSize")])]),t._v(" "),e("td",[e("code",[t._v("boolean")])]),t._v(" "),e("td",[e("code",[t._v("true")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Marks that this box should take the full width/height of the canvas. If "),e("code",[t._v("false")]),t._v(", the box is sized and placed above/beside the chart area.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("position")])]),t._v(" "),e("td",[e("code",[t._v("string")])]),t._v(" "),e("td",[e("code",[t._v("'top'")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Position of title. "),e("a",{attrs:{href:"#position"}},[t._v("more...")])])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("font")])]),t._v(" "),e("td",[e("code",[t._v("Font")])]),t._v(" "),e("td",[e("code",[t._v("{weight: 'bold'}")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("See "),e("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")])],1)]),t._v(" "),e("tr",[e("td",[e("code",[t._v("padding")])]),t._v(" "),e("td",[e("RouterLink",{attrs:{to:"/general/padding.html"}},[e("code",[t._v("Padding")])])],1),t._v(" "),e("td",[e("code",[t._v("10")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Padding to apply around the title. Only "),e("code",[t._v("top")]),t._v(" and "),e("code",[t._v("bottom")]),t._v(" are implemented.")])]),t._v(" "),e("tr",[e("td",[e("code",[t._v("text")])]),t._v(" "),e("td",[e("code",[t._v("string")]),t._v("|"),e("code",[t._v("string[]")])]),t._v(" "),e("td",[e("code",[t._v("''")])]),t._v(" "),e("td",{staticStyle:{"text-align":"center"}},[t._v("Yes")]),t._v(" "),e("td",[t._v("Title text to display. If specified as an array, text is rendered on multiple lines.")])])])]),t._v(" "),e("h3",{attrs:{id:"position"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" Position")]),t._v(" "),e("p",[t._v("Possible title position values are:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("'top'")])]),t._v(" "),e("li",[e("code",[t._v("'left'")])]),t._v(" "),e("li",[e("code",[t._v("'bottom'")])]),t._v(" "),e("li",[e("code",[t._v("'right'")])])]),t._v(" "),e("h2",{attrs:{id:"align"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#align"}},[t._v("#")]),t._v(" Align")]),t._v(" "),e("p",[t._v("Alignment of the title. Options are:")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("'start'")])]),t._v(" "),e("li",[e("code",[t._v("'center'")])]),t._v(" "),e("li",[e("code",[t._v("'end'")])])]),t._v(" "),e("h2",{attrs:{id:"example-usage"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#example-usage"}},[t._v("#")]),t._v(" Example Usage")]),t._v(" "),e("p",[t._v("The example below would enable a title of 'Custom Chart Title' on the chart that is created.")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("text")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Custom Chart Title'")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),e("p",[t._v("This example shows how to specify separate top and bottom title text padding:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("title")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("text")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Custom Chart Title'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("padding")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("top")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bottom")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/164.7f8d8643.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/164.7f8d8643.js new file mode 100644 index 0000000..6ab7060 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/164.7f8d8643.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[164],{493:function(t,s,a){"use strict";a.r(s);var e=a(6),n=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" Tooltip")]),t._v(" "),a("h2",{attrs:{id:"tooltip-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip-configuration"}},[t._v("#")]),t._v(" Tooltip Configuration")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.tooltip")]),t._v(", the global options for the chart tooltips is defined in "),a("code",[t._v("Chart.defaults.plugins.tooltip")]),t._v(".")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("The bubble, doughnut, pie, polar area, and scatter Graficas override the tooltip defaults. To change the overrides for those chart types, the options are defined in "),a("code",[t._v("Chart.overrides[type].plugins.tooltip")]),t._v(".")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Type")]),t._v(" "),a("th",[t._v("Default")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("enabled")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("Are on-canvas tooltips enabled?")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("external")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td",[a("code",[t._v("null")])]),t._v(" "),a("td",[t._v("See "),a("a",{attrs:{href:"#external-custom-tooltips"}},[t._v("external tooltip")]),t._v(" section.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("mode")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("interaction.mode")])]),t._v(" "),a("td",[t._v("Sets which elements appear in the tooltip. "),a("RouterLink",{attrs:{to:"/configuration/interactions.html#modes"}},[t._v("more...")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("intersect")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("interaction.intersect")])]),t._v(" "),a("td",[t._v("If true, the tooltip mode applies only when the mouse position intersects with an element. If false, the mode will be applied at all times.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("position")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'average'")])]),t._v(" "),a("td",[t._v("The mode for positioning the tooltip. "),a("a",{attrs:{href:"#position-modes"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("callbacks")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("See the "),a("a",{attrs:{href:"#tooltip-callbacks"}},[t._v("callbacks section")]),t._v(".")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("itemSort")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Sort tooltip items. "),a("a",{attrs:{href:"#sort-callback"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("filter")])]),t._v(" "),a("td",[a("code",[t._v("function")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Filter tooltip items. "),a("a",{attrs:{href:"#filter-callback"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("backgroundColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0.8)'")])]),t._v(" "),a("td",[t._v("Background color of the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("titleColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'#fff'")])]),t._v(" "),a("td",[t._v("Color of title text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("titleFont")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[a("code",[t._v("{weight: 'bold'}")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("titleAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'left'")])]),t._v(" "),a("td",[t._v("Horizontal alignment of the title text lines. "),a("a",{attrs:{href:"#text-alignment"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("titleSpacing")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Spacing to add to top and bottom of each title line.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("titleMarginBottom")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("6")])]),t._v(" "),a("td",[t._v("Margin to add on bottom of title section.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("bodyColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'#fff'")])]),t._v(" "),a("td",[t._v("Color of body text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("bodyFont")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[a("code",[t._v("{}")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("bodyAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'left'")])]),t._v(" "),a("td",[t._v("Horizontal alignment of the body text lines. "),a("a",{attrs:{href:"#text-alignment"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("bodySpacing")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Spacing to add to top and bottom of each tooltip item.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footerColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'#fff'")])]),t._v(" "),a("td",[t._v("Color of footer text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footerFont")])]),t._v(" "),a("td",[a("code",[t._v("Font")])]),t._v(" "),a("td",[a("code",[t._v("{weight: 'bold'}")])]),t._v(" "),a("td",[t._v("See "),a("RouterLink",{attrs:{to:"/general/fonts.html"}},[t._v("Fonts")]),t._v(".")],1)]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footerAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("'left'")])]),t._v(" "),a("td",[t._v("Horizontal alignment of the footer text lines. "),a("a",{attrs:{href:"#text-alignment"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footerSpacing")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Spacing to add to top and bottom of each footer line.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footerMarginTop")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("6")])]),t._v(" "),a("td",[t._v("Margin to add before drawing the footer.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("padding")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/padding.html"}},[a("code",[t._v("Padding")])])],1),t._v(" "),a("td",[a("code",[t._v("6")])]),t._v(" "),a("td",[t._v("Padding inside the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("caretPadding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("2")])]),t._v(" "),a("td",[t._v("Extra distance to move the end of the tooltip arrow away from the tooltip point.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("caretSize")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("5")])]),t._v(" "),a("td",[t._v("Size, in px, of the tooltip arrow.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("cornerRadius")])]),t._v(" "),a("td",[a("code",[t._v("number")]),t._v("|"),a("code",[t._v("object")])]),t._v(" "),a("td",[a("code",[t._v("6")])]),t._v(" "),a("td",[t._v("Radius of tooltip corner curves.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("multiKeyBackground")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'#fff'")])]),t._v(" "),a("td",[t._v("Color to draw behind the colored boxes when multiple items are in the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("displayColors")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("true")])]),t._v(" "),a("td",[t._v("If true, color boxes are shown in the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("boxWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("bodyFont.size")])]),t._v(" "),a("td",[t._v("Width of the color box if displayColors is true.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("boxHeight")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("bodyFont.size")])]),t._v(" "),a("td",[t._v("Height of the color box if displayColors is true.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("boxPadding")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("1")])]),t._v(" "),a("td",[t._v("Padding between the color box and the text.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("usePointStyle")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td",[a("code",[t._v("false")])]),t._v(" "),a("td",[t._v("Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight).")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderColor")])]),t._v(" "),a("td",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",[a("code",[t._v("'rgba(0, 0, 0, 0)'")])]),t._v(" "),a("td",[t._v("Color of the border.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("borderWidth")])]),t._v(" "),a("td",[a("code",[t._v("number")])]),t._v(" "),a("td",[a("code",[t._v("0")])]),t._v(" "),a("td",[t._v("Size of the border.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("rtl")])]),t._v(" "),a("td",[a("code",[t._v("boolean")])]),t._v(" "),a("td"),t._v(" "),a("td",[a("code",[t._v("true")]),t._v(" for rendering the tooltip from right to left.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("textDirection")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[t._v("canvas' default")]),t._v(" "),a("td",[t._v("This will force the text direction "),a("code",[t._v("'rtl' or 'ltr")]),t._v(" on the canvas for rendering the tooltips, regardless of the css specified on the canvas")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("xAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("undefined")])]),t._v(" "),a("td",[t._v("Position of the tooltip caret in the X direction. "),a("a",{attrs:{href:"#tooltip-alignment"}},[t._v("more")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("yAlign")])]),t._v(" "),a("td",[a("code",[t._v("string")])]),t._v(" "),a("td",[a("code",[t._v("undefined")])]),t._v(" "),a("td",[t._v("Position of the tooltip caret in the Y direction. "),a("a",{attrs:{href:"#tooltip-alignment"}},[t._v("more")])])])])]),t._v(" "),a("h3",{attrs:{id:"position-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position-modes"}},[t._v("#")]),t._v(" Position Modes")]),t._v(" "),a("p",[t._v("Possible modes are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'average'")])]),t._v(" "),a("li",[a("code",[t._v("'nearest'")])])]),t._v(" "),a("p",[a("code",[t._v("'average'")]),t._v(" mode will place the tooltip at the average position of the items displayed in the tooltip. "),a("code",[t._v("'nearest'")]),t._v(" will place the tooltip at the position of the element closest to the event position.")]),t._v(" "),a("p",[t._v("You can also define "),a("a",{attrs:{href:"#custom-position-modes"}},[t._v("custom position modes")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"tooltip-alignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip-alignment"}},[t._v("#")]),t._v(" Tooltip Alignment")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("xAlign")]),t._v(" and "),a("code",[t._v("yAlign")]),t._v(" options define the position of the tooltip caret. If these parameters are unset, the optimal caret position is determined.")]),t._v(" "),a("p",[t._v("The following values for the "),a("code",[t._v("xAlign")]),t._v(" setting are supported.")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'left'")])]),t._v(" "),a("li",[a("code",[t._v("'center'")])]),t._v(" "),a("li",[a("code",[t._v("'right'")])])]),t._v(" "),a("p",[t._v("The following values for the "),a("code",[t._v("yAlign")]),t._v(" setting are supported.")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'top'")])]),t._v(" "),a("li",[a("code",[t._v("'center'")])]),t._v(" "),a("li",[a("code",[t._v("'bottom'")])])]),t._v(" "),a("h3",{attrs:{id:"text-alignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#text-alignment"}},[t._v("#")]),t._v(" Text Alignment")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("titleAlign")]),t._v(", "),a("code",[t._v("bodyAlign")]),t._v(" and "),a("code",[t._v("footerAlign")]),t._v(" options define the horizontal position of the text lines with respect to the tooltip box. The following values are supported.")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("'left'")]),t._v(" (default)")]),t._v(" "),a("li",[a("code",[t._v("'right'")])]),t._v(" "),a("li",[a("code",[t._v("'center'")])])]),t._v(" "),a("p",[t._v("These options are only applied to text lines. Color boxes are always aligned to the left edge.")]),t._v(" "),a("h3",{attrs:{id:"sort-callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sort-callback"}},[t._v("#")]),t._v(" Sort Callback")]),t._v(" "),a("p",[t._v("Allows sorting of "),a("a",{attrs:{href:"#tooltip-item-context"}},[t._v("tooltip items")]),t._v(". Must implement at minimum a function that can be passed to "),a("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array.prototype.sort"),a("OutboundLink")],1),t._v(". This function can also accept a third parameter that is the data object passed to the chart.")]),t._v(" "),a("h3",{attrs:{id:"filter-callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#filter-callback"}},[t._v("#")]),t._v(" Filter Callback")]),t._v(" "),a("p",[t._v("Allows filtering of "),a("a",{attrs:{href:"#tooltip-item-context"}},[t._v("tooltip items")]),t._v(". Must implement at minimum a function that can be passed to "),a("a",{attrs:{href:"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array.prototype.filter"),a("OutboundLink")],1),t._v(". This function can also accept a fourth parameter that is the data object passed to the chart.")]),t._v(" "),a("h2",{attrs:{id:"tooltip-callbacks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip-callbacks"}},[t._v("#")]),t._v(" Tooltip Callbacks")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("options.plugins.tooltip.callbacks")]),t._v(", the tooltip has the following callbacks for providing text. For all functions, "),a("code",[t._v("this")]),t._v(" will be the tooltip object created from the "),a("code",[t._v("Tooltip")]),t._v(" constructor.")]),t._v(" "),a("p",[t._v("Namespace: "),a("code",[t._v("data.datasets[].tooltip.callbacks")]),t._v(", items marked with "),a("code",[t._v("Yes")]),t._v(" in the column "),a("code",[t._v("Dataset override")]),t._v(" can be overridden per dataset.")]),t._v(" "),a("p",[t._v("A "),a("a",{attrs:{href:"#tooltip-item-context"}},[t._v("tooltip item context")]),t._v(" is generated for each item that appears in the tooltip. This is the primary model that the callback methods interact with. For functions that return text, arrays of strings are treated as multiple lines of text.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Name")]),t._v(" "),a("th",[t._v("Arguments")]),t._v(" "),a("th",[t._v("Return Type")]),t._v(" "),a("th",[t._v("Dataset override")]),t._v(" "),a("th",[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[a("code",[t._v("beforeTitle")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns the text to render before the title.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("title")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render as the title of the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("afterTitle")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render after the title.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("beforeBody")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render before the body section.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("beforeLabel")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns text to render before an individual label. This will be called for each item in the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("label")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns text to render for an individual item in the tooltip. "),a("a",{attrs:{href:"#label-callback"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelColor")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns the colors to render for the tooltip item. "),a("a",{attrs:{href:"#label-color-callback"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelTextColor")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("Color")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns the colors for the text of the label for the tooltip item.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("labelPointStyle")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("object")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns the point style to use instead of color boxes if usePointStyle is true (object with values "),a("code",[t._v("pointStyle")]),t._v(" and "),a("code",[t._v("rotation")]),t._v("). Default implementation uses the point style from the dataset points. "),a("a",{attrs:{href:"#label-point-style-callback"}},[t._v("more...")])])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("afterLabel")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td",[t._v("Yes")]),t._v(" "),a("td",[t._v("Returns text to render after an individual label.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("afterBody")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render after the body section.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("beforeFooter")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render before the footer section.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("footer")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Returns text to render as the footer of the tooltip.")])]),t._v(" "),a("tr",[a("td",[a("code",[t._v("afterFooter")])]),t._v(" "),a("td",[a("code",[t._v("TooltipItem[]")])]),t._v(" "),a("td",[a("code",[t._v("string | string[]")])]),t._v(" "),a("td"),t._v(" "),a("td",[t._v("Text to render after the footer section.")])])])]),t._v(" "),a("h3",{attrs:{id:"label-callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label-callback"}},[t._v("#")]),t._v(" Label Callback")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("label")]),t._v(" callback can change the text that displays for a given data point. A common example to show a unit. The example below puts a "),a("code",[t._v("'$'")]),t._v(" before every row.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("callbacks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" label "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("dataset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("label "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("label"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n label "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("': '")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("parsed"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n label "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Intl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("NumberFormat")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'en-US'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("style")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'currency'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("currency")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'USD'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("format")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("parsed"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" label"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"label-color-callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label-color-callback"}},[t._v("#")]),t._v(" Label Color Callback")]),t._v(" "),a("p",[t._v("For example, to return a red box with a blue dashed border that has a border radius for each item in the tooltip you could do:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("callbacks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("labelColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(0, 0, 255)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 0, 0)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderWidth")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderDash")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderRadius")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("labelTextColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#543453'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"label-point-style-callback"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label-point-style-callback"}},[t._v("#")]),t._v(" Label Point Style Callback")]),t._v(" "),a("p",[t._v("For example, to draw triangles instead of the regular color box for each item in the tooltip you could do:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("usePointStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("callbacks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("labelPointStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("pointStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'triangle'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("rotation")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h3",{attrs:{id:"tooltip-item-context"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip-item-context"}},[t._v("#")]),t._v(" Tooltip Item Context")]),t._v(" "),a("p",[t._v("The tooltip items passed to the tooltip callbacks implement the following interface.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The chart the tooltip is being shown on")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("chart")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Chart\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Label for the tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Parsed data values for the given `dataIndex` and `datasetIndex`")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsed")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Raw data values for the given `dataIndex` and `datasetIndex`")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("raw")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Formatted value for the tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("formattedValue")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The dataset the item comes from")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("dataset")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Index of the dataset the item comes from")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasetIndex")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Index of this data item in the dataset")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("dataIndex")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The chart element (point, arc, bar, etc.) for this tooltip item")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("element")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Element"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"external-custom-tooltips"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#external-custom-tooltips"}},[t._v("#")]),t._v(" External (Custom) Tooltips")]),t._v(" "),a("p",[t._v("External tooltips allow you to hook into the tooltip rendering process so that you can render the tooltip in your own custom way. Generally this is used to create an HTML tooltip instead of an on-canvas tooltip. The "),a("code",[t._v("external")]),t._v(" option takes a function which is passed a context parameter containing the "),a("code",[t._v("chart")]),t._v(" and "),a("code",[t._v("tooltip")]),t._v(". You can enable external tooltips in the global or chart configuration like so:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myPieChart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'pie'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Disable the on-canvas tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("enabled")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("external")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Tooltip Element")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" tooltipEl "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chartjs-tooltip'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Create element on first render")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n tooltipEl "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("createElement")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'div'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chartjs-tooltip'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("innerHTML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'
'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("body"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("appendChild")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Hide if no tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" tooltipModel "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("tooltip"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opacity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opacity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Set caret Position")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("classList"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("remove")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'above'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'below'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'no-transform'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("yAlign"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("classList"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("yAlign"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("classList"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'no-transform'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getBody")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("bodyItem")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" bodyItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lines"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Set Text")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("body"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" titleLines "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" bodyLines "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("body"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("map")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("getBody"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" innerHtml "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n titleLines"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("forEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n innerHtml "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" title "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n innerHtml "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n bodyLines"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("forEach")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("body"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" i")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" colors "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("labelColors"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" style "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'background:'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" colors"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("backgroundColor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n style "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'; border-color:'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" colors"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("borderColor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n style "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'; border-width: 2px'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" span "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n innerHtml "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" span "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" body "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n innerHtml "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" tableRoot "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("querySelector")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'table'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tableRoot"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("innerHTML "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" innerHtml"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" position "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("canvas"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getBoundingClientRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" bodyFont "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("helpers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toFont")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("bodyFont"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Display, position, and set styles for font")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("opacity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("position "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'absolute'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("left "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" position"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("left "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" window"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pageXOffset "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("caretX "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'px'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("top "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" position"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("top "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" window"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pageYOffset "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("caretY "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'px'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("font "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" bodyFont"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("padding "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("padding "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'px '")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" tooltipModel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("padding "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'px'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n tooltipEl"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("style"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("pointerEvents "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'none'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/samples/tooltip/html.html"}},[t._v("samples")]),t._v(" for examples on how to get started with external tooltips.")],1),t._v(" "),a("h2",{attrs:{id:"tooltip-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip-model"}},[t._v("#")]),t._v(" Tooltip Model")]),t._v(" "),a("p",[t._v("The tooltip model contains parameters that can be used to render the tooltip.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("chart")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The items that we are rendering in the tooltip. See Tooltip Item Interface section")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("dataPoints")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" TooltipItem"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Positioning")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("xAlign")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAlign")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// X and Y properties are the top left of the tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("width")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("height")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Where the tooltip points to")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("caretX")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("caretY")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Body")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The body lines that need to be rendered")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Each object contains 3 parameters")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// before: string[] // lines of text before the line with the color square")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// lines: string[], // lines of text to render as the main item with color square")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// after: string[], // lines of text to render after the main lines")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("body")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// lines of text that appear after the title but before the body")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("beforeBody")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// line of text that appear after the body and before the footer")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("afterBody")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Title")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// lines of text that form the title")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Footer")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// lines of text that form the footer")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("footer")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// colors to render for each item in body[]. This is the color of the squares in the tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labelColors")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labelTextColors")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 0 opacity is a hidden tooltip")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("opacity")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// tooltip options")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Object\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"custom-position-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#custom-position-modes"}},[t._v("#")]),t._v(" Custom Position Modes")]),t._v(" "),a("p",[t._v("New modes can be defined by adding functions to the "),a("code",[t._v("Chart.Tooltip.positioners")]),t._v(" map.")]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Tooltip "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * Custom positioner\n * @function Tooltip.positioners.myCustomPositioner\n * @param elements {Chart.Element[]} the tooltip elements\n * @param eventPosition {Point} the position of the event in canvas coordinates\n * @returns {TooltipPosition} the tooltip position\n */")]),t._v("\nTooltip"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("positioners"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("myCustomPositioner")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("elements"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" eventPosition")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// A reference to the tooltip model")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" tooltip "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* ... */")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You may also include xAlign and yAlign to override those tooltip options.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Then, to use it...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("js")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("tooltip")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("position")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myCustomPositioner'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("See "),a("RouterLink",{attrs:{to:"/samples/tooltip/position.html"}},[t._v("samples")]),t._v(" for a more detailed example.")],1),t._v(" "),a("p",[t._v("If you're using TypeScript, you'll also need to Registro the new mode:")]),t._v(" "),a("div",{staticClass:"language-typescript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-typescript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("declare")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("module")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TooltipPositionerMap")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n myCustomPositioner"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" TooltipPositionerFunction"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("ChartType"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/165.fe2baa69.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/165.fe2baa69.js new file mode 100644 index 0000000..d7c9bba --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/165.fe2baa69.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[165],{494:function(t,a,s){"use strict";s.r(a);var e=s(6),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"api"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#api"}},[t._v("#")]),t._v(" API")]),t._v(" "),s("p",[t._v("For each chart, there are a set of global prototype methods on the shared chart type which you may find useful. These are available on all Graficas created with Chart.js, but for the examples, let's use a line chart we've made.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For example:")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myLineChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" config"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"destroy"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#destroy"}},[t._v("#")]),t._v(" .destroy()")]),t._v(" "),s("p",[t._v("Use this to destroy any chart instances that are created. This will clean up any references stored to the chart object within Chart.js, along with any associated event listeners attached by Chart.js.\nThis must be called before the canvas is reused for a new chart.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Destroys a specific chart instance")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("destroy")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"update-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#update-mode"}},[t._v("#")]),t._v(" .update(mode?)")]),t._v(" "),s("p",[t._v("Triggers an update of the chart. This can be safely called after updating the data object. This will update all scales, legends, and then re-render the chart.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("myLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Would update the first dataset's value of 'March' to be 50")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Calling update now animates the position of March from 90 to 50.")]),t._v("\n")])])]),s("p",[t._v("A "),s("code",[t._v("mode")]),t._v(" string can be provided to indicate transition configuration should be used. Core calls this method using any of "),s("code",[t._v("'active'")]),t._v(", "),s("code",[t._v("'hide'")]),t._v(", "),s("code",[t._v("'reset'")]),t._v(", "),s("code",[t._v("'resize'")]),t._v(", "),s("code",[t._v("'show'")]),t._v(" or "),s("code",[t._v("undefined")]),t._v(". "),s("code",[t._v("'none'")]),t._v(" is also a supported mode for skipping animations for single update. Please see "),s("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("animations")]),t._v(" docs for more details.")],1),t._v(" "),s("p",[t._v("Example:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'active'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("See "),s("RouterLink",{attrs:{to:"/developers/updates.html"}},[t._v("Updating Graficas")]),t._v(" for more details.")],1),t._v(" "),s("h2",{attrs:{id:"reset"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" .reset()")]),t._v(" "),s("p",[t._v("Reset the chart to its state before the initial animation. A new animation can then be triggered using "),s("code",[t._v("update")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("myLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reset")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"render"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#render"}},[t._v("#")]),t._v(" .render()")]),t._v(" "),s("p",[t._v("Triggers a redraw of all chart elements. Note, this does not update elements for new data. Use "),s("code",[t._v(".update()")]),t._v(" in that case.")]),t._v(" "),s("h2",{attrs:{id:"stop"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" .stop()")]),t._v(" "),s("p",[t._v("Use this to stop any current animation. This will pause the chart during any current animation frame. Call "),s("code",[t._v(".render()")]),t._v(" to re-animate.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Stops the Graficas animation loop at its current frame")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("stop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// => returns 'this' for chainability")]),t._v("\n")])])]),s("h2",{attrs:{id:"resize-width-height"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#resize-width-height"}},[t._v("#")]),t._v(" .resize(width?, height?)")]),t._v(" "),s("p",[t._v("Use this to manually resize the canvas element. This is run each time the canvas container is resized, but you can call this method manually if you change the size of the canvas nodes container element.")]),t._v(" "),s("p",[t._v("You can call "),s("code",[t._v(".resize()")]),t._v(" with no parameters to have the chart take the size of its container element, or you can pass explicit dimensions (e.g., for "),s("RouterLink",{attrs:{to:"/configuration/responsive.html#printing-resizable-Graficas"}},[t._v("printing")]),t._v(").")],1),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Resizes & redraws to fill its container element")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// => returns 'this' for chainability")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// With an explicit size:")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("width"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" height"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"clear"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#clear"}},[t._v("#")]),t._v(" .clear()")]),t._v(" "),s("p",[t._v("Will clear the chart canvas. Used extensively internally between animation frames, but you might find it useful.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Will clear the canvas that myLineChart is drawn on")]),t._v("\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("clear")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// => returns 'this' for chainability")]),t._v("\n")])])]),s("h2",{attrs:{id:"tobase64image-type-quality"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tobase64image-type-quality"}},[t._v("#")]),t._v(" .toBase64Image(type?, quality?)")]),t._v(" "),s("p",[t._v("This returns a base 64 encoded string of the chart in its current state.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("myLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toBase64Image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// => returns png data url of the image on the canvas")]),t._v("\n\nmyLineChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toBase64Image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'image/jpeg'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// => returns a jpeg data url in the highest quality of the canvas")]),t._v("\n")])])]),s("h2",{attrs:{id:"getelementsateventformode-e-mode-options-usefinalposition"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getelementsateventformode-e-mode-options-usefinalposition"}},[t._v("#")]),t._v(" .getElementsAtEventForMode(e, mode, options, useFinalPosition)")]),t._v(" "),s("p",[t._v("Calling "),s("code",[t._v("getElementsAtEventForMode(e, mode, options, useFinalPosition)")]),t._v(" on your Chart instance passing an event and a mode will return the elements that are found. The "),s("code",[t._v("options")]),t._v(" and "),s("code",[t._v("useFinalPosition")]),t._v(" arguments are passed through to the handlers.")]),t._v(" "),s("p",[t._v("To get an item that was clicked on, "),s("code",[t._v("getElementsAtEventForMode")]),t._v(" can be used.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("clickHandler")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("evt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" points "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementsAtEventForMode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("evt"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'nearest'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("intersect")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("points"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" firstPoint "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" points"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" label "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("labels"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("firstPoint"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("index"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" value "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("firstPoint"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasetIndex"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("firstPoint"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("index"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"getsortedvisibledatasetmetas"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getsortedvisibledatasetmetas"}},[t._v("#")]),t._v(" .getSortedVisibleDatasetMetas()")]),t._v(" "),s("p",[t._v("Returns an array of all the dataset meta's in the order that they are drawn on the canvas that are not hidden.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" visibleMetas "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSortedVisibleDatasetMetas")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"getdatasetmeta-index"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getdatasetmeta-index"}},[t._v("#")]),t._v(" .getDatasetMeta(index)")]),t._v(" "),s("p",[t._v("Looks for the dataset that matches the current index and returns that metadata. This returned data has all of the metadata that is used to construct the chart.")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("data")]),t._v(" property of the metadata will contain information about each point, bar, etc. depending on the chart type.")]),t._v(" "),s("p",[t._v("Extensive examples of usage are available in the "),s("a",{attrs:{href:"https://github.com/chartjs/Chart.js/tree/master/test",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js tests"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" meta "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDatasetMeta")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" x "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" meta"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"getvisibledatasetcount"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getvisibledatasetcount"}},[t._v("#")]),t._v(" getVisibleDatasetCount")]),t._v(" "),s("p",[t._v("Returns the amount of datasets that are currently not hidden.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" numberOfVisibleDatasets "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getVisibleDatasetCount")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"setdatasetvisibility-datasetindex-visibility"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setdatasetvisibility-datasetindex-visibility"}},[t._v("#")]),t._v(" setDatasetVisibility(datasetIndex, visibility)")]),t._v(" "),s("p",[t._v("Sets the visibility for a given dataset. This can be used to build a chart legend in HTML. During click on one of the HTML items, you can call "),s("code",[t._v("setDatasetVisibility")]),t._v(" to change the appropriate dataset.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setDatasetVisibility")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// hides dataset at index 1")]),t._v("\nchart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// chart now renders with dataset hidden")]),t._v("\n")])])]),s("h2",{attrs:{id:"toggledatavisibility-index"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#toggledatavisibility-index"}},[t._v("#")]),t._v(" toggleDataVisibility(index)")]),t._v(" "),s("p",[t._v("Toggles the visibility of an item in all datasets. A dataset needs to explicitly support this feature for it to have an effect. From internal chart types, doughnut / pie, polar area, and bar use this.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("toggleDataVisibility")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// toggles the item in all datasets, at index 2")]),t._v("\nchart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// chart now renders with item hidden")]),t._v("\n")])])]),s("h2",{attrs:{id:"getdatavisibility-index"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getdatavisibility-index"}},[t._v("#")]),t._v(" getDataVisibility(index)")]),t._v(" "),s("p",[t._v("Returns the stored visibility state of an data index for all datasets. Set by "),s("a",{attrs:{href:"#toggleDataVisibility"}},[t._v("toggleDataVisibility")]),t._v(". A dataset controller should use this method to determine if an item should not be visible.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" visible "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDataVisibility")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"hide-datasetindex-dataindex"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hide-datasetindex-dataindex"}},[t._v("#")]),t._v(" hide(datasetIndex, dataIndex?)")]),t._v(" "),s("p",[t._v("If dataIndex is not specified, sets the visibility for the given dataset to false. Updates the chart and animates the dataset with "),s("code",[t._v("'hide'")]),t._v(" mode. This animation can be configured under the "),s("code",[t._v("hide")]),t._v(" key in animation options. Please see "),s("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("animations")]),t._v(" docs for more details.")],1),t._v(" "),s("p",[t._v("If dataIndex is specified, sets the hidden flag of that element to true and updates the chart.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hide")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// hides dataset at index 1 and does 'hide' animation.")]),t._v("\nchart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hide")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// hides the data element at index 2 of the first dataset.")]),t._v("\n")])])]),s("h2",{attrs:{id:"show-datasetindex-dataindex"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#show-datasetindex-dataindex"}},[t._v("#")]),t._v(" show(datasetIndex, dataIndex?)")]),t._v(" "),s("p",[t._v("If dataIndex is not specified, sets the visibility for the given dataset to true. Updates the chart and animates the dataset with "),s("code",[t._v("'show'")]),t._v(" mode. This animation can be configured under the "),s("code",[t._v("show")]),t._v(" key in animation options. Please see "),s("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("animations")]),t._v(" docs for more details.")],1),t._v(" "),s("p",[t._v("If dataIndex is specified, sets the hidden flag of that element to false and updates the chart.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("show")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// shows dataset at index 1 and does 'show' animation.")]),t._v("\nchart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("show")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// shows the data element at index 2 of the first dataset.")]),t._v("\n")])])]),s("h2",{attrs:{id:"setactiveelements-activeelements"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setactiveelements-activeelements"}},[t._v("#")]),t._v(" setActiveElements(activeElements)")]),t._v(" "),s("p",[t._v('Sets the active (hovered) elements for the chart. See the "Programmatic Events" sample file to see this in action.')]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("setActiveElements")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasetIndex")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("index")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"static-getchart-key"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#static-getchart-key"}},[t._v("#")]),t._v(" Static: getChart(key)")]),t._v(" "),s("p",[t._v("Finds the chart instance from the given key. If the key is a "),s("code",[t._v("string")]),t._v(", it is interpreted as the ID of the Canvas node for the Chart. The key can also be a "),s("code",[t._v("CanvasRenderingContext2D")]),t._v(" or an "),s("code",[t._v("HTMLDOMElement")]),t._v(". This will return "),s("code",[t._v("undefined")]),t._v(" if no Chart is found. To be found, the chart must have previously been created.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getChart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"canvas-id"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"static-Registro-chartcomponentlike"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#static-Registro-chartcomponentlike"}},[t._v("#")]),t._v(" Static: Registro(chartComponentLike)")]),t._v(" "),s("p",[t._v("Used to Registro plugins, axis types or chart types globally to all your Graficas.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Tooltip"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" LinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" PointElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" BubbleController "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Tooltip"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" LinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" PointElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" BubbleController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"static-unRegistro-chartcomponentlike"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#static-unRegistro-chartcomponentlike"}},[t._v("#")]),t._v(" Static: unRegistro(chartComponentLike)")]),t._v(" "),s("p",[t._v("Used to unRegistro plugins, axis types or chart types globally from all your Graficas.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/166.c82b3c76.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/166.c82b3c76.js new file mode 100644 index 0000000..b9617af --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/166.c82b3c76.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[166],{495:function(t,a,s){"use strict";s.r(a);var e=s(6),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"new-axes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#new-axes"}},[t._v("#")]),t._v(" New Axes")]),t._v(" "),s("p",[t._v("Axes in Chart.js can be individually extended. Axes should always derive from "),s("code",[t._v("Chart.Scale")]),t._v(" but this is not a mandatory requirement.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyScale")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Scale")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* extensions ... */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\nMyScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myScale'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nMyScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" defaultConfigObject"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// MyScale is now derived from Chart.Scale")]),t._v("\n")])])]),s("p",[t._v("Once you have created your scale class, you need to Registro it with the global chart object so that it can be used.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If the new scale is not extending Chart.Scale, the prototype can not be used to detect what")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// you are trying to Registro - so you need to be explicit:")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Chart.registry.addScales(MyScale);")]),t._v("\n")])])]),s("p",[t._v("To use the new scale, simply pass in the string key to the config when creating a chart.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" lineChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myScale'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this is the same id that was set on the scale")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"scale-properties"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#scale-properties"}},[t._v("#")]),t._v(" Scale Properties")]),t._v(" "),s("p",[t._v("Scale instances are given the following properties during the fitting process.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("left")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// left edge of the scale bounding box")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("right")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// right edge of the bounding box")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("top")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bottom")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the same as right - left")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// the same as bottom - top")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Margin on each side. Like css, this is outside the bounding box.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("margins")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("left")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("right")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("top")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bottom")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Amount of padding on the inside of the bounding box (like CSS)")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("paddingLeft")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("paddingRight")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("paddingTop")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("paddingBottom")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" number\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"scale-interface"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#scale-interface"}},[t._v("#")]),t._v(" Scale Interface")]),t._v(" "),s("p",[t._v("To work with Chart.js, custom scale types must implement the following interface.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Determines the data limits. Should set this.min and this.max to be the data max/min")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("determineDataLimits")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Generate tick marks. this.chart is the chart instance. The data object can be accessed as this.chart.data")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// buildTicks() should create a ticks array on the axis instance, if you intend to use any of the implementations from the base class")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("buildTicks")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the label to show for the given value")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLabelForValue")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the pixel (x coordinate for horizontal axis, y coordinate for vertical axis) for a given value")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param index: index into the ticks array")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getPixelForTick")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("index")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the pixel (x coordinate for horizontal axis, y coordinate for vertical axis) for a given value")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param value : the value to get the pixel for")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param [index] : index into the data array of the value")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getPixelForValue")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get the value for a given pixel (x coordinate for horizontal axis, y coordinate for vertical axis)")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param pixel : pixel value")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getValueForPixel")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("pixel")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Optionally, the following methods may also be overwritten, but an implementation is already provided by the "),s("code",[t._v("Chart.Scale")]),t._v(" base class.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Adds labels to objects in the ticks array. The default implementation simply calls this.options.ticks.callback(numericalTick, index, ticks);")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("generateTickLabels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Determine how much the labels will rotate by. The default implementation will only rotate labels if the scale is horizontal.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("calculateLabelRotation")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Fits the scale into the canvas.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this.maxWidth and this.maxHeight will tell you the maximum dimensions the scale instance can be. Scales should endeavour to be as efficient as possible with canvas space.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this.margins is the amount of space you have on either side of your scale that you may expand in to. This is used already for calculating the best label rotation")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You must set this.minSize to be the size of your scale. It must be an object containing 2 properties: width and height.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// You must set this.width to be the width and this.height to be the height of the scale")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("fit")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Draws the scale onto the canvas. this.(left|right|top|bottom) will have been populated to tell you the area on the canvas to draw in")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param chartArea : an object containing four properties: left, right, top, bottom. This is the rectangle that lines, bars, etc will be drawn in. It may be used, for example, to draw grid lines.")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("draw")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chartArea")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("The Core.Scale base class also has some utility functions that you may find useful.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Returns true if the scale instance is horizontal")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("isHorizontal")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Returns the scale tick objects ({label, major})")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getTicks")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/167.3c3f2ff1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/167.3c3f2ff1.js new file mode 100644 index 0000000..229cfe4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/167.3c3f2ff1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[167],{496:function(t,s,a){"use strict";a.r(s);var n=a(6),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"new-Graficas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#new-Graficas"}},[t._v("#")]),t._v(" New Graficas")]),t._v(" "),a("p",[t._v("Chart.js 2.0 introduced the concept of controllers for each dataset. Like scales, new controllers can be written as needed.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyType")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DatasetController")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nChart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyType"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Now we can create a new instance of our chart, using the Chart.js API")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// this is the string the constructor was Registroed at, ie Chart.controllers.MyType")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'MyType'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" options\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"dataset-controller-interface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-controller-interface"}},[t._v("#")]),t._v(" Dataset Controller Interface")]),t._v(" "),a("p",[t._v("Dataset controllers must implement the following interface.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Defaults for Graficas of this type")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("defaults")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If set to `false` or `null`, no dataset level element is created.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If set to a string, this is the type of element to create for the dataset.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For example, a line create needs to create a line element so this is the string 'line'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasetElementType")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If set to `false` or `null`, no elements are created for each data value.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If set to a string, this is the type of element to create for each data value.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// For example, a line create needs to create a point element so this is the string 'point'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("dataElementType")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ID of the controller")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Update the elements in response to new data")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// @param mode : update mode, core calls this method using any of `'active'`, `'hide'`, `'reset'`, `'resize'`, `'show'` or `undefined`")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("update")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("mode")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("The following methods may optionally be overridden by derived dataset controllers.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Draw the representation of the dataset. The base implementation works in most cases, and an example of a derived version")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// can be found in the line controller")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("draw")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Initializes the controller")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("initialize")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Ensures that the dataset represented by this controller is linked to a scale. Overridden to helpers.noop in the polar area and doughnut controllers as these")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// chart types using a single scale")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("linkScales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Parse the data into the controller meta data. The default implementation will work for cartesian parsing, but an example of an overridden")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// version can be found in the doughnut controller")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("start"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" count")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"extending-existing-chart-types"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#extending-existing-chart-types"}},[t._v("#")]),t._v(" Extending Existing Chart Types")]),t._v(" "),a("p",[t._v("Extending or replacing an existing controller type is easy. Simply replace the constructor for one of the built in types with your own.")]),t._v(" "),a("p",[t._v("The built in controller types are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("BarController")])]),t._v(" "),a("li",[a("code",[t._v("BubbleController")])]),t._v(" "),a("li",[a("code",[t._v("DoughnutController")])]),t._v(" "),a("li",[a("code",[t._v("LineController")])]),t._v(" "),a("li",[a("code",[t._v("PieController")])]),t._v(" "),a("li",[a("code",[t._v("PolarAreaController")])]),t._v(" "),a("li",[a("code",[t._v("RadarController")])]),t._v(" "),a("li",[a("code",[t._v("ScatterController")])])]),t._v(" "),a("p",[t._v("These controllers are also available in the UMD package, directly under "),a("code",[t._v("Chart")]),t._v(". Eg: "),a("code",[t._v("Chart.BarController")]),t._v(".")]),t._v(" "),a("p",[t._v("For example, to derive a new chart type that extends from a bubble chart, you would do the following.")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("BubbleController"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Custom")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("BubbleController")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Call bubble controller method to draw all the points")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("arguments"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Now we can do some custom drawing for this dataset. Here we'll draw a red box around the first point in each dataset")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" meta "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getMeta")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" pt0 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" meta"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pt0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProps")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'x'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'y'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pt0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("strokeStyle "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lineWidth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("strokeRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("restore")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nCustom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'derivedBubble'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nCustom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" BubbleController"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Stores the controller so that the chart initialization routine can look it up")]),t._v("\nChart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Custom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Now we can create and use our new chart type")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'derivedBubble'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" options\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"typescript-typings"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#typescript-typings"}},[t._v("#")]),t._v(" TypeScript Typings")]),t._v(" "),a("p",[t._v("If you want your new chart type to be statically typed, you must provide a "),a("code",[t._v(".d.ts")]),t._v(' TypeScript declaration file. Chart.js provides a way to augment built-in types with user-defined ones, by using the concept of "declaration merging".')]),t._v(" "),a("p",[t._v("When adding a new chart type, "),a("code",[t._v("ChartTypeRegistry")]),t._v(" must contains the declarations for the new type, either by extending an existing entry in "),a("code",[t._v("ChartTypeRegistry")]),t._v(" or by creating a new one.")]),t._v(" "),a("p",[t._v("For example, to provide typings for a new chart type that extends from a bubble chart, you would add a "),a("code",[t._v(".d.ts")]),t._v(" containing:")]),t._v(" "),a("div",{staticClass:"language-ts extra-class"},[a("pre",{pre:!0,attrs:{class:"language-ts"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" ChartTypeRegistry "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("declare")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("module")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("interface")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ChartTypeRegistry")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n derivedBubble"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ChartTypeRegistry"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bubble'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/168.8d2e8e83.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/168.8d2e8e83.js new file mode 100644 index 0000000..31dd0ea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/168.8d2e8e83.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[168],{497:function(e,t,a){"use strict";a.r(t);var s=a(6),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"contributing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[e._v("#")]),e._v(" Contributing")]),e._v(" "),a("p",[e._v("New contributions to the library are welcome, but we ask that you please follow these guidelines:")]),e._v(" "),a("ul",[a("li",[e._v("Before opening a PR for major additions or changes, please discuss the expected API and/or implementation by "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("filing an issue"),a("OutboundLink")],1),e._v(" or asking about it in the "),a("a",{attrs:{href:"https://chartjs-slack.herokuapp.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Chart.js Slack"),a("OutboundLink")],1),e._v(" #dev channel. This will save you development time by getting feedback upfront and make review faster by giving the maintainers more context and details.")]),e._v(" "),a("li",[e._v("Consider whether your changes are useful for all Usuarios, or if creating a Chart.js "),a("RouterLink",{attrs:{to:"/developers/plugins.html"}},[e._v("plugin")]),e._v(" would be more appropriate.")],1),e._v(" "),a("li",[e._v("Check that your code will pass tests and "),a("code",[e._v("eslint")]),e._v(" code standards. "),a("code",[e._v("npm test")]),e._v(" will run both the linter and tests for you.")]),e._v(" "),a("li",[e._v("Add unit tests and document new functionality (in the "),a("code",[e._v("test/")]),e._v(" and "),a("code",[e._v("docs/")]),e._v(" directories respectively).")]),e._v(" "),a("li",[e._v("Avoid breaking changes unless there is an upcoming major release, which is infrequent. We encourage people to write plugins for most new advanced features, and care a lot about backwards compatibility.")]),e._v(" "),a("li",[e._v("We strongly prefer new methods to be added as private whenever possible. A method can be made private either by making a top-level "),a("code",[e._v("function")]),e._v(" outside of a class or by prefixing it with "),a("code",[e._v("_")]),e._v(" and adding "),a("code",[e._v("@private")]),e._v(" JSDoc if inside a class. Public APIs take considerable time to review and become locked once implemented as we have limited ability to change them without breaking backwards compatibility. Private APIs allow the flexibility to address unforeseen cases.")])]),e._v(" "),a("h2",{attrs:{id:"joining-the-project"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#joining-the-project"}},[e._v("#")]),e._v(" Joining the project")]),e._v(" "),a("p",[e._v("Active committers and contributors are invited to introduce yourself and request commit access to this project. We have a very active Slack community that you can join "),a("a",{attrs:{href:"https://chartjs-slack.herokuapp.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(". If you think you can help, we'd love to have you!")]),e._v(" "),a("h2",{attrs:{id:"building-and-testing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#building-and-testing"}},[e._v("#")]),e._v(" Building and Testing")]),e._v(" "),a("p",[e._v("Firstly, we need to ensure development dependencies are installed. With node and npm installed, after cloning the Chart.js repo to a local directory, and navigating to that directory in the command line, we can run the following:")]),e._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v("\n")])])]),a("p",[e._v("This will install the local development dependencies for Chart.js.")]),e._v(" "),a("p",[e._v("The following commands are now available from the repository root:")]),e._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run build // build dist files "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("in")]),e._v(" ./dist\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run autobuild // build and "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("watch")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("for")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("source")]),e._v(" changes\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run dev // run tests and "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("watch")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("for")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("source")]),e._v(" and "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("test")]),e._v(" changes\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run lint // perform code linting "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("ESLint, tsc"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("test")]),e._v(" // perform code linting and run unit tests with coverage\n")])])]),a("p",[a("code",[e._v("npm run dev")]),e._v(" and "),a("code",[e._v("npm test")]),e._v(" can be appended with a string that is used to match the spec filenames. For example: "),a("code",[e._v("npm run dev plugins")]),e._v(" will start karma in watch mode for "),a("code",[e._v("test/specs/**/*plugin*.js")]),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#documentation"}},[e._v("#")]),e._v(" Documentation")]),e._v(" "),a("p",[e._v("We use "),a("a",{attrs:{href:"https://vuepress.vuejs.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Vuepress"),a("OutboundLink")],1),e._v(" to manage the docs which are contained as Markdown files in the docs directory. You can run the doc server locally using these commands:")]),e._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(">")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("npm")]),e._v(" run docs:dev\n")])])]),a("h3",{attrs:{id:"image-based-tests"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#image-based-tests"}},[e._v("#")]),e._v(" Image-Based Tests")]),e._v(" "),a("p",[e._v("Some display-related functionality is difficult to test via typical Jasmine units. For this reason, we introduced image-based tests ("),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/pull/3988",target:"_blank",rel:"noopener noreferrer"}},[e._v("#3988"),a("OutboundLink")],1),e._v(" and "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/pull/5777",target:"_blank",rel:"noopener noreferrer"}},[e._v("#5777"),a("OutboundLink")],1),e._v(") to assert that a chart is drawn pixel-for-pixel matching an expected image.")]),e._v(" "),a("p",[e._v("Generated Graficas in image-based tests should be "),a("strong",[e._v("as minimal as possible")]),e._v(" and focus only on the tested feature to prevent failure if another feature breaks (e.g. disable the title and legend when testing scales).")]),e._v(" "),a("p",[e._v("You can create a new image-based test by following the steps below:")]),e._v(" "),a("ul",[a("li",[e._v("Create a JS file ("),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/f7b671006a86201808402c3b6fe2054fe834fd4a/test/fixtures/controller.bubble/radius-scriptable.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),a("OutboundLink")],1),e._v(") or JSON file ("),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/4b421a50bfa17f73ac7aa8db7d077e674dbc148d/test/fixtures/plugin.filler/fill-line-dataset.json",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),a("OutboundLink")],1),e._v(") that defines chart config and generation options.")]),e._v(" "),a("li",[e._v("Add this file in "),a("code",[e._v("test/fixtures/{spec.name}/{feature-name}.json")]),e._v(".")]),e._v(" "),a("li",[e._v("Add a "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/4b421a50bfa17f73ac7aa8db7d077e674dbc148d/test/specs/plugin.filler.tests.js#L10",target:"_blank",rel:"noopener noreferrer"}},[e._v("describe line"),a("OutboundLink")],1),e._v(" to the beginning of "),a("code",[e._v("test/specs/{spec.name}.tests.js")]),e._v(" if it doesn't exist yet.")]),e._v(" "),a("li",[e._v("Run "),a("code",[e._v("npm run dev")]),e._v(".")]),e._v(" "),a("li",[e._v("Click the "),a("em",[e._v('"Debug"')]),e._v(" button (top/right): a test should fail with the associated canvas visible.")]),e._v(" "),a("li",[e._v("Right click on the chart and "),a("em",[e._v('"Save image as..."')]),e._v(" "),a("code",[e._v("test/fixtures/{spec.name}/{feature-name}.png")]),e._v(" making sure not to activate the tooltip or any hover functionality")]),e._v(" "),a("li",[e._v("Refresh the browser page ("),a("code",[e._v("CTRL+R")]),e._v("): test should now pass")]),e._v(" "),a("li",[e._v("Verify test relevancy by changing the feature values "),a("em",[e._v("slightly")]),e._v(" in the JSON file.")])]),e._v(" "),a("p",[e._v("Tests should pass in both browsers. In general, we've hidden all text in image tests since it's quite difficult to get them passing between different browsers. As a result, it is recommended to hide all scales in image-based tests. It is also recommended to disable animations. If tests still do not pass, adjust "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/1ca0ffb5d5b6c2072176fd36fa85a58c483aa434/test/jasmine.matchers.js",target:"_blank",rel:"noopener noreferrer"}},[a("code",[e._v("tolerance")]),e._v(" and/or "),a("code",[e._v("threshold")]),a("OutboundLink")],1),e._v(" at the beginning of the JSON file keeping them "),a("strong",[e._v("as low as possible")]),e._v(".")]),e._v(" "),a("p",[e._v("When a test fails, the expected and actual images are shown. If you'd like to see the images even when the tests pass, set "),a("code",[e._v('"debug": true')]),e._v(" in the JSON file.")]),e._v(" "),a("h2",{attrs:{id:"bugs-and-issues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bugs-and-issues"}},[e._v("#")]),e._v(" Bugs and Issues")]),e._v(" "),a("p",[e._v("Please report these on the GitHub page - at "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js",target:"_blank"}},[e._v("github.com/chartjs/Chart.js")]),e._v(". Please do not use issues for support requests. For help using Chart.js, please take a look at the "),a("a",{attrs:{href:"https://stackoverflow.com/questions/tagged/chart.js",target:"_blank",rel:"noopener noreferrer"}},[a("code",[e._v("chart.js")]),a("OutboundLink")],1),e._v(" tag on Stack Overflow.")]),e._v(" "),a("p",[e._v("Well structured, detailed bug reports are hugely valuable for the project.")]),e._v(" "),a("p",[e._v("Guidelines for reporting bugs:")]),e._v(" "),a("ul",[a("li",[e._v("Check the issue Buscar to see if it has already been reported")]),e._v(" "),a("li",[e._v("Isolate the problem to a simple test case")]),e._v(" "),a("li",[e._v("Please include a demonstration of the bug on a website such as "),a("a",{attrs:{href:"https://jsbin.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JS Bin"),a("OutboundLink")],1),e._v(", "),a("a",{attrs:{href:"https://jsfiddle.net/",target:"_blank",rel:"noopener noreferrer"}},[e._v("JS Fiddle"),a("OutboundLink")],1),e._v(", or "),a("a",{attrs:{href:"https://codepen.io/pen/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Codepen"),a("OutboundLink")],1),e._v(". ("),a("a",{attrs:{href:"https://codepen.io/pen?template=wvezeOq",target:"_blank",rel:"noopener noreferrer"}},[e._v("Template"),a("OutboundLink")],1),e._v("). If filing a bug against "),a("code",[e._v("master")]),e._v(", you may reference the latest code via "),a("a",{attrs:{href:"https://www.chartjs.org/dist/master/chart.min.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.chartjs.org/dist/master/chart.min.js"),a("OutboundLink")],1),e._v(" (changing the filename to point at the file you need as appropriate). Do not rely on these files for production purposes as they may be removed at any time.")])]),e._v(" "),a("p",[e._v("Please provide any additional details associated with the bug, if it's browser or screen density specific, or only happens with a certain configuration or data.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/169.b10c84bd.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/169.b10c84bd.js new file mode 100644 index 0000000..aec27df --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/169.b10c84bd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[169],{498:function(e,r,t){"use strict";t.r(r);var s=t(6),a=Object(s.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"developers"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#developers"}},[e._v("#")]),e._v(" Developers")]),e._v(" "),t("p",[e._v("Developer features allow extending and enhancing Chart.js in many different ways.")]),e._v(" "),t("h2",{attrs:{id:"latest-resources"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#latest-resources"}},[e._v("#")]),e._v(" Latest resources")]),e._v(" "),t("p",[e._v("Latest documentation and samples, including unreleased features, are available at:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.chartjs.org/docs/master/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.chartjs.org/docs/master/"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.chartjs.org/samples/master/",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.chartjs.org/samples/master/"),t("OutboundLink")],1)])]),e._v(" "),t("h2",{attrs:{id:"development-releases"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-releases"}},[e._v("#")]),e._v(" Development releases")]),e._v(" "),t("p",[e._v("Latest builds are available for testing at:")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.chartjs.org/dist/master/chart.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.chartjs.org/dist/master/chart.js"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://www.chartjs.org/dist/master/chart.min.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://www.chartjs.org/dist/master/chart.min.js"),t("OutboundLink")],1)])]),e._v(" "),t("p",[t("strong",[e._v("WARNING: Development builds MUST not be used for production purposes or as replacement for CDN.")])]),e._v(" "),t("h2",{attrs:{id:"browser-support"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#browser-support"}},[e._v("#")]),e._v(" Browser support")]),e._v(" "),t("p",[e._v("All modern and up-to-date browsers are supported, including, but not limited to:")]),e._v(" "),t("p",[e._v("Chrome\nEdge\nFirefox\nSafari")]),e._v(" "),t("p",[e._v("As of version 3, we have dropped Internet Explorer 11 support.")]),e._v(" "),t("p",[e._v("Browser support for the canvas element is available in all modern & major mobile browsers. "),t("a",{attrs:{href:"https://caniuse.com/#feat=canvas",target:"_blank",rel:"noopener noreferrer"}},[e._v("CanIUse"),t("OutboundLink")],1)]),e._v(" "),t("p",[e._v("Run "),t("code",[e._v("npx browserslist")]),e._v(" at the root of the "),t("a",{attrs:{href:"https://github.com/chartjs/Chart.js",target:"_blank",rel:"noopener noreferrer"}},[e._v("codebase"),t("OutboundLink")],1),e._v(" to get a list of supported browsers.")]),e._v(" "),t("p",[e._v("Thanks to "),t("a",{attrs:{href:"https://browserstack.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("BrowserStack"),t("OutboundLink")],1),e._v(" for allowing our team to test on thousands of browsers.")]),e._v(" "),t("h2",{attrs:{id:"previous-versions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#previous-versions"}},[e._v("#")]),e._v(" Previous versions")]),e._v(" "),t("p",[e._v("To migrate from version 2 to version 3, please see "),t("a",{attrs:{href:"../getting-started/v3-migration"}},[e._v("the v3 migration guide")]),e._v(".")]),e._v(" "),t("p",[e._v("Version 3 has a largely different API than earlier versions.")]),e._v(" "),t("p",[e._v("Most earlier version options have current equivalents or are the same.")]),e._v(" "),t("p",[e._v("Please note - documentation for previous versions is available online or in the GitHub repo.")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://www.chartjs.org/docs/2.9.4/",target:"_blank",rel:"noopener noreferrer"}},[e._v("2.9.4 Documentation"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/tree/v1.1.1/docs",target:"_blank",rel:"noopener noreferrer"}},[e._v("1.x Documentation"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/17.8dfcb176.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/17.8dfcb176.js new file mode 100644 index 0000000..ea2a716 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/17.8dfcb176.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{348:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-domplatform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-domplatform"}},[t._v("#")]),t._v(" Class: DomPlatform")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[a("code",[t._v("BasePlatform")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("DomPlatform")])])])])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new DomPlatform")]),t._v("()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#constructor"}},[t._v("constructor")])],1),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"acquirecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#acquirecontext"}},[t._v("#")]),t._v(" acquireContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("acquireContext")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("options?")]),t._v("): "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("p",[t._v("Called at chart construction time, returns a context2d instance implementing\nthe "),a("a",{attrs:{href:"https://www.w3.org/TR/2dcontext/",target:"_blank",rel:"noopener noreferrer"}},[t._v("W3C Canvas 2D Context API standard"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas from which to acquire context (platform specific)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2DSettings")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart options")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#acquirecontext"}},[t._v("acquireContext")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2057",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2057"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"addeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addeventlistener"}},[t._v("#")]),t._v(" addEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Registros the specified listener on the given chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to listen for event")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to listen for")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Receives a notification (an object that implements the "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(" interface) when an event of the specified type occurs.")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#addeventlistener"}},[t._v("addEventListener")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2075",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2075"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdevicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdevicepixelratio"}},[t._v("#")]),t._v(" getDevicePixelRatio")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDevicePixelRatio")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("the current devicePixelRatio of the device this platform is connected to.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#getdevicepixelratio"}},[t._v("getDevicePixelRatio")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2086",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2086"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaximumsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaximumsize"}},[t._v("#")]),t._v(" getMaximumSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMaximumSize")]),t._v("("),a("code",[t._v("canvas")]),t._v(", "),a("code",[t._v("width?")]),t._v(", "),a("code",[t._v("height?")]),t._v(", "),a("code",[t._v("aspectRatio?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The canvas for which to calculate the maximum size")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("aspectRatio?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("p",[t._v("the maximum size available.")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#getmaximumsize"}},[t._v("getMaximumSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2094",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2094"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isattached"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isattached"}},[t._v("#")]),t._v(" isAttached")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isAttached")]),t._v("("),a("code",[t._v("canvas")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canvas")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("HTMLCanvasElement")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the canvas is attached to the platform, false if not.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#isattached"}},[t._v("isAttached")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2099",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2099"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"releasecontext"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#releasecontext"}},[t._v("#")]),t._v(" releaseContext")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("releaseContext")]),t._v("("),a("code",[t._v("context")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Called at chart destruction time, releases any resources associated to the context\npreviously returned by the acquireContext() method.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("context")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The context2d instance")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true if the method succeeded, else false")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#releasecontext"}},[t._v("releaseContext")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2067",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2067"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removeeventlistener"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removeeventlistener"}},[t._v("#")]),t._v(" removeEventListener")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeEventListener")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("type")]),t._v(", "),a("code",[t._v("listener")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Removes the specified listener previously Registroed with addEventListener.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Chart from which to remove the listener")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The ("),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")]),t._v(") type to remove")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("listener")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(") => "),a("code",[t._v("void")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The listener function to remove from the event target.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#removeeventlistener"}},[t._v("removeEventListener")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2082",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2082"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateconfig"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateconfig"}},[t._v("#")]),t._v(" updateConfig")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateConfig")]),t._v("("),a("code",[t._v("config")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Updates config with platform specific requirements")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("config")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[a("code",[t._v("ChartConfiguration")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[a("code",[t._v("ChartConfigurationCustomTypesPerDataset")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html#updateconfig"}},[t._v("updateConfig")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2104",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2104"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/170.b9db8312.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/170.b9db8312.js new file mode 100644 index 0000000..87132a7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/170.b9db8312.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[170],{499:function(t,e,a){"use strict";a.r(e);var s=a(6),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"publishing-an-extension"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#publishing-an-extension"}},[t._v("#")]),t._v(" Publishing an extension")]),t._v(" "),a("p",[t._v("If you are planning on publishing an extension for Chart.js, here are a some pointers.")]),t._v(" "),a("h2",{attrs:{id:"awesome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#awesome"}},[t._v("#")]),t._v(" Awesome")]),t._v(" "),a("p",[t._v("You'd probably want your extension to be listed in the "),a("a",{attrs:{href:"https://github.com/chartjs/awesome",target:"_blank",rel:"noopener noreferrer"}},[t._v("awesome"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("p",[t._v("Note the minimum extension age requirement of 30 days.")]),t._v(" "),a("h2",{attrs:{id:"esm"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#esm"}},[t._v("#")]),t._v(" ESM")]),t._v(" "),a("p",[t._v("If you are utilizing ESM, you probably still want to publish an UMD bundle of your extension. Because Chart.js v3 is tree shakeable, the interface is a bit different.\nUMD package's global "),a("code",[t._v("Chart")]),t._v(" includes everything, while ESM package exports all the things separately.\nFortunately, most of the exports can be mapped automatically by the bundlers.")]),t._v(" "),a("p",[t._v("But not the helpers.")]),t._v(" "),a("p",[t._v("In UMD, helpers are available through "),a("code",[t._v("Chart.helpers")]),t._v(". In ESM, they are imported from "),a("code",[t._v("chart.js/helpers")]),t._v(".")]),t._v(" "),a("p",[t._v("For example "),a("code",[t._v("import {isNullOrUndef} from 'chart.js/helpers'")]),t._v(" is available at "),a("code",[t._v("Chart.helpers.isNullOrUndef")]),t._v(" for UMD.")]),t._v(" "),a("h3",{attrs:{id:"rollup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rollup"}},[t._v("#")]),t._v(" Rollup")]),t._v(" "),a("p",[a("code",[t._v("output.globals")]),t._v(" can be used to convert the helpers.")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[t._v("module"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("exports "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("output")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("globals")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Chart'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'chart.js/helpers'")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Chart.helpers'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/171.2480fc36.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/171.2480fc36.js new file mode 100644 index 0000000..8a8c26a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/171.2480fc36.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[171],{501:function(t,a,s){"use strict";s.r(a);var n=s(6),p=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"updating-Graficas"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#updating-Graficas"}},[t._v("#")]),t._v(" Updating Graficas")]),t._v(" "),s("p",[t._v("It's pretty common to want to update Graficas after they've been created. When the chart data or options are changed, Chart.js will animate to the new data values and options.")]),t._v(" "),s("h2",{attrs:{id:"adding-or-removing-data"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#adding-or-removing-data"}},[t._v("#")]),t._v(" Adding or Removing Data")]),t._v(" "),s("p",[t._v("Adding and removing data is supported by changing the data array. To add data, just add data into the data array as seen in this example.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("addData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" label"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("labels"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("label"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("forEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("dataset")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n dataset"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("removeData")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("labels"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("pop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("datasets"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("forEach")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("dataset")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n dataset"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("pop")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"updating-options"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#updating-options"}},[t._v("#")]),t._v(" Updating Options")]),t._v(" "),s("p",[t._v("To update the options, mutating the options property in place or passing in a new options object are supported.")]),t._v(" "),s("ul",[s("li",[t._v("If the options are mutated in place, other option properties would be preserved, including those calculated by Chart.js.")]),t._v(" "),s("li",[t._v("If created as a new object, it would be like creating a new chart with the options - old options would be discarded.")])]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("updateConfigByMutating")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("plugins"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("title"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("text "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'new title'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("updateConfigAsNewObject")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("responsive")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("title")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("text")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Chart.js'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Scales can be updated separately without changing other options.\nTo update the scales, pass in an object containing all the customization including those unchanged ones.")]),t._v(" "),s("p",[t._v("Variables referencing any one from "),s("code",[t._v("chart.scales")]),t._v(" would be lost after updating scales with a new "),s("code",[t._v("id")]),t._v(" or the changed "),s("code",[t._v("type")]),t._v(".")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("updateScales")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" xScale "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" yScale "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("newId")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("display")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'logarithmic'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// need to update the reference")]),t._v("\n xScale "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("newId"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n yScale "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("You can also update a specific scale either by its id.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("updateScale")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'logarithmic'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("Code sample for updating options can be found in "),s("a",{attrs:{href:"https://www.chartjs.org/samples/latest/scales/toggle-scale-type.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("toggle-scale-type.html"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"preventing-animations"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#preventing-animations"}},[t._v("#")]),t._v(" Preventing Animations")]),t._v(" "),s("p",[t._v("Sometimes when a chart updates, you may not want an animation. To achieve this you can call "),s("code",[t._v("update")]),t._v(" with "),s("code",[t._v("'none'")]),t._v(" as mode.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("update")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'none'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=p.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/172.81c5206a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/172.81c5206a.js new file mode 100644 index 0000000..cd1a209 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/172.81c5206a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[172],{502:function(t,a,s){"use strict";s.r(a);var n=s(6),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"accessibility"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#accessibility"}},[t._v("#")]),t._v(" Accessibility")]),t._v(" "),s("p",[t._v("Chart.js Graficas are rendered on user provided "),s("code",[t._v("canvas")]),t._v(" elements. Thus, it is up to the user to create the "),s("code",[t._v("canvas")]),t._v(" element in a way that is accessible. The "),s("code",[t._v("canvas")]),t._v(" element has support in all browsers and will render on screen but the "),s("code",[t._v("canvas")]),t._v(" content will not be accessible to screen readers.")]),t._v(" "),s("p",[t._v("With "),s("code",[t._v("canvas")]),t._v(", the accessibility has to be added with ARIA attributes on the "),s("code",[t._v("canvas")]),t._v(" element or added using internal fallback content placed within the opening and closing canvas tags.")]),t._v(" "),s("p",[t._v("This "),s("a",{attrs:{href:"http://pauljadam.com/demos/canvas.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("website"),s("OutboundLink")],1),t._v(" has a more detailed explanation of "),s("code",[t._v("canvas")]),t._v(" accessibility as well as in depth examples.")]),t._v(" "),s("h2",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),s("p",[t._v("These are some examples of "),s("strong",[t._v("accessible")]),t._v(" "),s("code",[t._v("canvas")]),t._v(" elements.")]),t._v(" "),s("p",[t._v("By setting the "),s("code",[t._v("role")]),t._v(" and "),s("code",[t._v("aria-label")]),t._v(", this "),s("code",[t._v("canvas")]),t._v(" now has an accessible name.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("goodCanvas1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("100"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("aria-label")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("Hello ARIA World"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("role")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("img"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("p",[t._v("This "),s("code",[t._v("canvas")]),t._v(" element has a text alternative via fallback content.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("okCanvas2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("100"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("p")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Hello Fallback World"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("p",[t._v("These are some bad examples of "),s("strong",[t._v("inaccessible")]),t._v(" "),s("code",[t._v("canvas")]),t._v(" elements.")]),t._v(" "),s("p",[t._v("This "),s("code",[t._v("canvas")]),t._v(" element does not have an accessible name or role.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("badCanvas1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("100"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("p",[t._v("This "),s("code",[t._v("canvas")]),t._v(" element has inaccessible fallback content.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("badCanvas2"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("100"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("Your browser does not support the canvas element."),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/173.477dcbae.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/173.477dcbae.js new file mode 100644 index 0000000..ed143e9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/173.477dcbae.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[173],{505:function(t,a,s){"use strict";s.r(a);var n=s(6),r=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"colors"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#colors"}},[t._v("#")]),t._v(" Colors")]),t._v(" "),s("p",[t._v("When supplying colors to Chart options, you can use a number of formats. You can specify the color as a string in hexadecimal, RGB, or HSL notations. If a color is needed, but not specified, Chart.js will use the global default color. There are 3 color options, stored at "),s("code",[t._v("Chart.defaults")]),t._v(", to set:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Type")]),t._v(" "),s("th",[t._v("Default")]),t._v(" "),s("th",[t._v("Description")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("code",[t._v("backgroundColor")])]),t._v(" "),s("td",[s("code",[t._v("Color")])]),t._v(" "),s("td",[s("code",[t._v("rgba(0, 0, 0, 0.1)")])]),t._v(" "),s("td",[t._v("Background color.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("borderColor")])]),t._v(" "),s("td",[s("code",[t._v("Color")])]),t._v(" "),s("td",[s("code",[t._v("rgba(0, 0, 0, 0.1)")])]),t._v(" "),s("td",[t._v("Border color.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("color")])]),t._v(" "),s("td",[s("code",[t._v("Color")])]),t._v(" "),s("td",[s("code",[t._v("#666")])]),t._v(" "),s("td",[t._v("Font color.")])])])]),t._v(" "),s("p",[t._v("You can also pass a "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasGradient",target:"_blank",rel:"noopener noreferrer"}},[t._v("CanvasGradient"),s("OutboundLink")],1),t._v(" object. You will need to create this before passing to the chart, but using it you can achieve some interesting effects.")]),t._v(" "),s("h2",{attrs:{id:"patterns-and-gradients"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#patterns-and-gradients"}},[t._v("#")]),t._v(" Patterns and Gradients")]),t._v(" "),s("p",[t._v("An alternative option is to pass a "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CanvasPattern",target:"_blank",rel:"noopener noreferrer"}},[t._v("CanvasPattern"),s("OutboundLink")],1),t._v(" or "),s("a",{attrs:{href:"https://developer.mozilla.org/en/docs/Web/API/CanvasGradient",target:"_blank",rel:"noopener noreferrer"}},[t._v("CanvasGradient"),s("OutboundLink")],1),t._v(" object instead of a string colour.")]),t._v(" "),s("p",[t._v("For example, if you wanted to fill a dataset with a pattern from an image you could do the following.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" img "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nimg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("src "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'https://example.com/my_image.png'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nimg"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onload")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getContext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2d'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" fillPattern "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("createPattern")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("img"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'repeat'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Item 1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Item 2'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Item 3'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" fillPattern\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("Using pattern fills for data graphics can help viewers with vision deficiencies (e.g. color-blindness or partial sight) to "),s("a",{attrs:{href:"http://betweentwobrackets.com/data-graphics-and-colour-vision/",target:"_blank",rel:"noopener noreferrer"}},[t._v("more easily understand your data"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Using the "),s("a",{attrs:{href:"https://github.com/ashiguruma/patternomaly",target:"_blank",rel:"noopener noreferrer"}},[t._v("Patternomaly"),s("OutboundLink")],1),t._v(" library you can generate patterns to fill datasets.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chartData "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("45")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("25")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n pattern"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'square'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#ff6384'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n pattern"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'circle'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#36a2eb'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n pattern"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'diamond'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#cc65fe'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n pattern"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'triangle'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#ffce56'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Red'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Blue'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Purple'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Yellow'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/174.05398ca3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/174.05398ca3.js new file mode 100644 index 0000000..203c289 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/174.05398ca3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[174],{503:function(t,a,s){"use strict";s.r(a);var r=s(6),e=Object(r.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"data-structures"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data-structures"}},[t._v("#")]),t._v(" Data structures")]),t._v(" "),s("p",[t._v("The "),s("code",[t._v("data")]),t._v(" property of a dataset can be passed in various formats. By default, that "),s("code",[t._v("data")]),t._v(" is parsed using the associated chart type and scales.")]),t._v(" "),s("p",[t._v("If the "),s("code",[t._v("labels")]),t._v(" property of the main "),s("code",[t._v("data")]),t._v(" property is used, it has to contain the same amount of elements as the dataset with the most values. These labels are used to label the index axis (default x axes). The values for the labels have to be provided in an array.\nThe provided labels can be of the type string or number to be rendered correctly. In case you want multiline labels you can provide an array with each line as one entry in the array.")]),t._v(" "),s("h2",{attrs:{id:"primitive"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#primitive"}},[t._v("#")]),t._v(" Primitive[]")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'a'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'b'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When the "),s("code",[t._v("data")]),t._v(" is an array of numbers, values from "),s("code",[t._v("labels")]),t._v(" array at the same index are used for the index axis ("),s("code",[t._v("x")]),t._v(" for vertical, "),s("code",[t._v("y")]),t._v(" for horizontal Graficas).")]),t._v(" "),s("h2",{attrs:{id:"object"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#object"}},[t._v("#")]),t._v(" Object[]")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2016-12-25'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2016-12-26'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Sales'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Revenue'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("This is also the internal format used for parsed data. In this mode, parsing can be disabled by specifying "),s("code",[t._v("parsing: false")]),t._v(" at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),s("p",[t._v("The values provided must be parsable by the associated scales or in the internal format of the associated scales. A common mistake would be to provide integers for the "),s("code",[t._v("category")]),t._v(" scale, which uses integers as an internal format, where each integer represents an index in the labels array. "),s("code",[t._v("null")]),t._v(" can be used for skipped values.")]),t._v(" "),s("h2",{attrs:{id:"object-using-custom-properties"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#object-using-custom-properties"}},[t._v("#")]),t._v(" Object[] using custom properties")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Sales'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("nested")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1500")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Purchases'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("nested")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("500")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("xAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'id'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'nested.value'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("When using the pie/doughnut, radar or polarArea chart type, the "),s("code",[t._v("parsing")]),t._v(" object should have a "),s("code",[t._v("key")]),t._v(" item that points to the value to look at. In this example, the doughnut chart will show two items with values 1500 and 500.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'doughnut'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Sales'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("nested")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1500")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Purchases'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("nested")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("500")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("key")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'nested.value'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("If the key contains a dot, it needs to be escaped with a double slash:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'data.key'")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'one'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'data.value'")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'data.key'")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'two'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v("'data.value'")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("xAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data\\\\.key'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'data\\\\.value'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),s("p",[t._v("When using object notation in a radar chart you still need a labels array with labels for the chart to show correctly.")])]),t._v(" "),s("h2",{attrs:{id:"object-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#object-2"}},[t._v("#")]),t._v(" Object")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'pie'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("January")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("February")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("In this mode, property name is used for "),s("code",[t._v("index")]),t._v(" scale and value for "),s("code",[t._v("value")]),t._v(" scale. For vertical Graficas, index scale is "),s("code",[t._v("x")]),t._v(" and value scale is "),s("code",[t._v("y")]),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"dataset-configuration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#dataset-configuration"}},[t._v("#")]),t._v(" Dataset Configuration")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Type")]),t._v(" "),s("th",[t._v("Description")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("code",[t._v("label")])]),t._v(" "),s("td",[s("code",[t._v("string")])]),t._v(" "),s("td",[t._v("The label for the dataset which appears in the legend and tooltips.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("clip")])]),t._v(" "),s("td",[s("code",[t._v("number")]),t._v("|"),s("code",[t._v("object")])]),t._v(" "),s("td",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("order")])]),t._v(" "),s("td",[s("code",[t._v("number")])]),t._v(" "),s("td",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("stack")])]),t._v(" "),s("td",[s("code",[t._v("string")])]),t._v(" "),s("td",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). Defaults to dataset "),s("code",[t._v("type")]),t._v(".")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("parsing")])]),t._v(" "),s("td",[s("code",[t._v("boolean")]),t._v("|"),s("code",[t._v("object")])]),t._v(" "),s("td",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("hidden")])]),t._v(" "),s("td",[s("code",[t._v("boolean")])]),t._v(" "),s("td",[t._v("Configure the visibility of the dataset. Using "),s("code",[t._v("hidden: true")]),t._v(" will hide the dataset from being rendered in the Chart.")])])])]),t._v(" "),s("h3",{attrs:{id:"parsing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Jan'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("net")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("cogs")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("gm")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Feb'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("net")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("120")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("cogs")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("55")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("gm")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("75")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" cfg "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Jan'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Feb'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Net sales'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'net'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Cost of goods sold'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'cogs'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Gross margin'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("parsing")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yAxisKey")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'gm'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/175.84ab69d0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/175.84ab69d0.js new file mode 100644 index 0000000..60def1d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/175.84ab69d0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[175],{504:function(t,e,s){"use strict";s.r(e);var a=s(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"fonts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#fonts"}},[t._v("#")]),t._v(" Fonts")]),t._v(" "),s("p",[t._v("There are special global settings that can change all of the fonts on the chart. These options are in "),s("code",[t._v("Chart.defaults.font")]),t._v(". The global font settings only apply when more specific options are not included in the config.")]),t._v(" "),s("p",[t._v("For example, in this chart the text will have a font size of 16px except for the labels in the legend.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v("Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("font"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("size "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("legend")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This more specific font property overrides the global property")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("font")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("size")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("table",[s("thead",[s("tr",[s("th",[t._v("Name")]),t._v(" "),s("th",[t._v("Type")]),t._v(" "),s("th",[t._v("Default")]),t._v(" "),s("th",[t._v("Description")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("code",[t._v("family")])]),t._v(" "),s("td",[s("code",[t._v("string")])]),t._v(" "),s("td",[s("code",[t._v("\"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\"")])]),t._v(" "),s("td",[t._v("Default font family for all text, follows CSS font-family options.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("size")])]),t._v(" "),s("td",[s("code",[t._v("number")])]),t._v(" "),s("td",[s("code",[t._v("12")])]),t._v(" "),s("td",[t._v("Default font size (in px) for text. Does not apply to radialLinear scale point labels.")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("style")])]),t._v(" "),s("td",[s("code",[t._v("string")])]),t._v(" "),s("td",[s("code",[t._v("'normal'")])]),t._v(" "),s("td",[t._v("Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("weight")])]),t._v(" "),s("td",[s("code",[t._v("string")])]),t._v(" "),s("td",[s("code",[t._v("undefined")])]),t._v(" "),s("td",[t._v("Default font weight (boldness). (see "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),s("OutboundLink")],1),t._v(").")])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("lineHeight")])]),t._v(" "),s("td",[s("code",[t._v("number")]),t._v("|"),s("code",[t._v("string")])]),t._v(" "),s("td",[s("code",[t._v("1.2")])]),t._v(" "),s("td",[t._v("Height of an individual line of text (see "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/line-height",target:"_blank",rel:"noopener noreferrer"}},[t._v("MDN"),s("OutboundLink")],1),t._v(").")])])])]),t._v(" "),s("h2",{attrs:{id:"missing-fonts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#missing-fonts"}},[t._v("#")]),t._v(" Missing Fonts")]),t._v(" "),s("p",[t._v("If a font is specified for a chart that does exist on the system, the browser will not apply the font when it is set. If you notice odd fonts appearing in your Graficas, check that the font you are applying exists on your system. See "),s("a",{attrs:{href:"https://github.com/chartjs/Chart.js/issues/3318",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue 3318"),s("OutboundLink")],1),t._v(" for more details.")]),t._v(" "),s("h2",{attrs:{id:"loading-fonts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#loading-fonts"}},[t._v("#")]),t._v(" Loading Fonts")]),t._v(" "),s("p",[t._v("If a font is not cached and needs to be loaded, Graficas that use the font will need to be updated once the font is loaded. This can be accomplished using the "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/CSS_Font_Loading_API",target:"_blank",rel:"noopener noreferrer"}},[t._v("Font Loading APIs"),s("OutboundLink")],1),t._v(". See "),s("a",{attrs:{href:"https://github.com/chartjs/Chart.js/issues/8020",target:"_blank",rel:"noopener noreferrer"}},[t._v("issue 8020"),s("OutboundLink")],1),t._v(" for more details.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/176.f48183c3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/176.f48183c3.js new file mode 100644 index 0000000..0590317 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/176.f48183c3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[176],{506:function(t,e,a){"use strict";a.r(e);var s=a(6),o=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" Options")]),t._v(" "),a("h2",{attrs:{id:"option-resolution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#option-resolution"}},[t._v("#")]),t._v(" Option resolution")]),t._v(" "),a("p",[t._v("Options are resolved from top to bottom, using a context dependent route.")]),t._v(" "),a("h3",{attrs:{id:"chart-level-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart-level-options"}},[t._v("#")]),t._v(" Chart level options")]),t._v(" "),a("ul",[a("li",[t._v("options")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults")])]),t._v(" "),a("h3",{attrs:{id:"dataset-level-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-level-options"}},[t._v("#")]),t._v(" Dataset level options")]),t._v(" "),a("p",[a("code",[t._v("dataset.type")]),t._v(" defaults to "),a("code",[t._v("config.type")]),t._v(", if not specified.")]),t._v(" "),a("ul",[a("li",[t._v("dataset")]),t._v(" "),a("li",[t._v("options.datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("options")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults.datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults")])]),t._v(" "),a("h3",{attrs:{id:"dataset-animation-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-animation-options"}},[t._v("#")]),t._v(" Dataset animation options")]),t._v(" "),a("ul",[a("li",[t._v("dataset.animation")]),t._v(" "),a("li",[t._v("options.datasets["),a("code",[t._v("dataset.type")]),t._v("].animation")]),t._v(" "),a("li",[t._v("options.animation")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].datasets["),a("code",[t._v("dataset.type")]),t._v("].animation")]),t._v(" "),a("li",[t._v("defaults.datasets["),a("code",[t._v("dataset.type")]),t._v("].animation")]),t._v(" "),a("li",[t._v("defaults.animation")])]),t._v(" "),a("h3",{attrs:{id:"dataset-element-level-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-element-level-options"}},[t._v("#")]),t._v(" Dataset element level options")]),t._v(" "),a("p",[t._v("Each scope is looked up with "),a("code",[t._v("elementType")]),t._v(" prefix in the option name first, then without the prefix. For example, "),a("code",[t._v("radius")]),t._v(" for "),a("code",[t._v("point")]),t._v(" element is looked up using "),a("code",[t._v("pointRadius")]),t._v(" and if that does not hit, then "),a("code",[t._v("radius")]),t._v(".")]),t._v(" "),a("ul",[a("li",[t._v("dataset")]),t._v(" "),a("li",[t._v("options.datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("options.datasets["),a("code",[t._v("dataset.type")]),t._v("].elements["),a("code",[t._v("elementType")]),t._v("]")]),t._v(" "),a("li",[t._v("options.elements["),a("code",[t._v("elementType")]),t._v("]")]),t._v(" "),a("li",[t._v("options")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].datasets["),a("code",[t._v("dataset.type")]),t._v("].elements["),a("code",[t._v("elementType")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults.datasets["),a("code",[t._v("dataset.type")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults.datasets["),a("code",[t._v("dataset.type")]),t._v("].elements["),a("code",[t._v("elementType")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults.elements["),a("code",[t._v("elementType")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults")])]),t._v(" "),a("h3",{attrs:{id:"scale-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale-options"}},[t._v("#")]),t._v(" Scale options")]),t._v(" "),a("ul",[a("li",[t._v("options.scales")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].scales")]),t._v(" "),a("li",[t._v("defaults.scales")]),t._v(" "),a("li",[t._v("defaults.scale")])]),t._v(" "),a("h3",{attrs:{id:"plugin-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugin-options"}},[t._v("#")]),t._v(" Plugin options")]),t._v(" "),a("p",[t._v("A plugin can provide "),a("code",[t._v("additionalOptionScopes")]),t._v(" array of paths to additionally look for its options in. For root scope, use empty string: "),a("code",[t._v("''")]),t._v(". Most core plugins also take options from root scope.")]),t._v(" "),a("ul",[a("li",[t._v("options.plugins["),a("code",[t._v("plugin.id")]),t._v("]")]),t._v(" "),a("li",[t._v("(options.["),a("code",[t._v("...plugin.additionalOptionScopes")]),t._v("])")]),t._v(" "),a("li",[t._v("overrides["),a("code",[t._v("config.type")]),t._v("].plugins["),a("code",[t._v("plugin.id")]),t._v("]")]),t._v(" "),a("li",[t._v("defaults.plugins["),a("code",[t._v("plugin.id")]),t._v("]")]),t._v(" "),a("li",[t._v("(defaults.["),a("code",[t._v("...plugin.additionalOptionScopes")]),t._v("])")])]),t._v(" "),a("h2",{attrs:{id:"scriptable-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptable-options"}},[t._v("#")]),t._v(" Scriptable Options")]),t._v(" "),a("p",[t._v("Scriptable options also accept a function which is called for each of the underlying data values and that takes the unique argument "),a("code",[t._v("context")]),t._v(" representing contextual information (see "),a("RouterLink",{attrs:{to:"/general/options.html#option-context"}},[t._v("option context")]),t._v(").\nA resolver is passed as second parameter, that can be used to access other options in the same context.")],1),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("context")]),t._v(" argument should be validated in the scriptable function, because the function can be invoked in different contexts. The "),a("code",[t._v("type")]),t._v(" field is a good candidate for this validation.")])]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("color")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("dataIndex"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("dataset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// draw negative values in red")]),t._v("\n index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'blue'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// else, alternate values in blue and green")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'green'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("borderColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" color "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// resolve the value of another scriptable option: 'red', 'blue' or 'green'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("helpers"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("color")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("color"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("lighten")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"indexable-options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#indexable-options"}},[t._v("#")]),t._v(" Indexable Options")]),t._v(" "),a("p",[t._v("Indexable options also accept an array in which each item corresponds to the element at the same index. Note that if there are less items than data, the items are looped over. In many cases, using a "),a("a",{attrs:{href:"#scriptable-options"}},[t._v("function")]),t._v(" is more appropriate if supported.")]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("color")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// color for data at index 0")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'blue'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// color for data at index 1")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'green'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// color for data at index 2")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'black'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// color for data at index 3")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//...")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("h2",{attrs:{id:"option-context"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#option-context"}},[t._v("#")]),t._v(" Option Context")]),t._v(" "),a("p",[t._v("The option context is used to give contextual information when resolving options and currently only applies to "),a("a",{attrs:{href:"#scriptable-options"}},[t._v("scriptable options")]),t._v(".\nThe object is preserved, so it can be used to store and pass information between calls.")]),t._v(" "),a("p",[t._v("There are multiple levels of context objects:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("chart")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("dataset")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data")])])])]),t._v(" "),a("li",[a("code",[t._v("scale")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("tick")])]),t._v(" "),a("li",[a("code",[t._v("pointLabel")]),t._v(" (only used in the radial linear scale)")])])]),t._v(" "),a("li",[a("code",[t._v("tooltip")])])])])]),t._v(" "),a("p",[t._v("Each level inherits its parent(s) and any contextual information stored in the parent is available through the child.")]),t._v(" "),a("p",[t._v("The context object contains the following properties:")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("chart")]),t._v(": the associated chart")]),t._v(" "),a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'chart'")])])]),t._v(" "),a("h3",{attrs:{id:"dataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset"}},[t._v("#")]),t._v(" dataset")]),t._v(" "),a("p",[t._v("In addition to "),a("a",{attrs:{href:"#chart"}},[t._v("chart")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("active")]),t._v(": true if element is active (hovered)")]),t._v(" "),a("li",[a("code",[t._v("dataset")]),t._v(": dataset at index "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("li",[a("code",[t._v("datasetIndex")]),t._v(": index of the current dataset")]),t._v(" "),a("li",[a("code",[t._v("index")]),t._v(": same as "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("li",[a("code",[t._v("mode")]),t._v(": the update mode")]),t._v(" "),a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'dataset'")])])]),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("In addition to "),a("a",{attrs:{href:"#dataset"}},[t._v("dataset")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("active")]),t._v(": true if element is active (hovered)")]),t._v(" "),a("li",[a("code",[t._v("dataIndex")]),t._v(": index of the current data")]),t._v(" "),a("li",[a("code",[t._v("parsed")]),t._v(": the parsed data values for the given "),a("code",[t._v("dataIndex")]),t._v(" and "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("li",[a("code",[t._v("raw")]),t._v(": the raw data values for the given "),a("code",[t._v("dataIndex")]),t._v(" and "),a("code",[t._v("datasetIndex")])]),t._v(" "),a("li",[a("code",[t._v("element")]),t._v(": the element (point, arc, bar, etc.) for this data")]),t._v(" "),a("li",[a("code",[t._v("index")]),t._v(": same as "),a("code",[t._v("dataIndex")])]),t._v(" "),a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'data'")])])]),t._v(" "),a("h3",{attrs:{id:"scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale"}},[t._v("#")]),t._v(" scale")]),t._v(" "),a("p",[t._v("In addition to "),a("a",{attrs:{href:"#chart"}},[t._v("chart")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("scale")]),t._v(": the associated scale")]),t._v(" "),a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'scale'")])])]),t._v(" "),a("h3",{attrs:{id:"tick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tick"}},[t._v("#")]),t._v(" tick")]),t._v(" "),a("p",[t._v("In addition to "),a("a",{attrs:{href:"#scale"}},[t._v("scale")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("tick")]),t._v(": the associated tick object")]),t._v(" "),a("li",[a("code",[t._v("index")]),t._v(": tick index")]),t._v(" "),a("li",[a("code",[t._v("type")]),t._v(": "),a("code",[t._v("'tick'")])])]),t._v(" "),a("h3",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" tooltip")]),t._v(" "),a("p",[t._v("In addition to "),a("a",{attrs:{href:"#chart"}},[t._v("chart")])]),t._v(" "),a("ul",[a("li",[a("code",[t._v("tooltip")]),t._v(": the tooltip object")]),t._v(" "),a("li",[a("code",[t._v("tooltipItems")]),t._v(": the items the tooltip is displaying")])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/177.d0d35403.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/177.d0d35403.js new file mode 100644 index 0000000..e5ecd7c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/177.d0d35403.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[177],{507:function(t,a,s){"use strict";s.r(a);var r=s(6),e=Object(r.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"padding"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#padding"}},[t._v("#")]),t._v(" Padding")]),t._v(" "),s("p",[t._v("Padding values in Chart options can be supplied in couple of different formats.")]),t._v(" "),s("h2",{attrs:{id:"number"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#number"}},[t._v("#")]),t._v(" Number")]),t._v(" "),s("p",[t._v("If this value is a number, it is applied to all sides (left, top, right, bottom).")]),t._v(" "),s("p",[t._v("For example, defining a 20px padding to all sides of chart:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("layout")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("padding")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"top-left-bottom-right-object"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#top-left-bottom-right-object"}},[t._v("#")]),t._v(" {top, left, bottom, right} object")]),t._v(" "),s("p",[t._v("If this value is an object, the "),s("code",[t._v("left")]),t._v(" property defines the left padding. Similarly the "),s("code",[t._v("right")]),t._v(", "),s("code",[t._v("top")]),t._v(" and "),s("code",[t._v("bottom")]),t._v(" properties can also be specified.\nOmitted properties default to "),s("code",[t._v("0")]),t._v(".")]),t._v(" "),s("p",[t._v("Lets say you wanted to add 50px of padding to the left side of the chart canvas, you would do:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("layout")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("padding")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("left")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("50")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"x-y-object"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#x-y-object"}},[t._v("#")]),t._v(" {x, y} object")]),t._v(" "),s("p",[t._v("This is a shorthand for defining left/right and top/bottom to the same values.")]),t._v(" "),s("p",[t._v("For example, 10px left / right and 4px top / bottom padding on a Radial Linear Axis "),s("RouterLink",{attrs:{to:"/axes/radial/linear.html#linear-radial-axis-specific-tick-options"}},[t._v("tick backdropPadding")]),t._v(":")],1),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'radar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("r")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("ticks")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backdropPadding")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/178.55d433fd.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/178.55d433fd.js new file mode 100644 index 0000000..baee8fb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/178.55d433fd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[178],{508:function(t,a,s){"use strict";s.r(a);var e=s(6),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"performance"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#performance"}},[t._v("#")]),t._v(" Performance")]),t._v(" "),s("p",[t._v("Chart.js Graficas are rendered on "),s("code",[t._v("canvas")]),t._v(" elements, which makes rendering quite fast. For large datasets or performance sensitive applications, you may wish to consider the tips below.")]),t._v(" "),s("h2",{attrs:{id:"data-structure-and-format"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data-structure-and-format"}},[t._v("#")]),t._v(" Data structure and format")]),t._v(" "),s("h3",{attrs:{id:"parsing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" Parsing")]),t._v(" "),s("p",[t._v("Provide prepared data in the internal format accepted by the dataset and scales, and set "),s("code",[t._v("parsing: false")]),t._v(". See "),s("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures")]),t._v(" for more information.")],1),t._v(" "),s("h3",{attrs:{id:"data-normalization"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#data-normalization"}},[t._v("#")]),t._v(" Data normalization")]),t._v(" "),s("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the "),s("code",[t._v("normalized: true")]),t._v(" option to let Chart.js know that you have done so. Even without this option, it can sometimes still be faster to provide sorted data.")]),t._v(" "),s("h3",{attrs:{id:"decimation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#decimation"}},[t._v("#")]),t._v(" Decimation")]),t._v(" "),s("p",[t._v("Decimating your data will achieve the best results. When there is a lot of data to display on the graph, it doesn't make sense to show tens of thousands of data points on a graph that is only a few hundred pixels wide.")]),t._v(" "),s("p",[t._v("The "),s("RouterLink",{attrs:{to:"/configuration/decimation.html"}},[t._v("decimation plugin")]),t._v(" can be used with line Graficas to decimate data before the chart is rendered. This will provide the best performance since it will reduce the memory needed to render the chart.")],1),t._v(" "),s("p",[t._v("Line Graficas are able to do "),s("a",{attrs:{href:"#automatic-data-decimation-during-draw"}},[t._v("automatic data decimation during draw")]),t._v(", when certain conditions are met. You should still consider decimating data yourself before passing it in for maximum performance since the automatic decimation occurs late in the chart life cycle.")]),t._v(" "),s("h2",{attrs:{id:"tick-calculation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#tick-calculation"}},[t._v("#")]),t._v(" Tick Calculation")]),t._v(" "),s("h3",{attrs:{id:"rotation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" Rotation")]),t._v(" "),s("p",[s("RouterLink",{attrs:{to:"/axes/cartesian/#tick-configuration"}},[t._v("Specify a rotation value")]),t._v(" by setting "),s("code",[t._v("minRotation")]),t._v(" and "),s("code",[t._v("maxRotation")]),t._v(" to the same value, which avoids the chart from having to automatically determine a value to use.")],1),t._v(" "),s("h3",{attrs:{id:"sampling"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sampling"}},[t._v("#")]),t._v(" Sampling")]),t._v(" "),s("p",[t._v("Set the "),s("RouterLink",{attrs:{to:"/axes/cartesian/#tick-configuration"}},[s("code",[t._v("ticks.sampleSize")])]),t._v(" option. This will determine how large your labels are by looking at only a subset of them in order to render axes more quickly. This works best if there is not a large variance in the size of your labels.")],1),t._v(" "),s("h2",{attrs:{id:"disable-animations"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disable-animations"}},[t._v("#")]),t._v(" Disable Animations")]),t._v(" "),s("p",[t._v("If your Graficas have long render times, it is a good idea to disable animations. Doing so will mean that the chart needs to only be rendered once during an update instead of multiple times. This will have the effect of reducing CPU usage and improving general page performance.\nLine Graficas use Path2D caching when animations are disabled and Path2D is available.")]),t._v(" "),s("p",[t._v("To disable animations")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("animation")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"specify-min-and-max-for-scales"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#specify-min-and-max-for-scales"}},[t._v("#")]),t._v(" Specify "),s("code",[t._v("min")]),t._v(" and "),s("code",[t._v("max")]),t._v(" for scales")]),t._v(" "),s("p",[t._v("If you specify the "),s("code",[t._v("min")]),t._v(" and "),s("code",[t._v("max")]),t._v(", the scale does not have to compute the range from the data.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("x")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'time'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2019-01-01'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("max")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Date")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2019-12-31'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'linear'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("min")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("max")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"parallel-rendering-with-web-workers-chromium-only"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#parallel-rendering-with-web-workers-chromium-only"}},[t._v("#")]),t._v(" Parallel rendering with web workers (Chromium only)")]),t._v(" "),s("p",[t._v("Chromium (Chrome: version 69, Edge: 79, Opera: 56) added the ability to "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen",target:"_blank",rel:"noopener noreferrer"}},[t._v("transfer rendering control of a canvas"),s("OutboundLink")],1),t._v(" to a web worker. Web workers can use the "),s("a",{attrs:{href:"https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas",target:"_blank",rel:"noopener noreferrer"}},[t._v("OffscreenCanvas API"),s("OutboundLink")],1),t._v(" to render from a web worker onto canvases in the DOM. Chart.js is a canvas-based library and supports rendering in a web worker - just pass an OffscreenCanvas into the Chart constructor instead of a Canvas element. Note that as of today, this API is only supported in Chromium based browsers.")]),t._v(" "),s("p",[t._v("By moving all Chart.js calculations onto a separate thread, the main thread can be freed up for other uses. Some tips and tricks when using Chart.js in a web worker:")]),t._v(" "),s("ul",[s("li",[t._v("Transferring data between threads can be expensive, so ensure that your config and data objects are as small as possible. Try generating them on the worker side if you can (workers can make HTTP requests!) or passing them to your worker as ArrayBuffers, which can be transferred quickly from one thread to another.")]),t._v(" "),s("li",[t._v("You can't transfer functions between threads, so if your config object includes functions you'll have to strip them out before transferring and then add them back later.")]),t._v(" "),s("li",[t._v("You can't access the DOM from worker threads, so Chart.js plugins that use the DOM (including any mouse interactions) will likely not work.")]),t._v(" "),s("li",[t._v("Ensure that you have a fallback if you support browsers other than the most modern Chromium browsers.")]),t._v(" "),s("li",[t._v("Resizing the chart must be done manually. See an example in the worker code below.")])]),t._v(" "),s("p",[t._v("Example main thread code:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" config "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" canvas "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("HTMLCanvasElement")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" offscreenCanvas "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" canvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("transferControlToOffscreen")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" worker "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Worker")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'worker.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nworker"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("postMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("canvas")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" offscreenCanvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" config"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("offscreenCanvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("Example worker code, in "),s("code",[t._v("worker.js")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onmessage")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("event")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("canvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" config"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" event"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" config"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Resizing the chart must be done manually, since OffscreenCanvas does not include event listeners.")]),t._v("\n canvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("width "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n canvas"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("height "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("resize")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"line-Graficas"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#line-Graficas"}},[t._v("#")]),t._v(" Line Graficas")]),t._v(" "),s("h3",{attrs:{id:"leave-bezier-curves-disabled"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#leave-bezier-curves-disabled"}},[t._v("#")]),t._v(" Leave Bézier curves disabled")]),t._v(" "),s("p",[t._v("If you are drawing lines on your chart, disabling Bézier curves will improve render times since drawing a straight line is more performant than a Bézier curve. Bézier curves are disabled by default.")]),t._v(" "),s("h3",{attrs:{id:"automatic-data-decimation-during-draw"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#automatic-data-decimation-during-draw"}},[t._v("#")]),t._v(" Automatic data decimation during draw")]),t._v(" "),s("p",[t._v("Line element will automatically decimate data, when "),s("code",[t._v("tension")]),t._v(", "),s("code",[t._v("stepped")]),t._v(", and "),s("code",[t._v("borderDash")]),t._v(" are left set to their default values ("),s("code",[t._v("false")]),t._v(", "),s("code",[t._v("0")]),t._v(", and "),s("code",[t._v("[]")]),t._v(" respectively). This improves rendering speed by skipping drawing of invisible line segments.")]),t._v(" "),s("h3",{attrs:{id:"enable-spangaps"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#enable-spangaps"}},[t._v("#")]),t._v(" Enable spanGaps")]),t._v(" "),s("p",[t._v("If you have a lot of data points, it can be more performant to enable "),s("code",[t._v("spanGaps")]),t._v(". This disables segmentation of the line, which can be an unneeded step.")]),t._v(" "),s("p",[t._v("To enable "),s("code",[t._v("spanGaps")]),t._v(":")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("spanGaps")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// enable for a single dataset")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("spanGaps")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// enable for all datasets")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h3",{attrs:{id:"disable-line-drawing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disable-line-drawing"}},[t._v("#")]),t._v(" Disable Line Drawing")]),t._v(" "),s("p",[t._v("If you have a lot of data points, it can be more performant to disable rendering of the line for a dataset and only draw points. Doing this means that there is less to draw on the canvas which will improve render performance.")]),t._v(" "),s("p",[t._v("To disable lines:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("showLine")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disable for a single dataset")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("showLine")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disable for all datasets")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h3",{attrs:{id:"disable-point-drawing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#disable-point-drawing"}},[t._v("#")]),t._v(" Disable Point Drawing")]),t._v(" "),s("p",[t._v("If you have a lot of data points, it can be more performant to disable rendering of the points for a dataset and only draw line. Doing this means that there is less to draw on the canvas which will improve render performance.")]),t._v(" "),s("p",[t._v("To disable point drawing:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("pointRadius")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disable for a single dataset")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("line")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("pointRadius")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disable for all `'line'` datasets")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("elements")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("point")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("radius")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// default to disabled in all datasets")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"when-transpiling-with-babel-consider-using-loose-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#when-transpiling-with-babel-consider-using-loose-mode"}},[t._v("#")]),t._v(" When transpiling with Babel, consider using "),s("code",[t._v("loose")]),t._v(" mode")]),t._v(" "),s("p",[t._v("Babel 7.9 changed the way classes are constructed. It is slow, unless used with "),s("code",[t._v("loose")]),t._v(" mode.\n"),s("a",{attrs:{href:"https://github.com/babel/babel/issues/11356",target:"_blank",rel:"noopener noreferrer"}},[t._v("More information"),s("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/179.9442c138.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/179.9442c138.js new file mode 100644 index 0000000..04c6c5d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/179.9442c138.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[179],{509:function(t,s,a){"use strict";a.r(s);var n=a(6),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"getting-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),a("p",[t._v("Let's get started using Chart.js!")]),t._v(" "),a("p",[t._v("First, we need to have a canvas in our page. It's recommended to give the chart its own container for "),a("RouterLink",{attrs:{to:"/configuration/responsive.html"}},[t._v("responsiveness")]),t._v(".")],1),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("div")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("myChart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Now that we have a canvas we can use, we need to include Chart.js in our page.")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/npm/chart.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Now, we can create a chart. We add a script to our page:")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" labels "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'June'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" labels"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'My First dataset'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 99, 132)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderColor")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 99, 132)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("45")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" config "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Finally, render the chart using our configuration:")]),t._v(" "),a("div",{staticClass:"language-html extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n config\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("It's that easy to get started using Chart.js! From here you can explore the many options that can help you customise your Graficas with scales, tooltips, labels, colors, custom actions, and much more.")]),t._v(" "),a("p",[t._v("Here the sample above is presented with our sample block:")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst labels = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n];\nconst data = {\n labels: labels,\n datasets: [{\n label: 'My First dataset',\n backgroundColor: 'rgb(255, 99, 132)',\n borderColor: 'rgb(255, 99, 132)',\n data: [0, 10, 5, 2, 20, 30, 45],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {}\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Note")]),t._v(" "),a("p",[t._v("As you can see, some of the boilerplate needed is not visible in our sample blocks, as the samples focus on the configuration options.")])]),t._v(" "),a("p",[t._v("All our examples are "),a("RouterLink",{attrs:{to:"/samples/"}},[t._v("available online")]),t._v(".")],1),t._v(" "),a("p",[t._v("To run the samples locally you first have to install all the necessary packages using the "),a("code",[t._v("npm ci")]),t._v(" command, after this you can run "),a("code",[t._v("npm run docs:dev")]),t._v(" to build the documentation. As soon as the build is done, you can go to "),a("a",{attrs:{href:"http://localhost:8080/samples/",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8080/samples/"),a("OutboundLink")],1),t._v(" to see the samples.")])],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/18.c331029e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/18.c331029e.js new file mode 100644 index 0000000..dd69ab6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/18.c331029e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{349:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"class-scale-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-scale-o"}},[t._v("#")]),t._v(" Class: Scale")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("Scale")])])]),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/TimeScale.html"}},[a("code",[t._v("TimeScale")])])],1),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/RadialLinearScale.html"}},[a("code",[t._v("RadialLinearScale")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"constructors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructors"}},[t._v("#")]),t._v(" Constructors")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" constructor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("new Scale")]),t._v("<"),a("code",[t._v("O")]),t._v(">("),a("code",[t._v("cfg")]),t._v(")")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg.chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg.ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg.id")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cfg.type")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.constructor")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1337",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1337"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[t._v("#")]),t._v(" axis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("axis")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1239",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1239"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Bottom edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#bottom"}},[t._v("bottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1229",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1229"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ctx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ctx"}},[t._v("#")]),t._v(" ctx")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("ctx")]),t._v(": "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1228",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1228"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("if true, and the item is horizontal, then push vertical boxes down")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#fullsize"}},[t._v("fullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:17"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Height of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#height"}},[t._v("height")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1226",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1226"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labelrotation"}},[t._v("#")]),t._v(" labelRotation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labelRotation")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1240",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1240"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"left"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("left")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Left edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#left"}},[t._v("left")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L29",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:29"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#max"}},[t._v("#")]),t._v(" max")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("max")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1242",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1242"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxheight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxheight"}},[t._v("#")]),t._v(" maxHeight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxHeight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1232",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1232"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxwidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxwidth"}},[t._v("#")]),t._v(" maxWidth")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxWidth")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1231",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1231"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"min"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min"}},[t._v("#")]),t._v(" min")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("min")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1241",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1241"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingbottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingbottom"}},[t._v("#")]),t._v(" paddingBottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingBottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1235",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1235"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingleft"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingleft"}},[t._v("#")]),t._v(" paddingLeft")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingLeft")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1236",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1236"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingright"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingright"}},[t._v("#")]),t._v(" paddingRight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingRight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1237",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1237"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"paddingtop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#paddingtop"}},[t._v("#")]),t._v(" paddingTop")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("paddingTop")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1234",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1234"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("The position of the item in the chart layout. Possible values are")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#position"}},[t._v("position")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"right"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("right")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Right edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#right"}},[t._v("right")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L37",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:37"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[t._v("#")]),t._v(" ticks")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1243",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1243"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"top"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("top")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Top edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#top"}},[t._v("top")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1227",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1227"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the item. Higher weights are further away from the chart area")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#weight"}},[t._v("weight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Width of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#width"}},[t._v("width")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1323",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1323"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftercalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftercalculatelabelrotation"}},[t._v("#")]),t._v(" afterCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1329",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1329"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1320",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1320"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfit"}},[t._v("#")]),t._v(" afterFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1332",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1332"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftersetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftersetdimensions"}},[t._v("#")]),t._v(" afterSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1317",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1317"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterticktolabelconversion"}},[t._v("#")]),t._v(" afterTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1326",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1326"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1314",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1314"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBuildTicks")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1321",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1321"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforecalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecalculatelabelrotation"}},[t._v("#")]),t._v(" beforeCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeCalculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1327",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1327"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1318",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1318"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefit"}},[t._v("#")]),t._v(" beforeFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1330",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1330"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the layout process starts")]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#beforelayout"}},[t._v("beforeLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L46",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:46"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforesetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforesetdimensions"}},[t._v("#")]),t._v(" beforeSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeSetDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1315",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1315"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeticktolabelconversion"}},[t._v("#")]),t._v(" beforeTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTickToLabelConversion")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1324",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1324"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeUpdate")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1312",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1312"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildticks"}},[t._v("#")]),t._v(" buildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1322",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1322"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatelabelrotation"}},[t._v("#")]),t._v(" calculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateLabelRotation")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1328",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1328"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1313",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1313"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"determinedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#determinedatalimits"}},[t._v("#")]),t._v(" determineDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("determineDataLimits")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1319",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1319"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Draws the element")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L50",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:50"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawgrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawgrid"}},[t._v("#")]),t._v(" drawGrid")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawGrid")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1248",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1248"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawlabels"}},[t._v("#")]),t._v(" drawLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawLabels")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1247",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1247"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"drawtitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drawtitle"}},[t._v("#")]),t._v(" drawTitle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("drawTitle")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-52"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1246",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1246"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fit"}},[t._v("#")]),t._v(" fit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("fit")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-53"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1331",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1331"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"generateticklabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#generateticklabels"}},[t._v("#")]),t._v(" generateTickLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("generateTickLabels")]),t._v("("),a("code",[t._v("ticks")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ticks")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-54"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1325",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1325"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasepixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasepixel"}},[t._v("#")]),t._v(" getBasePixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBasePixel")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the pixel for the minimum chart value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-55"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1304",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1304"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getbasevalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getbasevalue"}},[t._v("#")]),t._v(" getBaseValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getBaseValue")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-56"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1298",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1298"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdecimalforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdecimalforpixel"}},[t._v("#")]),t._v(" getDecimalForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDecimalForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-57"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1254",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1254"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelforvalue"}},[t._v("#")]),t._v(" getLabelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabelForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Used to get the label to display in the tooltip for the given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-58"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1274"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabels"}},[t._v("#")]),t._v(" getLabels")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLabels")]),t._v("(): "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-59"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1311",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1311"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlinewidthforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlinewidthforvalue"}},[t._v("#")]),t._v(" getLineWidthForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getLineWidthForValue")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the grid line width at given value")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-60"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1279",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1279"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmatchingvisiblemetas"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmatchingvisiblemetas"}},[t._v("#")]),t._v(" getMatchingVisibleMetas")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMatchingVisibleMetas")]),t._v("("),a("code",[t._v("type?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("type?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-61"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1244",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1244"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("canStack")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-62"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1309",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1309"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpadding"}},[t._v("#")]),t._v(" getPadding")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getPadding")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Returns an object with padding on the edges")]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#getpadding"}},[t._v("getPadding")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-63"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L54",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:54"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfordecimal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfordecimal"}},[t._v("#")]),t._v(" getPixelForDecimal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForDecimal")]),t._v("("),a("code",[t._v("decimal")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Utility for getting the pixel location of a percentage of scale\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("decimal")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-64"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1261",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1261"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelfortick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelfortick"}},[t._v("#")]),t._v(" getPixelForTick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForTick")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the tick at the given index\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-65"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1268",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1268"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpixelforvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpixelforvalue"}},[t._v("#")]),t._v(" getPixelForValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getPixelForValue")]),t._v("("),a("code",[t._v("value")]),t._v(", "),a("code",[t._v("index?")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the location of the given data point. Value can either be an index or a numerical value\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-66"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1288",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1288"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-3"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("code",[t._v("never")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("unknown")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-67"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getticks"}},[t._v("#")]),t._v(" getTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getTicks")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[a("code",[t._v("Tick")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-68"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1310",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1310"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getuserbounds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getuserbounds"}},[t._v("#")]),t._v(" getUserBounds")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getUserBounds")]),t._v("(): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("maxDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("minDefined")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-69"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1308",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1308"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getvalueforpixel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getvalueforpixel"}},[t._v("#")]),t._v(" getValueForPixel")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getValueForPixel")]),t._v("("),a("code",[t._v("pixel")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Used to get the data value from a given pixel. This is the inverse of getPixelForValue\nThe coordinate (0, 0) is at the upper-left corner of the canvas")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pixel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-70"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1296",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1296"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-71"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"init"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init"}},[t._v("#")]),t._v(" init")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("init")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-72"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1306",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1306"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"isfullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isfullsize"}},[t._v("#")]),t._v(" isFullSize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isFullSize")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-73"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1334",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1334"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ishorizontal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ishorizontal"}},[t._v("#")]),t._v(" isHorizontal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isHorizontal")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("returns true if the layout item is horizontal (ie. top or bottom)")]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#ishorizontal"}},[t._v("isHorizontal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-74"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("raw")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("raw")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-75"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1307",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1307"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"setdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setdimensions"}},[t._v("#")]),t._v(" setDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setDimensions")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-76"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1316",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1316"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-77"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("width")]),t._v(", "),a("code",[t._v("height")]),t._v(", "),a("code",[t._v("margins?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Takes two parameters: width and height.")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("margins?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#update"}},[t._v("update")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-78"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L64",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:64"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/180.5c15d5d4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/180.5c15d5d4.js new file mode 100644 index 0000000..0b515cd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/180.5c15d5d4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[180],{510:function(t,r,e){"use strict";e.r(r);var s=e(6),a=Object(s.a)({},(function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h2",{attrs:{id:"npm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#npm"}},[t._v("#")]),t._v(" npm")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://npmjs.com/package/chart.js",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/npm/v/chart.js.svg?style=flat-square&maxAge=600",alt:"npm"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://npmjs.com/package/chart.js",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/npm/dm/chart.js.svg?style=flat-square&maxAge=600",alt:"npm"}}),e("OutboundLink")],1)]),t._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" chart.js\n")])])]),e("h2",{attrs:{id:"cdn"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cdn"}},[t._v("#")]),t._v(" CDN")]),t._v(" "),e("h3",{attrs:{id:"cdnjs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cdnjs"}},[t._v("#")]),t._v(" CDNJS")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://cdnjs.com/libraries/Chart.js",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/cdnjs/v/Chart.js.svg?style=flat-square&maxAge=600",alt:"cdnjs"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("Chart.js built files are available on "),e("a",{attrs:{href:"https://cdnjs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CDNJS"),e("OutboundLink")],1),t._v(":")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://cdnjs.com/libraries/Chart.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://cdnjs.com/libraries/Chart.js"),e("OutboundLink")],1)]),t._v(" "),e("h3",{attrs:{id:"jsdelivr"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#jsdelivr"}},[t._v("#")]),t._v(" jsDelivr")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://cdn.jsdelivr.net/npm/chart.js@latest/dist/",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/npm/v/chart.js.svg?label=jsdelivr&style=flat-square&maxAge=600",alt:"jsdelivr"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://www.jsdelivr.com/package/npm/chart.js",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://data.jsdelivr.com/v1/package/npm/chart.js/badge",alt:"jsdelivr hits"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("Chart.js built files are also available through "),e("a",{attrs:{href:"https://www.jsdelivr.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("jsDelivr"),e("OutboundLink")],1),t._v(":")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://www.jsdelivr.com/package/npm/chart.js?path=dist",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.jsdelivr.com/package/npm/chart.js?path=dist"),e("OutboundLink")],1)]),t._v(" "),e("h2",{attrs:{id:"github"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#github"}},[t._v("#")]),t._v(" Github")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/github/release/chartjs/Chart.js.svg?style=flat-square&maxAge=600",alt:"github"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("You can download the latest version of "),e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js on GitHub"),e("OutboundLink")],1),t._v(".")]),t._v(" "),e("p",[t._v("If you download or clone the repository, you must "),e("RouterLink",{attrs:{to:"/developers/contributing.html#building-and-testing"}},[t._v("build")]),t._v(" Chart.js to generate the dist files. Chart.js no longer comes with prebuilt release versions, so an alternative option to downloading the repo is "),e("strong",[t._v("strongly")]),t._v(" advised.")],1)])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/181.911f367b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/181.911f367b.js new file mode 100644 index 0000000..8b6a6f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/181.911f367b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[181],{511:function(t,a,s){"use strict";s.r(a);var n=s(6),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"integration"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#integration"}},[t._v("#")]),t._v(" Integration")]),t._v(" "),s("p",[t._v("Chart.js can be integrated with plain JavaScript or with different module loaders. The examples below show how to load Chart.js in different systems.")]),t._v(" "),s("h2",{attrs:{id:"script-tag"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#script-tag"}},[t._v("#")]),t._v(" Script Tag")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("path/to/chartjs/dist/chart.js"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}}),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}},[s("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("h2",{attrs:{id:"common-js"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#common-js"}},[t._v("#")]),t._v(" Common JS")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" Chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"bundlers-webpack-rollup-etc"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#bundlers-webpack-rollup-etc"}},[t._v("#")]),t._v(" Bundlers (Webpack, Rollup, etc.)")]),t._v(" "),s("p",[t._v("Chart.js 3 is tree-shakeable, so it is necessary to import and Registro the controllers, elements, scales and plugins you are going to use.")]),t._v(" "),s("p",[t._v("For all available imports see the example below.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n ArcElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LineElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BarElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PointElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BarController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BubbleController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n DoughnutController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LineController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PieController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PolarAreaController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n RadarController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n ScatterController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n CategoryScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LogarithmicScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n RadialLinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TimeScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TimeSeriesScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Decimation"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Filler"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Legend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Title"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Tooltip"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n SubTitle\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n ArcElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LineElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BarElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PointElement"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BarController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n BubbleController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n DoughnutController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LineController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PieController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n PolarAreaController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n RadarController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n ScatterController"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n CategoryScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n LogarithmicScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n RadialLinearScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TimeScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n TimeSeriesScale"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Decimation"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Filler"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Legend"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Title"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Tooltip"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n SubTitle\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("A short registration format is also available to quickly Registro everything.")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" Chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Registroables "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v("Registroables"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("And finally there is a separate path to do just the above for you, in one line:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Chart "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js/auto'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h3",{attrs:{id:"helper-functions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#helper-functions"}},[t._v("#")]),t._v(" Helper functions")]),t._v(" "),s("p",[t._v("If you want to use the helper functions, you will need to import these separately from the helpers package and use them as stand-alone functions.")]),t._v(" "),s("p",[t._v("Example of "),s("RouterLink",{attrs:{to:"/configuration/interactions.html#converting-events-to-data-values"}},[t._v("Converting Events to Data Values")]),t._v(" using bundlers.")],1),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" Chart "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js/auto'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" getRelativePosition "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js/helpers'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'line'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("onClick")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("e")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" canvasPosition "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getRelativePosition")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("e"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Substitute the appropriate scale IDs")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" dataX "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getValueForPixel")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasPosition"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" dataY "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("scales"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getValueForPixel")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("canvasPosition"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("y"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("h2",{attrs:{id:"require-js"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#require-js"}},[t._v("#")]),t._v(" Require JS")]),t._v(" "),s("p",[s("strong",[t._v("Important:")]),t._v(" RequireJS "),s("a",{attrs:{href:"https://requirejs.org/docs/commonjs.html#intro",target:"_blank",rel:"noopener noreferrer"}},[t._v("can "),s("strong",[t._v("not")]),t._v(" load CommonJS module as is"),s("OutboundLink")],1),t._v(", so be sure to require one of the UMD builds instead (i.e. "),s("code",[t._v("dist/chart.js")]),t._v(", "),s("code",[t._v("dist/chart.min.js")]),t._v(", etc.).")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'path/to/chartjs/dist/chart.min.js'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[s("strong",[t._v("Note:")]),t._v(" in order to use the time scale, you need to make sure "),s("a",{attrs:{href:"https://github.com/chartjs/awesome#adapters",target:"_blank",rel:"noopener noreferrer"}},[t._v("one of the available date adapters"),s("OutboundLink")],1),t._v(" and corresponding date library are fully loaded "),s("strong",[t._v("after")]),t._v(" requiring Chart.js. For this you can use nested requires:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chartjs'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'moment'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chartjs-adapter-moment'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/182.72f663e8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/182.72f663e8.js new file mode 100644 index 0000000..16ba4c0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/182.72f663e8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[182],{512:function(t,a,s){"use strict";s.r(a);var n=s(6),r=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"usage"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#usage"}},[t._v("#")]),t._v(" Usage")]),t._v(" "),s("p",[t._v("Chart.js can be used with ES6 modules, plain JavaScript, and module loaders.")]),t._v(" "),s("h2",{attrs:{id:"creating-a-chart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-chart"}},[t._v("#")]),t._v(" Creating a Chart")]),t._v(" "),s("p",[t._v("To create a chart, we need to instantiate the "),s("code",[t._v("Chart")]),t._v(" class. To do this, we need to pass in the node, jQuery instance, or 2d context of the canvas of where we want to draw the chart. Here's an example.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Any of the following formats may be used")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getContext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2d'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("$")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),s("p",[t._v("Once you have the element or context, you're ready to instantiate a pre-defined chart-type or create your own!")]),t._v(" "),s("p",[t._v("The following example instantiates a bar chart showing the number of votes for different colors and the y-axis starting at 0.")]),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}},[s("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Red'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Blue'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Yellow'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Green'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Purple'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Orange'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'# of Votes'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 99, 132, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(54, 162, 235, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 206, 86, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(75, 192, 192, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(153, 102, 255, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 159, 64, 0.2)'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 99, 132, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(54, 162, 235, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 206, 86, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(75, 192, 192, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(153, 102, 255, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 159, 64, 1)'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderWidth")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("beginAtZero")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/183.22b2258c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/183.22b2258c.js new file mode 100644 index 0000000..7b458ed --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/183.22b2258c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[183],{513:function(e,t,a){"use strict";a.r(t);var o=a(6),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"_3-x-migration-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-x-migration-guide"}},[e._v("#")]),e._v(" 3.x Migration Guide")]),e._v(" "),a("p",[e._v("Chart.js 3.0 introduces a number of breaking changes. Chart.js 2.0 was released in April 2016. In the years since then, as Chart.js has grown in popularity and feature set, we've learned some lessons about how to better create a charting library. In order to improve performance, offer new features, and improve maintainability, it was necessary to break backwards compatibility, but we aimed to do so only when worth the benefit. Some major highlights of v3 include:")]),e._v(" "),a("ul",[a("li",[e._v("Large "),a("RouterLink",{attrs:{to:"/general/performance.html"}},[e._v("performance")]),e._v(" improvements including the ability to skip data parsing and render Graficas in parallel via webworkers")],1),e._v(" "),a("li",[e._v("Additional configurability and scriptable options with better defaults")]),e._v(" "),a("li",[e._v("Completely rewritten animation system")]),e._v(" "),a("li",[e._v("Rewritten filler plugin with numerous bug fixes")]),e._v(" "),a("li",[e._v("Documentation migrated from GitBook to Vuepress")]),e._v(" "),a("li",[e._v("API documentation generated and verified by TypeDoc")]),e._v(" "),a("li",[e._v("No more CSS injection")]),e._v(" "),a("li",[e._v("Tons of bug fixes")]),e._v(" "),a("li",[e._v("Tree shaking")])]),e._v(" "),a("h2",{attrs:{id:"end-user-migration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#end-user-migration"}},[e._v("#")]),e._v(" End user migration")]),e._v(" "),a("h3",{attrs:{id:"setup-and-installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#setup-and-installation"}},[e._v("#")]),e._v(" Setup and installation")]),e._v(" "),a("ul",[a("li",[e._v("Distributed files are now in lower case. For example: "),a("code",[e._v("dist/chart.js")]),e._v(".")]),e._v(" "),a("li",[e._v("Chart.js is no longer providing the "),a("code",[e._v("Chart.bundle.js")]),e._v(" and "),a("code",[e._v("Chart.bundle.min.js")]),e._v(". Please see the "),a("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[e._v("installation")]),e._v(" and "),a("RouterLink",{attrs:{to:"/getting-started/integration.html"}},[e._v("integration")]),e._v(" docs for details on the recommended way to setup Chart.js if you were using these builds.")],1),e._v(" "),a("li",[a("code",[e._v("moment")]),e._v(" is no longer specified as an npm dependency. If you are using the "),a("code",[e._v("time")]),e._v(" or "),a("code",[e._v("timeseries")]),e._v(" scales, you must include one of "),a("a",{attrs:{href:"https://github.com/chartjs/awesome#adapters",target:"_blank",rel:"noopener noreferrer"}},[e._v("the available adapters"),a("OutboundLink")],1),e._v(" and corresponding date library. You no longer need to exclude moment from your build.")]),e._v(" "),a("li",[e._v("The "),a("code",[e._v("Chart")]),e._v(" constructor will throw an error if the canvas/context provided is already in use")]),e._v(" "),a("li",[e._v("Chart.js 3 is tree-shakeable. So if you are using it as an "),a("code",[e._v("npm")]),e._v(" module in a project and want to make use of this feature, you need to import and Registro the controllers, elements, scales and plugins you want to use, for a list of all the available items to import see "),a("RouterLink",{attrs:{to:"/getting-started/integration.html#bundlers-webpack-rollup-etc"}},[e._v("integration")]),e._v(". You will not have to call "),a("code",[e._v("Registro")]),e._v(" if importing Chart.js via a "),a("code",[e._v("script")]),e._v(" tag or from the "),a("RouterLink",{attrs:{to:"/getting-started/integration.html#bundlers-webpack-rollup-etc"}},[a("code",[e._v("auto")])]),e._v(" Registro path as an "),a("code",[e._v("npm")]),e._v(" module, in this case you will not get the tree shaking benefits. Here is an example of Registroing Componentes:")],1)]),e._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("import")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v(" Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" LineController"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" LineElement"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" PointElement"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" LinearScale"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" Title "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("from")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token template-string"}},[a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[e._v("`")]),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("chart.js")]),a("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[e._v("`")])]),e._v("\n\nChart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("Registro")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("LineController"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" LineElement"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" PointElement"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" LinearScale"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" Title"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("new")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[e._v("Chart")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'line'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[e._v("// data: ...")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("plugins")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'Chart Title'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'linear'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'linear'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),a("h3",{attrs:{id:"chart-types"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart-types"}},[e._v("#")]),e._v(" Chart types")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("horizontalBar")]),e._v(" chart type was removed. Horizontal bar Graficas can be configured using the new "),a("RouterLink",{attrs:{to:"/Graficas/bar.html#horizontal-bar-chart"}},[a("code",[e._v("indexAxis")])]),e._v(" option")],1)]),e._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[e._v("#")]),e._v(" Options")]),e._v(" "),a("p",[e._v("A number of changes were made to the configuration options passed to the "),a("code",[e._v("Chart")]),e._v(" constructor. Those changes are documented below.")]),e._v(" "),a("h4",{attrs:{id:"generic-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#generic-changes"}},[e._v("#")]),e._v(" Generic changes")]),e._v(" "),a("ul",[a("li",[e._v("Indexable options are now looping. "),a("code",[e._v("backgroundColor: ['red', 'green']")]),e._v(" will result in alternating "),a("code",[e._v("'red'")]),e._v(" / "),a("code",[e._v("'green'")]),e._v(" if there are more than 2 data points.")]),e._v(" "),a("li",[e._v("The input properties of object data can now be freely specified, see "),a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[e._v("data structures")]),e._v(" for details.")],1),e._v(" "),a("li",[e._v("Most options are resolved utilizing proxies, instead of merging with defaults. In addition to easily enabling different resolution routes for different contexts, it allows using other resolved options in scriptable options.\n"),a("ul",[a("li",[e._v("Options are by default scriptable and indexable, unless disabled for some reason.")]),e._v(" "),a("li",[e._v("Scriptable options receive a option resolver as second parameter for accessing other options in same context.")]),e._v(" "),a("li",[e._v("Resolution falls to upper scopes, if no match is found earlier. See "),a("RouterLink",{attrs:{to:"/general/options.html"}},[e._v("options")]),e._v(" for details.")],1)])])]),e._v(" "),a("h4",{attrs:{id:"specific-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#specific-changes"}},[e._v("#")]),e._v(" Specific changes")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("elements.rectangle")]),e._v(" is now "),a("code",[e._v("elements.bar")])]),e._v(" "),a("li",[a("code",[e._v("hover.animationDuration")]),e._v(" is now configured in "),a("code",[e._v("animation.active.duration")])]),e._v(" "),a("li",[a("code",[e._v("responsiveAnimationDuration")]),e._v(" is now configured in "),a("code",[e._v("animation.resize.duration")])]),e._v(" "),a("li",[e._v("Polar area "),a("code",[e._v("elements.arc.angle")]),e._v(" is now configured in degrees instead of radians.")]),e._v(" "),a("li",[e._v("Polar area "),a("code",[e._v("startAngle")]),e._v(" option is now consistent with "),a("code",[e._v("Radar")]),e._v(", 0 is at top and value is in degrees. Default is changed from "),a("code",[e._v("-½π")]),e._v(" to "),a("code",[e._v("0")]),e._v(".")]),e._v(" "),a("li",[e._v("Doughnut "),a("code",[e._v("rotation")]),e._v(" option is now in degrees and 0 is at top. Default is changed from "),a("code",[e._v("-½π")]),e._v(" to "),a("code",[e._v("0")]),e._v(".")]),e._v(" "),a("li",[e._v("Doughnut "),a("code",[e._v("circumference")]),e._v(" option is now in degrees. Default is changed from "),a("code",[e._v("2π")]),e._v(" to "),a("code",[e._v("360")]),e._v(".")]),e._v(" "),a("li",[e._v("Doughnut "),a("code",[e._v("cutoutPercentage")]),e._v(" was renamed to "),a("code",[e._v("cutout")]),e._v("and accepts pixels as number and percent as string ending with "),a("code",[e._v("%")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("scale")]),e._v(" option was removed in favor of "),a("code",[e._v("options.scales.r")]),e._v(" (or any other scale id, with "),a("code",[e._v("axis: 'r'")]),e._v(")")]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes")]),e._v(" arrays were removed. Scales are now configured directly to "),a("code",[e._v("options.scales")]),e._v(" object with the object key being the scale Id.")]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.barPercentage")]),e._v(" was moved to dataset option "),a("code",[e._v("barPercentage")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.barThickness")]),e._v(" was moved to dataset option "),a("code",[e._v("barThickness")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.categoryPercentage")]),e._v(" was moved to dataset option "),a("code",[e._v("categoryPercentage")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.maxBarThickness")]),e._v(" was moved to dataset option "),a("code",[e._v("maxBarThickness")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.minBarLength")]),e._v(" was moved to dataset option "),a("code",[e._v("minBarLength")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.scaleLabel")]),e._v(" was renamed to "),a("code",[e._v("scales[id].title")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.scaleLabel.labelString")]),e._v(" was renamed to "),a("code",[e._v("scales[id].title.text")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.beginAtZero")]),e._v(" was renamed to "),a("code",[e._v("scales[id].beginAtZero")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.max")]),e._v(" was renamed to "),a("code",[e._v("scales[id].max")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.min")]),e._v(" was renamed to "),a("code",[e._v("scales[id].min")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.reverse")]),e._v(" was renamed to "),a("code",[e._v("scales[id].reverse")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.suggestedMax")]),e._v(" was renamed to "),a("code",[e._v("scales[id].suggestedMax")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.suggestedMin")]),e._v(" was renamed to "),a("code",[e._v("scales[id].suggestedMin")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.unitStepSize")]),e._v(" was removed. Use "),a("code",[e._v("scales[id].ticks.stepSize")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.ticks.userCallback")]),e._v(" was renamed to "),a("code",[e._v("scales[id].ticks.callback")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.time.format")]),e._v(" was renamed to "),a("code",[e._v("scales[id].time.parser")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.time.max")]),e._v(" was renamed to "),a("code",[e._v("scales[id].max")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.time.min")]),e._v(" was renamed to "),a("code",[e._v("scales[id].min")])]),e._v(" "),a("li",[a("code",[e._v("scales.[x/y]Axes.zeroLine*")]),e._v(" options of axes were removed. Use scriptable scale options instead.")]),e._v(" "),a("li",[e._v("The dataset option "),a("code",[e._v("steppedLine")]),e._v(" was removed. Use "),a("code",[e._v("stepped")])]),e._v(" "),a("li",[e._v("The chart option "),a("code",[e._v("showLines")]),e._v(" was renamed to "),a("code",[e._v("showLine")]),e._v(" to match the dataset option.")]),e._v(" "),a("li",[e._v("The chart option "),a("code",[e._v("startAngle")]),e._v(" was moved to "),a("code",[e._v("radial")]),e._v(" scale options.")]),e._v(" "),a("li",[e._v("To override the platform class used in a chart instance, pass "),a("code",[e._v("platform: PlatformClass")]),e._v(" in the config object. Note that the class should be passed, not an instance of the class.")]),e._v(" "),a("li",[a("code",[e._v("aspectRatio")]),e._v(" defaults to 1 for doughnut, pie, polarArea, and radar Graficas")]),e._v(" "),a("li",[a("code",[e._v("TimeScale")]),e._v(" does not read "),a("code",[e._v("t")]),e._v(" from object data by default anymore. The default property is "),a("code",[e._v("x")]),e._v(" or "),a("code",[e._v("y")]),e._v(", depending on the orientation. See "),a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[e._v("data structures")]),e._v(" for details on how to change the default.")],1),e._v(" "),a("li",[a("code",[e._v("tooltips")]),e._v(" namespace was renamed to "),a("code",[e._v("tooltip")]),e._v(" to match the plugin name")]),e._v(" "),a("li",[a("code",[e._v("legend")]),e._v(", "),a("code",[e._v("title")]),e._v(" and "),a("code",[e._v("tooltip")]),e._v(" namespaces were moved from "),a("code",[e._v("options")]),e._v(" to "),a("code",[e._v("options.plugins")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("tooltips.custom")]),e._v(" was renamed to "),a("code",[e._v("plugins.tooltip.external")])])]),e._v(" "),a("h4",{attrs:{id:"defaults"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defaults"}},[e._v("#")]),e._v(" Defaults")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("global")]),e._v(" namespace was removed from "),a("code",[e._v("defaults")]),e._v(". So "),a("code",[e._v("Chart.defaults.global")]),e._v(" is now "),a("code",[e._v("Chart.defaults")])]),e._v(" "),a("li",[e._v("Dataset controller defaults were relocate to "),a("code",[e._v("overrides")]),e._v(". For example "),a("code",[e._v("Chart.defaults.line")]),e._v(" is now "),a("code",[e._v("Chart.overrides.line")])]),e._v(" "),a("li",[a("code",[e._v("default")]),e._v(" prefix was removed from defaults. For example "),a("code",[e._v("Chart.defaults.global.defaultColor")]),e._v(" is now "),a("code",[e._v("Chart.defaults.color")])]),e._v(" "),a("li",[a("code",[e._v("defaultColor")]),e._v(" was split to "),a("code",[e._v("color")]),e._v(", "),a("code",[e._v("borderColor")]),e._v(" and "),a("code",[e._v("backgroundColor")])]),e._v(" "),a("li",[a("code",[e._v("defaultFontColor")]),e._v(" was renamed to "),a("code",[e._v("color")])]),e._v(" "),a("li",[a("code",[e._v("defaultFontFamily")]),e._v(" was renamed to "),a("code",[e._v("font.family")])]),e._v(" "),a("li",[a("code",[e._v("defaultFontSize")]),e._v(" was renamed to "),a("code",[e._v("font.size")])]),e._v(" "),a("li",[a("code",[e._v("defaultFontStyle")]),e._v(" was renamed to "),a("code",[e._v("font.style")])]),e._v(" "),a("li",[a("code",[e._v("defaultLineHeight")]),e._v(" was renamed to "),a("code",[e._v("font.lineHeight")])]),e._v(" "),a("li",[e._v("Horizontal Bar default tooltip mode was changed from "),a("code",[e._v("'index'")]),e._v(" to "),a("code",[e._v("'nearest'")]),e._v(" to match vertical bar Graficas")]),e._v(" "),a("li",[a("code",[e._v("legend")]),e._v(", "),a("code",[e._v("title")]),e._v(" and "),a("code",[e._v("tooltip")]),e._v(" namespaces were moved from "),a("code",[e._v("Chart.defaults")]),e._v(" to "),a("code",[e._v("Chart.defaults.plugins")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("elements.line.fill")]),e._v(" default changed from "),a("code",[e._v("true")]),e._v(" to "),a("code",[e._v("false")]),e._v(".")]),e._v(" "),a("li",[e._v("Line Graficas no longer override the default "),a("code",[e._v("interaction")]),e._v(" mode. Default is changed from "),a("code",[e._v("'index'")]),e._v(" to "),a("code",[e._v("'nearest'")]),e._v(".")])]),e._v(" "),a("h4",{attrs:{id:"scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scales"}},[e._v("#")]),e._v(" Scales")]),e._v(" "),a("p",[e._v("The configuration options for scales is the largest change in v3. The "),a("code",[e._v("xAxes")]),e._v(" and "),a("code",[e._v("yAxes")]),e._v(" arrays were removed and axis options are individual scales now keyed by scale ID.")]),e._v(" "),a("p",[e._v("The v2 configuration below is shown with it's new v3 configuration")]),e._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("xAxes")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("id")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'x'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'time'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'Date'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("ticks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("major")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("enabled")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[e._v("font")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[e._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("if")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("&&")]),e._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("major"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("return")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("weight")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'bold'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("color")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'#FF0000'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("yAxes")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("id")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'y'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'value'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("]")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])]),a("p",[e._v("And now, in v3:")]),e._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("options")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("scales")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("x")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("type")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'time'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'Date'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("ticks")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("major")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("enabled")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[e._v("color")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[e._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=>")]),e._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("&&")]),e._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("major "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("&&")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'#FF0000'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[e._v("font")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("function")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[e._v("context")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("if")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("&&")]),e._v(" context"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("tick"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("major"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("return")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("weight")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'bold'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("title")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("{")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("display")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[e._v("text")]),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v(":")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'value'")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("}")]),e._v("\n")])])]),a("ul",[a("li",[e._v("The time scale option "),a("code",[e._v("distribution: 'series'")]),e._v(" was removed and a new scale type "),a("code",[e._v("timeseries")]),e._v(" was introduced in its place")]),e._v(" "),a("li",[e._v("In the time scale, "),a("code",[e._v("autoSkip")]),e._v(" is now enabled by default for consistency with the other scales")])]),e._v(" "),a("h4",{attrs:{id:"animations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[e._v("#")]),e._v(" Animations")]),e._v(" "),a("p",[e._v("Animation system was completely rewritten in Chart.js v3. Each property can now be animated separately. Please see "),a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[e._v("animations")]),e._v(" docs for details.")],1),e._v(" "),a("h4",{attrs:{id:"customizability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#customizability"}},[e._v("#")]),e._v(" Customizability")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("custom")]),e._v(" attribute of elements was removed. Please use scriptable options")]),e._v(" "),a("li",[e._v("The "),a("code",[e._v("hover")]),e._v(" property of scriptable options "),a("code",[e._v("context")]),e._v(" object was renamed to "),a("code",[e._v("active")]),e._v(" to align it with the datalabels plugin.")])]),e._v(" "),a("h4",{attrs:{id:"interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactions"}},[e._v("#")]),e._v(" Interactions")]),e._v(" "),a("ul",[a("li",[e._v("To allow DRY configuration, a root options scope for common interaction options was added. "),a("code",[e._v("options.hover")]),e._v(" and "),a("code",[e._v("options.plugins.tooltip")]),e._v(" now both extend from "),a("code",[e._v("options.interaction")]),e._v(". Defaults are defined at "),a("code",[e._v("defaults.interaction")]),e._v(" level, so by default hover and tooltip interactions share the same mode etc.")]),e._v(" "),a("li",[a("code",[e._v("interactions")]),e._v(" are now limited to the chart area + allowed overflow")]),e._v(" "),a("li",[a("code",[e._v("{mode: 'label'}")]),e._v(" was replaced with "),a("code",[e._v("{mode: 'index'}")])]),e._v(" "),a("li",[a("code",[e._v("{mode: 'single'}")]),e._v(" was replaced with "),a("code",[e._v("{mode: 'nearest', intersect: true}")])]),e._v(" "),a("li",[a("code",[e._v("modes['X-axis']")]),e._v(" was replaced with "),a("code",[e._v("{mode: 'index', intersect: false}")])]),e._v(" "),a("li",[a("code",[e._v("options.onClick")]),e._v(" is now limited to the chart area")]),e._v(" "),a("li",[a("code",[e._v("options.onClick")]),e._v(" and "),a("code",[e._v("options.onHover")]),e._v(" now receive the "),a("code",[e._v("chart")]),e._v(" instance as a 3rd argument")]),e._v(" "),a("li",[a("code",[e._v("options.onHover")]),e._v(" now receives a wrapped "),a("code",[e._v("event")]),e._v(" as the first parameter. The previous first parameter value is accessible via "),a("code",[e._v("event.native")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("options.hover.onHover")]),e._v(" was removed, use "),a("code",[e._v("options.onHover")]),e._v(".")])]),e._v(" "),a("h4",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[e._v("#")]),e._v(" Ticks")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("options.gridLines")]),e._v(" was renamed to "),a("code",[e._v("options.grid")])]),e._v(" "),a("li",[a("code",[e._v("options.gridLines.offsetGridLines")]),e._v(" was renamed to "),a("code",[e._v("options.grid.offset")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("options.gridLines.tickMarkLength")]),e._v(" was renamed to "),a("code",[e._v("options.grid.tickLength")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("options.ticks.fixedStepSize")]),e._v(" is no longer used. Use "),a("code",[e._v("options.ticks.stepSize")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("options.ticks.major")]),e._v(" and "),a("code",[e._v("options.ticks.minor")]),e._v(" were replaced with scriptable options for tick fonts.")]),e._v(" "),a("li",[a("code",[e._v("Chart.Ticks.formatters.linear")]),e._v(" was renamed to "),a("code",[e._v("Chart.Ticks.formatters.numeric")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("options.ticks.backdropPaddingX")]),e._v(" and "),a("code",[e._v("options.ticks.backdropPaddingY")]),e._v(" were replaced with "),a("code",[e._v("options.ticks.backdropPadding")]),e._v(" in the radial linear scale.")])]),e._v(" "),a("h4",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[e._v("#")]),e._v(" Tooltip")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("xLabel")]),e._v(" and "),a("code",[e._v("yLabel")]),e._v(" were removed. Please use "),a("code",[e._v("label")]),e._v(" and "),a("code",[e._v("formattedValue")])]),e._v(" "),a("li",[e._v("The "),a("code",[e._v("filter")]),e._v(" option will now be passed additional parameters when called and should have the method signature "),a("code",[e._v("function(tooltipItem, index, tooltipItems, data)")])]),e._v(" "),a("li",[e._v("The "),a("code",[e._v("custom")]),e._v(" callback now takes a context object that has "),a("code",[e._v("tooltip")]),e._v(" and "),a("code",[e._v("chart")]),e._v(" properties")]),e._v(" "),a("li",[e._v("All properties of tooltip model related to the tooltip options have been moved to reside within the "),a("code",[e._v("options")]),e._v(" property.")]),e._v(" "),a("li",[e._v("The callbacks no longer are given a "),a("code",[e._v("data")]),e._v(" parameter. The tooltip item parameter contains the chart and dataset instead")]),e._v(" "),a("li",[e._v("The tooltip item's "),a("code",[e._v("index")]),e._v(" parameter was renamed to "),a("code",[e._v("dataIndex")]),e._v(" and "),a("code",[e._v("value")]),e._v(" was renamed to "),a("code",[e._v("formattedValue")])]),e._v(" "),a("li",[e._v("The "),a("code",[e._v("xPadding")]),e._v(" and "),a("code",[e._v("yPadding")]),e._v(" options were merged into a single "),a("code",[e._v("padding")]),e._v(" object")])]),e._v(" "),a("h2",{attrs:{id:"developer-migration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#developer-migration"}},[e._v("#")]),e._v(" Developer migration")]),e._v(" "),a("p",[e._v("While the end-user migration for Chart.js 3 is fairly straight-forward, the developer migration can be more complicated. Please reach out for help in the #dev "),a("a",{attrs:{href:"https://chartjs-slack.herokuapp.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1),e._v(" channel if tips on migrating would be helpful.")]),e._v(" "),a("p",[e._v("Some of the biggest things that have changed:")]),e._v(" "),a("ul",[a("li",[e._v("There is a completely rewritten and more performant animation system.\n"),a("ul",[a("li",[a("code",[e._v("Element._model")]),e._v(" and "),a("code",[e._v("Element._view")]),e._v(" are no longer used and properties are now set directly on the elements. You will have to use the method "),a("code",[e._v("getProps")]),e._v(" to access these properties inside most methods such as "),a("code",[e._v("inXRange")]),e._v("/"),a("code",[e._v("inYRange")]),e._v(" and "),a("code",[e._v("getCenterPoint")]),e._v(". Please take a look at "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/tree/master/src/elements",target:"_blank",rel:"noopener noreferrer"}},[e._v("the Chart.js-provided elements"),a("OutboundLink")],1),e._v(" for examples.")]),e._v(" "),a("li",[e._v("When building the elements in a controller, it's now suggested to call "),a("code",[e._v("updateElement")]),e._v(" to provide the element properties. There are also methods such as "),a("code",[e._v("getSharedOptions")]),e._v(" and "),a("code",[e._v("includeOptions")]),e._v(" that have been added to skip redundant computation. Please take a look at "),a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/tree/master/src/controllers",target:"_blank",rel:"noopener noreferrer"}},[e._v("the Chart.js-provided controllers"),a("OutboundLink")],1),e._v(" for examples.")])])]),e._v(" "),a("li",[e._v("Scales introduced a new parsing API. This API takes user data and converts it into a more standard format. E.g. it allows Usuarios to provide numeric data as a "),a("code",[e._v("string")]),e._v(" and converts it to a "),a("code",[e._v("number")]),e._v(" where necessary. Previously this was done on the fly as Graficas were rendered. Now it's done up front with the ability to skip it for better performance if Usuarios provide data in the correct format. If you're using standard data format like "),a("code",[e._v("x")]),e._v("/"),a("code",[e._v("y")]),e._v(" you may not need to do anything. If you're using a custom data format you will have to override some of the parse methods in "),a("code",[e._v("core.datasetController.js")]),e._v(". An example can be found in "),a("a",{attrs:{href:"https://github.com/chartjs/chartjs-chart-financial",target:"_blank",rel:"noopener noreferrer"}},[e._v("chartjs-chart-financial"),a("OutboundLink")],1),e._v(", which uses an "),a("code",[e._v("{o, h, l, c}")]),e._v(" data format.")])]),e._v(" "),a("p",[e._v("A few changes were made to controllers that are more straight-forward, but will affect all controllers:")]),e._v(" "),a("ul",[a("li",[e._v("Options:\n"),a("ul",[a("li",[a("code",[e._v("global")]),e._v(" was removed from the defaults namespace as it was unnecessary and sometimes inconsistent")]),e._v(" "),a("li",[e._v("Dataset defaults are now under the chart type options instead of vice-versa. This was not able to be done when introduced in 2.x for backwards compatibility. Fixing it removes the biggest stumbling block that new chart developers encountered")]),e._v(" "),a("li",[e._v("Scale default options need to be updated as described in the end user migration section (e.g. "),a("code",[e._v("x")]),e._v(" instead of "),a("code",[e._v("xAxes")]),e._v(" and "),a("code",[e._v("y")]),e._v(" instead of "),a("code",[e._v("yAxes")]),e._v(")")])])]),e._v(" "),a("li",[a("code",[e._v("updateElement")]),e._v(" was changed to "),a("code",[e._v("updateElements")]),e._v(" and has a new method signature as described below. This provides performance enhancements such as allowing easier reuse of computations that are common to all elements and reducing the number of function calls")])]),e._v(" "),a("h3",{attrs:{id:"removed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed"}},[e._v("#")]),e._v(" Removed")]),e._v(" "),a("p",[e._v("The following properties and methods were removed:")]),e._v(" "),a("h4",{attrs:{id:"removed-from-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-chart"}},[e._v("#")]),e._v(" Removed from Chart")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Chart.animationService")])]),e._v(" "),a("li",[a("code",[e._v("Chart.active")])]),e._v(" "),a("li",[a("code",[e._v("Chart.borderWidth")])]),e._v(" "),a("li",[a("code",[e._v("Chart.chart.chart")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Bar")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.Bubble")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.Chart")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Controller")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Doughnut")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.innerRadius")]),e._v(" now lives on doughnut, pie, and polarArea controllers")]),e._v(" "),a("li",[a("code",[e._v("Chart.lastActive")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Legend")]),e._v(" was moved to "),a("code",[e._v("Chart.plugins.legend._element")]),e._v(" and made private")]),e._v(" "),a("li",[a("code",[e._v("Chart.Line")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.LinearScaleBase")]),e._v(" now must be imported and cannot be accessed off the "),a("code",[e._v("Chart")]),e._v(" object")]),e._v(" "),a("li",[a("code",[e._v("Chart.offsetX")])]),e._v(" "),a("li",[a("code",[e._v("Chart.offsetY")])]),e._v(" "),a("li",[a("code",[e._v("Chart.outerRadius")]),e._v(" now lives on doughnut, pie, and polarArea controllers")]),e._v(" "),a("li",[a("code",[e._v("Chart.plugins")]),e._v(" was replaced with "),a("code",[e._v("Chart.registry")]),e._v(". Plugin defaults are now in "),a("code",[e._v("Chart.defaults.plugins[id]")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("Chart.plugins.Registro")]),e._v(" was replaced by "),a("code",[e._v("Chart.Registro")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("Chart.PolarArea")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.prototype.generateLegend")])]),e._v(" "),a("li",[a("code",[e._v("Chart.platform")]),e._v(". It only contained "),a("code",[e._v("disableCSSInjection")]),e._v(". CSS is never injected in v3.")]),e._v(" "),a("li",[a("code",[e._v("Chart.PluginBase")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Radar")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.radiusLength")])]),e._v(" "),a("li",[a("code",[e._v("Chart.scaleService")]),e._v(" was replaced with "),a("code",[e._v("Chart.registry")]),e._v(". Scale defaults are now in "),a("code",[e._v("Chart.defaults.scales[type]")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("Chart.Scatter")]),e._v(". New Graficas are created via "),a("code",[e._v("new Chart")]),e._v(" and providing the appropriate "),a("code",[e._v("type")]),e._v(" parameter")]),e._v(" "),a("li",[a("code",[e._v("Chart.types")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Title")]),e._v(" was moved to "),a("code",[e._v("Chart.plugins.title._element")]),e._v(" and made private")]),e._v(" "),a("li",[a("code",[e._v("Chart.Tooltip")]),e._v(" is now provided by the tooltip plugin. The positioners can be accessed from "),a("code",[e._v("tooltipPlugin.positioners")])]),e._v(" "),a("li",[a("code",[e._v("ILayoutItem.minSize")])])]),e._v(" "),a("h4",{attrs:{id:"removed-from-dataset-controllers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-dataset-controllers"}},[e._v("#")]),e._v(" Removed from Dataset Controllers")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("BarController.getDatasetMeta().bar")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.addElementAndReset")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.createMetaData")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.createMetaDataset")])]),e._v(" "),a("li",[a("code",[e._v("DoughnutController.getRingIndex")])])]),e._v(" "),a("h4",{attrs:{id:"removed-from-elements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-elements"}},[e._v("#")]),e._v(" Removed from Elements")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Element.getArea")])]),e._v(" "),a("li",[a("code",[e._v("Element.height")])]),e._v(" "),a("li",[a("code",[e._v("Element.hidden")]),e._v(" was replaced by chart level status, usable with "),a("code",[e._v("getDataVisibility(index)")]),e._v(" / "),a("code",[e._v("toggleDataVisibility(index)")])]),e._v(" "),a("li",[a("code",[e._v("Element.initialize")])]),e._v(" "),a("li",[a("code",[e._v("Element.inLabelRange")])]),e._v(" "),a("li",[a("code",[e._v("Line.calculatePointY")])])]),e._v(" "),a("h4",{attrs:{id:"removed-from-helpers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-helpers"}},[e._v("#")]),e._v(" Removed from Helpers")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("helpers.addEvent")])]),e._v(" "),a("li",[a("code",[e._v("helpers.aliasPixel")])]),e._v(" "),a("li",[a("code",[e._v("helpers.arrayEquals")])]),e._v(" "),a("li",[a("code",[e._v("helpers.configMerge")])]),e._v(" "),a("li",[a("code",[e._v("helpers.findIndex")])]),e._v(" "),a("li",[a("code",[e._v("helpers.findNextWhere")])]),e._v(" "),a("li",[a("code",[e._v("helpers.findPreviousWhere")])]),e._v(" "),a("li",[a("code",[e._v("helpers.extend")]),e._v(". Use "),a("code",[e._v("Object.assign")]),e._v(" instead")]),e._v(" "),a("li",[a("code",[e._v("helpers.getValueAtIndexOrDefault")]),e._v(". Use "),a("code",[e._v("helpers.resolve")]),e._v(" instead.")]),e._v(" "),a("li",[a("code",[e._v("helpers.indexOf")])]),e._v(" "),a("li",[a("code",[e._v("helpers.lineTo")])]),e._v(" "),a("li",[a("code",[e._v("helpers.longestText")]),e._v(" was made private")]),e._v(" "),a("li",[a("code",[e._v("helpers.max")])]),e._v(" "),a("li",[a("code",[e._v("helpers.measureText")]),e._v(" was made private")]),e._v(" "),a("li",[a("code",[e._v("helpers.min")])]),e._v(" "),a("li",[a("code",[e._v("helpers.nextItem")])]),e._v(" "),a("li",[a("code",[e._v("helpers.niceNum")])]),e._v(" "),a("li",[a("code",[e._v("helpers.numberOfLabelLines")])]),e._v(" "),a("li",[a("code",[e._v("helpers.previousItem")])]),e._v(" "),a("li",[a("code",[e._v("helpers.removeEvent")])]),e._v(" "),a("li",[a("code",[e._v("helpers.roundedRect")])]),e._v(" "),a("li",[a("code",[e._v("helpers.scaleMerge")])]),e._v(" "),a("li",[a("code",[e._v("helpers.where")])])]),e._v(" "),a("h4",{attrs:{id:"removed-from-layout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-layout"}},[e._v("#")]),e._v(" Removed from Layout")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Layout.defaults")])])]),e._v(" "),a("h4",{attrs:{id:"removed-from-scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-scales"}},[e._v("#")]),e._v(" Removed from Scales")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("LinearScaleBase.handleDirectionalChanges")])]),e._v(" "),a("li",[a("code",[e._v("LogarithmicScale.minNotZero")])]),e._v(" "),a("li",[a("code",[e._v("Scale.getRightValue")])]),e._v(" "),a("li",[a("code",[e._v("Scale.longestLabelWidth")])]),e._v(" "),a("li",[a("code",[e._v("Scale.longestTextCache")]),e._v(" is now private")]),e._v(" "),a("li",[a("code",[e._v("Scale.margins")]),e._v(" is now private")]),e._v(" "),a("li",[a("code",[e._v("Scale.mergeTicksOptions")])]),e._v(" "),a("li",[a("code",[e._v("Scale.ticksAsNumbers")])]),e._v(" "),a("li",[a("code",[e._v("Scale.tickValues")]),e._v(" is now private")]),e._v(" "),a("li",[a("code",[e._v("TimeScale.getLabelCapacity")]),e._v(" is now private")]),e._v(" "),a("li",[a("code",[e._v("TimeScale.tickFormatFunction")]),e._v(" is now private")])]),e._v(" "),a("h4",{attrs:{id:"removed-from-plugins-legend-title-and-tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removed-from-plugins-legend-title-and-tooltip"}},[e._v("#")]),e._v(" Removed from Plugins (Legend, Title, and Tooltip)")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("IPlugin.afterScaleUpdate")]),e._v(". Use "),a("code",[e._v("afterLayout")]),e._v(" instead")]),e._v(" "),a("li",[a("code",[e._v("Legend.margins")]),e._v(" is now private")]),e._v(" "),a("li",[e._v("Legend "),a("code",[e._v("onClick")]),e._v(", "),a("code",[e._v("onHover")]),e._v(", and "),a("code",[e._v("onLeave")]),e._v(" options now receive the legend as the 3rd argument in addition to implicitly via "),a("code",[e._v("this")])]),e._v(" "),a("li",[e._v("Legend "),a("code",[e._v("onClick")]),e._v(", "),a("code",[e._v("onHover")]),e._v(", and "),a("code",[e._v("onLeave")]),e._v(" options now receive a wrapped "),a("code",[e._v("event")]),e._v(" as the first parameter. The previous first parameter value is accessible via "),a("code",[e._v("event.native")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("Title.margins")]),e._v(" is now private")]),e._v(" "),a("li",[e._v("The tooltip item's "),a("code",[e._v("x")]),e._v(" and "),a("code",[e._v("y")]),e._v(" attributes were replaced by "),a("code",[e._v("element")]),e._v(". You can use "),a("code",[e._v("element.x")]),e._v(" and "),a("code",[e._v("element.y")]),e._v(" or "),a("code",[e._v("element.tooltipPosition()")]),e._v(" instead.")])]),e._v(" "),a("h4",{attrs:{id:"removal-of-public-apis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removal-of-public-apis"}},[e._v("#")]),e._v(" Removal of Public APIs")]),e._v(" "),a("p",[e._v("The following public APIs were removed.")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("getElementAtEvent")]),e._v(" is replaced with "),a("code",[e._v("chart.getElementsAtEventForMode(e, 'nearest', { intersect: true }, false)")])]),e._v(" "),a("li",[a("code",[e._v("getElementsAtEvent")]),e._v(" is replaced with "),a("code",[e._v("chart.getElementsAtEventForMode(e, 'index', { intersect: true }, false)")])]),e._v(" "),a("li",[a("code",[e._v("getElementsAtXAxis")]),e._v(" is replaced with "),a("code",[e._v("chart.getElementsAtEventForMode(e, 'index', { intersect: false }, false)")])]),e._v(" "),a("li",[a("code",[e._v("getDatasetAtEvent")]),e._v(" is replaced with "),a("code",[e._v("chart.getElementsAtEventForMode(e, 'dataset', { intersect: true }, false)")])])]),e._v(" "),a("h4",{attrs:{id:"removal-of-private-apis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removal-of-private-apis"}},[e._v("#")]),e._v(" Removal of private APIs")]),e._v(" "),a("p",[e._v("The following private APIs were removed.")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Chart._bufferedRender")])]),e._v(" "),a("li",[a("code",[e._v("Chart._updating")])]),e._v(" "),a("li",[a("code",[e._v("Chart.data.datasets[datasetIndex]._meta")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController._getIndexScaleId")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController._getIndexScale")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController._getValueScaleId")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController._getValueScale")])]),e._v(" "),a("li",[a("code",[e._v("Element._ctx")])]),e._v(" "),a("li",[a("code",[e._v("Element._model")])]),e._v(" "),a("li",[a("code",[e._v("Element._view")])]),e._v(" "),a("li",[a("code",[e._v("LogarithmicScale._valueOffset")])]),e._v(" "),a("li",[a("code",[e._v("TimeScale.getPixelForOffset")])]),e._v(" "),a("li",[a("code",[e._v("TimeScale.getLabelWidth")])]),e._v(" "),a("li",[a("code",[e._v("Tooltip._lastActive")])])]),e._v(" "),a("h3",{attrs:{id:"renamed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#renamed"}},[e._v("#")]),e._v(" Renamed")]),e._v(" "),a("p",[e._v("The following properties were renamed during v3 development:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Chart.Animation.animationObject")]),e._v(" was renamed to "),a("code",[e._v("Chart.Animation")])]),e._v(" "),a("li",[a("code",[e._v("Chart.Animation.chartInstance")]),e._v(" was renamed to "),a("code",[e._v("Chart.Animation.chart")])]),e._v(" "),a("li",[a("code",[e._v("Chart.canvasHelpers")]),e._v(" was merged with "),a("code",[e._v("Chart.helpers")])]),e._v(" "),a("li",[a("code",[e._v("Chart.elements.Arc")]),e._v(" was renamed to "),a("code",[e._v("Chart.elements.ArcElement")])]),e._v(" "),a("li",[a("code",[e._v("Chart.elements.Line")]),e._v(" was renamed to "),a("code",[e._v("Chart.elements.LineElement")])]),e._v(" "),a("li",[a("code",[e._v("Chart.elements.Point")]),e._v(" was renamed to "),a("code",[e._v("Chart.elements.PointElement")])]),e._v(" "),a("li",[a("code",[e._v("Chart.elements.Rectangle")]),e._v(" was renamed to "),a("code",[e._v("Chart.elements.BarElement")])]),e._v(" "),a("li",[a("code",[e._v("Chart.layoutService")]),e._v(" was renamed to "),a("code",[e._v("Chart.layouts")])]),e._v(" "),a("li",[a("code",[e._v("Chart.pluginService")]),e._v(" was renamed to "),a("code",[e._v("Chart.plugins")])]),e._v(" "),a("li",[a("code",[e._v("helpers.callCallback")]),e._v(" was renamed to "),a("code",[e._v("helpers.callback")])]),e._v(" "),a("li",[a("code",[e._v("helpers.drawRoundedRectangle")]),e._v(" was renamed to "),a("code",[e._v("helpers.roundedRect")])]),e._v(" "),a("li",[a("code",[e._v("helpers.getValueOrDefault")]),e._v(" was renamed to "),a("code",[e._v("helpers.valueOrDefault")])]),e._v(" "),a("li",[a("code",[e._v("LayoutItem.fullWidth")]),e._v(" was renamed to "),a("code",[e._v("LayoutItem.fullSize")])]),e._v(" "),a("li",[a("code",[e._v("Point.controlPointPreviousX")]),e._v(" was renamed to "),a("code",[e._v("Point.cp1x")])]),e._v(" "),a("li",[a("code",[e._v("Point.controlPointPreviousY")]),e._v(" was renamed to "),a("code",[e._v("Point.cp1y")])]),e._v(" "),a("li",[a("code",[e._v("Point.controlPointNextX")]),e._v(" was renamed to "),a("code",[e._v("Point.cp2x")])]),e._v(" "),a("li",[a("code",[e._v("Point.controlPointNextY")]),e._v(" was renamed to "),a("code",[e._v("Point.cp2y")])]),e._v(" "),a("li",[a("code",[e._v("Scale.calculateTickRotation")]),e._v(" was renamed to "),a("code",[e._v("Scale.calculateLabelRotation")])]),e._v(" "),a("li",[a("code",[e._v("Tooltip.options.legendColorBackgroupd")]),e._v(" was renamed to "),a("code",[e._v("Tooltip.options.multiKeyBackground")])])]),e._v(" "),a("h4",{attrs:{id:"renamed-private-apis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#renamed-private-apis"}},[e._v("#")]),e._v(" Renamed private APIs")]),e._v(" "),a("p",[e._v("The private APIs listed below were renamed:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("BarController.calculateBarIndexPixels")]),e._v(" was renamed to "),a("code",[e._v("BarController._calculateBarIndexPixels")])]),e._v(" "),a("li",[a("code",[e._v("BarController.calculateBarValuePixels")]),e._v(" was renamed to "),a("code",[e._v("BarController._calculateBarValuePixels")])]),e._v(" "),a("li",[a("code",[e._v("BarController.getStackCount")]),e._v(" was renamed to "),a("code",[e._v("BarController._getStackCount")])]),e._v(" "),a("li",[a("code",[e._v("BarController.getStackIndex")]),e._v(" was renamed to "),a("code",[e._v("BarController._getStackIndex")])]),e._v(" "),a("li",[a("code",[e._v("BarController.getRuler")]),e._v(" was renamed to "),a("code",[e._v("BarController._getRuler")])]),e._v(" "),a("li",[a("code",[e._v("Chart.destroyDatasetMeta")]),e._v(" was renamed to "),a("code",[e._v("Chart._destroyDatasetMeta")])]),e._v(" "),a("li",[a("code",[e._v("Chart.drawDataset")]),e._v(" was renamed to "),a("code",[e._v("Chart._drawDataset")])]),e._v(" "),a("li",[a("code",[e._v("Chart.drawDatasets")]),e._v(" was renamed to "),a("code",[e._v("Chart._drawDatasets")])]),e._v(" "),a("li",[a("code",[e._v("Chart.eventHandler")]),e._v(" was renamed to "),a("code",[e._v("Chart._eventHandler")])]),e._v(" "),a("li",[a("code",[e._v("Chart.handleEvent")]),e._v(" was renamed to "),a("code",[e._v("Chart._handleEvent")])]),e._v(" "),a("li",[a("code",[e._v("Chart.initialize")]),e._v(" was renamed to "),a("code",[e._v("Chart._initialize")])]),e._v(" "),a("li",[a("code",[e._v("Chart.resetElements")]),e._v(" was renamed to "),a("code",[e._v("Chart._resetElements")])]),e._v(" "),a("li",[a("code",[e._v("Chart.unbindEvents")]),e._v(" was renamed to "),a("code",[e._v("Chart._unbindEvents")])]),e._v(" "),a("li",[a("code",[e._v("Chart.updateDataset")]),e._v(" was renamed to "),a("code",[e._v("Chart._updateDataset")])]),e._v(" "),a("li",[a("code",[e._v("Chart.updateDatasets")]),e._v(" was renamed to "),a("code",[e._v("Chart._updateDatasets")])]),e._v(" "),a("li",[a("code",[e._v("Chart.updateLayout")]),e._v(" was renamed to "),a("code",[e._v("Chart._updateLayout")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.destroy")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._destroy")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.insertElements")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._insertElements")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.onDataPop")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._onDataPop")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.onDataPush")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._onDataPush")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.onDataShift")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._onDataShift")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.onDataSplice")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._onDataSplice")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.onDataUnshift")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._onDataUnshift")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.removeElements")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._removeElements")])]),e._v(" "),a("li",[a("code",[e._v("DatasetController.resyncElements")]),e._v(" was renamed to "),a("code",[e._v("DatasetController._resyncElements")])]),e._v(" "),a("li",[a("code",[e._v("LayoutItem.isFullWidth")]),e._v(" was renamed to "),a("code",[e._v("LayoutItem.isFullSize")])]),e._v(" "),a("li",[a("code",[e._v("RadialLinearScale.setReductions")]),e._v(" was renamed to "),a("code",[e._v("RadialLinearScale._setReductions")])]),e._v(" "),a("li",[a("code",[e._v("RadialLinearScale.pointLabels")]),e._v(" was renamed to "),a("code",[e._v("RadialLinearScale._pointLabels")])]),e._v(" "),a("li",[a("code",[e._v("Scale.handleMargins")]),e._v(" was renamed to "),a("code",[e._v("Scale._handleMargins")])])]),e._v(" "),a("h3",{attrs:{id:"changed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed"}},[e._v("#")]),e._v(" Changed")]),e._v(" "),a("p",[e._v("The APIs listed in this section have changed in signature or behaviour from version 2.")]),e._v(" "),a("h4",{attrs:{id:"changed-in-scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-scales"}},[e._v("#")]),e._v(" Changed in Scales")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Scale.getLabelForIndex")]),e._v(" was replaced by "),a("code",[e._v("scale.getLabelForValue")])]),e._v(" "),a("li",[a("code",[e._v("Scale.getPixelForValue")]),e._v(" now only requires one parameter. For the "),a("code",[e._v("TimeScale")]),e._v(" that parameter must be millis since the epoch. As a performance optimization, it may take an optional second parameter, giving the index of the data point.")])]),e._v(" "),a("h5",{attrs:{id:"changed-in-ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-ticks"}},[e._v("#")]),e._v(" Changed in Ticks")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Scale.afterBuildTicks")]),e._v(" now has no parameters like the other callbacks")]),e._v(" "),a("li",[a("code",[e._v("Scale.buildTicks")]),e._v(" is now expected to return tick objects")]),e._v(" "),a("li",[a("code",[e._v("Scale.convertTicksToLabels")]),e._v(" was renamed to "),a("code",[e._v("generateTickLabels")]),e._v(". It is now expected to set the label property on the ticks given as input")]),e._v(" "),a("li",[a("code",[e._v("Scale.ticks")]),e._v(" now contains objects instead of strings")]),e._v(" "),a("li",[e._v("When the "),a("code",[e._v("autoSkip")]),e._v(" option is enabled, "),a("code",[e._v("Scale.ticks")]),e._v(" now contains only the non-skipped ticks instead of all ticks.")]),e._v(" "),a("li",[e._v("Ticks are now always generated in monotonically increasing order")])]),e._v(" "),a("h5",{attrs:{id:"changed-in-time-scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-time-scale"}},[e._v("#")]),e._v(" Changed in Time Scale")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("getValueForPixel")]),e._v(" now returns milliseconds since the epoch")])]),e._v(" "),a("h4",{attrs:{id:"changed-in-controllers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-controllers"}},[e._v("#")]),e._v(" Changed in Controllers")]),e._v(" "),a("h5",{attrs:{id:"core-controller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#core-controller"}},[e._v("#")]),e._v(" Core Controller")]),e._v(" "),a("ul",[a("li",[e._v("The first parameter to "),a("code",[e._v("updateHoverStyle")]),e._v(" is now an array of objects containing the "),a("code",[e._v("element")]),e._v(", "),a("code",[e._v("datasetIndex")]),e._v(", and "),a("code",[e._v("index")])]),e._v(" "),a("li",[e._v("The signature or "),a("code",[e._v("resize")]),e._v(" changed, the first "),a("code",[e._v("silent")]),e._v(" parameter was removed.")])]),e._v(" "),a("h5",{attrs:{id:"dataset-controllers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dataset-controllers"}},[e._v("#")]),e._v(" Dataset Controllers")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("updateElement")]),e._v(" was replaced with "),a("code",[e._v("updateElements")]),e._v(" now taking the elements to update, the "),a("code",[e._v("start")]),e._v(" index, "),a("code",[e._v("count")]),e._v(", and "),a("code",[e._v("mode")])]),e._v(" "),a("li",[a("code",[e._v("setHoverStyle")]),e._v(" and "),a("code",[e._v("removeHoverStyle")]),e._v(" now additionally take the "),a("code",[e._v("datasetIndex")]),e._v(" and "),a("code",[e._v("index")])])]),e._v(" "),a("h4",{attrs:{id:"changed-in-interactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-interactions"}},[e._v("#")]),e._v(" Changed in Interactions")]),e._v(" "),a("ul",[a("li",[e._v("Interaction mode methods now return an array of objects containing the "),a("code",[e._v("element")]),e._v(", "),a("code",[e._v("datasetIndex")]),e._v(", and "),a("code",[e._v("index")])])]),e._v(" "),a("h4",{attrs:{id:"changed-in-layout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-layout"}},[e._v("#")]),e._v(" Changed in Layout")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("ILayoutItem.update")]),e._v(" no longer has a return value")])]),e._v(" "),a("h4",{attrs:{id:"changed-in-helpers"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-helpers"}},[e._v("#")]),e._v(" Changed in Helpers")]),e._v(" "),a("p",[e._v("All helpers are now exposed in a flat hierarchy, e.g., "),a("code",[e._v("Chart.helpers.canvas.clipArea")]),e._v(" -> "),a("code",[e._v("Chart.helpers.clipArea")])]),e._v(" "),a("h5",{attrs:{id:"canvas-helper"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#canvas-helper"}},[e._v("#")]),e._v(" Canvas Helper")]),e._v(" "),a("ul",[a("li",[e._v("The second parameter to "),a("code",[e._v("drawPoint")]),e._v(" is now the full options object, so "),a("code",[e._v("style")]),e._v(", "),a("code",[e._v("rotation")]),e._v(", and "),a("code",[e._v("radius")]),e._v(" are no longer passed explicitly")]),e._v(" "),a("li",[a("code",[e._v("helpers.getMaximumHeight")]),e._v(" was replaced by "),a("code",[e._v("helpers.dom.getMaximumSize")])]),e._v(" "),a("li",[a("code",[e._v("helpers.getMaximumWidth")]),e._v(" was replaced by "),a("code",[e._v("helpers.dom.getMaximumSize")])]),e._v(" "),a("li",[a("code",[e._v("helpers.clear")]),e._v(" was renamed to "),a("code",[e._v("helpers.clearCanvas")]),e._v(" and now takes "),a("code",[e._v("canvas")]),e._v(" and optionally "),a("code",[e._v("ctx")]),e._v(" as parameter(s).")]),e._v(" "),a("li",[a("code",[e._v("helpers.retinaScale")]),e._v(" accepts optional third parameter "),a("code",[e._v("forceStyle")]),e._v(", which forces overriding current canvas style. "),a("code",[e._v("forceRatio")]),e._v(" no longer falls back to "),a("code",[e._v("window.devicePixelRatio")]),e._v(", instead it defaults to "),a("code",[e._v("1")]),e._v(".")])]),e._v(" "),a("h4",{attrs:{id:"changed-in-platform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-platform"}},[e._v("#")]),e._v(" Changed in Platform")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("Chart.platform")]),e._v(" is no longer the platform object used by Graficas. Every chart instance now has a separate platform instance.")]),e._v(" "),a("li",[a("code",[e._v("Chart.platFormularios")]),e._v(" is an object that contains two usable platform classes, "),a("code",[e._v("BasicPlatform")]),e._v(" and "),a("code",[e._v("DomPlatform")]),e._v(". It also contains "),a("code",[e._v("BasePlatform")]),e._v(", a class that all platFormularios must extend from.")]),e._v(" "),a("li",[e._v("If the canvas passed in is an instance of "),a("code",[e._v("OffscreenCanvas")]),e._v(", the "),a("code",[e._v("BasicPlatform")]),e._v(" is automatically used.")]),e._v(" "),a("li",[a("code",[e._v("isAttached")]),e._v(" method was added to platform.")])]),e._v(" "),a("h4",{attrs:{id:"changed-in-iplugin-interface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#changed-in-iplugin-interface"}},[e._v("#")]),e._v(" Changed in IPlugin interface")]),e._v(" "),a("ul",[a("li",[e._v("All plugin hooks have unified signature with 3 arguments: "),a("code",[e._v("chart")]),e._v(", "),a("code",[e._v("args")]),e._v(" and "),a("code",[e._v("options")]),e._v(". This means change in signature for these hooks: "),a("code",[e._v("beforeInit")]),e._v(", "),a("code",[e._v("afterInit")]),e._v(", "),a("code",[e._v("reset")]),e._v(", "),a("code",[e._v("beforeLayout")]),e._v(", "),a("code",[e._v("afterLayout")]),e._v(", "),a("code",[e._v("beforeRender")]),e._v(", "),a("code",[e._v("afterRender")]),e._v(", "),a("code",[e._v("beforeDraw")]),e._v(", "),a("code",[e._v("afterDraw")]),e._v(", "),a("code",[e._v("beforeDatasetsDraw")]),e._v(", "),a("code",[e._v("afterDatasetsDraw")]),e._v(", "),a("code",[e._v("beforeEvent")]),e._v(", "),a("code",[e._v("afterEvent")]),e._v(", "),a("code",[e._v("resize")]),e._v(", "),a("code",[e._v("destroy")]),e._v(".")]),e._v(" "),a("li",[a("code",[e._v("afterDatasetsUpdate")]),e._v(", "),a("code",[e._v("afterUpdate")]),e._v(", "),a("code",[e._v("beforeDatasetsUpdate")]),e._v(", and "),a("code",[e._v("beforeUpdate")]),e._v(" now receive "),a("code",[e._v("args")]),e._v(" object as second argument. "),a("code",[e._v("options")]),e._v(" argument is always the last and thus was moved from 2nd to 3rd place.")]),e._v(" "),a("li",[a("code",[e._v("afterEvent")]),e._v(" and "),a("code",[e._v("beforeEvent")]),e._v(" now receive a wrapped "),a("code",[e._v("event")]),e._v(" as the "),a("code",[e._v("event")]),e._v(" property of the second argument. The native event is available via "),a("code",[e._v("args.event.native")]),e._v(".")]),e._v(" "),a("li",[e._v("Initial "),a("code",[e._v("resize")]),e._v(" is no longer silent. Meaning that "),a("code",[e._v("resize")]),e._v(" event can fire between "),a("code",[e._v("beforeInit")]),e._v(" and "),a("code",[e._v("afterInit")])]),e._v(" "),a("li",[e._v("New hooks: "),a("code",[e._v("install")]),e._v(", "),a("code",[e._v("start")]),e._v(", "),a("code",[e._v("stop")]),e._v(", and "),a("code",[e._v("uninstall")])]),e._v(" "),a("li",[a("code",[e._v("afterEvent")]),e._v(" should notify about changes that need a render by setting "),a("code",[e._v("args.changed")]),e._v(" to true. Because the "),a("code",[e._v("args")]),e._v(" are shared with all plugins, it should only be set to true and not false.")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/184.15b21065.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/184.15b21065.js new file mode 100644 index 0000000..c7c3748 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/184.15b21065.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[184],{514:function(t,a,s){"use strict";s.r(a);var n=s(6),r=Object(n.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"chart-js"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#chart-js"}},[t._v("#")]),t._v(" Chart.js")]),t._v(" "),s("p",[s("a",{attrs:{href:"https://chartjs-slack.herokuapp.com/",target:"_blank",rel:"noopener noreferrer"}},[s("img",{attrs:{src:"https://img.shields.io/badge/slack-chartjs-blue.svg?style=flat-square&maxAge=3600",alt:"slack"}}),s("OutboundLink")],1)]),t._v(" "),s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),s("p",[t._v("You can get the latest version of Chart.js from "),s("a",{attrs:{href:"https://npmjs.com/package/chart.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("npm"),s("OutboundLink")],1),t._v(", the "),s("a",{attrs:{href:"https://github.com/chartjs/Chart.js/releases/latest",target:"_blank",rel:"noopener noreferrer"}},[t._v("GitHub releases"),s("OutboundLink")],1),t._v(", or use a "),s("a",{attrs:{href:"https://www.jsdelivr.com/package/npm/chart.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chart.js CDN"),s("OutboundLink")],1),t._v(". Detailed installation instructions can be found on the "),s("RouterLink",{attrs:{to:"/getting-started/installation.html"}},[t._v("installation")]),t._v(" page.")],1),t._v(" "),s("p",[t._v("If you're using a front-end framework (e.g., React, Angular, or Vue), please check "),s("a",{attrs:{href:"https://github.com/chartjs/awesome#integrations",target:"_blank",rel:"noopener noreferrer"}},[t._v("available integrations"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"creating-a-chart"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-chart"}},[t._v("#")]),t._v(" Creating a Chart")]),t._v(" "),s("p",[t._v("It's easy to get started with Chart.js. All that's required is the script included in your page along with a single "),s("code",[t._v("")]),t._v(" node to render the chart.")]),t._v(" "),s("p",[t._v("In this example, we create a bar chart for a single dataset and render that in our page. You can see all the ways to use Chart.js in the "),s("RouterLink",{attrs:{to:"/getting-started/usage.html"}},[t._v("usage documentation")]),t._v(".")],1),t._v(" "),s("div",{staticClass:"language-html extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("myChart"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("width")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("height")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("400"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}},[s("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ctx "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'myChart'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getContext")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'2d'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" myChart "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bar'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("labels")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Red'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Blue'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Yellow'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Green'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Purple'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Orange'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("datasets")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("label")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'# of Votes'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("backgroundColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 99, 132, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(54, 162, 235, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 206, 86, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(75, 192, 192, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(153, 102, 255, 0.2)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 159, 64, 0.2)'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderColor")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 99, 132, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(54, 162, 235, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 206, 86, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(75, 192, 192, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(153, 102, 255, 1)'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgba(255, 159, 64, 1)'")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("borderWidth")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("scales")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("beginAtZero")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("h2",{attrs:{id:"contributing"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[t._v("#")]),t._v(" Contributing")]),t._v(" "),s("p",[t._v("Before submitting an issue or a pull request to the project, please take a moment to look over the "),s("RouterLink",{attrs:{to:"/developers/contributing.html"}},[t._v("contributing guidelines")]),t._v(" first.")],1),t._v(" "),s("p",[t._v("For support using Chart.js, please post questions with the "),s("a",{attrs:{href:"https://stackoverflow.com/questions/tagged/chart.js",target:"_blank",rel:"noopener noreferrer"}},[s("code",[t._v("chart.js")]),t._v(" tag on Stack Overflow"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("h2",{attrs:{id:"license"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#license"}},[t._v("#")]),t._v(" License")]),t._v(" "),s("p",[t._v("Chart.js is available under the "),s("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/master/LICENSE.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("MIT license"),s("OutboundLink")],1),t._v(".")]),t._v(" "),s("p",[t._v("Documentation is copyright © 2014-"+t._s((new Date).getFullYear())+" Chart.js contributors.")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/185.894ea40b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/185.894ea40b.js new file mode 100644 index 0000000..9e69e6b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/185.894ea40b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[185],{515:function(n,t,a){"use strict";a.r(t);var i=a(6),e=Object(i.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"data-decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data-decimation"}},[n._v("#")]),n._v(" Data Decimation")]),n._v(" "),a("p",[n._v("This example shows how to use the built-in data decimation to reduce the number of points drawn on the graph for improved performance.")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'No decimation (default)',\n handler(chart) {\n chart.options.plugins.decimation.enabled = false;\n chart.update();\n }\n },\n {\n name: 'min-max decimation',\n handler(chart) {\n chart.options.plugins.decimation.algorithm = 'min-max';\n chart.options.plugins.decimation.enabled = true;\n chart.update();\n },\n },\n {\n name: 'LTTB decimation (50 samples)',\n handler(chart) {\n chart.options.plugins.decimation.algorithm = 'lttb';\n chart.options.plugins.decimation.enabled = true;\n chart.options.plugins.decimation.samples = 50;\n chart.update();\n }\n },\n {\n name: 'LTTB decimation (500 samples)',\n handler(chart) {\n chart.options.plugins.decimation.algorithm = 'lttb';\n chart.options.plugins.decimation.enabled = true;\n chart.options.plugins.decimation.samples = 500;\n chart.update();\n }\n }\n];\n// \n\n// \nconst NUM_POINTS = 100000;\nUtils.srand(10);\n\n// parseISODate returns a luxon date object to work with in the samples\n// We will create points every 30s starting from this point in time\nconst start = Utils.parseISODate('2021-04-01T00:00:00Z').toMillis();\nconst pointData = [];\n\nfor (let i = 0; i < NUM_POINTS; ++i) {\n // Most data will be in the range [0, 20) but some rare data will be in the range [0, 100)\n const max = Math.random() < 0.001 ? 100 : 20;\n pointData.push({x: start + (i * 30000), y: Utils.rand(0, max)});\n}\n\nconst data = {\n datasets: [{\n borderColor: Utils.CHART_COLORS.red,\n borderWidth: 1,\n data: pointData,\n label: 'Large Dataset',\n radius: 0,\n }]\n};\n// \n\n// \nconst decimation = {\n enabled: false,\n algorithm: 'min-max',\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n // Turn off animations and data parsing for performance\n animation: false,\n parsing: false,\n\n interaction: {\n mode: 'nearest',\n axis: 'x',\n intersect: false\n },\n plugins: {\n decimation: decimation,\n },\n scales: {\n x: {\n type: 'time',\n ticks: {\n source: 'auto',\n // Disabled rotation for performance\n maxRotation: 0,\n autoSkip: true,\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/decimation.html"}},[n._v("Data Decimation")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[n._v("Time Scale")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/186.f6394459.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/186.f6394459.js new file mode 100644 index 0000000..86fc847 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/186.f6394459.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[186],{516:function(t,s,a){"use strict";a.r(s);var n=a(6),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"derived-axis-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#derived-axis-type"}},[t._v("#")]),t._v(" Derived Axis Type")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 12;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 1000};\nconst labels = Utils.months({count: DATA_COUNT});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'My First dataset',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n fill: false,\n }\n ],\n};\n// \n\n// \nconst config = {\n type: 'line',\n data,\n options: {\n responsive: true,\n scales: {\n x: {\n display: true,\n },\n y: {\n display: true,\n type: 'log2',\n }\n }\n }\n};\n\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"log2-axis-implementation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#log2-axis-implementation"}},[t._v("#")]),t._v(" Log2 axis implementation")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Scale"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" LinearScale"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Log2Axis")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Scale")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("constructor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("cfg")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_startValue "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("undefined")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_valueRange "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("raw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("LinearScale")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("prototype"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parse")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apply")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("raw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("isFinite")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("&&")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("determineDataLimits")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getMinMax")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("isFinite")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("max")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("isFinite")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("max")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("buildTicks")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ticks "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" power "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("floor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" maxPower "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ceil")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("while")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("power "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),t._v(" maxPower"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" power"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n power "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" ticks"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/**\n * @protected\n */")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("configure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" start "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("configure")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_startValue "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("start"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_valueRange "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("start"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getPixelForValue")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("undefined")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getPixelForDecimal")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_startValue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_valueRange"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getValueForPixel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("pixel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" decimal "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getDecimalForPixel")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("pixel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_startValue "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" decimal "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_valueRange"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nLog2Axis"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'log2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nLog2Axis"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// The derived axis is Registroed like this:")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Chart.Registro(Log2Axis);")]),t._v("\n")])])]),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/developers/axes.html"}},[t._v("New Axes")])],1)])],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/187.7bd9b3fe.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/187.7bd9b3fe.js new file mode 100644 index 0000000..01b1b09 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/187.7bd9b3fe.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[187],{517:function(t,s,a){"use strict";a.r(s);var n=a(6),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"derived-chart-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#derived-chart-type"}},[t._v("#")]),t._v(" Derived Chart Type")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100, rmin: 1, rmax: 20};\nconst data = {\n datasets: [\n {\n label: 'My First dataset',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n borderColor: Utils.CHART_COLORS.blue,\n borderWidth: 1,\n boxStrokeStyle: 'red',\n data: Utils.bubbles(NUMBER_CFG)\n }\n ],\n};\n// \n\n// \nconst config = {\n type: 'derivedBubble',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Derived Chart Type'\n },\n }\n }\n};\n\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"derivedbubble-implementation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#derivedbubble-implementation"}},[t._v("#")]),t._v(" DerivedBubble Implementation")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" BubbleController"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chart.js'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Custom")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("BubbleController")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Call bubble controller method to draw all the points")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("draw")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("arguments"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Now we can do some custom drawing for this dataset.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Here we'll draw a box around the first point in each dataset,")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// using `boxStrokeStyle` dataset option for color")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" meta "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getMeta")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" pt0 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" meta"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pt0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getProps")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'x'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'y'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" pt0"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" ctx "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("strokeStyle "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("options"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("boxStrokeStyle"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lineWidth "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("strokeRect")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" radius"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("restore")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\nCustom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("id "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'derivedBubble'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\nCustom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("defaults "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Custom defaults. Bubble defaults are inherited.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("boxStrokeStyle")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'red'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Overrides are only inherited, but not merged if defined")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Custom.overrides = Chart.overrides.bubble;")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Stores the controller so that the chart initialization routine can look it up")]),t._v("\nChart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Custom"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bubble.html"}},[t._v("Bubble Chart")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/developers/Graficas.html"}},[t._v("New Graficas")])],1)])],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/188.3baa9bcd.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/188.3baa9bcd.js new file mode 100644 index 0000000..2c5c5b8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/188.3baa9bcd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[188],{518:function(t,n,a){"use strict";a.r(n);var e=a(6),r=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"linear-gradient"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-gradient"}},[t._v("#")]),t._v(" Linear Gradient")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nlet width, height, gradient;\nfunction getGradient(ctx, chartArea) {\n const chartWidth = chartArea.right - chartArea.left;\n const chartHeight = chartArea.bottom - chartArea.top;\n if (!gradient || width !== chartWidth || height !== chartHeight) {\n // Create the gradient because this is either the first render\n // or the size of the chart has changed\n width = chartWidth;\n height = chartHeight;\n gradient = ctx.createLinearGradient(0, chartArea.bottom, 0, chartArea.top);\n gradient.addColorStop(0, Utils.CHART_COLORS.blue);\n gradient.addColorStop(0.5, Utils.CHART_COLORS.yellow);\n gradient.addColorStop(1, Utils.CHART_COLORS.red);\n }\n\n return gradient;\n}\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst labels = Utils.months({count: 7});\n\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: function(context) {\n const chart = context.chart;\n const {ctx, chartArea} = chart;\n\n if (!chartArea) {\n // This case happens on initial chart load\n return;\n }\n return getGradient(ctx, chartArea);\n },\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/colors.html"}},[t._v("Colors")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/colors.html#patterns-and-gradients"}},[t._v("Patterns and Gradients")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1)])],1)}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/189.18e63b11.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/189.18e63b11.js new file mode 100644 index 0000000..78f13de --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/189.18e63b11.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[189],{519:function(t,n,e){"use strict";e.r(n);var o=e(6),r=Object(o.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"programmatic-event-triggers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#programmatic-event-triggers"}},[t._v("#")]),t._v(" Programmatic Event Triggers")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nfunction triggerHover(chart) {\n if (chart.getActiveElements().length > 0) {\n chart.setActiveElements([]);\n } else {\n chart.setActiveElements([\n {\n datasetIndex: 0,\n index: 0,\n }, {\n datasetIndex: 1,\n index: 0,\n }\n ]);\n }\n chart.update();\n}\n// \n\n// \nfunction triggerTooltip(chart) {\n const tooltip = chart.tooltip;\n if (tooltip.getActiveElements().length > 0) {\n tooltip.setActiveElements([], {x: 0, y: 0});\n } else {\n const chartArea = chart.chartArea;\n tooltip.setActiveElements([\n {\n datasetIndex: 0,\n index: 2,\n }, {\n datasetIndex: 1,\n index: 2,\n }\n ],\n {\n x: (chartArea.left + chartArea.right) / 2,\n y: (chartArea.top + chartArea.bottom) / 2,\n });\n }\n\n chart.update();\n}\n// \n\n// \nconst actions = [\n {\n name: 'Trigger Hover',\n handler: triggerHover\n },\n {\n name: 'Trigger Tooltip',\n handler: triggerTooltip\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n hoverBorderWidth: 5,\n hoverBorderColor: 'green',\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n hoverBorderWidth: 5,\n hoverBorderColor: 'green',\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"api"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#api"}},[t._v("#")]),t._v(" API")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[t._v("Chart")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/classes/Chart.html#setactiveelements"}},[e("code",[t._v("setActiveElements")])])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[t._v("TooltipModel")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html#setactiveelements"}},[e("code",[t._v("setActiveElements")])])],1)])],1)]),t._v(" "),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/bar.html#interactions"}},[t._v("Interactions ("),e("code",[t._v("hoverBorderColor")]),t._v(")")])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/interactions.html"}},[t._v("Interactions")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip")])],1)])],1)}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/19.13bdd658.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/19.13bdd658.js new file mode 100644 index 0000000..e8e7156 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/19.13bdd658.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{350:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"enumeration-decimationalgorithm"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enumeration-decimationalgorithm"}},[t._v("#")]),t._v(" Enumeration: DecimationAlgorithm")]),t._v(" "),a("h2",{attrs:{id:"enumeration-members"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enumeration-members"}},[t._v("#")]),t._v(" Enumeration members")]),t._v(" "),a("h3",{attrs:{id:"lttb"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#lttb"}},[t._v("#")]),t._v(" lttb")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("lttb")]),t._v(" = "),a("code",[t._v('"lttb"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2113",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2113"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"minmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#minmax"}},[t._v("#")]),t._v(" minmax")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("minmax")]),t._v(" = "),a("code",[t._v('"min-max"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2114",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2114"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/190.b7ffb54a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/190.b7ffb54a.js new file mode 100644 index 0000000..0e05b2b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/190.b7ffb54a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[190],{520:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"animation-progress-bar"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animation-progress-bar"}},[t._v("#")]),t._v(" Animation Progress Bar")]),t._v(" "),a("h2",{attrs:{id:"initial-animation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initial-animation"}},[t._v("#")]),t._v(" Initial animation")]),t._v(" "),a("p",[a("progress",{staticStyle:{width:"100%"},attrs:{id:"initialProgress",max:"1",value:"0"}})]),t._v(" "),a("h2",{attrs:{id:"other-animations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-animations"}},[t._v("#")]),t._v(" Other animations")]),t._v(" "),a("p",[a("progress",{staticStyle:{width:"100%"},attrs:{id:"animationProgress",max:"1",value:"0"}})]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst initProgress = document.getElementById('initialProgress');\nconst progress = document.getElementById('animationProgress');\n\nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n animation: {\n duration: 2000,\n onProgress: function(context) {\n if (context.initial) {\n initProgress.value = context.currentStep / context.numSteps;\n } else {\n progress.value = context.currentStep / context.numSteps;\n }\n },\n onComplete: function(context) {\n if (context.initial) {\n console.log('Initial animation finished');\n } else {\n console.log('animation finished');\n }\n }\n },\n interaction: {\n mode: 'nearest',\n axis: 'x',\n intersect: false\n },\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart - Animation Progress Bar'\n }\n },\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n output: 'console.log output is displayed here'\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation-callbacks"}},[t._v("Animation Callbacks")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/191.13061aba.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/191.13061aba.js new file mode 100644 index 0000000..333266e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/191.13061aba.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[191],{521:function(t,n,a){"use strict";a.r(n);var e=a(6),r=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"radial-gradient"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radial-gradient"}},[t._v("#")]),t._v(" Radial Gradient")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 5;\nUtils.srand(110);\n\nconst chartColors = Utils.CHART_COLORS;\nconst colors = [chartColors.red, chartColors.orange, chartColors.yellow, chartColors.green, chartColors.blue];\n\nconst cache = new Map();\nlet width = null;\nlet height = null;\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction createRadialGradient3(context, c1, c2, c3) {\n const chartArea = context.chart.chartArea;\n if (!chartArea) {\n // This case happens on initial chart load\n return;\n }\n\n const chartWidth = chartArea.right - chartArea.left;\n const chartHeight = chartArea.bottom - chartArea.top;\n if (width !== chartWidth || height !== chartHeight) {\n cache.clear();\n }\n let gradient = cache.get(c1 + c2 + c3);\n if (!gradient) {\n // Create the gradient because this is either the first render\n // or the size of the chart has changed\n width = chartWidth;\n height = chartHeight;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const r = Math.min(\n (chartArea.right - chartArea.left) / 2,\n (chartArea.bottom - chartArea.top) / 2\n );\n const ctx = context.chart.ctx;\n gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, r);\n gradient.addColorStop(0, c1);\n gradient.addColorStop(0.5, c2);\n gradient.addColorStop(1, c3);\n cache.set(c1 + c2 + c3, gradient);\n }\n\n return gradient;\n}\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: 0,\n max: 100\n });\n}\n\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [{\n data: generateData()\n }]\n};\n// \n\n// \nconst config = {\n type: 'polarArea',\n data: data,\n options: {\n plugins: {\n legend: false,\n tooltip: false,\n },\n elements: {\n arc: {\n backgroundColor: function(context) {\n let c = colors[context.dataIndex];\n if (!c) {\n return;\n }\n if (context.active) {\n c = helpers.getHoverColor(c);\n }\n const mid = helpers.color(c).desaturate(0.2).darken(0.2).rgbString();\n const start = helpers.color(c).lighten(0.2).rotate(270).rgbString();\n const end = helpers.color(c).lighten(0.1).rgbString();\n return createRadialGradient3(context, start, mid, end);\n },\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/polar.html"}},[t._v("Polar Area Chart")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/polar.html#styling"}},[t._v("Styling")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/192.1bf9bd61.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/192.1bf9bd61.js new file mode 100644 index 0000000..8b346b8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/192.1bf9bd61.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[192],{522:function(t,n,a){"use strict";a.r(n);var e=a(6),o=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"delay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#delay"}},[t._v("#")]),t._v(" Delay")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.blue,\n },\n {\n label: 'Dataset 3',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.green,\n },\n ]\n};\n// \n\n// \nlet delayed;\nconst config = {\n type: 'bar',\n data: data,\n options: {\n animation: {\n onComplete: () => {\n delayed = true;\n },\n delay: (context) => {\n let delay = 0;\n if (context.type === 'data' && context.mode === 'default' && !delayed) {\n delay = context.dataIndex * 300 + context.datasetIndex * 100;\n }\n return delay;\n },\n },\n scales: {\n x: {\n stacked: true,\n },\n y: {\n stacked: true\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation"}},[t._v("animation ("),a("code",[t._v("delay")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation-callbacks"}},[t._v("Animation Callbacks")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html#stacked-bar-chart"}},[t._v("Stacked Bar Chart")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/193.8fa44455.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/193.8fa44455.js new file mode 100644 index 0000000..037cadd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/193.8fa44455.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[193],{523:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"drop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#drop"}},[t._v("#")]),t._v(" Drop")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n animations: {\n y: {\n duration: 2000,\n delay: 500\n }\n },\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n fill: 1,\n tension: 0.5\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n animations: {\n y: {\n easing: 'easeInOutElastic',\n from: (ctx) => {\n if (ctx.type === 'data') {\n if (ctx.mode === 'default' && !ctx.dropped) {\n ctx.dropped = true;\n return 0;\n }\n }\n }\n }\n },\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[t._v("Area")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation"}},[t._v("animation ("),a("code",[t._v("easing")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animations-2"}},[t._v("animations ("),a("code",[t._v("from")]),t._v(")")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[t._v("Line Styling")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("fill")])]),t._v(" "),a("li",[a("code",[t._v("tension")])])])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/194.49c9a3c0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/194.49c9a3c0.js new file mode 100644 index 0000000..faf79d1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/194.49c9a3c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[194],{524:function(t,n,a){"use strict";a.r(n);var o=a(6),e=Object(o.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"loop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#loop"}},[t._v("#")]),t._v(" Loop")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: DATA_COUNT});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n tension: 0.4,\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n tension: 0.2,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n animations: {\n radius: {\n duration: 400,\n easing: 'linear',\n loop: (context) => context.active\n }\n },\n hoverRadius: 12,\n hoverBackgroundColor: 'yellow',\n interaction: {\n mode: 'nearest',\n intersect: false,\n axis: 'x'\n },\n plugins: {\n tooltip: {\n enabled: false\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation"}},[t._v("animation")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("duration")])]),t._v(" "),a("li",[a("code",[t._v("easing")])]),t._v(" "),a("li",[a("strong",[a("code",[t._v("loop")])])])])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#default-animations"}},[t._v("Default animations ("),a("code",[t._v("radius")]),t._v(")")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/elements.html"}},[t._v("Elements")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("Point Configuration")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("hoverRadius")])]),t._v(" "),a("li",[a("code",[t._v("hoverBackgroundColor")])])])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip ("),a("code",[t._v("enabled")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/195.eb1e8802.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/195.eb1e8802.js new file mode 100644 index 0000000..d9045ea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/195.eb1e8802.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[195],{525:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"progressive-line-with-easing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#progressive-line-with-easing"}},[t._v("#")]),t._v(" Progressive Line With Easing")]),t._v(" "),a("chart-editor",{attrs:{code:"\n// \nconst data = [];\nconst data2 = [];\nlet prev = 100;\nlet prev2 = 80;\nfor (let i = 0; i < 1000; i++) {\n prev += 5 - Math.random() * 10;\n data.push({x: i, y: prev});\n prev2 += 5 - Math.random() * 10;\n data2.push({x: i, y: prev2});\n}\n// \n\n// \nlet easing = helpers.easingEffects.easeOutQuad;\nlet restart = false;\nconst totalDuration = 5000;\nconst duration = (ctx) => easing(ctx.index / data.length) * totalDuration / data.length;\nconst delay = (ctx) => easing(ctx.index / data.length) * totalDuration;\nconst previousY = (ctx) => ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\nconst animation = {\n x: {\n type: 'number',\n easing: 'linear',\n duration: duration,\n from: NaN, // the point is initially skipped\n delay(ctx) {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return delay(ctx);\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: duration,\n from: previousY,\n delay(ctx) {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return delay(ctx);\n }\n }\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: {\n datasets: [{\n borderColor: Utils.CHART_COLORS.red,\n borderWidth: 1,\n radius: 0,\n data: data,\n },\n {\n borderColor: Utils.CHART_COLORS.blue,\n borderWidth: 1,\n radius: 0,\n data: data2,\n }]\n },\n options: {\n animation,\n interaction: {\n intersect: false\n },\n plugins: {\n legend: false,\n title: {\n display: true,\n text: () => easing.name\n }\n },\n scales: {\n x: {\n type: 'linear'\n }\n }\n }\n};\n// \n\n// \nfunction restartAnims(chart) {\n chart.stop();\n const meta0 = chart.getDatasetMeta(0);\n const meta1 = chart.getDatasetMeta(1);\n for (let i = 0; i < data.length; i++) {\n const ctx0 = meta0.controller.getContext(i);\n const ctx1 = meta1.controller.getContext(i);\n ctx0.xStarted = ctx0.yStarted = false;\n ctx1.xStarted = ctx1.yStarted = false;\n }\n chart.update();\n}\n\nconst actions = [\n {\n name: 'easeOutQuad',\n handler(chart) {\n easing = helpers.easingEffects.easeOutQuad;\n restartAnims(chart);\n }\n },\n {\n name: 'easeOutCubic',\n handler(chart) {\n easing = helpers.easingEffects.easeOutCubic;\n restartAnims(chart);\n }\n },\n {\n name: 'easeOutQuart',\n handler(chart) {\n easing = helpers.easingEffects.easeOutQuart;\n restartAnims(chart);\n }\n },\n {\n name: 'easeOutQuint',\n handler(chart) {\n easing = helpers.easingEffects.easeOutQuint;\n restartAnims(chart);\n }\n },\n {\n name: 'easeInQuad',\n handler(chart) {\n easing = helpers.easingEffects.easeInQuad;\n restartAnims(chart);\n }\n },\n {\n name: 'easeInCubic',\n handler(chart) {\n easing = helpers.easingEffects.easeInCubic;\n restartAnims(chart);\n }\n },\n {\n name: 'easeInQuart',\n handler(chart) {\n easing = helpers.easingEffects.easeInQuart;\n restartAnims(chart);\n }\n },\n {\n name: 'easeInQuint',\n handler(chart) {\n easing = helpers.easingEffects.easeInQuint;\n restartAnims(chart);\n }\n },\n];\n// \n\nmodule.exports = {\n config,\n actions\n};\n\n"}}),a("h2",{attrs:{id:"api"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api"}},[t._v("#")]),t._v(" Api")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[t._v("Chart")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html#getdatasetmeta"}},[a("code",[t._v("getDatasetMeta")])])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelforvalue"}},[a("code",[t._v("getPixelForValue")])])],1)])],1)]),t._v(" "),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#animation"}},[t._v("animation")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("delay")])]),t._v(" "),a("li",[a("code",[t._v("duration")])]),t._v(" "),a("li",[a("code",[t._v("easing")])]),t._v(" "),a("li",[a("code",[t._v("loop")])])])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/animations.html#easing"}},[t._v("Easing")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#data"}},[t._v("Data Context")])],1)])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/196.9b925823.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/196.9b925823.js new file mode 100644 index 0000000..052aaae --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/196.9b925823.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[196],{526:function(t,n,e){"use strict";e.r(n);var a=e(6),i=Object(a.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"progressive-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#progressive-line"}},[t._v("#")]),t._v(" Progressive Line")]),t._v(" "),e("chart-editor",{attrs:{code:"\n// \nconst data = [];\nconst data2 = [];\nlet prev = 100;\nlet prev2 = 80;\nfor (let i = 0; i < 1000; i++) {\n prev += 5 - Math.random() * 10;\n data.push({x: i, y: prev});\n prev2 += 5 - Math.random() * 10;\n data2.push({x: i, y: prev2});\n}\n// \n\n// \nconst totalDuration = 10000;\nconst delayBetweenPoints = totalDuration / data.length;\nconst previousY = (ctx) => ctx.index === 0 ? ctx.chart.scales.y.getPixelForValue(100) : ctx.chart.getDatasetMeta(ctx.datasetIndex).data[ctx.index - 1].getProps(['y'], true).y;\nconst animation = {\n x: {\n type: 'number',\n easing: 'linear',\n duration: delayBetweenPoints,\n from: NaN, // the point is initially skipped\n delay(ctx) {\n if (ctx.type !== 'data' || ctx.xStarted) {\n return 0;\n }\n ctx.xStarted = true;\n return ctx.index * delayBetweenPoints;\n }\n },\n y: {\n type: 'number',\n easing: 'linear',\n duration: delayBetweenPoints,\n from: previousY,\n delay(ctx) {\n if (ctx.type !== 'data' || ctx.yStarted) {\n return 0;\n }\n ctx.yStarted = true;\n return ctx.index * delayBetweenPoints;\n }\n }\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: {\n datasets: [{\n borderColor: Utils.CHART_COLORS.red,\n borderWidth: 1,\n radius: 0,\n data: data,\n },\n {\n borderColor: Utils.CHART_COLORS.blue,\n borderWidth: 1,\n radius: 0,\n data: data2,\n }]\n },\n options: {\n animation,\n interaction: {\n intersect: false\n },\n plugins: {\n legend: false\n },\n scales: {\n x: {\n type: 'linear'\n }\n }\n }\n};\n// \n\nmodule.exports = {\n config\n};\n\n"}}),e("h2",{attrs:{id:"api"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#api"}},[t._v("#")]),t._v(" Api")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[t._v("Chart")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/classes/Chart.html#getdatasetmeta"}},[e("code",[t._v("getDatasetMeta")])])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/api/classes/Scale.html#getpixelforvalue"}},[e("code",[t._v("getPixelForValue")])])],1)])],1)]),t._v(" "),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/configuration/animations.html"}},[t._v("Animations")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/configuration/animations.html#animation"}},[t._v("animation")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("delay")])]),t._v(" "),e("li",[e("code",[t._v("duration")])]),t._v(" "),e("li",[e("code",[t._v("easing")])]),t._v(" "),e("li",[e("code",[t._v("loop")])])])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#data"}},[t._v("Data Context")])],1)])],1)])],1)])],1)}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/197.adca6c8c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/197.adca6c8c.js new file mode 100644 index 0000000..3f678df --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/197.adca6c8c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[197],{527:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart-boundaries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart-boundaries"}},[n._v("#")]),n._v(" Line Chart Boundaries")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst inputs = {\n min: -100,\n max: 100,\n count: 8,\n decimals: 2,\n continuity: 1\n};\n\nconst generateLabels = () => {\n return Utils.months({count: inputs.count});\n};\n\nconst generateData = () => (Utils.numbers(inputs));\n// \n\n// \nconst data = {\n labels: generateLabels(),\n datasets: [\n {\n label: 'Dataset',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),\n fill: false\n }\n ]\n};\n// \n\n// \nlet smooth = false;\n\nconst actions = [\n {\n name: 'Fill: false (default)',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.fill = false;\n });\n chart.update();\n }\n },\n {\n name: 'Fill: origin',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.fill = 'origin';\n });\n chart.update();\n }\n },\n {\n name: 'Fill: start',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.fill = 'start';\n });\n chart.update();\n }\n },\n {\n name: 'Fill: end',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.fill = 'end';\n });\n chart.update();\n }\n },\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n {\n name: 'Smooth',\n handler(chart) {\n smooth = !smooth;\n chart.options.elements.line.tension = smooth ? 0.4 : 0;\n chart.update();\n }\n }\n];\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n filler: {\n propagate: false,\n },\n title: {\n display: true,\n text: (ctx) => 'Fill: ' + ctx.chart.data.datasets[0].fill\n }\n },\n interaction: {\n intersect: false,\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[n._v("Area")]),n._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"../../Graficas/area.htmll#filling-modes"}},[n._v("Filling modes")]),n._v(" "),a("ul",[a("li",[n._v("Boundary: "),a("code",[n._v("'start'")]),n._v(", "),a("code",[n._v("'end'")]),n._v(", "),a("code",[n._v("'origin'")])])])])])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/198.2ae0961a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/198.2ae0961a.js new file mode 100644 index 0000000..697c9ed --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/198.2ae0961a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[198],{528:function(n,t,a){"use strict";a.r(t);var e=a(6),r=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart-datasets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart-datasets"}},[n._v("#")]),n._v(" Line Chart Datasets")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst inputs = {\n min: 20,\n max: 80,\n count: 8,\n decimals: 2,\n continuity: 1\n};\n\nconst generateLabels = () => {\n return Utils.months({count: inputs.count});\n};\n\nconst generateData = () => (Utils.numbers(inputs));\n\nUtils.srand(42);\n// \n\n// \nconst data = {\n labels: generateLabels(),\n datasets: [\n {\n label: 'D0',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),\n hidden: true\n },\n {\n label: 'D1',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.orange,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange),\n fill: '-1'\n },\n {\n label: 'D2',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.yellow,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.yellow),\n hidden: true,\n fill: 1\n },\n {\n label: 'D3',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.green,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green),\n fill: '-1'\n },\n {\n label: 'D4',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue),\n fill: '-1'\n },\n {\n label: 'D5',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.grey,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.grey),\n fill: '+2'\n },\n {\n label: 'D6',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.purple,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.purple),\n fill: false\n },\n {\n label: 'D7',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),\n fill: 8\n },\n {\n label: 'D8',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.orange,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange),\n fill: 'end',\n hidden: true\n },\n {\n label: 'D9',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.yellow,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.yellow),\n fill: {above: 'blue', below: 'red', target: {value: 350}}\n }\n ]\n};\n// \n\n// \nlet smooth = false;\nlet propagate = false;\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n {\n name: 'Propagate',\n handler(chart) {\n propagate = !propagate;\n chart.options.plugins.filler.propagate = propagate;\n chart.update();\n }\n },\n {\n name: 'Smooth',\n handler(chart) {\n smooth = !smooth;\n chart.options.elements.line.tension = smooth ? 0.4 : 0;\n chart.update();\n }\n }\n];\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n scales: {\n y: {\n stacked: true\n }\n },\n plugins: {\n filler: {\n propagate: false\n },\n 'samples-filler-analyser': {\n target: 'chart-analyser'\n }\n },\n interaction: {\n intersect: false,\n },\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("div",{staticClass:"analyser",attrs:{id:"chart-analyser"}}),n._v(" "),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[n._v("Area")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html#filling-modes"}},[n._v("Filling modes")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/"}},[n._v("Axes scales")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[n._v("Common options to all axes ("),a("code",[n._v("stacked")]),n._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/199.cd9dca80.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/199.cd9dca80.js new file mode 100644 index 0000000..e0a20f8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/199.cd9dca80.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[199],{529:function(n,t,a){"use strict";a.r(t);var e=a(6),r=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart-drawtime"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart-drawtime"}},[n._v("#")]),n._v(" Line Chart drawTime")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst inputs = {\n min: -100,\n max: 100,\n count: 8,\n decimals: 2,\n continuity: 1\n};\n\nconst generateLabels = () => {\n return Utils.months({count: inputs.count});\n};\n\nUtils.srand(3);\nconst generateData = () => (Utils.numbers(inputs));\n// \n\n// \nconst data = {\n labels: generateLabels(),\n datasets: [\n {\n label: 'Dataset 1',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n fill: true\n },\n {\n label: 'Dataset 2',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue),\n fill: true\n }\n ]\n};\n// \n\n// \nlet smooth = false;\n\nconst actions = [\n {\n name: 'drawTime: beforeDatasetDraw (default)',\n handler: (chart) => {\n chart.options.plugins.filler.drawTime = 'beforeDatasetDraw';\n chart.update();\n }\n },\n {\n name: 'drawTime: beforeDatasetsDraw',\n handler: (chart) => {\n chart.options.plugins.filler.drawTime = 'beforeDatasetsDraw';\n chart.update();\n }\n },\n {\n name: 'drawTime: beforeDraw',\n handler: (chart) => {\n chart.options.plugins.filler.drawTime = 'beforeDraw';\n chart.update();\n }\n },\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n {\n name: 'Smooth',\n handler(chart) {\n smooth = !smooth;\n chart.options.elements.line.tension = smooth ? 0.4 : 0;\n chart.update();\n }\n }\n];\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n filler: {\n propagate: false,\n },\n title: {\n display: true,\n text: (ctx) => 'drawTime: ' + ctx.chart.options.plugins.filler.drawTime\n }\n },\n pointBackgroundColor: '#fff',\n radius: 10,\n interaction: {\n intersect: false,\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[n._v("Area")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html#configuration"}},[n._v("Configuration ("),a("code",[n._v("drawTime")]),n._v(")")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[n._v("Line Styling ("),a("code",[n._v("tension")]),n._v(")")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/2.3e2307f3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/2.3e2307f3.js new file mode 100644 index 0000000..1ba8819 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/2.3e2307f3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{277:function(e,r,t){},278:function(e,r,t){},279:function(e,r,t){},280:function(e,r,t){},281:function(e,r,t){},282:function(e,r,t){},283:function(e,r){e.exports=function(e){return null==e}},284:function(e,r,t){},285:function(e,r,t){},286:function(e,r,t){},287:function(e,r,t){},288:function(e,r,t){},289:function(e,r,t){},299:function(e,r,t){"use strict";t.r(r);var a=t(20),s={name:"SidebarGroup",Componentes:{DropdownTransition:t(115).a},props:["item","open","collapsable","depth"],beforeCreate(){this.$options.Componentes.SidebarLinks=t(299).default},methods:{isActive:a.e}},i=(t(313),t(6)),o=Object(i.a)(s,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("section",{staticClass:"sidebar-group",class:[{collapsable:e.collapsable,"is-sub-group":0!==e.depth},"depth-"+e.depth]},[e.item.path?t("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:e.open,active:e.isActive(e.$route,e.item.path)},attrs:{to:e.item.path},nativeOn:{click:function(r){return e.$emit("toggle")}}},[t("span",[e._v(e._s(e.item.title))]),e._v(" "),e.collapsable?t("span",{staticClass:"arrow",class:e.open?"down":"right"}):e._e()]):t("p",{staticClass:"sidebar-heading",class:{open:e.open},on:{click:function(r){return e.$emit("toggle")}}},[t("span",[e._v(e._s(e.item.title))]),e._v(" "),e.collapsable?t("span",{staticClass:"arrow",class:e.open?"down":"right"}):e._e()]),e._v(" "),t("DropdownTransition",[e.open||!e.collapsable?t("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:e.item.children,"sidebar-depth":e.item.sidebarDepth,"initial-open-group-index":e.item.initialOpenGroupIndex,depth:e.depth+1}}):e._e()],1)],1)}),[],!1,null,null,null).exports;function n(e,r,t,a,s){const i={props:{to:r,activeClass:"",exactActiveClass:""},class:{active:a,"sidebar-link":!0}};return s>2&&(i.style={"padding-left":s+"rem"}),e("RouterLink",i,t)}function l(e,r,t,s,i,o=1){return!r||o>i?null:e("ul",{class:"sidebar-sub-headers"},r.map(r=>{const c=Object(a.e)(s,t+"#"+r.slug);return e("li",{class:"sidebar-sub-header"},[n(e,t+"#"+r.slug,r.title,c,r.level-1),l(e,r.children,t,s,i,o+1)])}))}var c={functional:!0,props:["item","sidebarDepth"],render(e,{parent:{$page:r,$site:t,$route:s,$themeConfig:i,$themeLocaleConfig:o},props:{item:c,sidebarDepth:u}}){const p=Object(a.e)(s,c.path),h="auto"===c.type?p||c.children.some(e=>Object(a.e)(s,c.basePath+"#"+e.slug)):p,d="external"===c.type?function(e,r,t){return e("a",{attrs:{href:r,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[t,e("OutboundLink")])}(e,c.path,c.title||c.path):n(e,c.path,c.title||c.path,h),g=[r.frontmatter.sidebarDepth,u,o.sidebarDepth,i.sidebarDepth,1].find(e=>void 0!==e),f=o.displayAllHeaders||i.displayAllHeaders;if("auto"===c.type)return[d,l(e,c.children,c.basePath,s,g)];if((h||f)&&c.headers&&!a.d.test(c.path)){return[d,l(e,Object(a.c)(c.headers),c.path,s,g)]}return d}};t(314);function u(e,r){if("group"===r.type){const t=r.path&&Object(a.e)(e,r.path),s=r.children.some(r=>"group"===r.type?u(e,r):"page"===r.type&&Object(a.e)(e,r.path));return t||s}return!1}var p={name:"SidebarLinks",Componentes:{SidebarGroup:o,SidebarLink:Object(i.a)(c,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route(){this.refreshIndex()}},created(){this.refreshIndex()},methods:{refreshIndex(){const e=function(e,r){for(let t=0;t-1&&(this.openGroupIndex=e)},toggleGroup(e){this.openGroupIndex=e===this.openGroupIndex?-1:e},isActive(e){return Object(a.e)(this.$route,e.regularPath)}}},h=Object(i.a)(p,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return e.items.length?t("ul",{staticClass:"sidebar-links"},e._l(e.items,(function(r,a){return t("li",{key:a},["group"===r.type?t("SidebarGroup",{attrs:{item:r,open:a===e.openGroupIndex,collapsable:r.collapsable||r.collapsible,depth:e.depth},on:{toggle:function(r){return e.toggleGroup(a)}}}):t("SidebarLink",{attrs:{"sidebar-depth":e.sidebarDepth,item:r}})],1)})),0):e._e()}),[],!1,null,null,null);r.default=h.exports},300:function(e,r,t){"use strict";t(277)},301:function(e,r,t){"use strict";t(278)},302:function(e,r,t){"use strict";!function(r,t,a){let s;(s=a.define)&&s.amd?s([],(function(){return t})):(s=a.modules)?s["FlexBuscar".toLowerCase()]=t:e.exports=t}(0,function e(r){function t(e,r){const t=r?r.id:e&&e.id;this.id=t||0===t?t:S++,this.init(e,r),o(this,"index",(function(){return this.a?Object.keys(this.a.index[this.a.keys[0]].c):Object.keys(this.c)})),o(this,"length",(function(){return this.index.length}))}function a(e,r,t,a){return this.u!==this.g&&(this.o=this.o.concat(t),this.u++,a&&this.o.length>=a&&(this.u=this.g),this.u===this.g&&(this.cache&&this.j.set(r,this.o),this.F&&this.F(this.o))),this}function s(e,r){const t=e.length,a=y(r),s=[];for(let i=0,o=0;i=o&&((e=(e=e[n-(s+.5>>0)])[t]||(e[t]=[]))[e.length]=a),s)}function u(e,r){if(e){const t=Object.keys(e);for(let a=0,s=t.length;a(e=e.length-r.length)?1:e?-1:0}function d(e,r){return(e=e[R])<(r=r[R])?-1:e>r?1:0}function g(e,r){const t=R.length;for(let a=0;ar?1:0}function f(e,r,t){return e?{page:e,next:r?""+r:null,result:t}:t}function m(e,r,t,a,s,i,o){let n,l=[];if(!0===t){t="0";var c=""}else c=t&&t.split(":");const u=e.length;if(1o&&(c=0),n=(c=c||0)+r,n=this.m.length&&(this.C=0),this.m[this.C].postMessage({add:!0,id:e,content:r}),this.c[o]=""+this.C,t&&t(),this;if(!i){if(this.async&&"function"!=typeof importScripts){let s=this;return o=new Promise((function(t){setTimeout((function(){s.add(e,r,null,a,!0),s=null,t()}))})),t?(o.then(t),this):o}if(t)return this.add(e,r,null,a,!0),t(),this}if(!(r=this.encode(r)).length)return this;i=y(t=this.f)?t(r):r.split(this.split),this.filter&&(i=s(i,this.filter));const d=x();d._ctx=x();const g=i.length,f=this.threshold,m=this.depth,b=this.b,v=this.i,w=this.D;for(let r=0;rh;t--)c(v,d,p=n.substring(h,t),e,r,u,f,b-1)}break;default:if(l=c(v,d,n,e,1,u,f,b-1),m&&1=f)for(l=d._ctx[n]||(d._ctx[n]=x()),n=this.h[n]||(this.h[n]=D(b-(f||0))),0>(u=r-m)&&(u=0),(p=r+m+1)>g&&(p=g);us;t--)a=i[t-1],i[t]=a,r[a]=t;i[s]=e,r[e]=s}}}return r},e}();return t}(function(){const e={},r="undefined"!=typeof Blob&&"undefined"!=typeof URL&&URL.createObjectURL;return function(t,a,s,i,o){return s=r?URL.createObjectURL(new Blob(["("+s.toString()+")()"],{type:"text/javascript"})):t+".min.js",e[t+="-"+a]||(e[t]=[]),e[t][o]=new Worker(s),e[t][o].onmessage=i,e[t][o]}}()),this)},303:function(e,r,t){t(19),t(9);const a=t(304);function s(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}e.exports.getPageText=e=>{if(!e._strippedContent)return"";const{html:r}=e._context.markdown.render(e._strippedContent);return a.decode(r.replace(/(<[^>]+>)+/g," ").replace(/^\s*#\s/gm,""))},e.exports.highlightText=(e,r)=>{let t=e;if(highlightWords=r.split(" ").filter(e=>e.length>0),highlightWords.length>0)for(const e of highlightWords)t=t.replace(new RegExp(s(e),"ig"),"$&");else t=e.replace(new RegExp(s(r),"ig"),"$&");return t}},304:function(e,r,t){(function(e){var a;/*! https://mths.be/he v1.2.0 by @mathias | MIT license */!function(s){var i=r,o=(e&&e.exports,"object"==typeof global&&global);o.global!==o&&o.window;var n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[\x01-\x7F]/g,c=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,u=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,p={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},g=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,f=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,m=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,b={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},v={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},y={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},w=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],q=String.fromCharCode,D={}.hasOwnProperty,x=function(e,r){return D.call(e,r)},k=function(e,r){if(!e)return r;var t,a={};for(t in r)a[t]=x(e,t)?e[t]:r[t];return a},E=function(e,r){var t="";return e>=55296&&e<=57343||e>1114111?(r&&C("character reference outside the permissible Unicode range"),"�"):x(y,e)?(r&&C("disallowed character reference"),y[e]):(r&&function(e,r){for(var t=-1,a=e.length;++t65535&&(t+=q((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=q(e))},A=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},L=function(e){return"&#"+e+";"},C=function(e){throw Error("Parse error: "+e)},S=function(e,r){(r=k(r,S.options)).strict&&f.test(e)&&C("forbidden code point");var t=r.encodeEverything,a=r.useNamedReferences,s=r.allowUnsafeSymbols,i=r.decimal?L:A,o=function(e){return i(e.charCodeAt(0))};return t?(e=e.replace(l,(function(e){return a&&x(p,e)?"&"+p[e]+";":o(e)})),a&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),a&&(e=e.replace(u,(function(e){return"&"+p[e]+";"})))):a?(s||(e=e.replace(h,(function(e){return"&"+p[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(u,(function(e){return"&"+p[e]+";"}))):s||(e=e.replace(h,o)),e.replace(n,(function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);return i(1024*(r-55296)+t-56320+65536)})).replace(c,o)};S.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var T=function(e,r){var t=(r=k(r,T.options)).strict;return t&&g.test(e)&&C("malformed character reference"),e.replace(m,(function(e,a,s,i,o,n,l,c,u){var p,h,d,g,f,m;return a?b[f=a]:s?(f=s,(m=i)&&r.isAttributeValue?(t&&"="==m&&C("`&` did not start a character reference"),e):(t&&C("named character reference was not terminated by a semicolon"),v[f]+(m||""))):o?(d=o,h=n,t&&!h&&C("character reference was not terminated by a semicolon"),p=parseInt(d,10),E(p,t)):l?(g=l,h=c,t&&!h&&C("character reference was not terminated by a semicolon"),p=parseInt(g,16),E(p,t)):(t&&C("named character reference was not terminated by a semicolon"),e)}))};T.options={isAttributeValue:!1,strict:!1};var B={version:"1.2.0",encode:S,decode:T,escape:function(e){return e.replace(h,(function(e){return d[e]}))},unescape:T};void 0===(a=function(){return B}.call(r,t,r,e))||(e.exports=a)}()}).call(this,t(69)(e))},305:function(e,r,t){"use strict";t(279)},306:function(e,r,t){"use strict";t(280)},307:function(e,r,t){"use strict";t(281)},308:function(e,r,t){"use strict";t(282)},309:function(e,r,t){"use strict";t(284)},310:function(e,r,t){var a=t(26),s=t(12),i=t(21);e.exports=function(e){return"string"==typeof e||!s(e)&&i(e)&&"[object String]"==a(e)}},311:function(e,r,t){"use strict";t(285)},312:function(e,r,t){"use strict";t(286)},313:function(e,r,t){"use strict";t(287)},314:function(e,r,t){"use strict";t(288)},315:function(e,r,t){"use strict";t(289)},335:function(e,r,t){"use strict";t.r(r);var a=t(70),s={name:"Home",Componentes:{NavLink:a.a},computed:{data(){return this.$page.frontmatter},actionLink(){return{link:this.data.actionLink,text:this.data.actionText}}}},i=(t(300),t(6)),o=Object(i.a)(s,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("main",{staticClass:"home",attrs:{"aria-labelledby":null!==e.data.heroText?"main-title":null}},[t("header",{staticClass:"hero"},[e.data.heroImage?t("img",{attrs:{src:e.$withBase(e.data.heroImage),alt:e.data.heroAlt||"hero"}}):e._e(),e._v(" "),null!==e.data.heroText?t("h1",{attrs:{id:"main-title"}},[e._v("\n "+e._s(e.data.heroText||e.$title||"Hello")+"\n ")]):e._e(),e._v(" "),null!==e.data.tagline?t("p",{staticClass:"description"},[e._v("\n "+e._s(e.data.tagline||e.$description||"Welcome to your VuePress site")+"\n ")]):e._e(),e._v(" "),e.data.actionText&&e.data.actionLink?t("p",{staticClass:"action"},[t("NavLink",{staticClass:"action-button",attrs:{item:e.actionLink}})],1):e._e()]),e._v(" "),e.data.features&&e.data.features.length?t("div",{staticClass:"features"},e._l(e.data.features,(function(r,a){return t("div",{key:a,staticClass:"feature"},[t("h2",[e._v(e._s(r.title))]),e._v(" "),t("p",[e._v(e._s(r.details))])])})),0):e._e(),e._v(" "),t("Content",{staticClass:"theme-default-content custom"}),e._v(" "),e.data.footer?t("div",{staticClass:"footer"},[e._v("\n "+e._s(e.data.footer)+"\n ")]):e._e()],1)}),[],!1,null,null,null).exports,n=(t(19),t(122)),l=t.n(n),c=(e,r,t=null)=>{let a=l()(r,"title","");return l()(r,"frontmatter.tags")&&(a+=" "+r.frontmatter.tags.join(" ")),t&&(a+=" "+t),u(e,a)};const u=(e,r)=>{const t=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),a=new RegExp("[^\0-]"),s=e.split(/\s+/g).map(e=>e.trim()).filter(e=>!!e);if(a.test(e))return s.some(e=>r.toLowerCase().indexOf(e)>-1);{const a=e.endsWith(" ");return new RegExp(s.map((e,r)=>s.length!==r+1||a?`(?=.*\\b${t(e)}\\b)`:`(?=.*\\b${t(e)})`).join("")+".+","gi").test(r)}};var p={name:"BuscarBox",data:()=>({query:"",focused:!1,focusIndex:0,placeholder:void 0}),computed:{showSuggestions(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions(){const e=this.query.trim().toLowerCase();if(!e)return;const{pages:r}=this.$site,t=this.$site.themeConfig.BuscarMaxSuggestions||10,a=this.$localePath,s=[];for(let i=0;i=t);i++){const o=r[i];if(this.getPageLocalePath(o)===a&&this.isBuscarable(o))if(c(e,o))s.push(o);else if(o.headers)for(let r=0;r=t);r++){const t=o.headers[r];t.title&&c(e,o,t.title)&&s.push(Object.assign({},o,{path:o.path+"#"+t.slug,header:t}))}}return s},alignRight(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted(){this.placeholder=this.$site.themeConfig.BuscarPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath(e){for(const r in this.$site.locales||{})if("/"!==r&&0===e.path.indexOf(r))return r;return"/"},isBuscarable(e){let r=null;return null===r||(r=Array.isArray(r)?r:new Array(r),r.filter(r=>e.path.match(r)).length>0)},onHotkey(e){e.srcElement===document.body&&"s".includes(e.key)&&(this.$refs.input.focus(),e.preventDefault())},onUp(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown(){this.showSuggestions&&(this.focusIndex "+e._s(r.header.title))]):e._e()])])})),0):e._e()])}),[],!1,null,null,null).exports),d=t(302),g=t.n(d),f=t(303),m={extends:h,data:()=>({index:null}),computed:{suggestions(){const e=this.query.trim().toLowerCase();if(!e)return;return this.index.Buscar(e,10).map(e=>({...e,title:this.getSuggestionTitle(e),text:this.getSuggestionText(e)}))}},mounted(){this.setupFlexBuscar()},methods:{go(e){if(!this.showSuggestions)return;const r=this.suggestions[e].path;this.$route.path!==r&&this.$router.push(this.suggestions[e].path),this.query="",this.focusIndex=0},setupFlexBuscar(){this.index=new g.a({encode:"icase",tokenize:"forward",resolution:9,doc:{id:"key",field:["title","content","headers"]}});const{pages:e}=this.$site;this.index.add(e)},getSuggestionTitle(e){const r=e.title?e.title:e.regularPath;return Object(f.highlightText)(r,this.query)},getSuggestionText(e){const r=e.content,t=r.toLowerCase().indexOf(this.query.toLowerCase()),a=this.query.split(" ")[0];let s=-1===t?r.toLowerCase().indexOf(a.toLowerCase()):t,i="";s>15&&(s-=15,i=".. ");const o=e.content.substr(s,60);return i+Object(f.highlightText)(o,this.query)}}},b=(t(305),Object(i.a)(m,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"Buscar-box"},[t("input",{ref:"input",class:{focused:e.focused},attrs:{"aria-label":"Buscar",placeholder:e.placeholder,autocomplete:"off",spellcheck:"false"},domProps:{value:e.query},on:{input:function(r){e.query=r.target.value},focus:function(r){e.focused=!0},blur:function(r){e.focused=!1},keyup:[function(r){return!r.type.indexOf("key")&&e._k(r.keyCode,"enter",13,r.key,"Enter")?null:e.go(e.focusIndex)},function(r){return!r.type.indexOf("key")&&e._k(r.keyCode,"up",38,r.key,["Up","ArrowUp"])?null:e.onUp.apply(null,arguments)},function(r){return!r.type.indexOf("key")&&e._k(r.keyCode,"down",40,r.key,["Down","ArrowDown"])?null:e.onDown.apply(null,arguments)}]}}),e._v(" "),e.showSuggestions?t("ul",{staticClass:"suggestions",class:{"align-right":e.alignRight},on:{mouseleave:e.unfocus}},e._l(e.suggestions,(function(r,a){return t("li",{key:a,staticClass:"suggestion",class:{focused:a===e.focusIndex},on:{mousedown:function(r){return e.go(a)},mouseenter:function(r){return e.focus(a)}}},[t("a",{attrs:{href:r.regularPath},on:{click:function(e){e.preventDefault()}}},[t("span",{staticClass:"suggestion__title",domProps:{innerHTML:e._s(r.title||r.regularPath)}}),e._v(" "),t("span",{staticClass:"suggestion__result",domProps:{innerHTML:e._s(r.text)}})])])})),0):e._e()])}),[],!1,null,null,null).exports),v=(t(306),Object(i.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"sidebar-button",on:{click:function(r){return e.$emit("toggle-sidebar")}}},[t("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[t("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),y=(t(9),t(114)),w=t(20),q={name:"NavLinks",Componentes:{NavLink:a.a,DropdownLink:y.a},computed:{userNav(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav(){const{locales:e}=this.$site;if(e&&Object.keys(e).length>1){const r=this.$page.path,t=this.$router.options.routes,a=this.$site.themeConfig.locales||{},s={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map(s=>{const i=e[s],o=a[s]&&a[s].label||i.lang;let n;return i.lang===this.$lang?n=r:(n=r.replace(this.$localeConfig.path,s),t.some(e=>e.path===n)||(n=s)),{text:o,link:n}})};return[...this.userNav,s]}return this.userNav},userLinks(){return(this.nav||[]).map(e=>Object.assign(Object(w.j)(e),{items:(e.items||[]).map(w.j)}))},repoLink(){const{repo:e}=this.$site.themeConfig;return e?/^https?:/.test(e)?e:"https://github.com/"+e:null},repoLabel(){if(!this.repoLink)return;if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;const e=this.repoLink.match(/^https?:\/\/[^/]+/)[0],r=["GitHub","GitLab","Bitbucket"];for(let t=0;t({linksWrapMaxWidth:null}),computed:{algolia(){return this.$themeLocaleConfig.algolia||this.$site.themeConfig.algolia||{}},isAlgoliaBuscar(){return this.algolia&&this.algolia.apiKey&&this.algolia.indexName}},mounted(){const e=parseInt(x(this.$el,"paddingLeft"))+parseInt(x(this.$el,"paddingRight")),r=()=>{document.documentElement.clientWidth<719?this.linksWrapMaxWidth=null:this.linksWrapMaxWidth=this.$el.offsetWidth-e-(this.$refs.siteName&&this.$refs.siteName.offsetWidth||0)};r(),window.addEventListener("resize",r,!1)}},E=(t(308),Object(i.a)(k,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("header",{staticClass:"navbar"},[t("SidebarButton",{on:{"toggle-sidebar":function(r){return e.$emit("toggle-sidebar")}}}),e._v(" "),t("RouterLink",{staticClass:"home-link",attrs:{to:e.$localePath}},[e.$site.themeConfig.logo?t("img",{staticClass:"logo",attrs:{src:e.$withBase(e.$site.themeConfig.logo),alt:e.$siteTitle}}):e._e(),e._v(" "),e.$siteTitle?t("span",{ref:"siteName",staticClass:"site-name",class:{"can-hide":e.$site.themeConfig.logo}},[e._v(e._s(e.$siteTitle))]):e._e()]),e._v(" "),t("div",{staticClass:"links",style:e.linksWrapMaxWidth?{"max-width":e.linksWrapMaxWidth+"px"}:{}},[e.isAlgoliaBuscar?t("AlgoliaBuscarBox",{attrs:{options:e.algolia}}):!1!==e.$site.themeConfig.Buscar&&!1!==e.$page.frontmatter.Buscar?t("BuscarBox"):e._e(),e._v(" "),t("NavLinks",{staticClass:"can-hide"})],1)],1)}),[],!1,null,null,null).exports),A=t(283),L=t.n(A),C={name:"PageEdit",computed:{lastUpdated(){return this.$page.lastUpdated},lastUpdatedText(){return"string"==typeof this.$themeLocaleConfig.lastUpdated?this.$themeLocaleConfig.lastUpdated:"string"==typeof this.$site.themeConfig.lastUpdated?this.$site.themeConfig.lastUpdated:"Last Updated"},editLink(){const e=L()(this.$page.frontmatter.editLink)?this.$site.themeConfig.editLinks:this.$page.frontmatter.editLink,{repo:r,docsDir:t="",docsBranch:a="master",docsRepo:s=r}=this.$site.themeConfig;return e&&s&&this.$page.relativePath?this.createEditLink(r,s,t,a,this.$page.relativePath):null},editLinkText(){return this.$themeLocaleConfig.editLinkText||this.$site.themeConfig.editLinkText||"Edit this page"}},methods:{createEditLink(e,r,t,a,s){if(/bitbucket.org/.test(r)){return r.replace(w.a,"")+"/src"+`/${a}/`+(t?t.replace(w.a,"")+"/":"")+s+`?mode=edit&spa=0&at=${a}&fileviewer=file-view-default`}if(/gitlab.com/.test(r)){return r.replace(w.a,"")+"/-/edit"+`/${a}/`+(t?t.replace(w.a,"")+"/":"")+s}return(w.i.test(r)?r:"https://github.com/"+r).replace(w.a,"")+"/edit"+`/${a}/`+(t?t.replace(w.a,"")+"/":"")+s}}},S=(t(309),Object(i.a)(C,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("footer",{staticClass:"page-edit"},[e.editLink?t("div",{staticClass:"edit-link"},[t("a",{attrs:{href:e.editLink,target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.editLinkText))]),e._v(" "),t("OutboundLink")],1):e._e(),e._v(" "),e.lastUpdated?t("div",{staticClass:"last-updated"},[t("span",{staticClass:"prefix"},[e._v(e._s(e.lastUpdatedText)+":")]),e._v(" "),t("span",{staticClass:"time"},[e._v(e._s(e.lastUpdated))])]):e._e()])}),[],!1,null,null,null).exports),T=t(310),B=t.n(T),R={name:"PageNav",props:["sidebarItems"],computed:{prev(){return U(N.PREV,this)},next(){return U(N.NEXT,this)}}};const N={NEXT:{resolveLink:function(e,r){return F(e,r,1)},getThemeLinkConfig:({nextLinks:e})=>e,getPageLinkConfig:({frontmatter:e})=>e.next},PREV:{resolveLink:function(e,r){return F(e,r,-1)},getThemeLinkConfig:({prevLinks:e})=>e,getPageLinkConfig:({frontmatter:e})=>e.prev}};function U(e,{$themeConfig:r,$page:t,$route:a,$site:s,sidebarItems:i}){const{resolveLink:o,getThemeLinkConfig:n,getPageLinkConfig:l}=e,c=n(r),u=l(t),p=L()(u)?c:u;return!1===p?void 0:B()(p)?Object(w.k)(s.pages,p,a.path):o(t,i)}function F(e,r,t){const a=[];!function e(r,t){for(let a=0,s=r.length;a({isSidebarOpen:!1}),computed:{shouldShowNavbar(){const{themeConfig:e}=this.$site,{frontmatter:r}=this.$page;return!1!==r.navbar&&!1!==e.navbar&&(this.$title||e.logo||e.repo||e.nav||this.$themeLocaleConfig.nav)},shouldShowSidebar(){const{frontmatter:e}=this.$page;return!e.home&&!1!==e.sidebar&&this.sidebarItems.length},sidebarItems(){return Object(w.l)(this.$page,this.$page.regularPath,this.$site,this.$localePath)},pageClasses(){const e=this.$page.frontmatter.pageClass;return[{"no-navbar":!this.shouldShowNavbar,"sidebar-open":this.isSidebarOpen,"no-sidebar":!this.shouldShowSidebar},e]}},mounted(){this.$router.afterEach(()=>{this.isSidebarOpen=!1})},methods:{toggleSidebar(e){this.isSidebarOpen="boolean"==typeof e?e:!this.isSidebarOpen,this.$emit("toggle-sidebar",this.isSidebarOpen)},onTouchStart(e){this.touchStart={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}},onTouchEnd(e){const r=e.changedTouches[0].clientX-this.touchStart.x,t=e.changedTouches[0].clientY-this.touchStart.y;Math.abs(r)>Math.abs(t)&&Math.abs(r)>40&&(r>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),P=Object(i.a)(G,(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"theme-container",class:e.pageClasses,on:{touchstart:e.onTouchStart,touchend:e.onTouchEnd}},[e.shouldShowNavbar?t("Navbar",{on:{"toggle-sidebar":e.toggleSidebar}}):e._e(),e._v(" "),t("div",{staticClass:"sidebar-mask",on:{click:function(r){return e.toggleSidebar(!1)}}}),e._v(" "),t("Sidebar",{attrs:{items:e.sidebarItems},on:{"toggle-sidebar":e.toggleSidebar},scopedSlots:e._u([{key:"top",fn:function(){return[e._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[e._t("sidebar-bottom")]},proxy:!0}],null,!0)}),e._v(" "),e.$page.frontmatter.home?t("Home"):t("Page",{attrs:{"sidebar-items":e.sidebarItems},scopedSlots:e._u([{key:"top",fn:function(){return[e._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[e._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);r.default=P.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/20.5d11c294.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/20.5d11c294.js new file mode 100644 index 0000000..0f1cda6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/20.5d11c294.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{351:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"enumeration-updatemodeenum"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#enumeration-updatemodeenum"}},[e._v("#")]),e._v(" Enumeration: UpdateModeEnum")]),e._v(" "),r("h2",{attrs:{id:"enumeration-members"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#enumeration-members"}},[e._v("#")]),e._v(" Enumeration members")]),e._v(" "),r("h3",{attrs:{id:"active"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[e._v("#")]),e._v(" active")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("active")]),e._v(" = "),r("code",[e._v('"active"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L568",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:568"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"hide"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hide"}},[e._v("#")]),e._v(" hide")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("hide")]),e._v(" = "),r("code",[e._v('"hide"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L565",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:565"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"none"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#none"}},[e._v("#")]),e._v(" none")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("none")]),e._v(" = "),r("code",[e._v('"none"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L564",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:564"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"normal"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normal"}},[e._v("#")]),e._v(" normal")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("normal")]),e._v(" = "),r("code",[e._v('"normal"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L567",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:567"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"reset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[e._v("#")]),e._v(" reset")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("reset")]),e._v(" = "),r("code",[e._v('"reset"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L563",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:563"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"resize"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#resize"}},[e._v("#")]),e._v(" resize")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("resize")]),e._v(" = "),r("code",[e._v('"resize"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L562",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:562"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"show"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#show"}},[e._v("#")]),e._v(" show")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("show")]),e._v(" = "),r("code",[e._v('"show"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L566",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:566"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/200.2eb9437f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/200.2eb9437f.js new file mode 100644 index 0000000..fe97db4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/200.2eb9437f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[200],{530:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart-stacked"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart-stacked"}},[t._v("#")]),t._v(" Line Chart Stacked")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Stacked: true',\n handler: (chart) => {\n chart.options.scales.y.stacked = true;\n chart.update();\n }\n },\n {\n name: 'Stacked: false (default)',\n handler: (chart) => {\n chart.options.scales.y.stacked = false;\n chart.update();\n }\n },\n {\n name: 'Stacked Single',\n handler: (chart) => {\n chart.options.scales.y.stacked = 'single';\n chart.update();\n }\n },\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: dsColor,\n borderColor: dsColor,\n fill: true,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'My First dataset',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n fill: true\n },\n {\n label: 'My Second dataset',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.CHART_COLORS.blue,\n fill: true\n },\n {\n label: 'My Third dataset',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.green,\n backgroundColor: Utils.CHART_COLORS.green,\n fill: true\n },\n {\n label: 'My Fourth dataset',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.yellow,\n backgroundColor: Utils.CHART_COLORS.yellow,\n fill: true\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: (ctx) => 'Chart.js Line Chart - stacked=' + ctx.chart.options.scales.y.stacked\n },\n tooltip: {\n mode: 'index'\n },\n },\n interaction: {\n mode: 'nearest',\n axis: 'x',\n intersect: false\n },\n scales: {\n x: {\n title: {\n display: true,\n text: 'Month'\n }\n },\n y: {\n stacked: true,\n title: {\n display: true,\n text: 'Value'\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[t._v("Area")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"../../Graficas/area.htmll#filling-modes"}},[t._v("Filling modes")])])])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/"}},[t._v("Axes scales")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[t._v("Common options to all axes ("),a("code",[t._v("stacked")]),t._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/201.6dba10c3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/201.6dba10c3.js new file mode 100644 index 0000000..5050c78 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/201.6dba10c3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[201],{531:function(n,t,a){"use strict";a.r(t);var e=a(6),r=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"radar-chart-stacked"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radar-chart-stacked"}},[n._v("#")]),n._v(" Radar Chart Stacked")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst inputs = {\n min: 8,\n max: 16,\n count: 8,\n decimals: 2,\n continuity: 1\n};\n\nconst generateLabels = () => {\n return Utils.months({count: inputs.count});\n};\n\nconst generateData = () => {\n const values = Utils.numbers(inputs);\n inputs.from = values;\n return values;\n};\n\nconst labels = Utils.months({count: 8});\nconst data = {\n labels: generateLabels(),\n datasets: [\n {\n label: 'D0',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),\n },\n {\n label: 'D1',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.orange,\n hidden: true,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange),\n fill: '-1'\n },\n {\n label: 'D2',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.yellow,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.yellow),\n fill: 1\n },\n {\n label: 'D3',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.green,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green),\n fill: false\n },\n {\n label: 'D4',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue),\n fill: '-1'\n },\n {\n label: 'D5',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.purple,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.purple),\n fill: '-1'\n },\n {\n label: 'D6',\n data: generateData(),\n borderColor: Utils.CHART_COLORS.grey,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.grey),\n fill: {value: 85}\n }\n ]\n};\n// \n\n// \nlet smooth = false;\nlet propagate = false;\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n inputs.from = [];\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n {\n name: 'Propagate',\n handler(chart) {\n propagate = !propagate;\n chart.options.plugins.filler.propagate = propagate;\n chart.update();\n\n }\n },\n {\n name: 'Smooth',\n handler(chart) {\n smooth = !smooth;\n chart.options.elements.line.tension = smooth ? 0.4 : 0;\n chart.update();\n }\n }\n];\n// \n\n// \nconst config = {\n type: 'radar',\n data: data,\n options: {\n plugins: {\n filler: {\n propagate: false\n },\n 'samples-filler-analyser': {\n target: 'chart-analyser'\n }\n },\n interaction: {\n intersect: false\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config\n};\n"}}),a("div",{staticClass:"analyser",attrs:{id:"chart-analyser"}}),n._v(" "),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html"}},[n._v("Area")]),n._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"../../Graficas/area.htmll#filling-modes"}},[n._v("Filling modes")])]),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/area.html#propagate"}},[a("code",[n._v("propagate")])])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/radar.html"}},[n._v("Radar")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/202.9c5057c6.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/202.9c5057c6.js new file mode 100644 index 0000000..0892d67 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/202.9c5057c6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[202],{532:function(t,n,a){"use strict";a.r(n);var r=a(6),s=Object(r.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"bar-chart-border-radius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bar-chart-border-radius"}},[t._v("#")]),t._v(" Bar Chart Border Radius")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Fully Rounded',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n borderWidth: 2,\n borderRadius: Number.MAX_VALUE,\n borderSkipped: false,\n },\n {\n label: 'Small Radius',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n borderWidth: 2,\n borderRadius: 5,\n borderSkipped: false,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Bar Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html#borderradius"}},[a("code",[t._v("borderRadius")])])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/203.98a3c2b8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/203.98a3c2b8.js new file mode 100644 index 0000000..7ac5c01 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/203.98a3c2b8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[203],{533:function(n,t,a){"use strict";a.r(t);var s=a(6),e=Object(s.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"floating-bars"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#floating-bars"}},[n._v("#")]),n._v(" Floating Bars")]),n._v(" "),a("p",[n._v("Using "),a("code",[n._v("[number, number][]")]),n._v(" as the type for "),a("code",[n._v("data")]),n._v(" to define the beginning and end value for each bar. This is instead of having every bar start at 0.")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = chart.data.labels.map(() => {\n return [Utils.rand(-100, 100), Utils.rand(-100, 100)];\n });\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: labels.map(() => {\n return [Utils.rand(-100, 100), Utils.rand(-100, 100)];\n }),\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: labels.map(() => {\n return [Utils.rand(-100, 100), Utils.rand(-100, 100)];\n }),\n backgroundColor: Utils.CHART_COLORS.blue,\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Floating Bar Chart'\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[n._v("Bar")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/204.50d5cf2e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/204.50d5cf2e.js new file mode 100644 index 0000000..1891fbe --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/204.50d5cf2e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[204],{534:function(t,a,n){"use strict";n.r(a);var e=n(6),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"horizontal-bar-chart"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#horizontal-bar-chart"}},[t._v("#")]),t._v(" Horizontal Bar Chart")]),t._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n borderWidth: 1,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n indexAxis: 'y',\n // Elements options apply to all of the options unless overridden in a dataset\n // In this case, we are setting the border of each horizontal bar to be 2px wide\n elements: {\n bar: {\n borderWidth: 2,\n }\n },\n responsive: true,\n plugins: {\n legend: {\n position: 'right',\n },\n title: {\n display: true,\n text: 'Chart.js Horizontal Bar Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/bar.html#horizontal-bar-chart"}},[t._v("Horizontal Bar Chart")])],1)])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/205.e56e820b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/205.e56e820b.js new file mode 100644 index 0000000..33b09d1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/205.e56e820b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[205],{535:function(t,n,a){"use strict";a.r(n);var s=a(6),e=Object(s.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"stacked-bar-chart-with-groups"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stacked-bar-chart-with-groups"}},[t._v("#")]),t._v(" Stacked Bar Chart with Groups")]),t._v(" "),a("p",[t._v("Using the "),a("code",[t._v("stack")]),t._v(" property to divide datasets into multiple stacks.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.red,\n stack: 'Stack 0',\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.blue,\n stack: 'Stack 0',\n },\n {\n label: 'Dataset 3',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.green,\n stack: 'Stack 1',\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Bar Chart - Stacked'\n },\n },\n responsive: true,\n interaction: {\n intersect: false,\n },\n scales: {\n x: {\n stacked: true,\n },\n y: {\n stacked: true\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html#stacked-bar-chart"}},[t._v("Stacked Bar Chart")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html#dataset-configuration"}},[t._v("Dataset Configuration ("),a("code",[t._v("stack")]),t._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/206.6ce5c41e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/206.6ce5c41e.js new file mode 100644 index 0000000..c9a014e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/206.6ce5c41e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[206],{536:function(t,n,a){"use strict";a.r(n);var s=a(6),e=Object(s.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"stacked-bar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stacked-bar-chart"}},[t._v("#")]),t._v(" Stacked Bar Chart")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.blue,\n },\n {\n label: 'Dataset 3',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Utils.CHART_COLORS.green,\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Bar Chart - Stacked'\n },\n },\n responsive: true,\n scales: {\n x: {\n stacked: true,\n },\n y: {\n stacked: true\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html#stacked-bar-chart"}},[t._v("Stacked Bar Chart")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/207.8aa83d91.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/207.8aa83d91.js new file mode 100644 index 0000000..a6717af --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/207.8aa83d91.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[207],{537:function(t,a,n){"use strict";n.r(a);var e=n(6),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"vertical-bar-chart"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vertical-bar-chart"}},[t._v("#")]),t._v(" Vertical Bar Chart")]),t._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n borderWidth: 1,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Bar Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),n("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/208.296ee160.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/208.296ee160.js new file mode 100644 index 0000000..fa4f5bd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/208.296ee160.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[208],{538:function(t,e,a){"use strict";a.r(e);var o=a(6),s=Object(o.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"information"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#information"}},[t._v("#")]),t._v(" Information")]),t._v(" "),a("h2",{attrs:{id:"out-of-the-box-working-samples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#out-of-the-box-working-samples"}},[t._v("#")]),t._v(" Out of the box working samples")]),t._v(" "),a("p",[t._v("These samples are made for demonstration purposes only. They won't work out of the box if you copy paste them into your own website. This is because of how the docs are getting built. Some boilerplate code gets hidden.\nFor a sample that can be copied and pasted and used directly you can check the "),a("RouterLink",{attrs:{to:"/getting-started/usage.html"}},[t._v("usage page")]),t._v(".")],1),t._v(" "),a("h2",{attrs:{id:"autogenerated-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#autogenerated-data"}},[t._v("#")]),t._v(" Autogenerated data")]),t._v(" "),a("p",[t._v("The data used in the samples is autogenerated using custom functions. These functions do not ship with the library, for more information about this you can check the "),a("RouterLink",{attrs:{to:"/samples/utils.html"}},[t._v("utils page")]),t._v(".")],1),t._v(" "),a("h2",{attrs:{id:"actions-block"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#actions-block"}},[t._v("#")]),t._v(" Actions block")]),t._v(" "),a("p",[t._v("The samples have an "),a("code",[t._v("actions")]),t._v(" code block. These actions are not part of chart.js. They are internally transformed to separate buttons together with onClick listeners by a plugin we use in the documentation. To implement such actions yourself you can make some buttons and add onClick event listeners to them. Then in these event listeners you can call your variable in which you made the chart and do the logic that the button is supposed to do.")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/209.13279349.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/209.13279349.js new file mode 100644 index 0000000..d763c36 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/209.13279349.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[209],{539:function(e,n,o){"use strict";o.r(n);var t=o(6),a=Object(t.a)({},(function(){var e=this,n=e.$createElement,o=e._self._c||n;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"events"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[e._v("#")]),e._v(" Events")]),e._v(" "),o("p",[e._v("This sample demonstrates how to use the event hooks to highlight chart elements.")]),e._v(" "),o("chart-editor",{attrs:{code:"\n// \nconst data = {\n labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],\n datasets: [{\n label: '# of Votes',\n data: [12, 19, 3, 5, 2, 3],\n borderWidth: 1,\n backgroundColor: ['#CB4335', '#1F618D', '#F1C40F', '#27AE60', '#884EA0', '#D35400'],\n }]\n};\n// \n\n// \n// Append '4d' to the colors (alpha channel), except for the hovered index\nfunction handleHover(evt, item, legend) {\n legend.chart.data.datasets[0].backgroundColor.forEach((color, index, colors) => {\n colors[index] = index === item.index || color.length === 9 ? color : color + '4D';\n });\n legend.chart.update();\n}\n// \n\n// \n// Removes the alpha channel from background colors\nfunction handleLeave(evt, item, legend) {\n legend.chart.data.datasets[0].backgroundColor.forEach((color, index, colors) => {\n colors[index] = color.length === 9 ? color.slice(0, -2) : color;\n });\n legend.chart.update();\n}\n// \n\n// \nconst config = {\n type: 'pie',\n data: data,\n options: {\n plugins: {\n legend: {\n onHover: handleHover,\n onLeave: handleLeave\n }\n }\n }\n};\n// \n\nmodule.exports = {\n config\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[e._v("#")]),e._v(" Docs")]),e._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[e._v("Doughnut and Pie Graficas")])],1),e._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/legend.html"}},[e._v("Legend")]),e._v(" "),o("ul",[o("li",[o("code",[e._v("onHover")])]),e._v(" "),o("li",[o("code",[e._v("onLeave")])])])],1)])],1)}),[],!1,null,null,null);n.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/21.7b54d7d8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/21.7b54d7d8.js new file mode 100644 index 0000000..9ed2bbb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/21.7b54d7d8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{352:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-activedatapoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-activedatapoint"}},[t._v("#")]),t._v(" Interface: ActiveDataPoint")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("ActiveDataPoint")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"datasetindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[t._v("#")]),t._v(" datasetIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L471",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:471"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L472",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:472"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/210.63e30420.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/210.63e30420.js new file mode 100644 index 0000000..9d46cb2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/210.63e30420.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[210],{540:function(n,t,e){"use strict";e.r(t);var l=e(6),i=Object(l.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"html-legend"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#html-legend"}},[n._v("#")]),n._v(" HTML Legend")]),n._v(" "),e("p",[n._v("This example shows how to create a custom HTML legend using a plugin and connect it to the chart in lieu of the default on-canvas legend.")]),n._v(" "),e("div",{attrs:{id:"legend-container"}}),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst getOrCreateLegendList = (chart, id) => {\n const legendContainer = document.getElementById(id);\n let listContainer = legendContainer.querySelector('ul');\n\n if (!listContainer) {\n listContainer = document.createElement('ul');\n listContainer.style.display = 'flex';\n listContainer.style.flexDirection = 'row';\n listContainer.style.margin = 0;\n listContainer.style.padding = 0;\n\n legendContainer.appendChild(listContainer);\n }\n\n return listContainer;\n};\n\nconst htmlLegendPlugin = {\n id: 'htmlLegend',\n afterUpdate(chart, args, options) {\n const ul = getOrCreateLegendList(chart, options.containerID);\n\n // Remove old legend items\n while (ul.firstChild) {\n ul.firstChild.remove();\n }\n\n // Reuse the built-in legendItems generator\n const items = chart.options.plugins.legend.labels.generateLabels(chart);\n\n items.forEach(item => {\n const li = document.createElement('li');\n li.style.alignItems = 'center';\n li.style.cursor = 'pointer';\n li.style.display = 'flex';\n li.style.flexDirection = 'row';\n li.style.marginLeft = '10px';\n\n li.onclick = () => {\n const {type} = chart.config;\n if (type === 'pie' || type === 'doughnut') {\n // Pie and doughnut Graficas only have a single dataset and visibility is per item\n chart.toggleDataVisibility(item.index);\n } else {\n chart.setDatasetVisibility(item.datasetIndex, !chart.isDatasetVisible(item.datasetIndex));\n }\n chart.update();\n };\n\n // Color box\n const boxSpan = document.createElement('span');\n boxSpan.style.background = item.fillStyle;\n boxSpan.style.borderColor = item.strokeStyle;\n boxSpan.style.borderWidth = item.lineWidth + 'px';\n boxSpan.style.display = 'inline-block';\n boxSpan.style.height = '20px';\n boxSpan.style.marginRight = '10px';\n boxSpan.style.width = '20px';\n\n // Text\n const textContainer = document.createElement('p');\n textContainer.style.color = item.fontColor;\n textContainer.style.margin = 0;\n textContainer.style.padding = 0;\n textContainer.style.textDecoration = item.hidden ? 'line-through' : '';\n\n const text = document.createTextNode(item.text);\n textContainer.appendChild(text);\n\n li.appendChild(boxSpan);\n li.appendChild(textContainer);\n ul.appendChild(li);\n });\n }\n};\n// \n\n// \nconst NUM_DATA = 7;\nconst NUM_CFG = {count: NUM_DATA, min: 0, max: 100};\nconst data = {\n labels: Utils.months({count: NUM_DATA}),\n datasets: [\n {\n label: 'Dataset: 1',\n data: Utils.numbers(NUM_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n fill: false,\n },\n {\n label: 'Dataset: 1',\n data: Utils.numbers(NUM_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n fill: false,\n },\n ],\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n htmlLegend: {\n // ID of the container to put the legend in\n containerID: 'legend-container',\n },\n legend: {\n display: false,\n }\n }\n },\n plugins: [htmlLegendPlugin],\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),e("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/legend.html"}},[n._v("Legend")]),n._v(" "),e("ul",[e("li",[e("code",[n._v("display: false")])])])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/developers/plugins.html"}},[n._v("Plugins")])],1)])],1)}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/211.0b325f23.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/211.0b325f23.js new file mode 100644 index 0000000..20f5ba4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/211.0b325f23.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[211],{541:function(t,n,e){"use strict";e.r(n);var o=e(6),l=Object(o.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"point-style"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#point-style"}},[t._v("#")]),t._v(" Point Style")]),t._v(" "),e("p",[t._v("This sample show how to use the dataset point style in the legend instead of a rectangle to identify each dataset..")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Toggle Point Style',\n handler(chart) {\n chart.options.plugins.legend.labels.usePointStyle = !chart.options.plugins.legend.labels.usePointStyle;\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n borderWidth: 1,\n pointStyle: 'rectRot',\n pointRadius: 5,\n pointBorderColor: 'rgb(0, 0, 0)'\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n legend: {\n labels: {\n usePointStyle: true,\n },\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/legend.html"}},[t._v("Legend")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/configuration/legend.html#legend-label-configuration"}},[t._v("Legend Label Configuration")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("usePointStyle")])])])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/elements.html"}},[t._v("Elements")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/configuration/elements.html#point-configuration"}},[t._v("Point Configuration")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[t._v("Point Styles")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/212.be671e2e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/212.be671e2e.js new file mode 100644 index 0000000..d821017 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/212.be671e2e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[212],{542:function(n,t,o){"use strict";o.r(t);var a=o(6),s=Object(a.a)({},(function(){var n=this,t=n.$createElement,o=n._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[o("h1",{attrs:{id:"position"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[n._v("#")]),n._v(" Position")]),n._v(" "),o("p",[n._v("This sample show how to change the position of the chart legend.")]),n._v(" "),o("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Position: top',\n handler(chart) {\n chart.options.plugins.legend.position = 'top';\n chart.update();\n }\n },\n {\n name: 'Position: right',\n handler(chart) {\n chart.options.plugins.legend.position = 'right';\n chart.update();\n }\n },\n {\n name: 'Position: bottom',\n handler(chart) {\n chart.options.plugins.legend.position = 'bottom';\n chart.update();\n }\n },\n {\n name: 'Position: left',\n handler(chart) {\n chart.options.plugins.legend.position = 'left';\n chart.update();\n }\n },\n];\n// \n\n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),o("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),o("li",[o("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/legend.html"}},[n._v("Legend")]),n._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/configuration/legend.html#position"}},[n._v("Position")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/213.81d2e607.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/213.81d2e607.js new file mode 100644 index 0000000..937648d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/213.81d2e607.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[213],{543:function(n,t,e){"use strict";e.r(t);var o=e(6),a=Object(o.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"alignment-and-title-position"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#alignment-and-title-position"}},[n._v("#")]),n._v(" Alignment and Title Position")]),n._v(" "),e("p",[n._v("This sample show how to configure the alignment and title position of the chart legend.")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Title Position: start',\n handler(chart) {\n chart.options.plugins.legend.align = 'start';\n chart.options.plugins.legend.title.position = 'start';\n chart.update();\n }\n },\n {\n name: 'Title Position: center (default)',\n handler(chart) {\n chart.options.plugins.legend.align = 'center';\n chart.options.plugins.legend.title.position = 'center';\n chart.update();\n }\n },\n {\n name: 'Title Position: end',\n handler(chart) {\n chart.options.plugins.legend.align = 'end';\n chart.options.plugins.legend.title.position = 'end';\n chart.update();\n }\n },\n];\n// \n\n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n legend: {\n title: {\n display: true,\n text: 'Legend Title',\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),e("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/legend.html"}},[n._v("Legend")])],1)])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/214.ba403b5c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/214.ba403b5c.js new file mode 100644 index 0000000..f67c83c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/214.ba403b5c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[214],{544:function(n,t,e){"use strict";e.r(t);var o=e(6),i=Object(o.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"interpolation-modes"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interpolation-modes"}},[n._v("#")]),n._v(" Interpolation Modes")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 12;\nconst labels = [];\nfor (let i = 0; i < DATA_COUNT; ++i) {\n labels.push(i.toString());\n}\nconst datapoints = [0, 20, 20, 60, 60, 120, NaN, 180, 120, 125, 105, 110, 170];\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Cubic interpolation (monotone)',\n data: datapoints,\n borderColor: Utils.CHART_COLORS.red,\n fill: false,\n cubicInterpolationMode: 'monotone',\n tension: 0.4\n }, {\n label: 'Cubic interpolation',\n data: datapoints,\n borderColor: Utils.CHART_COLORS.blue,\n fill: false,\n tension: 0.4\n }, {\n label: 'Linear interpolation (default)',\n data: datapoints,\n borderColor: Utils.CHART_COLORS.green,\n fill: false\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart - Cubic interpolation mode'\n },\n },\n interaction: {\n intersect: false,\n },\n scales: {\n x: {\n display: true,\n title: {\n display: true\n }\n },\n y: {\n display: true,\n title: {\n display: true,\n text: 'Value'\n },\n suggestedMin: -10,\n suggestedMax: 200\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html#cubicinterpolationmode"}},[e("code",[n._v("cubicInterpolationMode")])])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[n._v("Line Styling ("),e("code",[n._v("tension")]),n._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/215.2efcec5f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/215.2efcec5f.js new file mode 100644 index 0000000..3a87c3e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/215.2efcec5f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[215],{545:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart"}},[t._v("#")]),t._v(" Line Chart")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Line Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/216.e01d3100.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/216.e01d3100.js new file mode 100644 index 0000000..8541b48 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/216.e01d3100.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[216],{546:function(n,t,a){"use strict";a.r(t);var s=a(6),e=Object(s.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"multi-axis-line-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#multi-axis-line-chart"}},[n._v("#")]),n._v(" Multi Axis Line Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n yAxisID: 'y',\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n yAxisID: 'y1',\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n stacked: false,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart - Multi Axis'\n }\n },\n scales: {\n y: {\n type: 'linear',\n display: true,\n position: 'left',\n },\n y1: {\n type: 'linear',\n display: true,\n position: 'right',\n\n // grid line settings\n grid: {\n drawOnChartArea: false, // only want the grid lines for one axis to show up\n },\n },\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/"}},[n._v("Axes scales")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/"}},[n._v("Cartesian Axes")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[n._v("Axis Position")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/217.906c8d54.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/217.906c8d54.js new file mode 100644 index 0000000..85e8311 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/217.906c8d54.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[217],{547:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"point-styling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#point-styling"}},[t._v("#")]),t._v(" Point Styling")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'pointStyle: circle (default)',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'cirlce';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: cross',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'cross';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: crossRot',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'crossRot';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: dash',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'dash';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: line',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'line';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: rect',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'rect';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: rectRounded',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'rectRounded';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: rectRot',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'rectRot';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: star',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'star';\n });\n chart.update();\n }\n },\n {\n name: 'pointStyle: triangle',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.pointStyle = 'triangle';\n });\n chart.update();\n }\n }\n];\n// \n\n// \nconst data = {\n labels: ['Day 1', 'Day 2', 'Day 3', 'Day 4', 'Day 5', 'Day 6'],\n datasets: [\n {\n label: 'Dataset',\n data: Utils.numbers({count: 6, min: -100, max: 100}),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n pointStyle: 'circle',\n pointRadius: 10,\n pointHoverRadius: 15\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: (ctx) => 'Point Style: ' + ctx.chart.data.datasets[0].pointStyle,\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html#point-styling"}},[t._v("Point Styling")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/218.94e33827.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/218.94e33827.js new file mode 100644 index 0000000..707e748 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/218.94e33827.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[218],{548:function(t,n,e){"use strict";e.r(n);var s=e(6),i=Object(s.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"line-segment-styling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#line-segment-styling"}},[t._v("#")]),t._v(" Line Segment Styling")]),t._v(" "),e("p",[t._v("Using helper functions to style each segment. Gaps in the data ('skipped') are set to dashed lines and segments with values going 'down' are set to a different color.")]),t._v(" "),e("chart-editor",{attrs:{code:"\n// \nconst skipped = (ctx, value) => ctx.p0.skip || ctx.p1.skip ? value : undefined;\nconst down = (ctx, value) => ctx.p0.parsed.y > ctx.p1.parsed.y ? value : undefined;\n// \n\n// \nconst genericOptions = {\n fill: false,\n interaction: {\n intersect: false\n },\n radius: 0,\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: {\n labels: Utils.months({count: 7}),\n datasets: [{\n label: 'My First Dataset',\n data: [65, 59, NaN, 48, 56, 57, 40],\n borderColor: 'rgb(75, 192, 192)',\n segment: {\n borderColor: ctx => skipped(ctx, 'rgb(0,0,0,0.2)') || down(ctx, 'rgb(192,75,75)'),\n borderDash: ctx => skipped(ctx, [6, 6]),\n },\n spanGaps: true\n }]\n },\n options: genericOptions\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[t._v("Line Styling")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html#segment"}},[t._v("Segment")])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/219.21c5e01f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/219.21c5e01f.js new file mode 100644 index 0000000..9fd1b86 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/219.21c5e01f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[219],{549:function(t,a,n){"use strict";n.r(a);var e=n(6),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"stepped-line-Graficas"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#stepped-line-Graficas"}},[t._v("#")]),t._v(" Stepped Line Graficas")]),t._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Step: false (default)',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.stepped = false;\n });\n chart.update();\n }\n },\n {\n name: 'Step: true',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.stepped = true;\n });\n chart.update();\n }\n },\n {\n name: 'Step: before',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.stepped = 'before';\n });\n chart.update();\n }\n },\n {\n name: 'Step: after',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.stepped = 'after';\n });\n chart.update();\n }\n },\n {\n name: 'Step: middle',\n handler: (chart) => {\n chart.data.datasets.forEach(dataset => {\n dataset.stepped = 'middle';\n });\n chart.update();\n }\n }\n];\n// \n\n// \nconst data = {\n labels: ['Day 1', 'Day 2', 'Day 3', 'Day 4', 'Day 5', 'Day 6'],\n datasets: [\n {\n label: 'Dataset',\n data: Utils.numbers({count: 6, min: -100, max: 100}),\n borderColor: Utils.CHART_COLORS.red,\n fill: false,\n stepped: true,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n interaction: {\n intersect: false,\n axis: 'x'\n },\n plugins: {\n title: {\n display: true,\n text: (ctx) => 'Step ' + ctx.chart.data.datasets[0].stepped + ' Interpolation',\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),n("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/line.html#stepped"}},[t._v("Stepped")])],1)])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/22.c2daedd0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/22.c2daedd0.js new file mode 100644 index 0000000..b87f089 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/22.c2daedd0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{353:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-activeelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-activeelement"}},[t._v("#")]),t._v(" Interface: ActiveElement")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[a("code",[t._v("ActiveDataPoint")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("ActiveElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"datasetindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[t._v("#")]),t._v(" datasetIndex")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[t._v("ActiveDataPoint")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html#datasetindex"}},[t._v("datasetIndex")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L471",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:471"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"element"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#element"}},[t._v("#")]),t._v(" element")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("element")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L476",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:476"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[t._v("ActiveDataPoint")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html#index"}},[t._v("index")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L472",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:472"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/220.3ba160e4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/220.3ba160e4.js new file mode 100644 index 0000000..4fda0fc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/220.3ba160e4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[220],{550:function(n,t,e){"use strict";e.r(t);var l=e(6),s=Object(l.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"line-styling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#line-styling"}},[n._v("#")]),n._v(" Line Styling")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: DATA_COUNT});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Unfilled',\n fill: false,\n backgroundColor: Utils.CHART_COLORS.blue,\n borderColor: Utils.CHART_COLORS.blue,\n data: Utils.numbers(NUMBER_CFG),\n }, {\n label: 'Dashed',\n fill: false,\n backgroundColor: Utils.CHART_COLORS.green,\n borderColor: Utils.CHART_COLORS.green,\n borderDash: [5, 5],\n data: Utils.numbers(NUMBER_CFG),\n }, {\n label: 'Filled',\n backgroundColor: Utils.CHART_COLORS.red,\n borderColor: Utils.CHART_COLORS.red,\n data: Utils.numbers(NUMBER_CFG),\n fill: true,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart'\n },\n },\n interaction: {\n mode: 'index',\n intersect: false\n },\n scales: {\n x: {\n display: true,\n title: {\n display: true,\n text: 'Month'\n }\n },\n y: {\n display: true,\n title: {\n display: true,\n text: 'Value'\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),e("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[n._v("Line Styling")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/221.5c17138c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/221.5c17138c.js new file mode 100644 index 0000000..a4bc35e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/221.5c17138c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[221],{551:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"bubble"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubble"}},[n._v("#")]),n._v(" Bubble")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.bubbles({count: chart.data.labels.length, rmin: 5, rmax: 15, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.bubbles({count: data.labels.length, rmin: 5, rmax: 15, min: 0, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.bubbles({count: 1, rmin: 5, rmax: 15, min: 0, max: 100})[0]);\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, rmin: 5, rmax: 15, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.orange,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bubble',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Bubble Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bubble.html"}},[n._v("Bubble")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/222.aea004ce.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/222.aea004ce.js new file mode 100644 index 0000000..baf82f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/222.aea004ce.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[222],{553:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"combo-bar-line"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#combo-bar-line"}},[t._v("#")]),t._v(" Combo bar/line")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n borderWidth: 1,\n data: Utils.numbers({count: data.labels.length, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(-100, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n order: 1\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n type: 'line',\n order: 0\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'bar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Combined Line/Bar Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/223.cbb7b883.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/223.cbb7b883.js new file mode 100644 index 0000000..4db0ac8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/223.cbb7b883.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[223],{552:function(n,a,t){"use strict";t.r(a);var e=t(6),s=Object(e.a)({},(function(){var n=this,a=n.$createElement,t=n._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[t("h1",{attrs:{id:"doughnut"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#doughnut"}},[n._v("#")]),n._v(" Doughnut")]),n._v(" "),t("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: [],\n data: [],\n };\n\n for (let i = 0; i < data.labels.length; i++) {\n newDataset.data.push(Utils.numbers({count: 1, min: 0, max: 100}));\n\n const colorIndex = i % Object.keys(Utils.CHART_COLORS).length;\n newDataset.backgroundColor.push(Object.values(Utils.CHART_COLORS)[colorIndex]);\n }\n\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels.push('data #' + (data.labels.length + 1));\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Hide(0)',\n handler(chart) {\n chart.hide(0);\n }\n },\n {\n name: 'Show(0)',\n handler(chart) {\n chart.show(0);\n }\n },\n {\n name: 'Hide (0, 1)',\n handler(chart) {\n chart.hide(0, 1);\n }\n },\n {\n name: 'Show (0, 1)',\n handler(chart) {\n chart.show(0, 1);\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 5;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst data = {\n labels: ['Red', 'Orange', 'Yellow', 'Green', 'Blue'],\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Object.values(Utils.CHART_COLORS),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'doughnut',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Doughnut Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),t("h2",{attrs:{id:"docs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[n._v("Doughnut and Pie Graficas")])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/224.b130b37f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/224.b130b37f.js new file mode 100644 index 0000000..fa31d54 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/224.b130b37f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[224],{555:function(t,n,e){"use strict";e.r(n);var a=e(6),l=Object(a.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"multi-series-pie"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#multi-series-pie"}},[t._v("#")]),t._v(" Multi Series Pie")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 5;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: ['Overall Yay', 'Overall Nay', 'Group A Yay', 'Group A Nay', 'Group B Yay', 'Group B Nay', 'Group C Yay', 'Group C Nay'],\n datasets: [\n {\n backgroundColor: ['#AAA', '#777'],\n data: [21, 79]\n },\n {\n backgroundColor: ['hsl(0, 100%, 60%)', 'hsl(0, 100%, 35%)'],\n data: [33, 67]\n },\n {\n backgroundColor: ['hsl(100, 100%, 60%)', 'hsl(100, 100%, 35%)'],\n data: [20, 80]\n },\n {\n backgroundColor: ['hsl(180, 100%, 60%)', 'hsl(180, 100%, 35%)'],\n data: [10, 90]\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'pie',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n labels: {\n generateLabels: function(chart) {\n // Get the default label list\n const original = Chart.overrides.pie.plugins.legend.labels.generateLabels;\n const labelsOriginal = original.call(this, chart);\n\n // Build an array of colors used in the datasets of the chart\n let datasetColors = chart.data.datasets.map(function(e) {\n return e.backgroundColor;\n });\n datasetColors = datasetColors.flat();\n\n // Modify the color and hide state of each label\n labelsOriginal.forEach(label => {\n // There are twice as many labels as there are datasets. This converts the label index into the corresponding dataset index\n label.datasetIndex = (label.index - label.index % 2) / 2;\n\n // The hidden state must match the dataset's hidden state\n label.hidden = !chart.isDatasetVisible(label.datasetIndex);\n\n // Change the color to match the dataset\n label.fillStyle = datasetColors[label.index];\n });\n\n return labelsOriginal;\n }\n },\n onClick: function(mouseEvent, legendItem, legend) {\n // toggle the visibility of the dataset from what it currently is\n legend.chart.getDatasetMeta(\n legendItem.datasetIndex\n ).hidden = legend.chart.isDatasetVisible(legendItem.datasetIndex);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n label: function(context) {\n const labelIndex = (context.datasetIndex * 2) + context.dataIndex;\n return context.chart.data.labels[labelIndex] + ': ' + context.formattedValue;\n }\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[t._v("Doughnut and Pie Graficas")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/225.32f90319.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/225.32f90319.js new file mode 100644 index 0000000..eec69a7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/225.32f90319.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[225],{554:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"pie"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pie"}},[n._v("#")]),n._v(" Pie")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: [],\n data: [],\n };\n\n for (let i = 0; i < data.labels.length; i++) {\n newDataset.data.push(Utils.numbers({count: 1, min: 0, max: 100}));\n\n const colorIndex = i % Object.keys(Utils.CHART_COLORS).length;\n newDataset.backgroundColor.push(Object.values(Utils.CHART_COLORS)[colorIndex]);\n }\n\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels.push('data #' + (data.labels.length + 1));\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 5;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst data = {\n labels: ['Red', 'Orange', 'Yellow', 'Green', 'Blue'],\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: Object.values(Utils.CHART_COLORS),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'pie',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Pie Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[n._v("Doughnut and Pie Graficas")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/226.8c102c21.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/226.8c102c21.js new file mode 100644 index 0000000..a82c753 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/226.8c102c21.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[226],{556:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"polar-area-centered-point-labels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polar-area-centered-point-labels"}},[n._v("#")]),n._v(" Polar area centered point labels")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels.push('data #' + (data.labels.length + 1));\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 5;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = ['Red', 'Orange', 'Yellow', 'Green', 'Blue'];\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: [\n Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.orange, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.yellow, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n ]\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'polarArea',\n data: data,\n options: {\n responsive: true,\n scales: {\n r: {\n pointLabels: {\n display: true,\n centerPointLabels: true,\n font: {\n size: 18\n }\n }\n }\n },\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Polar Area Chart With Centered Point Labels'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/polar.html"}},[n._v("Polar Area Chart")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/radial/linear.html"}},[n._v("Linear Radial Axis")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/radial/linear.html#point-label-options"}},[n._v("Point Label Options ("),a("code",[n._v("centerPointLabels")]),n._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/227.b3d60339.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/227.b3d60339.js new file mode 100644 index 0000000..c7c50e4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/227.b3d60339.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[227],{557:function(n,a,t){"use strict";t.r(a);var e=t(6),s=Object(e.a)({},(function(){var n=this,a=n.$createElement,t=n._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[t("h1",{attrs:{id:"polar-area"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#polar-area"}},[n._v("#")]),n._v(" Polar area")]),n._v(" "),t("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels.push('data #' + (data.labels.length + 1));\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 5;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = ['Red', 'Orange', 'Yellow', 'Green', 'Blue'];\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n backgroundColor: [\n Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.orange, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.yellow, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n ]\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'polarArea',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Polar Area Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),t("h2",{attrs:{id:"docs"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Graficas/polar.html"}},[n._v("Polar Area Chart")])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/228.72f0ad18.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/228.72f0ad18.js new file mode 100644 index 0000000..3f0001e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/228.72f0ad18.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[228],{558:function(t,n,a){"use strict";a.r(n);var s=a(6),e=Object(s.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"radar-skip-points"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radar-skip-points"}},[t._v("#")]),t._v(" Radar skip points")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach((dataset, i) => {\n const data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n\n if (i === 0) {\n data[0] = null;\n } else if (i === 1) {\n data[Number.parseInt(data.length / 2, 10)] = null;\n } else {\n data[data.length - 1] = null;\n }\n\n dataset.data = data;\n });\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst dataFirstSkip = Utils.numbers(NUMBER_CFG);\nconst dataMiddleSkip = Utils.numbers(NUMBER_CFG);\nconst dataLastSkip = Utils.numbers(NUMBER_CFG);\n\ndataFirstSkip[0] = null;\ndataMiddleSkip[Number.parseInt(dataMiddleSkip.length / 2, 10)] = null;\ndataLastSkip[dataLastSkip.length - 1] = null;\n\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Skip first dataset',\n data: dataFirstSkip,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Skip mid dataset',\n data: dataMiddleSkip,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n },\n {\n label: 'Skip last dataset',\n data: dataLastSkip,\n borderColor: Utils.CHART_COLORS.green,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Radar Skip Points Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/radar.html"}},[t._v("Radar")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/229.3daa3b7e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/229.3daa3b7e.js new file mode 100644 index 0000000..81527c1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/229.3daa3b7e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[229],{559:function(a,t,n){"use strict";n.r(t);var e=n(6),s=Object(e.a)({},(function(){var a=this,t=a.$createElement,n=a._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[n("h1",{attrs:{id:"radar"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#radar"}},[a._v("#")]),a._v(" Radar")]),a._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: 0, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'radar',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Radar Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[a._v("#")]),a._v(" Docs")]),a._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/radar.html"}},[a._v("Radar")])],1),a._v(" "),n("li",[n("RouterLink",{attrs:{to:"/general/data-structures.html"}},[a._v("Data structures ("),n("code",[a._v("labels")]),a._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/23.2c668e20.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/23.2c668e20.js new file mode 100644 index 0000000..8211ad4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/23.2c668e20.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{354:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-animationevent"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-animationevent"}},[t._v("#")]),t._v(" Interface: AnimationEvent")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"currentstep"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#currentstep"}},[t._v("#")]),t._v(" currentStep")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("currentStep")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L16",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:16"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"initial"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initial"}},[t._v("#")]),t._v(" initial")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("initial")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L15",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:15"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"numsteps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#numsteps"}},[t._v("#")]),t._v(" numSteps")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("numSteps")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/animation.d.ts#L14",target:"_blank",rel:"noopener noreferrer"}},[t._v("animation.d.ts:14"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/230.7e5a85b1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/230.7e5a85b1.js new file mode 100644 index 0000000..934774c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/230.7e5a85b1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[230],{560:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"scatter-multi-axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scatter-multi-axis"}},[t._v("#")]),t._v(" Scatter - Multi axis")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.bubbles({count: chart.data.labels.length, rmin: 1, rmax: 1, min: -100, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.bubbles({count: data.labels.length, rmin: 1, rmax: 1, min: -100, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.bubbles({count: 1, rmin: 1, rmax: 1, min: -100, max: 100})[0]);\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, rmin: 1, rmax: 1, min: -100, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n yAxisID: 'y',\n },\n {\n label: 'Dataset 2',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.orange,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange, 0.5),\n yAxisID: 'y2',\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Scatter Multi Axis Chart'\n }\n },\n scales: {\n y: {\n type: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n position: 'left',\n ticks: {\n color: Utils.CHART_COLORS.red\n }\n },\n y2: {\n type: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance\n position: 'right',\n reverse: true,\n ticks: {\n color: Utils.CHART_COLORS.blue\n },\n grid: {\n drawOnChartArea: false // only want the grid lines for one axis to show up\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/scatter.html"}},[t._v("Scatter")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/"}},[t._v("Cartesian Axes")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[t._v("Axis Position")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/231.b83d12f1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/231.b83d12f1.js new file mode 100644 index 0000000..5e23951 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/231.b83d12f1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[231],{561:function(t,a,n){"use strict";n.r(a);var e=n(6),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"scatter"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#scatter"}},[t._v("#")]),t._v(" Scatter")]),t._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.bubbles({count: chart.data.labels.length, rmin: 1, rmax: 1, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n data: Utils.bubbles({count: data.labels.length, rmin: 1, rmax: 1, min: 0, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.bubbles({count: 1, rmin: 1, rmax: 1, min: 0, max: 100})[0]);\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, rmin: 1, rmax: 1, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.bubbles(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.orange,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n title: {\n display: true,\n text: 'Chart.js Scatter Chart'\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/Graficas/scatter.html"}},[t._v("Scatter")])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/232.e902f42d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/232.e902f42d.js new file mode 100644 index 0000000..cabcc15 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/232.e902f42d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[232],{562:function(t,a,n){"use strict";n.r(a);var e=n(6),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"stacked-bar-line"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#stacked-bar-line"}},[t._v("#")]),t._v(" Stacked bar/line")]),t._v(" "),n("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: Utils.transparentize(dsColor, 0.5),\n borderColor: dsColor,\n borderWidth: 1,\n stack: 'combined',\n data: Utils.numbers({count: data.labels.length, min: 0, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n stack: 'combined',\n type: 'bar'\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n stack: 'combined'\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Stacked Line/Bar Chart'\n }\n },\n scales: {\n y: {\n stacked: true\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),n("h2",{attrs:{id:"docs"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/axes/"}},[t._v("Axes scales")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[t._v("Common options to all axes ("),n("code",[t._v("stacked")]),t._v(")")])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("Stacking")])],1)])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),n("code",[t._v("labels")]),t._v(")")]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/general/data-structures.html#dataset-configuration"}},[t._v("Dataset Configuration ("),n("code",[t._v("stack")]),t._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/233.b4f254c0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/233.b4f254c0.js new file mode 100644 index 0000000..211b047 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/233.b4f254c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[233],{563:function(t,n,r){"use strict";r.r(n);var e=r(6),o=Object(e.a)({},(function(){var t=this,n=t.$createElement,r=t._self._c||n;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"chart-area-border"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#chart-area-border"}},[t._v("#")]),t._v(" Chart Area Border")]),t._v(" "),r("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst chartAreaBorder = {\n id: 'chartAreaBorder',\n beforeDraw(chart, args, options) {\n const {ctx, chartArea: {left, top, width, height}} = chart;\n ctx.save();\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.setLineDash(options.borderDash || []);\n ctx.lineDashOffset = options.borderDashOffset;\n ctx.strokeRect(left, top, width, height);\n ctx.restore();\n }\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n chartAreaBorder: {\n borderColor: 'red',\n borderWidth: 2,\n borderDash: [5, 5],\n borderDashOffset: 2,\n }\n }\n },\n plugins: [chartAreaBorder]\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),r("h2",{attrs:{id:"docs"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),r("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/developers/plugins.html"}},[t._v("Plugins")])],1)])],1)}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/234.d975df48.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/234.d975df48.js new file mode 100644 index 0000000..e8beaa8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/234.d975df48.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[234],{564:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"doughnut-empty-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#doughnut-empty-state"}},[t._v("#")]),t._v(" Doughnut Empty State")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst data = {\n labels: [],\n datasets: [\n {\n label: 'Dataset 1',\n data: []\n }\n ]\n};\n// \n\n// \nconst plugin = {\n id: 'emptyDoughnut',\n afterDraw(chart, args, options) {\n const {datasets} = chart.data;\n const {color, width, radiusDecrease} = options;\n let hasData = false;\n\n for (let i = 0; i < datasets.length; i += 1) {\n const dataset = datasets[i];\n hasData |= dataset.data.length > 0;\n }\n\n if (!hasData) {\n const {chartArea: {left, top, right, bottom}, ctx} = chart;\n const centerX = (left + right) / 2;\n const centerY = (top + bottom) / 2;\n const r = Math.min(right - left, bottom - top) / 2;\n\n ctx.beginPath();\n ctx.lineWidth = width || 2;\n ctx.strokeStyle = color || 'rgba(255, 128, 0, 0.5)';\n ctx.arc(centerX, centerY, (r - radiusDecrease || 0), 0, 2 * Math.PI);\n ctx.stroke();\n }\n }\n};\n// \n\n// \nconst config = {\n type: 'doughnut',\n data: data,\n options: {\n plugins: {\n emptyDoughnut: {\n color: 'rgba(255, 128, 0, 0.5)',\n width: 2,\n radiusDecrease: 20\n }\n }\n },\n plugins: [plugin]\n};\n// \n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.points(NUMBER_CFG);\n });\n chart.update();\n }\n },\n];\n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/developers/plugins.html"}},[t._v("Plugins")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[t._v("Doughnut and Pie Graficas")])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/235.71a7be7d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/235.71a7be7d.js new file mode 100644 index 0000000..10dd69d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/235.71a7be7d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[235],{565:function(t,n,a){"use strict";a.r(n);var o=a(6),e=Object(o.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"quadrants"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#quadrants"}},[t._v("#")]),t._v(" Quadrants")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.points(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.points(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst quadrants = {\n id: 'quadrants',\n beforeDraw(chart, args, options) {\n const {ctx, chartArea: {left, top, right, bottom}, scales: {x, y}} = chart;\n const midX = x.getPixelForValue(0);\n const midY = y.getPixelForValue(0);\n ctx.save();\n ctx.fillStyle = options.topLeft;\n ctx.fillRect(left, top, midX - left, midY - top);\n ctx.fillStyle = options.topRight;\n ctx.fillRect(midX, top, right - midX, midY - top);\n ctx.fillStyle = options.bottomRight;\n ctx.fillRect(midX, midY, right - midX, bottom - midY);\n ctx.fillStyle = options.bottomLeft;\n ctx.fillRect(left, midY, midX - left, bottom - midY);\n ctx.restore();\n }\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n plugins: {\n quadrants: {\n topLeft: Utils.CHART_COLORS.red,\n topRight: Utils.CHART_COLORS.blue,\n bottomRight: Utils.CHART_COLORS.green,\n bottomLeft: Utils.CHART_COLORS.yellow,\n }\n }\n },\n plugins: [quadrants]\n};\n// \n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.points(NUMBER_CFG);\n });\n chart.update();\n }\n },\n];\n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/developers/plugins.html"}},[t._v("Plugins")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/scatter.html"}},[t._v("Scatter")])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/236.05d87a5e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/236.05d87a5e.js new file mode 100644 index 0000000..a304046 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/236.05d87a5e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[236],{566:function(n,t,s){"use strict";s.r(t);var o=s(6),a=Object(o.a)({},(function(){var n=this,t=n.$createElement,s=n._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[s("h1",{attrs:{id:"center-positioning"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#center-positioning"}},[n._v("#")]),n._v(" Center Positioning")]),n._v(" "),s("p",[n._v("This sample show how to place the axis in the center of the chart area, instead of at the edges.")]),n._v(" "),s("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Default Positions',\n handler(chart) {\n chart.options.scales.x.position = 'bottom';\n chart.options.scales.y.position = 'left';\n chart.update();\n }\n },\n {\n name: 'Position: center',\n handler(chart) {\n chart.options.scales.x.position = 'center';\n chart.options.scales.y.position = 'center';\n chart.update();\n }\n },\n {\n name: 'Position: Vertical: x=-60, Horizontal: y=30',\n handler(chart) {\n chart.options.scales.x.position = {y: 30};\n chart.options.scales.y.position = {x: -60};\n chart.update();\n }\n },\n];\n// \n\n\n// \nconst DATA_COUNT = 6;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.points(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.points(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'scatter',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Axis Center Positioning'\n }\n },\n scales: {\n x: {\n min: -100,\n max: 100,\n },\n y: {\n min: -100,\n max: 100,\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),s("h2",{attrs:{id:"docs"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Graficas/scatter.html"}},[n._v("Scatter")])],1),n._v(" "),s("li",[s("RouterLink",{attrs:{to:"/axes/cartesian/"}},[n._v("Cartesian Axes")]),n._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/axes/cartesian/#axis-position"}},[n._v("Axis Position")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/237.d518e28b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/237.d518e28b.js new file mode 100644 index 0000000..a4da311 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/237.d518e28b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[237],{567:function(t,n,e){"use strict";e.r(n);var a=e(6),o=Object(a.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"grid-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#grid-configuration"}},[t._v("#")]),t._v(" Grid Configuration")]),t._v(" "),e("p",[t._v("This sample shows how to use scriptable grid options for an axis to control styling. In this case, the Y axis grid lines are colored based on their value. In addition, booleans are provided to toggle different parts of the X axis grid visibility.")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: -100, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: [10, 30, 39, 20, 25, 34, -10],\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: [18, 33, 22, 19, 11, -39, 30],\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \n// Change these settings to change the display for different parts of the X axis\n// grid configuiration\nconst DISPLAY = true;\nconst BORDER = true;\nconst CHART_AREA = true;\nconst TICKS = true;\n\nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Grid Line Settings'\n }\n },\n scales: {\n x: {\n grid: {\n display: DISPLAY,\n drawBorder: BORDER,\n drawOnChartArea: CHART_AREA,\n drawTicks: TICKS,\n }\n },\n y: {\n grid: {\n drawBorder: false,\n color: function(context) {\n if (context.tick.value > 0) {\n return Utils.CHART_COLORS.green;\n } else if (context.tick.value < 0) {\n return Utils.CHART_COLORS.red;\n }\n\n return '#000000';\n },\n },\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#tick"}},[t._v("Tick Context")])],1)])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/styling.html"}},[t._v("Axes Styling")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/styling.html#grid-line-configuration"}},[t._v("Grid Line Configuration")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/238.eb60e397.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/238.eb60e397.js new file mode 100644 index 0000000..b22ce0f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/238.eb60e397.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[238],{568:function(n,t,e){"use strict";e.r(t);var a=e(6),i=Object(a.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"tick-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tick-configuration"}},[n._v("#")]),n._v(" Tick Configuration")]),n._v(" "),e("p",[n._v("This sample shows how to use different tick features to control how tick labels are shown on the X axis. These features include:")]),n._v(" "),e("ul",[e("li",[n._v("Multi-line labels")]),n._v(" "),e("li",[n._v("Filtering labels")]),n._v(" "),e("li",[n._v("Changing the tick color")]),n._v(" "),e("li",[n._v("Changing the tick alignment for the X axis")])]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Alignment: start',\n handler(chart) {\n chart.options.scales.x.ticks.align = 'start';\n chart.update();\n }\n },\n {\n name: 'Alignment: center (default)',\n handler(chart) {\n chart.options.scales.x.ticks.align = 'center';\n chart.update();\n }\n },\n {\n name: 'Alignment: end',\n handler(chart) {\n chart.options.scales.x.ticks.align = 'end';\n chart.update();\n }\n },\n];\n// \n\n\n// \nconst DATA_COUNT = 12;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\nconst data = {\n labels: [['June', '2015'], 'July', 'August', 'September', 'October', 'November', 'December', ['January', '2016'], 'February', 'March', 'April', 'May'],\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart with Tick Configuration'\n }\n },\n scales: {\n x: {\n ticks: {\n // For a category axis, the val is the index so the lookup via getLabelForValue is needed\n callback: function(val, index) {\n // Hide every 2nd tick label\n return index % 2 === 0 ? this.getLabelForValue(val) : '';\n },\n color: 'red',\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/options.html#tick"}},[n._v("Tick Context")])],1)])],1)])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),e("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/styling.html"}},[n._v("Axes Styling")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/styling.html#tick-configuration"}},[n._v("Tick Configuration")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/239.81fecfed.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/239.81fecfed.js new file mode 100644 index 0000000..a721907 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/239.81fecfed.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[239],{569:function(t,n,e){"use strict";e.r(n);var a=e(6),o=Object(a.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"title-configuration"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#title-configuration"}},[t._v("#")]),t._v(" Title Configuration")]),t._v(" "),e("p",[t._v("This sample shows how to configure the title of an axis including alignment, font, and color.")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n scales: {\n x: {\n display: true,\n title: {\n display: true,\n text: 'Month',\n color: '#911',\n font: {\n family: 'Comic Sans MS',\n size: 20,\n weight: 'bold',\n lineHeight: 1.2,\n },\n padding: {top: 20, left: 0, right: 0, bottom: 0}\n }\n },\n y: {\n display: true,\n title: {\n display: true,\n text: 'Value',\n color: '#191',\n font: {\n family: 'Times',\n size: 20,\n style: 'normal',\n lineHeight: 1.2\n },\n padding: {top: 30, left: 0, right: 0, bottom: 0}\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/styling.html"}},[t._v("Axes Styling")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/cartesian/"}},[t._v("Cartesian Axes")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/cartesian/#common-options-to-all-cartesian-axes"}},[t._v("Common options to all cartesian axes")])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/labelling.html"}},[t._v("Labeling Axes")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/labelling.html#scale-title-configuration"}},[t._v("Scale Title Configuration")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/24.af200d5b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/24.af200d5b.js new file mode 100644 index 0000000..aa7eec6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/24.af200d5b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{355:function(e,t,r){"use strict";r.r(t);var a=r(6),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-arcborderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-arcborderradius"}},[e._v("#")]),e._v(" Interface: ArcBorderRadius")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"innerend"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#innerend"}},[e._v("#")]),e._v(" innerEnd")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("innerEnd")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1725",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1725"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"innerstart"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#innerstart"}},[e._v("#")]),e._v(" innerStart")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("innerStart")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1724",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1724"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"outerend"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#outerend"}},[e._v("#")]),e._v(" outerEnd")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("outerEnd")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1723",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1723"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"outerstart"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#outerstart"}},[e._v("#")]),e._v(" outerStart")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("outerStart")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1722",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1722"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/240.c0869bc2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/240.c0869bc2.js new file mode 100644 index 0000000..faad37f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/240.c0869bc2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[240],{570:function(t,n,e){"use strict";e.r(n);var s=e(6),a=Object(s.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"linear-scale-suggested-min-max"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linear-scale-suggested-min-max"}},[t._v("#")]),t._v(" Linear Scale - Suggested Min-Max")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: [10, 30, 39, 20, 25, 34, -10],\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: [18, 33, 22, 19, 11, 39, 30],\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.CHART_COLORS.blue,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Suggested Min and Max Settings'\n }\n },\n scales: {\n y: {\n // the data minimum used for determining the ticks is Math.min(dataMin, suggestedMin)\n suggestedMin: 30,\n\n // the data maximum used for determining the ticks is Math.max(dataMax, suggestedMax)\n suggestedMax: 50,\n }\n }\n },\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/"}},[t._v("Axes scales")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[t._v("Common options to all axes")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/#axis-range-settings"}},[t._v("Axis Range Settings")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/241.59dc896f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/241.59dc896f.js new file mode 100644 index 0000000..fd07591 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/241.59dc896f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[241],{571:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"linear-scale-min-max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-scale-min-max"}},[n._v("#")]),n._v(" Linear Scale - Min-Max")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: [10, 30, 50, 20, 25, 44, -10],\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: [100, 33, 22, 19, 11, 49, 30],\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.CHART_COLORS.blue,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Min and Max Settings'\n }\n },\n scales: {\n y: {\n min: 10,\n max: 50,\n }\n }\n },\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/"}},[n._v("Axes scales")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[n._v("Common options to all axes ("),a("code",[n._v("min")]),n._v(","),a("code",[n._v("max")]),n._v(")")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/242.6d423d39.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/242.6d423d39.js new file mode 100644 index 0000000..898f77e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/242.6d423d39.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[242],{572:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"linear-scale-step-size"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear-scale-step-size"}},[t._v("#")]),t._v(" Linear Scale - Step Size")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n {\n name: 'Add Dataset',\n handler(chart) {\n const data = chart.data;\n const dsColor = Utils.namedColor(chart.data.datasets.length);\n const newDataset = {\n label: 'Dataset ' + (data.datasets.length + 1),\n backgroundColor: dsColor,\n borderColor: dsColor,\n data: Utils.numbers({count: data.labels.length, min: 0, max: 100}),\n };\n chart.data.datasets.push(newDataset);\n chart.update();\n }\n },\n {\n name: 'Add Data',\n handler(chart) {\n const data = chart.data;\n if (data.datasets.length > 0) {\n data.labels = Utils.months({count: data.labels.length + 1});\n\n for (let index = 0; index < data.datasets.length; ++index) {\n data.datasets[index].data.push(Utils.rand(0, 100));\n }\n\n chart.update();\n }\n }\n },\n {\n name: 'Remove Dataset',\n handler(chart) {\n chart.data.datasets.pop();\n chart.update();\n }\n },\n {\n name: 'Remove Data',\n handler(chart) {\n chart.data.labels.splice(-1, 1); // remove the label first\n\n chart.data.datasets.forEach(dataset => {\n dataset.data.pop();\n });\n\n chart.update();\n }\n }\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.CHART_COLORS.blue,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n tooltip: {\n mode: 'index',\n intersect: false\n },\n title: {\n display: true,\n text: 'Chart.js Line Chart'\n }\n },\n hover: {\n mode: 'index',\n intersec: false\n },\n scales: {\n x: {\n title: {\n display: true,\n text: 'Month'\n }\n },\n y: {\n title: {\n display: true,\n text: 'Value'\n },\n min: 0,\n max: 100,\n ticks: {\n // forces step size to be 50 units\n stepSize: 50\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/"}},[t._v("Axes scales")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/#common-options-to-all-axes"}},[t._v("Common options to all axes ("),a("code",[t._v("min")]),t._v(","),a("code",[t._v("max")]),t._v(")")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/linear.html"}},[t._v("Linear Axis")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/linear.html#linear-axis-specific-tick-options"}},[t._v("Linear Axis specific tick options ("),a("code",[t._v("stepSize")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/linear.html#step-size"}},[t._v("Step Size")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/243.a355eaa8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/243.a355eaa8.js new file mode 100644 index 0000000..6dc6f03 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/243.a355eaa8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[243],{573:function(n,t,a){"use strict";a.r(t);var s=a(6),e=Object(s.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"log-scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#log-scale"}},[n._v("#")]),n._v(" Log Scale")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst logNumbers = (num) => {\n const data = [];\n\n for (let i = 0; i < num; ++i) {\n data.push(Math.ceil(Math.random() * 10.0) * Math.pow(10, Math.ceil(Math.random() * 5)));\n }\n\n return data;\n};\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = logNumbers(chart.data.labels.length);\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: logNumbers(DATA_COUNT),\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n fill: false,\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart - Logarithmic'\n }\n },\n scales: {\n x: {\n display: true,\n },\n y: {\n display: true,\n type: 'logarithmic',\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/logarithmic.html"}},[n._v("Logarithmic Axis")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/244.ad729cf8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/244.ad729cf8.js new file mode 100644 index 0000000..ab5f0c3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/244.ad729cf8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[244],{574:function(t,n,e){"use strict";e.r(n);var s=e(6),a=Object(s.a)({},(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"stacked-linear-category"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#stacked-linear-category"}},[t._v("#")]),t._v(" Stacked Linear / Category")]),t._v(" "),e("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = Utils.months({count: 7});\nconst data = {\n labels: labels,\n datasets: [\n {\n label: 'Dataset 1',\n data: [10, 30, 50, 20, 25, 44, -10],\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.CHART_COLORS.red,\n },\n {\n label: 'Dataset 2',\n data: ['ON', 'ON', 'OFF', 'ON', 'OFF', 'OFF', 'ON'],\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.CHART_COLORS.blue,\n stepped: true,\n yAxisID: 'y2',\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n responsive: true,\n plugins: {\n title: {\n display: true,\n text: 'Stacked scales',\n },\n },\n scales: {\n y: {\n type: 'linear',\n position: 'left',\n stack: 'demo',\n stackWeight: 2,\n grid: {\n borderColor: Utils.CHART_COLORS.red\n }\n },\n y2: {\n type: 'category',\n labels: ['ON', 'OFF'],\n offset: true,\n position: 'left',\n stack: 'demo',\n stackWeight: 1,\n grid: {\n borderColor: Utils.CHART_COLORS.blue\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/axes/"}},[t._v("Axes scales")]),t._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/axes/#stacking"}},[t._v("Stacking")])],1)])],1),t._v(" "),e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),e("code",[t._v("labels")]),t._v(")")])],1)])],1)}),[],!1,null,null,null);n.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/245.c3cd6bbe.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/245.c3cd6bbe.js new file mode 100644 index 0000000..7612923 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/245.c3cd6bbe.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[245],{576:function(t,n,a){"use strict";a.r(n);var e=a(6),s=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"time-scale-combo-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time-scale-combo-chart"}},[t._v("#")]),t._v(" Time Scale - Combo Chart")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = Utils.numbers({count: chart.data.labels.length, min: 0, max: 100});\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst labels = [];\n\nfor (let i = 0; i < DATA_COUNT; ++i) {\n labels.push(Utils.newDate(i));\n}\n\nconst data = {\n labels: labels,\n datasets: [{\n type: 'bar',\n label: 'Dataset 1',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n borderColor: Utils.CHART_COLORS.red,\n data: Utils.numbers(NUMBER_CFG),\n }, {\n type: 'bar',\n label: 'Dataset 2',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n borderColor: Utils.CHART_COLORS.blue,\n data: Utils.numbers(NUMBER_CFG),\n }, {\n type: 'line',\n label: 'Dataset 3',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n borderColor: Utils.CHART_COLORS.green,\n fill: false,\n data: Utils.numbers(NUMBER_CFG),\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n title: {\n text: 'Chart.js Combo Time Scale',\n display: true\n }\n },\n scales: {\n x: {\n type: 'time',\n display: true,\n offset: true,\n time: {\n unit: 'day'\n }\n },\n },\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[t._v("Time Scale")])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/246.d0708528.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/246.d0708528.js new file mode 100644 index 0000000..93520b1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/246.d0708528.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[246],{593:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"time-scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time-scale"}},[n._v("#")]),n._v(" Time Scale")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data.forEach(function(dataObj, j) {\n const newVal = Utils.rand(0, 100);\n\n if (typeof dataObj === 'object') {\n dataObj.y = newVal;\n } else {\n dataset.data[j] = newVal;\n }\n });\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: 0, max: 100};\n\nconst data = {\n labels: [ // Date Objects\n Utils.newDate(0),\n Utils.newDate(1),\n Utils.newDate(2),\n Utils.newDate(3),\n Utils.newDate(4),\n Utils.newDate(5),\n Utils.newDate(6)\n ],\n datasets: [{\n label: 'My First dataset',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n borderColor: Utils.CHART_COLORS.red,\n fill: false,\n data: Utils.numbers(NUMBER_CFG),\n }, {\n label: 'My Second dataset',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n borderColor: Utils.CHART_COLORS.blue,\n fill: false,\n data: Utils.numbers(NUMBER_CFG),\n }, {\n label: 'Dataset with point data',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n borderColor: Utils.CHART_COLORS.green,\n fill: false,\n data: [{\n x: Utils.newDateString(0),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(5),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(7),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(15),\n y: Utils.rand(0, 100)\n }],\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n title: {\n text: 'Chart.js Time Scale',\n display: true\n }\n },\n scales: {\n x: {\n type: 'time',\n time: {\n // Luxon format string\n tooltipFormat: 'DD T'\n },\n title: {\n display: true,\n text: 'Date'\n }\n },\n y: {\n title: {\n display: true,\n text: 'value'\n }\n }\n },\n },\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[n._v("Time Cartesian Axis")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/247.13d65d78.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/247.13d65d78.js new file mode 100644 index 0000000..d3b2160 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/247.13d65d78.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[247],{592:function(n,t,a){"use strict";a.r(t);var e=a(6),s=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"time-scale-max-span"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time-scale-max-span"}},[n._v("#")]),n._v(" Time Scale - Max Span")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data.forEach(function(dataObj, j) {\n const newVal = Utils.rand(0, 100);\n\n if (typeof dataObj === 'object') {\n dataObj.y = newVal;\n } else {\n dataset.data[j] = newVal;\n }\n });\n });\n chart.update();\n }\n },\n];\n// \n\n// \nconst data = {\n datasets: [{\n label: 'Dataset with string point data',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n borderColor: Utils.CHART_COLORS.red,\n fill: false,\n data: [{\n x: Utils.newDateString(0),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(2),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(4),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDateString(6),\n y: Utils.rand(0, 100)\n }],\n }, {\n label: 'Dataset with date object point data',\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n borderColor: Utils.CHART_COLORS.blue,\n fill: false,\n data: [{\n x: Utils.newDate(0),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDate(2),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDate(5),\n y: Utils.rand(0, 100)\n }, {\n x: Utils.newDate(6),\n y: Utils.rand(0, 100)\n }]\n }]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n spanGaps: 1000 * 60 * 60 * 24 * 2, // 2 days\n responsive: true,\n interaction: {\n mode: 'nearest',\n },\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Time - spanGaps: 172800000 (2 days in ms)'\n },\n },\n scales: {\n x: {\n type: 'time',\n display: true,\n title: {\n display: true,\n text: 'Date'\n },\n ticks: {\n autoSkip: false,\n maxRotation: 0,\n major: {\n enabled: true\n },\n // color: function(context) {\n // return context.tick && context.tick.major ? '#FF0000' : 'rgba(0,0,0,0.1)';\n // },\n font: function(context) {\n if (context.tick && context.tick.major) {\n return {\n weight: 'bold',\n };\n }\n }\n }\n },\n y: {\n display: true,\n title: {\n display: true,\n text: 'value'\n }\n }\n }\n },\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html#line-styling"}},[a("code",[n._v("spanGaps")])])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/axes/cartesian/time.html"}},[n._v("Time Scale")])],1)])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/248.1d222543.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/248.1d222543.js new file mode 100644 index 0000000..356bb2a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/248.1d222543.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[248],{577:function(t,n,a){"use strict";a.r(n);var e=a(6),r=Object(e.a)({},(function(){var t=this,n=t.$createElement,a=t._self._c||n;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"bar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bar-chart"}},[t._v("#")]),t._v(" Bar Chart")]),t._v(" "),a("p",[t._v("Demo selecting bar color based on the bar's y value.")]),t._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 16;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: -100,\n max: 100\n });\n}\n\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [{\n data: generateData(),\n }]\n};\n// \n\n// \nfunction colorize(opaque) {\n return (ctx) => {\n const v = ctx.parsed.y;\n const c = v < -50 ? '#D60000'\n : v < 0 ? '#F46300'\n : v < 50 ? '#0358B6'\n : '#44DE28';\n\n return opaque ? c : Utils.transparentize(c, 1 - Math.abs(v / 150));\n };\n}\n\nconst config = {\n type: 'bar',\n data: data,\n options: {\n plugins: {\n legend: false,\n },\n elements: {\n bar: {\n backgroundColor: colorize(false),\n borderColor: colorize(true),\n borderWidth: 2\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bar.html"}},[t._v("Bar")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),a("code",[t._v("labels")]),t._v(")")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html#dataset-configuration"}},[t._v("Dataset Configuration ("),a("code",[t._v("stack")]),t._v(")")])],1)])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[t._v("Options")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[t._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/249.2d7a9bf1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/249.2d7a9bf1.js new file mode 100644 index 0000000..9234861 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/249.2d7a9bf1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[249],{578:function(n,t,a){"use strict";a.r(t);var e=a(6),o=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"bubble-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubble-chart"}},[n._v("#")]),n._v(" Bubble Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 16;\nconst MIN_XY = -150;\nconst MAX_XY = 100;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction generateData() {\n const data = [];\n let i;\n\n for (i = 0; i < DATA_COUNT; ++i) {\n data.push({\n x: Utils.rand(MIN_XY, MAX_XY),\n y: Utils.rand(MIN_XY, MAX_XY),\n v: Utils.rand(0, 1000)\n });\n }\n\n return data;\n}\n\nconst data = {\n datasets: [{\n data: generateData()\n }, {\n data: generateData()\n }]\n};\n// \n\n// \nfunction channelValue(x, y, values) {\n return x < 0 && y < 0 ? values[0] : x < 0 ? values[1] : y < 0 ? values[2] : values[3];\n}\n\nfunction colorize(opaque, context) {\n const value = context.raw;\n const x = value.x / 100;\n const y = value.y / 100;\n const r = channelValue(x, y, [250, 150, 50, 0]);\n const g = channelValue(x, y, [0, 50, 150, 250]);\n const b = channelValue(x, y, [0, 150, 150, 250]);\n const a = opaque ? 1 : 0.5 * value.v / 1000;\n\n return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n}\n\nconst config = {\n type: 'bubble',\n data: data,\n options: {\n aspectRatio: 1,\n plugins: {\n legend: false,\n tooltip: false,\n },\n elements: {\n point: {\n backgroundColor: colorize.bind(null, false),\n\n borderColor: colorize.bind(null, true),\n\n borderWidth: function(context) {\n return Math.min(Math.max(1, context.datasetIndex + 1), 8);\n },\n\n hoverBackgroundColor: 'transparent',\n\n hoverBorderColor: function(context) {\n return Utils.color(context.datasetIndex);\n },\n\n hoverBorderWidth: function(context) {\n return Math.round(8 * context.raw.v / 1000);\n },\n\n radius: function(context) {\n const size = context.chart.width;\n const base = Math.abs(context.raw.v) / 1000;\n return (size / 24) * base;\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/bubble.html"}},[n._v("Bubble")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")])],1)])],1)])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/25.4f97f63f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/25.4f97f63f.js new file mode 100644 index 0000000..30cb22d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/25.4f97f63f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{356:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-arcelement-t-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-arcelement-t-o"}},[t._v("#")]),t._v(" Interface: ArcElement")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcProps.html"}},[a("code",[t._v("ArcProps")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcProps.html"}},[a("code",[t._v("ArcProps")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[a("code",[t._v("ArcOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[a("code",[t._v("ArcOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[a("code",[t._v("VisualElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("ArcElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("area?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("area?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1685",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1685"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcenterpoint"}},[t._v("#")]),t._v(" getCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getCenterPoint")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getcenterpoint"}},[t._v("getCenterPoint")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1689",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1689"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("code",[t._v("T")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getrange"}},[t._v("#")]),t._v(" getRange")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getRange")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getrange"}},[t._v("getRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1690",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1690"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inrange"}},[t._v("#")]),t._v(" inRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inrange"}},[t._v("inRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1686",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1686"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inxrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inxrange"}},[t._v("#")]),t._v(" inXRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inXRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inxrange"}},[t._v("inXRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1687"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inyrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inyrange"}},[t._v("#")]),t._v(" inYRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inYRange")]),t._v("("),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inyrange"}},[t._v("inYRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1688"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/250.09ef38e2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/250.09ef38e2.js new file mode 100644 index 0000000..f09c2e1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/250.09ef38e2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[250],{579:function(n,t,a){"use strict";a.r(t);var e=a(6),o=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"line-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line-chart"}},[n._v("#")]),n._v(" Line Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 12;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: 0,\n max: 100\n });\n}\n\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [{\n data: generateData()\n }]\n};\n// \n\n// \nfunction getLineColor(ctx) {\n return Utils.color(ctx.datasetIndex);\n}\n\nfunction alternatePointStyles(ctx) {\n const index = ctx.dataIndex;\n return index % 2 === 0 ? 'circle' : 'rect';\n}\n\nfunction makeHalfAsOpaque(ctx) {\n return Utils.transparentize(getLineColor(ctx));\n}\n\nfunction adjustRadiusBasedOnData(ctx) {\n const v = ctx.parsed.y;\n return v < 10 ? 5\n : v < 25 ? 7\n : v < 50 ? 9\n : v < 75 ? 11\n : 15;\n}\n\nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n legend: false,\n tooltip: true,\n },\n elements: {\n line: {\n fill: false,\n backgroundColor: getLineColor,\n borderColor: getLineColor,\n },\n point: {\n backgroundColor: getLineColor,\n hoverBackgroundColor: makeHalfAsOpaque,\n radius: adjustRadiusBasedOnData,\n pointStyle: alternatePointStyles,\n hoverRadius: 15,\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html#point-styling"}},[n._v("Point Styling")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1)])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/251.0cb90e8a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/251.0cb90e8a.js new file mode 100644 index 0000000..b87c502 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/251.0cb90e8a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[251],{580:function(n,t,a){"use strict";a.r(t);var o=a(6),e=Object(o.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"pie-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pie-chart"}},[n._v("#")]),n._v(" Pie Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 5;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n {\n name: 'Toggle Doughnut View',\n handler(chart) {\n if (chart.options.cutout) {\n chart.options.cutout = 0;\n } else {\n chart.options.cutout = '50%';\n }\n chart.update();\n }\n }\n];\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: -100,\n max: 100\n });\n}\n\nconst data = {\n datasets: [{\n data: generateData()\n }]\n};\n// \n\n// \nfunction colorize(opaque, hover, ctx) {\n const v = ctx.parsed;\n const c = v < -50 ? '#D60000'\n : v < 0 ? '#F46300'\n : v < 50 ? '#0358B6'\n : '#44DE28';\n\n const opacity = hover ? 1 - Math.abs(v / 150) - 0.2 : 1 - Math.abs(v / 150);\n\n return opaque ? c : Utils.transparentize(c, opacity);\n}\n\nfunction hoverColorize(ctx) {\n return colorize(false, true, ctx);\n}\n\nconst config = {\n type: 'pie',\n data: data,\n options: {\n plugins: {\n legend: false,\n tooltip: false,\n },\n elements: {\n arc: {\n backgroundColor: colorize.bind(null, false, false),\n hoverBackgroundColor: hoverColorize\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/doughnut.html"}},[n._v("Doughnut and Pie Graficas")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/252.2ff0def4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/252.2ff0def4.js new file mode 100644 index 0000000..20849ea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/252.2ff0def4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[252],{581:function(n,t,a){"use strict";a.r(t);var o=a(6),e=Object(o.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"polar-area-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polar-area-chart"}},[n._v("#")]),n._v(" Polar Area Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: 0,\n max: 100\n });\n}\n\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [{\n data: generateData()\n }]\n};\n// \n\n// \nfunction colorize(opaque, hover, ctx) {\n const v = ctx.raw;\n const c = v < 35 ? '#D60000'\n : v < 55 ? '#F46300'\n : v < 75 ? '#0358B6'\n : '#44DE28';\n\n const opacity = hover ? 1 - Math.abs(v / 150) - 0.2 : 1 - Math.abs(v / 150);\n\n return opaque ? c : Utils.transparentize(c, opacity);\n}\n\nfunction hoverColorize(ctx) {\n return colorize(false, true, ctx);\n}\n\nconst config = {\n type: 'polarArea',\n data: data,\n options: {\n plugins: {\n legend: false,\n tooltip: false,\n },\n elements: {\n arc: {\n backgroundColor: colorize.bind(null, false, false),\n hoverBackgroundColor: hoverColorize\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/polar.html"}},[n._v("Polar Area Chart")])],1)])],1)}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/253.61c7c505.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/253.61c7c505.js new file mode 100644 index 0000000..861f081 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/253.61c7c505.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[253],{582:function(n,t,a){"use strict";a.r(t);var e=a(6),r=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"radar-chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radar-chart"}},[n._v("#")]),n._v(" Radar Chart")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nUtils.srand(110);\n\nconst actions = [\n {\n name: 'Randomize',\n handler(chart) {\n chart.data.datasets.forEach(dataset => {\n dataset.data = generateData();\n });\n chart.update();\n }\n },\n];\n// \n\n// \nfunction generateData() {\n return Utils.numbers({\n count: DATA_COUNT,\n min: 0,\n max: 100\n });\n}\n\nconst data = {\n labels: [['Eating', 'Dinner'], ['Drinking', 'Water'], 'Sleeping', ['Designing', 'Graphics'], 'Coding', 'Cycling', 'Running'],\n datasets: [{\n data: generateData()\n }]\n};\n// \n\n// \nfunction getLineColor(ctx) {\n return Utils.color(ctx.datasetIndex);\n}\n\nfunction alternatePointStyles(ctx) {\n const index = ctx.dataIndex;\n return index % 2 === 0 ? 'circle' : 'rect';\n}\n\nfunction makeHalfAsOpaque(ctx) {\n return Utils.transparentize(getLineColor(ctx));\n}\n\nfunction make20PercentOpaque(ctx) {\n return Utils.transparentize(getLineColor(ctx), 0.8);\n}\n\nfunction adjustRadiusBasedOnData(ctx) {\n const v = ctx.parsed.y;\n return v < 10 ? 5\n : v < 25 ? 7\n : v < 50 ? 9\n : v < 75 ? 11\n : 15;\n}\n\nconst config = {\n type: 'radar',\n data: data,\n options: {\n plugins: {\n legend: false,\n tooltip: false,\n },\n elements: {\n line: {\n backgroundColor: make20PercentOpaque,\n borderColor: getLineColor,\n },\n point: {\n backgroundColor: getLineColor,\n hoverBackgroundColor: makeHalfAsOpaque,\n radius: adjustRadiusBasedOnData,\n pointStyle: alternatePointStyles,\n hoverRadius: 15,\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions,\n config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html"}},[n._v("Options")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/options.html#scriptable-options"}},[n._v("Scriptable Options")])],1)])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/radar.html"}},[n._v("Radar")])],1)])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/254.20137eeb.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/254.20137eeb.js new file mode 100644 index 0000000..7e4ccea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/254.20137eeb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[254],{583:function(t,n,s){"use strict";s.r(n);var a=s(6),e=Object(a.a)({},(function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"basic"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#basic"}},[t._v("#")]),t._v(" Basic")]),t._v(" "),s("p",[t._v("This sample shows basic usage of subtitle.")]),t._v(" "),s("chart-editor",{attrs:{code:"// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n title: {\n display: true,\n text: 'Chart Title',\n },\n subtitle: {\n display: true,\n text: 'Chart Subtitle',\n color: 'blue',\n font: {\n size: 12,\n family: 'tahoma',\n weight: 'normal',\n style: 'italic'\n },\n padding: {\n bottom: 10\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n config: config,\n};\n"}}),s("h2",{attrs:{id:"docs"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),s("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/configuration/title.html"}},[t._v("Title")])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/configuration/subtitle.html"}},[t._v("Subtitle")])],1)])],1)}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/255.49c937e9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/255.49c937e9.js new file mode 100644 index 0000000..7941e9b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/255.49c937e9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[255],{584:function(n,t,e){"use strict";e.r(t);var a=e(6),l=Object(a.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"alignment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#alignment"}},[n._v("#")]),n._v(" Alignment")]),n._v(" "),e("p",[n._v("This sample show how to configure the alignment of the chart title")]),n._v(" "),e("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Title Alignment: start',\n handler(chart) {\n chart.options.plugins.title.align = 'start';\n chart.update();\n }\n },\n {\n name: 'Title Alignment: center (default)',\n handler(chart) {\n chart.options.plugins.title.align = 'center';\n chart.update();\n }\n },\n {\n name: 'Title Alignment: end',\n handler(chart) {\n chart.options.plugins.title.align = 'end';\n chart.update();\n }\n },\n];\n// \n\n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n plugins: {\n title: {\n display: true,\n text: 'Chart Title',\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),e("h2",{attrs:{id:"docs"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),e("ul",[e("li",[e("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),e("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),e("li",[e("RouterLink",{attrs:{to:"/configuration/title.html"}},[n._v("Title")])],1)])],1)}),[],!1,null,null,null);t.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/256.8d709dae.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/256.8d709dae.js new file mode 100644 index 0000000..f212e31 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/256.8d709dae.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[256],{586:function(t,n,o){"use strict";o.r(n);var l=o(6),s=Object(l.a)({},(function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"custom-tooltip-content"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#custom-tooltip-content"}},[t._v("#")]),t._v(" Custom Tooltip Content")]),t._v(" "),o("p",[t._v("This sample shows how to use the tooltip callbacks to add additional content to the tooltip.")]),t._v(" "),o("chart-editor",{attrs:{code:"// \nconst footer = (tooltipItems) => {\n let sum = 0;\n\n tooltipItems.forEach(function(tooltipItem) {\n sum += tooltipItem.parsed.y;\n });\n return 'Sum: ' + sum;\n};\n\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100, decimals: 0};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n plugins: {\n tooltip: {\n callbacks: {\n footer: footer,\n }\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),o("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html#tooltip-callbacks"}},[t._v("Tooltip Callbacks")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/257.b3ebdce7.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/257.b3ebdce7.js new file mode 100644 index 0000000..ec32b16 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/257.b3ebdce7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[257],{585:function(t,n,o){"use strict";o.r(n);var e=o(6),l=Object(e.a)({},(function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"external-html-tooltip"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#external-html-tooltip"}},[t._v("#")]),t._v(" External HTML Tooltip")]),t._v(" "),o("p",[t._v("This sample shows how to use the external tooltip functionality to generate an HTML tooltip.")]),t._v(" "),o("chart-editor",{attrs:{code:"// \nconst getOrCreateTooltip = (chart) => {\n let tooltipEl = chart.canvas.parentNode.querySelector('div');\n\n if (!tooltipEl) {\n tooltipEl = document.createElement('div');\n tooltipEl.style.background = 'rgba(0, 0, 0, 0.7)';\n tooltipEl.style.borderRadius = '3px';\n tooltipEl.style.color = 'white';\n tooltipEl.style.opacity = 1;\n tooltipEl.style.pointerEvents = 'none';\n tooltipEl.style.position = 'absolute';\n tooltipEl.style.transform = 'translate(-50%, 0)';\n tooltipEl.style.transition = 'all .1s ease';\n\n const table = document.createElement('table');\n table.style.margin = '0px';\n\n tooltipEl.appendChild(table);\n chart.canvas.parentNode.appendChild(tooltipEl);\n }\n\n return tooltipEl;\n};\n\nconst externalTooltipHandler = (context) => {\n // Tooltip Element\n const {chart, tooltip} = context;\n const tooltipEl = getOrCreateTooltip(chart);\n\n // Hide if no tooltip\n if (tooltip.opacity === 0) {\n tooltipEl.style.opacity = 0;\n return;\n }\n\n // Set Text\n if (tooltip.body) {\n const titleLines = tooltip.title || [];\n const bodyLines = tooltip.body.map(b => b.lines);\n\n const tableHead = document.createElement('thead');\n\n titleLines.forEach(title => {\n const tr = document.createElement('tr');\n tr.style.borderWidth = 0;\n\n const th = document.createElement('th');\n th.style.borderWidth = 0;\n const text = document.createTextNode(title);\n\n th.appendChild(text);\n tr.appendChild(th);\n tableHead.appendChild(tr);\n });\n\n const tableBody = document.createElement('tbody');\n bodyLines.forEach((body, i) => {\n const colors = tooltip.labelColors[i];\n\n const span = document.createElement('span');\n span.style.background = colors.backgroundColor;\n span.style.borderColor = colors.borderColor;\n span.style.borderWidth = '2px';\n span.style.marginRight = '10px';\n span.style.height = '10px';\n span.style.width = '10px';\n span.style.display = 'inline-block';\n\n const tr = document.createElement('tr');\n tr.style.backgroundColor = 'inherit';\n tr.style.borderWidth = 0;\n\n const td = document.createElement('td');\n td.style.borderWidth = 0;\n\n const text = document.createTextNode(body);\n\n td.appendChild(span);\n td.appendChild(text);\n tr.appendChild(td);\n tableBody.appendChild(tr);\n });\n\n const tableRoot = tooltipEl.querySelector('table');\n\n // Remove old children\n while (tableRoot.firstChild) {\n tableRoot.firstChild.remove();\n }\n\n // Add new children\n tableRoot.appendChild(tableHead);\n tableRoot.appendChild(tableBody);\n }\n\n const {offsetLeft: positionX, offsetTop: positionY} = chart.canvas;\n\n // Display, position, and set styles for font\n tooltipEl.style.opacity = 1;\n tooltipEl.style.left = positionX + tooltip.caretX + 'px';\n tooltipEl.style.top = positionY + tooltip.caretY + 'px';\n tooltipEl.style.font = tooltip.options.bodyFont.string;\n tooltipEl.style.padding = tooltip.options.padding + 'px ' + tooltip.options.padding + 'px';\n};\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100, decimals: 0};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n title: {\n display: true,\n text: 'Chart.js Line Chart - External Tooltips'\n },\n tooltip: {\n enabled: false,\n position: 'nearest',\n external: externalTooltipHandler\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: [],\n config: config,\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),o("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html#external-custom-tooltips"}},[t._v("External (Custom) Tooltips")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/258.792f66d1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/258.792f66d1.js new file mode 100644 index 0000000..cf58de9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/258.792f66d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[258],{587:function(n,t,a){"use strict";a.r(t);var e=a(6),o=Object(e.a)({},(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[a("h1",{attrs:{id:"interaction-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interaction-modes"}},[n._v("#")]),n._v(" Interaction Modes")]),n._v(" "),a("p",[n._v("This sample shows how to use the tooltip position mode setting.")]),n._v(" "),a("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Mode: index',\n handler(chart) {\n chart.options.interaction.axis = 'xy';\n chart.options.interaction.mode = 'index';\n chart.update();\n }\n },\n {\n name: 'Mode: dataset',\n handler(chart) {\n chart.options.interaction.axis = 'xy';\n chart.options.interaction.mode = 'dataset';\n chart.update();\n }\n },\n {\n name: 'Mode: point',\n handler(chart) {\n chart.options.interaction.axis = 'xy';\n chart.options.interaction.mode = 'point';\n chart.update();\n }\n },\n {\n name: 'Mode: nearest, axis: xy',\n handler(chart) {\n chart.options.interaction.axis = 'xy';\n chart.options.interaction.mode = 'nearest';\n chart.update();\n }\n },\n {\n name: 'Mode: nearest, axis: x',\n handler(chart) {\n chart.options.interaction.axis = 'x';\n chart.options.interaction.mode = 'nearest';\n chart.update();\n }\n },\n {\n name: 'Mode: nearest, axis: y',\n handler(chart) {\n chart.options.interaction.axis = 'y';\n chart.options.interaction.mode = 'nearest';\n chart.update();\n }\n },\n {\n name: 'Mode: x',\n handler(chart) {\n chart.options.interaction.mode = 'x';\n chart.update();\n }\n },\n {\n name: 'Mode: y',\n handler(chart) {\n chart.options.interaction.mode = 'y';\n chart.update();\n }\n },\n {\n name: 'Toggle Intersect',\n handler(chart) {\n chart.options.interaction.intersect = !chart.options.interaction.intersect;\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n },\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n plugins: {\n title: {\n display: true,\n text: (ctx) => {\n const {axis = 'xy', intersect, mode} = ctx.chart.options.interaction;\n return 'Mode: ' + mode + ', axis: ' + axis + ', intersect: ' + intersect;\n }\n },\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),a("h2",{attrs:{id:"docs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[n._v("#")]),n._v(" Docs")]),n._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/general/data-structures.html"}},[n._v("Data structures ("),a("code",[n._v("labels")]),n._v(")")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/Graficas/line.html"}},[n._v("Line")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[n._v("Tooltip")])],1),n._v(" "),a("li",[a("RouterLink",{attrs:{to:"/configuration/interactions.html"}},[n._v("Interactions")])],1)])],1)}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/259.98c809e9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/259.98c809e9.js new file mode 100644 index 0000000..202f15a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/259.98c809e9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[259],{588:function(t,n,o){"use strict";o.r(n);var e=o(6),l=Object(e.a)({},(function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"point-style"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#point-style"}},[t._v("#")]),t._v(" Point Style")]),t._v(" "),o("p",[t._v("This sample shows how to use the dataset point style in the tooltip instead of a rectangle to identify each dataset.")]),t._v(" "),o("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Toggle Tooltip Point Style',\n handler(chart) {\n chart.options.plugins.tooltip.usePointStyle = !chart.options.plugins.tooltip.usePointStyle;\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Triangles',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n pointStyle: 'triangle',\n pointRadius: 6,\n },\n {\n label: 'Circles',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n pointStyle: 'circle',\n pointRadius: 6,\n },\n {\n label: 'Stars',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.green,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green, 0.5),\n pointStyle: 'star',\n pointRadius: 6,\n }\n ]\n};\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n interaction: {\n mode: 'index',\n },\n plugins: {\n title: {\n display: true,\n text: (ctx) => 'Tooltip point style: ' + ctx.chart.options.plugins.tooltip.usePointStyle,\n },\n tooltip: {\n usePointStyle: true,\n }\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),o("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip")]),t._v(" "),o("ul",[o("li",[o("code",[t._v("usePointStyle")])])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/elements.html"}},[t._v("Elements")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/configuration/elements.html#point-styles"}},[t._v("Point Styles")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/26.d1bb645c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/26.d1bb645c.js new file mode 100644 index 0000000..5e0b493 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/26.d1bb645c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{357:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-archoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-archoveroptions"}},[r._v("#")]),r._v(" Interface: ArcHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[r._v("#")]),r._v(" Hierarchy")]),r._v(" "),t("ul",[t("li",[t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[t("code",[r._v("CommonHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("strong",[t("code",[r._v("ArcHoverOptions")])])])])]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"hoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[r._v("#")]),r._v(" hoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbackgroundcolor"}},[r._v("hoverBackgroundColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1702"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[r._v("#")]),r._v(" hoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbordercolor"}},[r._v("hoverBorderColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1701"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[r._v("#")]),r._v(" hoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"inherited-from-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverborderwidth"}},[r._v("hoverBorderWidth")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1700"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoveroffset"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoveroffset"}},[r._v("#")]),r._v(" hoverOffset")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverOffset")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1758",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1758"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/260.54ff10d2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/260.54ff10d2.js new file mode 100644 index 0000000..ef734cf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/260.54ff10d2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[260],{590:function(t,n,o){"use strict";o.r(n);var i=o(6),s=Object(i.a)({},(function(){var t=this,n=t.$createElement,o=t._self._c||n;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"position"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" Position")]),t._v(" "),o("p",[t._v("This sample shows how to use the tooltip position mode setting.")]),t._v(" "),o("chart-editor",{attrs:{code:"// \nconst actions = [\n {\n name: 'Position: average',\n handler(chart) {\n chart.options.plugins.tooltip.position = 'average';\n chart.update();\n }\n },\n {\n name: 'Position: nearest',\n handler(chart) {\n chart.options.plugins.tooltip.position = 'nearest';\n chart.update();\n }\n },\n {\n name: 'Position: bottom (custom)',\n handler(chart) {\n chart.options.plugins.tooltip.position = 'bottom';\n chart.update();\n }\n },\n];\n// \n\n// \nconst DATA_COUNT = 7;\nconst NUMBER_CFG = {count: DATA_COUNT, min: -100, max: 100};\nconst data = {\n labels: Utils.months({count: DATA_COUNT}),\n datasets: [\n {\n label: 'Dataset 1',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.red,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red, 0.5),\n },\n {\n label: 'Dataset 2',\n data: Utils.numbers(NUMBER_CFG),\n fill: false,\n borderColor: Utils.CHART_COLORS.blue,\n backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue, 0.5),\n },\n ]\n};\n// \n\n// \n// Create a custom tooltip positioner to put at the bottom of the chart area\nComponentes.Tooltip.positioners.bottom = function(items) {\n const pos = Componentes.Tooltip.positioners.average(items);\n\n // Happens when nothing is found\n if (pos === false) {\n return false;\n }\n\n const chart = this.chart;\n\n return {\n x: pos.x,\n y: chart.chartArea.bottom,\n xAlign: 'center',\n yAlign: 'bottom',\n };\n};\n\n// \n\n// \nconst config = {\n type: 'line',\n data: data,\n options: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n plugins: {\n title: {\n display: true,\n text: (ctx) => 'Tooltip position mode: ' + ctx.chart.options.plugins.tooltip.position,\n },\n }\n }\n};\n// \n\nmodule.exports = {\n actions: actions,\n config: config,\n};\n"}}),o("h2",{attrs:{id:"docs"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#docs"}},[t._v("#")]),t._v(" Docs")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/general/data-structures.html"}},[t._v("Data structures ("),o("code",[t._v("labels")]),t._v(")")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/Graficas/line.html"}},[t._v("Line")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html"}},[t._v("Tooltip")]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html#position-modes"}},[t._v("Position Modes")])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/configuration/tooltip.html#custom-position-modes"}},[t._v("Custom Position Modes")])],1)])],1)])],1)}),[],!1,null,null,null);n.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/261.928afea4.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/261.928afea4.js new file mode 100644 index 0000000..636f0fe --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/261.928afea4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[261],{589:function(t,s,a){"use strict";a.r(s);var n=a(6),r=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"utils"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#utils"}},[t._v("#")]),t._v(" Utils")]),t._v(" "),a("h2",{attrs:{id:"disclaimer"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#disclaimer"}},[t._v("#")]),t._v(" Disclaimer")]),t._v(" "),a("p",[t._v("The Utils file contains multiple helper functions that the chart.js sample pages use to generate Graficas.\nThese functions are subject to change, including but not limited to breaking changes without prior notice.")]),t._v(" "),a("p",[t._v("Because of this please don't rely on this file in production environments.")]),t._v(" "),a("h2",{attrs:{id:"functions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#functions"}},[t._v("#")]),t._v(" Functions")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" colorLib "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@kurkle/color'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("DateTime"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'luxon'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'chartjs-adapter-luxon'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("valueOrDefault"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'../../dist/helpers.mjs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" _seed "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Date"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("srand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("seed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n _seed "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" seed"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("rand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n _seed "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("_seed "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("9301")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("49297")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("233280")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("_seed "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("233280")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("numbers")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("config")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" cfg "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" config "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" from "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("from"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" count "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" decimals "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decimals"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" continuity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("valueOrDefault")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("continuity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" dfactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" decimals"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("from"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("rand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("rand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<=")]),t._v(" continuity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dfactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" dfactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("null")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("points")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("config")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" xs "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("numbers")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" ys "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("numbers")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" xs"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("map")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" i")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("y")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" ys"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("bubbles")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("config")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("points")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("map")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("pt")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n pt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("r "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("this")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("rand")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rmin"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" config"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rmax"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" pt"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("config")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" cfg "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" config "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("min "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" count "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" step "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("max "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" decimals "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("decimals "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" dfactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("pow")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" decimals"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" prefix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("prefix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("''")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" values "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" min"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" max"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+=")]),t._v(" step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n values"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("prefix "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("round")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("dfactor "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v(" dfactor"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" values"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MONTHS")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'January'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'February'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'March'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'April'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'May'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'June'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'July'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'August'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'September'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'October'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'November'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'December'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("months")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("config")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" cfg "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" config "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" count "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("count "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("||")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" section "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" cfg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("section"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" values "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" i "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v(" count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("++")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n value "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("MONTHS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("Math"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ceil")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n values"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("push")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("substring")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" section"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" values"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COLORS")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#4dc9f6'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#f67019'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#f53794'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#537bc4'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#acc236'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#166a8f'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#00a950'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#58595b'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'#8549ba'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("color")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("index")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("transparentize")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" opacity")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("var")]),t._v(" alpha "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" opacity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("undefined")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.5")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v(" opacity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("colorLib")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("alpha")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("alpha"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("rgbString")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("red")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 99, 132)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("orange")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 159, 64)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("yellow")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(255, 205, 86)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("green")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(75, 192, 192)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("blue")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(54, 162, 235)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("purple")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(153, 102, 255)'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("grey")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb(201, 203, 207)'")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NAMED_COLORS")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("red"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("orange"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("yellow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("green"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("blue"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("purple"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("CHART_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("grey"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("namedColor")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("index")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NAMED_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("index "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NAMED_COLORS")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("length"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newDate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("days")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" DateTime"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("plus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("days"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toJSDate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("newDateString")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("days")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" DateTime"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("now")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("plus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("days"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("toISO")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("parseISODate")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("str")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" DateTime"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("fromISO")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("str"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/master/docs/scripts/utils.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("File on github"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"Componentes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#Componentes"}},[t._v("#")]),t._v(" Componentes")]),t._v(" "),a("p",[t._v("Some of the samples make reference to a "),a("code",[t._v("Componentes")]),t._v(" object. This is an artifact of using a module bundler to build the samples. The creation of that Componentes object is shown below. If chart.js is included as a browser script, these items are accessible via the "),a("code",[t._v("Chart")]),t._v(" object, i.e "),a("code",[t._v("Chart.Tooltip")]),t._v(".")]),t._v(" "),a("div",{staticClass:"language-js extra-class"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Add Chart Componentes needed in samples here.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Usable through `Componentes[name]`.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("Tooltip"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'../../dist/chart.mjs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/master/docs/scripts/Componentes.js",target:"_blank",rel:"noopener noreferrer"}},[t._v("File on github"),a("OutboundLink")],1)])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/27.2d5c4a6b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/27.2d5c4a6b.js new file mode 100644 index 0000000..b8ec1c5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/27.2d5c4a6b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{358:function(e,r,t){"use strict";t.r(r);var a=t(6),s=Object(a.a)({},(function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"interface-arcoptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-arcoptions"}},[e._v("#")]),e._v(" Interface: ArcOptions")]),e._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[e._v("#")]),e._v(" Hierarchy")]),e._v(" "),t("ul",[t("li",[t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t("code",[e._v("CommonElementOptions")])])],1),e._v(" "),t("p",[e._v("↳ "),t("strong",[t("code",[e._v("ArcOptions")])])])])]),e._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("h3",{attrs:{id:"backgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[e._v("#")]),e._v(" backgroundColor")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("backgroundColor")]),e._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[e._v("Color")])])],1),e._v(" "),t("h4",{attrs:{id:"inherited-from"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[e._v("#")]),e._v(" Inherited from")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[e._v("CommonElementOptions")]),e._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#backgroundcolor"}},[e._v("backgroundColor")])],1),e._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1696"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderalign"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderalign"}},[e._v("#")]),e._v(" borderAlign")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderAlign")]),e._v(": "),t("code",[e._v('"center"')]),e._v(" | "),t("code",[e._v('"inner"')])]),e._v(" "),t("p",[e._v("Arc stroke alignment.")]),e._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1732",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1732"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"bordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[e._v("#")]),e._v(" borderColor")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderColor")]),e._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[e._v("Color")])])],1),e._v(" "),t("h4",{attrs:{id:"inherited-from-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[e._v("#")]),e._v(" Inherited from")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[e._v("CommonElementOptions")]),e._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#bordercolor"}},[e._v("borderColor")])],1),e._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1695"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderjoinstyle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[e._v("#")]),e._v(" borderJoinStyle")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderJoinStyle")]),e._v(": "),t("code",[e._v("CanvasLineJoin")])]),e._v(" "),t("p",[e._v("Line join style. See MDN. Default is 'round' when "),t("code",[e._v("borderAlign")]),e._v(" is 'inner', else 'bevel'.")]),e._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1737",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1737"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderradius"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[e._v("#")]),e._v(" borderRadius")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderRadius")]),e._v(": "),t("code",[e._v("number")]),e._v(" | "),t("RouterLink",{attrs:{to:"/api/interfaces/ArcBorderRadius.html"}},[t("code",[e._v("ArcBorderRadius")])])],1),e._v(" "),t("p",[e._v("Sets the border radius for arcs")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("default")])]),e._v(" 0")]),e._v(" "),t("h4",{attrs:{id:"defined-in-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1743",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1743"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"borderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[e._v("#")]),e._v(" borderWidth")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("borderWidth")]),e._v(": "),t("code",[e._v("number")])]),e._v(" "),t("h4",{attrs:{id:"inherited-from-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[e._v("#")]),e._v(" Inherited from")]),e._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[e._v("CommonElementOptions")]),e._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#borderwidth"}},[e._v("borderWidth")])],1),e._v(" "),t("h4",{attrs:{id:"defined-in-6"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1694"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"circular"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#circular"}},[e._v("#")]),e._v(" circular")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("circular")]),e._v(": "),t("code",[e._v("boolean")])]),e._v(" "),t("p",[e._v("If false, Arc will be flat.")]),e._v(" "),t("p",[t("strong",[t("code",[e._v("default")])]),e._v(" true")]),e._v(" "),t("h4",{attrs:{id:"defined-in-7"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1754",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1754"),t("OutboundLink")],1)]),e._v(" "),t("hr"),e._v(" "),t("h3",{attrs:{id:"offset"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[e._v("#")]),e._v(" offset")]),e._v(" "),t("p",[e._v("• "),t("strong",[e._v("offset")]),e._v(": "),t("code",[e._v("number")])]),e._v(" "),t("p",[e._v("Arc offset (in pixels).")]),e._v(" "),t("h4",{attrs:{id:"defined-in-8"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1748",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1748"),t("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/28.72dee0f1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/28.72dee0f1.js new file mode 100644 index 0000000..465520c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/28.72dee0f1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{359:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-arcprops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-arcprops"}},[e._v("#")]),e._v(" Interface: ArcProps")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"circumference"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circumference"}},[e._v("#")]),e._v(" circumference")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("circumference")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1718",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1718"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"endangle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#endangle"}},[e._v("#")]),e._v(" endAngle")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("endAngle")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1715",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1715"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"innerradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#innerradius"}},[e._v("#")]),e._v(" innerRadius")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("innerRadius")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1716",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1716"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"outerradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#outerradius"}},[e._v("#")]),e._v(" outerRadius")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("outerRadius")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1717",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1717"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"startangle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#startangle"}},[e._v("#")]),e._v(" startAngle")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("startAngle")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1714",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1714"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[e._v("#")]),e._v(" x")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("x")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1712",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1712"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[e._v("#")]),e._v(" y")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("y")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1713",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1713"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/29.8820be26.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/29.8820be26.js new file mode 100644 index 0000000..da50785 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/29.8820be26.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{360:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-barcontrollerchartoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-barcontrollerchartoptions"}},[t._v("#")]),t._v(" Interface: BarControllerChartOptions")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"skipnull"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#skipnull"}},[t._v("#")]),t._v(" skipNull")]),t._v(" "),r("p",[t._v("• "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("skipNull")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Should null or undefined values be omitted from drawing")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L142",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:142"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/3.947b8d98.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/3.947b8d98.js new file mode 100644 index 0000000..b6b45f7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/3.947b8d98.js @@ -0,0 +1,14 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{276:function(t,e,i){!function(t){"use strict"; +/*! + * perfect-scrollbar v1.5.2 + * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors + * Licensed under MIT + */function e(t){return getComputedStyle(t)}function i(t,e){for(var i in e){var s=e[i];"number"==typeof s&&(s+="px"),t.style[i]=s}return t}function s(t){var e=document.createElement("div");return e.className=t,e}var r="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector);function a(t,e){if(!r)throw new Error("No element matching method supported");return r.call(t,e)}function n(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function o(t,e){return Array.prototype.filter.call(t.children,(function(t){return a(t,e)}))}var h="ps",l="ps__rtl",c={thumb:function(t){return"ps__thumb-"+t},rail:function(t){return"ps__rail-"+t},consuming:"ps__child--consume"},p={focus:"ps--focus",clicking:"ps--clicking",active:function(t){return"ps--active-"+t},scrolling:function(t){return"ps--scrolling-"+t}},u={x:null,y:null};function d(t,e){var i=t.element.classList,s=p.scrolling(e);i.contains(s)?clearTimeout(u[e]):i.add(s)}function f(t,e){u[e]=setTimeout((function(){return t.isAlive&&t.element.classList.remove(p.scrolling(e))}),t.settings.scrollingThreshold)}var m=function(t){this.element=t,this.handlers={}},g={isEmpty:{configurable:!0}};m.prototype.bind=function(t,e){void 0===this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},m.prototype.unbind=function(t,e){var i=this;this.handlers[t]=this.handlers[t].filter((function(s){return!(!e||s===e)||(i.element.removeEventListener(t,s,!1),!1)}))},m.prototype.unbindAll=function(){for(var t in this.handlers)this.unbind(t)},g.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every((function(e){return 0===t.handlers[e].length}))},Object.defineProperties(m.prototype,g);var v=function(){this.eventElements=[]};function y(t){if("function"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent("CustomEvent");return e.initCustomEvent(t,!1,!1,void 0),e}function x(t,e,i,s,r){var a;if(void 0===s&&(s=!0),void 0===r&&(r=!1),"top"===e)a=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==e)throw new Error("A proper axis should be provided");a=["contentWidth","containerWidth","scrollLeft","x","left","right"]}!function(t,e,i,s,r){var a=i[0],n=i[1],o=i[2],h=i[3],l=i[4],c=i[5];void 0===s&&(s=!0),void 0===r&&(r=!1);var p=t.element;t.reach[h]=null,p[o]<1&&(t.reach[h]="start"),p[o]>t[a]-t[n]-1&&(t.reach[h]="end"),e&&(p.dispatchEvent(y("ps-scroll-"+h)),e<0?p.dispatchEvent(y("ps-scroll-"+l)):e>0&&p.dispatchEvent(y("ps-scroll-"+c)),s&&function(t,e){d(t,e),f(t,e)}(t,h)),t.reach[h]&&(e||r)&&p.dispatchEvent(y("ps-"+h+"-reach-"+t.reach[h]))}(t,i,a,s,r)}function b(t){return parseInt(t,10)||0}v.prototype.eventElement=function(t){var e=this.eventElements.filter((function(e){return e.element===t}))[0];return e||(e=new m(t),this.eventElements.push(e)),e},v.prototype.bind=function(t,e,i){this.eventElement(t).bind(e,i)},v.prototype.unbind=function(t,e,i){var s=this.eventElement(t);s.unbind(e,i),s.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(s),1)},v.prototype.unbindAll=function(){this.eventElements.forEach((function(t){return t.unbindAll()})),this.eventElements=[]},v.prototype.once=function(t,e,i){var s=this.eventElement(t),r=function(t){s.unbind(e,r),i(t)};s.bind(e,r)};var _={isWebKit:"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style,supportsTouch:"undefined"!=typeof window&&("ontouchstart"in window||"maxTouchPoints"in window.navigator&&window.navigator.maxTouchPoints>0||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:"undefined"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:"undefined"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)};function k(t){var e=t.element,s=Math.floor(e.scrollTop),r=e.getBoundingClientRect();t.containerWidth=Math.round(r.width),t.containerHeight=Math.round(r.height),t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(o(e,c.rail("x")).forEach((function(t){return n(t)})),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(o(e,c.rail("y")).forEach((function(t){return n(t)})),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),function(t,e){var s={width:e.railXWidth},r=Math.floor(t.scrollTop);e.isRtl?s.left=e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:s.left=t.scrollLeft,e.isScrollbarXUsingBottom?s.bottom=e.scrollbarXBottom-r:s.top=e.scrollbarXTop+r,i(e.scrollbarXRail,s);var a={top:r,height:e.railYHeight};e.isScrollbarYUsingRight?e.isRtl?a.right=e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth-9:a.right=e.scrollbarYRight-t.scrollLeft:e.isRtl?a.left=e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:a.left=e.scrollbarYLeft+t.scrollLeft,i(e.scrollbarYRail,a),i(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),i(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}(e,t),t.scrollbarXActive?e.classList.add(p.active("x")):(e.classList.remove(p.active("x")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=!0===t.isRtl?t.contentWidth:0),t.scrollbarYActive?e.classList.add(p.active("y")):(e.classList.remove(p.active("y")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)}function w(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function S(t,e){var i=e[0],s=e[1],r=e[2],a=e[3],n=e[4],o=e[5],h=e[6],l=e[7],c=e[8],u=t.element,m=null,g=null,v=null;function y(e){e.touches&&e.touches[0]&&(e[r]=e.touches[0].pageY),u[h]=m+v*(e[r]-g),d(t,l),k(t),e.stopPropagation(),e.preventDefault()}function x(){f(t,l),t[c].classList.remove(p.clicking),t.event.unbind(t.ownerDocument,"mousemove",y)}function b(e,n){m=u[h],n&&e.touches&&(e[r]=e.touches[0].pageY),g=e[r],v=(t[s]-t[i])/(t[a]-t[o]),n?t.event.bind(t.ownerDocument,"touchmove",y):(t.event.bind(t.ownerDocument,"mousemove",y),t.event.once(t.ownerDocument,"mouseup",x),e.preventDefault()),t[c].classList.add(p.clicking),e.stopPropagation()}t.event.bind(t[n],"mousedown",(function(t){b(t)})),t.event.bind(t[n],"touchstart",(function(t){b(t,!0)}))}var C={"click-rail":function(t){t.element,t.event.bind(t.scrollbarY,"mousedown",(function(t){return t.stopPropagation()})),t.event.bind(t.scrollbarYRail,"mousedown",(function(e){var i=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top>t.scrollbarYTop?1:-1;t.element.scrollTop+=i*t.containerHeight,k(t),e.stopPropagation()})),t.event.bind(t.scrollbarX,"mousedown",(function(t){return t.stopPropagation()})),t.event.bind(t.scrollbarXRail,"mousedown",(function(e){var i=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=i*t.containerWidth,k(t),e.stopPropagation()}))},"drag-thumb":function(t){S(t,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),S(t,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function(t){var e=t.element;t.event.bind(t.ownerDocument,"keydown",(function(i){if(!(i.isDefaultPrevented&&i.isDefaultPrevented()||i.defaultPrevented)&&(a(e,":hover")||a(t.scrollbarX,":focus")||a(t.scrollbarY,":focus"))){var s,r=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(r){if("IFRAME"===r.tagName)r=r.contentDocument.activeElement;else for(;r.shadowRoot;)r=r.shadowRoot.activeElement;if(a(s=r,"input,[contenteditable]")||a(s,"select,[contenteditable]")||a(s,"textarea,[contenteditable]")||a(s,"button,[contenteditable]"))return}var n=0,o=0;switch(i.which){case 37:n=i.metaKey?-t.contentWidth:i.altKey?-t.containerWidth:-30;break;case 38:o=i.metaKey?t.contentHeight:i.altKey?t.containerHeight:30;break;case 39:n=i.metaKey?t.contentWidth:i.altKey?t.containerWidth:30;break;case 40:o=i.metaKey?-t.contentHeight:i.altKey?-t.containerHeight:-30;break;case 32:o=i.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:o=t.containerHeight;break;case 34:o=-t.containerHeight;break;case 36:o=t.contentHeight;break;case 35:o=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==n||t.settings.suppressScrollY&&0!==o||(e.scrollTop-=o,e.scrollLeft+=n,k(t),function(i,s){var r=Math.floor(e.scrollTop);if(0===i){if(!t.scrollbarYActive)return!1;if(0===r&&s>0||r>=t.contentHeight-t.containerHeight&&s<0)return!t.settings.wheelPropagation}var a=e.scrollLeft;if(0===s){if(!t.scrollbarXActive)return!1;if(0===a&&i<0||a>=t.contentWidth-t.containerWidth&&i>0)return!t.settings.wheelPropagation}return!0}(n,o)&&i.preventDefault())}}))},wheel:function(t){var i=t.element;function s(s){var r=function(t){var e=t.deltaX,i=-1*t.deltaY;return void 0!==e&&void 0!==i||(e=-1*t.wheelDeltaX/6,i=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,i*=10),e!=e&&i!=i&&(e=0,i=t.wheelDelta),t.shiftKey?[-i,-e]:[e,i]}(s),a=r[0],n=r[1];if(!function(t,s,r){if(!_.isWebKit&&i.querySelector("select:focus"))return!0;if(!i.contains(t))return!1;for(var a=t;a&&a!==i;){if(a.classList.contains(c.consuming))return!0;var n=e(a);if(r&&n.overflowY.match(/(scroll|auto)/)){var o=a.scrollHeight-a.clientHeight;if(o>0&&(a.scrollTop>0&&r<0||a.scrollTop0))return!0}if(s&&n.overflowX.match(/(scroll|auto)/)){var h=a.scrollWidth-a.clientWidth;if(h>0&&(a.scrollLeft>0&&s<0||a.scrollLeft0))return!0}a=a.parentNode}return!1}(s.target,a,n)){var o=!1;t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(n?i.scrollTop-=n*t.settings.wheelSpeed:i.scrollTop+=a*t.settings.wheelSpeed,o=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(a?i.scrollLeft+=a*t.settings.wheelSpeed:i.scrollLeft-=n*t.settings.wheelSpeed,o=!0):(i.scrollTop-=n*t.settings.wheelSpeed,i.scrollLeft+=a*t.settings.wheelSpeed),k(t),(o=o||function(e,s){var r=Math.floor(i.scrollTop),a=0===i.scrollTop,n=r+i.offsetHeight===i.scrollHeight,o=0===i.scrollLeft,h=i.scrollLeft+i.offsetWidth===i.scrollWidth;return!(Math.abs(s)>Math.abs(e)?a||n:o||h)||!t.settings.wheelPropagation}(a,n))&&!s.ctrlKey&&(s.stopPropagation(),s.preventDefault())}}void 0!==window.onwheel?t.event.bind(i,"wheel",s):void 0!==window.onmousewheel&&t.event.bind(i,"mousewheel",s)},touch:function(t){if(_.supportsTouch||_.supportsIePointer){var i=t.element,s={},r=0,a={},n=null;_.supportsTouch?(t.event.bind(i,"touchstart",p),t.event.bind(i,"touchmove",u),t.event.bind(i,"touchend",d)):_.supportsIePointer&&(window.PointerEvent?(t.event.bind(i,"pointerdown",p),t.event.bind(i,"pointermove",u),t.event.bind(i,"pointerup",d)):window.MSPointerEvent&&(t.event.bind(i,"MSPointerDown",p),t.event.bind(i,"MSPointerMove",u),t.event.bind(i,"MSPointerUp",d)))}function o(e,s){i.scrollTop-=s,i.scrollLeft-=e,k(t)}function h(t){return t.targetTouches?t.targetTouches[0]:t}function l(t){return!(t.pointerType&&"pen"===t.pointerType&&0===t.buttons||(!t.targetTouches||1!==t.targetTouches.length)&&(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function p(t){if(l(t)){var e=h(t);s.pageX=e.pageX,s.pageY=e.pageY,r=(new Date).getTime(),null!==n&&clearInterval(n)}}function u(n){if(l(n)){var p=h(n),u={pageX:p.pageX,pageY:p.pageY},d=u.pageX-s.pageX,f=u.pageY-s.pageY;if(function(t,s,r){if(!i.contains(t))return!1;for(var a=t;a&&a!==i;){if(a.classList.contains(c.consuming))return!0;var n=e(a);if(r&&n.overflowY.match(/(scroll|auto)/)){var o=a.scrollHeight-a.clientHeight;if(o>0&&(a.scrollTop>0&&r<0||a.scrollTop0))return!0}if(s&&n.overflowX.match(/(scroll|auto)/)){var h=a.scrollWidth-a.clientWidth;if(h>0&&(a.scrollLeft>0&&s<0||a.scrollLeft0))return!0}a=a.parentNode}return!1}(n.target,d,f))return;o(d,f),s=u;var m=(new Date).getTime(),g=m-r;g>0&&(a.x=d/g,a.y=f/g,r=m),function(e,s){var r=Math.floor(i.scrollTop),a=i.scrollLeft,n=Math.abs(e),o=Math.abs(s);if(o>n){if(s<0&&r===t.contentHeight-t.containerHeight||s>0&&0===r)return 0===window.scrollY&&s>0&&_.isChrome}else if(n>o&&(e<0&&a===t.contentWidth-t.containerWidth||e>0&&0===a))return!0;return!0}(d,f)&&n.preventDefault()}}function d(){t.settings.swipeEasing&&(clearInterval(n),n=setInterval((function(){t.isInitialized?clearInterval(n):a.x||a.y?Math.abs(a.x)<.01&&Math.abs(a.y)<.01?clearInterval(n):t.element?(o(30*a.x,30*a.y),a.x*=.8,a.y*=.8):clearInterval(n):clearInterval(n)}),10))}}},E=function(t,r){var a=this;if(void 0===r&&(r={}),"string"==typeof t&&(t=document.querySelector(t)),!t||!t.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");for(var n in this.element=t,t.classList.add(h),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1},r)this.settings[n]=r[n];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var o,u,d=function(){return t.classList.add(p.focus)},f=function(){return t.classList.remove(p.focus)};this.isRtl="rtl"===e(t).direction,!0===this.isRtl&&t.classList.add(l),this.isNegativeScroll=(u=t.scrollLeft,t.scrollLeft=-1,o=t.scrollLeft<0,t.scrollLeft=u,o),this.negativeScrollAdjustment=this.isNegativeScroll?t.scrollWidth-t.clientWidth:0,this.event=new v,this.ownerDocument=t.ownerDocument||document,this.scrollbarXRail=s(c.rail("x")),t.appendChild(this.scrollbarXRail),this.scrollbarX=s(c.thumb("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",d),this.event.bind(this.scrollbarX,"blur",f),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var m=e(this.scrollbarXRail);this.scrollbarXBottom=parseInt(m.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=b(m.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=b(m.borderLeftWidth)+b(m.borderRightWidth),i(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=b(m.marginLeft)+b(m.marginRight),i(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=s(c.rail("y")),t.appendChild(this.scrollbarYRail),this.scrollbarY=s(c.thumb("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",d),this.event.bind(this.scrollbarY,"blur",f),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var g=e(this.scrollbarYRail);this.scrollbarYRight=parseInt(g.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=b(g.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?function(t){var i=e(t);return b(i.width)+b(i.paddingLeft)+b(i.paddingRight)+b(i.borderLeftWidth)+b(i.borderRightWidth)}(this.scrollbarY):null,this.railBorderYWidth=b(g.borderTopWidth)+b(g.borderBottomWidth),i(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=b(g.marginTop)+b(g.marginBottom),i(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:t.scrollLeft<=0?"start":t.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:t.scrollTop<=0?"start":t.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach((function(t){return C[t](a)})),this.lastScrollTop=Math.floor(t.scrollTop),this.lastScrollLeft=t.scrollLeft,this.event.bind(this.element,"scroll",(function(t){return a.onScroll(t)})),k(this)};E.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,i(this.scrollbarXRail,{display:"block"}),i(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=b(e(this.scrollbarXRail).marginLeft)+b(e(this.scrollbarXRail).marginRight),this.railYMarginHeight=b(e(this.scrollbarYRail).marginTop)+b(e(this.scrollbarYRail).marginBottom),i(this.scrollbarXRail,{display:"none"}),i(this.scrollbarYRail,{display:"none"}),k(this),x(this,"top",0,!1,!0),x(this,"left",0,!1,!0),i(this.scrollbarXRail,{display:""}),i(this.scrollbarYRail,{display:""}))},E.prototype.onScroll=function(t){this.isAlive&&(k(this),x(this,"top",this.element.scrollTop-this.lastScrollTop),x(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},E.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),n(this.scrollbarX),n(this.scrollbarY),n(this.scrollbarXRail),n(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},E.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter((function(t){return!t.match(/^ps([-_].+|)$/)})).join(" ")};var A={name:"PerfectScrollbar",props:{options:{type:Object,required:!1,default:function(){}},tag:{type:String,required:!1,default:"div"},watchOptions:{type:Boolean,required:!1,default:!1}},data:function(){return{ps:null}},watch:{watchOptions:function(t){!t&&this.watcher?this.watcher():this.createWatcher()}},mounted:function(){this.create(),this.watchOptions&&this.createWatcher()},updated:function(){var t=this;this.$nextTick((function(){t.update()}))},beforeDestroy:function(){this.destroy()},methods:{create:function(){this.ps&&this.$isServer||(this.ps=new E(this.$refs.container,this.options))},createWatcher:function(){var t=this;this.watcher=this.$watch("options",(function(){t.destroy(),t.create()}),{deep:!0})},update:function(){this.ps&&this.ps.update()},destroy:function(){this.ps&&(this.ps.destroy(),this.ps=null)}},render:function(t){return t(this.tag,{ref:"container",class:"ps",on:this.$listeners},this.$slots.default)}};function P(t,e){e&&(e.name&&"string"==typeof e.name&&(A.name=e.name),e.options&&"object"==typeof e.options&&(A.props.options.default=function(){return e.options}),e.tag&&"string"==typeof e.tag&&(A.props.tag.default=e.tag),e.watchOptions&&"boolean"==typeof e.watchOptions&&(A.props.watchOptions=e.watchOptions)),t.component(A.name,A)}t.install=P,t.PerfectScrollbar=A,t.default=P,Object.defineProperty(t,"__esModule",{value:!0})}(e)},290:function(t,e,i){},291:function(t,e,i){},292:function(t,e,i){},293:function(t,e,i){},294:function(t,e,i){},295:function(t,e,i){},322:function(t,e,i){"use strict";i(290)},323:function(t,e,i){"use strict";i(291)},324:function(t,e,i){var s=function(t){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,i=0,s={},r={manual:t.Prism&&t.Prism.manual,disableWorkerMessageHandler:t.Prism&&t.Prism.disableWorkerMessageHandler,util:{encode:function t(e){return e instanceof a?new a(e.type,t(e.content),e.alias):Array.isArray(e)?e.map(t):e.replace(/&/g,"&").replace(/=p.reach);w+=k.value.length,k=k.next){var S=k.value;if(i.length>e.length)return;if(!(S instanceof a)){var C,E=1;if(y){if(!(C=n(_,w,e,v))||C.index>=e.length)break;var A=C.index,P=C.index+C[0].length,I=w;for(I+=k.value.length;A>=I;)k=k.next,I+=k.value.length;if(I-=k.value.length,w=I,k.value instanceof a)continue;for(var L=k;L!==i.tail&&(Ip.reach&&(p.reach=V);var M=k.prev;N&&(M=h(i,M,N),w+=N.length),l(i,M,E);var O=new a(u,g?r.tokenize(T,g):T,x,T);if(k=h(i,M,O),R&&h(i,k,R),E>1){var D={cause:u+","+f,reach:V};t(e,i,s,k.prev,w,D),p&&D.reach>p.reach&&(p.reach=D.reach)}}}}}}(t,c,e,c.head,0),function(t){var e=[],i=t.head.next;for(;i!==t.tail;)e.push(i.value),i=i.next;return e}(c)},hooks:{all:{},add:function(t,e){var i=r.hooks.all;i[t]=i[t]||[],i[t].push(e)},run:function(t,e){var i=r.hooks.all[t];if(i&&i.length)for(var s,a=0;s=i[a++];)s(e)}},Token:a};function a(t,e,i,s){this.type=t,this.content=e,this.alias=i,this.length=0|(s||"").length}function n(t,e,i,s){t.lastIndex=e;var r=t.exec(i);if(r&&s&&r[1]){var a=r[1].length;r.index+=a,r[0]=r[0].slice(a)}return r}function o(){var t={value:null,prev:null,next:null},e={value:null,prev:t,next:null};t.next=e,this.head=t,this.tail=e,this.length=0}function h(t,e,i){var s=e.next,r={value:i,prev:e,next:s};return e.next=r,s.prev=r,t.length++,r}function l(t,e,i){for(var s=e.next,r=0;r"+a.content+""},!t.document)return t.addEventListener?(r.disableWorkerMessageHandler||t.addEventListener("message",(function(e){var i=JSON.parse(e.data),s=i.language,a=i.code,n=i.immediateClose;t.postMessage(r.highlight(a,r.languages[s],s)),n&&t.close()}),!1),r):r;var c=r.util.currentScript();function p(){r.manual||r.highlightAll()}if(c&&(r.filename=c.src,c.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var u=document.readyState;"loading"===u||"interactive"===u&&c&&c.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{}); +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */t.exports&&(t.exports=s),"undefined"!=typeof global&&(global.Prism=s)},325:function(t,e){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},326:function(t,e){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},327:function(t,e,i){},328:function(t,e,i){"use strict";i(292)},329:function(t,e,i){"use strict";i(293)},330:function(t,e,i){"use strict";i(294)},331:function(t,e,i){"use strict";i(295)},336:function(t,e,i){"use strict";i.r(e);i(9);var s=i(5),r={props:{actions:{type:Array,default:()=>[]}},methods:{onClick(t){this.$emit("action",t)}}},a=(i(322),i(6)),n=Object(a.a)(r,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"chart-actions"},t._l(t.actions,(function(e,s){return i("a",{key:s,staticClass:"chart-action",on:{click:function(i){return t.onClick(e)}}},[t._v("\n "+t._s(e.name)+"\n ")])})),0)}),[],!1,null,"2afd21f1",null).exports,o={props:{config:{type:Object,default:null}},watch:{config:"update"},mounted(){this.update()},methods:{chart(){return this._chart},update(){const t=this.config,e=this.$refs.canvas;e&&this.config&&(this._chart?(this._chart.stop(),this._chart.data=t.data||{},this._chart.options=t.options||{},this._chart.update()):(this._chart=new s.b(e,{...t}),this.$emit("initialized")))}}},h=Object(a.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"chart-view"},[e("canvas",{ref:"canvas"})])}),[],!1,null,null,null).exports,l={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},c="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",p={5:c,"5module":c+" export import",6:c+" const class extends export import super"},u=/^in(stanceof)?$/,d="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",f="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",m=new RegExp("["+d+"]"),g=new RegExp("["+d+f+"]");d=f=null;var v=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],y=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function x(t,e){for(var i=65536,s=0;st)return!1;if((i+=e[s+1])>=t)return!0}}function b(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&m.test(String.fromCharCode(t)):!1!==e&&x(t,v)))}function _(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&g.test(String.fromCharCode(t)):!1!==e&&(x(t,v)||x(t,y)))))}var k=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function w(t,e){return new k(t,{beforeExpr:!0,binop:e})}var S={beforeExpr:!0},C={startsExpr:!0},E={};function A(t,e){return void 0===e&&(e={}),e.keyword=t,E[t]=new k(t,e)}var P={num:new k("num",C),regexp:new k("regexp",C),string:new k("string",C),name:new k("name",C),privateId:new k("privateId",C),eof:new k("eof"),bracketL:new k("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new k("]"),braceL:new k("{",{beforeExpr:!0,startsExpr:!0}),braceR:new k("}"),parenL:new k("(",{beforeExpr:!0,startsExpr:!0}),parenR:new k(")"),comma:new k(",",S),semi:new k(";",S),colon:new k(":",S),dot:new k("."),question:new k("?",S),questionDot:new k("?."),arrow:new k("=>",S),template:new k("template"),invalidTemplate:new k("invalidTemplate"),ellipsis:new k("...",S),backQuote:new k("`",C),dollarBraceL:new k("${",{beforeExpr:!0,startsExpr:!0}),eq:new k("=",{beforeExpr:!0,isAssign:!0}),assign:new k("_=",{beforeExpr:!0,isAssign:!0}),incDec:new k("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new k("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:w("||",1),logicalAND:w("&&",2),bitwiseOR:w("|",3),bitwiseXOR:w("^",4),bitwiseAND:w("&",5),equality:w("==/!=/===/!==",6),relational:w("/<=/>=",7),bitShift:w("<>/>>>",8),plusMin:new k("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:w("%",10),star:w("*",10),slash:w("/",10),starstar:new k("**",{beforeExpr:!0}),coalesce:w("??",1),_break:A("break"),_case:A("case",S),_catch:A("catch"),_continue:A("continue"),_debugger:A("debugger"),_default:A("default",S),_do:A("do",{isLoop:!0,beforeExpr:!0}),_else:A("else",S),_finally:A("finally"),_for:A("for",{isLoop:!0}),_function:A("function",C),_if:A("if"),_return:A("return",S),_switch:A("switch"),_throw:A("throw",S),_try:A("try"),_var:A("var"),_const:A("const"),_while:A("while",{isLoop:!0}),_with:A("with"),_new:A("new",{beforeExpr:!0,startsExpr:!0}),_this:A("this",C),_super:A("super",C),_class:A("class",C),_extends:A("extends",S),_export:A("export"),_import:A("import",C),_null:A("null",C),_true:A("true",C),_false:A("false",C),_in:A("in",{beforeExpr:!0,binop:7}),_instanceof:A("instanceof",{beforeExpr:!0,binop:7}),_typeof:A("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:A("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:A("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},I=/\r\n?|\n|\u2028|\u2029/,L=new RegExp(I.source,"g");function T(t){return 10===t||13===t||8232===t||8233===t}var N=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,R=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,V=Object.prototype,M=V.hasOwnProperty,O=V.toString;function D(t,e){return M.call(t,e)}var B=Array.isArray||function(t){return"[object Array]"===O.call(t)};function F(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}var W=function(t,e){this.line=t,this.column=e};W.prototype.offset=function(t){return new W(this.line,this.column+t)};var H=function(t,e,i){this.start=e,this.end=i,null!==t.sourceFile&&(this.source=t.sourceFile)};function Y(t,e){for(var i=1,s=0;;){L.lastIndex=s;var r=L.exec(t);if(!(r&&r.index=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),B(e.onToken)){var s=e.onToken;e.onToken=function(t){return s.push(t)}}return B(e.onComment)&&(e.onComment=function(t,e){return function(i,s,r,a,n,o){var h={type:i?"Block":"Line",value:s,start:r,end:a};t.locations&&(h.loc=new H(this,n,o)),t.ranges&&(h.range=[r,a]),e.push(h)}}(e,e.onComment)),e}function $(t,e){return 2|(t?4:0)|(e?8:0)}var K=function(t,e,i){this.options=t=U(t),this.sourceFile=t.sourceFile,this.keywords=F(p[t.ecmaVersion>=6?6:"module"===t.sourceType?"5module":5]);var s="";!0!==t.allowReserved&&(s=l[t.ecmaVersion>=6?6:5===t.ecmaVersion?5:3],"module"===t.sourceType&&(s+=" await")),this.reservedWords=F(s);var r=(s?s+" ":"")+l.strict;this.reservedWordsStrict=F(r),this.reservedWordsStrictBind=F(r+" "+l.strictBind),this.input=String(e),this.containsEsc=!1,i?(this.pos=i,this.lineStart=this.input.lastIndexOf("\n",i-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(I).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=P.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null,this.privateNameStack=[]},q={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};K.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},q.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},q.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},q.inAsync.get=function(){return(4&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},q.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t];if(e.inClassFieldInit||256&e.flags)return!1;if(2&e.flags)return(4&e.flags)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},q.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags,i=t.inClassFieldInit;return(64&e)>0||i||this.options.allowSuperOutsideMethod},q.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},q.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},q.allowNewDotTarget.get=function(){var t=this.currentThisScope(),e=t.flags,i=t.inClassFieldInit;return(258&e)>0||i},q.inClassStaticBlock.get=function(){return(256&this.currentVarScope().flags)>0},K.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var i=this,s=0;s=,?^&]/.test(r)||"!"===r&&"="===this.input.charAt(s+1))}t+=e[0].length,R.lastIndex=t,t+=R.exec(this.input)[0].length,";"===this.input[t]&&t++}},G.eat=function(t){return this.type===t&&(this.next(),!0)},G.isContextual=function(t){return this.type===P.name&&this.value===t&&!this.containsEsc},G.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},G.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},G.canInsertSemicolon=function(){return this.type===P.eof||this.type===P.braceR||I.test(this.input.slice(this.lastTokEnd,this.start))},G.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},G.semicolon=function(){this.eat(P.semi)||this.insertSemicolon()||this.unexpected()},G.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},G.expect=function(t){this.eat(t)||this.unexpected()},G.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")},G.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var i=e?t.parenthesizedAssign:t.parenthesizedBind;i>-1&&this.raiseRecoverable(i,"Parenthesized pattern")}},G.checkExpressionErrors=function(t,e){if(!t)return!1;var i=t.shorthandAssign,s=t.doubleProto;if(!e)return i>=0||s>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),s>=0&&this.raiseRecoverable(s,"Redefinition of __proto__ property")},G.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(t)return!1;if(123===s)return!0;if(b(s,!0)){for(var r=i+1;_(s=this.input.charCodeAt(r),!0);)++r;if(92===s||s>55295&&s<56320)return!0;var a=this.input.slice(i,r);if(!u.test(a))return!0}return!1},Z.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;R.lastIndex=this.pos;var t,e=R.exec(this.input),i=this.pos+e[0].length;return!(I.test(this.input.slice(this.pos,i))||"function"!==this.input.slice(i,i+8)||i+8!==this.input.length&&(_(t=this.input.charCodeAt(i+8))||t>55295&&t<56320))},Z.parseStatement=function(t,e,i){var s,r=this.type,a=this.startNode();switch(this.isLet(t)&&(r=P._var,s="let"),r){case P._break:case P._continue:return this.parseBreakContinueStatement(a,r.keyword);case P._debugger:return this.parseDebuggerStatement(a);case P._do:return this.parseDoStatement(a);case P._for:return this.parseForStatement(a);case P._function:return t&&(this.strict||"if"!==t&&"label"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!t);case P._class:return t&&this.unexpected(),this.parseClass(a,!0);case P._if:return this.parseIfStatement(a);case P._return:return this.parseReturnStatement(a);case P._switch:return this.parseSwitchStatement(a);case P._throw:return this.parseThrowStatement(a);case P._try:return this.parseTryStatement(a);case P._const:case P._var:return s=s||this.value,t&&"var"!==s&&this.unexpected(),this.parseVarStatement(a,s);case P._while:return this.parseWhileStatement(a);case P._with:return this.parseWithStatement(a);case P.braceL:return this.parseBlock(!0,a);case P.semi:return this.parseEmptyStatement(a);case P._export:case P._import:if(this.options.ecmaVersion>10&&r===P._import){R.lastIndex=this.pos;var n=R.exec(this.input),o=this.pos+n[0].length,h=this.input.charCodeAt(o);if(40===h||46===h)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===P._import?this.parseImport(a):this.parseExport(a,i);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!t);var l=this.value,c=this.parseExpression();return r===P.name&&"Identifier"===c.type&&this.eat(P.colon)?this.parseLabeledStatement(a,l,c,t):this.parseExpressionStatement(a,c)}},Z.parseBreakContinueStatement=function(t,e){var i="break"===e;this.next(),this.eat(P.semi)||this.insertSemicolon()?t.label=null:this.type!==P.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(P.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},Z.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(J),this.enterScope(0),this.expect(P.parenL),this.type===P.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var i=this.isLet();if(this.type===P._var||this.type===P._const||i){var s=this.startNode(),r=i?"let":this.value;return this.next(),this.parseVar(s,!0,r),this.finishNode(s,"VariableDeclaration"),(this.type===P._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===s.declarations.length?(this.options.ecmaVersion>=9&&(this.type===P._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,s)):(e>-1&&this.unexpected(e),this.parseFor(t,s))}var a=this.isContextual("let"),n=!1,o=new Q,h=this.parseExpression(!(e>-1)||"await",o);return this.type===P._in||(n=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===P._in?e>-1&&this.unexpected(e):t.await=e>-1),a&&n&&this.raise(h.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(h,!1,o),this.checkLValPattern(h),this.parseForIn(t,h)):(this.checkExpressionErrors(o,!0),e>-1&&this.unexpected(e),this.parseFor(t,h))},Z.parseFunctionStatement=function(t,e,i){return this.next(),this.parseFunction(t,it|(i?0:st),!1,e)},Z.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(P._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},Z.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(P.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},Z.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(P.braceL),this.labels.push(tt),this.enterScope(0);for(var i=!1;this.type!==P.braceR;)if(this.type===P._case||this.type===P._default){var s=this.type===P._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),s?e.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),this.expect(P.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},Z.parseThrowStatement=function(t){return this.next(),I.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var et=[];Z.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===P._catch){var e=this.startNode();if(this.next(),this.eat(P.parenL)){e.param=this.parseBindingAtom();var i="Identifier"===e.param.type;this.enterScope(i?32:0),this.checkLValPattern(e.param,i?4:2),this.expect(P.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0);e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(P._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},Z.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},Z.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(J),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},Z.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},Z.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},Z.parseLabeledStatement=function(t,e,i,s){for(var r=0,a=this.labels;r=0;o--){var h=this.labels[o];if(h.statementStart!==t.start)break;h.statementStart=this.start,h.kind=n}return this.labels.push({name:e,kind:n,statementStart:this.start}),t.body=this.parseStatement(s?-1===s.indexOf("label")?s+"label":s:"label"),this.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")},Z.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},Z.parseBlock=function(t,e,i){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(P.braceL),t&&this.enterScope(0);this.type!==P.braceR;){var s=this.parseStatement(null);e.body.push(s)}return i&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")},Z.parseFor=function(t,e){return t.init=e,this.expect(P.semi),t.test=this.type===P.semi?null:this.parseExpression(),this.expect(P.semi),t.update=this.type===P.parenR?null:this.parseExpression(),this.expect(P.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")},Z.parseForIn=function(t,e){var i=this.type===P._in;return this.next(),"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(!i||this.options.ecmaVersion<8||this.strict||"var"!==e.kind||"Identifier"!==e.declarations[0].id.type)&&this.raise(e.start,(i?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(P.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,i?"ForInStatement":"ForOfStatement")},Z.parseVar=function(t,e,i){for(t.declarations=[],t.kind=i;;){var s=this.startNode();if(this.parseVarId(s,i),this.eat(P.eq)?s.init=this.parseMaybeAssign(e):"const"!==i||this.type===P._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===s.id.type||e&&(this.type===P._in||this.isContextual("of"))?s.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(P.comma))break}return t},Z.parseVarId=function(t,e){t.id=this.parseBindingAtom(),this.checkLValPattern(t.id,"var"===e?1:2,!1)};var it=1,st=2;function rt(t,e){var i=e.key.name,s=t[i],r="true";return"MethodDefinition"!==e.type||"get"!==e.kind&&"set"!==e.kind||(r=(e.static?"s":"i")+e.kind),"iget"===s&&"iset"===r||"iset"===s&&"iget"===r||"sget"===s&&"sset"===r||"sset"===s&&"sget"===r?(t[i]="true",!1):!!s||(t[i]=r,!1)}function at(t,e){var i=t.computed,s=t.key;return!i&&("Identifier"===s.type&&s.name===e||"Literal"===s.type&&s.value===e)}Z.parseFunction=function(t,e,i,s,r){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===P.star&&e&st&&this.unexpected(),t.generator=this.eat(P.star)),this.options.ecmaVersion>=8&&(t.async=!!s),e&it&&(t.id=4&e&&this.type!==P.name?null:this.parseIdent(),!t.id||e&st||this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?1:2:3));var a=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope($(t.async,t.generator)),e&it||(t.id=this.type===P.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,i,!1,r),this.yieldPos=a,this.awaitPos=n,this.awaitIdentPos=o,this.finishNode(t,e&it?"FunctionDeclaration":"FunctionExpression")},Z.parseFunctionParams=function(t){this.expect(P.parenL),t.params=this.parseBindingList(P.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Z.parseClass=function(t,e){this.next();var i=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var s=this.enterClassBody(),r=this.startNode(),a=!1;for(r.body=[],this.expect(P.braceL);this.type!==P.braceR;){var n=this.parseClassElement(null!==t.superClass);n&&(r.body.push(n),"MethodDefinition"===n.type&&"constructor"===n.kind?(a&&this.raise(n.start,"Duplicate constructor in the same class"),a=!0):n.key&&"PrivateIdentifier"===n.key.type&&rt(s,n)&&this.raiseRecoverable(n.key.start,"Identifier '#"+n.key.name+"' has already been declared"))}return this.strict=i,this.next(),t.body=this.finishNode(r,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},Z.parseClassElement=function(t){if(this.eat(P.semi))return null;var e=this.options.ecmaVersion,i=this.startNode(),s="",r=!1,a=!1,n="method",o=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(P.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===P.star?o=!0:s="static"}if(i.static=o,!s&&e>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==P.star||this.canInsertSemicolon()?s="async":a=!0),!s&&(e>=9||!a)&&this.eat(P.star)&&(r=!0),!s&&!a&&!r){var h=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?n=h:s=h)}if(s?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=s,this.finishNode(i.key,"Identifier")):this.parseClassElementName(i),e<13||this.type===P.parenL||"method"!==n||r||a){var l=!i.static&&at(i,"constructor"),c=l&&t;l&&"method"!==n&&this.raise(i.key.start,"Constructor can't have get/set modifier"),i.kind=l?"constructor":n,this.parseClassMethod(i,r,a,c)}else this.parseClassField(i);return i},Z.isClassElementNameStart=function(){return this.type===P.name||this.type===P.privateId||this.type===P.num||this.type===P.string||this.type===P.bracketL||this.type.keyword},Z.parseClassElementName=function(t){this.type===P.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)},Z.parseClassMethod=function(t,e,i,s){var r=t.key;"constructor"===t.kind?(e&&this.raise(r.start,"Constructor can't be a generator"),i&&this.raise(r.start,"Constructor can't be an async method")):t.static&&at(t,"prototype")&&this.raise(r.start,"Classes may not have a static property named prototype");var a=t.value=this.parseMethod(e,i,s);return"get"===t.kind&&0!==a.params.length&&this.raiseRecoverable(a.start,"getter should have no params"),"set"===t.kind&&1!==a.params.length&&this.raiseRecoverable(a.start,"setter should have exactly one param"),"set"===t.kind&&"RestElement"===a.params[0].type&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")},Z.parseClassField=function(t){if(at(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&at(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(P.eq)){var e=this.currentThisScope(),i=e.inClassFieldInit;e.inClassFieldInit=!0,t.value=this.parseMaybeAssign(),e.inClassFieldInit=i}else t.value=null;return this.semicolon(),this.finishNode(t,"PropertyDefinition")},Z.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(320);this.type!==P.braceR;){var i=this.parseStatement(null);t.body.push(i)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")},Z.parseClassId=function(t,e){this.type===P.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,2,!1)):(!0===e&&this.unexpected(),t.id=null)},Z.parseClassSuper=function(t){t.superClass=this.eat(P._extends)?this.parseExprSubscripts(!1):null},Z.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared},Z.exitClassBody=function(){for(var t=this.privateNameStack.pop(),e=t.declared,i=t.used,s=this.privateNameStack.length,r=0===s?null:this.privateNameStack[s-1],a=0;a=11&&(this.eatContextual("as")?(t.exported=this.parseIdent(!0),this.checkExport(e,t.exported.name,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==P.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration");if(this.eat(P._default)){var i;if(this.checkExport(e,"default",this.lastTokStart),this.type===P._function||(i=this.isAsyncFunction())){var s=this.startNode();this.next(),i&&this.next(),t.declaration=this.parseFunction(s,4|it,!1,i)}else if(this.type===P._class){var r=this.startNode();t.declaration=this.parseClass(r,"nullableID")}else t.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(t,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())t.declaration=this.parseStatement(null),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id.name,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==P.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var a=0,n=t.specifiers;a=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",i&&this.checkPatternErrors(i,!0);for(var s=0,r=t.properties;s=8&&!n&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(P._function))return this.overrideContext(ht.f_expr),this.parseFunction(this.startNodeAt(r,a),0,!1,!0,e);if(s&&!this.canInsertSemicolon()){if(this.eat(P.arrow))return this.parseArrowExpression(this.startNodeAt(r,a),[o],!1,e);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===P.name&&!n&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return o=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(P.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,a),[o],!0,e)}return o;case P.regexp:var h=this.value;return(i=this.parseLiteral(h.value)).regex={pattern:h.pattern,flags:h.flags},i;case P.num:case P.string:return this.parseLiteral(this.value);case P._null:case P._true:case P._false:return(i=this.startNode()).value=this.type===P._null?null:this.type===P._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case P.parenL:var l=this.start,c=this.parseParenAndDistinguishExpression(s,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(t.parenthesizedAssign=l),t.parenthesizedBind<0&&(t.parenthesizedBind=l)),c;case P.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(P.bracketR,!0,!0,t),this.finishNode(i,"ArrayExpression");case P.braceL:return this.overrideContext(ht.b_expr),this.parseObj(!1,t);case P._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case P._class:return this.parseClass(this.startNode(),!1);case P._new:return this.parseNew();case P.backQuote:return this.parseTemplate();case P._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},ct.parseExprImport=function(){var t=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var e=this.parseIdent(!0);switch(this.type){case P.parenL:return this.parseDynamicImport(t);case P.dot:return t.meta=e,this.parseImportMeta(t);default:this.unexpected()}},ct.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),!this.eat(P.parenR)){var e=this.start;this.eat(P.comma)&&this.eat(P.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")},ct.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")},ct.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),110===e.raw.charCodeAt(e.raw.length-1)&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")},ct.parseParenExpression=function(){this.expect(P.parenL);var t=this.parseExpression();return this.expect(P.parenR),t},ct.parseParenAndDistinguishExpression=function(t,e){var i,s=this.start,r=this.startLoc,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var n,o=this.start,h=this.startLoc,l=[],c=!0,p=!1,u=new Q,d=this.yieldPos,f=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==P.parenR;){if(c?c=!1:this.expect(P.comma),a&&this.afterTrailingComma(P.parenR,!0)){p=!0;break}if(this.type===P.ellipsis){n=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===P.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,u,this.parseParenItem))}var m=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(P.parenR),t&&!this.canInsertSemicolon()&&this.eat(P.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=d,this.awaitPos=f,this.parseParenArrowList(s,r,l,e);l.length&&!p||this.unexpected(this.lastTokStart),n&&this.unexpected(n),this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=f||this.awaitPos,l.length>1?((i=this.startNodeAt(o,h)).expressions=l,this.finishNodeAt(i,"SequenceExpression",m,g)):i=l[0]}else i=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(s,r);return v.expression=i,this.finishNode(v,"ParenthesizedExpression")}return i},ct.parseParenItem=function(t){return t},ct.parseParenArrowList=function(t,e,i,s){return this.parseArrowExpression(this.startNodeAt(t,e),i,!1,s)};var pt=[];ct.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(P.dot)){t.meta=e;var i=this.containsEsc;return t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),i&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var s=this.start,r=this.startLoc,a=this.type===P._import;return t.callee=this.parseSubscripts(this.parseExprAtom(),s,r,!0,!1),a&&"ImportExpression"===t.callee.type&&this.raise(s,"Cannot use new with import()"),this.eat(P.parenL)?t.arguments=this.parseExprList(P.parenR,this.options.ecmaVersion>=8,!1):t.arguments=pt,this.finishNode(t,"NewExpression")},ct.parseTemplateElement=function(t){var e=t.isTagged,i=this.startNode();return this.type===P.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value,cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),i.tail=this.type===P.backQuote,this.finishNode(i,"TemplateElement")},ct.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var i=this.startNode();this.next(),i.expressions=[];var s=this.parseTemplateElement({isTagged:e});for(i.quasis=[s];!s.tail;)this.type===P.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(P.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(P.braceR),i.quasis.push(s=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(i,"TemplateLiteral")},ct.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===P.name||this.type===P.num||this.type===P.string||this.type===P.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===P.star)&&!I.test(this.input.slice(this.lastTokEnd,this.start))},ct.parseObj=function(t,e){var i=this.startNode(),s=!0,r={};for(i.properties=[],this.next();!this.eat(P.braceR);){if(s)s=!1;else if(this.expect(P.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(P.braceR))break;var a=this.parseProperty(t,e);t||this.checkPropClash(a,r,e),i.properties.push(a)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},ct.parseProperty=function(t,e){var i,s,r,a,n=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(P.ellipsis))return t?(n.argument=this.parseIdent(!1),this.type===P.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(n,"RestElement")):(this.type===P.parenL&&e&&(e.parenthesizedAssign<0&&(e.parenthesizedAssign=this.start),e.parenthesizedBind<0&&(e.parenthesizedBind=this.start)),n.argument=this.parseMaybeAssign(!1,e),this.type===P.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(n,"SpreadElement"));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(t||e)&&(r=this.start,a=this.startLoc),t||(i=this.eat(P.star)));var o=this.containsEsc;return this.parsePropertyName(n),!t&&!o&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(n)?(s=!0,i=this.options.ecmaVersion>=9&&this.eat(P.star),this.parsePropertyName(n,e)):s=!1,this.parsePropertyValue(n,t,i,s,r,a,e,o),this.finishNode(n,"Property")},ct.parsePropertyValue=function(t,e,i,s,r,a,n,o){if((i||s)&&this.type===P.colon&&this.unexpected(),this.eat(P.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,n),t.kind="init";else if(this.options.ecmaVersion>=6&&this.type===P.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(i,s);else if(e||o||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===P.comma||this.type===P.braceR||this.type===P.eq)this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((i||s)&&this.unexpected(),this.checkUnreserved(t.key),"await"!==t.key.name||this.awaitIdentPos||(this.awaitIdentPos=r),t.kind="init",e?t.value=this.parseMaybeDefault(r,a,this.copyNode(t.key)):this.type===P.eq&&n?(n.shorthandAssign<0&&(n.shorthandAssign=this.start),t.value=this.parseMaybeDefault(r,a,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.shorthand=!0):this.unexpected();else{(i||s)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var h="get"===t.kind?0:1;if(t.value.params.length!==h){var l=t.value.start;"get"===t.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}},ct.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(P.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(P.bracketR),t.key;t.computed=!1}return t.key=this.type===P.num||this.type===P.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},ct.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},ct.parseMethod=function(t,e,i){var s=this.startNode(),r=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=t),this.options.ecmaVersion>=8&&(s.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|$(e,s.generator)|(i?128:0)),this.expect(P.parenL),s.params=this.parseBindingList(P.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=r,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(s,"FunctionExpression")},ct.parseArrowExpression=function(t,e,i,s){var r=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;return this.enterScope(16|$(i,!1)),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,s),this.yieldPos=r,this.awaitPos=a,this.awaitIdentPos=n,this.finishNode(t,"ArrowFunctionExpression")},ct.parseFunctionBody=function(t,e,i,s){var r=e&&this.type!==P.braceL,a=this.strict,n=!1;if(r)t.body=this.parseMaybeAssign(s),t.expression=!0,this.checkParams(t,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);a&&!o||(n=this.strictDirective(this.end))&&o&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var h=this.labels;this.labels=[],n&&(this.strict=!0),this.checkParams(t,!a&&!n&&!e&&!i&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,5),t.body=this.parseBlock(!1,void 0,n&&!a),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=h}this.exitScope()},ct.isSimpleParamList=function(t){for(var e=0,i=t;e-1||r.functions.indexOf(t)>-1||r.var.indexOf(t)>-1,r.lexical.push(t),this.inModule&&1&r.flags&&delete this.undefinedExports[t]}else if(4===e){this.currentScope().lexical.push(t)}else if(3===e){var a=this.currentScope();s=this.treatFunctionsAsVar?a.lexical.indexOf(t)>-1:a.lexical.indexOf(t)>-1||a.var.indexOf(t)>-1,a.functions.push(t)}else for(var n=this.scopeStack.length-1;n>=0;--n){var o=this.scopeStack[n];if(o.lexical.indexOf(t)>-1&&!(32&o.flags&&o.lexical[0]===t)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(t)>-1){s=!0;break}if(o.var.push(t),this.inModule&&1&o.flags&&delete this.undefinedExports[t],259&o.flags)break}s&&this.raiseRecoverable(i,"Identifier '"+t+"' has already been declared")},dt.checkLocalExport=function(t){-1===this.scopeStack[0].lexical.indexOf(t.name)&&-1===this.scopeStack[0].var.indexOf(t.name)&&(this.undefinedExports[t.name]=t)},dt.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},dt.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags)return e}},dt.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags&&!(16&e.flags))return e}};var mt=function(t,e,i){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new H(t,i)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},gt=K.prototype;function vt(t,e,i,s){return t.type=e,t.end=i,this.options.locations&&(t.loc.end=s),this.options.ranges&&(t.range[1]=i),t}gt.startNode=function(){return new mt(this,this.start,this.startLoc)},gt.startNodeAt=function(t,e){return new mt(this,t,e)},gt.finishNode=function(t,e){return vt.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},gt.finishNodeAt=function(t,e,i,s){return vt.call(this,t,e,i,s)},gt.copyNode=function(t){var e=new mt(this,t.start,this.startLoc);for(var i in t)e[i]=t[i];return e};var yt="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",xt=yt+" Extended_Pictographic",bt={9:yt,10:xt,11:xt,12:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic EBase EComp EMod EPres ExtPict"},_t="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",kt="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",wt=kt+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",St=wt+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",Ct={9:kt,10:wt,11:St,12:"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"},Et={};function At(t){var e=Et[t]={binary:F(bt[t]+" "+_t),nonBinary:{General_Category:F(_t),Script:F(Ct[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}At(9),At(10),At(11),At(12);var Pt=K.prototype,It=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":""),this.unicodeProperties=Et[t.options.ecmaVersion>=12?12:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Lt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function Tt(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function Nt(t){return t>=65&&t<=90||t>=97&&t<=122}function Rt(t){return Nt(t)||95===t}function Vt(t){return Rt(t)||Mt(t)}function Mt(t){return t>=48&&t<=57}function Ot(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function Dt(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function Bt(t){return t>=48&&t<=55}It.prototype.reset=function(t,e,i){var s=-1!==i.indexOf("u");this.start=0|t,this.source=e+"",this.flags=i,this.switchU=s&&this.parser.options.ecmaVersion>=6,this.switchN=s&&this.parser.options.ecmaVersion>=9},It.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},It.prototype.at=function(t,e){void 0===e&&(e=!1);var i=this.source,s=i.length;if(t>=s)return-1;var r=i.charCodeAt(t);if(!e&&!this.switchU||r<=55295||r>=57344||t+1>=s)return r;var a=i.charCodeAt(t+1);return a>=56320&&a<=57343?(r<<10)+a-56613888:r},It.prototype.nextIndex=function(t,e){void 0===e&&(e=!1);var i=this.source,s=i.length;if(t>=s)return s;var r,a=i.charCodeAt(t);return!e&&!this.switchU||a<=55295||a>=57344||t+1>=s||(r=i.charCodeAt(t+1))<56320||r>57343?t+1:t+2},It.prototype.current=function(t){return void 0===t&&(t=!1),this.at(this.pos,t)},It.prototype.lookahead=function(t){return void 0===t&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},It.prototype.advance=function(t){void 0===t&&(t=!1),this.pos=this.nextIndex(this.pos,t)},It.prototype.eat=function(t,e){return void 0===e&&(e=!1),this.current(e)===t&&(this.advance(e),!0)},Pt.validateRegExpFlags=function(t){for(var e=t.validFlags,i=t.flags,s=0;s-1&&this.raise(t.start,"Duplicate regular expression flag")}},Pt.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},Pt.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,i=t.backReferenceNames;e=9&&(i=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!i,!0}return t.pos=e,!1},Pt.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},Pt.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},Pt.regexp_eatBracedQuantifier=function(t,e){var i=t.pos;if(t.eat(123)){var s=0,r=-1;if(this.regexp_eatDecimalDigits(t)&&(s=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(r=t.lastIntValue),t.eat(125)))return-1!==r&&r=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},Pt.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},Pt.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},Pt.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!Tt(e)&&(t.lastIntValue=e,t.advance(),!0)},Pt.regexp_eatPatternCharacters=function(t){for(var e=t.pos,i=0;-1!==(i=t.current())&&!Tt(i);)t.advance();return t.pos!==e},Pt.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e)&&(t.advance(),!0)},Pt.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},Pt.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},Pt.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=Lt(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=Lt(t.lastIntValue);return!0}return!1},Pt.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,s=t.current(i);return t.advance(i),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(s=t.lastIntValue),function(t){return b(t,!0)||36===t||95===t}(s)?(t.lastIntValue=s,!0):(t.pos=e,!1)},Pt.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,i=this.options.ecmaVersion>=11,s=t.current(i);return t.advance(i),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(t,i)&&(s=t.lastIntValue),function(t){return _(t,!0)||36===t||95===t||8204===t||8205===t}(s)?(t.lastIntValue=s,!0):(t.pos=e,!1)},Pt.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},Pt.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var i=t.lastIntValue;if(t.switchU)return i>t.maxBackReference&&(t.maxBackReference=i),!0;if(i<=t.numCapturingParens)return!0;t.pos=e}return!1},Pt.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},Pt.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},Pt.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},Pt.regexp_eatZero=function(t){return 48===t.current()&&!Mt(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},Pt.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},Pt.regexp_eatControlLetter=function(t){var e=t.current();return!!Nt(e)&&(t.lastIntValue=e%32,t.advance(),!0)},Pt.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){void 0===e&&(e=!1);var i,s=t.pos,r=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var a=t.lastIntValue;if(r&&a>=55296&&a<=56319){var n=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var o=t.lastIntValue;if(o>=56320&&o<=57343)return t.lastIntValue=1024*(a-55296)+(o-56320)+65536,!0}t.pos=n,t.lastIntValue=a}return!0}if(r&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&((i=t.lastIntValue)>=0&&i<=1114111))return!0;r&&t.raise("Invalid unicode escape"),t.pos=s}return!1},Pt.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e)&&(t.lastIntValue=e,t.advance(),!0)},Pt.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1},Pt.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(function(t){return 100===t||68===t||115===t||83===t||119===t||87===t}(e))return t.lastIntValue=-1,t.advance(),!0;if(t.switchU&&this.options.ecmaVersion>=9&&(80===e||112===e)){if(t.lastIntValue=-1,t.advance(),t.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(t)&&t.eat(125))return!0;t.raise("Invalid property name")}return!1},Pt.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var i=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var s=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,i,s),!0}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var r=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,r),!0}return!1},Pt.regexp_validateUnicodePropertyNameAndValue=function(t,e,i){D(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(i)||t.raise("Invalid property value")},Pt.regexp_validateUnicodePropertyNameOrValue=function(t,e){t.unicodeProperties.binary.test(e)||t.raise("Invalid property name")},Pt.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";Rt(e=t.current());)t.lastStringValue+=Lt(e),t.advance();return""!==t.lastStringValue},Pt.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";Vt(e=t.current());)t.lastStringValue+=Lt(e),t.advance();return""!==t.lastStringValue},Pt.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},Pt.regexp_eatCharacterClass=function(t){if(t.eat(91)){if(t.eat(94),this.regexp_classRanges(t),t.eat(93))return!0;t.raise("Unterminated character class")}return!1},Pt.regexp_classRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var i=t.lastIntValue;!t.switchU||-1!==e&&-1!==i||t.raise("Invalid character class"),-1!==e&&-1!==i&&e>i&&t.raise("Range out of order in character class")}}},Pt.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var i=t.current();(99===i||Bt(i))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var s=t.current();return 93!==s&&(t.lastIntValue=s,t.advance(),!0)},Pt.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},Pt.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!Mt(e)&&95!==e)&&(t.lastIntValue=e%32,t.advance(),!0)},Pt.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},Pt.regexp_eatDecimalDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;Mt(i=t.current());)t.lastIntValue=10*t.lastIntValue+(i-48),t.advance();return t.pos!==e},Pt.regexp_eatHexDigits=function(t){var e=t.pos,i=0;for(t.lastIntValue=0;Ot(i=t.current());)t.lastIntValue=16*t.lastIntValue+Dt(i),t.advance();return t.pos!==e},Pt.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var i=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*i+t.lastIntValue:t.lastIntValue=8*e+i}else t.lastIntValue=e;return!0}return!1},Pt.regexp_eatOctalDigit=function(t){var e=t.current();return Bt(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},Pt.regexp_eatFixedHexDigits=function(t,e){var i=t.pos;t.lastIntValue=0;for(var s=0;s>10),56320+(1023&t)))}Wt.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Ft(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Wt.getToken=function(){return this.next(),new Ft(this)},"undefined"!=typeof Symbol&&(Wt[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===P.eof,value:e}}}}),Wt.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(P.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},Wt.readToken=function(t){return b(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},Wt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);if(t<=55295||t>=56320)return t;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?t:(t<<10)+e-56613888},Wt.skipBlockComment=function(){var t,e=this.options.onComment&&this.curPosition(),i=this.pos,s=this.input.indexOf("*/",this.pos+=2);if(-1===s&&this.raise(this.pos-2,"Unterminated comment"),this.pos=s+2,this.options.locations)for(L.lastIndex=i;(t=L.exec(this.input))&&t.index8&&t<14||t>=5760&&N.test(String.fromCharCode(t))))break t;++this.pos}}},Wt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=t,this.value=e,this.updateContext(i)},Wt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(P.ellipsis)):(++this.pos,this.finishToken(P.dot))},Wt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(P.assign,2):this.finishOp(P.slash,1)},Wt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),i=1,s=42===t?P.star:P.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++i,s=P.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(P.assign,i+1):this.finishOp(s,i)},Wt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);if(e===t){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(P.assign,3);return this.finishOp(124===t?P.logicalOR:P.logicalAND,2)}return 61===e?this.finishOp(P.assign,2):this.finishOp(124===t?P.bitwiseOR:P.bitwiseAND,1)},Wt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(P.assign,2):this.finishOp(P.bitwiseXOR,1)},Wt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!I.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(P.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(P.assign,2):this.finishOp(P.plusMin,1)},Wt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),i=1;return e===t?(i=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+i)?this.finishOp(P.assign,i+1):this.finishOp(P.bitShift,i)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(i=2),this.finishOp(P.relational,i)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Wt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(P.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(P.arrow)):this.finishOp(61===t?P.eq:P.prefix,1)},Wt.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(46===e){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(P.questionDot,2)}if(63===e){if(t>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(P.assign,3);return this.finishOp(P.coalesce,2)}}return this.finishOp(P.question,1)},Wt.readToken_numberSign=function(){var t=35;if(this.options.ecmaVersion>=13&&(++this.pos,b(t=this.fullCharCodeAtPos(),!0)||92===t))return this.finishToken(P.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Yt(t)+"'")},Wt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(P.parenL);case 41:return++this.pos,this.finishToken(P.parenR);case 59:return++this.pos,this.finishToken(P.semi);case 44:return++this.pos,this.finishToken(P.comma);case 91:return++this.pos,this.finishToken(P.bracketL);case 93:return++this.pos,this.finishToken(P.bracketR);case 123:return++this.pos,this.finishToken(P.braceL);case 125:return++this.pos,this.finishToken(P.braceR);case 58:return++this.pos,this.finishToken(P.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(P.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(P.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Yt(t)+"'")},Wt.finishOp=function(t,e){var i=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,i)},Wt.readRegexp=function(){for(var t,e,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,"Unterminated regular expression");var s=this.input.charAt(this.pos);if(I.test(s)&&this.raise(i,"Unterminated regular expression"),t)t=!1;else{if("["===s)e=!0;else if("]"===s&&e)e=!1;else if("/"===s&&!e)break;t="\\"===s}++this.pos}var r=this.input.slice(i,this.pos);++this.pos;var a=this.pos,n=this.readWord1();this.containsEsc&&this.unexpected(a);var o=this.regexpState||(this.regexpState=new It(this));o.reset(i,r,n),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(r,n)}catch(t){}return this.finishToken(P.regexp,{pattern:r,flags:n,value:h})},Wt.readInt=function(t,e,i){for(var s=this.options.ecmaVersion>=12&&void 0===e,r=i&&48===this.input.charCodeAt(this.pos),a=this.pos,n=0,o=0,h=0,l=null==e?1/0:e;h=97?c-97+10:c>=65?c-65+10:c>=48&&c<=57?c-48:1/0)>=t)break;o=c,n=n*t+p}}return s&&95===o&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||null!=e&&this.pos-a!==e?null:n},Wt.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var i=this.readInt(t);return null==i&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(i=Ht(this.input.slice(e,this.pos)),++this.pos):b(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(P.num,i)},Wt.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10,void 0,!0)||this.raise(e,"Invalid number");var i=this.pos-e>=2&&48===this.input.charCodeAt(e);i&&this.strict&&this.raise(e,"Invalid number");var s=this.input.charCodeAt(this.pos);if(!i&&!t&&this.options.ecmaVersion>=11&&110===s){var r=Ht(this.input.slice(e,this.pos));return++this.pos,b(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(P.num,r)}i&&/[89]/.test(this.input.slice(e,this.pos))&&(i=!1),46!==s||i||(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(43!==(s=this.input.charCodeAt(++this.pos))&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),b(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a,n=(a=this.input.slice(e,this.pos),i?parseInt(a,8):parseFloat(a.replace(/_/g,"")));return this.finishToken(P.num,n)},Wt.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},Wt.readString=function(t){for(var e="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var s=this.input.charCodeAt(this.pos);if(s===t)break;92===s?(e+=this.input.slice(i,this.pos),e+=this.readEscapedChar(!1),i=this.pos):8232===s||8233===s?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(T(s)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(i,this.pos++),this.finishToken(P.string,e)};var Xt={};Wt.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==Xt)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Wt.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Xt;this.raise(t,e)},Wt.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(96===i||36===i&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==P.template&&this.type!==P.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(P.template,t)):36===i?(this.pos+=2,this.finishToken(P.dollarBraceL)):(++this.pos,this.finishToken(P.backQuote));if(92===i)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(T(i)){switch(t+=this.input.slice(e,this.pos),++this.pos,i){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(i)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},Wt.readInvalidTemplateToken=function(){for(;this.pos=48&&e<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(s,8);return r>255&&(s=s.slice(0,-1),r=parseInt(s,8)),this.pos+=s.length-1,e=this.input.charCodeAt(this.pos),"0"===s&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-s.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(r)}return T(e)?"":String.fromCharCode(e)}},Wt.readHexChar=function(t){var e=this.pos,i=this.readInt(16,t);return null===i&&this.invalidStringToken(e,"Bad character escape sequence"),i},Wt.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos[]}},data:()=>({scrollbars:{wheelPropagation:!1}}),computed:{items(){return[...this.value].reverse()}}},$t=(i(323),Object(a.a)(Ut,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("perfect-scrollbar",{staticClass:"editor-output",attrs:{options:t.scrollbars}},[i("div",{staticClass:"editor-output-content"},[t._l(t.items,(function(e,s){return i("span",{key:s,domProps:{textContent:t._s(e)}})})),t._v(" "),!t.items.length&&t.placeholder?i("span",{staticClass:"text-muted",domProps:{textContent:t._s(!0===t.placeholder?"...":t.placeholder)}}):t._e()],2)])}),[],!1,null,"42be9875",null).exports),Kt=i(324),qt=(i(325),i(326),i(1));function Gt(){return(Gt=Object.assign||function(t){for(var e=1;e"},lineNumbersCount:function(){return this.codeData.split(/\r\n|\n/).length}},mounted:function(){this._recordCurrentState(),this.styleLineNumbers()},methods:{setLineNumbersHeight:function(){this.lineNumbersHeight=getComputedStyle(this.$refs.pre).height},styleLineNumbers:function(){if(this.lineNumbers&&this.autoStyleLineNumbers){var t=this.$refs.pre,e=this.$el.querySelector(".prism-editor__line-numbers"),i=window.getComputedStyle(t);this.$nextTick((function(){var s="border-top-left-radius",r="border-bottom-left-radius";if(e){e.style[s]=i[s],e.style[r]=i[r],t.style[s]="0",t.style[r]="0";["background-color","margin-top","padding-top","font-family","font-size","line-height"].forEach((function(t){e.style[t]=i[t]})),e.style["margin-bottom"]="-"+i["padding-top"]}}))}},_recordCurrentState:function(){var t=this.$refs.textarea;if(t){var e=t.value,i=t.selectionStart,s=t.selectionEnd;this._recordChange({value:e,selectionStart:i,selectionEnd:s})}},_getLines:function(t,e){return t.substring(0,e).split("\n")},_applyEdits:function(t){var e=this.$refs.textarea,i=this.history.stack[this.history.offset];i&&e&&(this.history.stack[this.history.offset]=Gt({},i,{selectionStart:e.selectionStart,selectionEnd:e.selectionEnd})),this._recordChange(t),this._updateInput(t)},_recordChange:function(t,e){void 0===e&&(e=!1);var i=this.history,s=i.stack,r=i.offset;if(s.length&&r>-1){this.history.stack=s.slice(0,r+1);var a=this.history.stack.length;if(a>100){var n=a-100;this.history.stack=s.slice(n,a),this.history.offset=Math.max(this.history.offset-n,0)}}var o=Date.now();if(e){var h=this.history.stack[this.history.offset];if(h&&o-h.timestamp<3e3){var l,c,p=/[^a-z0-9]([a-z0-9]+)$/i,u=null===(l=this._getLines(h.value,h.selectionStart).pop())||void 0===l?void 0:l.match(p),d=null===(c=this._getLines(t.value,t.selectionStart).pop())||void 0===c?void 0:c.match(p);if(u&&d&&d[1].startsWith(u[1]))return void(this.history.stack[this.history.offset]=Gt({},t,{timestamp:o}))}}this.history.stack.push(Gt({},t,{timestamp:o})),this.history.offset++},_updateInput:function(t){var e=this.$refs.textarea;e&&(e.value=t.value,e.selectionStart=t.selectionStart,e.selectionEnd=t.selectionEnd,this.$emit("input",t.value))},handleChange:function(t){var e=t.target,i=e.value,s=e.selectionStart,r=e.selectionEnd;this._recordChange({value:i,selectionStart:s,selectionEnd:r},!0),this.$emit("input",i)},_undoEdit:function(){var t=this.history,e=t.stack,i=t.offset,s=e[i-1];s&&(this._updateInput(s),this.history.offset=Math.max(i-1,0))},_redoEdit:function(){var t=this.history,e=t.stack,i=t.offset,s=e[i+1];s&&(this._updateInput(s),this.history.offset=Math.min(i+1,e.length-1))},handleKeyDown:function(t){var e=this.tabSize,i=this.insertSpaces,s=this.ignoreTabKey;if(!this.$listeners.keydown||(this.$emit("keydown",t),!t.defaultPrevented)){27===t.keyCode&&(t.target.blur(),this.$emit("blur",t));var r=t.target,a=r.value,n=r.selectionStart,o=r.selectionEnd,h=(i?" ":"\t").repeat(e);if(9===t.keyCode&&!s&&this.capture)if(t.preventDefault(),t.shiftKey){var l=this._getLines(a,n),c=l.length-1,p=this._getLines(a,o).length-1,u=a.split("\n").map((function(t,e){return e>=c&&e<=p&&t.startsWith(h)?t.substring(h.length):t})).join("\n");if(a!==u){var d=l[c];this._applyEdits({value:u,selectionStart:d.startsWith(h)?n-h.length:n,selectionEnd:o-(a.length-u.length)})}}else if(n!==o){var f=this._getLines(a,n),m=f.length-1,g=this._getLines(a,o).length-1,v=f[m];this._applyEdits({value:a.split("\n").map((function(t,e){return e>=m&&e<=g?h+t:t})).join("\n"),selectionStart:/\S/.test(v)?n+h.length:n,selectionEnd:o+h.length*(g-m+1)})}else{var y=n+h.length;this._applyEdits({value:a.substring(0,n)+h+a.substring(o),selectionStart:y,selectionEnd:y})}else if(8===t.keyCode){var x=n!==o;if(a.substring(0,n).endsWith(h)&&!x){t.preventDefault();var b=n-h.length;this._applyEdits({value:a.substring(0,n-h.length)+a.substring(o),selectionStart:b,selectionEnd:b})}}else if(13===t.keyCode){if(n===o){var _=this._getLines(a,n).pop(),k=null==_?void 0:_.match(/^\s+/);if(k&&k[0]){t.preventDefault();var w="\n"+k[0],S=n+w.length;this._applyEdits({value:a.substring(0,n)+w+a.substring(o),selectionStart:S,selectionEnd:S})}}}else if(57===t.keyCode||219===t.keyCode||222===t.keyCode||192===t.keyCode){var C;57===t.keyCode&&t.shiftKey?C=["(",")"]:219===t.keyCode?C=t.shiftKey?["{","}"]:["[","]"]:222===t.keyCode?C=t.shiftKey?['"','"']:["'","'"]:192!==t.keyCode||t.shiftKey||(C=["`","`"]),n!==o&&C&&(t.preventDefault(),this._applyEdits({value:a.substring(0,n)+C[0]+a.substring(n,o)+C[1]+a.substring(o),selectionStart:n,selectionEnd:o+2}))}else!(Qt?t.metaKey&&90===t.keyCode:t.ctrlKey&&90===t.keyCode)||t.shiftKey||t.altKey?(Qt?t.metaKey&&90===t.keyCode&&t.shiftKey:zt?t.ctrlKey&&89===t.keyCode:t.ctrlKey&&90===t.keyCode&&t.shiftKey)&&!t.altKey?(t.preventDefault(),this._redoEdit()):77!==t.keyCode||!t.ctrlKey||Qt&&!t.shiftKey||(t.preventDefault(),this.capture=!this.capture):(t.preventDefault(),this._undoEdit())}}},render:function(t){var e=this,i=t("div",{attrs:{class:"prism-editor__line-width-calc",style:"height: 0px; visibility: hidden; pointer-events: none;"}},"999"),s=t("div",{staticClass:"prism-editor__line-numbers",style:{"min-height":this.lineNumbersHeight},attrs:{"aria-hidden":"true"}},[i,Array.from(Array(this.lineNumbersCount).keys()).map((function(e,i){return t("div",{attrs:{class:"prism-editor__line-number token comment"}},""+ ++i)}))]),r=t("textarea",{ref:"textarea",on:{input:this.handleChange,keydown:this.handleKeyDown,click:function(t){e.$emit("click",t)},keyup:function(t){e.$emit("keyup",t)},focus:function(t){e.$emit("focus",t)},blur:function(t){e.$emit("blur",t)}},staticClass:"prism-editor__textarea",class:{"prism-editor__textarea--empty":this.isEmpty},attrs:{spellCheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off","data-gramm":"false",placeholder:this.placeholder,"data-testid":"textarea",readonly:this.readonly},domProps:{value:this.codeData}}),a=t("pre",{ref:"pre",staticClass:"prism-editor__editor",attrs:{"data-testid":"preview"},domProps:{innerHTML:this.content}}),n=t("div",{staticClass:"prism-editor__container"},[r,a]);return t("div",{staticClass:"prism-editor-wrapper"},[this.lineNumbers&&s,n])}}),Jt=(i(327),{Componentes:{PerfectScrollbar:jt.PerfectScrollbar,PrismEditor:Zt},props:{value:{type:String,required:!0}},data:()=>({scrollbars:{wheelPropagation:!1}}),methods:{highlight:t=>Object(Kt.highlight)(t,Kt.languages.js)}}),te=(i(328),Object(a.a)(Jt,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("perfect-scrollbar",{staticClass:"editor-textarea",attrs:{options:t.scrollbars}},[i("div",{staticClass:"editor-textarea-content"},[i("prism-editor",{attrs:{highlight:t.highlight,value:t.value},on:{input:function(e){return t.$emit("input",e)}}})],1)])}),[],!1,null,"05f11386",null).exports),ee={Componentes:{PerfectScrollbar:jt.PerfectScrollbar}},ie=(i(329),Object(a.a)(ee,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"tooltip"},[e("div",{staticClass:"activator"},[this._t("default")],2),this._v(" "),e("perfect-scrollbar",{staticClass:"content"},[this._t("content")],2)],1)}),[],!1,null,"402b0086",null).exports);const se=/^\s*<(\/?)block:([\w\s]+)(?::(\d+))?>\s*$/;var re={Componentes:{EditorOutput:$t,EditorTextarea:te,Tooltip:ie},props:{delay:{type:Number,default:500},error:{type:Error,default:null},messages:{type:Array,default:()=>[]},output:{type:[Boolean,String],default:!1},value:{type:String,required:!0}},data:()=>({blocks:[],current:0,modified:!1,sections:[]}),computed:{sourceLink(){const t=this.$page.relativePath,e=this.$site.themeConfig;return`https://github.com/${e.docsRepo||e.repo}/blob/${e.docsBranch||"master"}/${e.docsDir||""}/${t}`}},watch:{output(){this.rebuild()},value:{immediate:!0,handler(){this.rebuild()}}},methods:{rebuild(){try{const t=this,e=this.parse(this.value),i=e.filter(({name:t})=>!!t);i.length||i.push({code:this.value,name:"JS",order:0});const s=i.sort((t,e)=>t.order-e.order).map(e=>({component:te,value:()=>e.code,name:e.name,on:{input(i){e.code=i,t.invalidate()}}}));this.output&&s.push({component:$t,value:()=>this.messages,name:"Output",attrs:{placeholder:this.output}}),this.blocks=e,this.sections=s,this.current=this.output?s.length-1:0}catch(t){this.$emit("update:error",t),this.blocks=[]}},invalidate(){this._timeout&&(clearTimeout(this._timeout),this._timeout=null);const t=this.delay;t?(this.modified=!0,this._timeout=setTimeout(()=>{this.modified=!1,this._timeout=null,this.update()},t)):this.update()},update(){this.$emit("input",this.blocks.map(t=>t.code).join(""))},parse(t){const e=[];let i={order:0,start:0,end:0};return K.parse(t,{ecmaVersion:2016,onComment(t,s,r,a){const n=s.match(se);if(!n)return;const o=!n[1],h=n[2],l=n[3];(o||i.name===h)&&(e.push({...i,end:r}),i={name:o?h:void 0,order:l||0,start:a,end:a})}}),i&&e.push({...i,end:t.length}),e.filter(({start:t,end:e})=>t({code:t.slice(i,s).trim(),order:r,name:e}))}}},ae=(i(330),{Componentes:{ChartActions:n,ChartView:h,CodeEditor:Object(a.a)(re,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"code-editor"},[i("div",{staticClass:"code-editor-header"},[i("div",{staticClass:"code-editor-tabs"},t._l(t.sections,(function(e,s){return i("button",{key:s,staticClass:"code-editor-tab",class:{active:t.current===s},on:{click:function(e){t.current=s}}},[t._v("\n "+t._s(e.name)+"\n ")])})),0),t._v(" "),i("div",{staticClass:"code-editor-tools"},[t.modified?i("i",{staticClass:"code-editor-tool fas fa-bahai fa-spin text-muted"}):t.error?i("tooltip",{scopedSlots:t._u([{key:"content",fn:function(){return[i("pre",{staticStyle:{"white-space":"pre-wrap"}},[t._v(t._s(t.error))])]},proxy:!0}])},[i("i",{staticClass:"code-editor-tool fas fa-exclamation-triangle text-error"})]):t._e(),t._v(" "),i("a",{staticClass:"code-editor-tool fab fa-github fa-lg",attrs:{href:t.sourceLink,title:"View on GitHub",target:"_blank"}})],1)]),t._v(" "),i("div",{staticClass:"code-editor-views"},t._l(t.sections,(function(e,s){return i(e.component,t._g(t._b({directives:[{name:"show",rawName:"v-show",value:t.current===s,expression:"current === index"}],key:s,tag:"component",attrs:{value:e.value()}},"component",e.attrs,!1),e.on))})),1)])}),[],!1,null,"66ca8197",null).exports},props:{code:{type:String,required:!0}},data:()=>({actions:null,config:null,error:null,messages:[],output:!1}),watch:{code(t){this.evaluate(t)}},mounted(){this.evaluate(this.code)},methods:{evaluate(t){if(this.error=null,!t)return void this.update(null);const e=this,i={log(...t){e.messages=[...e.messages,t.join(" ")].slice(-50)}},r={...(this.$chart||{}).imports,console:{...console,...i},Chart:s.b},a=`\n 'use strict';\n const module = {exports: {}};\n ${Object.keys(r).map(t=>`const ${t} = arguments[0].${t}`).join(";\n")};\n (function(){ ${t} })();\n return module.exports;\n `;try{const t=new Function(a)(r),e=t.config||null;this.output=t.output||!1,this.actions||(this.actions=t.actions||null),this.config=Object.freeze(e)}catch(t){this.error=t}},execute(t){t.handler(this.$refs["chart-view"].chart())}}}),ne=(i(331),Object(a.a)(ae,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"chart-editor"},[i("chart-view",{ref:"chart-view",attrs:{config:t.config}}),t._v(" "),i("chart-actions",{attrs:{actions:t.actions},on:{action:t.execute}}),t._v(" "),i("code-editor",{attrs:{error:t.error,messages:t.messages,output:t.output,value:t.code},on:{"update:error":function(e){t.error=e},input:t.evaluate}})],1)}),[],!1,null,"365c20ab",null));e.default=ne.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/30.343676b8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/30.343676b8.js new file mode 100644 index 0000000..33f3e32 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/30.343676b8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{361:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-barcontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-barcontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: BarControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[r("code",[t._v("ControllerDatasetOptions")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[r("code",[t._v("BarOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r("code",[t._v("CommonHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#animationoptions"}},[r("code",[t._v("AnimationOptions")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">")],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("BarControllerDatasetOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v("> & { "),r("code",[t._v("onComplete?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" ; "),r("code",[t._v("onProgress?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" }")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animation")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animations")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.backgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"barpercentage"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#barpercentage"}},[t._v("#")]),t._v(" barPercentage")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("barPercentage")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0.9")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L109",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:109"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"barthickness"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#barthickness"}},[t._v("#")]),t._v(" barThickness")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("barThickness")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v('"flex"')])]),t._v(" "),r("p",[t._v("Manually set width of each bar in pixels. If set to 'flex', it computes \"optimal\" sample widths that globally arrange bars side by side. If not set (default), bars are equally sized based on the smallest interval.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L119",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:119"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"base"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#base"}},[t._v("#")]),t._v(" base")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("base")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The base value for the bar in data units along the value axis.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.base")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1990",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1990"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[t._v("#")]),t._v(" borderRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[r("code",[t._v("BorderRadius")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Border radius")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2002",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2002"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderskipped"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderskipped"}},[t._v("#")]),t._v(" borderSkipped")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderSkipped")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(" | "),r("code",[t._v('"start"')]),t._v(" | "),r("code",[t._v('"end"')]),t._v(" | "),r("code",[t._v('"left"')]),t._v(" | "),r("code",[t._v('"right"')]),t._v(" | "),r("code",[t._v('"bottom"')]),t._v(" | "),r("code",[t._v('"top"')]),t._v(" | "),r("code",[t._v('"middle"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'start'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderSkipped")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1996",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1996"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | { "),r("code",[t._v("bottom?")]),t._v(": "),r("code",[t._v("number")]),t._v(" ; "),r("code",[t._v("left?")]),t._v(": "),r("code",[t._v("number")]),t._v(" ; "),r("code",[t._v("right?")]),t._v(": "),r("code",[t._v("number")]),t._v(" ; "),r("code",[t._v("top?")]),t._v(": "),r("code",[t._v("number")]),t._v(" }, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Width of the border, number for all sides, object to specify width for each side specifically")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2015",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2015"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"categorypercentage"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#categorypercentage"}},[t._v("#")]),t._v(" categoryPercentage")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("categoryPercentage")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Percent (0-1) of the available width each category should be within the sample width.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0.8")]),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L114",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:114"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"inflateamount"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inflateamount"}},[t._v("#")]),t._v(" inflateAmount")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("inflateAmount")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v('"auto"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Amount to inflate the rectangle(s). This can be used to hide artifacts between bars.\nUnit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'auto'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.inflateAmount")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2009",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2009"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"maxbarthickness"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#maxbarthickness"}},[t._v("#")]),t._v(" maxBarThickness")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("maxBarThickness")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Set this to ensure that bars are not sized thicker than this.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L124",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:124"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"minbarlength"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#minbarlength"}},[t._v("#")]),t._v(" minBarLength")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("minBarLength")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Set this to ensure that bars have a minimum length in pixels.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L129",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:129"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])])],1),t._v(" "),r("p",[t._v("Point style for the legend")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'circle;")]),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L135",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:135"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"transitions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("transitions")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[r("code",[t._v("TransitionsSpec")])]),t._v("<"),r("code",[t._v('"bar"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.transitions")]),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"xaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xaxisid"}},[t._v("#")]),t._v(" xAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("xAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the x axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L99",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:99"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"yaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#yaxisid"}},[t._v("#")]),t._v(" yAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("yAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the y axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L103",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:103"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/31.cff089f1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/31.cff089f1.js new file mode 100644 index 0000000..4879317 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/31.cff089f1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{362:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-barelement-t-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-barelement-t-o"}},[t._v("#")]),t._v(" Interface: BarElement")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/BarProps.html"}},[a("code",[t._v("BarProps")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/BarProps.html"}},[a("code",[t._v("BarProps")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[a("code",[t._v("BarOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[a("code",[t._v("BarOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[a("code",[t._v("VisualElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("BarElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("area?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("area?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1685",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1685"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcenterpoint"}},[t._v("#")]),t._v(" getCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getCenterPoint")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getcenterpoint"}},[t._v("getCenterPoint")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1689",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1689"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("code",[t._v("T")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getrange"}},[t._v("#")]),t._v(" getRange")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getRange")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getrange"}},[t._v("getRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1690",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1690"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inrange"}},[t._v("#")]),t._v(" inRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inrange"}},[t._v("inRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1686",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1686"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inxrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inxrange"}},[t._v("#")]),t._v(" inXRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inXRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inxrange"}},[t._v("inXRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1687"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inyrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inyrange"}},[t._v("#")]),t._v(" inYRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inYRange")]),t._v("("),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inyrange"}},[t._v("inYRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1688"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/32.56d8546e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/32.56d8546e.js new file mode 100644 index 0000000..0c1732b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/32.56d8546e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{363:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-barhoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-barhoveroptions"}},[r._v("#")]),r._v(" Interface: BarHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[r._v("#")]),r._v(" Hierarchy")]),r._v(" "),t("ul",[t("li",[t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[t("code",[r._v("CommonHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("strong",[t("code",[r._v("BarHoverOptions")])])])])]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"hoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[r._v("#")]),r._v(" hoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbackgroundcolor"}},[r._v("hoverBackgroundColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1702"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[r._v("#")]),r._v(" hoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbordercolor"}},[r._v("hoverBorderColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1701"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderradius"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderradius"}},[r._v("#")]),r._v(" hoverBorderRadius")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderRadius")]),r._v(": "),t("code",[r._v("number")]),r._v(" | "),t("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[t("code",[r._v("BorderRadius")])])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2026",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:2026"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[r._v("#")]),r._v(" hoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"inherited-from-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverborderwidth"}},[r._v("hoverBorderWidth")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1700"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/33.6b642a06.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/33.6b642a06.js new file mode 100644 index 0000000..8e12bf6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/33.6b642a06.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{364:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-baroptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-baroptions"}},[e._v("#")]),e._v(" Interface: BarOptions")]),e._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[e._v("#")]),e._v(" Hierarchy")]),e._v(" "),r("ul",[r("li",[r("p",[r("code",[e._v("Omit")]),e._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[r("code",[e._v("CommonElementOptions")])]),e._v(", "),r("code",[e._v('"borderWidth"')]),e._v(">")],1),e._v(" "),r("p",[e._v("↳ "),r("strong",[r("code",[e._v("BarOptions")])])])])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[e._v("#")]),e._v(" backgroundColor")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("backgroundColor")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[e._v("Color")])])],1),e._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[e._v("#")]),e._v(" Inherited from")]),e._v(" "),r("p",[e._v("Omit.backgroundColor")]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"base"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#base"}},[e._v("#")]),e._v(" base")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("base")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("The base value for the bar in data units along the value axis.")]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1990",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1990"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[e._v("#")]),e._v(" borderColor")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("borderColor")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[e._v("Color")])])],1),e._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[e._v("#")]),e._v(" Inherited from")]),e._v(" "),r("p",[e._v("Omit.borderColor")]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[e._v("#")]),e._v(" borderRadius")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("borderRadius")]),e._v(": "),r("code",[e._v("number")]),e._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[r("code",[e._v("BorderRadius")])])],1),e._v(" "),r("p",[e._v("Border radius")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("default")])]),e._v(" 0")]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2002",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2002"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"borderskipped"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderskipped"}},[e._v("#")]),e._v(" borderSkipped")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("borderSkipped")]),e._v(": "),r("code",[e._v("boolean")]),e._v(" | "),r("code",[e._v('"start"')]),e._v(" | "),r("code",[e._v('"end"')]),e._v(" | "),r("code",[e._v('"left"')]),e._v(" | "),r("code",[e._v('"right"')]),e._v(" | "),r("code",[e._v('"bottom"')]),e._v(" | "),r("code",[e._v('"top"')]),e._v(" | "),r("code",[e._v('"middle"')])]),e._v(" "),r("p",[e._v("Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all).")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("default")])]),e._v(" 'start'")]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1996",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1996"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[e._v("#")]),e._v(" borderWidth")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("borderWidth")]),e._v(": "),r("code",[e._v("number")]),e._v(" | { "),r("code",[e._v("bottom?")]),e._v(": "),r("code",[e._v("number")]),e._v(" ; "),r("code",[e._v("left?")]),e._v(": "),r("code",[e._v("number")]),e._v(" ; "),r("code",[e._v("right?")]),e._v(": "),r("code",[e._v("number")]),e._v(" ; "),r("code",[e._v("top?")]),e._v(": "),r("code",[e._v("number")]),e._v(" }")]),e._v(" "),r("p",[e._v("Width of the border, number for all sides, object to specify width for each side specifically")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("default")])]),e._v(" 0")]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2015",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2015"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"inflateamount"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inflateamount"}},[e._v("#")]),e._v(" inflateAmount")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("inflateAmount")]),e._v(": "),r("code",[e._v("number")]),e._v(" | "),r("code",[e._v('"auto"')])]),e._v(" "),r("p",[e._v("Amount to inflate the rectangle(s). This can be used to hide artifacts between bars.\nUnit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0.")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("default")])]),e._v(" 'auto'")]),e._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2009",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2009"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/34.360a9ea9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/34.360a9ea9.js new file mode 100644 index 0000000..fd50de1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/34.360a9ea9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{365:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-barprops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-barprops"}},[e._v("#")]),e._v(" Interface: BarProps")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"base"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#base"}},[e._v("#")]),e._v(" base")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("base")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1980",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1980"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"height"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[e._v("#")]),e._v(" height")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("height")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1983",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1983"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"horizontal"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#horizontal"}},[e._v("#")]),e._v(" horizontal")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("horizontal")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1981",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1981"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"width"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[e._v("#")]),e._v(" width")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("width")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1982",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1982"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[e._v("#")]),e._v(" x")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("x")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1978",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1978"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[e._v("#")]),e._v(" y")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("y")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1979",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1979"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/35.205d7fac.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/35.205d7fac.js new file mode 100644 index 0000000..5ba41af --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/35.205d7fac.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{366:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-borderradius"}},[t._v("#")]),t._v(" Interface: BorderRadius")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"bottomleft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bottomleft"}},[t._v("#")]),t._v(" bottomLeft")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bottomLeft")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2021",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2021"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bottomright"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bottomright"}},[t._v("#")]),t._v(" bottomRight")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bottomRight")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2022",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2022"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"topleft"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#topleft"}},[t._v("#")]),t._v(" topLeft")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("topLeft")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2019",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2019"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"topright"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#topright"}},[t._v("#")]),t._v(" topRight")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("topRight")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2020",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2020"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/36.f2765bae.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/36.f2765bae.js new file mode 100644 index 0000000..9a82e3a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/36.f2765bae.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{367:function(t,e,r){"use strict";r.r(e);var a=r(6),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-bubblecontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-bubblecontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: BubbleControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[r("code",[t._v("ControllerDatasetOptions")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[r("code",[t._v("PointOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointHoverOptions.html"}},[r("code",[t._v("PointHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("BubbleControllerDatasetOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.backgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawactiveelementsontop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawactiveelementsontop"}},[t._v("#")]),t._v(" drawActiveElementsOnTop")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawActiveElementsOnTop")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Draw the active elements over the other elements of the dataset,")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.drawActiveElementsOnTop")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1904",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1904"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hitradius"}},[t._v("#")]),t._v(" hitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hitRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Extra radius added to point radius for hit detection.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hitRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1889",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1889"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverradius"}},[t._v("#")]),t._v(" hoverRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point radius when hovered.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 4")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1912",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1912"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point style")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'circle;")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1894",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1894"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"radius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#radius"}},[t._v("#")]),t._v(" radius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("radius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point radius")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 3")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.radius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1884",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1884"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"bubble"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point rotation (in degrees).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.rotation")]),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1899",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1899"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/37.6c33435e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/37.6c33435e.js new file mode 100644 index 0000000..dc33f7e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/37.6c33435e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{368:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-bubbledatapoint"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-bubbledatapoint"}},[e._v("#")]),e._v(" Interface: BubbleDataPoint")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"r"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#r"}},[e._v("#")]),e._v(" r")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("r")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Bubble radius in pixels (not scaled).")]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L170",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:170"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[e._v("#")]),e._v(" x")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("x")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("X Value")]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L160",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:160"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[e._v("#")]),e._v(" y")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("y")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Y Value")]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L165",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:165"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/38.a778a6a2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/38.a778a6a2.js new file mode 100644 index 0000000..0ee969b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/38.a778a6a2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{369:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-cartesianscaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-cartesianscaleoptions"}},[t._v("#")]),t._v(" Interface: CartesianScaleOptions")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("CartesianScaleOptions")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"aligntopixels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aligntopixels"}},[t._v("#")]),t._v(" alignToPixels")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("alignToPixels")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Align pixel values to device pixels")]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#aligntopixels"}},[t._v("alignToPixels")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1156",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1156"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[t._v("#")]),t._v(" axis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("axis")]),t._v(": "),a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])]),t._v(" "),a("p",[t._v("Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3089",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3089"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bounds"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bounds"}},[t._v("#")]),t._v(" bounds")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bounds")]),t._v(": "),a("code",[t._v('"data"')]),t._v(" | "),a("code",[t._v('"ticks"')])]),t._v(" "),a("p",[t._v("Scale boundary strategy (bypassed by min/max time options)")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("data")]),t._v(": make sure data are fully visible, ticks outside are removed")]),t._v(" "),a("li",[a("code",[t._v("ticks")]),t._v(": make sure ticks are fully visible, data outside are truncated")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 2.7.0")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'ticks'")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3068",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3068"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"display"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v('"auto"')])]),t._v(" "),a("p",[t._v("Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#display"}},[t._v("display")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1152",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1152"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"grid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#grid"}},[t._v("#")]),t._v(" grid")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("grid")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/GridLineOptions.html"}},[a("code",[t._v("GridLineOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3107",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3107"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"max"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#max"}},[t._v("#")]),t._v(" max")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("max")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("User defined maximum value for the scale, overrides maximum value from data.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3099",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3099"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"min"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#min"}},[t._v("#")]),t._v(" min")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("min")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("User defined minimum value for the scale, overrides minimum value from data.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3094",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3094"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"offset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[t._v("#")]),t._v(" offset")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("offset")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3105",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3105"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("code",[t._v('"left"')]),t._v(" | "),a("code",[t._v('"right"')]),t._v(" | "),a("code",[t._v('"bottom"')]),t._v(" | "),a("code",[t._v('"top"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | { [scale: string]: "),a("code",[t._v("number")]),t._v("; }")]),t._v(" "),a("p",[t._v("Position of the axis.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3073",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3073"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reverse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reverse"}},[t._v("#")]),t._v(" reverse")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("reverse")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Reverse the scale.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#reverse"}},[t._v("reverse")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1161",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1161"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("stack")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Stack group. Axes at the same "),a("code",[t._v("position")]),t._v(" with same "),a("code",[t._v("stack")]),t._v(" are stacked.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3078",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3078"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stackweight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stackweight"}},[t._v("#")]),t._v(" stackWeight")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("stackWeight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3084",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3084"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stacked"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stacked"}},[t._v("#")]),t._v(" stacked")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("stacked")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v('"single"')])]),t._v(" "),a("p",[t._v("If true, data will be comprised between datasets of data")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3136",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3136"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[t._v("#")]),t._v(" ticks")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#cartesiantickoptions"}},[a("code",[t._v("CartesianTickOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3138",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3138"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("title")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("p",[t._v("Options for the scale title.")]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("align")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#align"}},[a("code",[t._v("Align")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Alignment of the axis title.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Color of the axis label.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("display")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("If true, displays the axis title.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableCartesianScaleContext.html"}},[a("code",[t._v("ScriptableCartesianScaleContext")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Information about the axis title font.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("padding")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")]),t._v(" | { "),a("code",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("top")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("y")]),t._v(": "),a("code",[t._v("number")]),t._v(" }")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Padding to apply around scale labels.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("text")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("string")]),t._v("[]")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v('The text for the title, e.g. "# of People" or "Response Choices".')])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3110",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3110"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#weight"}},[t._v("weight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1166",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1166"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBuildTicks")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after ticks are created. Useful for filtering ticks.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#afterbuildticks"}},[t._v("afterBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1194",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1194"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftercalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftercalculatelabelrotation"}},[t._v("#")]),t._v(" afterCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterCalculateLabelRotation")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after tick rotation is determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#aftercalculatelabelrotation"}},[t._v("afterCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1210",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1210"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterDataLimits")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after data limits are determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#afterdatalimits"}},[t._v("afterDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1186",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1186"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfit"}},[t._v("#")]),t._v(" afterFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFit")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after the scale fits to the canvas.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#afterfit"}},[t._v("afterFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1218",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1218"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftersetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftersetdimensions"}},[t._v("#")]),t._v(" afterSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterSetDimensions")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after dimensions are set.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#aftersetdimensions"}},[t._v("afterSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1178",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1178"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterticktolabelconversion"}},[t._v("#")]),t._v(" afterTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTickToLabelConversion")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after ticks are converted into strings.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#afterticktolabelconversion"}},[t._v("afterTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1202",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1202"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterUpdate")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs at the end of the update process.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#afterupdate"}},[t._v("afterUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1222",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1222"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBuildTicks")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before ticks are created.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforebuildticks"}},[t._v("beforeBuildTicks")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1190",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1190"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforecalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecalculatelabelrotation"}},[t._v("#")]),t._v(" beforeCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeCalculateLabelRotation")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before tick rotation is determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforecalculatelabelrotation"}},[t._v("beforeCalculateLabelRotation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1206",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1206"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeDataLimits")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before data limits are determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforedatalimits"}},[t._v("beforeDataLimits")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1182",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1182"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefit"}},[t._v("#")]),t._v(" beforeFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFit")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before the scale fits to the canvas.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforefit"}},[t._v("beforeFit")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1214",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1214"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforesetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforesetdimensions"}},[t._v("#")]),t._v(" beforeSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeSetDimensions")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before dimensions are set.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforesetdimensions"}},[t._v("beforeSetDimensions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1174",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1174"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeticktolabelconversion"}},[t._v("#")]),t._v(" beforeTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTickToLabelConversion")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before ticks are converted into strings.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforeticktolabelconversion"}},[t._v("beforeTickToLabelConversion")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1198",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1198"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeUpdate")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback called before the update process starts.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html#beforeupdate"}},[t._v("beforeUpdate")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1170",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1170"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/39.7dda160f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/39.7dda160f.js new file mode 100644 index 0000000..bea0e8a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/39.7dda160f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{370:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-cartesianscaletyperegistry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-cartesianscaletyperegistry"}},[t._v("#")]),t._v(" Interface: CartesianScaleTypeRegistry")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("CartesianScaleTypeRegistry")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/ScaleTypeRegistry.html"}},[a("code",[t._v("ScaleTypeRegistry")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"category"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#category"}},[t._v("#")]),t._v(" category")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("category")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#categoryscaleoptions"}},[a("code",[t._v("CategoryScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3491",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3491"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linear"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linear"}},[t._v("#")]),t._v(" linear")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("linear")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#linearscaleoptions"}},[a("code",[t._v("LinearScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3485",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3485"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"logarithmic"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#logarithmic"}},[t._v("#")]),t._v(" logarithmic")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("logarithmic")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-3"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#logarithmicscaleoptions"}},[a("code",[t._v("LogarithmicScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3488",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3488"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#time"}},[t._v("#")]),t._v(" time")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("time")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-4"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3494",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3494"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timeseries"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeseries"}},[t._v("#")]),t._v(" timeseries")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("timeseries")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-5"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3497",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3497"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/4.ee88d25a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/4.ee88d25a.js new file mode 100644 index 0000000..b8233ab --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/4.ee88d25a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{316:function(t,a,s){t.exports=s.p+"assets/img/init_flowchart.ee5be600.png"},317:function(t,a,s){t.exports=s.p+"assets/img/update_flowchart.0556691d.png"},318:function(t,a,s){t.exports=s.p+"assets/img/scale_flowchart.fa1ab63e.png"},319:function(t,a,s){t.exports=s.p+"assets/img/render_flowchart.41a98316.png"},320:function(t,a,s){t.exports=s.p+"assets/img/event_flowchart.83015c7a.png"},321:function(t,a,s){t.exports=s.p+"assets/img/destroy_flowchart.10814816.png"},500:function(t,a,s){"use strict";s.r(a);var n=s(6),e=Object(n.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"plugins"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" Plugins")]),t._v(" "),n("p",[t._v("Plugins are the most efficient way to customize or change the default behavior of a chart. They have been introduced at "),n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/releases/tag/2.1.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("version 2.1.0"),n("OutboundLink")],1),t._v(" (global plugins only) and extended at "),n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/releases/tag/v2.5.0",target:"_blank",rel:"noopener noreferrer"}},[t._v("version 2.5.0"),n("OutboundLink")],1),t._v(" (per chart plugins and options).")]),t._v(" "),n("h2",{attrs:{id:"using-plugins"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#using-plugins"}},[t._v("#")]),t._v(" Using plugins")]),t._v(" "),n("p",[t._v("Plugins can be shared between chart instances:")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" plugin "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/* plugin implementation */")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// chart1 and chart2 use "plugin"')]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart1 "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("plugin"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart2 "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("plugin"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// chart3 doesn\'t use "plugin"')]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart3 "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("p",[t._v("Plugins can also be defined directly in the chart "),n("code",[t._v("plugins")]),t._v(" config (a.k.a. "),n("em",[t._v("inline plugins")]),t._v("):")]),t._v(" "),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),n("p",[n("em",[t._v("inline")]),t._v(" plugins are not Registroed. Some plugins require Registroing, i.e. can't be used "),n("em",[t._v("inline")]),t._v(".")])]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforeInit")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" args"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//..")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("p",[t._v("However, this approach is not ideal when the customization needs to apply to many Graficas.")]),t._v(" "),n("h2",{attrs:{id:"global-plugins"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#global-plugins"}},[t._v("#")]),t._v(" Global plugins")]),t._v(" "),n("p",[t._v("Plugins can be Registroed globally to be applied on all Graficas (a.k.a. "),n("em",[t._v("global plugins")]),t._v("):")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[t._v("Chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// plugin implementation")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("div",{staticClass:"custom-block warning"},[n("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),n("p",[n("em",[t._v("inline")]),t._v(" plugins can't be Registroed globally.")])]),t._v(" "),n("h2",{attrs:{id:"configuration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#configuration"}},[t._v("#")]),t._v(" Configuration")]),t._v(" "),n("h3",{attrs:{id:"plugin-id"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#plugin-id"}},[t._v("#")]),t._v(" Plugin ID")]),t._v(" "),n("p",[t._v("Plugins must define a unique id in order to be configurable.")]),t._v(" "),n("p",[t._v("This id should follow the "),n("a",{attrs:{href:"https://docs.npmjs.com/files/package.json#name",target:"_blank",rel:"noopener noreferrer"}},[t._v("npm package name convention"),n("OutboundLink")],1),t._v(":")]),t._v(" "),n("ul",[n("li",[t._v("can't start with a dot or an underscore")]),t._v(" "),n("li",[t._v("can't contain any non-URL-safe characters")]),t._v(" "),n("li",[t._v("can't contain uppercase letters")]),t._v(" "),n("li",[t._v("should be something short, but also reasonably descriptive")])]),t._v(" "),n("p",[t._v("If a plugin is intended to be released publicly, you may want to check the "),n("a",{attrs:{href:"https://www.npmjs.com/Buscar?q=chartjs-plugin-",target:"_blank",rel:"noopener noreferrer"}},[t._v("registry"),n("OutboundLink")],1),t._v(" to see if there's something by that name already. Note that in this case, the package name should be prefixed by "),n("code",[t._v("chartjs-plugin-")]),t._v(" to appear in Chart.js plugin registry.")]),t._v(" "),n("h3",{attrs:{id:"plugin-options"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#plugin-options"}},[t._v("#")]),t._v(" Plugin options")]),t._v(" "),n("p",[t._v("Plugin options are located under the "),n("code",[t._v("options.plugins")]),t._v(" config and are scoped by the plugin ID: "),n("code",[t._v("options.plugins.{plugin-id}")]),t._v(".")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// chart 'foo' option")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("p1")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// p1 plugin 'foo' option")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bar")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("p2")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("foo")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// p2 plugin 'foo' option")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("bla")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("h4",{attrs:{id:"disable-plugins"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#disable-plugins"}},[t._v("#")]),t._v(" Disable plugins")]),t._v(" "),n("p",[t._v("To disable a global plugin for a specific chart instance, the plugin options must be set to "),n("code",[t._v("false")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[t._v("Chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("Registro")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'p1'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("p1")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// disable plugin 'p1' for this instance")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("p",[t._v("To disable all plugins for a specific chart instance, set "),n("code",[t._v("options.plugins")]),t._v(" to "),n("code",[t._v("false")]),t._v(":")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" chart "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Chart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("options")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("plugins")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// all plugins are disabled for this instance")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])]),n("h4",{attrs:{id:"plugin-defaults"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#plugin-defaults"}},[t._v("#")]),t._v(" Plugin defaults")]),t._v(" "),n("p",[t._v("You can set default values for your plugin options in the "),n("code",[t._v("defaults")]),t._v(" entry of your plugin object. In the example below the canvas will always have a lightgreen backgroundColor unless the user overrides this option in "),n("code",[t._v("options.plugins.custom_canvas_background_color.color")]),t._v(".")]),t._v(" "),n("div",{staticClass:"language-javascript extra-class"},[n("pre",{pre:!0,attrs:{class:"language-javascript"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" plugin "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("id")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'custom_canvas_background_color'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("beforeDraw")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token parameter"}},[t._v("chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" args"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" options")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("save")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("globalCompositeOperation "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'destination-over'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("fillStyle "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" options"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("color"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("fillRect")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("width"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" chart"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("height"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n ctx"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("restore")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("defaults")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token literal-property property"}},[t._v("color")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'lightGreen'")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),n("h2",{attrs:{id:"plugin-core-api"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#plugin-core-api"}},[t._v("#")]),t._v(" Plugin Core API")]),t._v(" "),n("p",[t._v("Read more about the "),n("a",{attrs:{href:"../api/interfaces/Plugin"}},[t._v("existing plugin extension hooks")]),t._v(".")]),t._v(" "),n("h3",{attrs:{id:"chart-initialization"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#chart-initialization"}},[t._v("#")]),t._v(" Chart Initialization")]),t._v(" "),n("p",[t._v("Plugins are notified during the initialization process. These hooks can be used to setup data needed for the plugin to operate.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(316),alt:"Chart.js init flowchart"}})]),t._v(" "),n("h3",{attrs:{id:"chart-update"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#chart-update"}},[t._v("#")]),t._v(" Chart Update")]),t._v(" "),n("p",[t._v("Plugins are notified throughout the update process.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(317),alt:"Chart.js update flowchart"}})]),t._v(" "),n("h3",{attrs:{id:"scale-update"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#scale-update"}},[t._v("#")]),t._v(" Scale Update")]),t._v(" "),n("p",[t._v("Plugins are notified throughout the scale update process.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(318),alt:"Chart.js scale update flowchart"}})]),t._v(" "),n("h3",{attrs:{id:"rendering"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#rendering"}},[t._v("#")]),t._v(" Rendering")]),t._v(" "),n("p",[t._v("Plugins can interact with the chart throughout the render process. The rendering process is documented in the flowchart below. Each of the green processes is a plugin notification. The red lines indicate how cancelling part of the render process can occur when a plugin returns "),n("code",[t._v("false")]),t._v(" from a hook. Not all hooks are cancelable, however, in general most "),n("code",[t._v("before*")]),t._v(" hooks can be cancelled.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(319),alt:"Chart.js render pipeline flowchart"}})]),t._v(" "),n("h3",{attrs:{id:"event-handling"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#event-handling"}},[t._v("#")]),t._v(" Event Handling")]),t._v(" "),n("p",[t._v("Plugins can interact with the chart during the event handling process. The event handling flow is documented in the flowchart below. Each of the green processes is a plugin notification. If a plugin makes changes that require a re-render, the plugin can set "),n("code",[t._v("args.changed")]),t._v(" to "),n("code",[t._v("true")]),t._v(" to indicate that a render is needed. The built-in tooltip plugin uses this method to indicate when the tooltip has changed.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(320),alt:"Chart.js event handling flowchart"}})]),t._v(" "),n("h3",{attrs:{id:"chart-destroy"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#chart-destroy"}},[t._v("#")]),t._v(" Chart destroy")]),t._v(" "),n("p",[t._v("Plugins are notified during the destroy process. These hooks can be used to destroy things that the plugin made and used during its life.\nThe "),n("code",[t._v("destroy")]),t._v(" hook has been deprecated since Chart.js version 3.7.0, use the "),n("code",[t._v("afterDestroy")]),t._v(" hook instead.")]),t._v(" "),n("p",[n("img",{attrs:{src:s(321),alt:"Chart.js destroy flowchart"}})])])}),[],!1,null,null,null);a.default=e.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/40.bd778eac.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/40.bd778eac.js new file mode 100644 index 0000000..8a8ab26 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/40.bd778eac.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{371:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-chartarea"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartarea"}},[t._v("#")]),t._v(" Interface: ChartArea")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"bottom"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bottom")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:5"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"height"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("height")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:7"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"left"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("left")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L3",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:3"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"right"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("right")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L4",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:4"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"top"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("top")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L2",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:2"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"width"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("width")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:6"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/41.b79220f6.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/41.b79220f6.js new file mode 100644 index 0000000..1d349c3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/41.b79220f6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{372:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-chartcomponent"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartcomponent"}},[e._v("#")]),e._v(" Interface: ChartComponent")]),e._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[e._v("#")]),e._v(" Hierarchy")]),e._v(" "),r("ul",[r("li",[r("p",[r("strong",[r("code",[e._v("ChartComponent")])])]),e._v(" "),r("p",[e._v("↳ "),r("RouterLink",{attrs:{to:"/api/interfaces/DatasetControllerChartComponent.html"}},[r("code",[e._v("DatasetControllerChartComponent")])])],1)])]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"defaultroutes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defaultroutes"}},[e._v("#")]),e._v(" defaultRoutes")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("defaultRoutes")]),e._v(": "),r("code",[e._v("Object")])]),e._v(" "),r("h4",{attrs:{id:"index-signature"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#index-signature"}},[e._v("#")]),e._v(" Index signature")]),e._v(" "),r("p",[e._v("▪ [property: "),r("code",[e._v("string")]),e._v("]: "),r("code",[e._v("string")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1414",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1414"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"defaults"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defaults"}},[e._v("#")]),e._v(" defaults")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("defaults")]),e._v(": "),r("code",[e._v("AnyObject")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1413",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1413"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"id"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[e._v("#")]),e._v(" id")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("id")]),e._v(": "),r("code",[e._v("string")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1412",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1412"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"methods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[e._v("#")]),e._v(" Methods")]),e._v(" "),r("h3",{attrs:{id:"afterRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#afterRegistro"}},[e._v("#")]),e._v(" afterRegistro")]),e._v(" "),r("p",[e._v("▸ "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("afterRegistro")]),e._v("(): "),r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"returns"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),r("p",[r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1417",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1417"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"afterunRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#afterunRegistro"}},[e._v("#")]),e._v(" afterUnRegistro")]),e._v(" "),r("p",[e._v("▸ "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("afterUnRegistro")]),e._v("(): "),r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"returns-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),r("p",[r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1419",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1419"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"beforeRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#beforeRegistro"}},[e._v("#")]),e._v(" beforeRegistro")]),e._v(" "),r("p",[e._v("▸ "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("beforeRegistro")]),e._v("(): "),r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"returns-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),r("p",[r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1416",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1416"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"beforeunRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#beforeunRegistro"}},[e._v("#")]),e._v(" beforeUnRegistro")]),e._v(" "),r("p",[e._v("▸ "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("beforeUnRegistro")]),e._v("(): "),r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"returns-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),r("p",[r("code",[e._v("void")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1418",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1418"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/42.c3157beb.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/42.c3157beb.js new file mode 100644 index 0000000..e18d683 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/42.c3157beb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{373:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartconfiguration-ttype-tdata-tlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartconfiguration-ttype-tdata-tlabel"}},[t._v("#")]),t._v(" Interface: ChartConfiguration")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("data")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[a("code",[t._v("ChartData")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3702"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("DeepPartial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#datasetchartoptions"}},[a("code",[t._v("DatasetChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#scalechartoptions"}},[a("code",[t._v("ScaleChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"chartOptions"')]),t._v("]>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3703",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3703"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("plugins")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3704",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3704"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("TType")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3701"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/43.097368d1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/43.097368d1.js new file mode 100644 index 0000000..d8fda1c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/43.097368d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{374:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartconfigurationcustomtypesperdataset-ttype-tdata-tlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartconfigurationcustomtypesperdataset-ttype-tdata-tlabel"}},[t._v("#")]),t._v(" Interface: ChartConfigurationCustomTypesPerDataset")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("data")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartDataCustomTypesPerDataset.html"}},[a("code",[t._v("ChartDataCustomTypesPerDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(", "),a("code",[t._v("TLabel")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3712",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3712"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("DeepPartial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#datasetchartoptions"}},[a("code",[t._v("DatasetChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#scalechartoptions"}},[a("code",[t._v("ScaleChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"chartOptions"')]),t._v("]>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3713",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3713"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("plugins")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3714",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3714"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/44.2515f16e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/44.2515f16e.js new file mode 100644 index 0000000..39795da --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/44.2515f16e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{375:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartdata-ttype-tdata-tlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartdata-ttype-tdata-tlabel"}},[t._v("#")]),t._v(" Interface: ChartData")]),t._v(" "),a("p",[t._v("TData represents the data point type. If unspecified, a default is provided\nbased on the chart type.\nTLabel represents the label type")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"datasets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasets"}},[t._v("#")]),t._v(" datasets")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasets")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3684",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3684"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labels"}},[t._v("#")]),t._v(" labels")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("labels")]),t._v(": "),a("code",[t._v("TLabel")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3683",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3683"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/45.d5b4b7c3.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/45.d5b4b7c3.js new file mode 100644 index 0000000..052f709 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/45.d5b4b7c3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{376:function(t,e,a){"use strict";a.r(e);var s=a(6),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartdatacustomtypesperdataset-ttype-tdata-tlabel"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartdatacustomtypesperdataset-ttype-tdata-tlabel"}},[t._v("#")]),t._v(" Interface: ChartDataCustomTypesPerDataset")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TLabel")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"datasets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasets"}},[t._v("#")]),t._v(" datasets")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasets")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#chartdatasetcustomtypesperdataset"}},[a("code",[t._v("ChartDatasetCustomTypesPerDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3693",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3693"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labels"}},[t._v("#")]),t._v(" labels")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("labels")]),t._v(": "),a("code",[t._v("TLabel")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3692",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3692"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/46.bbab8d6e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/46.bbab8d6e.js new file mode 100644 index 0000000..26cbb12 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/46.bbab8d6e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{377:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartdatasetproperties-ttype-tdata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartdatasetproperties-ttype-tdata"}},[t._v("#")]),t._v(" Interface: ChartDatasetProperties")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("data")]),t._v(": "),a("code",[t._v("TData")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3651"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("TType")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3650"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/47.79aa575e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/47.79aa575e.js new file mode 100644 index 0000000..a53afba --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/47.79aa575e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{378:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-chartdatasetpropertiescustomtypesperdataset-ttype-tdata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartdatasetpropertiescustomtypesperdataset-ttype-tdata"}},[t._v("#")]),t._v(" Interface: ChartDatasetPropertiesCustomTypesPerDataset")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#data"}},[t._v("#")]),t._v(" data")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("data")]),t._v(": "),a("code",[t._v("TData")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3656",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3656"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[t._v("#")]),t._v(" type")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("type")]),t._v(": "),a("code",[t._v("TType")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3655",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3655"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/48.45785af9.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/48.45785af9.js new file mode 100644 index 0000000..b6203c9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/48.45785af9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{379:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-chartevent"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-chartevent"}},[e._v("#")]),e._v(" Interface: ChartEvent")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"native"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#native"}},[e._v("#")]),e._v(" native")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("native")]),e._v(": "),r("code",[e._v("Event")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1407",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1407"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"type"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type"}},[e._v("#")]),e._v(" type")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("type")]),e._v(": "),r("code",[e._v('"resize"')]),e._v(" | "),r("code",[e._v('"click"')]),e._v(" | "),r("code",[e._v('"contextmenu"')]),e._v(" | "),r("code",[e._v('"dblclick"')]),e._v(" | "),r("code",[e._v('"keydown"')]),e._v(" | "),r("code",[e._v('"keypress"')]),e._v(" | "),r("code",[e._v('"keyup"')]),e._v(" | "),r("code",[e._v('"mousedown"')]),e._v(" | "),r("code",[e._v('"mouseenter"')]),e._v(" | "),r("code",[e._v('"mousemove"')]),e._v(" | "),r("code",[e._v('"mouseout"')]),e._v(" | "),r("code",[e._v('"mouseup"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1394",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1394"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[e._v("#")]),e._v(" x")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("x")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1408",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1408"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[e._v("#")]),e._v(" y")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("y")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1409",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1409"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/49.0569a6eb.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/49.0569a6eb.js new file mode 100644 index 0000000..4da40e3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/49.0569a6eb.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{380:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-charttyperegistry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-charttyperegistry"}},[t._v("#")]),t._v(" Interface: ChartTypeRegistry")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"bar"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bar"}},[t._v("#")]),t._v(" bar")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bar")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerChartOptions.html"}},[a("code",[t._v("BarControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerDatasetOptions.html"}},[a("code",[t._v("BarControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("BarParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3549",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3549"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bubble"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubble"}},[t._v("#")]),t._v(" bubble")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bubble")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleControllerDatasetOptions.html"}},[a("code",[t._v("BubbleControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleDataPoint.html"}},[a("code",[t._v("BubbleDataPoint")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("BubbleParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3573",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3573"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"doughnut"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#doughnut"}},[t._v("#")]),t._v(" doughnut")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("doughnut")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-3"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerChartOptions.html"}},[a("code",[t._v("DoughnutControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutMetaExtensions.html"}},[a("code",[t._v("DoughnutMetaExtensions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3589",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3589"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"line"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#line"}},[t._v("#")]),t._v(" line")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("line")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-4"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[a("code",[t._v("LineControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ScatterDataPoint.html"}},[a("code",[t._v("ScatterDataPoint")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CartesianParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3557",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3557"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"pie"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pie"}},[t._v("#")]),t._v(" pie")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("pie")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-5"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerChartOptions.html"}},[a("code",[t._v("DoughnutControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutMetaExtensions.html"}},[a("code",[t._v("DoughnutMetaExtensions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3581",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3581"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"polararea"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polararea"}},[t._v("#")]),t._v(" polarArea")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("polarArea")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-6"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerChartOptions.html"}},[a("code",[t._v("PolarAreaControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerDatasetOptions.html"}},[a("code",[t._v("PolarAreaControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("RadialParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"radialLinear"')])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3597",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3597"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radar"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radar"}},[t._v("#")]),t._v(" radar")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("radar")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-7"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[a("code",[t._v("LineControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/RadarControllerDatasetOptions.html"}},[a("code",[t._v("RadarControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("RadialParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"radialLinear"')])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3605",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3605"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scatter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scatter"}},[t._v("#")]),t._v(" scatter")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("scatter")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-8"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[a("code",[t._v("LineControllerChartOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("defaultDataPoint")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ScatterDataPoint.html"}},[a("code",[t._v("ScatterDataPoint")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("metaExtensions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsedDataType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CartesianParsedData")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[a("code",[t._v("CartesianScaleTypeRegistry")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3565",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3565"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/5.00f814ac.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/5.00f814ac.js new file mode 100644 index 0000000..252384a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/5.00f814ac.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{296:function(t,e,n){},332:function(t,e,n){"use strict";n(296)},594:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(332),n(6)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/50.14bd3ba2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/50.14bd3ba2.js new file mode 100644 index 0000000..adc7263 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/50.14bd3ba2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{381:function(t,r,e){"use strict";e.r(r);var o=e(6),a=Object(o.a)({},(function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"interface-commonelementoptions"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#interface-commonelementoptions"}},[t._v("#")]),t._v(" Interface: CommonElementOptions")]),t._v(" "),e("h2",{attrs:{id:"hierarchy"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),e("ul",[e("li",[e("p",[e("strong",[e("code",[t._v("CommonElementOptions")])])]),t._v(" "),e("p",[t._v("↳ "),e("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[e("code",[t._v("ArcOptions")])])],1),t._v(" "),e("p",[t._v("↳ "),e("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[e("code",[t._v("LineOptions")])])],1),t._v(" "),e("p",[t._v("↳ "),e("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[e("code",[t._v("PointOptions")])])],1)])]),t._v(" "),e("h2",{attrs:{id:"properties"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),e("h3",{attrs:{id:"backgroundcolor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),e("p",[t._v("• "),e("strong",[t._v("backgroundColor")]),t._v(": "),e("RouterLink",{attrs:{to:"/api/#color"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("h4",{attrs:{id:"defined-in"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),e("OutboundLink")],1)]),t._v(" "),e("hr"),t._v(" "),e("h3",{attrs:{id:"bordercolor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),e("p",[t._v("• "),e("strong",[t._v("borderColor")]),t._v(": "),e("RouterLink",{attrs:{to:"/api/#color"}},[e("code",[t._v("Color")])])],1),t._v(" "),e("h4",{attrs:{id:"defined-in-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),e("OutboundLink")],1)]),t._v(" "),e("hr"),t._v(" "),e("h3",{attrs:{id:"borderwidth"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),e("p",[t._v("• "),e("strong",[t._v("borderWidth")]),t._v(": "),e("code",[t._v("number")])]),t._v(" "),e("h4",{attrs:{id:"defined-in-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),e("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/51.e0968711.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/51.e0968711.js new file mode 100644 index 0000000..c86dce2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/51.e0968711.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{382:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-commonhoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-commonhoveroptions"}},[r._v("#")]),r._v(" Interface: CommonHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[r._v("#")]),r._v(" Hierarchy")]),r._v(" "),t("ul",[t("li",[t("p",[t("strong",[t("code",[r._v("CommonHoverOptions")])])]),r._v(" "),t("p",[r._v("↳ "),t("RouterLink",{attrs:{to:"/api/interfaces/ArcHoverOptions.html"}},[t("code",[r._v("ArcHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("RouterLink",{attrs:{to:"/api/interfaces/LineHoverOptions.html"}},[t("code",[r._v("LineHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("RouterLink",{attrs:{to:"/api/interfaces/PointHoverOptions.html"}},[t("code",[r._v("PointHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("RouterLink",{attrs:{to:"/api/interfaces/BarHoverOptions.html"}},[t("code",[r._v("BarHoverOptions")])])],1)])]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"hoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[r._v("#")]),r._v(" hoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1702"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[r._v("#")]),r._v(" hoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1701"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[r._v("#")]),r._v(" hoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1700"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/52.fe65ddf8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/52.fe65ddf8.js new file mode 100644 index 0000000..789181d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/52.fe65ddf8.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{383:function(e,t,a){"use strict";a.r(t);var r=a(6),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-complexfilltarget"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-complexfilltarget"}},[e._v("#")]),e._v(" Interface: ComplexFillTarget")]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"above"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#above"}},[e._v("#")]),e._v(" above")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("above")]),e._v(": "),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[e._v("Color")])])],1),e._v(" "),a("p",[e._v("If no color is set, the default color will be the background color of the chart.")]),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2148",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2148"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"below"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#below"}},[e._v("#")]),e._v(" below")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("below")]),e._v(": "),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[e._v("Color")])])],1),e._v(" "),a("p",[e._v("Same as the above.")]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2152",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2152"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"target"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#target"}},[e._v("#")]),e._v(" target")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("target")]),e._v(": "),a("RouterLink",{attrs:{to:"/api/#filltarget"}},[a("code",[e._v("FillTarget")])])],1),e._v(" "),a("p",[e._v("The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries.")]),e._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2144",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2144"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/53.faa1ff3f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/53.faa1ff3f.js new file mode 100644 index 0000000..06ec258 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/53.faa1ff3f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{384:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-controllerdatasetoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-controllerdatasetoptions"}},[t._v("#")]),t._v(" Interface: ControllerDatasetOptions")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[a("code",[t._v("ParsingOptions")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("ControllerDatasetOptions")])])]),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerDatasetOptions.html"}},[a("code",[t._v("BarControllerDatasetOptions")])])],1),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/BubbleControllerDatasetOptions.html"}},[a("code",[t._v("BubbleControllerDatasetOptions")])])],1),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])])],1),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/RadarControllerDatasetOptions.html"}},[a("code",[t._v("RadarControllerDatasetOptions")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"clip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("clip")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hidden"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("hidden")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"indexaxis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("indexAxis")]),t._v(": "),a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])]),t._v(" "),a("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"label"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("label")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"normalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("normalized")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[t._v("ParsingOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"order"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("order")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsing")]),t._v(": "),a("code",[t._v("false")]),t._v(" | { [key: string]: "),a("code",[t._v("string")]),t._v("; }")]),t._v(" "),a("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[t._v("ParsingOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("stack")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/54.fcfed2c5.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/54.fcfed2c5.js new file mode 100644 index 0000000..c9449e3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/54.fcfed2c5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{385:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-corechartoptions-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-corechartoptions-ttype"}},[t._v("#")]),t._v(" Interface: CoreChartOptions")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[a("code",[t._v("ParsingOptions")])])],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#animationoptions"}},[a("code",[t._v("AnimationOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("CoreChartOptions")])])]),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/Defaults.html"}},[a("code",[t._v("Defaults")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"animation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animation")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#animationspec"}},[a("code",[t._v("AnimationSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & { "),a("code",[t._v("onComplete?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" ; "),a("code",[t._v("onProgress?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("AnimationOptions.animation")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animations")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#animationsspec"}},[a("code",[t._v("AnimationsSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("AnimationOptions.animations")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aspectratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aspectratio"}},[t._v("#")]),t._v(" aspectRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("aspectRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1505",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1505"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"backgroundcolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("backgroundColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("p",[t._v("base background color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.backgroundColor")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1474",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1474"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bordercolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("borderColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("p",[t._v("base border color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.borderColor")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1479",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1479"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"clip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("clip")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1463",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1463"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"color"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" color")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("p",[t._v("base color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1469",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1469"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datasets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasets"}},[t._v("#")]),t._v(" datasets")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasets")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("bar")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerDatasetOptions.html"}},[a("code",[t._v("BarControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("bubble")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleControllerDatasetOptions.html"}},[a("code",[t._v("BubbleControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("doughnut")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("line")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pie")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("polarArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerDatasetOptions.html"}},[a("code",[t._v("PolarAreaControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("radar")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/RadarControllerDatasetOptions.html"}},[a("code",[t._v("RadarControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scatter")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1450",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1450"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"devicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#devicepixelratio"}},[t._v("#")]),t._v(" devicePixelRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("devicePixelRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Override the window's default devicePixelRatio.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" window.devicePixelRatio")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1522",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1522"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[t._v("#")]),t._v(" events")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("events")]),t._v(": keyof "),a("code",[t._v("HTMLElementEventMap")]),t._v("[]")]),t._v(" "),a("p",[t._v("The events option defines the browser events that the chart should listen to for tooltips and hovering.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1532",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1532"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"font"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#font"}},[t._v("#")]),t._v(" font")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("font")]),t._v(": "),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">")],1),t._v(" "),a("p",[t._v("base font")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.font")]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1484",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1484"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hover"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hover"}},[t._v("#")]),t._v(" hover")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("hover")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[a("code",[t._v("CoreInteractionOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1526",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1526"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"indexaxis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("indexAxis")]),t._v(": "),a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])]),t._v(" "),a("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1458",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1458"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interaction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interaction"}},[t._v("#")]),t._v(" interaction")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("interaction")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[a("code",[t._v("CoreInteractionOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1524",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1524"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"layout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layout"}},[t._v("#")]),t._v(" layout")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("layout")]),t._v(": "),a("code",[t._v("Partial")]),t._v("<{ "),a("code",[t._v("autoPadding")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("padding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">> }>")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1544",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1544"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"locale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#locale"}},[t._v("#")]),t._v(" locale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("locale")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Locale used for number formatting (using "),a("code",[t._v("Intl.NumberFormat")]),t._v(").")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" user's browser setting")]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1511",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1511"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maintainaspectratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maintainaspectratio"}},[t._v("#")]),t._v(" maintainAspectRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maintainAspectRatio")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Maintain the original canvas aspect ratio (width / height) when resizing.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1494",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1494"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"normalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("normalized")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[t._v("ParsingOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsing")]),t._v(": "),a("code",[t._v("false")]),t._v(" | { [key: string]: "),a("code",[t._v("string")]),t._v("; }")]),t._v(" "),a("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[t._v("ParsingOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resizedelay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resizedelay"}},[t._v("#")]),t._v(" resizeDelay")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("resizeDelay")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1499",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1499"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"responsive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#responsive"}},[t._v("#")]),t._v(" responsive")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("responsive")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Resizes the chart canvas when its container does (important note...).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1489",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1489"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"transitions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("transitions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[a("code",[t._v("TransitionsSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("AnimationOptions.transitions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"onclick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onclick"}},[t._v("#")]),t._v(" onClick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onClick")]),t._v("("),a("code",[t._v("event")]),t._v(", "),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1542",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1542"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onhover"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onhover"}},[t._v("#")]),t._v(" onHover")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onHover")]),t._v("("),a("code",[t._v("event")]),t._v(", "),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1537",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1537"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onresize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onresize"}},[t._v("#")]),t._v(" onResize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onResize")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("size")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size.height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size.width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1516",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1516"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/55.7db1d28a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/55.7db1d28a.js new file mode 100644 index 0000000..4b4d083 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/55.7db1d28a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{386:function(e,t,a){"use strict";a.r(t);var r=a(6),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-coreinteractionoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-coreinteractionoptions"}},[e._v("#")]),e._v(" Interface: CoreInteractionOptions")]),e._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[e._v("#")]),e._v(" Hierarchy")]),e._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[e._v("CoreInteractionOptions")])])]),e._v(" "),a("p",[e._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipOptions.html"}},[a("code",[e._v("TooltipOptions")])])],1)])]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"axis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[e._v("#")]),e._v(" axis")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("axis")]),e._v(": "),a("RouterLink",{attrs:{to:"/api/#interactionaxis"}},[a("code",[e._v("InteractionAxis")])])],1),e._v(" "),a("p",[e._v("Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes.")]),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1439",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1439"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"includeinvisible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#includeinvisible"}},[e._v("#")]),e._v(" includeInvisible")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("includeInvisible")]),e._v(": "),a("code",[e._v("boolean")])]),e._v(" "),a("p",[e._v("if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" false")]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1445",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1445"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"intersect"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intersect"}},[e._v("#")]),e._v(" intersect")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("intersect")]),e._v(": "),a("code",[e._v("boolean")])]),e._v(" "),a("p",[e._v("if true, the hover mode only applies when the mouse position intersects an item on the chart.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" true")]),e._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1434",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1434"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"mode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mode"}},[e._v("#")]),e._v(" mode")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("mode")]),e._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionModeMap.html"}},[a("code",[e._v("InteractionModeMap")])])],1),e._v(" "),a("p",[e._v("Sets which elements appear in the tooltip. See Interaction Modes for details.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" 'nearest'")]),e._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1429",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1429"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/56.8b0e82b7.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/56.8b0e82b7.js new file mode 100644 index 0000000..4ade289 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/56.8b0e82b7.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{387:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-corescaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-corescaleoptions"}},[t._v("#")]),t._v(" Interface: CoreScaleOptions")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("CoreScaleOptions")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"aligntopixels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aligntopixels"}},[t._v("#")]),t._v(" alignToPixels")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("alignToPixels")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Align pixel values to device pixels")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1156",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1156"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"display"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v('"auto"')])]),t._v(" "),a("p",[t._v("Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1152",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1152"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reverse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reverse"}},[t._v("#")]),t._v(" reverse")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("reverse")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Reverse the scale.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1161",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1161"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the axis. Higher weights are further away from the chart area.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1166",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1166"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterBuildTicks")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after ticks are created. Useful for filtering ticks.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1194",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1194"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftercalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftercalculatelabelrotation"}},[t._v("#")]),t._v(" afterCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterCalculateLabelRotation")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after tick rotation is determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1210",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1210"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterDataLimits")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after data limits are determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1186",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1186"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterfit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterfit"}},[t._v("#")]),t._v(" afterFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterFit")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after the scale fits to the canvas.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1218",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1218"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftersetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftersetdimensions"}},[t._v("#")]),t._v(" afterSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterSetDimensions")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after dimensions are set.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1178",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1178"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterticktolabelconversion"}},[t._v("#")]),t._v(" afterTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterTickToLabelConversion")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs after ticks are converted into strings.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1202",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1202"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("afterUpdate")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs at the end of the update process.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1222",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1222"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeBuildTicks")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before ticks are created.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1190",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1190"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforecalculatelabelrotation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforecalculatelabelrotation"}},[t._v("#")]),t._v(" beforeCalculateLabelRotation")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeCalculateLabelRotation")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before tick rotation is determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1206",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1206"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeDataLimits")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before data limits are determined.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1182",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1182"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforefit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforefit"}},[t._v("#")]),t._v(" beforeFit")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeFit")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before the scale fits to the canvas.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1214",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1214"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforesetdimensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforesetdimensions"}},[t._v("#")]),t._v(" beforeSetDimensions")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeSetDimensions")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before dimensions are set.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1174",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1174"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeticktolabelconversion"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeticktolabelconversion"}},[t._v("#")]),t._v(" beforeTickToLabelConversion")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeTickToLabelConversion")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback that runs before ticks are converted into strings.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1198",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1198"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("beforeUpdate")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Callback called before the update process starts.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1170",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1170"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/57.9de2d983.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/57.9de2d983.js new file mode 100644 index 0000000..35ca726 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/57.9de2d983.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{388:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-datasetcontrollerchartcomponent"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-datasetcontrollerchartcomponent"}},[t._v("#")]),t._v(" Interface: DatasetControllerChartComponent")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[r("code",[t._v("ChartComponent")])])],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("DatasetControllerChartComponent")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"defaultroutes"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defaultroutes"}},[t._v("#")]),t._v(" defaultRoutes")]),t._v(" "),r("p",[t._v("• "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("defaultRoutes")]),t._v(": "),r("code",[t._v("Object")])]),t._v(" "),r("h4",{attrs:{id:"index-signature"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#index-signature"}},[t._v("#")]),t._v(" Index signature")]),t._v(" "),r("p",[t._v("▪ [property: "),r("code",[t._v("string")]),t._v("]: "),r("code",[t._v("string")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#defaultroutes"}},[t._v("defaultRoutes")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1414",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1414"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"defaults"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defaults"}},[t._v("#")]),t._v(" defaults")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("defaults")]),t._v(": "),r("code",[t._v("Object")])]),t._v(" "),r("h4",{attrs:{id:"type-declaration"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("dataElementType?")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("string")]),t._v(" | "),r("code",[t._v("false")])])]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("datasetElementType?")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("string")]),t._v(" | "),r("code",[t._v("false")])])])])]),t._v(" "),r("h4",{attrs:{id:"overrides"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#defaults"}},[t._v("defaults")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"id"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("id")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#id"}},[t._v("id")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1412",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1412"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"methods"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),r("h3",{attrs:{id:"afterRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#afterRegistro"}},[t._v("#")]),t._v(" afterRegistro")]),t._v(" "),r("p",[t._v("▸ "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("afterRegistro")]),t._v("(): "),r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"returns"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#afterRegistro"}},[t._v("afterRegistro")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1417",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1417"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"afterunRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#afterunRegistro"}},[t._v("#")]),t._v(" afterUnRegistro")]),t._v(" "),r("p",[t._v("▸ "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("afterUnRegistro")]),t._v("(): "),r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"returns-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#afterunRegistro"}},[t._v("afterUnRegistro")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1419",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1419"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"beforeRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#beforeRegistro"}},[t._v("#")]),t._v(" beforeRegistro")]),t._v(" "),r("p",[t._v("▸ "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("beforeRegistro")]),t._v("(): "),r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"returns-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#beforeRegistro"}},[t._v("beforeRegistro")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1416",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1416"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"beforeunRegistro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#beforeunRegistro"}},[t._v("#")]),t._v(" beforeUnRegistro")]),t._v(" "),r("p",[t._v("▸ "),r("code",[t._v("Optional")]),t._v(" "),r("strong",[t._v("beforeUnRegistro")]),t._v("(): "),r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"returns-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),r("p",[r("code",[t._v("void")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html#beforeunRegistro"}},[t._v("beforeUnRegistro")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1418",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1418"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/58.b0f8ad0c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/58.b0f8ad0c.js new file mode 100644 index 0000000..08fa024 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/58.b0f8ad0c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{389:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-dateadapter"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-dateadapter"}},[t._v("#")]),t._v(" Interface: DateAdapter")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("unknown")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"add"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add"}},[t._v("#")]),t._v(" add")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("add")]),t._v("("),a("code",[t._v("timestamp")]),t._v(", "),a("code",[t._v("amount")]),t._v(", "),a("code",[t._v("unit")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Adds the specified "),a("code",[t._v("amount")]),t._v(" of "),a("code",[t._v("unit")]),t._v(" to the given "),a("code",[t._v("timestamp")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("timestamp")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the input timestamp")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("amount")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the amount to add")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unit")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the unit as string")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"diff"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#diff"}},[t._v("#")]),t._v(" diff")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("diff")]),t._v("("),a("code",[t._v("a")]),t._v(", "),a("code",[t._v("b")]),t._v(", "),a("code",[t._v("unit")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns the number of "),a("code",[t._v("unit")]),t._v(" between the given timestamps.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("a")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the input timestamp (reference)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("b")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the timestamp to subtract")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unit")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the unit as string")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:49"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"endof"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#endof"}},[t._v("#")]),t._v(" endOf")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("endOf")]),t._v("("),a("code",[t._v("timestamp")]),t._v(", "),a("code",[t._v("unit")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns end of "),a("code",[t._v("unit")]),t._v(" for the given "),a("code",[t._v("timestamp")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("timestamp")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the input timestamp")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unit")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" | "),a("code",[t._v('"isoWeek"')])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the unit as string")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L65",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:65"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"format"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#format"}},[t._v("#")]),t._v(" format")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("format")]),t._v("("),a("code",[t._v("timestamp")]),t._v(", "),a("code",[t._v("format")]),t._v("): "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Returns the formatted date in the specified "),a("code",[t._v("format")]),t._v(" for a given "),a("code",[t._v("timestamp")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("timestamp")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the timestamp to format")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("format")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the date/time token")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"formats"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#formats"}},[t._v("#")]),t._v(" formats")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("formats")]),t._v("(): "),a("code",[t._v("Object")])]),t._v(" "),a("p",[t._v("Returns a map of time formats for the supported formatting units defined\nin Unit as well as 'datetime' representing a detailed date/time string.")]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L20",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:20"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"init"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init"}},[t._v("#")]),t._v(" init")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("init")]),t._v("("),a("code",[t._v("chartOptions")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Will called with chart options after adapter creation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("_DeepPartialObject")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/#datasetchartoptions"}},[a("code",[t._v("DatasetChartOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/#scalechartoptions"}},[a("code",[t._v("ScaleChartOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L14",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:14"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"override"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#override"}},[t._v("#")]),t._v(" override")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("override")]),t._v("("),a("code",[t._v("members")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("members")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/DateAdapter.html"}},[a("code",[t._v("DateAdapter")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("value")]),t._v(", "),a("code",[t._v("format?")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Parses the given "),a("code",[t._v("value")]),t._v(" and return the associated timestamp.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the value to parse (usually comes from the data)")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("format?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L26",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:26"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"startof"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#startof"}},[t._v("#")]),t._v(" startOf")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("startOf")]),t._v("("),a("code",[t._v("timestamp")]),t._v(", "),a("code",[t._v("unit")]),t._v(", "),a("code",[t._v("weekday?")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Returns start of "),a("code",[t._v("unit")]),t._v(" for the given "),a("code",[t._v("timestamp")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("timestamp")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the input timestamp")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unit")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" | "),a("code",[t._v('"isoWeek"')])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("the unit as string")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("weekday?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:58"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/59.f1ff4935.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/59.f1ff4935.js new file mode 100644 index 0000000..7c83e64 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/59.f1ff4935.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{390:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-defaults"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-defaults"}},[t._v("#")]),t._v(" Interface: Defaults")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(">")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("Defaults")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"animation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animation")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#animationspec"}},[a("code",[t._v("AnimationSpec")])]),t._v(" & { "),a("code",[t._v("onComplete?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" ; "),a("code",[t._v("onProgress?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#animation"}},[t._v("animation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animations")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#animationsspec"}},[a("code",[t._v("AnimationsSpec")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#animations"}},[t._v("animations")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aspectratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aspectratio"}},[t._v("#")]),t._v(" aspectRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("aspectRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 2")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#aspectratio"}},[t._v("aspectRatio")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1505",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1505"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"backgroundcolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("backgroundColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("base background color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.backgroundColor")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#backgroundcolor"}},[t._v("backgroundColor")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1474",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1474"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bordercolor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("borderColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("base border color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.borderColor")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#bordercolor"}},[t._v("borderColor")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1479",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1479"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"clip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("clip")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1463",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1463"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"color"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" color")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v(">")],1),t._v(" "),a("p",[t._v("base color")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#color"}},[t._v("color")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1469",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1469"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datasets"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasets"}},[t._v("#")]),t._v(" datasets")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("datasets")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("bar")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerDatasetOptions.html"}},[a("code",[t._v("BarControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("bubble")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleControllerDatasetOptions.html"}},[a("code",[t._v("BubbleControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("doughnut")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("line")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pie")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("polarArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerDatasetOptions.html"}},[a("code",[t._v("PolarAreaControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("radar")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/RadarControllerDatasetOptions.html"}},[a("code",[t._v("RadarControllerDatasetOptions")])]),t._v(" & "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[a("code",[t._v("FillerControllerDatasetOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scatter")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#datasets"}},[t._v("datasets")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1450",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1450"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"devicepixelratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#devicepixelratio"}},[t._v("#")]),t._v(" devicePixelRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("devicePixelRatio")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Override the window's default devicePixelRatio.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" window.devicePixelRatio")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#devicepixelratio"}},[t._v("devicePixelRatio")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1522",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1522"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"elements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#elements"}},[t._v("#")]),t._v(" elements")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("elements")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ElementOptionsByType.html"}},[a("code",[t._v("ElementOptionsByType")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("ElementChartOptions.elements")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2047",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2047"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[t._v("#")]),t._v(" events")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("events")]),t._v(": keyof "),a("code",[t._v("HTMLElementEventMap")]),t._v("[]")]),t._v(" "),a("p",[t._v("The events option defines the browser events that the chart should listen to for tooltips and hovering.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#events"}},[t._v("events")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1532",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1532"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"font"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#font"}},[t._v("#")]),t._v(" font")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("font")]),t._v(": "),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">")],1),t._v(" "),a("p",[t._v("base font")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.font")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#font"}},[t._v("font")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1484",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1484"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hover"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hover"}},[t._v("#")]),t._v(" hover")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("hover")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[a("code",[t._v("CoreInteractionOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#hover"}},[t._v("hover")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1526",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1526"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"indexaxis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("indexAxis")]),t._v(": "),a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])]),t._v(" "),a("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1458",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1458"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interaction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interaction"}},[t._v("#")]),t._v(" interaction")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("interaction")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[a("code",[t._v("CoreInteractionOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#interaction"}},[t._v("interaction")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1524",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1524"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"layout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layout"}},[t._v("#")]),t._v(" layout")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("layout")]),t._v(": "),a("code",[t._v("Partial")]),t._v("<{ "),a("code",[t._v("autoPadding")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("padding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("> }>")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#layout"}},[t._v("layout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1544",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1544"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"locale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#locale"}},[t._v("#")]),t._v(" locale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("locale")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("Locale used for number formatting (using "),a("code",[t._v("Intl.NumberFormat")]),t._v(").")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" user's browser setting")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#locale"}},[t._v("locale")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1511",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1511"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maintainaspectratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maintainaspectratio"}},[t._v("#")]),t._v(" maintainAspectRatio")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maintainAspectRatio")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Maintain the original canvas aspect ratio (width / height) when resizing.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#maintainaspectratio"}},[t._v("maintainAspectRatio")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1494",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1494"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"normalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("normalized")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsing")]),t._v(": "),a("code",[t._v("false")]),t._v(" | { [key: string]: "),a("code",[t._v("string")]),t._v("; }")]),t._v(" "),a("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("plugins")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginOptionsByType.html"}},[a("code",[t._v("PluginOptionsByType")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[t._v("PluginChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html#plugins"}},[t._v("plugins")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2845",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2845"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resizedelay"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resizedelay"}},[t._v("#")]),t._v(" resizeDelay")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("resizeDelay")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#resizedelay"}},[t._v("resizeDelay")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1499",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1499"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"responsive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#responsive"}},[t._v("#")]),t._v(" responsive")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("responsive")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Resizes the chart canvas when its container does (important note...).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#responsive"}},[t._v("responsive")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1489",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1489"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scale"}},[t._v("#")]),t._v(" scale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("scale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scaleoptionsbytype"}},[a("code",[t._v("ScaleOptionsByType")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L659",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:659"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scales"}},[t._v("#")]),t._v(" scales")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("scales")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("category")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"category"')]),t._v(" } & "),a("code",[t._v("Omit")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(", "),a("code",[t._v('"min"')]),t._v(" | "),a("code",[t._v('"max"')]),t._v("> & { "),a("code",[t._v("labels")]),t._v(": "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("string")]),t._v("[][] ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("linear")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"linear"')]),t._v(" } & "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(" & { "),a("code",[t._v("beginAtZero")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("grace?")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMax?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("count")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("format")]),t._v(": "),a("code",[t._v("NumberFormatOptions")]),t._v(" ; "),a("code",[t._v("precision")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" } }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("logarithmic")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"logarithmic"')]),t._v(" } & "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(" & { "),a("code",[t._v("suggestedMax?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("format")]),t._v(": "),a("code",[t._v("NumberFormatOptions")]),t._v(" } }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("radialLinear")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"radialLinear"')]),t._v(" } & "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(" & { "),a("code",[t._v("angleLines")]),t._v(": { "),a("code",[t._v("borderDash")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v("[], "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("borderDashOffset")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("lineWidth")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> } ; "),a("code",[t._v("animate")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("beginAtZero")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("grid")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/GridLineOptions.html"}},[a("code",[t._v("GridLineOptions")])]),t._v(" ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("pointLabels")]),t._v(": { "),a("code",[t._v("backdropColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("backdropPadding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("borderRadius")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[a("code",[t._v("BorderRadius")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("centerPointLabels")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("font")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("padding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("callback")]),t._v(": ("),a("code",[t._v("label")]),t._v(": "),a("code",[t._v("string")]),t._v(", "),a("code",[t._v("index")]),t._v(": "),a("code",[t._v("number")]),t._v(") => "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("number")]),t._v("[] } ; "),a("code",[t._v("startAngle")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMax")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#radialtickoptions"}},[a("code",[t._v("RadialTickOptions")])]),t._v(" }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("time")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"time"')]),t._v(" } & "),a("code",[t._v("Omit")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(", "),a("code",[t._v('"min"')]),t._v(" | "),a("code",[t._v('"max"')]),t._v("> & { "),a("code",[t._v("adapters")]),t._v(": { "),a("code",[t._v("date")]),t._v(": "),a("code",[t._v("unknown")]),t._v(" } ; "),a("code",[t._v("bounds")]),t._v(": "),a("code",[t._v('"data"')]),t._v(" | "),a("code",[t._v('"ticks"')]),t._v(" ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("offsetAfterAutoskip")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("suggestedMax")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("source")]),t._v(": "),a("code",[t._v('"auto"')]),t._v(" | "),a("code",[t._v('"data"')]),t._v(" | "),a("code",[t._v('"labels"')]),t._v(" } ; "),a("code",[t._v("time")]),t._v(": { "),a("code",[t._v("displayFormats")]),t._v(": { [key: string]: "),a("code",[t._v("string")]),t._v("; } ; "),a("code",[t._v("isoWeekday")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("minUnit")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("parser")]),t._v(": "),a("code",[t._v("string")]),t._v(" | ("),a("code",[t._v("v")]),t._v(": "),a("code",[t._v("unknown")]),t._v(") => "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("round")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("tooltipFormat")]),t._v(": "),a("code",[t._v("string")]),t._v(" ; "),a("code",[t._v("unit")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" } }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("timeseries")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("{ "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"timeseries"')]),t._v(" } & "),a("code",[t._v("Omit")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(", "),a("code",[t._v('"min"')]),t._v(" | "),a("code",[t._v('"max"')]),t._v("> & { "),a("code",[t._v("adapters")]),t._v(": { "),a("code",[t._v("date")]),t._v(": "),a("code",[t._v("unknown")]),t._v(" } ; "),a("code",[t._v("bounds")]),t._v(": "),a("code",[t._v('"data"')]),t._v(" | "),a("code",[t._v('"ticks"')]),t._v(" ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("offsetAfterAutoskip")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("suggestedMax")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("source")]),t._v(": "),a("code",[t._v('"auto"')]),t._v(" | "),a("code",[t._v('"data"')]),t._v(" | "),a("code",[t._v('"labels"')]),t._v(" } ; "),a("code",[t._v("time")]),t._v(": { "),a("code",[t._v("displayFormats")]),t._v(": { [key: string]: "),a("code",[t._v("string")]),t._v("; } ; "),a("code",[t._v("isoWeekday")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("minUnit")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("parser")]),t._v(": "),a("code",[t._v("string")]),t._v(" | ("),a("code",[t._v("v")]),t._v(": "),a("code",[t._v("unknown")]),t._v(") => "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("round")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("tooltipFormat")]),t._v(": "),a("code",[t._v("string")]),t._v(" ; "),a("code",[t._v("unit")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" } }")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L660",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:660"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"transitions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("transitions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[a("code",[t._v("TransitionsSpec")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#transitions"}},[t._v("transitions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"describe"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#describe"}},[t._v("#")]),t._v(" describe")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("describe")]),t._v("("),a("code",[t._v("scope")]),t._v(", "),a("code",[t._v("values")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L668",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:668"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"get"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get"}},[t._v("#")]),t._v(" get")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("get")]),t._v("("),a("code",[t._v("scope")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L666",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:666"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onclick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onclick"}},[t._v("#")]),t._v(" onClick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onClick")]),t._v("("),a("code",[t._v("event")]),t._v(", "),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#onclick"}},[t._v("onClick")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1542",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1542"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onhover"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onhover"}},[t._v("#")]),t._v(" onHover")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onHover")]),t._v("("),a("code",[t._v("event")]),t._v(", "),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("chart")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#onhover"}},[t._v("onHover")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1537",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1537"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onresize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onresize"}},[t._v("#")]),t._v(" onResize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onResize")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("size")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size.height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("size.width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html#onresize"}},[t._v("onResize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1516",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1516"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"override"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#override"}},[t._v("#")]),t._v(" override")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("override")]),t._v("("),a("code",[t._v("scope")]),t._v(", "),a("code",[t._v("values")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L669",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:669"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"route"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#route"}},[t._v("#")]),t._v(" route")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("route")]),t._v("("),a("code",[t._v("scope")]),t._v(", "),a("code",[t._v("name")]),t._v(", "),a("code",[t._v("targetScope")]),t._v(", "),a("code",[t._v("targetName")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Routes the named defaults to fallback to another scope/name.\nThis routing is useful when those target values, like defaults.color, are changed runtime.\nIf the values would be copied, the runtime change would not take effect. By routing, the\nfallback is evaluated at each access, so its always up to date.")]),t._v(" "),a("p",[t._v("Example:")]),t._v(" "),a("p",[t._v("defaults.route('elements.arc', 'backgroundColor', '', 'color')")]),t._v(" "),a("ul",[a("li",[t._v("reads the backgroundColor from defaults.color when undefined locally")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Scope this route applies to.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("name")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Property name that should be routed to different namespace when not defined here.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("targetScope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The namespace where those properties should be routed to. Empty string ('') is the root of defaults.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("targetName")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The target name in the target scope the property should be routed to.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:688"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"set"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set"}},[t._v("#")]),t._v(" set")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("set")]),t._v("("),a("code",[t._v("values")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L664",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:664"),a("OutboundLink")],1)]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("set")]),t._v("("),a("code",[t._v("scope")]),t._v(", "),a("code",[t._v("values")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scope")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L665",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:665"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/6.2bc86161.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/6.2bc86161.js new file mode 100644 index 0000000..9a0ea7a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/6.2bc86161.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{297:function(t,e,a){},333:function(t,e,a){"use strict";a(297)},338:function(t,e,a){"use strict";a.r(e);var s={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(333),a(6)),n=Object(i.a)(s,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/60.ac08de9a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/60.ac08de9a.js new file mode 100644 index 0000000..9ab9af2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/60.ac08de9a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{391:function(t,e,a){"use strict";a.r(e);var n=a(6),r=Object(n.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-doughnutanimationoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-doughnutanimationoptions"}},[t._v("#")]),t._v(" Interface: DoughnutAnimationOptions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"animaterotate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animaterotate"}},[t._v("#")]),t._v(" animateRotate")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animateRotate")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("If true, the chart will animate in with a rotation animation. This property is in the options.animation object.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L282",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:282"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animatescale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animatescale"}},[t._v("#")]),t._v(" animateScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animateScale")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("If true, will animate scaling the chart from the center outwards.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L288",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:288"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/61.ea4fad75.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/61.ea4fad75.js new file mode 100644 index 0000000..f686b19 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/61.ea4fad75.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{392:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-doughnutcontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-doughnutcontroller"}},[t._v("#")]),t._v(" Interface: DoughnutController")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("DoughnutController")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"cachedmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cachedmeta"}},[t._v("#")]),t._v(" _cachedMeta")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("_cachedMeta")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#_cachedmeta"}},[t._v("_cachedMeta")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L583",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:583"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#chart"}},[t._v("chart")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L581",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:581"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"enableoptionsharing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enableoptionsharing"}},[t._v("#")]),t._v(" enableOptionSharing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("enableOptionSharing")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#enableoptionsharing"}},[t._v("enableOptionSharing")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L584",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:584"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#index"}},[t._v("index")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L582",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:582"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"innerradius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#innerradius"}},[t._v("#")]),t._v(" innerRadius")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("innerRadius")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L334",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:334"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"offsetx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offsetx"}},[t._v("#")]),t._v(" offsetX")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("offsetX")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L336",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:336"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"offsety"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offsety"}},[t._v("#")]),t._v(" offsetY")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("offsetY")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L337",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:337"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"outerradius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#outerradius"}},[t._v("#")]),t._v(" outerRadius")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("outerRadius")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L335",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:335"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"supportsdecimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#supportsdecimation"}},[t._v("#")]),t._v(" supportsDecimation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("supportsDecimation")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#supportsdecimation"}},[t._v("supportsDecimation")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L588",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:588"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"addelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addelements"}},[t._v("#")]),t._v(" addElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addElements")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#addelements"}},[t._v("addElements")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L604",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:604"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"applystack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#applystack"}},[t._v("#")]),t._v(" applyStack")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("applyStack")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#applystack"}},[t._v("applyStack")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:640"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildorupdateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildorupdateelements"}},[t._v("#")]),t._v(" buildOrUpdateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildOrUpdateElements")]),t._v("("),a("code",[t._v("resetNewElements?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("resetNewElements?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#buildorupdateelements"}},[t._v("buildOrUpdateElements")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L605",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:605"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatecircumference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatecircumference"}},[t._v("#")]),t._v(" calculateCircumference")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateCircumference")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L340",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:340"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatetotal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatetotal"}},[t._v("#")]),t._v(" calculateTotal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateTotal")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L339",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:339"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#configure"}},[t._v("configure")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L602",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:602"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L597",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:597"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getallparsedvalues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getallparsedvalues"}},[t._v("#")]),t._v(" getAllParsedValues")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getAllParsedValues")]),t._v("("),a("code",[t._v("scale")]),t._v("): "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getallparsedvalues"}},[t._v("getAllParsedValues")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L591",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:591"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdataset"}},[t._v("#")]),t._v(" getDataset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDataset")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getdataset"}},[t._v("getDataset")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L599",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:599"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelandvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelandvalue"}},[t._v("#")]),t._v(" getLabelAndValue")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getLabelAndValue")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("label")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getlabelandvalue"}},[t._v("getLabelAndValue")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:592"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaxoverflow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaxoverflow"}},[t._v("#")]),t._v(" getMaxOverflow")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMaxOverflow")]),t._v("(): "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getmaxoverflow"}},[t._v("getMaxOverflow")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L596",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:596"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmeta"}},[t._v("#")]),t._v(" getMeta")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMeta")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getmeta"}},[t._v("getMeta")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L600",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:600"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("canStack?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getminmax"}},[t._v("getMinMax")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L647",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:647"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getparsed"}},[t._v("#")]),t._v(" getParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getParsed")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getparsed"}},[t._v("getParsed")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L639",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:639"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getscaleforid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getscaleforid"}},[t._v("#")]),t._v(" getScaleForId")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getScaleForId")]),t._v("("),a("code",[t._v("scaleID")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scaleID")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getscaleforid"}},[t._v("getScaleForId")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getsharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsharedoptions"}},[t._v("#")]),t._v(" getSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getSharedOptions")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("p",[t._v("Utility for checking if the options are shared and should be animated separately.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getsharedoptions"}},[t._v("getSharedOptions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L614",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:614"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getstyle"}},[t._v("#")]),t._v(" getStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getStyle")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("active")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("active")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#getstyle"}},[t._v("getStyle")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L607",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:607"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"includeoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#includeoptions"}},[t._v("#")]),t._v(" includeOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("includeOptions")]),t._v("("),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("sharedOptions")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Utility for determining if "),a("code",[t._v("options")]),t._v(" should be included in the updated properties")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#includeoptions"}},[t._v("includeOptions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L619",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:619"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"initialize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[t._v("#")]),t._v(" initialize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("initialize")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#initialize"}},[t._v("initialize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L603",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:603"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linkscales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linkscales"}},[t._v("#")]),t._v(" linkScales")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("linkScales")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#linkscales"}},[t._v("linkScales")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L590",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:590"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#parse"}},[t._v("parse")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L635",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:635"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsearraydata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsearraydata"}},[t._v("#")]),t._v(" parseArrayData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseArrayData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#parsearraydata"}},[t._v("parseArrayData")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L637",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:637"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseobjectdata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseobjectdata"}},[t._v("#")]),t._v(" parseObjectData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseObjectData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#parseobjectdata"}},[t._v("parseObjectData")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L638",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:638"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseprimitivedata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseprimitivedata"}},[t._v("#")]),t._v(" parsePrimitiveData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parsePrimitiveData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#parseprimitivedata"}},[t._v("parsePrimitiveData")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L636",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:636"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removehoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removehoverstyle"}},[t._v("#")]),t._v(" removeHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#removehoverstyle"}},[t._v("removeHoverStyle")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L632",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:632"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("reset")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#reset"}},[t._v("reset")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L598",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:598"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedataelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedataelementoptions"}},[t._v("#")]),t._v(" resolveDataElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDataElementOptions")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#resolvedataelementoptions"}},[t._v("resolveDataElementOptions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L609",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:609"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedatasetelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedatasetelementoptions"}},[t._v("#")]),t._v(" resolveDatasetElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDatasetElementOptions")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#resolvedatasetelementoptions"}},[t._v("resolveDatasetElementOptions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L608",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:608"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"sethoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sethoverstyle"}},[t._v("#")]),t._v(" setHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#sethoverstyle"}},[t._v("setHoverStyle")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L633",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:633"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#update"}},[t._v("update")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L594",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:594"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelement"}},[t._v("#")]),t._v(" updateElement")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateElement")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("properties")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility for updating an element with new properties, using animations when appropriate.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("properties")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#updateelement"}},[t._v("updateElement")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L625",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:625"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelements"}},[t._v("#")]),t._v(" updateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateElements")]),t._v("("),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#updateelements"}},[t._v("updateElements")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L593",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:593"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateindex"}},[t._v("#")]),t._v(" updateIndex")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateIndex")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#updateindex"}},[t._v("updateIndex")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L595",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:595"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updaterangefromparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updaterangefromparsed"}},[t._v("#")]),t._v(" updateRangeFromParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateRangeFromParsed")]),t._v("("),a("code",[t._v("range")]),t._v(", "),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v(", "),a("code",[t._v("stack")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("stack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#updaterangefromparsed"}},[t._v("updateRangeFromParsed")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L641",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:641"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatesharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatesharedoptions"}},[t._v("#")]),t._v(" updateSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateSharedOptions")]),t._v("("),a("code",[t._v("sharedOptions")]),t._v(", "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("newOptions")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility to animate the shared options, that are potentially affecting multiple elements.")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("newOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")]),t._v("."),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html#updatesharedoptions"}},[t._v("updateSharedOptions")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L631",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:631"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/62.5c85853b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/62.5c85853b.js new file mode 100644 index 0000000..0bbb36e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/62.5c85853b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{393:function(t,e,r){"use strict";r.r(e);var a=r(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-doughnutcontrollerchartoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-doughnutcontrollerchartoptions"}},[t._v("#")]),t._v(" Interface: DoughnutControllerChartOptions")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutAnimationOptions.html"}},[r("code",[t._v("DoughnutAnimationOptions")])])],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L328",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:328"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circumference"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circumference"}},[t._v("#")]),t._v(" circumference")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circumference")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Sweep to allow arcs to cover.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 360")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L296",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:296"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"cutout"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cutout"}},[t._v("#")]),t._v(" cutout")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("cutout")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("string")]),t._v(" | "),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The portion of the chart that is cut out of the middle. ('50%' - for doughnut, 0 - for pie)\nString ending with '%' means percentage, number means pixels.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 50")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L303",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:303"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"offset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[t._v("#")]),t._v(" offset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("offset")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Arc offset (in pixels).")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L308",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:308"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"radius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#radius"}},[t._v("#")]),t._v(" radius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("radius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("string")]),t._v(" | "),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The outer radius of the chart. String ending with '%' means percentage of maximum radius, number means pixels.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" '100%'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L314",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:314"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Starting angle to draw arcs from.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L320",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:320"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spacing"}},[t._v("#")]),t._v(" spacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spacing")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Spacing between the arcs")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L326",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:326"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/63.5ac99656.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/63.5ac99656.js new file mode 100644 index 0000000..54b8464 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/63.5ac99656.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{394:function(t,e,r){"use strict";r.r(e);var a=r(6),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-doughnutcontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-doughnutcontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: DoughnutControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[r("code",[t._v("ControllerDatasetOptions")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[r("code",[t._v("ArcOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/ArcHoverOptions.html"}},[r("code",[t._v("ArcHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#animationoptions"}},[r("code",[t._v("AnimationOptions")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">")],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("DoughnutControllerDatasetOptions")])])]),t._v(" "),r("p",[t._v("↳↳ "),r("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerDatasetOptions.html"}},[r("code",[t._v("PolarAreaControllerDatasetOptions")])])],1)])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v("> & { "),r("code",[t._v("onComplete?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" ; "),r("code",[t._v("onProgress?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" }")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animation")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animations")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.backgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderalign"}},[t._v("#")]),t._v(" borderAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v('"center"')]),t._v(" | "),r("code",[t._v('"inner"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Arc stroke alignment.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderAlign")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1732",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1732"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[t._v("#")]),t._v(" borderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line join style. See MDN. Default is 'round' when "),r("code",[t._v("borderAlign")]),t._v(" is 'inner', else 'bevel'.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderJoinStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1737",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1737"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[t._v("#")]),t._v(" borderRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ArcBorderRadius.html"}},[r("code",[t._v("ArcBorderRadius")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Sets the border radius for arcs")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1743",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1743"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circular"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circular"}},[t._v("#")]),t._v(" circular")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circular")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("If false, Arc will be flat.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.circular")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1754",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1754"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circumference"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circumference"}},[t._v("#")]),t._v(" circumference")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circumference")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Sweep to allow arcs to cover.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 360")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L250",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:250"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoveroffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoveroffset"}},[t._v("#")]),t._v(" hoverOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverOffset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1758",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1758"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"offset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[t._v("#")]),t._v(" offset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("offset")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Arc offset (in pixels).")]),t._v(" "),r("h4",{attrs:{id:"overrides"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.offset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L255",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:255"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Starting angle to draw this dataset from.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L261",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:261"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spacing"}},[t._v("#")]),t._v(" spacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spacing")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Similar to the "),r("code",[t._v("offset")]),t._v(" option, but applies to all arcs. This can be used to to add spaces\nbetween arcs")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:274"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"transitions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("transitions")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[r("code",[t._v("TransitionsSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.transitions")]),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"weight"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("weight")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L267",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:267"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/64.c6838e95.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/64.c6838e95.js new file mode 100644 index 0000000..075c0b0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/64.c6838e95.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{395:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-doughnutmetaextensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-doughnutmetaextensions"}},[t._v("#")]),t._v(" Interface: DoughnutMetaExtensions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"total"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#total"}},[t._v("#")]),t._v(" total")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("total")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L349",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:349"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/65.4c1b089e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/65.4c1b089e.js new file mode 100644 index 0000000..eebb691 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/65.4c1b089e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{396:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-element-t-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-element-t-o"}},[t._v("#")]),t._v(" Interface: Element")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("code",[t._v("T")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/66.379a6b45.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/66.379a6b45.js new file mode 100644 index 0000000..d1e9e53 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/66.379a6b45.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{397:function(t,e,r){"use strict";r.r(e);var a=r(6),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-elementoptionsbytype-ttype"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-elementoptionsbytype-ttype"}},[t._v("#")]),t._v(" Interface: ElementOptionsByType")]),t._v(" "),r("h2",{attrs:{id:"type-parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("TType")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),r("RouterLink",{attrs:{to:"/api/#charttype"}},[r("code",[t._v("ChartType")])])],1)])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"arc"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#arc"}},[t._v("#")]),t._v(" arc")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("arc")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[r("code",[t._v("ArcOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/ArcHoverOptions.html"}},[r("code",[t._v("ArcHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2040",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2040"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bar"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bar"}},[t._v("#")]),t._v(" bar")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("bar")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[r("code",[t._v("BarOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/BarHoverOptions.html"}},[r("code",[t._v("BarHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2041",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2041"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"line"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#line"}},[t._v("#")]),t._v(" line")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("line")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[r("code",[t._v("LineOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/LineHoverOptions.html"}},[r("code",[t._v("LineHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2042",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2042"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"point"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#point"}},[t._v("#")]),t._v(" point")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("point")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[r("code",[t._v("PointOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/PointHoverOptions.html"}},[r("code",[t._v("PointHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2043",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2043"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/67.15703e17.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/67.15703e17.js new file mode 100644 index 0000000..f9cec83 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/67.15703e17.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{398:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-extendedplugin-ttype-o-model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-extendedplugin-ttype-o-model"}},[t._v("#")]),t._v(" Interface: ExtendedPlugin")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Model")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("ExtendedPlugin")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"aftertooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftertooltipdraw"}},[t._v("#")]),t._v(" afterTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after drawing the "),a("code",[t._v("tooltip")]),t._v(". Note that this hook will not\nbe called if the tooltip drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Model")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforetooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforetooltipdraw"}},[t._v("#")]),t._v(" beforeTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("tooltip")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe tooltip drawing is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Model")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart tooltip drawing.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2592"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/68.ffdefd7d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/68.ffdefd7d.js new file mode 100644 index 0000000..335257a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/68.ffdefd7d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{399:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-fillercontrollerdatasetoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-fillercontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: FillerControllerDatasetOptions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"fill"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fill"}},[t._v("#")]),t._v(" fill")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fill")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#filltarget"}},[a("code",[t._v("FillTarget")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ComplexFillTarget.html"}},[a("code",[t._v("ComplexFillTarget")])])],1),t._v(" "),a("p",[t._v("Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2159",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2159"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/69.bdeb7b9b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/69.bdeb7b9b.js new file mode 100644 index 0000000..be6f666 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/69.bdeb7b9b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{400:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-filleroptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-filleroptions"}},[e._v("#")]),e._v(" Interface: FillerOptions")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"drawtime"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawtime"}},[e._v("#")]),e._v(" drawTime")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("drawTime")]),e._v(": "),r("code",[e._v('"beforeDatasetDraw"')]),e._v(" | "),r("code",[e._v('"beforeDatasetsDraw"')])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2134",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2134"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"propagate"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#propagate"}},[e._v("#")]),e._v(" propagate")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("propagate")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2135",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2135"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/7.74f2ce90.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/7.74f2ce90.js new file mode 100644 index 0000000..14371a1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/7.74f2ce90.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{298:function(e,t,a){},334:function(e,t,a){"use strict";a(298)},339:function(e,t,a){"use strict";a.r(t);var o={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.activateCodeTab(e)}},mounted(){this.loadTabs()},methods:{changeCodeTab(e){this.activeCodeTabIndex=e},loadTabs(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,t)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=t),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab(e){this.codeTabs.forEach(e=>{e.elm&&e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},s=(a(334),a(6)),c=Object(s.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/70.3dadb5ed.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/70.3dadb5ed.js new file mode 100644 index 0000000..4383ffd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/70.3dadb5ed.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{401:function(e,t,a){"use strict";a.r(t);var r=a(6),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-fontspec"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-fontspec"}},[e._v("#")]),e._v(" Interface: FontSpec")]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"family"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#family"}},[e._v("#")]),e._v(" family")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("family")]),e._v(": "),a("code",[e._v("string")])]),e._v(" "),a("p",[e._v("Default font family for all text, follows CSS font-family options.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\"")]),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1659",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1659"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"lineheight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#lineheight"}},[e._v("#")]),e._v(" lineHeight")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("lineHeight")]),e._v(": "),a("code",[e._v("string")]),e._v(" | "),a("code",[e._v("number")])]),e._v(" "),a("p",[e._v("Height of an individual line of text (see MDN).")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" 1.2")]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1678",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1678"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"size"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#size"}},[e._v("#")]),e._v(" size")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("size")]),e._v(": "),a("code",[e._v("number")])]),e._v(" "),a("p",[e._v("Default font size (in px) for text. Does not apply to radialLinear scale point labels.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" 12")]),e._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1664",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1664"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"style"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#style"}},[e._v("#")]),e._v(" style")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("style")]),e._v(": "),a("code",[e._v('"normal"')]),e._v(" | "),a("code",[e._v('"italic"')]),e._v(" | "),a("code",[e._v('"oblique"')]),e._v(" | "),a("code",[e._v('"initial"')]),e._v(" | "),a("code",[e._v('"inherit"')])]),e._v(" "),a("p",[e._v("Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit)")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" 'normal'")]),e._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1669",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1669"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[e._v("#")]),e._v(" weight")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("weight")]),e._v(": "),a("code",[e._v("string")])]),e._v(" "),a("p",[e._v("Default font weight (boldness). (see MDN).")]),e._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1673",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:1673"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/71.2c97fe38.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/71.2c97fe38.js new file mode 100644 index 0000000..d0811a1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/71.2c97fe38.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{402:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-gridlineoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-gridlineoptions"}},[t._v("#")]),t._v(" Interface: GridLineOptions")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2853",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2853"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdash"}},[t._v("#")]),t._v(" borderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" []")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2866",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2866"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdashoffset"}},[t._v("#")]),t._v(" borderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2870",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2870"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2854",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2854"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circular"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circular"}},[t._v("#")]),t._v(" circular")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circular")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2858",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2858"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"color"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" color")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("color")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'rgba(0, 0, 0, 0.1)'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2862",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2862"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"display"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("display")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2852",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2852"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawborder"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawborder"}},[t._v("#")]),t._v(" drawBorder")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawBorder")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2879",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2879"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawonchartarea"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawonchartarea"}},[t._v("#")]),t._v(" drawOnChartArea")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawOnChartArea")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2883",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2883"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawticks"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawticks"}},[t._v("#")]),t._v(" drawTicks")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawTicks")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2887",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2887"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"linewidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linewidth"}},[t._v("#")]),t._v(" lineWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("lineWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2874",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2874"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"offset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[t._v("#")]),t._v(" offset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("offset")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2911",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2911"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tickborderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tickborderdash"}},[t._v("#")]),t._v(" tickBorderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tickBorderDash")]),t._v(": "),r("code",[t._v("number")]),t._v("[]")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" []")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2891",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2891"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tickborderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tickborderdashoffset"}},[t._v("#")]),t._v(" tickBorderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tickBorderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2895",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2895"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tickcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tickcolor"}},[t._v("#")]),t._v(" tickColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tickColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[r("code",[t._v("ScripTablascaleContext")])]),t._v(">")],1),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'rgba(0, 0, 0, 0.1)'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2899",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2899"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"ticklength"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ticklength"}},[t._v("#")]),t._v(" tickLength")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tickLength")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 10")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2903",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2903"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tickwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tickwidth"}},[t._v("#")]),t._v(" tickWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tickWidth")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2907",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2907"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"z"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#z"}},[t._v("#")]),t._v(" z")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("z")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2915",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2915"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/72.dc778e17.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/72.dc778e17.js new file mode 100644 index 0000000..63c6752 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/72.dc778e17.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{403:function(e,t,r){"use strict";r.r(t);var a=r(6),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-interactionitem"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-interactionitem"}},[e._v("#")]),e._v(" Interface: InteractionItem")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"datasetindex"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[e._v("#")]),e._v(" datasetIndex")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("datasetIndex")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L710",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:710"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"element"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#element"}},[e._v("#")]),e._v(" element")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("element")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#element"}},[r("code",[e._v("Element")])]),e._v("<"),r("code",[e._v("AnyObject")]),e._v(", "),r("code",[e._v("AnyObject")]),e._v(">")],1),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L709",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:709"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"index"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[e._v("#")]),e._v(" index")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("index")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L711",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:711"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/73.d88fcb57.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/73.d88fcb57.js new file mode 100644 index 0000000..0b78511 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/73.d88fcb57.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{404:function(t,e,n){"use strict";n.r(e);var r=n(6),a=Object(r.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"interface-interactionmodemap"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#interface-interactionmodemap"}},[t._v("#")]),t._v(" Interface: InteractionModeMap")]),t._v(" "),n("h2",{attrs:{id:"properties"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),n("h3",{attrs:{id:"dataset"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#dataset"}},[t._v("#")]),t._v(" dataset")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("dataset")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\nIf the options.intersect is false, we find the nearest item and return the items in that dataset")]),t._v(" "),n("h4",{attrs:{id:"defined-in"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L732",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:732"),n("OutboundLink")],1)]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"index"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("index")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\nIf the options.intersect mode is false, we find the nearest item and return the items at the same index as that item")]),t._v(" "),n("h4",{attrs:{id:"defined-in-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L726",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:726"),n("OutboundLink")],1)]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"nearest"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#nearest"}},[t._v("#")]),t._v(" nearest")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("nearest")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("nearest mode returns the element closest to the point")]),t._v(" "),n("h4",{attrs:{id:"defined-in-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L741",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:741"),n("OutboundLink")],1)]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"point"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#point"}},[t._v("#")]),t._v(" point")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("point")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("Point mode returns all elements that hit test based on the event position\nof the event")]),t._v(" "),n("h4",{attrs:{id:"defined-in-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L737",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:737"),n("OutboundLink")],1)]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"x"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("x")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("x mode returns the elements that hit-test at the current x coordinate")]),t._v(" "),n("h4",{attrs:{id:"defined-in-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L745",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:745"),n("OutboundLink")],1)]),t._v(" "),n("hr"),t._v(" "),n("h3",{attrs:{id:"y"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),n("p",[t._v("• "),n("strong",[t._v("y")]),t._v(": "),n("RouterLink",{attrs:{to:"/api/#interactionmodefunction"}},[n("code",[t._v("InteractionModeFunction")])])],1),t._v(" "),n("p",[t._v("y mode returns the elements that hit-test at the current y coordinate")]),t._v(" "),n("h4",{attrs:{id:"defined-in-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),n("p",[n("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L749",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:749"),n("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/74.bba2165e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/74.bba2165e.js new file mode 100644 index 0000000..b0d1845 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/74.bba2165e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{405:function(e,t,r){"use strict";r.r(t);var a=r(6),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-interactionoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-interactionoptions"}},[e._v("#")]),e._v(" Interface: InteractionOptions")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"axis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#axis"}},[e._v("#")]),e._v(" axis")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("axis")]),e._v(": "),r("code",[e._v("string")])]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L703",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:703"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"includeinvisible"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#includeinvisible"}},[e._v("#")]),e._v(" includeInvisible")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("includeInvisible")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L705",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:705"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"intersect"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#intersect"}},[e._v("#")]),e._v(" intersect")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("intersect")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L704",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:704"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/75.15562a81.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/75.15562a81.js new file mode 100644 index 0000000..d2fd2ef --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/75.15562a81.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{406:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-layoutitem"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-layoutitem"}},[t._v("#")]),t._v(" Interface: LayoutItem")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("LayoutItem")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[a("code",[t._v("LegendElement")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"bottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Bottom edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("if true, and the item is horizontal, then push vertical boxes down")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:17"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Height of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"left"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("left")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Left edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L29",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:29"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("The position of the item in the chart layout. Possible values are")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"right"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("right")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Right edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L37",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:37"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"top"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("top")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Top edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the item. Higher weights are further away from the chart area")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Width of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the layout process starts")]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L46",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:46"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Draws the element")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L50",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:50"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpadding"}},[t._v("#")]),t._v(" getPadding")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getPadding")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Returns an object with padding on the edges")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L54",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:54"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ishorizontal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ishorizontal"}},[t._v("#")]),t._v(" isHorizontal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isHorizontal")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("returns true if the layout item is horizontal (ie. top or bottom)")]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("width")]),t._v(", "),a("code",[t._v("height")]),t._v(", "),a("code",[t._v("margins?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Takes two parameters: width and height.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("margins?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L64",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:64"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/76.21f5a94e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/76.21f5a94e.js new file mode 100644 index 0000000..c2d9e85 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/76.21f5a94e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{407:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-legendelement-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-legendelement-ttype"}},[t._v("#")]),t._v(" Interface: LegendElement")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendOptions.html"}},[a("code",[t._v("LegendOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("LegendElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bottom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bottom"}},[t._v("#")]),t._v(" bottom")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("bottom")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Bottom edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#bottom"}},[t._v("bottom")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>, "),a("code",[t._v("unknown")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2253",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2253"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ctx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ctx"}},[t._v("#")]),t._v(" ctx")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ctx")]),t._v(": "),a("code",[t._v("CanvasRenderingContext2D")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2254",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2254"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("if true, and the item is horizontal, then push vertical boxes down")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#fullsize"}},[t._v("fullSize")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:17"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"height"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#height"}},[t._v("#")]),t._v(" height")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("height")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Height of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#height"}},[t._v("height")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L25",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:25"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"left"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#left"}},[t._v("#")]),t._v(" left")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("left")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Left edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#left"}},[t._v("left")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L29",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:29"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"legenditems"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legenditems"}},[t._v("#")]),t._v(" legendItems")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("legendItems")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2255",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2255"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("options")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendOptions.html"}},[a("code",[t._v("LegendOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"overrides"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2256",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2256"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("The position of the item in the chart layout. Possible values are")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#position"}},[t._v("position")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L9",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:9"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"right"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#right"}},[t._v("#")]),t._v(" right")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("right")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Right edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#right"}},[t._v("right")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L37",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:37"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"top"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#top"}},[t._v("#")]),t._v(" top")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("top")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Top edge of the item. Set by layout system and cannot be used in update")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#top"}},[t._v("top")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L33",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:33"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"weight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("weight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("The weight used to sort the item. Higher weights are further away from the chart area")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#weight"}},[t._v("weight")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L13",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:13"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"width"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#width"}},[t._v("#")]),t._v(" width")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("width")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Width of item. Must be valid after update()")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#width"}},[t._v("width")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L21",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:21"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the layout process starts")]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#beforelayout"}},[t._v("beforeLayout")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L46",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:46"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("chartArea")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Draws the element")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L50",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:50"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getpadding"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getpadding"}},[t._v("#")]),t._v(" getPadding")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getPadding")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("p",[t._v("Returns an object with padding on the edges")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#getpadding"}},[t._v("getPadding")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L54",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:54"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("code",[t._v("string")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ishorizontal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ishorizontal"}},[t._v("#")]),t._v(" isHorizontal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("isHorizontal")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("returns true if the layout item is horizontal (ie. top or bottom)")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#ishorizontal"}},[t._v("isHorizontal")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("width")]),t._v(", "),a("code",[t._v("height")]),t._v(", "),a("code",[t._v("margins?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Takes two parameters: width and height.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("margins?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html#update"}},[t._v("update")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L64",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:64"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/77.0725268e.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/77.0725268e.js new file mode 100644 index 0000000..ad6e5de --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/77.0725268e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{408:function(e,t,r){"use strict";r.r(t);var a=r(6),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"interface-legenditem"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-legenditem"}},[e._v("#")]),e._v(" Interface: LegendItem")]),e._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),r("h3",{attrs:{id:"borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[e._v("#")]),e._v(" borderRadius")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("borderRadius")]),e._v(": "),r("code",[e._v("number")]),e._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[r("code",[e._v("BorderRadius")])])],1),e._v(" "),r("p",[e._v("Border radius of the legend box")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("since")])]),e._v(" 3.1.0")]),e._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2174",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2174"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"datasetindex"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#datasetindex"}},[e._v("#")]),e._v(" datasetIndex")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("datasetIndex")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Index of the associated dataset")]),e._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2179",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2179"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"fillstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fillstyle"}},[e._v("#")]),e._v(" fillStyle")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("fillStyle")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[e._v("Color")])])],1),e._v(" "),r("p",[e._v("Fill style of the legend box")]),e._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2189",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2189"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"fontcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fontcolor"}},[e._v("#")]),e._v(" fontColor")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("fontColor")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[e._v("Color")])])],1),e._v(" "),r("p",[e._v("Font color for the text\nDefaults to LegendOptions.labels.color")]),e._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2195",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2195"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[e._v("#")]),e._v(" hidden")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("hidden")]),e._v(": "),r("code",[e._v("boolean")])]),e._v(" "),r("p",[e._v("If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect")]),e._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2200",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2200"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"index"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[e._v("#")]),e._v(" index")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("index")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Index the associated label in the labels array")]),e._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2184",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2184"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"linecap"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linecap"}},[e._v("#")]),e._v(" lineCap")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("lineCap")]),e._v(": "),r("code",[e._v("CanvasLineCap")])]),e._v(" "),r("p",[e._v("For box border.")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("see")])]),e._v(" https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap")]),e._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2206",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2206"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"linedash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linedash"}},[e._v("#")]),e._v(" lineDash")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("lineDash")]),e._v(": "),r("code",[e._v("number")]),e._v("[]")]),e._v(" "),r("p",[e._v("For box border.")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("see")])]),e._v(" https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash")]),e._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2212",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2212"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"linedashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linedashoffset"}},[e._v("#")]),e._v(" lineDashOffset")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("lineDashOffset")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("For box border.")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("see")])]),e._v(" https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset")]),e._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2218",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2218"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"linejoin"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linejoin"}},[e._v("#")]),e._v(" lineJoin")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("lineJoin")]),e._v(": "),r("code",[e._v("CanvasLineJoin")])]),e._v(" "),r("p",[e._v("For box border.")]),e._v(" "),r("p",[r("strong",[r("code",[e._v("see")])]),e._v(" https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin")]),e._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2224",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2224"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"linewidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#linewidth"}},[e._v("#")]),e._v(" lineWidth")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("lineWidth")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Width of box border")]),e._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2229",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2229"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[e._v("#")]),e._v(" pointStyle")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("pointStyle")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[e._v("PointStyle")])])],1),e._v(" "),r("p",[e._v("Point style of the legend box (only used if usePointStyle is true)")]),e._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2239",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2239"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[e._v("#")]),e._v(" rotation")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("rotation")]),e._v(": "),r("code",[e._v("number")])]),e._v(" "),r("p",[e._v("Rotation of the point in degrees (only used if usePointStyle is true)")]),e._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2244",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2244"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"strokestyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#strokestyle"}},[e._v("#")]),e._v(" strokeStyle")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("strokeStyle")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[e._v("Color")])])],1),e._v(" "),r("p",[e._v("Stroke style of the legend box")]),e._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2234",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2234"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"text"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#text"}},[e._v("#")]),e._v(" text")]),e._v(" "),r("p",[e._v("• "),r("strong",[e._v("text")]),e._v(": "),r("code",[e._v("string")])]),e._v(" "),r("p",[e._v("Label that will be displayed")]),e._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2168",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2168"),r("OutboundLink")],1)]),e._v(" "),r("hr"),e._v(" "),r("h3",{attrs:{id:"textalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#textalign"}},[e._v("#")]),e._v(" textAlign")]),e._v(" "),r("p",[e._v("• "),r("code",[e._v("Optional")]),e._v(" "),r("strong",[e._v("textAlign")]),e._v(": "),r("RouterLink",{attrs:{to:"/api/#textalign"}},[r("code",[e._v("TextAlign")])])],1),e._v(" "),r("p",[e._v("Text alignment")]),e._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2249",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:2249"),r("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/78.d6f610d1.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/78.d6f610d1.js new file mode 100644 index 0000000..d52a87c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/78.d6f610d1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{409:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-legendoptions-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-legendoptions-ttype"}},[t._v("#")]),t._v(" Interface: LegendOptions")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"align"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#align"}},[t._v("#")]),t._v(" align")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("align")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#align"}},[a("code",[t._v("Align")])])],1),t._v(" "),a("p",[t._v("Alignment of the legend.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'center'")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2274"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"display"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#display"}},[t._v("#")]),t._v(" display")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Is the legend shown?")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2264",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2264"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"fullsize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#fullsize"}},[t._v("#")]),t._v(" fullSize")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("fullSize")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" true")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2287",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2287"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"labels"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#labels"}},[t._v("#")]),t._v(" labels")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("labels")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boxHeight")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Height of the coloured box. "),a("strong",[a("code",[t._v("default")])]),t._v(" fontSize")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boxPadding")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Padding between the color box and the text "),a("strong",[a("code",[t._v("default")])]),t._v(" 1")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boxWidth")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Width of colored box. "),a("strong",[a("code",[t._v("default")])]),t._v(" 40")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Color of label "),a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableChartContext.html"}},[a("code",[t._v("ScriptableChartContext")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Font of label "),a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.font")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("padding")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Padding between rows of colored boxes. "),a("strong",[a("code",[t._v("default")])]),t._v(" 10")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("pointStyle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#pointstyle"}},[a("code",[t._v("PointStyle")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Override point style for the legend. Only applies if usePointStyle is true")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("textAlign?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#textalign"}},[a("code",[t._v("TextAlign")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Text alignment")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("usePointStyle")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Label style will match corresponding point style (size is based on the minimum value between boxWidth and font.size). "),a("strong",[a("code",[t._v("default")])]),t._v(" false")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("filter")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("item")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])]),t._v(", "),a("code",[t._v("data")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[a("code",[t._v("ChartData")])]),t._v(") => "),a("code",[t._v("boolean")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("generateLabels")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(") => "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])]),t._v("[]")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sort")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("a")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])]),t._v(", "),a("code",[t._v("b")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])]),t._v(", "),a("code",[t._v("data")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[a("code",[t._v("ChartData")])]),t._v(") => "),a("code",[t._v("number")])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2306",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2306"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxheight"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxheight"}},[t._v("#")]),t._v(" maxHeight")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxHeight")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Maximum height of the legend, in pixels")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2278",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2278"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"maxwidth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maxwidth"}},[t._v("#")]),t._v(" maxWidth")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("maxWidth")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Maximum width of the legend, in pixels")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2282",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2282"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"position"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#position"}},[t._v("#")]),t._v(" position")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])])],1),t._v(" "),a("p",[t._v("Position of the legend.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 'top'")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2269",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2269"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reverse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reverse"}},[t._v("#")]),t._v(" reverse")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("reverse")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Legend will show datasets in reverse order.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" false")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2292",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2292"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"rtl"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rtl"}},[t._v("#")]),t._v(" rtl")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("rtl")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("true for rendering the legends from right to left.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2371",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2371"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"textdirection"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#textdirection"}},[t._v("#")]),t._v(" textDirection")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("textDirection")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("p",[t._v("This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the legend, regardless of the css specified on the canvas")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" canvas' default")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2376",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2376"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("title")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("color")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Color of title "),a("strong",[a("code",[t._v("see")])]),t._v(" Defaults.color")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("display")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Is the legend title displayed. "),a("strong",[a("code",[t._v("default")])]),t._v(" false")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("font")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableChartContext.html"}},[a("code",[t._v("ScriptableChartContext")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("see Fonts")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("padding?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("position")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"start"')]),t._v(" | "),a("code",[t._v('"end"')]),t._v(" | "),a("code",[t._v('"center"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("text")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The string title.")])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2378",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2378"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"onclick"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onclick"}},[t._v("#")]),t._v(" onClick")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onClick")]),t._v("("),a("code",[t._v("e")]),t._v(", "),a("code",[t._v("legendItem")]),t._v(", "),a("code",[t._v("legend")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("A callback that is called when a click event is Registroed on a label item.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("e")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legendItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legend")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[a("code",[t._v("LegendElement")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2296",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2296"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onhover"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onhover"}},[t._v("#")]),t._v(" onHover")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onHover")]),t._v("("),a("code",[t._v("e")]),t._v(", "),a("code",[t._v("legendItem")]),t._v(", "),a("code",[t._v("legend")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("A callback that is called when a 'mousemove' event is Registroed on top of a label item")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("e")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legendItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legend")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[a("code",[t._v("LegendElement")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2300",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2300"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"onleave"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#onleave"}},[t._v("#")]),t._v(" onLeave")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("onLeave")]),t._v("("),a("code",[t._v("e")]),t._v(", "),a("code",[t._v("legendItem")]),t._v(", "),a("code",[t._v("legend")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("e")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legendItem")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[a("code",[t._v("LegendItem")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("legend")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[a("code",[t._v("LegendElement")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2304",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2304"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/79.60d67faa.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/79.60d67faa.js new file mode 100644 index 0000000..1cb5018 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/79.60d67faa.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{410:function(e,t,a){"use strict";a.r(t);var n=a(6),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"interface-linecontrollerchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-linecontrollerchartoptions"}},[e._v("#")]),e._v(" Interface: LineControllerChartOptions")]),e._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),a("h3",{attrs:{id:"showline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#showline"}},[e._v("#")]),e._v(" showLine")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("showLine")]),e._v(": "),a("code",[e._v("boolean")])]),e._v(" "),a("p",[e._v("If false, the lines between points are not drawn.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" true")]),e._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L216",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:216"),a("OutboundLink")],1)]),e._v(" "),a("hr"),e._v(" "),a("h3",{attrs:{id:"spangaps"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#spangaps"}},[e._v("#")]),e._v(" spanGaps")]),e._v(" "),a("p",[e._v("• "),a("strong",[e._v("spanGaps")]),e._v(": "),a("code",[e._v("number")]),e._v(" | "),a("code",[e._v("boolean")])]),e._v(" "),a("p",[e._v("If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.")]),e._v(" "),a("p",[a("strong",[a("code",[e._v("default")])]),e._v(" false")]),e._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[e._v("#")]),e._v(" Defined in")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L211",target:"_blank",rel:"noopener noreferrer"}},[e._v("index.esm.d.ts:211"),a("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/8.8928eb8b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/8.8928eb8b.js new file mode 100644 index 0000000..60f6fad --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/8.8928eb8b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{337:function(t,e,s){"use strict";s.r(e);const o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."];var n={methods:{getMsg:()=>o[Math.floor(Math.random()*o.length)]}},h=s(6),i=Object(h.a)(n,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/80.99d71ee0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/80.99d71ee0.js new file mode 100644 index 0000000..b0087f1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/80.99d71ee0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{411:function(t,e,r){"use strict";r.r(e);var a=r(6),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-linecontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-linecontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: LineControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[r("code",[t._v("ControllerDatasetOptions")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedOptions.html"}},[r("code",[t._v("PointPrefixedOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedHoverOptions.html"}},[r("code",[t._v("PointPrefixedHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableoptions"}},[r("code",[t._v("ScriptableOptions")])]),t._v("<"),r("code",[t._v("Omit")]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[r("code",[t._v("LineOptions")])]),t._v(", keyof "),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[r("code",[t._v("CommonElementOptions")])]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[r("code",[t._v("CommonElementOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableoptions"}},[r("code",[t._v("ScriptableOptions")])]),t._v("<"),r("code",[t._v("Omit")]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/LineHoverOptions.html"}},[r("code",[t._v("LineHoverOptions")])]),t._v(", keyof "),r("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r("code",[t._v("CommonHoverOptions")])]),t._v(">, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r("code",[t._v("CommonHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#animationoptions"}},[r("code",[t._v("AnimationOptions")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">")],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("LineControllerDatasetOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v('"line"')]),t._v("> & { "),r("code",[t._v("onComplete?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" ; "),r("code",[t._v("onProgress?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" }")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animation")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animations")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.backgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercapstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercapstyle"}},[t._v("#")]),t._v(" borderCapStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line cap style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'butt'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.borderCapStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1779",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1779"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdash"}},[t._v("#")]),t._v(" borderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line dash. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" []")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.borderDash")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1784",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1784"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdashoffset"}},[t._v("#")]),t._v(" borderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line dash offset. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0.0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.borderDashOffset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1789",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1789"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[t._v("#")]),t._v(" borderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line join style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'miter'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.borderJoinStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1794",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1794"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"capbezierpoints"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#capbezierpoints"}},[t._v("#")]),t._v(" capBezierPoints")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("capBezierPoints")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("true to keep Bézier control inside the chart, false for no restriction.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.capBezierPoints")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1799",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1799"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"cubicinterpolationmode"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cubicinterpolationmode"}},[t._v("#")]),t._v(" cubicInterpolationMode")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("cubicInterpolationMode")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v('"default"')]),t._v(" | "),r("code",[t._v('"monotone"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Interpolation mode to apply.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'default'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.cubicInterpolationMode")]),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1804",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1804"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"fill"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fill"}},[t._v("#")]),t._v(" fill")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("fill")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#filltarget"}},[r("code",[t._v("FillTarget")])]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ComplexFillTarget.html"}},[r("code",[t._v("ComplexFillTarget")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.fill")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1818",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1818"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercapstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercapstyle"}},[t._v("#")]),t._v(" hoverBorderCapStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.hoverBorderCapStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1836",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1836"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdash"}},[t._v("#")]),t._v(" hoverBorderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.hoverBorderDash")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1837",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1837"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdashoffset"}},[t._v("#")]),t._v(" hoverBorderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.hoverBorderDashOffset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1838",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1838"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderjoinstyle"}},[t._v("#")]),t._v(" hoverBorderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.hoverBorderJoinStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1839",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1839"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbackgroundcolor"}},[t._v("#")]),t._v(" pointBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The fill color for points.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1919",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1919"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbordercolor"}},[t._v("#")]),t._v(" pointBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The border color for points.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1923",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1923"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointborderwidth"}},[t._v("#")]),t._v(" pointBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The width of the point border in pixels.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1927",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1927"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhitradius"}},[t._v("#")]),t._v(" pointHitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHitRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The pixel size of the non-displayed point that reacts to mouse events.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-30"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHitRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-30"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1931",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1931"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbackgroundcolor"}},[t._v("#")]),t._v(" pointHoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point background color when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-31"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-31"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1950",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1950"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbordercolor"}},[t._v("#")]),t._v(" pointHoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point border color when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-32"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-32"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1954",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1954"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverborderwidth"}},[t._v("#")]),t._v(" pointHoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Border width of point when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-33"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-33"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1958",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1958"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverradius"}},[t._v("#")]),t._v(" pointHoverRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The radius of the point when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-34"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-34"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1962",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1962"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointradius"}},[t._v("#")]),t._v(" pointRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The radius of the point shape. If set to 0, the point is not rendered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-35"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-35"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1935",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1935"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointrotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointrotation"}},[t._v("#")]),t._v(" pointRotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRotation")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The rotation of the point in degrees.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-36"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointRotation")]),t._v(" "),r("h4",{attrs:{id:"defined-in-36"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1939",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1939"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Style of the point.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-37"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-37"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1943",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1943"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"segment"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#segment"}},[t._v("#")]),t._v(" segment")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("segment")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<{ "),r("code",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> }, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-38"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.segment")]),t._v(" "),r("h4",{attrs:{id:"defined-in-38"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1824",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1824"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"showline"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#showline"}},[t._v("#")]),t._v(" showLine")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("showLine")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-39"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L203",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:203"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spangaps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spangaps"}},[t._v("#")]),t._v(" spanGaps")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spanGaps")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"overrides"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),r("p",[t._v("ScriptableOptions.spanGaps")]),t._v(" "),r("h4",{attrs:{id:"defined-in-40"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L201",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:201"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-39"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-39"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-41"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stepped"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stepped"}},[t._v("#")]),t._v(" stepped")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stepped")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(" | "),r("code",[t._v('"middle"')]),t._v(" | "),r("code",[t._v('"before"')]),t._v(" | "),r("code",[t._v('"after"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("true to show the line as a stepped line (tension will be ignored).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-40"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-40"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.stepped")]),t._v(" "),r("h4",{attrs:{id:"defined-in-42"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1814",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1814"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tension"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tension"}},[t._v("#")]),t._v(" tension")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tension")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Bézier curve tension (0 for no Bézier curves).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-41"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-41"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableOptions.tension")]),t._v(" "),r("h4",{attrs:{id:"defined-in-43"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1809",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1809"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"transitions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("transitions")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[r("code",[t._v("TransitionsSpec")])]),t._v("<"),r("code",[t._v('"line"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-42"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-42"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.transitions")]),t._v(" "),r("h4",{attrs:{id:"defined-in-44"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"xaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xaxisid"}},[t._v("#")]),t._v(" xAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("xAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the x axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-45"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L191",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:191"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"yaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#yaxisid"}},[t._v("#")]),t._v(" yAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("yAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the y axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-46"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L195",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:195"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/81.f1500469.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/81.f1500469.js new file mode 100644 index 0000000..bb79350 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/81.f1500469.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{412:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-lineelement-t-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-lineelement-t-o"}},[t._v("#")]),t._v(" Interface: LineElement")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/LineProps.html"}},[a("code",[t._v("LineProps")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/LineProps.html"}},[a("code",[t._v("LineProps")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[a("code",[t._v("LineOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[a("code",[t._v("LineOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[a("code",[t._v("VisualElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("LineElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"points"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#points"}},[t._v("#")]),t._v(" points")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("points")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1846",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1846"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"segments"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#segments"}},[t._v("#")]),t._v(" segments")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("segments")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Segment.html"}},[a("code",[t._v("Segment")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1847",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1847"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("area?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("area?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1685",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1685"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"first"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#first"}},[t._v("#")]),t._v(" first")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("first")]),t._v("(): "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1848",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1848"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcenterpoint"}},[t._v("#")]),t._v(" getCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getCenterPoint")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getcenterpoint"}},[t._v("getCenterPoint")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1689",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1689"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("code",[t._v("T")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getrange"}},[t._v("#")]),t._v(" getRange")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getRange")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getrange"}},[t._v("getRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1690",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1690"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inrange"}},[t._v("#")]),t._v(" inRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inrange"}},[t._v("inRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1686",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1686"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inxrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inxrange"}},[t._v("#")]),t._v(" inXRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inXRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inxrange"}},[t._v("inXRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1687"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inyrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inyrange"}},[t._v("#")]),t._v(" inYRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inYRange")]),t._v("("),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inyrange"}},[t._v("inYRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1688"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interpolate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interpolate"}},[t._v("#")]),t._v(" interpolate")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("interpolate")]),t._v("("),a("code",[t._v("point")]),t._v(", "),a("code",[t._v("property")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("point")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("property")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1850",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1850"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"last"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#last"}},[t._v("#")]),t._v(" last")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("last")]),t._v("(): "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1849",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1849"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"path"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#path"}},[t._v("#")]),t._v(" path")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("path")]),t._v("("),a("code",[t._v("ctx")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1852",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1852"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"pathsegment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pathsegment"}},[t._v("#")]),t._v(" pathSegment")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("pathSegment")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("segment")]),t._v(", "),a("code",[t._v("params")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("segment")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Segment.html"}},[a("code",[t._v("Segment")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("params")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1851",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1851"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatecontrolpoints"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatecontrolpoints"}},[t._v("#")]),t._v(" updateControlPoints")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateControlPoints")]),t._v("("),a("code",[t._v("chartArea")]),t._v(", "),a("code",[t._v("indexAxis?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("indexAxis?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1845",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1845"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/82.69f363a6.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/82.69f363a6.js new file mode 100644 index 0000000..e22f82c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/82.69f363a6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{413:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-linehoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-linehoveroptions"}},[r._v("#")]),r._v(" Interface: LineHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[r._v("#")]),r._v(" Hierarchy")]),r._v(" "),t("ul",[t("li",[t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[t("code",[r._v("CommonHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("strong",[t("code",[r._v("LineHoverOptions")])])])])]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"hoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[r._v("#")]),r._v(" hoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbackgroundcolor"}},[r._v("hoverBackgroundColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1702"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercapstyle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercapstyle"}},[r._v("#")]),r._v(" hoverBorderCapStyle")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderCapStyle")]),r._v(": "),t("code",[r._v("CanvasLineCap")])]),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1836",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1836"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[r._v("#")]),r._v(" hoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbordercolor"}},[r._v("hoverBorderColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1701"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderdash"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdash"}},[r._v("#")]),r._v(" hoverBorderDash")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderDash")]),r._v(": "),t("code",[r._v("number")]),r._v("[]")]),r._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1837",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1837"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderdashoffset"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdashoffset"}},[r._v("#")]),r._v(" hoverBorderDashOffset")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderDashOffset")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"defined-in-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1838",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1838"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderjoinstyle"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderjoinstyle"}},[r._v("#")]),r._v(" hoverBorderJoinStyle")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderJoinStyle")]),r._v(": "),t("code",[r._v("CanvasLineJoin")])]),r._v(" "),t("h4",{attrs:{id:"defined-in-6"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1839",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1839"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[r._v("#")]),r._v(" hoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"inherited-from-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverborderwidth"}},[r._v("hoverBorderWidth")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-7"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1700"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/83.f1fbcb2c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/83.f1fbcb2c.js new file mode 100644 index 0000000..22d8262 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/83.f1fbcb2c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{414:function(t,e,r){"use strict";r.r(e);var a=r(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-lineoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-lineoptions"}},[t._v("#")]),t._v(" Interface: LineOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[r("code",[t._v("CommonElementOptions")])])],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("LineOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#backgroundcolor"}},[t._v("backgroundColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercapstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercapstyle"}},[t._v("#")]),t._v(" borderCapStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderCapStyle")]),t._v(": "),r("code",[t._v("CanvasLineCap")])]),t._v(" "),r("p",[t._v("Line cap style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'butt'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1779",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1779"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#bordercolor"}},[t._v("borderColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdash"}},[t._v("#")]),t._v(" borderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDash")]),t._v(": "),r("code",[t._v("number")]),t._v("[]")]),t._v(" "),r("p",[t._v("Line dash. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" []")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1784",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1784"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdashoffset"}},[t._v("#")]),t._v(" borderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDashOffset")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Line dash offset. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0.0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1789",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1789"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[t._v("#")]),t._v(" borderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderJoinStyle")]),t._v(": "),r("code",[t._v("CanvasLineJoin")])]),t._v(" "),r("p",[t._v("Line join style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'miter'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1794",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1794"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#borderwidth"}},[t._v("borderWidth")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"capbezierpoints"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#capbezierpoints"}},[t._v("#")]),t._v(" capBezierPoints")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("capBezierPoints")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("true to keep Bézier control inside the chart, false for no restriction.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1799",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1799"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"cubicinterpolationmode"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cubicinterpolationmode"}},[t._v("#")]),t._v(" cubicInterpolationMode")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("cubicInterpolationMode")]),t._v(": "),r("code",[t._v('"default"')]),t._v(" | "),r("code",[t._v('"monotone"')])]),t._v(" "),r("p",[t._v("Interpolation mode to apply.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'default'")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1804",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1804"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"fill"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fill"}},[t._v("#")]),t._v(" fill")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("fill")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#filltarget"}},[r("code",[t._v("FillTarget")])]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ComplexFillTarget.html"}},[r("code",[t._v("ComplexFillTarget")])])],1),t._v(" "),r("p",[t._v("Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1818",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1818"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"segment"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#segment"}},[t._v("#")]),t._v(" segment")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("segment")]),t._v(": "),r("code",[t._v("Object")])]),t._v(" "),r("h4",{attrs:{id:"type-declaration"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),r("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),r("tbody",[r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("backgroundColor")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderCapStyle")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderColor")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderDash")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderDashOffset")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderJoinStyle")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)]),t._v(" "),r("tr",[r("td",{staticStyle:{"text-align":"left"}},[r("code",[t._v("borderWidth")])]),t._v(" "),r("td",{staticStyle:{"text-align":"left"}},[r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v(">")],1)])])]),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1824",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1824"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spangaps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spangaps"}},[t._v("#")]),t._v(" spanGaps")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spanGaps")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1822",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1822"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stepped"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stepped"}},[t._v("#")]),t._v(" stepped")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stepped")]),t._v(": "),r("code",[t._v("boolean")]),t._v(" | "),r("code",[t._v('"middle"')]),t._v(" | "),r("code",[t._v('"before"')]),t._v(" | "),r("code",[t._v('"after"')])]),t._v(" "),r("p",[t._v("true to show the line as a stepped line (tension will be ignored).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1814",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1814"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tension"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tension"}},[t._v("#")]),t._v(" tension")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tension")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Bézier curve tension (0 for no Bézier curves).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1809",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1809"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/84.b76e3156.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/84.b76e3156.js new file mode 100644 index 0000000..c0790f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/84.b76e3156.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{415:function(t,e,r){"use strict";r.r(e);var s=r(6),a=Object(s.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-lineprops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-lineprops"}},[t._v("#")]),t._v(" Interface: LineProps")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"points"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#points"}},[t._v("#")]),t._v(" points")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("points")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[r("code",[t._v("Point")])]),t._v("[]")],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1771",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1771"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/85.efc4bd54.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/85.efc4bd54.js new file mode 100644 index 0000000..a5e200b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/85.efc4bd54.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{416:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-parsingoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-parsingoptions"}},[t._v("#")]),t._v(" Interface: ParsingOptions")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("ParsingOptions")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[a("code",[t._v("ControllerDatasetOptions")])])],1),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"normalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("normalized")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("parsing")]),t._v(": "),a("code",[t._v("false")]),t._v(" | { [key: string]: "),a("code",[t._v("string")]),t._v("; }")]),t._v(" "),a("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/86.85011b24.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/86.85011b24.js new file mode 100644 index 0000000..342f3d2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/86.85011b24.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{417:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-plugin-ttype-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-plugin-ttype-o"}},[t._v("#")]),t._v(" Interface: Plugin")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html"}},[a("code",[t._v("ExtendedPlugin")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("Plugin")])])]),t._v(" "),a("p",[t._v("↳↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/Tooltip.html"}},[a("code",[t._v("Tooltip")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"id"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#id"}},[t._v("#")]),t._v(" id")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("id")]),t._v(": "),a("code",[t._v("string")])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L808",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:808"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"afterbuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterbuildticks"}},[t._v("#")]),t._v(" afterBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterBuildTicks")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after scale has build its ticks. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L967",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:967"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatalimits"}},[t._v("#")]),t._v(" afterDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDataLimits")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after scale data limits are calculated. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L951",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:951"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetdraw"}},[t._v("#")]),t._v(" afterDatasetDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets at the given "),a("code",[t._v("args.index")]),t._v(" have been drawn\n(datasets are drawn in the reverse order). Note that this hook will not be called\nif the datasets drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1049",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1049"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetupdate"}},[t._v("#")]),t._v(" afterDatasetUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets at the given "),a("code",[t._v("args.index")]),t._v(" has been updated. Note\nthat this hook will not be called if the datasets update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L926",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:926"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetsdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetsdraw"}},[t._v("#")]),t._v(" afterDatasetsDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetsDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v(", "),a("code",[t._v("cancelable")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets have been drawn. Note that this hook\nwill not be called if the datasets drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1026",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1026"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdatasetsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdatasetsupdate"}},[t._v("#")]),t._v(" afterDatasetsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDatasetsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" datasets have been updated. Note that this hook\nwill not be called if the datasets update has been previously cancelled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 2.1.5")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L903",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:903"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdestroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdestroy"}},[t._v("#")]),t._v(" afterDestroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDestroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after the chart has been destroyed.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1102",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1102"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterdraw"}},[t._v("#")]),t._v(" afterDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been drawn. Note that this hook will not be called\nif the drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1009",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1009"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterevent"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterevent"}},[t._v("#")]),t._v(" afterEvent")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterEvent")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("event")]),t._v(" has been consumed. Note that this hook\nwill not be called if the "),a("code",[t._v("event")]),t._v(" has been previously discarded.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.changed?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event object.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.inChartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event position is inside chartArea")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.replay")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("True if this event is replayed from "),a("code",[t._v("Chart.update")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1072",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1072"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterinit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterinit"}},[t._v("#")]),t._v(" afterInit")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterInit")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after "),a("code",[t._v("chart")]),t._v(" has been initialized and before the first update.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L847",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:847"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterlayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterlayout"}},[t._v("#")]),t._v(" afterLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterLayout")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been laid out. Note that this hook will not\nbe called if the layout update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L975",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:975"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterrender"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterrender"}},[t._v("#")]),t._v(" afterRender")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterRender")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the "),a("code",[t._v("chart")]),t._v(" has been fully rendered (and animation completed). Note\nthat this hook will not be called if the rendering has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L992",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:992"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"aftertooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#aftertooltipdraw"}},[t._v("#")]),t._v(" afterTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after drawing the "),a("code",[t._v("tooltip")]),t._v(". Note that this hook will not\nbe called if the tooltip drawing has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html"}},[t._v("ExtendedPlugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html#aftertooltipdraw"}},[t._v("afterTooltipDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"afterupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#afterupdate"}},[t._v("#")]),t._v(" afterUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("afterUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after "),a("code",[t._v("chart")]),t._v(" has been updated and before rendering. Note that this\nhook will not be called if the chart update has been previously cancelled.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L866",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:866"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforebuildticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforebuildticks"}},[t._v("#")]),t._v(" beforeBuildTicks")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeBuildTicks")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before scale builds its ticks. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L959",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:959"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatalimits"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatalimits"}},[t._v("#")]),t._v(" beforeDataLimits")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDataLimits")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before scale data limits are calculated. This hook is called separately for each scale in the chart.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The scale.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L943",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:943"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetdraw"}},[t._v("#")]),t._v(" beforeDatasetDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("chart")]),t._v(" dataset at the given "),a("code",[t._v("args.index")]),t._v(" (datasets\nare drawn in the reverse order). If any plugin returns "),a("code",[t._v("false")]),t._v(", the datasets drawing\nis cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1038",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1038"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetupdate"}},[t._v("#")]),t._v(" beforeDatasetUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating the "),a("code",[t._v("chart")]),t._v(" dataset at the given "),a("code",[t._v("args.index")]),t._v(". If any plugin\nreturns "),a("code",[t._v("false")]),t._v(", the datasets update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset index.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The dataset metadata.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L915",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:915"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetsdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetsdraw"}},[t._v("#")]),t._v(" beforeDatasetsDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetsDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("chart")]),t._v(" datasets. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe datasets drawing is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart datasets drawing.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1018",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1018"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedatasetsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedatasetsupdate"}},[t._v("#")]),t._v(" beforeDatasetsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDatasetsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating the "),a("code",[t._v("chart")]),t._v(" datasets. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe datasets update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 2.1.5")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("false to cancel the datasets update.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L893",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:893"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedestroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedestroy"}},[t._v("#")]),t._v(" beforeDestroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDestroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called before the chart is being destroyed.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1087",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1087"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforedraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforedraw"}},[t._v("#")]),t._v(" beforeDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing "),a("code",[t._v("chart")]),t._v(" at every animation frame. If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe frame drawing is cancelled untilanother "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart drawing.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1001",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1001"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeelementsupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeelementsupdate"}},[t._v("#")]),t._v(" beforeElementsUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeElementsUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called during the update process, before any chart elements have been created.\nThis can be used for data decimation by changing the data array inside a dataset.")]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L874",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:874"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeevent"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeevent"}},[t._v("#")]),t._v(" beforeEvent")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeEvent")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before processing the specified "),a("code",[t._v("event")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe event will be discarded.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.event")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event object.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.inChartArea")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The event position is inside chartArea")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.replay")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("True if this event is replayed from "),a("code",[t._v("Chart.update")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1060",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1060"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeinit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeinit"}},[t._v("#")]),t._v(" beforeInit")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeInit")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before initializing "),a("code",[t._v("chart")]),t._v(".")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L840",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:840"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforelayout"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforelayout"}},[t._v("#")]),t._v(" beforeLayout")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeLayout")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before laying out "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe layout update is cancelled until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart layout.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L935",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:935"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforerender"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforerender"}},[t._v("#")]),t._v(" beforeRender")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeRender")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before rendering "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe rendering is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart rendering.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L984",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:984"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforetooltipdraw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforetooltipdraw"}},[t._v("#")]),t._v(" beforeTooltipDraw")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeTooltipDraw")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before drawing the "),a("code",[t._v("tooltip")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(",\nthe tooltip drawing is cancelled until another "),a("code",[t._v("render")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.tooltip")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The tooltip.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart tooltip drawing.")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html"}},[t._v("ExtendedPlugin")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html#beforetooltipdraw"}},[t._v("beforeTooltipDraw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2592"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"beforeupdate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#beforeupdate"}},[t._v("#")]),t._v(" beforeUpdate")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("beforeUpdate")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called before updating "),a("code",[t._v("chart")]),t._v(". If any plugin returns "),a("code",[t._v("false")]),t._v(", the update\nis cancelled (and thus subsequent render(s)) until another "),a("code",[t._v("update")]),t._v(" is triggered.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.cancelable")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("true")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The update mode")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("code",[t._v("false")]),t._v(" to cancel the chart update.")]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L857",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:857"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"destroy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#destroy"}},[t._v("#")]),t._v(" destroy")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("destroy")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after the chart has been destroyed.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("deprecated")])]),t._v(" since version 3.7.0 in favour of afterDestroy")]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1095",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1095"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"install"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[t._v("#")]),t._v(" install")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("install")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L817",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:817"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("reset")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called during chart reset")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" version 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L882",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:882"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resize"}},[t._v("#")]),t._v(" resize")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("resize")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called after the chart as been resized.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The new canvas display size (eq. canvas.style width & height).")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size.height")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args.size.width")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("-")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1080",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1080"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"start"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#start"}},[t._v("#")]),t._v(" start")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("start")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when a plugin is starting. This happens when chart is created or plugin is enabled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L825",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:825"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"stop"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stop"}},[t._v("#")]),t._v(" stop")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("stop")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[a("strong",[a("code",[t._v("desc")])]),t._v(" Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L833",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:833"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"uninstall"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uninstall"}},[t._v("#")]),t._v(" uninstall")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("uninstall")]),t._v("("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("args")]),t._v(", "),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false).")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("since")])]),t._v(" 3.0.0")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The chart instance.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("args")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("EmptyObject")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The call arguments.")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The plugin options.")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1110",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1110"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/87.6a88d571.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/87.6a88d571.js new file mode 100644 index 0000000..23e57cf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/87.6a88d571.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{418:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-pluginchartoptions-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-pluginchartoptions-ttype"}},[t._v("#")]),t._v(" Interface: PluginChartOptions")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[a("code",[t._v("PluginChartOptions")])])]),t._v(" "),a("p",[t._v("↳ "),a("RouterLink",{attrs:{to:"/api/interfaces/Defaults.html"}},[a("code",[t._v("Defaults")])])],1)])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"plugins"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plugins"}},[t._v("#")]),t._v(" plugins")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("plugins")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginOptionsByType.html"}},[a("code",[t._v("PluginOptionsByType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2845",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2845"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/88.0f45cfe0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/88.0f45cfe0.js new file mode 100644 index 0000000..701a91a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/88.0f45cfe0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{419:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-pluginoptionsbytype-ttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-pluginoptionsbytype-ttype"}},[t._v("#")]),t._v(" Interface: PluginOptionsByType")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decimation"}},[t._v("#")]),t._v(" decimation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("decimation")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#decimationoptions"}},[a("code",[t._v("DecimationOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2837",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2837"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"filler"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#filler"}},[t._v("#")]),t._v(" filler")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("filler")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/FillerOptions.html"}},[a("code",[t._v("FillerOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2838",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2838"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"legend"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend"}},[t._v("#")]),t._v(" legend")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("legend")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LegendOptions.html"}},[a("code",[t._v("LegendOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2839",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2839"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"subtitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#subtitle"}},[t._v("#")]),t._v(" subtitle")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("subtitle")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TitleOptions.html"}},[a("code",[t._v("TitleOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2840",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2840"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" title")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("title")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TitleOptions.html"}},[a("code",[t._v("TitleOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2841",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2841"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" tooltip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("tooltip")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipOptions.html"}},[a("code",[t._v("TooltipOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2842",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2842"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/89.e67ddb59.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/89.e67ddb59.js new file mode 100644 index 0000000..252a3a4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/89.e67ddb59.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{420:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-point"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-point"}},[t._v("#")]),t._v(" Interface: Point")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("x")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:11"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("y")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/geometric.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("geometric.d.ts:12"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/9.63ebb16b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/9.63ebb16b.js new file mode 100644 index 0000000..02d4864 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/9.63ebb16b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{341:function(t,e,a){"use strict";a.r(e);var r=a(6),i=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"chart-js-v3-9-1"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart-js-v3-9-1"}},[t._v("#")]),t._v(" Chart.js - v3.9.1")]),t._v(" "),a("h2",{attrs:{id:"enumerations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enumerations"}},[t._v("#")]),t._v(" Enumerations")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/enums/DecimationAlgorithm.html"}},[t._v("DecimationAlgorithm")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/enums/UpdateModeEnum.html"}},[t._v("UpdateModeEnum")])],1)]),t._v(" "),a("h2",{attrs:{id:"classes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#classes"}},[t._v("#")]),t._v(" Classes")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/classes/Animation.html"}},[t._v("Animation")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/Animations.html"}},[t._v("Animations")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/Animator.html"}},[t._v("Animator")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/BasePlatform.html"}},[t._v("BasePlatform")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/BasicPlatform.html"}},[t._v("BasicPlatform")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[t._v("Chart")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[t._v("DatasetController")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/DomPlatform.html"}},[t._v("DomPlatform")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[t._v("Scale")])],1)]),t._v(" "),a("h2",{attrs:{id:"interfaces"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interfaces"}},[t._v("#")]),t._v(" Interfaces")]),t._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveDataPoint.html"}},[t._v("ActiveDataPoint")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[t._v("ActiveElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[t._v("AnimationEvent")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ArcBorderRadius.html"}},[t._v("ArcBorderRadius")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ArcElement.html"}},[t._v("ArcElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ArcHoverOptions.html"}},[t._v("ArcHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[t._v("ArcOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ArcProps.html"}},[t._v("ArcProps")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerChartOptions.html"}},[t._v("BarControllerChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarControllerDatasetOptions.html"}},[t._v("BarControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarElement.html"}},[t._v("BarElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarHoverOptions.html"}},[t._v("BarHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[t._v("BarOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BarProps.html"}},[t._v("BarProps")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[t._v("BorderRadius")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleControllerDatasetOptions.html"}},[t._v("BubbleControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/BubbleDataPoint.html"}},[t._v("BubbleDataPoint")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[t._v("CartesianScaleOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleTypeRegistry.html"}},[t._v("CartesianScaleTypeRegistry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[t._v("ChartArea")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[t._v("ChartComponent")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfiguration.html"}},[t._v("ChartConfiguration")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartConfigurationCustomTypesPerDataset.html"}},[t._v("ChartConfigurationCustomTypesPerDataset")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartData.html"}},[t._v("ChartData")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartDataCustomTypesPerDataset.html"}},[t._v("ChartDataCustomTypesPerDataset")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartDatasetProperties.html"}},[t._v("ChartDatasetProperties")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartDatasetPropertiesCustomTypesPerDataset.html"}},[t._v("ChartDatasetPropertiesCustomTypesPerDataset")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[t._v("ChartEvent")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[t._v("ChartTypeRegistry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[t._v("CommonHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ComplexFillTarget.html"}},[t._v("ComplexFillTarget")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[t._v("CoreChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreInteractionOptions.html"}},[t._v("CoreInteractionOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[t._v("CoreScaleOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DatasetControllerChartComponent.html"}},[t._v("DatasetControllerChartComponent")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DateAdapter.html"}},[t._v("DateAdapter")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Defaults.html"}},[t._v("Defaults")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutAnimationOptions.html"}},[t._v("DoughnutAnimationOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutController.html"}},[t._v("DoughnutController")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerChartOptions.html"}},[t._v("DoughnutControllerChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutMetaExtensions.html"}},[t._v("DoughnutMetaExtensions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Element.html"}},[t._v("Element")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ElementOptionsByType.html"}},[t._v("ElementOptionsByType")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ExtendedPlugin.html"}},[t._v("ExtendedPlugin")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/FillerControllerDatasetOptions.html"}},[t._v("FillerControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/FillerOptions.html"}},[t._v("FillerOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[t._v("FontSpec")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/GridLineOptions.html"}},[t._v("GridLineOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[t._v("InteractionItem")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionModeMap.html"}},[t._v("InteractionModeMap")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionOptions.html"}},[t._v("InteractionOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[t._v("LayoutItem")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LegendElement.html"}},[t._v("LegendElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LegendItem.html"}},[t._v("LegendItem")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LegendOptions.html"}},[t._v("LegendOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[t._v("LineControllerChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[t._v("LineControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineElement.html"}},[t._v("LineElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineHoverOptions.html"}},[t._v("LineHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[t._v("LineOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/LineProps.html"}},[t._v("LineProps")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ParsingOptions.html"}},[t._v("ParsingOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[t._v("Plugin")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[t._v("PluginChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PluginOptionsByType.html"}},[t._v("PluginOptionsByType")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[t._v("Point")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointElement.html"}},[t._v("PointElement")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointHoverOptions.html"}},[t._v("PointHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[t._v("PointOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedHoverOptions.html"}},[t._v("PointPrefixedHoverOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedOptions.html"}},[t._v("PointPrefixedOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[t._v("PointProps")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaController.html"}},[t._v("PolarAreaController")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerChartOptions.html"}},[t._v("PolarAreaControllerChartOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/PolarAreaControllerDatasetOptions.html"}},[t._v("PolarAreaControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/RadarControllerDatasetOptions.html"}},[t._v("RadarControllerDatasetOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/RadialLinearScale.html"}},[t._v("RadialLinearScale")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/RadialScaleTypeRegistry.html"}},[t._v("RadialScaleTypeRegistry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Registry.html"}},[t._v("Registry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScaleTypeRegistry.html"}},[t._v("ScaleTypeRegistry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScatterDataPoint.html"}},[t._v("ScatterDataPoint")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableCartesianScaleContext.html"}},[t._v("ScriptableCartesianScaleContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableChartContext.html"}},[t._v("ScriptableChartContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[t._v("ScriptableContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[t._v("ScriptableLineSegmentContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[t._v("ScripTablascaleContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[t._v("ScripTablascalePointLabelContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableTooltipContext.html"}},[t._v("ScriptableTooltipContext")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Segment.html"}},[t._v("Segment")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Tick.html"}},[t._v("Tick")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TickOptions.html"}},[t._v("TickOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TimeScale.html"}},[t._v("TimeScale")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TitleOptions.html"}},[t._v("TitleOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/Tooltip.html"}},[t._v("Tooltip")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipCallbacks.html"}},[t._v("TooltipCallbacks")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipItem.html"}},[t._v("TooltipItem")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipLabelStyle.html"}},[t._v("TooltipLabelStyle")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[t._v("TooltipModel")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipOptions.html"}},[t._v("TooltipOptions")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPosition.html"}},[t._v("TooltipPosition")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPositionerMap.html"}},[t._v("TooltipPositionerMap")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/TypedRegistry.html"}},[t._v("TypedRegistry")])],1),t._v(" "),a("li",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")])],1)]),t._v(" "),a("h2",{attrs:{id:"type-aliases"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-aliases"}},[t._v("#")]),t._v(" Type aliases")]),t._v(" "),a("h3",{attrs:{id:"align"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#align"}},[t._v("#")]),t._v(" Align")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("Align")]),t._v(": "),a("code",[t._v('"start"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"end"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1682",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1682"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animationoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animationoptions"}},[t._v("#")]),t._v(" AnimationOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("AnimationOptions")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("animation")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#animationspec"}},[a("code",[t._v("AnimationSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & { "),a("code",[t._v("onComplete?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" ; "),a("code",[t._v("onProgress?")]),t._v(": ("),a("code",[t._v("event")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[a("code",[t._v("AnimationEvent")])]),t._v(") => "),a("code",[t._v("void")]),t._v(" }")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("animations")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#animationsspec"}},[a("code",[t._v("AnimationsSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("transitions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[a("code",[t._v("TransitionsSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1639",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1639"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animationspec"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animationspec"}},[t._v("#")]),t._v(" AnimationSpec")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("AnimationSpec")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-2"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Description")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("delay?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Delay before starting the animations. "),a("strong",[a("code",[t._v("default")])]),t._v(" 0")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("duration?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("The number of milliseconds an animation takes. "),a("strong",[a("code",[t._v("default")])]),t._v(" 1000")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("easing?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#easingfunction"}},[a("code",[t._v("EasingFunction")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("Easing function to use "),a("strong",[a("code",[t._v("default")])]),t._v(" 'easeOutQuart'")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("loop?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("boolean")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">>")],1),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("If set to true, the animations loop endlessly. "),a("strong",[a("code",[t._v("default")])]),t._v(" false")])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1583",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1583"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"animationsspec"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animationsspec"}},[t._v("#")]),t._v(" AnimationsSpec")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("AnimationsSpec")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-3"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"index-signature"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index-signature"}},[t._v("#")]),t._v(" Index signature")]),t._v(" "),a("p",[t._v("▪ [name: "),a("code",[t._v("string")]),t._v("]: "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#animationspec"}},[a("code",[t._v("AnimationSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & { "),a("code",[t._v("from")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">> ; "),a("code",[t._v("properties")]),t._v(": "),a("code",[t._v("string")]),t._v("[] ; "),a("code",[t._v("to")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[a("code",[t._v("ScriptableContext")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">> ; "),a("code",[t._v("type")]),t._v(": "),a("code",[t._v('"color"')]),t._v(" | "),a("code",[t._v('"number"')]),t._v(" | "),a("code",[t._v('"boolean"')]),t._v(" ; "),a("code",[t._v("fn")]),t._v(": ("),a("code",[t._v("from")]),t._v(": "),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("to")]),t._v(": "),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("factor")]),t._v(": "),a("code",[t._v("number")]),t._v(") => "),a("code",[t._v("T")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1608",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1608"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"barcontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barcontroller"}},[t._v("#")]),t._v(" BarController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("BarController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L145",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:145"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bubblecontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubblecontroller"}},[t._v("#")]),t._v(" BubbleController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("BubbleController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L173",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:173"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"cartesiantickoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cartesiantickoptions"}},[t._v("#")]),t._v(" CartesianTickOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("CartesianTickOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TickOptions.html"}},[a("code",[t._v("TickOptions")])]),t._v(" & { "),a("code",[t._v("align")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#align"}},[a("code",[t._v("Align")])]),t._v(" | "),a("code",[t._v('"inner"')]),t._v(" ; "),a("code",[t._v("autoSkip")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("autoSkipPadding")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("crossAlign")]),t._v(": "),a("code",[t._v('"near"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"far"')]),t._v(" ; "),a("code",[t._v("includeBounds")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("labelOffset")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("maxRotation")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("maxTicksLimit")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("minRotation")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("mirror")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("padding")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("sampleSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2982",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2982"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"categoryscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#categoryscale"}},[t._v("#")]),t._v(" CategoryScale")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("CategoryScale")]),t._v("<"),a("code",[t._v("O")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-4"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#categoryscaleoptions"}},[a("code",[t._v("CategoryScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#categoryscaleoptions"}},[a("code",[t._v("CategoryScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3147",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3147"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"categoryscaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#categoryscaleoptions"}},[t._v("#")]),t._v(" CategoryScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("CategoryScaleOptions")]),t._v(": "),a("code",[t._v("Omit")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(", "),a("code",[t._v('"min"')]),t._v(" | "),a("code",[t._v('"max"')]),t._v("> & { "),a("code",[t._v("labels")]),t._v(": "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("string")]),t._v("[][] ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3141",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3141"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartcomponentlike"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartcomponentlike"}},[t._v("#")]),t._v(" ChartComponentLike")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartComponentLike")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v("[] | { [key: string]: "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v("; } | "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1113",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1113"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartdataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartdataset"}},[t._v("#")]),t._v(" ChartDataset")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartDataset")]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">: "),a("code",[t._v("DeepPartial")]),t._v('<{ [key in ChartType]: Object & ChartTypeRegistry[key]["datasetOptions"] }['),a("code",[t._v("TType")]),t._v("]> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartDatasetProperties.html"}},[a("code",[t._v("ChartDatasetProperties")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-5"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3659",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3659"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartdatasetcustomtypesperdataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartdatasetcustomtypesperdataset"}},[t._v("#")]),t._v(" ChartDatasetCustomTypesPerDataset")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartDatasetCustomTypesPerDataset")]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">: "),a("code",[t._v("DeepPartial")]),t._v('<{ [key in ChartType]: Object & ChartTypeRegistry[key]["datasetOptions"] }['),a("code",[t._v("TType")]),t._v("]> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartDatasetPropertiesCustomTypesPerDataset.html"}},[a("code",[t._v("ChartDatasetPropertiesCustomTypesPerDataset")])]),t._v("<"),a("code",[t._v("TType")]),t._v(", "),a("code",[t._v("TData")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-6"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TData")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#defaultdatapoint"}},[a("code",[t._v("DefaultDataPoint")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3666",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3666"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartitem"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartitem"}},[t._v("#")]),t._v(" ChartItem")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartItem")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("CanvasRenderingContext2D")]),t._v(" | "),a("code",[t._v("HTMLCanvasElement")]),t._v(" | { "),a("code",[t._v("canvas")]),t._v(": "),a("code",[t._v("HTMLCanvasElement")]),t._v(" } | "),a("code",[t._v("ArrayLike")]),t._v("<"),a("code",[t._v("CanvasRenderingContext2D")]),t._v(" | "),a("code",[t._v("HTMLCanvasElement")]),t._v(">")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L554",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:554"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartmeta"}},[t._v("#")]),t._v(" ChartMeta")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartMeta")]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(", "),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("DeepPartial")]),t._v('<{ [key in ChartType]: ChartTypeRegistry[key]["metaExtensions"] }['),a("code",[t._v("TType")]),t._v("]> & "),a("code",[t._v("ChartMetaCommon")]),t._v("<"),a("code",[t._v("TElement")]),t._v(", "),a("code",[t._v("TDatasetElement")]),t._v(">")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-7"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TDatasetElement")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L460",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:460"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chartoptions"}},[t._v("#")]),t._v(" ChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartOptions")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("DeepPartial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreChartOptions.html"}},[a("code",[t._v("CoreChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#elementchartoptions"}},[a("code",[t._v("ElementChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/PluginChartOptions.html"}},[a("code",[t._v("PluginChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#datasetchartoptions"}},[a("code",[t._v("DatasetChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/#scalechartoptions"}},[a("code",[t._v("ScaleChartOptions")])]),t._v("<"),a("code",[t._v("TType")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"chartOptions"')]),t._v("]>")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-8"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3636",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3636"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"charttype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#charttype"}},[t._v("#")]),t._v(" ChartType")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ChartType")]),t._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3615",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3615"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"color"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#color"}},[t._v("#")]),t._v(" Color")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("Color")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("CanvasGradient")]),t._v(" | "),a("code",[t._v("CanvasPattern")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/color.d.ts#L1",target:"_blank",rel:"noopener noreferrer"}},[t._v("color.d.ts:1"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"datasetchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#datasetchartoptions"}},[t._v("#")]),t._v(" DatasetChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("DatasetChartOptions")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: { [key in TType]: Object }")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-9"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3624",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3624"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"decimationoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decimationoptions"}},[t._v("#")]),t._v(" DecimationOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("DecimationOptions")]),t._v(": "),a("code",[t._v("LttbDecimationOptions")]),t._v(" | "),a("code",[t._v("MinMaxDecimationOptions")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2130",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2130"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"defaultdatapoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defaultdatapoint"}},[t._v("#")]),t._v(" DefaultDataPoint")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("DefaultDataPoint")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("DistributiveArray")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"defaultDataPoint"')]),t._v("]>")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-10"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3645",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3645"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"doughnutdatapoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#doughnutdatapoint"}},[t._v("#")]),t._v(" DoughnutDataPoint")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("DoughnutDataPoint")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L331",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:331"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"easingfunction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#easingfunction"}},[t._v("#")]),t._v(" EasingFunction")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("EasingFunction")]),t._v(": "),a("code",[t._v('"linear"')]),t._v(" | "),a("code",[t._v('"easeInQuad"')]),t._v(" | "),a("code",[t._v('"easeOutQuad"')]),t._v(" | "),a("code",[t._v('"easeInOutQuad"')]),t._v(" | "),a("code",[t._v('"easeInCubic"')]),t._v(" | "),a("code",[t._v('"easeOutCubic"')]),t._v(" | "),a("code",[t._v('"easeInOutCubic"')]),t._v(" | "),a("code",[t._v('"easeInQuart"')]),t._v(" | "),a("code",[t._v('"easeOutQuart"')]),t._v(" | "),a("code",[t._v('"easeInOutQuart"')]),t._v(" | "),a("code",[t._v('"easeInQuint"')]),t._v(" | "),a("code",[t._v('"easeOutQuint"')]),t._v(" | "),a("code",[t._v('"easeInOutQuint"')]),t._v(" | "),a("code",[t._v('"easeInSine"')]),t._v(" | "),a("code",[t._v('"easeOutSine"')]),t._v(" | "),a("code",[t._v('"easeInOutSine"')]),t._v(" | "),a("code",[t._v('"easeInExpo"')]),t._v(" | "),a("code",[t._v('"easeOutExpo"')]),t._v(" | "),a("code",[t._v('"easeInOutExpo"')]),t._v(" | "),a("code",[t._v('"easeInCirc"')]),t._v(" | "),a("code",[t._v('"easeOutCirc"')]),t._v(" | "),a("code",[t._v('"easeInOutCirc"')]),t._v(" | "),a("code",[t._v('"easeInElastic"')]),t._v(" | "),a("code",[t._v('"easeOutElastic"')]),t._v(" | "),a("code",[t._v('"easeInOutElastic"')]),t._v(" | "),a("code",[t._v('"easeInBack"')]),t._v(" | "),a("code",[t._v('"easeOutBack"')]),t._v(" | "),a("code",[t._v('"easeInOutBack"')]),t._v(" | "),a("code",[t._v('"easeInBounce"')]),t._v(" | "),a("code",[t._v('"easeOutBounce"')]),t._v(" | "),a("code",[t._v('"easeInOutBounce"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1550",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1550"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"elementchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#elementchartoptions"}},[t._v("#")]),t._v(" ElementChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ElementChartOptions")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-11"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-3"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ElementOptionsByType.html"}},[a("code",[t._v("ElementOptionsByType")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2046",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2046"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"filltarget"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#filltarget"}},[t._v("#")]),t._v(" FillTarget")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("FillTarget")]),t._v(": "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("string")]),t._v(" | { "),a("code",[t._v("value")]),t._v(": "),a("code",[t._v("number")]),t._v(" } | "),a("code",[t._v('"start"')]),t._v(" | "),a("code",[t._v('"end"')]),t._v(" | "),a("code",[t._v('"origin"')]),t._v(" | "),a("code",[t._v('"stack"')]),t._v(" | "),a("code",[t._v('"shape"')]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2138",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2138"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interactionaxis"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactionaxis"}},[t._v("#")]),t._v(" InteractionAxis")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("InteractionAxis")]),t._v(": "),a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')]),t._v(" | "),a("code",[t._v('"xy"')]),t._v(" | "),a("code",[t._v('"r"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1422",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1422"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interactionmode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactionmode"}},[t._v("#")]),t._v(" InteractionMode")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("InteractionMode")]),t._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionModeMap.html"}},[a("code",[t._v("InteractionModeMap")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L752",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:752"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interactionmodefunction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interactionmodefunction"}},[t._v("#")]),t._v(" InteractionModeFunction")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("InteractionModeFunction")]),t._v(": ("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("e")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])]),t._v(", "),a("code",[t._v("options")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionOptions.html"}},[a("code",[t._v("InteractionOptions")])]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v(": "),a("code",[t._v("boolean")]),t._v(") => "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"type-declaration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-4"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("p",[t._v("▸ ("),a("code",[t._v("chart")]),t._v(", "),a("code",[t._v("e")]),t._v(", "),a("code",[t._v("options")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1),t._v(" "),a("h5",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("chart")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("e")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartEvent.html"}},[a("code",[t._v("ChartEvent")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionOptions.html"}},[a("code",[t._v("InteractionOptions")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h5",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L714",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:714"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"layoutposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layoutposition"}},[t._v("#")]),t._v(" LayoutPosition")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LayoutPosition")]),t._v(": "),a("code",[t._v('"left"')]),t._v(" | "),a("code",[t._v('"top"')]),t._v(" | "),a("code",[t._v('"right"')]),t._v(" | "),a("code",[t._v('"bottom"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"chartArea"')]),t._v(" | { [scaleId: string]: "),a("code",[t._v("number")]),t._v("; }")]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/layout.d.ts#L3",target:"_blank",rel:"noopener noreferrer"}},[t._v("layout.d.ts:3"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linecontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linecontroller"}},[t._v("#")]),t._v(" LineController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LineController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L219",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:219"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linearscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linearscale"}},[t._v("#")]),t._v(" LinearScale")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LinearScale")]),t._v("<"),a("code",[t._v("O")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-12"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#linearscaleoptions"}},[a("code",[t._v("LinearScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#linearscaleoptions"}},[a("code",[t._v("LinearScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3196",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3196"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linearscaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linearscaleoptions"}},[t._v("#")]),t._v(" LinearScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LinearScaleOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(" & { "),a("code",[t._v("beginAtZero")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("grace?")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMax?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("count")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("format")]),t._v(": "),a("code",[t._v("Intl.NumberFormatOptions")]),t._v(" ; "),a("code",[t._v("precision")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" } }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3153",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3153"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"logarithmicscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#logarithmicscale"}},[t._v("#")]),t._v(" LogarithmicScale")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LogarithmicScale")]),t._v("<"),a("code",[t._v("O")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-13"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#logarithmicscaleoptions"}},[a("code",[t._v("LogarithmicScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#logarithmicscaleoptions"}},[a("code",[t._v("LogarithmicScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3220",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3220"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"logarithmicscaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#logarithmicscaleoptions"}},[t._v("#")]),t._v(" LogarithmicScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("LogarithmicScaleOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(" & { "),a("code",[t._v("suggestedMax?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("format")]),t._v(": "),a("code",[t._v("Intl.NumberFormatOptions")]),t._v(" } }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3202",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3202"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"overrides"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("Overrides")]),t._v(': { [key in ChartType]: CoreChartOptions & ElementChartOptions & PluginChartOptions & DatasetChartOptions & ScaleChartOptions & ChartTypeRegistry[key]["chartOptions"] }')]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L691",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:691"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseddatatype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseddatatype"}},[t._v("#")]),t._v(" ParsedDataType")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ParsedDataType")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v("["),a("code",[t._v("TType")]),t._v("]["),a("code",[t._v('"parsedDataType"')]),t._v("]")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-14"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3647",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3647"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"pieanimationoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pieanimationoptions"}},[t._v("#")]),t._v(" PieAnimationOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieAnimationOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutAnimationOptions.html"}},[a("code",[t._v("DoughnutAnimationOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L354",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:354"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piecontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piecontroller"}},[t._v("#")]),t._v(" PieController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#doughnutcontroller"}},[a("code",[t._v("DoughnutController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L359",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:359"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piecontrollerchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piecontrollerchartoptions"}},[t._v("#")]),t._v(" PieControllerChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieControllerChartOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerChartOptions.html"}},[a("code",[t._v("DoughnutControllerChartOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L353",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:353"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piecontrollerdatasetoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piecontrollerdatasetoptions"}},[t._v("#")]),t._v(" PieControllerDatasetOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieControllerDatasetOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[a("code",[t._v("DoughnutControllerDatasetOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L352",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:352"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piedatapoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piedatapoint"}},[t._v("#")]),t._v(" PieDataPoint")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieDataPoint")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#doughnutdatapoint"}},[a("code",[t._v("DoughnutDataPoint")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L356",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:356"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piemetaextensions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piemetaextensions"}},[t._v("#")]),t._v(" PieMetaExtensions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PieMetaExtensions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutMetaExtensions.html"}},[a("code",[t._v("DoughnutMetaExtensions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L357",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:357"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"pointstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" PointStyle")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PointStyle")]),t._v(": "),a("code",[t._v('"circle"')]),t._v(" | "),a("code",[t._v('"cross"')]),t._v(" | "),a("code",[t._v('"crossRot"')]),t._v(" | "),a("code",[t._v('"dash"')]),t._v(" | "),a("code",[t._v('"line"')]),t._v(" | "),a("code",[t._v('"rect"')]),t._v(" | "),a("code",[t._v('"rectRounded"')]),t._v(" | "),a("code",[t._v('"rectRot"')]),t._v(" | "),a("code",[t._v('"star"')]),t._v(" | "),a("code",[t._v('"triangle"')]),t._v(" | "),a("code",[t._v("HTMLImageElement")]),t._v(" | "),a("code",[t._v("HTMLCanvasElement")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1865",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1865"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"polarareaanimationoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polarareaanimationoptions"}},[t._v("#")]),t._v(" PolarAreaAnimationOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("PolarAreaAnimationOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutAnimationOptions.html"}},[a("code",[t._v("DoughnutAnimationOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L373",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:373"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radarcontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radarcontroller"}},[t._v("#")]),t._v(" RadarController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("RadarController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/DatasetController.html"}},[a("code",[t._v("DatasetController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L420",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:420"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radarcontrollerchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radarcontrollerchartoptions"}},[t._v("#")]),t._v(" RadarControllerChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("RadarControllerChartOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[a("code",[t._v("LineControllerChartOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L418",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:418"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radiallinearscaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radiallinearscaleoptions"}},[t._v("#")]),t._v(" RadialLinearScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("RadialLinearScaleOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(" & { "),a("code",[t._v("angleLines")]),t._v(": { "),a("code",[t._v("borderDash")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v("[], "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("borderDashOffset")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> ; "),a("code",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("lineWidth")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascaleContext.html"}},[a("code",[t._v("ScripTablascaleContext")])]),t._v("> } ; "),a("code",[t._v("animate")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("beginAtZero")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("grid")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/GridLineOptions.html"}},[a("code",[t._v("GridLineOptions")])]),t._v(" ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("pointLabels")]),t._v(": { "),a("code",[t._v("backdropColor")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("backdropPadding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("borderRadius")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/BorderRadius.html"}},[a("code",[t._v("BorderRadius")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("centerPointLabels")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("color")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#color"}},[a("code",[t._v("Color")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("display")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("font")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptableandscriptableoptions"}},[a("code",[t._v("ScriptableAndScriptableOptions")])]),t._v("<"),a("code",[t._v("Partial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/FontSpec.html"}},[a("code",[t._v("FontSpec")])]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("padding")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("number")]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ScripTablascalePointLabelContext.html"}},[a("code",[t._v("ScripTablascalePointLabelContext")])]),t._v("> ; "),a("code",[t._v("callback")]),t._v(": ("),a("code",[t._v("label")]),t._v(": "),a("code",[t._v("string")]),t._v(", "),a("code",[t._v("index")]),t._v(": "),a("code",[t._v("number")]),t._v(") => "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("string")]),t._v("[] | "),a("code",[t._v("number")]),t._v("[] } ; "),a("code",[t._v("startAngle")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMax")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#radialtickoptions"}},[a("code",[t._v("RadialTickOptions")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3356",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3356"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radialtickoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radialtickoptions"}},[t._v("#")]),t._v(" RadialTickOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("RadialTickOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TickOptions.html"}},[a("code",[t._v("TickOptions")])]),t._v(" & { "),a("code",[t._v("count")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("format")]),t._v(": "),a("code",[t._v("Intl.NumberFormatOptions")]),t._v(" ; "),a("code",[t._v("maxTicksLimit")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("precision")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3328",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3328"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scalechartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scalechartoptions"}},[t._v("#")]),t._v(" ScaleChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScaleChartOptions")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-15"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-5"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scales")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3630",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3630"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scaleoptions"}},[t._v("#")]),t._v(" ScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScaleOptions")]),t._v("<"),a("code",[t._v("TScale")]),t._v(">: "),a("code",[t._v("DeepPartial")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#scaleoptionsbytype"}},[a("code",[t._v("ScaleOptionsByType")])]),t._v("<"),a("code",[t._v("TScale")]),t._v(">>")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-16"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TScale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#scaletype"}},[a("code",[t._v("ScaleType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#scaletype"}},[a("code",[t._v("ScaleType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3622",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3622"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scaleoptionsbytype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scaleoptionsbytype"}},[t._v("#")]),t._v(" ScaleOptionsByType")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScaleOptionsByType")]),t._v("<"),a("code",[t._v("TScale")]),t._v('>: { [key in ScaleType]: Object & ScaleTypeRegistry[key]["options"] }['),a("code",[t._v("TScale")]),t._v("]")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-17"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TScale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#scaletype"}},[a("code",[t._v("ScaleType")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#scaletype"}},[a("code",[t._v("ScaleType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3617",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3617"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scaletype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scaletype"}},[t._v("#")]),t._v(" ScaleType")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScaleType")]),t._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ScaleTypeRegistry.html"}},[a("code",[t._v("ScaleTypeRegistry")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3511",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3511"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scattercontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scattercontroller"}},[t._v("#")]),t._v(" ScatterController")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScatterController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#linecontroller"}},[a("code",[t._v("LineController")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-52"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L234",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:234"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scattercontrollerchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scattercontrollerchartoptions"}},[t._v("#")]),t._v(" ScatterControllerChartOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScatterControllerChartOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerChartOptions.html"}},[a("code",[t._v("LineControllerChartOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-53"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L232",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:232"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scattercontrollerdatasetoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scattercontrollerdatasetoptions"}},[t._v("#")]),t._v(" ScatterControllerDatasetOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScatterControllerDatasetOptions")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LineControllerDatasetOptions.html"}},[a("code",[t._v("LineControllerDatasetOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-54"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L225",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:225"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scriptable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptable"}},[t._v("#")]),t._v(" Scriptable")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("Scriptable")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">: "),a("code",[t._v("T")]),t._v(" | ("),a("code",[t._v("ctx")]),t._v(": "),a("code",[t._v("TContext")]),t._v(", "),a("code",[t._v("options")]),t._v(": "),a("code",[t._v("AnyObject")]),t._v(") => "),a("code",[t._v("T")]),t._v(" | "),a("code",[t._v("undefined")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-18"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TContext")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-55"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L39",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:39"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scriptableandarray"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptableandarray"}},[t._v("#")]),t._v(" ScriptableAndArray")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScriptableAndArray")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">: readonly "),a("code",[t._v("T")]),t._v("[] | "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-19"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TContext")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-56"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L42",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:42"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scriptableandarrayoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptableandarrayoptions"}},[t._v("#")]),t._v(" ScriptableAndArrayOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScriptableAndArrayOptions")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">: { [P in keyof T]: ScriptableAndArray }")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-20"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TContext")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-57"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L43",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:43"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scriptableandscriptableoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptableandscriptableoptions"}},[t._v("#")]),t._v(" ScriptableAndScriptableOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScriptableAndScriptableOptions")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/#scriptable"}},[a("code",[t._v("Scriptable")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v("> | "),a("RouterLink",{attrs:{to:"/api/#scriptableoptions"}},[a("code",[t._v("ScriptableOptions")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-21"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TContext")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-58"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L41",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:41"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scriptableoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scriptableoptions"}},[t._v("#")]),t._v(" ScriptableOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("ScriptableOptions")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("TContext")]),t._v(">: { [P in keyof T]: Scriptable }")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-22"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TContext")])])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-59"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L40",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:40"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"textalign"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#textalign"}},[t._v("#")]),t._v(" TextAlign")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TextAlign")]),t._v(": "),a("code",[t._v('"left"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"right"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-60"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1681",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1681"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timescaleoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timescaleoptions"}},[t._v("#")]),t._v(" TimeScaleOptions")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TimeScaleOptions")]),t._v(": "),a("code",[t._v("Omit")]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CartesianScaleOptions.html"}},[a("code",[t._v("CartesianScaleOptions")])]),t._v(", "),a("code",[t._v('"min"')]),t._v(" | "),a("code",[t._v('"max"')]),t._v("> & { "),a("code",[t._v("adapters")]),t._v(": { "),a("code",[t._v("date")]),t._v(": "),a("code",[t._v("unknown")]),t._v(" } ; "),a("code",[t._v("bounds")]),t._v(": "),a("code",[t._v('"ticks"')]),t._v(" | "),a("code",[t._v('"data"')]),t._v(" ; "),a("code",[t._v("max")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("min")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("offsetAfterAutoskip")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" ; "),a("code",[t._v("suggestedMax")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("suggestedMin")]),t._v(": "),a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("ticks")]),t._v(": { "),a("code",[t._v("source")]),t._v(": "),a("code",[t._v('"labels"')]),t._v(" | "),a("code",[t._v('"auto"')]),t._v(" | "),a("code",[t._v('"data"')]),t._v(" } ; "),a("code",[t._v("time")]),t._v(": { "),a("code",[t._v("displayFormats")]),t._v(": { [key: string]: "),a("code",[t._v("string")]),t._v("; } ; "),a("code",[t._v("isoWeekday")]),t._v(": "),a("code",[t._v("boolean")]),t._v(" | "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("minUnit")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("parser")]),t._v(": "),a("code",[t._v("string")]),t._v(" | ("),a("code",[t._v("v")]),t._v(": "),a("code",[t._v("unknown")]),t._v(") => "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("round")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" ; "),a("code",[t._v("stepSize")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("tooltipFormat")]),t._v(": "),a("code",[t._v("string")]),t._v(" ; "),a("code",[t._v("unit")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/#timeunit"}},[a("code",[t._v("TimeUnit")])]),t._v(" } }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-61"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3226",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3226"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timeseriesscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeseriesscale"}},[t._v("#")]),t._v(" TimeSeriesScale")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TimeSeriesScale")]),t._v("<"),a("code",[t._v("O")]),t._v(">: "),a("RouterLink",{attrs:{to:"/api/#timescale"}},[a("code",[t._v("TimeScale")])]),t._v("<"),a("code",[t._v("O")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-23"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-62"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3322",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3322"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timeunit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeunit"}},[t._v("#")]),t._v(" TimeUnit")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TimeUnit")]),t._v(": "),a("code",[t._v('"millisecond"')]),t._v(" | "),a("code",[t._v('"second"')]),t._v(" | "),a("code",[t._v('"minute"')]),t._v(" | "),a("code",[t._v('"hour"')]),t._v(" | "),a("code",[t._v('"day"')]),t._v(" | "),a("code",[t._v('"week"')]),t._v(" | "),a("code",[t._v('"month"')]),t._v(" | "),a("code",[t._v('"quarter"')]),t._v(" | "),a("code",[t._v('"year"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-63"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L3",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:3"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltippositioner"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltippositioner"}},[t._v("#")]),t._v(" TooltipPositioner")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TooltipPositioner")]),t._v(": keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPositionerMap.html"}},[a("code",[t._v("TooltipPositionerMap")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-64"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2546",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2546"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltippositionerfunction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltippositionerfunction"}},[t._v("#")]),t._v(" TooltipPositionerFunction")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TooltipPositionerFunction")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: ("),a("code",[t._v("this")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">, "),a("code",[t._v("items")]),t._v(": readonly "),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[], "),a("code",[t._v("eventPosition")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v(") => "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPosition.html"}},[a("code",[t._v("TooltipPosition")])]),t._v(" | "),a("code",[t._v("false")])],1),t._v(" "),a("h4",{attrs:{id:"type-parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-24"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-6"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("p",[t._v("▸ ("),a("code",[t._v("this")]),t._v(", "),a("code",[t._v("items")]),t._v(", "),a("code",[t._v("eventPosition")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPosition.html"}},[a("code",[t._v("TooltipPosition")])]),t._v(" | "),a("code",[t._v("false")])],1),t._v(" "),a("h5",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("this")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipModel.html"}},[a("code",[t._v("TooltipModel")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("items")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("readonly "),a("RouterLink",{attrs:{to:"/api/interfaces/ActiveElement.html"}},[a("code",[t._v("ActiveElement")])]),t._v("[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("eventPosition")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1)])])]),t._v(" "),a("h5",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/TooltipPosition.html"}},[a("code",[t._v("TooltipPosition")])]),t._v(" | "),a("code",[t._v("false")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-65"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2535",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2535"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipxalignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipxalignment"}},[t._v("#")]),t._v(" TooltipXAlignment")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TooltipXAlignment")]),t._v(": "),a("code",[t._v('"left"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"right"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-66"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2444",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2444"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipyalignment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipyalignment"}},[t._v("#")]),t._v(" TooltipYAlignment")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TooltipYAlignment")]),t._v(": "),a("code",[t._v('"top"')]),t._v(" | "),a("code",[t._v('"center"')]),t._v(" | "),a("code",[t._v('"bottom"')])]),t._v(" "),a("h4",{attrs:{id:"defined-in-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-67"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2445",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2445"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"transitionspec"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitionspec"}},[t._v("#")]),t._v(" TransitionSpec")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TransitionSpec")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-25"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-7"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("animation")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#animationspec"}},[a("code",[t._v("AnimationSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("animations")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#animationsspec"}},[a("code",[t._v("AnimationsSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-68"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1630",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1630"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"transitionsspec"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitionsspec"}},[t._v("#")]),t._v(" TransitionsSpec")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("TransitionsSpec")]),t._v("<"),a("code",[t._v("TType")]),t._v(">: "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-26"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("TType")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/#charttype"}},[a("code",[t._v("ChartType")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"index-signature-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index-signature-2"}},[t._v("#")]),t._v(" Index signature")]),t._v(" "),a("p",[t._v("▪ [mode: "),a("code",[t._v("string")]),t._v("]: "),a("RouterLink",{attrs:{to:"/api/#transitionspec"}},[a("code",[t._v("TransitionSpec")])]),t._v("<"),a("code",[t._v("TType")]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-69"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1635",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1635"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatemode"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatemode"}},[t._v("#")]),t._v(" UpdateMode")]),t._v(" "),a("p",[t._v("Ƭ "),a("strong",[t._v("UpdateMode")]),t._v(": keyof typeof "),a("RouterLink",{attrs:{to:"/api/enums/UpdateModeEnum.html"}},[a("code",[t._v("UpdateModeEnum")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-70"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L571",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:571"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"variables"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#variables"}},[t._v("#")]),t._v(" Variables")]),t._v(" "),a("h3",{attrs:{id:"arcelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#arcelement"}},[t._v("#")]),t._v(" ArcElement")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ArcElement")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#arcelement"}},[a("code",[t._v("ArcElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/ArcProps.html"}},[a("code",[t._v("ArcProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/ArcOptions.html"}},[a("code",[t._v("ArcOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-71"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1765",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1765"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"barcontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barcontroller-2"}},[t._v("#")]),t._v(" BarController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("BarController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#barcontroller"}},[a("code",[t._v("BarController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-72"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L146",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:146"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"barelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#barelement"}},[t._v("#")]),t._v(" BarElement")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("BarElement")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#barelement"}},[a("code",[t._v("BarElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/BarProps.html"}},[a("code",[t._v("BarProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/BarOptions.html"}},[a("code",[t._v("BarOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-73"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2034",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2034"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"bubblecontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bubblecontroller-2"}},[t._v("#")]),t._v(" BubbleController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("BubbleController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#bubblecontroller"}},[a("code",[t._v("BubbleController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-74"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L174",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:174"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"categoryscale-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#categoryscale-2"}},[t._v("#")]),t._v(" CategoryScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("CategoryScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#categoryscale"}},[a("code",[t._v("CategoryScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#categoryscaleoptions"}},[a("code",[t._v("CategoryScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-75"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3148",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3148"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"decimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#decimation"}},[t._v("#")]),t._v(" Decimation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Decimation")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-76"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2110",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2110"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"doughnutcontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#doughnutcontroller"}},[t._v("#")]),t._v(" DoughnutController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("DoughnutController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#doughnutcontroller"}},[a("code",[t._v("DoughnutController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-77"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L343",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:343"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"element"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#element"}},[t._v("#")]),t._v(" Element")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Element")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-8"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("prototype")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-78"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L14",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:14"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"filler"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#filler"}},[t._v("#")]),t._v(" Filler")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Filler")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-79"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2132",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2132"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"interaction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interaction"}},[t._v("#")]),t._v(" Interaction")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Interaction")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-9"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("modes")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/InteractionModeMap.html"}},[a("code",[t._v("InteractionModeMap")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("evaluateInteractionItems")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("axis")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#interactionaxis"}},[a("code",[t._v("InteractionAxis")])]),t._v(", "),a("code",[t._v("position")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])]),t._v(", "),a("code",[t._v("handler")]),t._v(": ("),a("code",[t._v("element")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v("> & "),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[a("code",[t._v("VisualElement")])]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(": "),a("code",[t._v("number")]),t._v(", "),a("code",[t._v("index")]),t._v(": "),a("code",[t._v("number")]),t._v(") => "),a("code",[t._v("void")]),t._v(", "),a("code",[t._v("intersect?")]),t._v(": "),a("code",[t._v("boolean")]),t._v(") => "),a("RouterLink",{attrs:{to:"/api/interfaces/InteractionItem.html"}},[a("code",[t._v("InteractionItem")])]),t._v("[]")],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-80"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L754",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:754"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"legend"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#legend"}},[t._v("#")]),t._v(" Legend")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Legend")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-81"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2162",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2162"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linecontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linecontroller-2"}},[t._v("#")]),t._v(" LineController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("LineController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#linecontroller"}},[a("code",[t._v("LineController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-82"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L220",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:220"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"lineelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#lineelement"}},[t._v("#")]),t._v(" LineElement")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("LineElement")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#lineelement"}},[a("code",[t._v("LineElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/LineProps.html"}},[a("code",[t._v("LineProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[a("code",[t._v("LineOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-83"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1855",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1855"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linearscale-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linearscale-2"}},[t._v("#")]),t._v(" LinearScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("LinearScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#linearscale"}},[a("code",[t._v("LinearScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#linearscaleoptions"}},[a("code",[t._v("LinearScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-84"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3197",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3197"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"logarithmicscale-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#logarithmicscale-2"}},[t._v("#")]),t._v(" LogarithmicScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("LogarithmicScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#logarithmicscale"}},[a("code",[t._v("LogarithmicScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#logarithmicscaleoptions"}},[a("code",[t._v("LogarithmicScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-85"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3221",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3221"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"piecontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#piecontroller-2"}},[t._v("#")]),t._v(" PieController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("PieController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#doughnutcontroller"}},[a("code",[t._v("DoughnutController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-86"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L360",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:360"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"pointelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pointelement"}},[t._v("#")]),t._v(" PointElement")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("PointElement")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#pointelement"}},[a("code",[t._v("PointElement")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[a("code",[t._v("PointProps")])]),t._v(", "),a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[a("code",[t._v("PointOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-87"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1972",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1972"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"polarareacontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#polarareacontroller"}},[t._v("#")]),t._v(" PolarAreaController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("PolarAreaController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#polarareacontroller"}},[a("code",[t._v("PolarAreaController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-88"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L388",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:388"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radarcontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radarcontroller-2"}},[t._v("#")]),t._v(" RadarController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("RadarController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#radarcontroller"}},[a("code",[t._v("RadarController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-89"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L421",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:421"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"radiallinearscale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#radiallinearscale"}},[t._v("#")]),t._v(" RadialLinearScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("RadialLinearScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#radiallinearscale"}},[a("code",[t._v("RadialLinearScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#radiallinearscaleoptions"}},[a("code",[t._v("RadialLinearScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-90"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3479",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3479"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"scattercontroller-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#scattercontroller-2"}},[t._v("#")]),t._v(" ScatterController")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("ScatterController")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#linecontroller"}},[a("code",[t._v("LineController")])]),t._v(" }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-91"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L235",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:235"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"subtitle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#subtitle"}},[t._v("#")]),t._v(" SubTitle")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("SubTitle")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-92"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2402",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2402"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"ticks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ticks"}},[t._v("#")]),t._v(" Ticks")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Ticks")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-10"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("formatters")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("formatters.logarithmic")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("[object Object]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("formatters.numeric")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("[object Object]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("formatters.values")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("[object Object]")])])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-93"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1356",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1356"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timescale"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timescale"}},[t._v("#")]),t._v(" TimeScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("TimeScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#timescale"}},[a("code",[t._v("TimeScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-94"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3317",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3317"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"timeseriesscale-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeseriesscale-2"}},[t._v("#")]),t._v(" TimeSeriesScale")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("TimeSeriesScale")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartComponent.html"}},[a("code",[t._v("ChartComponent")])]),t._v(" & { "),a("code",[t._v("prototype")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#timeseriesscale"}},[a("code",[t._v("TimeSeriesScale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#timescaleoptions"}},[a("code",[t._v("TimeScaleOptions")])]),t._v("> }")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-95"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L3323",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:3323"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"title"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#title"}},[t._v("#")]),t._v(" Title")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Title")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Plugin.html"}},[a("code",[t._v("Plugin")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-96"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2403",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2403"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltip"}},[t._v("#")]),t._v(" Tooltip")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Tooltip")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#tooltip"}},[a("code",[t._v("Tooltip")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-97"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L2552",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:2552"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"adapters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#adapters"}},[t._v("#")]),t._v(" _adapters")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("_adapters")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-11"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("_date")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/DateAdapter.html"}},[a("code",[t._v("DateAdapter")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-98"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/adapters.d.ts#L68",target:"_blank",rel:"noopener noreferrer"}},[t._v("adapters.d.ts:68"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"defaults"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defaults"}},[t._v("#")]),t._v(" defaults")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("defaults")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Defaults.html"}},[a("code",[t._v("Defaults")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-99"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:701"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"layouts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#layouts"}},[t._v("#")]),t._v(" layouts")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("layouts")]),t._v(": "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"type-declaration-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-declaration-12"}},[t._v("#")]),t._v(" Type declaration")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("addBox")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("item")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])]),t._v(") => "),a("code",[t._v("void")])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("configure")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("item")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])]),t._v(", "),a("code",[t._v("options")]),t._v(": { "),a("code",[t._v("fullSize?")]),t._v(": "),a("code",[t._v("number")]),t._v(" ; "),a("code",[t._v("position?")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#layoutposition"}},[a("code",[t._v("LayoutPosition")])]),t._v(" ; "),a("code",[t._v("weight?")]),t._v(": "),a("code",[t._v("number")]),t._v(" }) => "),a("code",[t._v("void")])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("removeBox")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("layoutItem")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/LayoutItem.html"}},[a("code",[t._v("LayoutItem")])]),t._v(") => "),a("code",[t._v("void")])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("update")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("("),a("code",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v(", "),a("code",[t._v("width")]),t._v(": "),a("code",[t._v("number")]),t._v(", "),a("code",[t._v("height")]),t._v(": "),a("code",[t._v("number")]),t._v(") => "),a("code",[t._v("void")])],1)])])]),t._v(" "),a("h4",{attrs:{id:"defined-in-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-100"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L769",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:769"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"Registroables"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#Registroables"}},[t._v("#")]),t._v(" Registroables")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("Registroables")]),t._v(": readonly "),a("RouterLink",{attrs:{to:"/api/#chartcomponentlike"}},[a("code",[t._v("ChartComponentLike")])]),t._v("[]")],1),t._v(" "),a("h4",{attrs:{id:"defined-in-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-101"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L552",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:552"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"registry"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#registry"}},[t._v("#")]),t._v(" registry")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("registry")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/interfaces/Registry.html"}},[a("code",[t._v("Registry")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-102"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1139",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1139"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/90.96ebfa9b.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/90.96ebfa9b.js new file mode 100644 index 0000000..14569c5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/90.96ebfa9b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{421:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-pointelement-t-o"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointelement-t-o"}},[t._v("#")]),t._v(" Interface: PointElement")]),t._v(" "),a("h2",{attrs:{id:"type-parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("T")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[a("code",[t._v("PointProps")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/PointProps.html"}},[a("code",[t._v("PointProps")])])],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("O")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends "),a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[a("code",[t._v("PointOptions")])]),t._v(" = "),a("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[a("code",[t._v("PointOptions")])])],1)])])]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("O")]),t._v(">")],1)]),t._v(" "),a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[a("code",[t._v("VisualElement")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("PointElement")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"active"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#active"}},[t._v("#")]),t._v(" active")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("active")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.active")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L7",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:7"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"options"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#options"}},[t._v("#")]),t._v(" options")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("options")]),t._v(": "),a("code",[t._v("O")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.options")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L8",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:8"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsed"}},[t._v("#")]),t._v(" parsed")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("parsed")]),t._v(": "),a("code",[t._v("CartesianParsedData")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1969",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1969"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"skip"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#skip"}},[t._v("#")]),t._v(" skip")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("skip")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1968",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1968"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"x"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("x")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.x")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L5",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:5"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"y"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("y")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.y")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L6",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:6"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("("),a("code",[t._v("ctx")]),t._v(", "),a("code",[t._v("area?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("ctx")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("CanvasRenderingContext2D")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("area?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[a("code",[t._v("ChartArea")])])],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#draw"}},[t._v("draw")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1685",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1685"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getcenterpoint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getcenterpoint"}},[t._v("#")]),t._v(" getCenterPoint")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getCenterPoint")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("x")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("y")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getcenterpoint"}},[t._v("getCenterPoint")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1689",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1689"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getprops"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getprops"}},[t._v("#")]),t._v(" getProps")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getProps")]),t._v("<"),a("code",[t._v("P")]),t._v(">("),a("code",[t._v("props")]),t._v(", "),a("code",[t._v("final?")]),t._v("): "),a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"type-parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#type-parameters-2"}},[t._v("#")]),t._v(" Type parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("extends keyof "),a("code",[t._v("T")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("props")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("P")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("final?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Pick")]),t._v("<"),a("code",[t._v("T")]),t._v(", "),a("code",[t._v("P")]),t._v("["),a("code",[t._v("number")]),t._v("]>")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.getProps")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L12",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:12"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getrange"}},[t._v("#")]),t._v(" getRange")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Optional")]),t._v(" "),a("strong",[t._v("getRange")]),t._v("("),a("code",[t._v("axis")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("axis")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"x"')]),t._v(" | "),a("code",[t._v('"y"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#getrange"}},[t._v("getRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1690",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1690"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"hasvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hasvalue"}},[t._v("#")]),t._v(" hasValue")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("hasValue")]),t._v("(): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.hasValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L11",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:11"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inrange"}},[t._v("#")]),t._v(" inRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inrange"}},[t._v("inRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1686",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1686"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inxrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inxrange"}},[t._v("#")]),t._v(" inXRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inXRange")]),t._v("("),a("code",[t._v("mouseX")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseX")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inxrange"}},[t._v("inXRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1687",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1687"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"inyrange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inyrange"}},[t._v("#")]),t._v(" inYRange")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("inYRange")]),t._v("("),a("code",[t._v("mouseY")]),t._v(", "),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mouseY")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html"}},[t._v("VisualElement")]),t._v("."),a("RouterLink",{attrs:{to:"/api/interfaces/VisualElement.html#inyrange"}},[t._v("inYRange")])],1),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1688",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1688"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"tooltipposition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#tooltipposition"}},[t._v("#")]),t._v(" tooltipPosition")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("tooltipPosition")]),t._v("("),a("code",[t._v("useFinalPosition?")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("useFinalPosition?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/interfaces/Point.html"}},[a("code",[t._v("Point")])])],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("Element.tooltipPosition")]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/element.d.ts#L10",target:"_blank",rel:"noopener noreferrer"}},[t._v("element.d.ts:10"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/91.cdde4d3f.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/91.cdde4d3f.js new file mode 100644 index 0000000..8bac00c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/91.cdde4d3f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{422:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-pointhoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointhoveroptions"}},[r._v("#")]),r._v(" Interface: PointHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"hierarchy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[r._v("#")]),r._v(" Hierarchy")]),r._v(" "),t("ul",[t("li",[t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[t("code",[r._v("CommonHoverOptions")])])],1),r._v(" "),t("p",[r._v("↳ "),t("strong",[t("code",[r._v("PointHoverOptions")])])])])]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"hoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[r._v("#")]),r._v(" hoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbackgroundcolor"}},[r._v("hoverBackgroundColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1702"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[r._v("#")]),r._v(" hoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("h4",{attrs:{id:"inherited-from-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverbordercolor"}},[r._v("hoverBorderColor")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1701"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[r._v("#")]),r._v(" hoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("h4",{attrs:{id:"inherited-from-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[r._v("#")]),r._v(" Inherited from")]),r._v(" "),t("p",[t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html"}},[r._v("CommonHoverOptions")]),r._v("."),t("RouterLink",{attrs:{to:"/api/interfaces/CommonHoverOptions.html#hoverborderwidth"}},[r._v("hoverBorderWidth")])],1),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1700"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"hoverradius"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hoverradius"}},[r._v("#")]),r._v(" hoverRadius")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("hoverRadius")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("p",[r._v("Point radius when hovered.")]),r._v(" "),t("p",[t("strong",[t("code",[r._v("default")])]),r._v(" 4")]),r._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1912",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1912"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/92.dc3f06d2.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/92.dc3f06d2.js new file mode 100644 index 0000000..f7d4639 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/92.dc3f06d2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[92],{423:function(t,e,r){"use strict";r.r(e);var a=r(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-pointoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointoptions"}},[t._v("#")]),t._v(" Interface: PointOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[r("code",[t._v("CommonElementOptions")])])],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("PointOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#backgroundcolor"}},[t._v("backgroundColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#bordercolor"}},[t._v("borderColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html"}},[t._v("CommonElementOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/CommonElementOptions.html#borderwidth"}},[t._v("borderWidth")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawactiveelementsontop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawactiveelementsontop"}},[t._v("#")]),t._v(" drawActiveElementsOnTop")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawActiveElementsOnTop")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Draw the active elements over the other elements of the dataset,")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1904",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1904"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hitradius"}},[t._v("#")]),t._v(" hitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hitRadius")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Extra radius added to point radius for hit detection.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1889",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1889"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])])],1),t._v(" "),r("p",[t._v("Point style")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'circle;")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1894",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1894"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"radius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#radius"}},[t._v("#")]),t._v(" radius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("radius")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Point radius")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 3")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1884",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1884"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Point rotation (in degrees).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1899",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1899"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/93.aaa04d52.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/93.aaa04d52.js new file mode 100644 index 0000000..685ad6f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/93.aaa04d52.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{424:function(r,e,t){"use strict";t.r(e);var o=t(6),a=Object(o.a)({},(function(){var r=this,e=r.$createElement,t=r._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"interface-pointprefixedhoveroptions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointprefixedhoveroptions"}},[r._v("#")]),r._v(" Interface: PointPrefixedHoverOptions")]),r._v(" "),t("h2",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[r._v("#")]),r._v(" Properties")]),r._v(" "),t("h3",{attrs:{id:"pointhoverbackgroundcolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbackgroundcolor"}},[r._v("#")]),r._v(" pointHoverBackgroundColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("pointHoverBackgroundColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("p",[r._v("Point background color when hovered.")]),r._v(" "),t("h4",{attrs:{id:"defined-in"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1950",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1950"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"pointhoverbordercolor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbordercolor"}},[r._v("#")]),r._v(" pointHoverBorderColor")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("pointHoverBorderColor")]),r._v(": "),t("RouterLink",{attrs:{to:"/api/#color"}},[t("code",[r._v("Color")])])],1),r._v(" "),t("p",[r._v("Point border color when hovered.")]),r._v(" "),t("h4",{attrs:{id:"defined-in-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1954",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1954"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"pointhoverborderwidth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverborderwidth"}},[r._v("#")]),r._v(" pointHoverBorderWidth")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("pointHoverBorderWidth")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("p",[r._v("Border width of point when hovered.")]),r._v(" "),t("h4",{attrs:{id:"defined-in-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1958",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1958"),t("OutboundLink")],1)]),r._v(" "),t("hr"),r._v(" "),t("h3",{attrs:{id:"pointhoverradius"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverradius"}},[r._v("#")]),r._v(" pointHoverRadius")]),r._v(" "),t("p",[r._v("• "),t("strong",[r._v("pointHoverRadius")]),r._v(": "),t("code",[r._v("number")])]),r._v(" "),t("p",[r._v("The radius of the point when hovered.")]),r._v(" "),t("h4",{attrs:{id:"defined-in-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[r._v("#")]),r._v(" Defined in")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1962",target:"_blank",rel:"noopener noreferrer"}},[r._v("index.esm.d.ts:1962"),t("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/94.2af5650c.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/94.2af5650c.js new file mode 100644 index 0000000..b7f844a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/94.2af5650c.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{425:function(t,e,r){"use strict";r.r(e);var a=r(6),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-pointprefixedoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointprefixedoptions"}},[t._v("#")]),t._v(" Interface: PointPrefixedOptions")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"pointbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbackgroundcolor"}},[t._v("#")]),t._v(" pointBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("p",[t._v("The fill color for points.")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1919",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1919"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbordercolor"}},[t._v("#")]),t._v(" pointBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])])],1),t._v(" "),r("p",[t._v("The border color for points.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1923",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1923"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointborderwidth"}},[t._v("#")]),t._v(" pointBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderWidth")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The width of the point border in pixels.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1927",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1927"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhitradius"}},[t._v("#")]),t._v(" pointHitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHitRadius")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The pixel size of the non-displayed point that reacts to mouse events.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1931",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1931"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointradius"}},[t._v("#")]),t._v(" pointRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRadius")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The radius of the point shape. If set to 0, the point is not rendered.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1935",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1935"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointrotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointrotation"}},[t._v("#")]),t._v(" pointRotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRotation")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The rotation of the point in degrees.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1939",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1939"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])])],1),t._v(" "),r("p",[t._v("Style of the point.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1943",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1943"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/95.1d44ec16.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/95.1d44ec16.js new file mode 100644 index 0000000..29e666c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/95.1d44ec16.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{426:function(t,e,r){"use strict";r.r(e);var a=r(6),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-pointprops"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-pointprops"}},[t._v("#")]),t._v(" Interface: PointProps")]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"x"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#x"}},[t._v("#")]),t._v(" x")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("x")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1861",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1861"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"y"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#y"}},[t._v("#")]),t._v(" y")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("y")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1862",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1862"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/96.9545127d.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/96.9545127d.js new file mode 100644 index 0000000..b8ed260 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/96.9545127d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{427:function(t,e,a){"use strict";a.r(e);var r=a(6),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-polarareacontroller"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-polarareacontroller"}},[t._v("#")]),t._v(" Interface: PolarAreaController")]),t._v(" "),a("h2",{attrs:{id:"hierarchy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),a("ul",[a("li",[a("p",[a("RouterLink",{attrs:{to:"/api/#doughnutcontroller"}},[a("code",[t._v("DoughnutController")])])],1),t._v(" "),a("p",[t._v("↳ "),a("strong",[a("code",[t._v("PolarAreaController")])])])])]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"cachedmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cachedmeta"}},[t._v("#")]),t._v(" _cachedMeta")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("_cachedMeta")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController._cachedMeta")]),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L583",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:583"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"chart"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#chart"}},[t._v("#")]),t._v(" chart")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("chart")]),t._v(": "),a("RouterLink",{attrs:{to:"/api/classes/Chart.html"}},[a("code",[t._v("Chart")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.chart")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L581",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:581"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"enableoptionsharing"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enableoptionsharing"}},[t._v("#")]),t._v(" enableOptionSharing")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("enableOptionSharing")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.enableOptionSharing")]),t._v(" "),a("h4",{attrs:{id:"defined-in-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L584",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:584"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"index"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#index"}},[t._v("#")]),t._v(" index")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("index")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.index")]),t._v(" "),a("h4",{attrs:{id:"defined-in-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L582",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:582"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"innerradius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#innerradius"}},[t._v("#")]),t._v(" innerRadius")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("innerRadius")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.innerRadius")]),t._v(" "),a("h4",{attrs:{id:"defined-in-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L334",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:334"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"offsetx"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offsetx"}},[t._v("#")]),t._v(" offsetX")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("offsetX")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.offsetX")]),t._v(" "),a("h4",{attrs:{id:"defined-in-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L336",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:336"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"offsety"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#offsety"}},[t._v("#")]),t._v(" offsetY")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("offsetY")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.offsetY")]),t._v(" "),a("h4",{attrs:{id:"defined-in-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L337",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:337"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"outerradius"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#outerradius"}},[t._v("#")]),t._v(" outerRadius")]),t._v(" "),a("p",[t._v("• "),a("code",[t._v("Readonly")]),t._v(" "),a("strong",[t._v("outerRadius")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.outerRadius")]),t._v(" "),a("h4",{attrs:{id:"defined-in-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L335",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:335"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"supportsdecimation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#supportsdecimation"}},[t._v("#")]),t._v(" supportsDecimation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("supportsDecimation")]),t._v(": "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.supportsDecimation")]),t._v(" "),a("h4",{attrs:{id:"defined-in-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L588",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:588"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("h3",{attrs:{id:"addelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addelements"}},[t._v("#")]),t._v(" addElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("addElements")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.addElements")]),t._v(" "),a("h4",{attrs:{id:"defined-in-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L604",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:604"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"applystack"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#applystack"}},[t._v("#")]),t._v(" applyStack")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("applyStack")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])])])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.applyStack")]),t._v(" "),a("h4",{attrs:{id:"defined-in-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:640"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"buildorupdateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#buildorupdateelements"}},[t._v("#")]),t._v(" buildOrUpdateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("buildOrUpdateElements")]),t._v("("),a("code",[t._v("resetNewElements?")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("resetNewElements?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.buildOrUpdateElements")]),t._v(" "),a("h4",{attrs:{id:"defined-in-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L605",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:605"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatecircumference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatecircumference"}},[t._v("#")]),t._v(" calculateCircumference")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateCircumference")]),t._v("("),a("code",[t._v("value")]),t._v("): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.calculateCircumference")]),t._v(" "),a("h4",{attrs:{id:"defined-in-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L340",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:340"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"calculatetotal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculatetotal"}},[t._v("#")]),t._v(" calculateTotal")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("calculateTotal")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.calculateTotal")]),t._v(" "),a("h4",{attrs:{id:"defined-in-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L339",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:339"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"configure"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#configure"}},[t._v("#")]),t._v(" configure")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("configure")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.configure")]),t._v(" "),a("h4",{attrs:{id:"defined-in-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L602",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:602"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"countvisibleelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#countvisibleelements"}},[t._v("#")]),t._v(" countVisibleElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("countVisibleElements")]),t._v("(): "),a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")])]),t._v(" "),a("h4",{attrs:{id:"defined-in-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L386",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:386"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"draw"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#draw"}},[t._v("#")]),t._v(" draw")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("draw")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.draw")]),t._v(" "),a("h4",{attrs:{id:"defined-in-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L597",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:597"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getallparsedvalues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getallparsedvalues"}},[t._v("#")]),t._v(" getAllParsedValues")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getAllParsedValues")]),t._v("("),a("code",[t._v("scale")]),t._v("): "),a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)])])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getAllParsedValues")]),t._v(" "),a("h4",{attrs:{id:"defined-in-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L591",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:591"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getdataset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getdataset"}},[t._v("#")]),t._v(" getDataset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getDataset")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartdataset"}},[a("code",[t._v("ChartDataset")])]),t._v("")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getDataset")]),t._v(" "),a("h4",{attrs:{id:"defined-in-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L599",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:599"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getlabelandvalue"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getlabelandvalue"}},[t._v("#")]),t._v(" getLabelAndValue")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getLabelAndValue")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("label")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("value")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getLabelAndValue")]),t._v(" "),a("h4",{attrs:{id:"defined-in-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L592",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:592"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmaxoverflow"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmaxoverflow"}},[t._v("#")]),t._v(" getMaxOverflow")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMaxOverflow")]),t._v("(): "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getMaxOverflow")]),t._v(" "),a("h4",{attrs:{id:"defined-in-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L596",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:596"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getmeta"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getmeta"}},[t._v("#")]),t._v(" getMeta")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getMeta")]),t._v("(): "),a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getMeta")]),t._v(" "),a("h4",{attrs:{id:"defined-in-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L600",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:600"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getminmax"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getminmax"}},[t._v("#")]),t._v(" getMinMax")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getMinMax")]),t._v("("),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("canStack?")]),t._v("): "),a("code",[t._v("Object")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("canStack?")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("Object")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getMinMax")]),t._v(" "),a("h4",{attrs:{id:"defined-in-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L647",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:647"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getparsed"}},[t._v("#")]),t._v(" getParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getParsed")]),t._v("("),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("number")]),t._v(" | "),a("code",[t._v("BarParsedData")]),t._v(" | "),a("code",[t._v("CartesianParsedData")]),t._v(" | "),a("code",[t._v("BubbleParsedData")]),t._v(" | "),a("code",[t._v("RadialParsedData")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getParsed")]),t._v(" "),a("h4",{attrs:{id:"defined-in-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L639",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:639"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getscaleforid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getscaleforid"}},[t._v("#")]),t._v(" getScaleForId")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getScaleForId")]),t._v("("),a("code",[t._v("scaleID")]),t._v("): "),a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scaleID")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1),t._v(" "),a("h4",{attrs:{id:"inherited-from-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getScaleForId")]),t._v(" "),a("h4",{attrs:{id:"defined-in-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L601",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:601"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getsharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsharedoptions"}},[t._v("#")]),t._v(" getSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("getSharedOptions")]),t._v("("),a("code",[t._v("options")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("p",[t._v("Utility for checking if the options are shared and should be animated separately.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("options")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getSharedOptions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L614",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:614"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"getstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getstyle"}},[t._v("#")]),t._v(" getStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("getStyle")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("active")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("active")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.getStyle")]),t._v(" "),a("h4",{attrs:{id:"defined-in-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L607",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:607"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"includeoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#includeoptions"}},[t._v("#")]),t._v(" includeOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("includeOptions")]),t._v("("),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("sharedOptions")]),t._v("): "),a("code",[t._v("boolean")])]),t._v(" "),a("p",[t._v("Utility for determining if "),a("code",[t._v("options")]),t._v(" should be included in the updated properties")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("boolean")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.includeOptions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L619",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:619"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"initialize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[t._v("#")]),t._v(" initialize")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("initialize")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.initialize")]),t._v(" "),a("h4",{attrs:{id:"defined-in-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L603",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:603"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"linkscales"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#linkscales"}},[t._v("#")]),t._v(" linkScales")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("linkScales")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.linkScales")]),t._v(" "),a("h4",{attrs:{id:"defined-in-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L590",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:590"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parse"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parse"}},[t._v("#")]),t._v(" parse")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("parse")]),t._v("("),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.parse")]),t._v(" "),a("h4",{attrs:{id:"defined-in-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L635",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:635"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parsearraydata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parsearraydata"}},[t._v("#")]),t._v(" parseArrayData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseArrayData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.parseArrayData")]),t._v(" "),a("h4",{attrs:{id:"defined-in-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L637",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:637"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseobjectdata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseobjectdata"}},[t._v("#")]),t._v(" parseObjectData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parseObjectData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.parseObjectData")]),t._v(" "),a("h4",{attrs:{id:"defined-in-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L638",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:638"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"parseprimitivedata"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parseprimitivedata"}},[t._v("#")]),t._v(" parsePrimitiveData")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("parsePrimitiveData")]),t._v("("),a("code",[t._v("meta")]),t._v(", "),a("code",[t._v("data")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v("): "),a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("meta")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#chartmeta"}},[a("code",[t._v("ChartMeta")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, "),a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">, keyof "),a("RouterLink",{attrs:{to:"/api/interfaces/ChartTypeRegistry.html"}},[a("code",[t._v("ChartTypeRegistry")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("data")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")]),t._v("[]")]),t._v(" "),a("h4",{attrs:{id:"inherited-from-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.parsePrimitiveData")]),t._v(" "),a("h4",{attrs:{id:"defined-in-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L636",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:636"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"removehoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#removehoverstyle"}},[t._v("#")]),t._v(" removeHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("removeHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.removeHoverStyle")]),t._v(" "),a("h4",{attrs:{id:"defined-in-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L632",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:632"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("reset")]),t._v("(): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.reset")]),t._v(" "),a("h4",{attrs:{id:"defined-in-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L598",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:598"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedataelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedataelementoptions"}},[t._v("#")]),t._v(" resolveDataElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDataElementOptions")]),t._v("("),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.resolveDataElementOptions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L609",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:609"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"resolvedatasetelementoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resolvedatasetelementoptions"}},[t._v("#")]),t._v(" resolveDatasetElementOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("resolveDatasetElementOptions")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("AnyObject")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.resolveDatasetElementOptions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L608",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:608"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"sethoverstyle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sethoverstyle"}},[t._v("#")]),t._v(" setHoverStyle")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("setHoverStyle")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("datasetIndex")]),t._v(", "),a("code",[t._v("index")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.setHoverStyle")]),t._v(" "),a("h4",{attrs:{id:"defined-in-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L633",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:633"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"update"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update"}},[t._v("#")]),t._v(" update")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("update")]),t._v("("),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-39"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.update")]),t._v(" "),a("h4",{attrs:{id:"defined-in-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L594",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:594"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelement"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelement"}},[t._v("#")]),t._v(" updateElement")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateElement")]),t._v("("),a("code",[t._v("element")]),t._v(", "),a("code",[t._v("index")]),t._v(", "),a("code",[t._v("properties")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility for updating an element with new properties, using animations when appropriate.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("element")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("index")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("properties")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-40"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.updateElement")]),t._v(" "),a("h4",{attrs:{id:"defined-in-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L625",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:625"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateelements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateelements"}},[t._v("#")]),t._v(" updateElements")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateElements")]),t._v("("),a("code",[t._v("elements")]),t._v(", "),a("code",[t._v("start")]),t._v(", "),a("code",[t._v("count")]),t._v(", "),a("code",[t._v("mode")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("elements")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/#element"}},[a("code",[t._v("Element")])]),t._v("<"),a("code",[t._v("AnyObject")]),t._v(", "),a("code",[t._v("AnyObject")]),t._v(">[]")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("start")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("count")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-41"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.updateElements")]),t._v(" "),a("h4",{attrs:{id:"defined-in-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L593",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:593"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updateindex"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updateindex"}},[t._v("#")]),t._v(" updateIndex")]),t._v(" "),a("p",[t._v("▸ "),a("strong",[t._v("updateIndex")]),t._v("("),a("code",[t._v("datasetIndex")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("datasetIndex")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-42"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.updateIndex")]),t._v(" "),a("h4",{attrs:{id:"defined-in-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L595",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:595"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updaterangefromparsed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updaterangefromparsed"}},[t._v("#")]),t._v(" updateRangeFromParsed")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateRangeFromParsed")]),t._v("("),a("code",[t._v("range")]),t._v(", "),a("code",[t._v("scale")]),t._v(", "),a("code",[t._v("parsed")]),t._v(", "),a("code",[t._v("stack")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("Object")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.max")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("range.min")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("number")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("scale")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("RouterLink",{attrs:{to:"/api/classes/Scale.html"}},[a("code",[t._v("Scale")])]),t._v("<"),a("RouterLink",{attrs:{to:"/api/interfaces/CoreScaleOptions.html"}},[a("code",[t._v("CoreScaleOptions")])]),t._v(">")],1)]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("parsed")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("unknown")]),t._v("[]")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("stack")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("string")]),t._v(" | "),a("code",[t._v("boolean")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-43"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.updateRangeFromParsed")]),t._v(" "),a("h4",{attrs:{id:"defined-in-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L641",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:641"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"updatesharedoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#updatesharedoptions"}},[t._v("#")]),t._v(" updateSharedOptions")]),t._v(" "),a("p",[t._v("▸ "),a("code",[t._v("Protected")]),t._v(" "),a("strong",[t._v("updateSharedOptions")]),t._v("("),a("code",[t._v("sharedOptions")]),t._v(", "),a("code",[t._v("mode")]),t._v(", "),a("code",[t._v("newOptions")]),t._v("): "),a("code",[t._v("void")])]),t._v(" "),a("p",[t._v("Utility to animate the shared options, that are potentially affecting multiple elements.")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("Name")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Type")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("sharedOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("mode")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v('"resize"')]),t._v(" | "),a("code",[t._v('"reset"')]),t._v(" | "),a("code",[t._v('"none"')]),t._v(" | "),a("code",[t._v('"hide"')]),t._v(" | "),a("code",[t._v('"show"')]),t._v(" | "),a("code",[t._v('"normal"')]),t._v(" | "),a("code",[t._v('"active"')])])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("newOptions")])]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[a("code",[t._v("AnyObject")])])])])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[a("code",[t._v("void")])]),t._v(" "),a("h4",{attrs:{id:"inherited-from-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-44"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),a("p",[t._v("DoughnutController.updateSharedOptions")]),t._v(" "),a("h4",{attrs:{id:"defined-in-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L631",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:631"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/97.8b18f487.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/97.8b18f487.js new file mode 100644 index 0000000..cd68c45 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/97.8b18f487.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{428:function(t,e,a){"use strict";a.r(e);var r=a(6),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"interface-polarareacontrollerchartoptions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#interface-polarareacontrollerchartoptions"}},[t._v("#")]),t._v(" Interface: PolarAreaControllerChartOptions")]),t._v(" "),a("h2",{attrs:{id:"properties"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),a("h3",{attrs:{id:"animation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("animation")]),t._v(": "),a("code",[t._v("false")]),t._v(" | "),a("RouterLink",{attrs:{to:"/api/interfaces/DoughnutAnimationOptions.html"}},[a("code",[t._v("DoughnutAnimationOptions")])])],1),t._v(" "),a("h4",{attrs:{id:"defined-in"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L382",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:382"),a("OutboundLink")],1)]),t._v(" "),a("hr"),t._v(" "),a("h3",{attrs:{id:"startangle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#startangle"}},[t._v("#")]),t._v(" startAngle")]),t._v(" "),a("p",[t._v("• "),a("strong",[t._v("startAngle")]),t._v(": "),a("code",[t._v("number")])]),t._v(" "),a("p",[t._v("Starting angle to draw arcs for the first item in a dataset. In degrees, 0 is at top.")]),t._v(" "),a("p",[a("strong",[a("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),a("h4",{attrs:{id:"defined-in-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L380",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:380"),a("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/98.cb259cd0.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/98.cb259cd0.js new file mode 100644 index 0000000..1cff327 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/98.cb259cd0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{429:function(t,e,r){"use strict";r.r(e);var a=r(6),o=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-polarareacontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-polarareacontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: PolarAreaControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[r("code",[t._v("DoughnutControllerDatasetOptions")])])],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("PolarAreaControllerDatasetOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"angle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#angle"}},[t._v("#")]),t._v(" angle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("angle")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Arc angle to cover. - for polar only")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" circumference / (arc count)")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L370",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:370"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v("> & { "),r("code",[t._v("onComplete?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" ; "),r("code",[t._v("onProgress?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" }")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#animation"}},[t._v("animation")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#animations"}},[t._v("animations")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#backgroundcolor"}},[t._v("backgroundColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderalign"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderalign"}},[t._v("#")]),t._v(" borderAlign")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderAlign")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v('"center"')]),t._v(" | "),r("code",[t._v('"inner"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Arc stroke alignment.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#borderalign"}},[t._v("borderAlign")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1732",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1732"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#bordercolor"}},[t._v("borderColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[t._v("#")]),t._v(" borderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line join style. See MDN. Default is 'round' when "),r("code",[t._v("borderAlign")]),t._v(" is 'inner', else 'bevel'.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#borderjoinstyle"}},[t._v("borderJoinStyle")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1737",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1737"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderradius"}},[t._v("#")]),t._v(" borderRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ArcBorderRadius.html"}},[r("code",[t._v("ArcBorderRadius")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Sets the border radius for arcs")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#borderradius"}},[t._v("borderRadius")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1743",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1743"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#borderwidth"}},[t._v("borderWidth")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circular"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circular"}},[t._v("#")]),t._v(" circular")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circular")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("If false, Arc will be flat.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#circular"}},[t._v("circular")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1754",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1754"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"circumference"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#circumference"}},[t._v("#")]),t._v(" circumference")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("circumference")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Sweep to allow arcs to cover.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 360")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#circumference"}},[t._v("circumference")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L250",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:250"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#hoverbackgroundcolor"}},[t._v("hoverBackgroundColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#hoverbordercolor"}},[t._v("hoverBorderColor")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#hoverborderwidth"}},[t._v("hoverBorderWidth")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoveroffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoveroffset"}},[t._v("#")]),t._v(" hoverOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#hoveroffset"}},[t._v("hoverOffset")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1758",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1758"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"offset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#offset"}},[t._v("#")]),t._v(" offset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("offset")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Arc offset (in pixels).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#offset"}},[t._v("offset")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L255",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:255"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Starting angle to draw this dataset from.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#rotation"}},[t._v("rotation")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L261",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:261"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spacing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spacing"}},[t._v("#")]),t._v(" spacing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spacing")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("Similar to the "),r("code",[t._v("offset")]),t._v(" option, but applies to all arcs. This can be used to to add spaces\nbetween arcs")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#spacing"}},[t._v("spacing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L274",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:274"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"transitions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("transitions")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[r("code",[t._v("TransitionsSpec")])]),t._v("<"),r("code",[t._v('"doughnut"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#transitions"}},[t._v("transitions")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"weight"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#weight"}},[t._v("#")]),t._v(" weight")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("weight")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html"}},[t._v("DoughnutControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/DoughnutControllerDatasetOptions.html#weight"}},[t._v("weight")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L267",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:267"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/99.6251650a.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/99.6251650a.js new file mode 100644 index 0000000..eebc9b9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/99.6251650a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{430:function(t,e,r){"use strict";r.r(e);var a=r(6),i=Object(a.a)({},(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"interface-radarcontrollerdatasetoptions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#interface-radarcontrollerdatasetoptions"}},[t._v("#")]),t._v(" Interface: RadarControllerDatasetOptions")]),t._v(" "),r("h2",{attrs:{id:"hierarchy"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hierarchy"}},[t._v("#")]),t._v(" Hierarchy")]),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[r("code",[t._v("ControllerDatasetOptions")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/PointOptions.html"}},[r("code",[t._v("PointOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/PointHoverOptions.html"}},[r("code",[t._v("PointHoverOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedOptions.html"}},[r("code",[t._v("PointPrefixedOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/PointPrefixedHoverOptions.html"}},[r("code",[t._v("PointPrefixedHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#scriptableandarrayoptions"}},[r("code",[t._v("ScriptableAndArrayOptions")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/interfaces/LineOptions.html"}},[r("code",[t._v("LineOptions")])]),t._v(" & "),r("RouterLink",{attrs:{to:"/api/interfaces/LineHoverOptions.html"}},[r("code",[t._v("LineHoverOptions")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/api/#animationoptions"}},[r("code",[t._v("AnimationOptions")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">")],1),t._v(" "),r("p",[t._v("↳ "),r("strong",[r("code",[t._v("RadarControllerDatasetOptions")])])])])]),t._v(" "),r("h2",{attrs:{id:"properties"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[t._v("#")]),t._v(" Properties")]),t._v(" "),r("h3",{attrs:{id:"animation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animation"}},[t._v("#")]),t._v(" animation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animation")]),t._v(": "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/#animationspec"}},[r("code",[t._v("AnimationSpec")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v("> & { "),r("code",[t._v("onComplete?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" ; "),r("code",[t._v("onProgress?")]),t._v(": ("),r("code",[t._v("event")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/interfaces/AnimationEvent.html"}},[r("code",[t._v("AnimationEvent")])]),t._v(") => "),r("code",[t._v("void")]),t._v(" }")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animation")]),t._v(" "),r("h4",{attrs:{id:"defined-in"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1640",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1640"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"animations"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#animations"}},[t._v("#")]),t._v(" animations")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("animations")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#animationsspec"}},[r("code",[t._v("AnimationsSpec")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-2"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.animations")]),t._v(" "),r("h4",{attrs:{id:"defined-in-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-2"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1650",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1650"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"backgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#backgroundcolor"}},[t._v("#")]),t._v(" backgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-3"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.backgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-3"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1696",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1696"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercapstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercapstyle"}},[t._v("#")]),t._v(" borderCapStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line cap style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'butt'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-4"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderCapStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-4"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1779",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1779"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"bordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bordercolor"}},[t._v("#")]),t._v(" borderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-5"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-5"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1695",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1695"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdash"}},[t._v("#")]),t._v(" borderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line dash. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" []")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-6"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderDash")]),t._v(" "),r("h4",{attrs:{id:"defined-in-6"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-6"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1784",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1784"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderdashoffset"}},[t._v("#")]),t._v(" borderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line dash offset. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0.0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-7"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderDashOffset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-7"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-7"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1789",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1789"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderjoinstyle"}},[t._v("#")]),t._v(" borderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Line join style. See MDN.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'miter'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-8"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderJoinStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-8"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-8"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1794",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1794"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"borderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#borderwidth"}},[t._v("#")]),t._v(" borderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-9"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.borderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-9"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-9"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1694",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1694"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"capbezierpoints"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#capbezierpoints"}},[t._v("#")]),t._v(" capBezierPoints")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("capBezierPoints")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("true to keep Bézier control inside the chart, false for no restriction.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-10"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.capBezierPoints")]),t._v(" "),r("h4",{attrs:{id:"defined-in-10"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-10"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1799",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1799"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"clip"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#clip"}},[t._v("#")]),t._v(" clip")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("clip")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("false")]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ChartArea.html"}},[r("code",[t._v("ChartArea")])])],1),t._v(" "),r("p",[t._v("How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-11"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#clip"}},[t._v("clip")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-11"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-11"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L70",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:70"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"cubicinterpolationmode"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cubicinterpolationmode"}},[t._v("#")]),t._v(" cubicInterpolationMode")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("cubicInterpolationMode")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v('"default"')]),t._v(" | "),r("code",[t._v('"monotone"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Interpolation mode to apply.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'default'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-12"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.cubicInterpolationMode")]),t._v(" "),r("h4",{attrs:{id:"defined-in-12"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-12"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1804",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1804"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"drawactiveelementsontop"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#drawactiveelementsontop"}},[t._v("#")]),t._v(" drawActiveElementsOnTop")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("drawActiveElementsOnTop")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Draw the active elements over the other elements of the dataset,")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" true")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-13"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.drawActiveElementsOnTop")]),t._v(" "),r("h4",{attrs:{id:"defined-in-13"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-13"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1904",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1904"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"fill"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#fill"}},[t._v("#")]),t._v(" fill")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("fill")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#filltarget"}},[r("code",[t._v("FillTarget")])]),t._v(" | "),r("RouterLink",{attrs:{to:"/api/interfaces/ComplexFillTarget.html"}},[r("code",[t._v("ComplexFillTarget")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-14"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.fill")]),t._v(" "),r("h4",{attrs:{id:"defined-in-14"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-14"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1818",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1818"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hidden"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hidden"}},[t._v("#")]),t._v(" hidden")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hidden")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-15"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#hidden"}},[t._v("hidden")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-15"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-15"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L88",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:88"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hitradius"}},[t._v("#")]),t._v(" hitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hitRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Extra radius added to point radius for hit detection.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 1")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-16"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hitRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-16"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-16"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1889",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1889"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbackgroundcolor"}},[t._v("#")]),t._v(" hoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-17"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-17"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-17"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1702",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1702"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercapstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercapstyle"}},[t._v("#")]),t._v(" hoverBorderCapStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-18"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderCapStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-18"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-18"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1836",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1836"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverbordercolor"}},[t._v("#")]),t._v(" hoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-19"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-19"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-19"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1701",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1701"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderdash"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdash"}},[t._v("#")]),t._v(" hoverBorderDash")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-20"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderDash")]),t._v(" "),r("h4",{attrs:{id:"defined-in-20"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-20"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1837",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1837"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderdashoffset"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderdashoffset"}},[t._v("#")]),t._v(" hoverBorderDashOffset")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-21"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderDashOffset")]),t._v(" "),r("h4",{attrs:{id:"defined-in-21"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-21"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1838",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1838"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderjoinstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderjoinstyle"}},[t._v("#")]),t._v(" hoverBorderJoinStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-22"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderJoinStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-22"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-22"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1839",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1839"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverborderwidth"}},[t._v("#")]),t._v(" hoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-23"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-23"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-23"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1700",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1700"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"hoverradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#hoverradius"}},[t._v("#")]),t._v(" hoverRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("hoverRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point radius when hovered.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 4")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-24"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.hoverRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-24"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-24"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1912",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1912"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"indexaxis"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#indexaxis"}},[t._v("#")]),t._v(" indexAxis")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("indexAxis")]),t._v(": "),r("code",[t._v('"x"')]),t._v(" | "),r("code",[t._v('"y"')])]),t._v(" "),r("p",[t._v("The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas.")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'x'")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-25"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#indexaxis"}},[t._v("indexAxis")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-25"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-25"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L66",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:66"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"label"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#label"}},[t._v("#")]),t._v(" label")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("label")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The label for the dataset which appears in the legend and tooltips.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-26"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#label"}},[t._v("label")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-26"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-26"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L74",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:74"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"normalized"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#normalized"}},[t._v("#")]),t._v(" normalized")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("normalized")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-27"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#normalized"}},[t._v("normalized")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-27"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-27"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L58",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:58"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"order"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#order"}},[t._v("#")]),t._v(" order")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("order")]),t._v(": "),r("code",[t._v("number")])]),t._v(" "),r("p",[t._v("The drawing order of dataset. Also affects order for stacking, tooltip and legend.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-28"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#order"}},[t._v("order")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-28"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-28"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L78",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:78"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"parsing"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parsing"}},[t._v("#")]),t._v(" parsing")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("parsing")]),t._v(": "),r("code",[t._v("false")]),t._v(" | { [key: string]: "),r("code",[t._v("string")]),t._v("; }")]),t._v(" "),r("p",[t._v("How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-29"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#parsing"}},[t._v("parsing")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-29"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-29"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L49",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:49"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbackgroundcolor"}},[t._v("#")]),t._v(" pointBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The fill color for points.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-30"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-30"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-30"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-30"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1919",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1919"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointbordercolor"}},[t._v("#")]),t._v(" pointBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The border color for points.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-31"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-31"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-31"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-31"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1923",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1923"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointborderwidth"}},[t._v("#")]),t._v(" pointBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The width of the point border in pixels.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-32"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-32"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-32"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-32"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1927",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1927"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhitradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhitradius"}},[t._v("#")]),t._v(" pointHitRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHitRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The pixel size of the non-displayed point that reacts to mouse events.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-33"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-33"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHitRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-33"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-33"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1931",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1931"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverbackgroundcolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbackgroundcolor"}},[t._v("#")]),t._v(" pointHoverBackgroundColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBackgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point background color when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-34"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-34"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBackgroundColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-34"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-34"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1950",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1950"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverbordercolor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverbordercolor"}},[t._v("#")]),t._v(" pointHoverBorderColor")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBorderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point border color when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-35"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-35"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBorderColor")]),t._v(" "),r("h4",{attrs:{id:"defined-in-35"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-35"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1954",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1954"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverborderwidth"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverborderwidth"}},[t._v("#")]),t._v(" pointHoverBorderWidth")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverBorderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Border width of point when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-36"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-36"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverBorderWidth")]),t._v(" "),r("h4",{attrs:{id:"defined-in-36"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-36"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1958",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1958"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointhoverradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointhoverradius"}},[t._v("#")]),t._v(" pointHoverRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointHoverRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The radius of the point when hovered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-37"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-37"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointHoverRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-37"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-37"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1962",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1962"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointradius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointradius"}},[t._v("#")]),t._v(" pointRadius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRadius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The radius of the point shape. If set to 0, the point is not rendered.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-38"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-38"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointRadius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-38"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-38"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1935",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1935"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointrotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointrotation"}},[t._v("#")]),t._v(" pointRotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointRotation")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("The rotation of the point in degrees.")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-39"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-39"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointRotation")]),t._v(" "),r("h4",{attrs:{id:"defined-in-39"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-39"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1939",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1939"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"pointstyle"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pointstyle"}},[t._v("#")]),t._v(" pointStyle")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("pointStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#pointstyle"}},[r("code",[t._v("PointStyle")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point style")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 'circle;")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-40"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-40"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.pointStyle")]),t._v(" "),r("h4",{attrs:{id:"defined-in-40"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-40"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1894",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1894"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"radius"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#radius"}},[t._v("#")]),t._v(" radius")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("radius")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point radius")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 3")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-41"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-41"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.radius")]),t._v(" "),r("h4",{attrs:{id:"defined-in-41"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-41"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1884",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1884"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"rotation"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rotation"}},[t._v("#")]),t._v(" rotation")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("rotation")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Point rotation (in degrees).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-42"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-42"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.rotation")]),t._v(" "),r("h4",{attrs:{id:"defined-in-42"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-42"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1899",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1899"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"segment"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#segment"}},[t._v("#")]),t._v(" segment")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("segment")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<{ "),r("code",[t._v("backgroundColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderCapStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineCap")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderColor")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("RouterLink",{attrs:{to:"/api/#color"}},[r("code",[t._v("Color")])]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderDash")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v("[], "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderDashOffset")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderJoinStyle")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("CanvasLineJoin")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> ; "),r("code",[t._v("borderWidth")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptable"}},[r("code",[t._v("Scriptable")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableLineSegmentContext.html"}},[r("code",[t._v("ScriptableLineSegmentContext")])]),t._v("> }, "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-43"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-43"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.segment")]),t._v(" "),r("h4",{attrs:{id:"defined-in-43"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-43"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1824",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1824"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"showline"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#showline"}},[t._v("#")]),t._v(" showLine")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("showLine")]),t._v(": "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("If false, the line is not drawn for this dataset.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-44"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-44"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L415",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:415"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"spangaps"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#spangaps"}},[t._v("#")]),t._v(" spanGaps")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("spanGaps")]),t._v(": "),r("code",[t._v("number")]),t._v(" | "),r("code",[t._v("boolean")])]),t._v(" "),r("p",[t._v("If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.")]),t._v(" "),r("h4",{attrs:{id:"overrides"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#overrides"}},[t._v("#")]),t._v(" Overrides")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.spanGaps")]),t._v(" "),r("h4",{attrs:{id:"defined-in-45"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-45"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L410",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:410"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stack"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stack"}},[t._v("#")]),t._v(" stack")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stack")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack).")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-44"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-44"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html"}},[t._v("ControllerDatasetOptions")]),t._v("."),r("RouterLink",{attrs:{to:"/api/interfaces/ControllerDatasetOptions.html#stack"}},[t._v("stack")])],1),t._v(" "),r("h4",{attrs:{id:"defined-in-46"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-46"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L83",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:83"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"stepped"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#stepped"}},[t._v("#")]),t._v(" stepped")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("stepped")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("boolean")]),t._v(" | "),r("code",[t._v('"middle"')]),t._v(" | "),r("code",[t._v('"before"')]),t._v(" | "),r("code",[t._v('"after"')]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("true to show the line as a stepped line (tension will be ignored).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" false")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-45"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-45"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.stepped")]),t._v(" "),r("h4",{attrs:{id:"defined-in-47"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-47"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1814",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1814"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"tension"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#tension"}},[t._v("#")]),t._v(" tension")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("tension")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#scriptableandarray"}},[r("code",[t._v("ScriptableAndArray")])]),t._v("<"),r("code",[t._v("number")]),t._v(", "),r("RouterLink",{attrs:{to:"/api/interfaces/ScriptableContext.html"}},[r("code",[t._v("ScriptableContext")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">>")],1),t._v(" "),r("p",[t._v("Bézier curve tension (0 for no Bézier curves).")]),t._v(" "),r("p",[r("strong",[r("code",[t._v("default")])]),t._v(" 0")]),t._v(" "),r("h4",{attrs:{id:"inherited-from-46"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-46"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("ScriptableAndArrayOptions.tension")]),t._v(" "),r("h4",{attrs:{id:"defined-in-48"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-48"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1809",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1809"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"transitions"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#transitions"}},[t._v("#")]),t._v(" transitions")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("transitions")]),t._v(": "),r("RouterLink",{attrs:{to:"/api/#transitionsspec"}},[r("code",[t._v("TransitionsSpec")])]),t._v("<"),r("code",[t._v('"radar"')]),t._v(">")],1),t._v(" "),r("h4",{attrs:{id:"inherited-from-47"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inherited-from-47"}},[t._v("#")]),t._v(" Inherited from")]),t._v(" "),r("p",[t._v("AnimationOptions.transitions")]),t._v(" "),r("h4",{attrs:{id:"defined-in-49"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-49"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L1651",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:1651"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"xaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xaxisid"}},[t._v("#")]),t._v(" xAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("xAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the x axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-50"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-50"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L401",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:401"),r("OutboundLink")],1)]),t._v(" "),r("hr"),t._v(" "),r("h3",{attrs:{id:"yaxisid"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#yaxisid"}},[t._v("#")]),t._v(" yAxisID")]),t._v(" "),r("p",[t._v("• "),r("strong",[t._v("yAxisID")]),t._v(": "),r("code",[t._v("string")])]),t._v(" "),r("p",[t._v("The ID of the y axis to plot this dataset on.")]),t._v(" "),r("h4",{attrs:{id:"defined-in-51"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#defined-in-51"}},[t._v("#")]),t._v(" Defined in")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/chartjs/Chart.js/blob/5ea4b3a/types/index.esm.d.ts#L405",target:"_blank",rel:"noopener noreferrer"}},[t._v("index.esm.d.ts:405"),r("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/app.7e0dc8c8.js b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/app.7e0dc8c8.js new file mode 100644 index 0000000..332d406 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/assets/js/app.7e0dc8c8.js @@ -0,0 +1,54 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function n(n){for(var a,o,s=n[0],l=n[1],d=n[2],u=0,h=[];u("number"==typeof e||e instanceof Number)&&isFinite(+e);function d(e,n){return l(e)?e:n}function c(e,n){return void 0===e?n:e}const u=(e,n)=>"string"==typeof e&&e.endsWith("%")?parseFloat(e)/100:e/n,h=(e,n)=>"string"==typeof e&&e.endsWith("%")?parseFloat(e)/100*n:+e;function p(e,n,t){if(e&&"function"==typeof e.call)return e.apply(t,n)}function f(e,n,t,a){let i,r,l;if(o(e))if(r=e.length,a)for(i=r-1;i>=0;i--)n.call(t,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function D(e,n){return(T[n]||(T[n]=function(e){const n=function(e){const n=e.split("."),t=[];let a="";for(const e of n)a+=e,a.endsWith("\\")?a=a.slice(0,-1)+".":(t.push(a),a="");return t}(e);return e=>{for(const t of n){if(""===t)break;e=e&&e[t]}return e}}(n)))(e)}function w(e){return e.charAt(0).toUpperCase()+e.slice(1)}const O=e=>void 0!==e,k=e=>"function"==typeof e,S=(e,n)=>{if(e.size!==n.size)return!1;for(const t of e)if(!n.has(t))return!1;return!0};function P(e){return"mouseup"===e.type||"click"===e.type||"contextmenu"===e.type}const A=Math.PI,R=2*A,I=R+A,_=Number.POSITIVE_INFINITY,L=A/180,E=A/2,M=A/4,j=2*A/3,U=Math.log10,N=Math.sign;function B(e){const n=Math.round(e);e=H(e,n,e/1e3)?n:e;const t=Math.pow(10,Math.floor(U(e))),a=e/t;return(a<=1?1:a<=2?2:a<=5?5:10)*t}function F(e){const n=[],t=Math.sqrt(e);let a;for(a=1;ae-n).pop(),n}function z(e){return!isNaN(parseFloat(e))&&isFinite(e)}function H(e,n,t){return Math.abs(e-n)=e}function W(e,n,t){let a,i,r;for(a=0,i=e.length;al&&d=Math.min(n,t)-a&&e<=Math.max(n,t)+a}function te(e,n,t){t=t||(t=>e[t]1;)a=r+i>>1,t(a)?r=a:i=a;return{lo:r,hi:i}}const ae=(e,n,t,a)=>te(e,t,a?a=>e[a][n]<=t:a=>e[a][n]te(e,t,a=>e[a][n]>=t);function re(e,n,t){let a=0,i=e.length;for(;aa&&e[i-1]>t;)i--;return a>0||i{const t="_onData"+w(n),a=e[n];Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value(...n){const i=a.apply(this,n);return e._chartjs.listeners.forEach(e=>{"function"==typeof e[t]&&e[t](...n)}),i}})}))}function le(e,n){const t=e._chartjs;if(!t)return;const a=t.listeners,i=a.indexOf(n);-1!==i&&a.splice(i,1),a.length>0||(oe.forEach(n=>{delete e[n]}),delete e._chartjs)}function de(e){const n=new Set;let t,a;for(t=0,a=e.length;tArray.prototype.slice.call(e));let i=!1,r=[];return function(...t){r=a(t),i||(i=!0,ce.call(window,()=>{i=!1,e.apply(n,r)}))}}function he(e,n){let t;return function(...a){return n?(clearTimeout(t),t=setTimeout(e,n,a)):e.apply(this,a),n}}const pe=e=>"start"===e?"left":"end"===e?"right":"center",fe=(e,n,t)=>"start"===e?n:"end"===e?t:(n+t)/2,me=(e,n,t,a)=>e===(a?"left":"right")?t:"center"===e?(n+t)/2:n;function ge(e,n,t){const a=n.length;let i=0,r=a;if(e._sorted){const{iScale:o,_parsed:s}=e,l=o.axis,{min:d,max:c,minDefined:u,maxDefined:h}=o.getUserBounds();u&&(i=Q(Math.min(ae(s,o.axis,d).lo,t?a:ae(n,l,o.getPixelForValue(d)).lo),0,a-1)),r=h?Q(Math.max(ae(s,o.axis,c,!0).hi+1,t?0:ae(n,l,o.getPixelForValue(c),!0).hi+1),i,a)-i:a-i}return{start:i,count:r}}function be(e){const{xScale:n,yScale:t,_scaleRanges:a}=e,i={xmin:n.min,xmax:n.max,ymin:t.min,ymax:t.max};if(!a)return e._scaleRanges=i,!0;const r=a.xmin!==n.min||a.xmax!==n.max||a.ymin!==t.min||a.ymax!==t.max;return Object.assign(a,i),r}const ve=e=>0===e||1===e,ye=(e,n,t)=>-Math.pow(2,10*(e-=1))*Math.sin((e-n)*R/t),xe=(e,n,t)=>Math.pow(2,-10*e)*Math.sin((e-n)*R/t)+1,Ce={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>1-Math.cos(e*E),easeOutSine:e=>Math.sin(e*E),easeInOutSine:e=>-.5*(Math.cos(A*e)-1),easeInExpo:e=>0===e?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>ve(e)?e:e<.5?.5*Math.pow(2,10*(2*e-1)):.5*(2-Math.pow(2,-10*(2*e-1))),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>ve(e)?e:ye(e,.075,.3),easeOutElastic:e=>ve(e)?e:xe(e,.075,.3),easeInOutElastic(e){const n=.1125;return ve(e)?e:e<.5?.5*ye(2*e,n,.45):.5+.5*xe(2*e-1,n,.45)},easeInBack(e){const n=1.70158;return e*e*((n+1)*e-n)},easeOutBack(e){const n=1.70158;return(e-=1)*e*((n+1)*e+n)+1},easeInOutBack(e){let n=1.70158;return(e/=.5)<1?e*e*((1+(n*=1.525))*e-n)*.5:.5*((e-=2)*e*((1+(n*=1.525))*e+n)+2)},easeInBounce:e=>1-Ce.easeOutBounce(1-e),easeOutBounce(e){const n=7.5625,t=2.75;return e<1/t?n*e*e:e<2/t?n*(e-=1.5/t)*e+.75:e<2.5/t?n*(e-=2.25/t)*e+.9375:n*(e-=2.625/t)*e+.984375},easeInOutBounce:e=>e<.5?.5*Ce.easeInBounce(2*e):.5*Ce.easeOutBounce(2*e-1)+.5}; +/*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + */ +function Te(e){return e+.5|0}const De=(e,n,t)=>Math.max(Math.min(e,t),n);function we(e){return De(Te(2.55*e),0,255)}function Oe(e){return De(Te(255*e),0,255)}function ke(e){return De(Te(e/2.55)/100,0,1)}function Se(e){return De(Te(100*e),0,100)}const Pe={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Ae=[..."0123456789ABCDEF"],Re=e=>Ae[15&e],Ie=e=>Ae[(240&e)>>4]+Ae[15&e],_e=e=>(240&e)>>4==(15&e);function Le(e){var n=(e=>_e(e.r)&&_e(e.g)&&_e(e.b)&&_e(e.a))(e)?Re:Ie;return e?"#"+n(e.r)+n(e.g)+n(e.b)+((e,n)=>e<255?n(e):"")(e.a,n):void 0}const Ee=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Me(e,n,t){const a=n*Math.min(t,1-t),i=(n,i=(n+e/30)%12)=>t-a*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function je(e,n,t){const a=(a,i=(a+e/60)%6)=>t-t*n*Math.max(Math.min(i,4-i,1),0);return[a(5),a(3),a(1)]}function Ue(e,n,t){const a=Me(e,1,.5);let i;for(n+t>1&&(i=1/(n+t),n*=i,t*=i),i=0;i<3;i++)a[i]*=1-n-t,a[i]+=n;return a}function Ne(e){const n=e.r/255,t=e.g/255,a=e.b/255,i=Math.max(n,t,a),r=Math.min(n,t,a),o=(i+r)/2;let s,l,d;return i!==r&&(d=i-r,l=o>.5?d/(2-i-r):d/(i+r),s=function(e,n,t,a,i){return e===i?(n-t)/a+(n>16&255,r>>8&255,255&r]}return e}(),Ye.transparent=[0,0,0,0]);const n=Ye[e.toLowerCase()];return n&&{r:n[0],g:n[1],b:n[2],a:4===n.length?n[3]:255}}const Ge=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const qe=e=>e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,Xe=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function Je(e,n,t){if(e){let a=Ne(e);a[n]=Math.max(0,Math.min(a[n]+a[n]*t,0===n?360:1)),a=Fe(a),e.r=a[0],e.g=a[1],e.b=a[2]}}function Ze(e,n){return e?Object.assign(n||{},e):e}function Ke(e){var n={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(n={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(n.a=Oe(e[3]))):(n=Ze(e,{r:0,g:0,b:0,a:1})).a=Oe(n.a),n}function Qe(e){return"r"===e.charAt(0)?function(e){const n=Ge.exec(e);let t,a,i,r=255;if(n){if(n[7]!==t){const e=+n[7];r=n[8]?we(e):De(255*e,0,255)}return t=+n[1],a=+n[3],i=+n[5],t=255&(n[2]?we(t):De(t,0,255)),a=255&(n[4]?we(a):De(a,0,255)),i=255&(n[6]?we(i):De(i,0,255)),{r:t,g:a,b:i,a:r}}}(e):He(e)}class en{constructor(e){if(e instanceof en)return e;const n=typeof e;let t;var a,i,r;"object"===n?t=Ke(e):"string"===n&&(r=(a=e).length,"#"===a[0]&&(4===r||5===r?i={r:255&17*Pe[a[1]],g:255&17*Pe[a[2]],b:255&17*Pe[a[3]],a:5===r?17*Pe[a[4]]:255}:7!==r&&9!==r||(i={r:Pe[a[1]]<<4|Pe[a[2]],g:Pe[a[3]]<<4|Pe[a[4]],b:Pe[a[5]]<<4|Pe[a[6]],a:9===r?Pe[a[7]]<<4|Pe[a[8]]:255})),t=i||$e(e)||Qe(e)),this._rgb=t,this._valid=!!t}get valid(){return this._valid}get rgb(){var e=Ze(this._rgb);return e&&(e.a=ke(e.a)),e}set rgb(e){this._rgb=Ke(e)}rgbString(){return this._valid?(e=this._rgb)&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${ke(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`):void 0;var e}hexString(){return this._valid?Le(this._rgb):void 0}hslString(){return this._valid?function(e){if(!e)return;const n=Ne(e),t=n[0],a=Se(n[1]),i=Se(n[2]);return e.a<255?`hsla(${t}, ${a}%, ${i}%, ${ke(e.a)})`:`hsl(${t}, ${a}%, ${i}%)`}(this._rgb):void 0}mix(e,n){if(e){const t=this.rgb,a=e.rgb;let i;const r=n===i?.5:n,o=2*r-1,s=t.a-a.a,l=((o*s==-1?o:(o+s)/(1+o*s))+1)/2;i=1-l,t.r=255&l*t.r+i*a.r+.5,t.g=255&l*t.g+i*a.g+.5,t.b=255&l*t.b+i*a.b+.5,t.a=r*t.a+(1-r)*a.a,this.rgb=t}return this}interpolate(e,n){return e&&(this._rgb=function(e,n,t){const a=Xe(ke(e.r)),i=Xe(ke(e.g)),r=Xe(ke(e.b));return{r:Oe(qe(a+t*(Xe(ke(n.r))-a))),g:Oe(qe(i+t*(Xe(ke(n.g))-i))),b:Oe(qe(r+t*(Xe(ke(n.b))-r))),a:e.a+t*(n.a-e.a)}}(this._rgb,e._rgb,n)),this}clone(){return new en(this.rgb)}alpha(e){return this._rgb.a=Oe(e),this}clearer(e){return this._rgb.a*=1-e,this}greyscale(){const e=this._rgb,n=Te(.3*e.r+.59*e.g+.11*e.b);return e.r=e.g=e.b=n,this}opaquer(e){return this._rgb.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Je(this._rgb,2,e),this}darken(e){return Je(this._rgb,2,-e),this}saturate(e){return Je(this._rgb,1,e),this}desaturate(e){return Je(this._rgb,1,-e),this}rotate(e){return function(e,n){var t=Ne(e);t[0]=ze(t[0]+n),t=Fe(t),e.r=t[0],e.g=t[1],e.b=t[2]}(this._rgb,e),this}}function nn(e){return new en(e)}function tn(e){if(e&&"object"==typeof e){const n=e.toString();return"[object CanvasPattern]"===n||"[object CanvasGradient]"===n}return!1}function an(e){return tn(e)?e:nn(e)}function rn(e){return tn(e)?e:nn(e).saturate(.5).darken(.1).hexString()}const on=Object.create(null),sn=Object.create(null);function ln(e,n){if(!n)return e;const t=n.split(".");for(let n=0,a=t.length;ne.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,n)=>rn(n.backgroundColor),this.hoverBorderColor=(e,n)=>rn(n.borderColor),this.hoverColor=(e,n)=>rn(n.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e)}set(e,n){return dn(this,e,n)}get(e){return ln(this,e)}describe(e,n){return dn(sn,e,n)}override(e,n){return dn(on,e,n)}route(e,n,t,a){const i=ln(this,e),r=ln(this,t),o="_"+n;Object.defineProperties(i,{[o]:{value:i[n],writable:!0},[n]:{enumerable:!0,get(){const e=this[o],n=r[a];return s(e)?Object.assign({},n,e):c(e,n)},set(e){this[o]=e}}})}}({_scriptable:e=>!e.startsWith("on"),_indexable:e=>"events"!==e,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function un(e,n,t,a,i){let r=n[i];return r||(r=n[i]=e.measureText(i).width,t.push(i)),r>a&&(a=r),a}function hn(e,n,t,a){let i=(a=a||{}).data=a.data||{},r=a.garbageCollect=a.garbageCollect||[];a.font!==n&&(i=a.data={},r=a.garbageCollect=[],a.font=n),e.save(),e.font=n;let s=0;const l=t.length;let d,c,u,h,p;for(d=0;dt.length){for(d=0;d0&&e.stroke()}}function bn(e,n,t){return t=t||.5,!n||e&&e.x>n.left-t&&e.xn.top-t&&e.y0&&""!==s.strokeColor;let c,u;for(e.save(),e.font=i.string,function(e,n){n.translation&&e.translate(n.translation[0],n.translation[1]);r(n.rotation)||e.rotate(n.rotation);n.color&&(e.fillStyle=n.color);n.textAlign&&(e.textAlign=n.textAlign);n.textBaseline&&(e.textBaseline=n.textBaseline)}(e,s),c=0;cc(e[t],e[n[t]]):n=>e[n]:()=>e;for(const e of i)t[e]=+r(e)||0;return t}function An(e){return Pn(e,{top:"y",right:"x",bottom:"y",left:"x"})}function Rn(e){return Pn(e,["topLeft","topRight","bottomLeft","bottomRight"])}function In(e){const n=An(e);return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function _n(e,n){e=e||{},n=n||cn.font;let t=c(e.size,n.size);"string"==typeof t&&(t=parseInt(t,10));let a=c(e.style,n.style);a&&!(""+a).match(kn)&&(console.warn('Invalid font style specified: "'+a+'"'),a="");const i={family:c(e.family,n.family),lineHeight:Sn(c(e.lineHeight,n.lineHeight),t),size:t,style:a,weight:c(e.weight,n.weight),string:""};return i.string=function(e){return!e||r(e.size)||r(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(i),i}function Ln(e,n,t,a){let i,r,s,l=!0;for(i=0,r=e.length;it&&0===e?0:e+n;return{min:o(a,-Math.abs(r)),max:o(i,r)}}function Mn(e,n){return Object.assign(Object.create(e),n)}function jn(e,n=[""],t=e,a,i=(()=>e[0])){O(a)||(a=Gn("_fallback",e));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:t,_fallback:a,_getTarget:i,override:i=>jn([i,...e],n,t,a)};return new Proxy(r,{deleteProperty:(n,t)=>(delete n[t],delete n._keys,delete e[0][t],!0),get:(t,a)=>zn(t,a,()=>function(e,n,t,a){let i;for(const r of n)if(i=Gn(Bn(r,e),t),O(i))return Fn(e,i)?Yn(t,a,e,i):i}(a,n,e,t)),getOwnPropertyDescriptor:(e,n)=>Reflect.getOwnPropertyDescriptor(e._scopes[0],n),getPrototypeOf:()=>Reflect.getPrototypeOf(e[0]),has:(e,n)=>qn(e).includes(n),ownKeys:e=>qn(e),set(e,n,t){const a=e._storage||(e._storage=i());return e[n]=a[n]=t,delete e._keys,!0}})}function Un(e,n,t,a){const i={_cacheable:!1,_proxy:e,_context:n,_subProxy:t,_stack:new Set,_descriptors:Nn(e,a),setContext:n=>Un(e,n,t,a),override:i=>Un(e.override(i),n,t,a)};return new Proxy(i,{deleteProperty:(n,t)=>(delete n[t],delete e[t],!0),get:(e,n,t)=>zn(e,n,()=>function(e,n,t){const{_proxy:a,_context:i,_subProxy:r,_descriptors:l}=e;let d=a[n];k(d)&&l.isScriptable(n)&&(d=function(e,n,t,a){const{_proxy:i,_context:r,_subProxy:o,_stack:s}=t;if(s.has(e))throw new Error("Recursion detected: "+Array.from(s).join("->")+"->"+e);s.add(e),n=n(r,o||a),s.delete(e),Fn(e,n)&&(n=Yn(i._scopes,i,e,n));return n}(n,d,e,t));o(d)&&d.length&&(d=function(e,n,t,a){const{_proxy:i,_context:r,_subProxy:o,_descriptors:l}=t;if(O(r.index)&&a(e))n=n[r.index%n.length];else if(s(n[0])){const t=n,a=i._scopes.filter(e=>e!==t);n=[];for(const s of t){const t=Yn(a,i,e,s);n.push(Un(t,r,o&&o[e],l))}}return n}(n,d,e,l.isIndexable));Fn(n,d)&&(d=Un(d,i,r&&r[n],l));return d}(e,n,t)),getOwnPropertyDescriptor:(n,t)=>n._descriptors.allKeys?Reflect.has(e,t)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,t),getPrototypeOf:()=>Reflect.getPrototypeOf(e),has:(n,t)=>Reflect.has(e,t),ownKeys:()=>Reflect.ownKeys(e),set:(n,t,a)=>(e[t]=a,delete n[t],!0)})}function Nn(e,n={scriptable:!0,indexable:!0}){const{_scriptable:t=n.scriptable,_indexable:a=n.indexable,_allKeys:i=n.allKeys}=e;return{allKeys:i,scriptable:t,indexable:a,isScriptable:k(t)?t:()=>t,isIndexable:k(a)?a:()=>a}}const Bn=(e,n)=>e?e+w(n):n,Fn=(e,n)=>s(n)&&"adapters"!==e&&(null===Object.getPrototypeOf(n)||n.constructor===Object);function zn(e,n,t){if(Object.prototype.hasOwnProperty.call(e,n))return e[n];const a=t();return e[n]=a,a}function Hn(e,n,t){return k(e)?e(n,t):e}const Vn=(e,n)=>!0===e?n:"string"==typeof e?D(n,e):void 0;function Wn(e,n,t,a,i){for(const r of n){const n=Vn(t,r);if(n){e.add(n);const r=Hn(n._fallback,t,i);if(O(r)&&r!==t&&r!==a)return r}else if(!1===n&&O(a)&&t!==a)return null}return!1}function Yn(e,n,t,a){const i=n._rootScopes,r=Hn(n._fallback,t,a),l=[...e,...i],d=new Set;d.add(a);let c=$n(d,l,t,r||t,a);return null!==c&&((!O(r)||r===t||(c=$n(d,l,r,c,a),null!==c))&&jn(Array.from(d),[""],i,r,()=>function(e,n,t){const a=e._getTarget();n in a||(a[n]={});const i=a[n];if(o(i)&&s(t))return t;return i}(n,t,a)))}function $n(e,n,t,a,i){for(;t;)t=Wn(e,n,t,a,i);return t}function Gn(e,n){for(const t of n){if(!t)continue;const n=t[e];if(O(n))return n}}function qn(e){let n=e._keys;return n||(n=e._keys=function(e){const n=new Set;for(const t of e)for(const e of Object.keys(t).filter(e=>!e.startsWith("_")))n.add(e);return Array.from(n)}(e._scopes)),n}function Xn(e,n,t,a){const{iScale:i}=e,{key:r="r"}=this._parsing,o=new Array(a);let s,l,d,c;for(s=0,l=a;sn"x"===e?"y":"x";function Qn(e,n,t,a){const i=e.skip?n:e,r=n,o=t.skip?n:t,s=X(r,i),l=X(o,r);let d=s/(s+l),c=l/(s+l);d=isNaN(d)?0:d,c=isNaN(c)?0:c;const u=a*d,h=a*c;return{previous:{x:r.x-u*(o.x-i.x),y:r.y-u*(o.y-i.y)},next:{x:r.x+h*(o.x-i.x),y:r.y+h*(o.y-i.y)}}}function et(e,n="x"){const t=Kn(n),a=e.length,i=Array(a).fill(0),r=Array(a);let o,s,l,d=Zn(e,0);for(o=0;o!e.skip)),"monotone"===n.cubicInterpolationMode)et(e,i);else{let t=a?e[e.length-1]:e[0];for(r=0,o=e.length;rwindow.getComputedStyle(e,null);const st=["top","right","bottom","left"];function lt(e,n,t){const a={};t=t?"-"+t:"";for(let i=0;i<4;i++){const r=st[i];a[r]=parseFloat(e[n+"-"+r+t])||0}return a.width=a.left+a.right,a.height=a.top+a.bottom,a}function dt(e,n){if("native"in e)return e;const{canvas:t,currentDevicePixelRatio:a}=n,i=ot(t),r="border-box"===i.boxSizing,o=lt(i,"padding"),s=lt(i,"border","width"),{x:l,y:d,box:c}=function(e,n){const t=e.touches,a=t&&t.length?t[0]:e,{offsetX:i,offsetY:r}=a;let o,s,l=!1;if(((e,n,t)=>(e>0||n>0)&&(!t||!t.shadowRoot))(i,r,e.target))o=i,s=r;else{const e=n.getBoundingClientRect();o=a.clientX-e.left,s=a.clientY-e.top,l=!0}return{x:o,y:s,box:l}}(e,t),u=o.left+(c&&s.left),h=o.top+(c&&s.top);let{width:p,height:f}=n;return r&&(p-=o.width+s.width,f-=o.height+s.height),{x:Math.round((l-u)/p*t.width/a),y:Math.round((d-h)/f*t.height/a)}}const ct=e=>Math.round(10*e)/10;function ut(e,n,t,a){const i=ot(e),r=lt(i,"margin"),o=rt(i.maxWidth,e,"clientWidth")||_,s=rt(i.maxHeight,e,"clientHeight")||_,l=function(e,n,t){let a,i;if(void 0===n||void 0===t){const r=it(e);if(r){const e=r.getBoundingClientRect(),o=ot(r),s=lt(o,"border","width"),l=lt(o,"padding");n=e.width-l.width-s.width,t=e.height-l.height-s.height,a=rt(o.maxWidth,r,"clientWidth"),i=rt(o.maxHeight,r,"clientHeight")}else n=e.clientWidth,t=e.clientHeight}return{width:n,height:t,maxWidth:a||_,maxHeight:i||_}}(e,n,t);let{width:d,height:c}=l;if("content-box"===i.boxSizing){const e=lt(i,"border","width"),n=lt(i,"padding");d-=n.width+e.width,c-=n.height+e.height}return d=Math.max(0,d-r.width),c=Math.max(0,a?Math.floor(d/a):c-r.height),d=ct(Math.min(d,o,l.maxWidth)),c=ct(Math.min(c,s,l.maxHeight)),d&&!c&&(c=ct(d/2)),{width:d,height:c}}function ht(e,n,t){const a=n||1,i=Math.floor(e.height*a),r=Math.floor(e.width*a);e.height=i/a,e.width=r/a;const o=e.canvas;return o.style&&(t||!o.style.height&&!o.style.width)&&(o.style.height=e.height+"px",o.style.width=e.width+"px"),(e.currentDevicePixelRatio!==a||o.height!==i||o.width!==r)&&(e.currentDevicePixelRatio=a,o.height=i,o.width=r,e.ctx.setTransform(a,0,0,a,0,0),!0)}const pt=function(){let e=!1;try{const n={get passive(){return e=!0,!1}};window.addEventListener("test",null,n),window.removeEventListener("test",null,n)}catch(e){}return e}();function ft(e,n){const t=function(e,n){return ot(e).getPropertyValue(n)}(e,n),a=t&&t.match(/^(\d+)(\.\d+)?px$/);return a?+a[1]:void 0}function mt(e,n,t,a){return{x:e.x+t*(n.x-e.x),y:e.y+t*(n.y-e.y)}}function gt(e,n,t,a){return{x:e.x+t*(n.x-e.x),y:"middle"===a?t<.5?e.y:n.y:"after"===a?t<1?e.y:n.y:t>0?n.y:e.y}}function bt(e,n,t,a){const i={x:e.cp2x,y:e.cp2y},r={x:n.cp1x,y:n.cp1y},o=mt(e,i,t),s=mt(i,r,t),l=mt(r,n,t),d=mt(o,s,t),c=mt(s,l,t);return mt(d,c,t)}const vt=new Map;function yt(e,n,t){return function(e,n){n=n||{};const t=e+JSON.stringify(n);let a=vt.get(t);return a||(a=new Intl.NumberFormat(e,n),vt.set(t,a)),a}(n,t).format(e)}function xt(e,n,t){return e?function(e,n){return{x:t=>e+e+n-t,setWidth(e){n=e},textAlign:e=>"center"===e?e:"right"===e?"left":"right",xPlus:(e,n)=>e-n,leftForLtr:(e,n)=>e-n}}(n,t):{x:e=>e,setWidth(e){},textAlign:e=>e,xPlus:(e,n)=>e+n,leftForLtr:(e,n)=>e}}function Ct(e,n){let t,a;"ltr"!==n&&"rtl"!==n||(t=e.canvas.style,a=[t.getPropertyValue("direction"),t.getPropertyPriority("direction")],t.setProperty("direction",n,"important"),e.prevTextDirection=a)}function Tt(e,n){void 0!==n&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",n[0],n[1]))}function Dt(e){return"angle"===e?{between:K,compare:J,normalize:Z}:{between:ne,compare:(e,n)=>e-n,normalize:e=>e}}function wt({start:e,end:n,count:t,loop:a,style:i}){return{start:e%t,end:n%t,loop:a&&(n-e+1)%t==0,style:i}}function Ot(e,n,t){if(!t)return[e];const{property:a,start:i,end:r}=t,o=n.length,{compare:s,between:l,normalize:d}=Dt(a),{start:c,end:u,loop:h,style:p}=function(e,n,t){const{property:a,start:i,end:r}=t,{between:o,normalize:s}=Dt(a),l=n.length;let d,c,{start:u,end:h,loop:p}=e;if(p){for(u+=l,h+=l,d=0,c=l;dv||l(i,b,m)&&0!==s(i,b),C=()=>!v||0===s(r,m)||l(r,b,m);for(let e=c,t=c;e<=u;++e)g=n[e%o],g.skip||(m=d(g[a]),m!==b&&(v=l(m,i,r),null===y&&x()&&(y=0===s(m,i)?e:t),null!==y&&C()&&(f.push(wt({start:y,end:e,loop:h,count:o,style:p})),y=null),t=e,b=m));return null!==y&&f.push(wt({start:y,end:u,loop:h,count:o,style:p})),f}function kt(e,n){const t=[],a=e.segments;for(let i=0;ii&&e[r%n].skip;)r--;return r%=n,{start:i,end:r}}(t,i,r,a);if(!0===a)return Pt(e,[{start:o,end:s,loop:r}],t,n);return Pt(e,function(e,n,t,a){const i=e.length,r=[];let o,s=n,l=e[n];for(o=n+1;o<=t;++o){const t=e[o%i];t.skip||t.stop?l.skip||(a=!1,r.push({start:n%i,end:(o-1)%i,loop:a}),n=s=t.stop?o:null):(s=o,l.skip&&(n=o)),l=t}return null!==s&&r.push({start:n%i,end:s%i,loop:a}),r}(t,o,s=0&&Math.floor(n)===n&&isFinite(e)}function p(e){return r(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function f(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===d?JSON.stringify(e,null,2):String(e)}function m(e){var n=parseFloat(e);return isNaN(n)?e:n}function g(e,n){for(var t=Object.create(null),a=e.split(","),i=0;i-1)return e.splice(t,1)}}var y=Object.prototype.hasOwnProperty;function x(e,n){return y.call(e,n)}function C(e){var n=Object.create(null);return function(t){return n[t]||(n[t]=e(t))}}var T=/-(\w)/g,D=C((function(e){return e.replace(T,(function(e,n){return n?n.toUpperCase():""}))})),w=C((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),O=/\B([A-Z])/g,k=C((function(e){return e.replace(O,"-$1").toLowerCase()}));var S=Function.prototype.bind?function(e,n){return e.bind(n)}:function(e,n){function t(t){var a=arguments.length;return a?a>1?e.apply(n,arguments):e.call(n,t):e.call(n)}return t._length=e.length,t};function P(e,n){n=n||0;for(var t=e.length-n,a=new Array(t);t--;)a[t]=e[t+n];return a}function A(e,n){for(var t in n)e[t]=n[t];return e}function R(e){for(var n={},t=0;t0,Z=q&&q.indexOf("edge/")>0,K=(q&&q.indexOf("android"),q&&/iphone|ipad|ipod|ios/.test(q)||"ios"===G),Q=(q&&/chrome\/\d+/.test(q),q&&/phantomjs/.test(q),q&&q.match(/firefox\/(\d+)/)),ee={}.watch,ne=!1;if(Y)try{var te={};Object.defineProperty(te,"passive",{get:function(){ne=!0}}),window.addEventListener("test-passive",null,te)}catch(e){}var ae=function(){return void 0===V&&(V=!Y&&!$&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),V},ie=Y&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var oe,se="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);oe="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var le=I,de=0,ce=function(){this.id=de++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){v(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){var e=this.subs.slice();for(var n=0,t=e.length;n-1)if(r&&!x(i,"default"))o=!1;else if(""===o||o===k(e)){var l=He(String,i.type);(l<0||s0&&(hn((l=e(l,(t||"")+"_"+a))[0])&&hn(c)&&(u[d]=be(c.text+l[0].text),l.shift()),u.push.apply(u,l)):s(l)?hn(c)?u[d]=be(c.text+l):""!==l&&u.push(be(l)):hn(l)&&hn(c)?u[d]=be(c.text+l.text):(o(n._isVList)&&r(l.tag)&&i(l.key)&&r(t)&&(l.key="__vlist"+t+"_"+a+"__"),u.push(l)));return u}(e):void 0}function hn(e){return r(e)&&r(e.text)&&!1===e.isComment}function pn(e,n){if(e){for(var t=Object.create(null),a=se?Reflect.ownKeys(e):Object.keys(e),i=0;i0,o=e?!!e.$stable:!r,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(o&&t&&t!==a&&s===t.$key&&!r&&!t.$hasNormal)return t;for(var l in i={},e)e[l]&&"$"!==l[0]&&(i[l]=vn(n,l,e[l]))}else i={};for(var d in n)d in i||(i[d]=yn(n,d));return e&&Object.isExtensible(e)&&(e._normalized=i),z(i,"$stable",o),z(i,"$key",s),z(i,"$hasNormal",r),i}function vn(e,n,t){var a=function(){var e=arguments.length?t.apply(null,arguments):t({}),n=(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:un(e))&&e[0];return e&&(!n||1===e.length&&n.isComment&&!gn(n))?void 0:e};return t.proxy&&Object.defineProperty(e,n,{get:a,enumerable:!0,configurable:!0}),a}function yn(e,n){return function(){return e[n]}}function xn(e,n){var t,a,i,o,s;if(Array.isArray(e)||"string"==typeof e)for(t=new Array(e.length),a=0,i=e.length;adocument.createEvent("Event").timeStamp&&(dt=function(){return ct.now()})}function ut(){var e,n;for(lt=dt(),ot=!0,tt.sort((function(e,n){return e.id-n.id})),st=0;stst&&tt[t].id>e.id;)t--;tt.splice(t+1,0,e)}else tt.push(e);rt||(rt=!0,tn(ut))}}(this)},pt.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||l(e)||this.deep){var n=this.value;if(this.value=e,this.user){var t='callback for watcher "'+this.expression+'"';We(this.cb,this.vm,[e,n],this.vm,t)}else this.cb.call(this.vm,e,n)}}},pt.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pt.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},pt.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var ft={enumerable:!0,configurable:!0,get:I,set:I};function mt(e,n,t){ft.get=function(){return this[n][t]},ft.set=function(e){this[n][t]=e},Object.defineProperty(e,t,ft)}function gt(e){e._watchers=[];var n=e.$options;n.props&&function(e,n){var t=e.$options.propsData||{},a=e._props={},i=e.$options._propKeys=[];e.$parent&&De(!1);var r=function(r){i.push(r);var o=Ne(r,n,t,e);ke(a,r,o),r in e||mt(e,"_props",r)};for(var o in n)r(o);De(!0)}(e,n.props),n.methods&&function(e,n){e.$options.props;for(var t in n)e[t]="function"!=typeof n[t]?I:S(n[t],e)}(e,n.methods),n.data?function(e){var n=e.$options.data;c(n=e._data="function"==typeof n?function(e,n){he();try{return e.call(n,n)}catch(e){return Ve(e,n,"data()"),{}}finally{pe()}}(n,e):n||{})||(n={});var t=Object.keys(n),a=e.$options.props,i=(e.$options.methods,t.length);for(;i--;){var r=t[i];0,a&&x(a,r)||(o=void 0,36!==(o=(r+"").charCodeAt(0))&&95!==o&&mt(e,"_data",r))}var o;Oe(n,!0)}(e):Oe(e._data={},!0),n.computed&&function(e,n){var t=e._computedWatchers=Object.create(null),a=ae();for(var i in n){var r=n[i],o="function"==typeof r?r:r.get;0,a||(t[i]=new pt(e,o||I,I,bt)),i in e||vt(e,i,r)}}(e,n.computed),n.watch&&n.watch!==ee&&function(e,n){for(var t in n){var a=n[t];if(Array.isArray(a))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(n)>-1:!!u(e)&&e.test(n)}function Pt(e,n){var t=e.cache,a=e.keys,i=e._vnode;for(var r in t){var o=t[r];if(o){var s=o.name;s&&!n(s)&&At(t,r,a,i)}}}function At(e,n,t,a){var i=e[n];!i||a&&i.tag===a.tag||i.componentInstance.$destroy(),e[n]=null,v(t,n)}!function(e){e.prototype._init=function(e){var n=this;n._uid=Tt++,n._isVue=!0,e&&e._isComponent?function(e,n){var t=e.$options=Object.create(e.constructor.options),a=n._parentVnode;t.parent=n.parent,t._parentVnode=a;var i=a.componentOptions;t.propsData=i.propsData,t._parentListeners=i.listeners,t._renderChildren=i.children,t._componentTag=i.tag,n.render&&(t.render=n.render,t.staticRenderFns=n.staticRenderFns)}(n,e):n.$options=je(Dt(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(e){var n=e.$options,t=n.parent;if(t&&!n.abstract){for(;t.$options.abstract&&t.$parent;)t=t.$parent;t.$children.push(e)}e.$parent=t,e.$root=t?t.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var n=e.$options._parentListeners;n&&Jn(e,n)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,t=e.$vnode=n._parentVnode,i=t&&t.context;e.$slots=fn(n._renderChildren,i),e.$scopedSlots=a,e._c=function(n,t,a,i){return Hn(e,n,t,a,i,!1)},e.$createElement=function(n,t,a,i){return Hn(e,n,t,a,i,!0)};var r=t&&t.data;ke(e,"$attrs",r&&r.attrs||a,null,!0),ke(e,"$listeners",n._parentListeners||a,null,!0)}(n),nt(n,"beforeCreate"),function(e){var n=pn(e.$options.inject,e);n&&(De(!1),Object.keys(n).forEach((function(t){ke(e,t,n[t])})),De(!0))}(n),gt(n),function(e){var n=e.$options.provide;n&&(e._provided="function"==typeof n?n.call(e):n)}(n),nt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(wt),function(e){var n={get:function(){return this._data}},t={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",n),Object.defineProperty(e.prototype,"$props",t),e.prototype.$set=Se,e.prototype.$delete=Pe,e.prototype.$watch=function(e,n,t){if(c(n))return Ct(this,e,n,t);(t=t||{}).user=!0;var a=new pt(this,e,n,t);if(t.immediate){var i='callback for immediate watcher "'+a.expression+'"';he(),We(n,this,[a.value],this,i),pe()}return function(){a.teardown()}}}(wt),function(e){var n=/^hook:/;e.prototype.$on=function(e,t){var a=this;if(Array.isArray(e))for(var i=0,r=e.length;i1?P(t):t;for(var a=P(arguments,1),i='event handler for "'+e+'"',r=0,o=t.length;rparseInt(this.max)&&At(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)At(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(n){Pt(e,(function(e){return St(n,e)}))})),this.$watch("exclude",(function(n){Pt(e,(function(e){return!St(n,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,n=$n(e),t=n&&n.componentOptions;if(t){var a=kt(t),i=this.include,r=this.exclude;if(i&&(!a||!St(i,a))||r&&a&&St(r,a))return n;var o=this.cache,s=this.keys,l=null==n.key?t.Ctor.cid+(t.tag?"::"+t.tag:""):n.key;o[l]?(n.componentInstance=o[l].componentInstance,v(s,l),s.push(l)):(this.vnodeToCache=n,this.keyToCache=l),n.data.keepAlive=!0}return n||e&&e[0]}}};!function(e){var n={get:function(){return B}};Object.defineProperty(e,"config",n),e.util={warn:le,extend:A,mergeOptions:je,defineReactive:ke},e.set=Se,e.delete=Pe,e.nextTick=tn,e.observable=function(e){return Oe(e),e},e.options=Object.create(null),U.forEach((function(n){e.options[n+"s"]=Object.create(null)})),e.options._base=e,A(e.options.Componentes,It),function(e){e.use=function(e){var n=this._installedPlugins||(this._installedPlugins=[]);if(n.indexOf(e)>-1)return this;var t=P(arguments,1);return t.unshift(this),"function"==typeof e.install?e.install.apply(e,t):"function"==typeof e&&e.apply(null,t),n.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=je(this.options,e),this}}(e),Ot(e),function(e){U.forEach((function(n){e[n]=function(e,t){return t?("component"===n&&c(t)&&(t.name=t.name||e,t=this.options._base.extend(t)),"directive"===n&&"function"==typeof t&&(t={bind:t,update:t}),this.options[n+"s"][e]=t,t):this.options[n+"s"][e]}}))}(e)}(wt),Object.defineProperty(wt.prototype,"$isServer",{get:ae}),Object.defineProperty(wt.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wt,"FunctionalRenderContext",{value:Mn}),wt.version="2.6.14";var _t=g("style,class"),Lt=g("input,textarea,option,select,progress"),Et=g("contenteditable,draggable,spellcheck"),Mt=g("events,caret,typing,plaintext-only"),jt=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Ut="http://www.w3.org/1999/xlink",Nt=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Bt=function(e){return Nt(e)?e.slice(6,e.length):""},Ft=function(e){return null==e||!1===e};function zt(e){for(var n=e.data,t=e,a=e;r(a.componentInstance);)(a=a.componentInstance._vnode)&&a.data&&(n=Ht(a.data,n));for(;r(t=t.parent);)t&&t.data&&(n=Ht(n,t.data));return function(e,n){if(r(e)||r(n))return Vt(e,Wt(n));return""}(n.staticClass,n.class)}function Ht(e,n){return{staticClass:Vt(e.staticClass,n.staticClass),class:r(e.class)?[e.class,n.class]:n.class}}function Vt(e,n){return e?n?e+" "+n:e:n||""}function Wt(e){return Array.isArray(e)?function(e){for(var n,t="",a=0,i=e.length;a-1?pa(e,n,t):jt(n)?Ft(t)?e.removeAttribute(n):(t="allowfullscreen"===n&&"EMBED"===e.tagName?"true":n,e.setAttribute(n,t)):Et(n)?e.setAttribute(n,function(e,n){return Ft(n)||"false"===n?"false":"contenteditable"===e&&Mt(n)?n:"true"}(n,t)):Nt(n)?Ft(t)?e.removeAttributeNS(Ut,Bt(n)):e.setAttributeNS(Ut,n,t):pa(e,n,t)}function pa(e,n,t){if(Ft(t))e.removeAttribute(n);else{if(X&&!J&&"TEXTAREA"===e.tagName&&"placeholder"===n&&""!==t&&!e.__ieph){var a=function(n){n.stopImmediatePropagation(),e.removeEventListener("input",a)};e.addEventListener("input",a),e.__ieph=!0}e.setAttribute(n,t)}}var fa={create:ua,update:ua};function ma(e,n){var t=n.elm,a=n.data,o=e.data;if(!(i(a.staticClass)&&i(a.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=zt(n),l=t._transitionClasses;r(l)&&(s=Vt(s,Wt(l))),s!==t._prevClass&&(t.setAttribute("class",s),t._prevClass=s)}}var ga,ba={create:ma,update:ma};function va(e,n,t){var a=ga;return function i(){var r=n.apply(null,arguments);null!==r&&Ca(e,i,t,a)}}var ya=qe&&!(Q&&Number(Q[1])<=53);function xa(e,n,t,a){if(ya){var i=lt,r=n;n=r._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return r.apply(this,arguments)}}ga.addEventListener(e,n,ne?{capture:t,passive:a}:t)}function Ca(e,n,t,a){(a||ga).removeEventListener(e,n._wrapper||n,t)}function Ta(e,n){if(!i(e.data.on)||!i(n.data.on)){var t=n.data.on||{},a=e.data.on||{};ga=n.elm,function(e){if(r(e.__r)){var n=X?"change":"input";e[n]=[].concat(e.__r,e[n]||[]),delete e.__r}r(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(t),ln(t,a,xa,Ca,va,n.context),ga=void 0}}var Da,wa={create:Ta,update:Ta};function Oa(e,n){if(!i(e.data.domProps)||!i(n.data.domProps)){var t,a,o=n.elm,s=e.data.domProps||{},l=n.data.domProps||{};for(t in r(l.__ob__)&&(l=n.data.domProps=A({},l)),s)t in l||(o[t]="");for(t in l){if(a=l[t],"textContent"===t||"innerHTML"===t){if(n.children&&(n.children.length=0),a===s[t])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===t&&"PROGRESS"!==o.tagName){o._value=a;var d=i(a)?"":String(a);ka(o,d)&&(o.value=d)}else if("innerHTML"===t&&Gt(o.tagName)&&i(o.innerHTML)){(Da=Da||document.createElement("div")).innerHTML=""+a+"";for(var c=Da.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;c.firstChild;)o.appendChild(c.firstChild)}else if(a!==s[t])try{o[t]=a}catch(e){}}}}function ka(e,n){return!e.composing&&("OPTION"===e.tagName||function(e,n){var t=!0;try{t=document.activeElement!==e}catch(e){}return t&&e.value!==n}(e,n)||function(e,n){var t=e.value,a=e._vModifiers;if(r(a)){if(a.number)return m(t)!==m(n);if(a.trim)return t.trim()!==n.trim()}return t!==n}(e,n))}var Sa={create:Oa,update:Oa},Pa=C((function(e){var n={},t=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var a=e.split(t);a.length>1&&(n[a[0].trim()]=a[1].trim())}})),n}));function Aa(e){var n=Ra(e.style);return e.staticStyle?A(e.staticStyle,n):n}function Ra(e){return Array.isArray(e)?R(e):"string"==typeof e?Pa(e):e}var Ia,_a=/^--/,La=/\s*!important$/,Ea=function(e,n,t){if(_a.test(n))e.style.setProperty(n,t);else if(La.test(t))e.style.setProperty(k(n),t.replace(La,""),"important");else{var a=ja(n);if(Array.isArray(t))for(var i=0,r=t.length;i-1?n.split(Ba).forEach((function(n){return e.classList.add(n)})):e.classList.add(n);else{var t=" "+(e.getAttribute("class")||"")+" ";t.indexOf(" "+n+" ")<0&&e.setAttribute("class",(t+n).trim())}}function za(e,n){if(n&&(n=n.trim()))if(e.classList)n.indexOf(" ")>-1?n.split(Ba).forEach((function(n){return e.classList.remove(n)})):e.classList.remove(n),e.classList.length||e.removeAttribute("class");else{for(var t=" "+(e.getAttribute("class")||"")+" ",a=" "+n+" ";t.indexOf(a)>=0;)t=t.replace(a," ");(t=t.trim())?e.setAttribute("class",t):e.removeAttribute("class")}}function Ha(e){if(e){if("object"==typeof e){var n={};return!1!==e.css&&A(n,Va(e.name||"v")),A(n,e),n}return"string"==typeof e?Va(e):void 0}}var Va=C((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Wa=Y&&!J,Ya="transition",$a="transitionend",Ga="animation",qa="animationend";Wa&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ya="WebkitTransition",$a="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ga="WebkitAnimation",qa="webkitAnimationEnd"));var Xa=Y?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ja(e){Xa((function(){Xa(e)}))}function Za(e,n){var t=e._transitionClasses||(e._transitionClasses=[]);t.indexOf(n)<0&&(t.push(n),Fa(e,n))}function Ka(e,n){e._transitionClasses&&v(e._transitionClasses,n),za(e,n)}function Qa(e,n,t){var a=ni(e,n),i=a.type,r=a.timeout,o=a.propCount;if(!i)return t();var s="transition"===i?$a:qa,l=0,d=function(){e.removeEventListener(s,c),t()},c=function(n){n.target===e&&++l>=o&&d()};setTimeout((function(){l0&&(t="transition",c=o,u=r.length):"animation"===n?d>0&&(t="animation",c=d,u=l.length):u=(t=(c=Math.max(o,d))>0?o>d?"transition":"animation":null)?"transition"===t?r.length:l.length:0,{type:t,timeout:c,propCount:u,hasTransform:"transition"===t&&ei.test(a[Ya+"Property"])}}function ti(e,n){for(;e.length1}function li(e,n){!0!==n.data.show&&ii(n)}var di=function(e){var n,t,a={},l=e.modules,d=e.nodeOps;for(n=0;nf?y(e,i(t[b+1])?null:t[b+1].elm,t,p,b,a):p>b&&C(n,h,f)}(h,g,b,t,c):r(b)?(r(e.text)&&d.setTextContent(h,""),y(h,null,b,0,b.length-1,t)):r(g)?C(g,0,g.length-1):r(e.text)&&d.setTextContent(h,""):e.text!==n.text&&d.setTextContent(h,n.text),r(f)&&r(p=f.hook)&&r(p=p.postpatch)&&p(e,n)}}}function O(e,n,t){if(o(t)&&r(e.parent))e.parent.data.pendingInsert=n;else for(var a=0;a-1,o.selected!==r&&(o.selected=r);else if(E(fi(o),a))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function pi(e,n){return n.every((function(n){return!E(n,e)}))}function fi(e){return"_value"in e?e._value:e.value}function mi(e){e.target.composing=!0}function gi(e){e.target.composing&&(e.target.composing=!1,bi(e.target,"input"))}function bi(e,n){var t=document.createEvent("HTMLEvents");t.initEvent(n,!0,!0),e.dispatchEvent(t)}function vi(e){return!e.componentInstance||e.data&&e.data.transition?e:vi(e.componentInstance._vnode)}var yi={model:ci,show:{bind:function(e,n,t){var a=n.value,i=(t=vi(t)).data&&t.data.transition,r=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;a&&i?(t.data.show=!0,ii(t,(function(){e.style.display=r}))):e.style.display=a?r:"none"},update:function(e,n,t){var a=n.value;!a!=!n.oldValue&&((t=vi(t)).data&&t.data.transition?(t.data.show=!0,a?ii(t,(function(){e.style.display=e.__vOriginalDisplay})):ri(t,(function(){e.style.display="none"}))):e.style.display=a?e.__vOriginalDisplay:"none")},unbind:function(e,n,t,a,i){i||(e.style.display=e.__vOriginalDisplay)}}},xi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ci(e){var n=e&&e.componentOptions;return n&&n.Ctor.options.abstract?Ci($n(n.children)):e}function Ti(e){var n={},t=e.$options;for(var a in t.propsData)n[a]=e[a];var i=t._parentListeners;for(var r in i)n[D(r)]=i[r];return n}function Di(e,n){if(/\d-keep-alive$/.test(n.tag))return e("keep-alive",{props:n.componentOptions.propsData})}var wi=function(e){return e.tag||gn(e)},Oi=function(e){return"show"===e.name},ki={name:"transition",props:xi,abstract:!0,render:function(e){var n=this,t=this.$slots.default;if(t&&(t=t.filter(wi)).length){0;var a=this.mode;0;var i=t[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var r=Ci(i);if(!r)return i;if(this._leaving)return Di(e,i);var o="__transition-"+this._uid+"-";r.key=null==r.key?r.isComment?o+"comment":o+r.tag:s(r.key)?0===String(r.key).indexOf(o)?r.key:o+r.key:r.key;var l=(r.data||(r.data={})).transition=Ti(this),d=this._vnode,c=Ci(d);if(r.data.directives&&r.data.directives.some(Oi)&&(r.data.show=!0),c&&c.data&&!function(e,n){return n.key===e.key&&n.tag===e.tag}(r,c)&&!gn(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var u=c.data.transition=A({},l);if("out-in"===a)return this._leaving=!0,dn(u,"afterLeave",(function(){n._leaving=!1,n.$forceUpdate()})),Di(e,i);if("in-out"===a){if(gn(r))return d;var h,p=function(){h()};dn(l,"afterEnter",p),dn(l,"enterCancelled",p),dn(u,"delayLeave",(function(e){h=e}))}}return i}}},Si=A({tag:String,moveClass:String},xi);function Pi(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ai(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ri(e){var n=e.data.pos,t=e.data.newPos,a=n.left-t.left,i=n.top-t.top;if(a||i){e.data.moved=!0;var r=e.elm.style;r.transform=r.WebkitTransform="translate("+a+"px,"+i+"px)",r.transitionDuration="0s"}}delete Si.mode;var Ii={Transition:ki,TransitionGroup:{props:Si,beforeMount:function(){var e=this,n=this._update;this._update=function(t,a){var i=Kn(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),n.call(e,t,a)}},render:function(e){for(var n=this.tag||this.$vnode.data.tag||"span",t=Object.create(null),a=this.prevChildren=this.children,i=this.$slots.default||[],r=this.children=[],o=Ti(this),s=0;s-1?Xt[e]=n.constructor===window.HTMLUnknownElement||n.constructor===window.HTMLElement:Xt[e]=/HTMLUnknownElement/.test(n.toString())},A(wt.options.directives,yi),A(wt.options.Componentes,Ii),wt.prototype.__patch__=Y?di:I,wt.prototype.$mount=function(e,n){return function(e,n,t){var a;return e.$el=n,e.$options.render||(e.$options.render=ge),nt(e,"beforeMount"),a=function(){e._update(e._render(),t)},new pt(e,a,I,{before:function(){e._isMounted&&!e._isDestroyed&&nt(e,"beforeUpdate")}},!0),t=!1,null==e.$vnode&&(e._isMounted=!0,nt(e,"mounted")),e}(this,e=e&&Y?function(e){if("string"==typeof e){var n=document.querySelector(e);return n||document.createElement("div")}return e}(e):void 0,n)},Y&&setTimeout((function(){B.devtools&&ie&&ie.emit("init",wt)}),0),n.a=wt},function(e,n){var t=function(e){return e&&e.Math==Math&&e};e.exports=t("object"==typeof globalThis&&globalThis)||t("object"==typeof window&&window)||t("object"==typeof self&&self)||t("object"==typeof global&&global)||function(){return this}()||Function("return this")()},function(e,n){e.exports=function(e){return"function"==typeof e}},function(e,n){var t=Function.prototype,a=t.bind,i=t.call,r=a&&a.bind(i);e.exports=a?function(e){return e&&r(i,e)}:function(e){return e&&function(){return i.apply(e,arguments)}}},function(e,n,t){"use strict";t.d(n,"a",(function(){return R})),t.d(n,"b",(function(){return sn})),t.d(n,"c",(function(){return Ot})),t.d(n,"d",(function(){return G})),t.d(n,"e",(function(){return yt})),t.d(n,"f",(function(){return ee})),t.d(n,"g",(function(){return Gt}));var a=t(0); +/*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */var i=new class{constructor(){this._request=null,this._Graficas=new Map,this._running=!1,this._lastDate=void 0}_notify(e,n,t,a){const i=n.listeners[a],r=n.duration;i.forEach(a=>a({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(t-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=a.Tb.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._Graficas.forEach((t,a)=>{if(!t.running||!t.items.length)return;const i=t.items;let r,o=i.length-1,s=!1;for(;o>=0;--o)r=i[o],r._active?(r._total>t.duration&&(t.duration=r._total),r.tick(e),s=!0):(i[o]=i[i.length-1],i.pop());s&&(a.draw(),this._notify(a,t,e,"progress")),i.length||(t.running=!1,this._notify(a,t,e,"complete"),t.initial=!1),n+=i.length}),this._lastDate=e,0===n&&(this._running=!1)}_getAnims(e){const n=this._Graficas;let t=n.get(e);return t||(t={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,t)),t}listen(e,n,t){this._getAnims(e).listeners[n].push(t)}add(e,n){n&&n.length&&this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._Graficas.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((e,n)=>Math.max(e,n._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._Graficas.get(e);return!!(n&&n.running&&n.items.length)}stop(e){const n=this._Graficas.get(e);if(!n||!n.items.length)return;const t=n.items;let a=t.length-1;for(;a>=0;--a)t[a].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._Graficas.delete(e)}};const r={boolean:(e,n,t)=>t>.5?n:e,color(e,n,t){const i=Object(a.Eb)(e||"transparent"),r=i.valid&&Object(a.Eb)(n||"transparent");return r&&r.valid?r.mix(i,t).hexString():n},number:(e,n,t)=>e+(n-e)*t};class o{constructor(e,n,t,i){const o=n[t];i=Object(a.C)([e.to,i,o,e.from]);const s=Object(a.C)([e.from,o,i]);this._active=!0,this._fn=e.fn||r[e.type||typeof s],this._easing=a.Gb[e.easing]||a.Gb.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=t,this._from=s,this._to=i,this._promises=void 0}active(){return this._active}update(e,n,t){if(this._active){this._notify(!1);const i=this._target[this._prop],r=t-this._start,o=this._duration-r;this._start=t,this._duration=Math.floor(Math.max(o,e.duration)),this._total+=r,this._loop=!!e.loop,this._to=Object(a.C)([e.to,n,i,e.from]),this._from=Object(a.C)([e.from,i,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,t=this._duration,a=this._prop,i=this._from,r=this._loop,o=this._to;let s;if(this._active=i!==o&&(r||n1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[a]=this._fn(i,o,s))}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,t)=>{e.push({res:n,rej:t})})}_notify(e){const n=e?"res":"rej",t=this._promises||[];for(let e=0;e"onProgress"!==e&&"onComplete"!==e&&"fn"!==e}),a.Fb.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),a.Fb.describe("animations",{_fallback:"animation"}),a.Fb.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>0|e}}}});class l{constructor(e,n){this._chart=e,this._properties=new Map,this.configure(n)}configure(e){if(!Object(a.Kb)(e))return;const n=this._properties;Object.getOwnPropertyNames(e).forEach(t=>{const i=e[t];if(!Object(a.Kb)(i))return;const r={};for(const e of s)r[e]=i[e];(Object(a.Db)(i.properties)&&i.properties||[t]).forEach(e=>{e!==t&&n.has(e)||n.set(e,r)})})}_animateOptions(e,n){const t=n.options,a=function(e,n){if(!n)return;let t=e.options;if(!t)return void(e.options=n);t.$shared&&(e.options=t=Object.assign({},t,{$shared:!1,$animations:{}}));return t}(e,t);if(!a)return[];const i=this._createAnimations(a,t);return t.$shared&&function(e,n){const t=[],a=Object.keys(n);for(let n=0;n{e.options=t},()=>{}),i}_createAnimations(e,n){const t=this._properties,a=[],i=e.$animations||(e.$animations={}),r=Object.keys(n),s=Date.now();let l;for(l=r.length-1;l>=0;--l){const d=r[l];if("$"===d.charAt(0))continue;if("options"===d){a.push(...this._animateOptions(e,n));continue}const c=n[d];let u=i[d];const h=t.get(d);if(u){if(h&&u.active()){u.update(h,c,s);continue}u.cancel()}h&&h.duration?(i[d]=u=new o(h,e,d,c),a.push(u)):e[d]=c}return a}update(e,n){if(0===this._properties.size)return void Object.assign(e,n);const t=this._createAnimations(e,n);return t.length?(i.add(this._chart,t),!0):void 0}}function d(e,n){const t=e&&e.options||{},a=t.reverse,i=void 0===t.min?n:0,r=void 0===t.max?n:0;return{start:a?r:i,end:a?i:r}}function c(e,n){const t=[],a=e._getSortedDatasetMetas(n);let i,r;for(i=0,r=a.length;i0||!t&&n<0)return i.index}return null}function m(e,n){const{chart:t,_cachedMeta:a}=e,i=t._stacks||(t._stacks={}),{iScale:r,vScale:o,index:s}=a,l=r.axis,d=o.axis,c=function(e,n,t){return`${e.id}.${n.id}.${t.stack||t.type}`}(r,o,a),u=n.length;let h;for(let e=0;et[e].axis===n).shift()}function b(e,n){const t=e.controller.index,a=e.vScale&&e.vScale.axis;if(a){n=n||e._parsed;for(const e of n){const n=e._stacks;if(!n||void 0===n[a]||void 0===n[a][t])return;delete n[a][t]}}}const v=e=>"reset"===e||"none"===e,y=(e,n)=>n?e:Object.assign({},e);class x{constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=h(e.vScale,e),this.addElements()}updateIndex(e){this.index!==e&&b(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,t=this.getDataset(),i=(e,n,t,a)=>"x"===e?n:"r"===e?a:t,r=n.xAxisID=Object(a.Xb)(t.xAxisID,g(e,"x")),o=n.yAxisID=Object(a.Xb)(t.yAxisID,g(e,"y")),s=n.rAxisID=Object(a.Xb)(t.rAxisID,g(e,"r")),l=n.indexAxis,d=n.iAxisID=i(l,r,o,s),c=n.vAxisID=i(l,o,r,s);n.xScale=this.getScaleForId(r),n.yScale=this.getScaleForId(o),n.rScale=this.getScaleForId(s),n.iScale=this.getScaleForId(d),n.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Object(a.Wb)(this._data,this),e._stacked&&b(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),t=this._data;if(Object(a.Kb)(n))this._data=function(e){const n=Object.keys(e),t=new Array(n.length);let a,i,r;for(a=0,i=n.length;a0&&t._parsed[e-1];if(!1===this._parsing)t._parsed=i,t._sorted=!0,c=i;else{c=Object(a.Db)(i[e])?this.parseArrayData(t,i,e,n):Object(a.Kb)(i[e])?this.parseObjectData(t,i,e,n):this.parsePrimitiveData(t,i,e,n);const r=()=>null===d[s]||h&&d[s]e&&!n.hidden&&n._stacked&&{keys:c(t,!0),values:null})(n,t,this.chart),d={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:u,max:h}=function(e){const{min:n,max:t,minDefined:a,maxDefined:i}=e.getUserBounds();return{min:a?n:Number.NEGATIVE_INFINITY,max:i?t:Number.POSITIVE_INFINITY}}(s);let p,f;function m(){f=i[p];const n=f[s.axis];return!Object(a.Ib)(f[e.axis])||u>n||h=0;--p)if(!m()){this.updateRangeFromParsed(d,e,f,l);break}return d}getAllParsedValues(e){const n=this._cachedMeta._parsed,t=[];let i,r,o;for(i=0,r=n.length;i=0&&ethis.getContext(t,i),u);return f.$shared&&(f.$shared=l,r[o]=Object.freeze(y(f,l))),f}_resolveAnimations(e,n,t){const a=this.chart,i=this._cachedDataOpts,r="animation-"+n,o=i[r];if(o)return o;let s;if(!1!==a.options.animation){const a=this.chart.config,i=a.datasetAnimationScopeKeys(this._type,n),r=a.getOptionScopes(this.getDataset(),i);s=a.createResolver(r,this.getContext(e,t,n))}const d=new l(a,s&&s.animations);return s&&s._cacheable&&(i[r]=Object.freeze(d)),d}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||v(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const t=this.resolveDataElementOptions(e,n),a=this._sharedOptions,i=this.getSharedOptions(t),r=this.includeOptions(n,i)||i!==a;return this.updateSharedOptions(i,n,t),{sharedOptions:i,includeOptions:r}}updateElement(e,n,t,a){v(a)?Object.assign(e,t):this._resolveAnimations(n,a).update(e,t)}updateSharedOptions(e,n,t){e&&!v(n)&&this._resolveAnimations(void 0,n).update(e,t)}_setStyle(e,n,t,a){e.active=a;const i=this.getStyle(n,a);this._resolveAnimations(n,t,a).update(e,{options:!a&&this.getSharedOptions(i)||i})}removeHoverStyle(e,n,t){this._setStyle(e,t,"active",!1)}setHoverStyle(e,n,t){this._setStyle(e,t,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,t=this._cachedMeta.data;for(const[e,n,t]of this._syncList)this[e](n,t);this._syncList=[];const a=t.length,i=n.length,r=Math.min(i,a);r&&this.parse(0,r),i>a?this._insertElements(a,i-a,e):i{for(e.length+=n,o=e.length-1;o>=r;o--)e[o]=e[o-n]};for(s(i),o=e;oe-n))}return e._cache.$bar}(n,e.type);let i,r,o,s,l=n._length;const d=()=>{32767!==o&&-32768!==o&&(Object(a.Lb)(s)&&(l=Math.min(l,Math.abs(o-s)||l)),s=o)};for(i=0,r=t.length;iMath.abs(s)&&(l=s,d=o),n[t.axis]=d,n._custom={barStart:l,barEnd:d,start:i,end:r,min:o,max:s}}(e,n,t,i):n[t.axis]=t.parse(e,i),n}function D(e,n,t,a){const i=e.iScale,r=e.vScale,o=i.getLabels(),s=i===r,l=[];let d,c,u,h;for(d=t,c=t+a;de.x,t="left",a="right"):(n=e.basee.controller.options.grouped),r=t.options.stacked,o=[],s=e=>{const t=e.controller.getParsed(n),i=t&&t[e.vScale.axis];if(Object(a.Mb)(i)||isNaN(i))return!0};for(const t of i)if((void 0===n||!s(t))&&((!1===r||-1===o.indexOf(t.stack)||void 0===r&&void 0===t.stack)&&o.push(t.stack),t.index===e))break;return o.length||o.push(void 0),o}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,n,t){const a=this._getStacks(e,t),i=void 0!==n?a.indexOf(n):-1;return-1===i?a.length-1:i}_getRuler(){const e=this.options,n=this._cachedMeta,t=n.iScale,a=[];let i,r;for(i=0,r=n.data.length;i=t?1:-1)}(u,n,o)*r,h===o&&(g-=u/2);const e=n.getPixelForDecimal(0),t=n.getPixelForDecimal(1),i=Math.min(e,t),s=Math.max(e,t);g=Math.max(Math.min(g,s),i),c=g+u}if(g===n.getPixelForValue(o)){const e=Object(a.Ub)(u)*n.getLineWidthForValue(o)/2;g+=e,u-=e}return{size:u,base:g,head:c,center:c+u/2}}_calculateBarIndexPixels(e,n){const t=n.scale,i=this.options,r=i.skipNull,o=Object(a.Xb)(i.maxBarThickness,1/0);let s,l;if(n.grouped){const t=r?this._getStackCount(e):n.stackCount,d="flex"===i.barThickness?function(e,n,t,a){const i=n.pixels,r=i[e];let o=e>0?i[e-1]:null,s=e=0;--t)n=Math.max(n,e[t].size(this.resolveDataElementOptions(t))/2);return n>0&&n}getLabelAndValue(e){const n=this._cachedMeta,{xScale:t,yScale:a}=n,i=this.getParsed(e),r=t.getLabelForValue(i.x),o=a.getLabelForValue(i.y),s=i._custom;return{label:n.label,value:"("+r+", "+o+(s?", "+s:"")+")"}}update(e){const n=this._cachedMeta.data;this.updateElements(n,0,n.length,e)}updateElements(e,n,t,a){const i="reset"===a,{iScale:r,vScale:o}=this._cachedMeta,{sharedOptions:s,includeOptions:l}=this._getSharedOptions(n,a),d=r.axis,c=o.axis;for(let u=n;u""}}}};class I extends x{constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const t=this.getDataset().data,i=this._cachedMeta;if(!1===this._parsing)i._parsed=t;else{let r,o,s=e=>+t[e];if(Object(a.Kb)(t[e])){const{key:e="value"}=this._parsing;s=n=>+Object(a.Hb)(t[n],e)}for(r=e,o=e+n;rObject(a.Rb)(e,l,d,!0)?1:Math.max(n,n*t,i,i*t),m=(e,n,i)=>Object(a.Rb)(e,l,d,!0)?-1:Math.min(n,n*t,i,i*t),g=f(0,c,h),b=f(a.i,u,p),v=m(a.q,c,h),y=m(a.q+a.i,u,p);i=(g-v)/2,r=(b-y)/2,o=-(g+v)/2,s=-(b+y)/2}return{ratioX:i,ratioY:r,offsetX:o,offsetY:s}}(u,c,l),g=(t.width-o)/h,b=(t.height-o)/p,v=Math.max(Math.min(g,b)/2,0),y=Object(a.Pb)(this.options.radius,v),x=(y-Math.max(y*l,0))/this._getVisibleDatasetWeightTotal();this.offsetX=f*y,this.offsetY=m*y,i.total=this.calculateTotal(),this.outerRadius=y-x*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-x*d,0),this.updateElements(r,0,r.length,e)}_circumference(e,n){const t=this.options,i=this._cachedMeta,r=this._getCircumference();return n&&t.animation.animateRotate||!this.chart.getDataVisibility(e)||null===i._parsed[e]||i.data[e].hidden?0:this.calculateCircumference(i._parsed[e]*r/a.u)}updateElements(e,n,t,a){const i="reset"===a,r=this.chart,o=r.chartArea,s=r.options.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,c=i&&s.animateScale,u=c?0:this.innerRadius,h=c?0:this.outerRadius,{sharedOptions:p,includeOptions:f}=this._getSharedOptions(n,a);let m,g=this._getRotation();for(m=0;m0&&!isNaN(e)?a.u*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,t=this.chart,i=t.data.labels||[],r=Object(a.Qb)(n._parsed[e],t.options.locale);return{label:i[e]||"",value:r}}getMaxBorderWidth(e){let n=0;const t=this.chart;let a,i,r,o,s;if(!e)for(a=0,i=t.data.datasets.length;a"spacing"!==e,_indexable:e=>"spacing"!==e},I.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:t}}=e.legend.options;return n.labels.map((n,a)=>{const i=e.getDatasetMeta(0).controller.getStyle(a);return{text:n,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,lineWidth:i.borderWidth,pointStyle:t,hidden:!e.getDataVisibility(a),index:a}})}return[]}},onClick(e,n,t){t.chart.toggleDataVisibility(n.index),t.chart.update()}},tooltip:{callbacks:{title:()=>"",label(e){let n=e.label;const t=": "+e.formattedValue;return Object(a.Db)(n)?(n=n.slice(),n[0]+=t):n+=t,n}}}}};class _ extends x{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const n=this._cachedMeta,{dataset:t,data:i=[],_dataset:r}=n,o=this.chart._animationsDisabled;let{start:s,count:l}=Object(a.Sb)(n,i,o);this._drawStart=s,this._drawCount=l,Object(a.Yb)(n)&&(s=0,l=i.length),t._chart=this.chart,t._datasetIndex=this.index,t._decimated=!!r._decimated,t.points=i;const d=this.resolveDatasetElementOptions(e);this.options.showLine||(d.borderWidth=0),d.segment=this.options.segment,this.updateElement(t,void 0,{animated:!o,options:d},e),this.updateElements(i,s,l,e)}updateElements(e,n,t,i){const r="reset"===i,{iScale:o,vScale:s,_stacked:l,_dataset:d}=this._cachedMeta,{sharedOptions:c,includeOptions:u}=this._getSharedOptions(n,i),h=o.axis,p=s.axis,{spanGaps:f,segment:m}=this.options,g=Object(a.Zb)(f)?f:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||r||"none"===i;let v=n>0&&this.getParsed(n-1);for(let f=n;f0&&Math.abs(t[h]-v[h])>g,m&&(y.parsed=t,y.raw=d.data[f]),u&&(y.options=c||this.resolveDataElementOptions(f,n.active?"active":i)),b||this.updateElement(n,f,y,i),v=t}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,t=n.options&&n.options.borderWidth||0,a=e.data||[];if(!a.length)return t;const i=a[0].size(this.resolveDataElementOptions(0)),r=a[a.length-1].size(this.resolveDataElementOptions(a.length-1));return Math.max(t,i,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}_.id="line",_.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},_.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class L extends x{constructor(e,n){super(e,n),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){const n=this._cachedMeta,t=this.chart,i=t.data.labels||[],r=Object(a.Qb)(n._parsed[e].r,t.options.locale);return{label:i[e]||"",value:r}}parseObjectData(e,n,t,i){return a.ac.bind(this)(e,n,t,i)}update(e){const n=this._cachedMeta.data;this._updateRadius(),this.updateElements(n,0,n.length,e)}getMinMax(){const e=this._cachedMeta,n={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return e.data.forEach((e,t)=>{const a=this.getParsed(t).r;!isNaN(a)&&this.chart.getDataVisibility(t)&&(an.max&&(n.max=a))}),n}_updateRadius(){const e=this.chart,n=e.chartArea,t=e.options,a=Math.min(n.right-n.left,n.bottom-n.top),i=Math.max(a/2,0),r=(i-Math.max(t.cutoutPercentage?i/100*t.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=i-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(e,n,t,i){const r="reset"===i,o=this.chart,s=o.options.animation,l=this._cachedMeta.rScale,d=l.xCenter,c=l.yCenter,u=l.getIndexAngle(0)-.5*a.q;let h,p=u;const f=360/this.countVisibleElements();for(h=0;h{!isNaN(this.getParsed(t).r)&&this.chart.getDataVisibility(t)&&n++}),n}_computeAngle(e,n,t){return this.chart.getDataVisibility(e)?Object(a.Vb)(this.resolveDataElementOptions(e,n).angle||t):0}}L.id="polarArea",L.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},L.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data;if(n.labels.length&&n.datasets.length){const{labels:{pointStyle:t}}=e.legend.options;return n.labels.map((n,a)=>{const i=e.getDatasetMeta(0).controller.getStyle(a);return{text:n,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,lineWidth:i.borderWidth,pointStyle:t,hidden:!e.getDataVisibility(a),index:a}})}return[]}},onClick(e,n,t){t.chart.toggleDataVisibility(n.index),t.chart.update()}},tooltip:{callbacks:{title:()=>"",label:e=>e.chart.data.labels[e.dataIndex]+": "+e.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class E extends I{}E.id="pie",E.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class M extends x{getLabelAndValue(e){const n=this._cachedMeta.vScale,t=this.getParsed(e);return{label:n.getLabels()[e],value:""+n.getLabelForValue(t[n.axis])}}parseObjectData(e,n,t,i){return a.ac.bind(this)(e,n,t,i)}update(e){const n=this._cachedMeta,t=n.dataset,a=n.data||[],i=n.iScale.getLabels();if(t.points=a,"resize"!==e){const n=this.resolveDatasetElementOptions(e);this.options.showLine||(n.borderWidth=0);const r={_loop:!0,_fullLoop:i.length===a.length,options:n};this.updateElement(t,void 0,r,e)}this.updateElements(a,0,a.length,e)}updateElements(e,n,t,a){const i=this._cachedMeta.rScale,r="reset"===a;for(let o=n;o{a[e]=t[e]&&t[e].active()?t[e]._to:this[e]}),a}}j.defaults={},j.defaultRoutes=void 0;const U={values:e=>Object(a.Db)(e)?e:""+e,numeric(e,n,t){if(0===e)return"0";const i=this.chart.options.locale;let r,o=e;if(t.length>1){const n=Math.max(Math.abs(t[0].value),Math.abs(t[t.length-1].value));(n<1e-4||n>1e15)&&(r="scientific"),o=function(e,n){let t=n.length>3?n[2].value-n[1].value:n[1].value-n[0].value;Math.abs(t)>=1&&e!==Math.floor(e)&&(t=e-Math.floor(e));return t}(e,t)}const s=Object(a.bc)(Math.abs(o)),l=Math.max(Math.min(-1*Math.floor(s),20),0),d={notation:r,minimumFractionDigits:l,maximumFractionDigits:l};return Object.assign(d,this.options.ticks.format),Object(a.Qb)(e,i,d)},logarithmic(e,n,t){if(0===e)return"0";const i=e/Math.pow(10,Math.floor(Object(a.bc)(e)));return 1===i||2===i||5===i?U.numeric.call(this,e,n,t):""}};var N={formatters:U};function B(e,n){const t=e.options.ticks,i=t.maxTicksLimit||function(e){const n=e.options.offset,t=e._tickSize(),a=e._length/t+(n?0:1),i=e._maxLength/t;return Math.floor(Math.min(a,i))}(e),r=t.major.enabled?function(e){const n=[];let t,a;for(t=0,a=e.length;ti)return function(e,n,t,a){let i,r=0,o=t[0];for(a=Math.ceil(a),i=0;ir)return n}return Math.max(r,1)}(r,n,i);if(o>0){let e,t;const i=o>1?Math.round((l-s)/(o-1)):null;for(F(n,d,c,Object(a.Mb)(i)?0:s-i,s),e=0,t=o-1;en.lineWidth,tickColor:(e,n)=>n.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:N.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),a.Fb.route("scale.ticks","color","","color"),a.Fb.route("scale.grid","color","","borderColor"),a.Fb.route("scale.grid","borderColor","","borderColor"),a.Fb.route("scale.title","color","","color"),a.Fb.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&"callback"!==e&&"parser"!==e,_indexable:e=>"borderDash"!==e&&"tickBorderDash"!==e}),a.Fb.describe("scales",{_fallback:"scale"}),a.Fb.describe("scale.ticks",{_scriptable:e=>"backdropPadding"!==e&&"callback"!==e,_indexable:e=>"backdropPadding"!==e});const z=(e,n,t)=>"top"===n||"left"===n?e[n]+t:e[n]-t;function H(e,n){const t=[],a=e.length/n,i=e.length;let r=0;for(;ro+1e-6)))return l}function W(e){return e.drawTicks?e.tickLength:0}function Y(e,n){if(!e.display)return 0;const t=Object(a.p)(e.font,n),i=Object(a.l)(e.padding);return(Object(a.Db)(e.text)?e.text.length:1)*t.lineHeight+i.height}function $(e,n,t){let i=Object(a.s)(e);return(t&&"right"!==n||!t&&"right"===n)&&(i=(e=>"left"===e?"right":"right"===e?"left":e)(i)),i}class G extends j{constructor(e){super(),this.id=e.id,this.type=e.type,this.options=void 0,this.ctx=e.ctx,this.chart=e.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(e){this.options=e.setContext(this.getContext()),this.axis=e.axis,this._userMin=this.parse(e.min),this._userMax=this.parse(e.max),this._suggestedMin=this.parse(e.suggestedMin),this._suggestedMax=this.parse(e.suggestedMax)}parse(e,n){return e}getUserBounds(){let{_userMin:e,_userMax:n,_suggestedMin:t,_suggestedMax:i}=this;return e=Object(a.c)(e,Number.POSITIVE_INFINITY),n=Object(a.c)(n,Number.NEGATIVE_INFINITY),t=Object(a.c)(t,Number.POSITIVE_INFINITY),i=Object(a.c)(i,Number.NEGATIVE_INFINITY),{min:Object(a.c)(e,t),max:Object(a.c)(n,i),minDefined:Object(a.Ib)(e),maxDefined:Object(a.Ib)(n)}}getMinMax(e){let n,{min:t,max:i,minDefined:r,maxDefined:o}=this.getUserBounds();if(r&&o)return{min:t,max:i};const s=this.getMatchingVisibleMetas();for(let a=0,l=s.length;ai?i:t,i=r&&t>i?t:i,{min:Object(a.c)(t,Object(a.c)(i,t)),max:Object(a.c)(i,Object(a.c)(t,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Object(a.d)(this.options.beforeUpdate,[this])}update(e,n,t){const{beginAtZero:i,grace:r,ticks:o}=this.options,s=o.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=t=Object.assign({left:0,right:0,top:0,bottom:0},t),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+t.left+t.right:this.height+t.top+t.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Object(a.e)(this,r,i),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=s=r||t<=1||!this.isHorizontal())return void(this.labelRotation=i);const c=this._getLabelSizes(),u=c.widest.width,h=c.highest.height,p=Object(a.f)(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/t:p/(t-1),u+6>o&&(o=p/(t-(e.offset?.5:1)),s=this.maxHeight-W(e.grid)-n.padding-Y(e.title,this.chart.options.font),l=Math.sqrt(u*u+h*h),d=Object(a.g)(Math.min(Math.asin(Object(a.f)((c.highest.height+6)/o,-1,1)),Math.asin(Object(a.f)(s/l,-1,1))-Math.asin(Object(a.f)(h/l,-1,1)))),d=Math.max(i,Math.min(r,d))),this.labelRotation=d}afterCalculateLabelRotation(){Object(a.d)(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Object(a.d)(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:t,title:i,grid:r}}=this,o=this._isVisible(),s=this.isHorizontal();if(o){const o=Y(i,n.options.font);if(s?(e.width=this.maxWidth,e.height=W(r)+o):(e.height=this.maxHeight,e.width=W(r)+o),t.display&&this.ticks.length){const{first:n,last:i,widest:r,highest:o}=this._getLabelSizes(),l=2*t.padding,d=Object(a.Vb)(this.labelRotation),c=Math.cos(d),u=Math.sin(d);if(s){const n=t.mirror?0:u*r.width+c*o.height;e.height=Math.min(this.maxHeight,e.height+n+l)}else{const n=t.mirror?0:c*r.width+u*o.height;e.width=Math.min(this.maxWidth,e.width+n+l)}this._calculatePadding(n,i,u,c)}}this._handleMargins(),s?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,t,a){const{ticks:{align:i,padding:r},position:o}=this.options,s=0!==this.labelRotation,l="top"!==o&&"x"===this.axis;if(this.isHorizontal()){const o=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,u=0;s?l?(c=a*e.width,u=t*n.height):(c=t*e.height,u=a*n.width):"start"===i?u=n.width:"end"===i?c=e.width:"inner"!==i&&(c=e.width/2,u=n.width/2),this.paddingLeft=Math.max((c-o+r)*this.width/(this.width-o),0),this.paddingRight=Math.max((u-d+r)*this.width/(this.width-d),0)}else{let t=n.height/2,a=e.height/2;"start"===i?(t=0,a=e.height):"end"===i&&(t=n.height,a=0),this.paddingTop=t+r,this.paddingBottom=a+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Object(a.d)(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return"top"===n||"bottom"===n||"x"===e}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){let n,t;for(this.beforeTickToLabelConversion(),this.generateTickLabels(e),n=0,t=e.length;n{const t=e.gc,a=t.length/2;let i;if(a>n){for(i=0;i({width:r[e]||0,height:o[e]||0});return{first:T(0),last:T(n-1),widest:T(x),highest:T(C),widths:r,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return Object(a.j)(this._alignToPixels?Object(a.k)(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&es*i?s/t:l/i:l*i0}_computeGridLineItems(e){const n=this.axis,t=this.chart,i=this.options,{grid:r,position:o}=i,s=r.offset,l=this.isHorizontal(),d=this.ticks.length+(s?1:0),c=W(r),u=[],h=r.setContext(this.getContext()),p=h.drawBorder?h.borderWidth:0,f=p/2,m=function(e){return Object(a.k)(t,e,p)};let g,b,v,y,x,C,T,D,w,O,k,S;if("top"===o)g=m(this.bottom),C=this.bottom-c,D=g-f,O=m(e.top)+f,S=e.bottom;else if("bottom"===o)g=m(this.top),O=e.top,S=m(e.bottom)-f,C=g+f,D=this.top+c;else if("left"===o)g=m(this.right),x=this.right-c,T=g-f,w=m(e.left)+f,k=e.right;else if("right"===o)g=m(this.left),w=e.left,k=m(e.right)-f,x=g+f,T=this.left+c;else if("x"===n){if("center"===o)g=m((e.top+e.bottom)/2+.5);else if(Object(a.Kb)(o)){const e=Object.keys(o)[0],n=o[e];g=m(this.chart.scales[e].getPixelForValue(n))}O=e.top,S=e.bottom,C=g+f,D=C+c}else if("y"===n){if("center"===o)g=m((e.left+e.right)/2);else if(Object(a.Kb)(o)){const e=Object.keys(o)[0],n=o[e];g=m(this.chart.scales[e].getPixelForValue(n))}x=g-f,T=x-c,w=e.left,k=e.right}const P=Object(a.Xb)(i.ticks.maxTicksLimit,d),A=Math.max(1,Math.ceil(d/P));for(b=0;bn.value===e);if(t>=0){return n.setContext(this.getContext(t)).lineWidth}return 0}drawGrid(e){const n=this.options.grid,t=this.ctx,a=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let i,r;const o=(e,n,a)=>{a.width&&a.color&&(t.save(),t.lineWidth=a.width,t.strokeStyle=a.color,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset,t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(n.x,n.y),t.stroke(),t.restore())};if(n.display)for(i=0,r=a.length;i{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:t+1,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]:[{z:n,draw:e=>{this.draw(e)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),t=this.axis+"AxisID",a=[];let i,r;for(i=0,r=n.length;i{const i=t.split("."),r=i.pop(),o=[e].concat(i).join("."),s=n[t].split("."),l=s.pop(),d=s.join(".");a.Fb.route(o,r,d,l)})}(n,e.defaultRoutes);e.descriptors&&a.Fb.describe(n,e.descriptors)}(e,o,t),this.override&&a.Fb.override(e.id,e.overrides)),o}get(e){return this.items[e]}unRegistro(e){const n=this.items,t=e.id,i=this.scope;t in n&&delete n[t],i&&t in a.Fb[i]&&(delete a.Fb[i][t],this.override&&delete a.v[t])}}var X=new class{constructor(){this.controllers=new q(x,"datasets",!0),this.elements=new q(j,"elements"),this.plugins=new q(Object,"plugins"),this.scales=new q(G,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("Registro",e)}remove(...e){this._each("unRegistro",e)}addControllers(...e){this._each("Registro",e,this.controllers)}addElements(...e){this._each("Registro",e,this.elements)}addPlugins(...e){this._each("Registro",e,this.plugins)}addScales(...e){this._each("Registro",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unRegistro",e,this.controllers)}removeElements(...e){this._each("unRegistro",e,this.elements)}removePlugins(...e){this._each("unRegistro",e,this.plugins)}removeScales(...e){this._each("unRegistro",e,this.scales)}_each(e,n,t){[...n].forEach(n=>{const i=t||this._getRegistryForType(n);t||i.isForType(n)||i===this.plugins&&n.id?this._exec(e,i,n):Object(a.r)(n,n=>{const a=t||this._getRegistryForType(n);this._exec(e,a,n)})})}_exec(e,n,t){const i=Object(a.x)(e);Object(a.d)(t["before"+i],[],t),n[e](t),Object(a.d)(t["after"+i],[],t)}_getRegistryForType(e){for(let n=0;n0&&this.getParsed(n-1);for(let c=n;c0&&Math.abs(t[p]-y[p])>b,g&&(m.parsed=t,m.raw=d.data[c]),h&&(m.options=u||this.resolveDataElementOptions(c,n.active?"active":i)),v||this.updateElement(n,c,m,i),y=t}this.updateSharedOptions(u,i,c)}getMaxOverflow(){const e=this._cachedMeta,n=e.data||[];if(!this.options.showLine){let e=0;for(let t=n.length-1;t>=0;--t)e=Math.max(e,n[t].size(this.resolveDataElementOptions(t))/2);return e>0&&e}const t=e.dataset,a=t.options&&t.options.borderWidth||0;if(!n.length)return a;const i=n[0].size(this.resolveDataElementOptions(0)),r=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(a,i,r)/2}}J.id="scatter",J.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1},J.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title:()=>"",label:e=>"("+e.label+", "+e.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var Z=Object.freeze({__proto__:null,BarController:A,BubbleController:R,DoughnutController:I,LineController:_,PolarAreaController:L,PieController:E,RadarController:M,ScatterController:J});function K(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Q{constructor(e){this.options=e||{}}init(e){}formats(){return K()}parse(e,n){return K()}format(e,n){return K()}add(e,n,t){return K()}diff(e,n,t){return K()}startOf(e,n,t){return K()}endOf(e,n){return K()}}Q.override=function(e){Object.assign(Q.prototype,e)};var ee={_date:Q};function ne(e,n,t,i){const{controller:r,data:o,_sorted:s}=e,l=r._cachedMeta.iScale;if(l&&n===l.axis&&"r"!==n&&s&&o.length){const e=l._reversePixels?a.z:a.A;if(!i)return e(o,n,t);if(r._sharedOptions){const a=o[0],i="function"==typeof a.getRange&&a.getRange(n);if(i){const a=e(o,n,t-i),r=e(o,n,t+i);return{lo:a.lo,hi:r.hi}}}}return{lo:0,hi:o.length-1}}function te(e,n,t,a,i){const r=e.getSortedVisibleDatasetMetas(),o=t[n];for(let e=0,t=r.length;e{e[o](n[t],i)&&(r.push({element:e,datasetIndex:a,index:l}),s=s||e.inRange(n.x,n.y,i))}),a&&!s?[]:r}var se={evaluateInteractionItems:te,modes:{index(e,n,t,i){const r=Object(a.y)(n,e),o=t.axis||"x",s=t.includeInvisible||!1,l=t.intersect?ae(e,r,o,i,s):re(e,r,o,!1,i,s),d=[];return l.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{const n=l[0].index,t=e.data[n];t&&!t.skip&&d.push({element:t,datasetIndex:e.index,index:n})}),d):[]},dataset(e,n,t,i){const r=Object(a.y)(n,e),o=t.axis||"xy",s=t.includeInvisible||!1;let l=t.intersect?ae(e,r,o,i,s):re(e,r,o,!1,i,s);if(l.length>0){const n=l[0].datasetIndex,t=e.getDatasetMeta(n).data;l=[];for(let e=0;eae(e,Object(a.y)(n,e),t.axis||"xy",i,t.includeInvisible||!1),nearest(e,n,t,i){const r=Object(a.y)(n,e),o=t.axis||"xy",s=t.includeInvisible||!1;return re(e,r,o,t.intersect,i,s)},x:(e,n,t,i)=>oe(e,Object(a.y)(n,e),"x",t.intersect,i),y:(e,n,t,i)=>oe(e,Object(a.y)(n,e),"y",t.intersect,i)}};const le=["left","top","right","bottom"];function de(e,n){return e.filter(e=>e.pos===n)}function ce(e,n){return e.filter(e=>-1===le.indexOf(e.pos)&&e.box.axis===n)}function ue(e,n){return e.sort((e,t)=>{const a=n?t:e,i=n?e:t;return a.weight===i.weight?a.index-i.index:a.weight-i.weight})}function he(e,n){const t=function(e){const n={};for(const t of e){const{stack:e,pos:a,stackWeight:i}=t;if(!e||!le.includes(a))continue;const r=n[e]||(n[e]={count:0,placed:0,weight:0,size:0});r.count++,r.weight+=i}return n}(e),{vBoxMaxWidth:a,hBoxMaxHeight:i}=n;let r,o,s;for(r=0,o=e.length;r{a[e]=Math.max(n[e],t[e])}),a}return a(e?["left","right"]:["top","bottom"])}function be(e,n,t,a){const i=[];let r,o,s,l,d,c;for(r=0,o=e.length,d=0;re.box.fullSize),!0),a=ue(de(n,"left"),!0),i=ue(de(n,"right")),r=ue(de(n,"top"),!0),o=ue(de(n,"bottom")),s=ce(n,"x"),l=ce(n,"y");return{fullSize:t,leftAndTop:a.concat(r),rightAndBottom:i.concat(l).concat(o).concat(s),chartArea:de(n,"chartArea"),vertical:a.concat(i).concat(l),horizontal:r.concat(o).concat(s)}}(e.boxes),d=l.vertical,c=l.horizontal;Object(a.r)(e.boxes,e=>{"function"==typeof e.beforeLayout&&e.beforeLayout()});const u=d.reduce((e,n)=>n.box.options&&!1===n.box.options.display?e:e+1,0)||1,h=Object.freeze({outerWidth:n,outerHeight:t,padding:r,availableWidth:o,availableHeight:s,vBoxMaxWidth:o/2/u,hBoxMaxHeight:s/2}),p=Object.assign({},r);fe(p,Object(a.l)(i));const f=Object.assign({maxPadding:p,w:o,h:s,x:r.left,y:r.top},r),m=he(d.concat(c),h);be(l.fullSize,f,h,m),be(d,f,h,m),be(c,f,h,m)&&be(d,f,h,m),function(e){const n=e.maxPadding;function t(t){const a=Math.max(n[t]-e[t],0);return e[t]+=a,a}e.y+=t("top"),e.x+=t("left"),t("right"),t("bottom")}(f),ye(l.leftAndTop,f,h,m),f.x+=f.w,f.y+=f.h,ye(l.rightAndBottom,f,h,m),e.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},Object(a.r)(l.chartArea,n=>{const t=n.box;Object.assign(t,e.chartArea),t.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class Ce{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,t){}removeEventListener(e,n,t){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,t,a){return n=Math.max(0,n||e.width),t=t||e.height,{width:n,height:Math.max(0,a?Math.floor(n/a):t)}}isAttached(e){return!0}updateConfig(e){}}class Te extends Ce{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const De={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},we=e=>null===e||""===e;const Oe=!!a.I&&{passive:!0};function ke(e,n,t){e.canvas.removeEventListener(n,t,Oe)}function Se(e,n){for(const t of e)if(t===n||t.contains(n))return!0}function Pe(e,n,t){const a=e.canvas,i=new MutationObserver(e=>{let n=!1;for(const t of e)n=n||Se(t.addedNodes,a),n=n&&!Se(t.removedNodes,a);n&&t()});return i.observe(document,{childList:!0,subtree:!0}),i}function Ae(e,n,t){const a=e.canvas,i=new MutationObserver(e=>{let n=!1;for(const t of e)n=n||Se(t.removedNodes,a),n=n&&!Se(t.addedNodes,a);n&&t()});return i.observe(document,{childList:!0,subtree:!0}),i}const Re=new Map;let Ie=0;function _e(){const e=window.devicePixelRatio;e!==Ie&&(Ie=e,Re.forEach((n,t)=>{t.currentDevicePixelRatio!==e&&n()}))}function Le(e,n,t){const i=e.canvas,r=i&&Object(a.F)(i);if(!r)return;const o=Object(a.H)((e,n)=>{const a=r.clientWidth;t(e,n),a{const n=e[0],t=n.contentRect.width,a=n.contentRect.height;0===t&&0===a||o(t,a)});return s.observe(r),function(e,n){Re.size||window.addEventListener("resize",_e),Re.set(e,n)}(e,o),s}function Ee(e,n,t){t&&t.disconnect(),"resize"===n&&function(e){Re.delete(e),Re.size||window.removeEventListener("resize",_e)}(e)}function Me(e,n,t){const i=e.canvas,r=Object(a.H)(n=>{null!==e.ctx&&t(function(e,n){const t=De[e.type]||e.type,{x:i,y:r}=Object(a.y)(e,n);return{type:t,chart:n,native:e,x:void 0!==i?i:null,y:void 0!==r?r:null}}(n,e))},e,e=>{const n=e[0];return[n,n.offsetX,n.offsetY]});return function(e,n,t){e.addEventListener(n,t,Oe)}(i,n,r),r}class je extends Ce{acquireContext(e,n){const t=e&&e.getContext&&e.getContext("2d");return t&&t.canvas===e?(function(e,n){const t=e.style,i=e.getAttribute("height"),r=e.getAttribute("width");if(e.$chartjs={initial:{height:i,width:r,style:{display:t.display,height:t.height,width:t.width}}},t.display=t.display||"block",t.boxSizing=t.boxSizing||"border-box",we(r)){const n=Object(a.G)(e,"width");void 0!==n&&(e.width=n)}if(we(i))if(""===e.style.height)e.height=e.width/(n||2);else{const n=Object(a.G)(e,"height");void 0!==n&&(e.height=n)}}(e,n),t):null}releaseContext(e){const n=e.canvas;if(!n.$chartjs)return!1;const t=n.$chartjs.initial;["height","width"].forEach(e=>{const i=t[e];Object(a.Mb)(i)?n.removeAttribute(e):n.setAttribute(e,i)});const i=t.style||{};return Object.keys(i).forEach(e=>{n.style[e]=i[e]}),n.width=n.width,delete n.$chartjs,!0}addEventListener(e,n,t){this.removeEventListener(e,n);const a=e.$proxies||(e.$proxies={}),i={attach:Pe,detach:Ae,resize:Le}[n]||Me;a[n]=i(e,n,t)}removeEventListener(e,n){const t=e.$proxies||(e.$proxies={}),a=t[n];if(!a)return;({attach:Ee,detach:Ee,resize:Ee}[n]||ke)(e,n,a),t[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,t,i){return Object(a.E)(e,n,t,i)}isAttached(e){const n=Object(a.F)(e);return!(!n||!n.isConnected)}}class Ue{constructor(){this._init=[]}notify(e,n,t,a){"beforeInit"===n&&(this._init=this._createDescriptors(e,!0),this._notify(this._init,e,"install"));const i=a?this._descriptors(e).filter(a):this._descriptors(e),r=this._notify(i,e,n,t);return"afterDestroy"===n&&(this._notify(i,e,"stop"),this._notify(this._init,e,"uninstall")),r}_notify(e,n,t,i){i=i||{};for(const r of e){const e=r.plugin,o=e[t],s=[n,i,r.options];if(!1===Object(a.d)(o,s,e)&&i.cancelable)return!1}return!0}invalidate(){Object(a.Mb)(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(e){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(e);return this._notifyStateChanges(e),n}_createDescriptors(e,n){const t=e&&e.config,i=Object(a.Xb)(t.options&&t.options.plugins,{}),r=function(e){const n={},t=[],a=Object.keys(X.plugins.items);for(let e=0;ee.filter(e=>!n.some(n=>e.plugin.id===n.plugin.id));this._notify(a(n,t),e,"stop"),this._notify(a(t,n),e,"start")}}function Ne(e,n){return n||!1!==e?!0===e?{}:e:null}function Be(e,{plugin:n,local:t},a,i){const r=e.pluginScopeKeys(n),o=e.getOptionScopes(a,r);return t&&n.defaults&&o.push(n.defaults),e.createResolver(o,i,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Fe(e,n){const t=a.Fb.datasets[e]||{};return((n.datasets||{})[e]||{}).indexAxis||n.indexAxis||t.indexAxis||"x"}function ze(e,n){return"x"===e||"y"===e?e:n.axis||("top"===(t=n.position)||"bottom"===t?"x":"left"===t||"right"===t?"y":void 0)||e.charAt(0).toLowerCase();var t}function He(e){const n=e.options||(e.options={});n.plugins=Object(a.Xb)(n.plugins,{}),n.scales=function(e,n){const t=a.v[e.type]||{scales:{}},i=n.scales||{},r=Fe(e.type,n),o=Object.create(null),s=Object.create(null);return Object.keys(i).forEach(e=>{const n=i[e];if(!Object(a.Kb)(n))return console.error("Invalid scale configuration for scale: "+e);if(n._proxy)return console.warn("Ignoring resolver passed as options for scale: "+e);const l=ze(e,n),d=function(e,n){return e===n?"_index_":"_value_"}(l,r),c=t.scales||{};o[l]=o[l]||e,s[e]=Object(a.fb)(Object.create(null),[{axis:l},n,c[l],c[d]])}),e.data.datasets.forEach(t=>{const r=t.type||e.type,l=t.indexAxis||Fe(r,n),d=(a.v[r]||{}).scales||{};Object.keys(d).forEach(e=>{const n=function(e,n){let t=e;return"_index_"===e?t=n:"_value_"===e&&(t="x"===n?"y":"x"),t}(e,l),r=t[n+"AxisID"]||o[n]||n;s[r]=s[r]||Object.create(null),Object(a.fb)(s[r],[{axis:n},i[r],d[e]])})}),Object.keys(s).forEach(e=>{const n=s[e];Object(a.fb)(n,[a.Fb.scales[n.type],a.Fb.scale])}),s}(e,n)}function Ve(e){return(e=e||{}).datasets=e.datasets||[],e.labels=e.labels||[],e}const We=new Map,Ye=new Set;function $e(e,n){let t=We.get(e);return t||(t=n(),We.set(e,t),Ye.add(t)),t}const Ge=(e,n,t)=>{const i=Object(a.Hb)(n,t);void 0!==i&&e.add(i)};class qe{constructor(e){this._config=function(e){return(e=e||{}).data=Ve(e.data),He(e),e}(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=Ve(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),He(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return $e(e,()=>[["datasets."+e,""]])}datasetAnimationScopeKeys(e,n){return $e(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,"transitions."+n],["datasets."+e,""]])}datasetElementScopeKeys(e,n){return $e(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,"datasets."+e,"elements."+n,""]])}pluginScopeKeys(e){const n=e.id;return $e(`${this.type}-plugin-${n}`,()=>[["plugins."+n,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const t=this._scopeCache;let a=t.get(e);return a&&!n||(a=new Map,t.set(e,a)),a}getOptionScopes(e,n,t){const{options:i,type:r}=this,o=this._cachedScopes(e,t),s=o.get(n);if(s)return s;const l=new Set;n.forEach(n=>{e&&(l.add(e),n.forEach(n=>Ge(l,e,n))),n.forEach(e=>Ge(l,i,e)),n.forEach(e=>Ge(l,a.v[r]||{},e)),n.forEach(e=>Ge(l,a.Fb,e)),n.forEach(e=>Ge(l,a.K,e))});const d=Array.from(l);return 0===d.length&&d.push(Object.create(null)),Ye.has(n)&&o.set(n,d),d}chartOptionScopes(){const{options:e,type:n}=this;return[e,a.v[n]||{},a.Fb.datasets[n]||{},{type:n},a.Fb,a.K]}resolveNamedOptions(e,n,t,i=[""]){const r={$shared:!0},{resolver:o,subPrefixes:s}=Xe(this._resolverCache,e,i);let l=o;if(function(e,n){const{isScriptable:t,isIndexable:i}=Object(a.eb)(e);for(const r of n){const n=t(r),o=i(r),s=(o||n)&&e[r];if(n&&(Object(a.L)(s)||Je(s))||o&&Object(a.Db)(s))return!0}return!1}(o,n)){r.$shared=!1,t=Object(a.L)(t)?t():t;const n=this.createResolver(e,t,s);l=Object(a.M)(o,t,n)}for(const e of n)r[e]=l[e];return r}createResolver(e,n,t=[""],i){const{resolver:r}=Xe(this._resolverCache,e,t);return Object(a.Kb)(n)?Object(a.M)(r,n,void 0,i):r}}function Xe(e,n,t){let i=e.get(n);i||(i=new Map,e.set(n,i));const r=t.join();let o=i.get(r);if(!o){o={resolver:Object(a.db)(n,t),subPrefixes:t.filter(e=>!e.toLowerCase().includes("hover"))},i.set(r,o)}return o}const Je=e=>Object(a.Kb)(e)&&Object.getOwnPropertyNames(e).reduce((n,t)=>n||Object(a.L)(e[t]),!1);const Ze=["top","bottom","left","right","chartArea"];function Ke(e,n){return"top"===e||"bottom"===e||-1===Ze.indexOf(e)&&"x"===n}function Qe(e,n){return function(t,a){return t[e]===a[e]?t[n]-a[n]:t[e]-a[e]}}function en(e){const n=e.chart,t=n.options.animation;n.notifyPlugins("afterRender"),Object(a.d)(t&&t.onComplete,[e],n)}function nn(e){const n=e.chart,t=n.options.animation;Object(a.d)(t&&t.onProgress,[e],n)}function tn(e){return Object(a.J)()&&"string"==typeof e?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const an={},rn=e=>{const n=tn(e);return Object.values(an).filter(e=>e.canvas===n).pop()};function on(e,n,t){const a=Object.keys(e);for(const i of a){const a=+i;if(a>=n){const r=e[i];delete e[i],(t>0||a>n)&&(e[a+t]=r)}}}class sn{constructor(e,n){const t=this.config=new qe(n),r=tn(e),o=rn(r);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=t.createResolver(t.chartOptionScopes(),this.getContext());this.platform=new(t.platform||function(e){return!Object(a.J)()||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?Te:je}(r)),this.platform.updateConfig(t);const l=this.platform.acquireContext(r,s.aspectRatio),d=l&&l.canvas,c=d&&d.height,u=d&&d.width;this.id=Object(a.gb)(),this.ctx=l,this.canvas=d,this.width=u,this.height=c,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Ue,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=Object(a.hb)(e=>this.update(e),s.resizeDelay||0),this._dataChanges=[],an[this.id]=this,l&&d?(i.listen(this,"complete",en),i.listen(this,"progress",nn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:n},width:t,height:i,_aspectRatio:r}=this;return Object(a.Mb)(e)?n&&r?r:i?t/i:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Object(a.ib)(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Object(a.jb)(this.canvas,this.ctx),this}stop(){return i.stop(this),this}resize(e,n){i.running(this)?this._resizeBeforeDraw={width:e,height:n}:this._resize(e,n)}_resize(e,n){const t=this.options,i=this.canvas,r=t.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(i,e,n,r),s=t.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,Object(a.ib)(this,s,!0)&&(this.notifyPlugins("resize",{size:o}),Object(a.d)(t.onResize,[this,o],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const e=this.options.scales||{};Object(a.r)(e,(e,n)=>{e.id=n})}buildOrUpdateScales(){const e=this.options,n=e.scales,t=this.scales,i=Object.keys(t).reduce((e,n)=>(e[n]=!1,e),{});let r=[];n&&(r=r.concat(Object.keys(n).map(e=>{const t=n[e],a=ze(e,t),i="r"===a,r="x"===a;return{options:t,dposition:i?"chartArea":r?"bottom":"left",dtype:i?"radialLinear":r?"category":"linear"}}))),Object(a.r)(r,n=>{const r=n.options,o=r.id,s=ze(o,r),l=Object(a.Xb)(r.type,n.dtype);void 0!==r.position&&Ke(r.position,s)===Ke(n.dposition)||(r.position=n.dposition),i[o]=!0;let d=null;if(o in t&&t[o].type===l)d=t[o];else{d=new(X.getScale(l))({id:o,type:l,ctx:this.ctx,chart:this}),t[d.id]=d}d.init(r,e)}),Object(a.r)(i,(e,n)=>{e||delete t[n]}),Object(a.r)(t,e=>{xe.configure(this,e,e.options),xe.addBox(this,e)})}_updateMetasets(){const e=this._metasets,n=this.data.datasets.length,t=e.length;if(e.sort((e,n)=>e.index-n.index),t>n){for(let e=n;en.length&&delete this._stacks,e.forEach((e,t)=>{0===n.filter(n=>n===e._dataset).length&&this._destroyDatasetMeta(t)})}buildOrUpdateControllers(){const e=[],n=this.data.datasets;let t,i;for(this._removeUnreferencedMetasets(),t=0,i=n.length;t{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const n=this.config;n.update();const t=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!t.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const r=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let e=0,n=this.data.datasets.length;e{e.reset()}),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(Qe("z","_idx"));const{_active:s,_lastEvent:l}=this;l?this._eventHandler(l,!0):s.length&&this._updateHoverStyles(s,s,!0),this.render()}_updateScales(){Object(a.r)(this.scales,e=>{xe.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,n=new Set(Object.keys(this._listeners)),t=new Set(e.events);Object(a.kb)(n,t)&&!!this._responsiveListeners===e.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,n=this._getUniformDataChanges()||[];for(const{method:t,start:a,count:i}of n){on(e,a,"_removeElements"===t?-i:i)}}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const n=this.data.datasets.length,t=n=>new Set(e.filter(e=>e[0]===n).map((e,n)=>n+","+e.splice(1).join(","))),i=t(0);for(let e=1;ee.split(",")).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;xe.update(this,this.width,this.height,e);const n=this.chartArea,t=n.width<=0||n.height<=0;this._layers=[],Object(a.r)(this.boxes,e=>{t&&"chartArea"===e.position||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,n)=>{e._idx=n}),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let e=0,n=this.data.datasets.length;e=0;--n)this._drawDataset(e[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const n=this.ctx,t=e._clip,i=!t.disabled,r=this.chartArea,o={meta:e,index:e.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(i&&Object(a.m)(n,{left:!1===t.left?0:r.left-t.left,right:!1===t.right?this.width:r.right+t.right,top:!1===t.top?0:r.top-t.top,bottom:!1===t.bottom?this.height:r.bottom+t.bottom}),e.controller.draw(),i&&Object(a.o)(n),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(e){return Object(a.a)(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,n,t,a){const i=se.modes[n];return"function"==typeof i?i(this,e,t,a):[]}getDatasetMeta(e){const n=this.data.datasets[e],t=this._metasets;let a=t.filter(e=>e&&e._dataset===n).pop();return a||(a={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:e,_dataset:n,_parsed:[],_sorted:!1},t.push(a)),a}getContext(){return this.$context||(this.$context=Object(a.Jb)(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const n=this.data.datasets[e];if(!n)return!1;const t=this.getDatasetMeta(e);return"boolean"==typeof t.hidden?!t.hidden:!n.hidden}setDatasetVisibility(e,n){this.getDatasetMeta(e).hidden=!n}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,n,t){const i=t?"show":"hide",r=this.getDatasetMeta(e),o=r.controller._resolveAnimations(void 0,i);Object(a.Lb)(n)?(r.data[n].hidden=!t,this.update()):(this.setDatasetVisibility(e,t),o.update(r,{visible:t}),this.update(n=>n.datasetIndex===e?i:void 0))}hide(e,n){this._updateVisibility(e,n,!1)}show(e,n){this._updateVisibility(e,n,!0)}_destroyDatasetMeta(e){const n=this._metasets[e];n&&n.controller&&n.controller._destroy(),delete this._metasets[e]}_stop(){let e,n;for(this.stop(),i.remove(this),e=0,n=this.data.datasets.length;e{n.addEventListener(this,t,a),e[t]=a},i=(e,n,t)=>{e.offsetX=n,e.offsetY=t,this._eventHandler(e)};Object(a.r)(this.options.events,e=>t(e,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,n=this.platform,t=(t,a)=>{n.addEventListener(this,t,a),e[t]=a},a=(t,a)=>{e[t]&&(n.removeEventListener(this,t,a),delete e[t])},i=(e,n)=>{this.canvas&&this.resize(e,n)};let r;const o=()=>{a("attach",o),this.attached=!0,this.resize(),t("resize",i),t("detach",r)};r=()=>{this.attached=!1,a("resize",i),this._stop(),this._resize(0,0),t("attach",o)},n.isAttached(this.canvas)?o():r()}unbindEvents(){Object(a.r)(this._listeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._listeners={},Object(a.r)(this._responsiveListeners,(e,n)=>{this.platform.removeEventListener(this,n,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,n,t){const a=t?"set":"remove";let i,r,o,s;for("dataset"===n&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller["_"+a+"DatasetHoverStyle"]()),o=0,s=e.length;o{const t=this.getDatasetMeta(e);if(!t)throw new Error("No dataset found at index "+e);return{datasetIndex:e,element:t.data[n],index:n}});!Object(a.lb)(t,n)&&(this._active=t,this._lastEvent=null,this._updateHoverStyles(t,n))}notifyPlugins(e,n,t){return this._plugins.notify(this,e,n,t)}_updateHoverStyles(e,n,t){const a=this.options.hover,i=(e,n)=>e.filter(e=>!n.some(n=>e.datasetIndex===n.datasetIndex&&e.index===n.index)),r=i(n,e),o=t?e:i(e,n);r.length&&this.updateHoverStyle(r,a.mode,!1),o.length&&a.mode&&this.updateHoverStyle(o,a.mode,!0)}_eventHandler(e,n){const t={event:e,replay:n,cancelable:!0,inChartArea:this.isPointInArea(e)},a=n=>(n.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",t,a))return;const i=this._handleEvent(e,n,t.inChartArea);return t.cancelable=!1,this.notifyPlugins("afterEvent",t,a),(i||t.changed)&&this.render(),this}_handleEvent(e,n,t){const{_active:i=[],options:r}=this,o=n,s=this._getActiveElements(e,i,t,o),l=Object(a.mb)(e),d=function(e,n,t,a){return t&&"mouseout"!==e.type?a?n:e:null}(e,this._lastEvent,t,l);t&&(this._lastEvent=null,Object(a.d)(r.onHover,[e,s,this],this),l&&Object(a.d)(r.onClick,[e,s,this],this));const c=!Object(a.lb)(s,i);return(c||n)&&(this._active=s,this._updateHoverStyles(s,i,n)),this._lastEvent=d,c}_getActiveElements(e,n,t,a){if("mouseout"===e.type)return[];if(!t)return n;const i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,a)}}const ln=()=>Object(a.r)(sn.instances,e=>e._plugins.invalidate());function dn(e,n,t){const{startAngle:i,pixelMargin:r,x:o,y:s,outerRadius:l,innerRadius:d}=n;let c=r/l;e.beginPath(),e.arc(o,s,l,i-c,t+c),d>r?(c=r/d,e.arc(o,s,d,t+c,i-c,!0)):e.arc(o,s,r,t+a.i,i-a.i),e.closePath(),e.clip()}function cn(e,n,t,i){const r=(o=e.options.borderRadius,Object(a.ob)(o,["outerStart","outerEnd","innerStart","innerEnd"]));var o;const s=(t-n)/2,l=Math.min(s,i*n/2),d=e=>{const n=(t-Math.min(s,e))*i/2;return Object(a.f)(e,0,Math.min(s,n))};return{outerStart:d(r.outerStart),outerEnd:d(r.outerEnd),innerStart:Object(a.f)(r.innerStart,0,l),innerEnd:Object(a.f)(r.innerEnd,0,l)}}function un(e,n,t,a){return{x:t+e*Math.cos(n),y:a+e*Math.sin(n)}}function hn(e,n,t,i,r,o){const{x:s,y:l,startAngle:d,pixelMargin:c,innerRadius:u}=n,h=Math.max(n.outerRadius+i+t-c,0),p=u>0?u+i+t+c:0;let f=0;const m=r-d;if(i){const e=((u>0?u-i:0)+(h>0?h-i:0))/2;f=(m-(0!==e?m*e/(e+i):m))/2}const g=(m-Math.max(.001,m*h-t/a.q)/h)/2,b=d+g+f,v=r-g-f,{outerStart:y,outerEnd:x,innerStart:C,innerEnd:T}=cn(n,p,h,v-b),D=h-y,w=h-x,O=b+y/D,k=v-x/w,S=p+C,P=p+T,A=b+C/S,R=v-T/P;if(e.beginPath(),o){if(e.arc(s,l,h,O,k),x>0){const n=un(w,k,s,l);e.arc(n.x,n.y,x,k,v+a.i)}const n=un(P,v,s,l);if(e.lineTo(n.x,n.y),T>0){const n=un(P,R,s,l);e.arc(n.x,n.y,T,v+a.i,R+Math.PI)}if(e.arc(s,l,p,v-T/p,b+C/p,!0),C>0){const n=un(S,A,s,l);e.arc(n.x,n.y,C,A+Math.PI,b-a.i)}const t=un(D,b,s,l);if(e.lineTo(t.x,t.y),y>0){const n=un(D,O,s,l);e.arc(n.x,n.y,y,b-a.i,O)}}else{e.moveTo(s,l);const n=Math.cos(O)*h+s,t=Math.sin(O)*h+l;e.lineTo(n,t);const a=Math.cos(k)*h+s,i=Math.sin(k)*h+l;e.lineTo(a,i)}e.closePath()}function pn(e,n,t,i,r,o){const{options:s}=n,{borderWidth:l,borderJoinStyle:d}=s,c="inner"===s.borderAlign;l&&(c?(e.lineWidth=2*l,e.lineJoin=d||"round"):(e.lineWidth=l,e.lineJoin=d||"bevel"),n.fullCircles&&function(e,n,t){const{x:i,y:r,startAngle:o,pixelMargin:s,fullCircles:l}=n,d=Math.max(n.outerRadius-s,0),c=n.innerRadius+s;let u;for(t&&dn(e,n,o+a.u),e.beginPath(),e.arc(i,r,c,o+a.u,o,!0),u=0;u{X.add(...e),ln()}},unRegistro:{enumerable:!0,value:(...e)=>{X.remove(...e),ln()}}});class fn extends j{constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,t){const i=this.getProps(["x","y"],t),{angle:r,distance:o}=Object(a.D)(i,{x:e,y:n}),{startAngle:s,endAngle:l,innerRadius:d,outerRadius:c,circumference:u}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],t),h=this.options.spacing/2,p=Object(a.Xb)(u,l-s)>=a.u||Object(a.Rb)(r,s,l),f=Object(a.nb)(o,d+h,c+h);return p&&f}getCenterPoint(e){const{x:n,y:t,startAngle:a,endAngle:i,innerRadius:r,outerRadius:o}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],e),{offset:s,spacing:l}=this.options,d=(a+i)/2,c=(r+o+l+s)/2;return{x:n+Math.cos(d)*c,y:t+Math.sin(d)*c}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:t}=this,i=(n.offset||0)/2,r=(n.spacing||0)/2,o=n.circular;if(this.pixelMargin="inner"===n.borderAlign?.33:0,this.fullCircles=t>a.u?Math.floor(t/a.u):0,0===t||this.innerRadius<0||this.outerRadius<0)return;e.save();let s=0;if(i){s=i/2;const n=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(n)*s,Math.sin(n)*s),this.circumference>=a.q&&(s=i)}e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor;const l=function(e,n,t,i,r){const{fullCircles:o,startAngle:s,circumference:l}=n;let d=n.endAngle;if(o){hn(e,n,t,i,s+a.u,r);for(let n=0;ns&&r>s;return{count:a,start:l,loop:n.loop,ilen:d(o+(d?s-e:e))%r,y=()=>{p!==f&&(e.lineTo(g,f),e.lineTo(g,p),e.lineTo(g,m))};for(l&&(u=i[v(0)],e.moveTo(u.x,u.y)),c=0;c<=s;++c){if(u=i[v(c)],u.skip)continue;const n=u.x,t=u.y,a=0|n;a===h?(tf&&(f=t),g=(b*g+n)/++b):(y(),e.lineTo(n,t),h=a,b=0,p=f=t),m=t}y()}function xn(e){const n=e.options,t=n.borderDash&&n.borderDash.length;return!(e._decimated||e._loop||n.tension||"monotone"===n.cubicInterpolationMode||n.stepped||t)?yn:vn}fn.id="arc",fn.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0},fn.defaultRoutes={backgroundColor:"backgroundColor"};const Cn="function"==typeof Path2D;function Tn(e,n,t,a){Cn&&!n.options.segment?function(e,n,t,a){let i=n._path;i||(i=n._path=new Path2D,n.path(i,t,a)&&i.closePath()),mn(e,n.options),e.stroke(i)}(e,n,t,a):function(e,n,t,a){const{segments:i,options:r}=n,o=xn(n);for(const s of i)mn(e,r,s.style),e.beginPath(),o(e,n,s,{start:t,end:t+a-1})&&e.closePath(),e.stroke()}(e,n,t,a)}class Dn extends j{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const t=this.options;if((t.tension||"monotone"===t.cubicInterpolationMode)&&!t.stepped&&!this._pointsUpdated){const i=t.spanGaps?this._loop:this._fullLoop;Object(a.pb)(this._points,t,e,i,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Object(a.qb)(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,t=e.length;return t&&n[e[t-1].end]}interpolate(e,n){const t=this.options,i=e[n],r=this.points,o=Object(a.rb)(this,{property:n,start:i,end:i});if(!o.length)return;const s=[],l=function(e){return e.stepped?a.sb:e.tension||"monotone"===e.cubicInterpolationMode?a.tb:a.ub}(t);let d,c;for(d=0,c=o.length;d"borderDash"!==e&&"fill"!==e};class On extends j{constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,n,t){const a=this.options,{x:i,y:r}=this.getProps(["x","y"],t);return Math.pow(e-i,2)+Math.pow(n-r,2){En(e)})}var jn={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(e,n,t)=>{if(!t.enabled)return void Mn(e);const i=e.width;e.data.datasets.forEach((n,r)=>{const{_data:o,indexAxis:s}=n,l=e.getDatasetMeta(r),d=o||n.data;if("y"===Object(a.C)([s,e.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=e.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(e.options.parsing)return;let{start:u,count:h}=function(e,n){const t=n.length;let i,r=0;const{iScale:o}=e,{min:s,max:l,minDefined:d,maxDefined:c}=o.getUserBounds();return d&&(r=Object(a.f)(Object(a.A)(n,o.axis,s).lo,0,t-1)),i=c?Object(a.f)(Object(a.A)(n,o.axis,l).hi+1,r,t)-r:t-r,{start:r,count:i}}(l,d);if(h<=(t.threshold||4*i))return void En(n);let p;switch(Object(a.Mb)(o)&&(n._data=d,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}})),t.algorithm){case"lttb":p=function(e,n,t,a,i){const r=i.samples||a;if(r>=t)return e.slice(n,n+t);const o=[],s=(t-2)/(r-2);let l=0;const d=n+t-1;let c,u,h,p,f,m=n;for(o[l++]=e[m],c=0;ch&&(h=p,u=e[a],f=a);o[l++]=u,m=f}return o[l++]=e[d],o}(d,u,h,i,t);break;case"min-max":p=function(e,n,t,i){let r,o,s,l,d,c,u,h,p,f,m=0,g=0;const b=[],v=n+t-1,y=e[n].x,x=e[v].x-y;for(r=n;rf&&(f=l,u=r),m=(g*m+o.x)/++g;else{const t=r-1;if(!Object(a.Mb)(c)&&!Object(a.Mb)(u)){const n=Math.min(c,u),a=Math.max(c,u);n!==h&&n!==t&&b.push({...e[n],x:m}),a!==h&&a!==t&&b.push({...e[a],x:m})}r>0&&t!==h&&b.push(e[t]),b.push(o),d=n,g=0,p=f=l,c=u=h=r}}return b}(d,u,h,i);break;default:throw new Error(`Unsupported decimation algorithm '${t.algorithm}'`)}n._decimated=p})},destroy(e){Mn(e)}};function Un(e,n,t,i){if(i)return;let r=n[e],o=t[e];return"angle"===e&&(r=Object(a.Cb)(r),o=Object(a.Cb)(o)),{property:e,start:r,end:o}}function Nn(e,n,t){for(;n>e;n--){const e=t[n];if(!isNaN(e.x)&&!isNaN(e.y))break}return n}function Bn(e,n,t,a){return e&&n?a(e[t],n[t]):e?e[t]:n?n[t]:0}function Fn(e,n){let t=[],i=!1;return Object(a.Db)(e)?(i=!0,t=e):t=function(e,n){const{x:t=null,y:a=null}=e||{},i=n.points,r=[];return n.segments.forEach(({start:e,end:n})=>{n=Nn(e,n,i);const o=i[e],s=i[n];null!==a?(r.push({x:o.x,y:a}),r.push({x:s.x,y:a})):null!==t&&(r.push({x:t,y:o.y}),r.push({x:t,y:s.y}))}),r}(e,n),t.length?new Dn({points:t,options:{tension:0},_loop:i,_fullLoop:i}):null}function zn(e){return e&&!1!==e.fill}function Hn(e,n,t){let i=e[n].fill;const r=[n];let o;if(!t)return i;for(;!1!==i&&-1===r.indexOf(i);){if(!Object(a.Ib)(i))return i;if(o=e[i],!o)return!1;if(o.visible)return i;r.push(i),i=o.fill}return!1}function Vn(e,n,t){const i=function(e){const n=e.options,t=n.fill;let i=Object(a.Xb)(t&&t.target,t);void 0===i&&(i=!!n.backgroundColor);if(!1===i||null===i)return!1;if(!0===i)return"origin";return i}(e);if(Object(a.Kb)(i))return!isNaN(i.value)&&i;let r=parseFloat(i);return Object(a.Ib)(r)&&Math.floor(r)===r?function(e,n,t,a){"-"!==e&&"+"!==e||(t=n+t);if(t===n||t<0||t>=a)return!1;return t}(i[0],n,r,t):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function Wn(e,n,t){const a=[];for(let i=0;i=0;--n){const t=i[n].$filler;t&&(t.line.updateControlPoints(r,t.axis),a&&t.fill&&qn(e.ctx,t,r))}},beforeDatasetsDraw(e,n,t){if("beforeDatasetsDraw"!==t.drawTime)return;const a=e.getSortedVisibleDatasetMetas();for(let n=a.length-1;n>=0;--n){const t=a[n].$filler;zn(t)&&qn(e.ctx,t,e.chartArea)}},beforeDatasetDraw(e,n,t){const a=n.meta.$filler;zn(a)&&"beforeDatasetDraw"===t.drawTime&&qn(e.ctx,a,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const et=(e,n)=>{let{boxHeight:t=n,boxWidth:a=n}=e;return e.usePointStyle&&(t=Math.min(t,n),a=e.pointStyleWidth||Math.min(a,n)),{boxWidth:a,boxHeight:t,itemHeight:Math.max(n,t)}};class nt extends j{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,t){this.maxWidth=e,this.maxHeight=n,this._margins=t,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=Object(a.d)(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(n=>e.filter(n,this.chart.data))),e.sort&&(n=n.sort((n,t)=>e.sort(n,t,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display)return void(this.width=this.height=0);const t=e.labels,i=Object(a.p)(t.font),r=i.size,o=this._computeTitleHeight(),{boxWidth:s,itemHeight:l}=et(t,r);let d,c;n.font=i.string,this.isHorizontal()?(d=this.maxWidth,c=this._fitRows(o,r,s,l)+10):(c=this.maxHeight,d=this._fitCols(o,r,s,l)+10),this.width=Math.min(d,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,n,t,a){const{ctx:i,maxWidth:r,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],l=this.lineWidths=[0],d=a+o;let c=e;i.textAlign="left",i.textBaseline="middle";let u=-1,h=-d;return this.legendItems.forEach((e,p)=>{const f=t+n/2+i.measureText(e.text).width;(0===p||l[l.length-1]+f+2*o>r)&&(c+=d,l[l.length-(p>0?0:1)]=0,h+=d,u++),s[p]={left:0,top:h,row:u,width:f,height:a},l[l.length-1]+=f+o}),c}_fitCols(e,n,t,a){const{ctx:i,maxHeight:r,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],l=this.columnSizes=[],d=r-e;let c=o,u=0,h=0,p=0,f=0;return this.legendItems.forEach((e,r)=>{const m=t+n/2+i.measureText(e.text).width;r>0&&h+a+2*o>d&&(c+=u+o,l.push({width:u,height:h}),p+=u+o,f++,u=h=0),s[r]={left:p,top:h,col:f,width:m,height:a},u=Math.max(u,m),h+=a+o}),c+=u,l.push({width:u,height:h}),c}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:t,labels:{padding:i},rtl:r}}=this,o=Object(a.N)(r,this.left,this.width);if(this.isHorizontal()){let r=0,s=Object(a.t)(t,this.left+i,this.right-this.lineWidths[r]);for(const l of n)r!==l.row&&(r=l.row,s=Object(a.t)(t,this.left+i,this.right-this.lineWidths[r])),l.top+=this.top+e+i,l.left=o.leftForLtr(o.x(s),l.width),s+=l.width+i}else{let r=0,s=Object(a.t)(t,this.top+e+i,this.bottom-this.columnSizes[r].height);for(const l of n)l.col!==r&&(r=l.col,s=Object(a.t)(t,this.top+e+i,this.bottom-this.columnSizes[r].height)),l.top=s,l.left+=this.left+i,l.left=o.leftForLtr(o.x(l.left),l.width),s+=l.height+i}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const e=this.ctx;Object(a.m)(e,this),this._draw(),Object(a.o)(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:t,ctx:i}=this,{align:r,labels:o}=e,s=a.Fb.color,l=Object(a.N)(e.rtl,this.left,this.width),d=Object(a.p)(o.font),{color:c,padding:u}=o,h=d.size,p=h/2;let f;this.drawTitle(),i.textAlign=l.textAlign("left"),i.textBaseline="middle",i.lineWidth=.5,i.font=d.string;const{boxWidth:m,boxHeight:g,itemHeight:b}=et(o,h),v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:Object(a.t)(r,this.left+u,this.right-t[0]),y:this.top+u+y,line:0}:{x:this.left+u,y:Object(a.t)(r,this.top+y+u,this.bottom-n[0].height),line:0},Object(a.O)(this.ctx,e.textDirection);const x=b+u;this.legendItems.forEach((C,T)=>{i.strokeStyle=C.fontColor||c,i.fillStyle=C.fontColor||c;const D=i.measureText(C.text).width,w=l.textAlign(C.textAlign||(C.textAlign=o.textAlign)),O=m+p+D;let k=f.x,S=f.y;l.setWidth(this.width),v?T>0&&k+O+u>this.right&&(S=f.y+=x,f.line++,k=f.x=Object(a.t)(r,this.left+u,this.right-t[f.line])):T>0&&S+x>this.bottom&&(k=f.x=k+n[f.line].width+u,f.line++,S=f.y=Object(a.t)(r,this.top+y+u,this.bottom-n[f.line].height));!function(e,n,t){if(isNaN(m)||m<=0||isNaN(g)||g<0)return;i.save();const r=Object(a.Xb)(t.lineWidth,1);if(i.fillStyle=Object(a.Xb)(t.fillStyle,s),i.lineCap=Object(a.Xb)(t.lineCap,"butt"),i.lineDashOffset=Object(a.Xb)(t.lineDashOffset,0),i.lineJoin=Object(a.Xb)(t.lineJoin,"miter"),i.lineWidth=r,i.strokeStyle=Object(a.Xb)(t.strokeStyle,s),i.setLineDash(Object(a.Xb)(t.lineDash,[])),o.usePointStyle){const s={radius:g*Math.SQRT2/2,pointStyle:t.pointStyle,rotation:t.rotation,borderWidth:r},d=l.xPlus(e,m/2),c=n+p;Object(a.R)(i,s,d,c,o.pointStyleWidth&&m)}else{const o=n+Math.max((h-g)/2,0),s=l.leftForLtr(e,m),d=Object(a.Ab)(t.borderRadius);i.beginPath(),Object.values(d).some(e=>0!==e)?Object(a.yb)(i,{x:s,y:o,w:m,h:g,radius:d}):i.rect(s,o,m,g),i.fill(),0!==r&&i.stroke()}i.restore()}(l.x(k),S,C),k=Object(a.P)(w,k+m+p,v?k+O:this.right,e.rtl),function(e,n,t){Object(a.n)(i,t.text,e,n+b/2,d,{strikethrough:t.hidden,textAlign:l.textAlign(t.textAlign)})}(l.x(k),S,C),v?f.x+=O+u:f.y+=x}),Object(a.Q)(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,t=Object(a.p)(n.font),i=Object(a.l)(n.padding);if(!n.display)return;const r=Object(a.N)(e.rtl,this.left,this.width),o=this.ctx,s=n.position,l=t.size/2,d=i.top+l;let c,u=this.left,h=this.width;if(this.isHorizontal())h=Math.max(...this.lineWidths),c=this.top+d,u=Object(a.t)(e.align,u,this.right-h);else{const n=this.columnSizes.reduce((e,n)=>Math.max(e,n.height),0);c=d+Object(a.t)(e.align,this.top,this.bottom-n-e.labels.padding-this._computeTitleHeight())}const p=Object(a.t)(s,u,u+h);o.textAlign=r.textAlign(Object(a.s)(s)),o.textBaseline="middle",o.strokeStyle=n.color,o.fillStyle=n.color,o.font=t.string,Object(a.n)(o,n.text,p,c,t)}_computeTitleHeight(){const e=this.options.title,n=Object(a.p)(e.font),t=Object(a.l)(e.padding);return e.display?n.lineHeight+t.height:0}_getLegendItemAt(e,n){let t,i,r;if(Object(a.nb)(e,this.left,this.right)&&Object(a.nb)(n,this.top,this.bottom))for(r=this.legendHitBoxes,t=0;te.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const n=e.data.datasets,{labels:{usePointStyle:t,pointStyle:i,textAlign:r,color:o}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{const s=e.controller.getStyle(t?0:void 0),l=Object(a.l)(s.borderWidth);return{text:n[e.index].label,fillStyle:s.backgroundColor,fontColor:o,hidden:!e.visible,lineCap:s.borderCapStyle,lineDash:s.borderDash,lineDashOffset:s.borderDashOffset,lineJoin:s.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:s.borderColor,pointStyle:i||s.pointStyle,rotation:s.rotation,textAlign:r||s.textAlign,borderRadius:0,datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class at extends j{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n){const t=this.options;if(this.left=0,this.top=0,!t.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=e,this.height=this.bottom=n;const i=Object(a.Db)(t.text)?t.text.length:1;this._padding=Object(a.l)(t.padding);const r=i*Object(a.p)(t.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=r:this.width=r}isHorizontal(){const e=this.options.position;return"top"===e||"bottom"===e}_drawArgs(e){const{top:n,left:t,bottom:i,right:r,options:o}=this,s=o.align;let l,d,c,u=0;return this.isHorizontal()?(d=Object(a.t)(s,t,r),c=n+e,l=r-t):("left"===o.position?(d=t+e,c=Object(a.t)(s,i,n),u=-.5*a.q):(d=r-e,c=Object(a.t)(s,n,i),u=.5*a.q),l=i-n),{titleX:d,titleY:c,maxWidth:l,rotation:u}}draw(){const e=this.ctx,n=this.options;if(!n.display)return;const t=Object(a.p)(n.font),i=t.lineHeight/2+this._padding.top,{titleX:r,titleY:o,maxWidth:s,rotation:l}=this._drawArgs(i);Object(a.n)(e,n.text,0,0,t,{color:n.color,maxWidth:s,rotation:l,textAlign:Object(a.s)(n.align),textBaseline:"middle",translation:[r,o]})}}var it={id:"title",_element:at,start(e,n,t){!function(e,n){const t=new at({ctx:e.ctx,options:n,chart:e});xe.configure(e,t,n),xe.addBox(e,t),e.titleBlock=t}(e,t)},stop(e){const n=e.titleBlock;xe.removeBox(e,n),delete e.titleBlock},beforeUpdate(e,n,t){const a=e.titleBlock;xe.configure(e,a,t),a.options=t},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const rt=new WeakMap;var ot={id:"subtitle",start(e,n,t){const a=new at({ctx:e.ctx,options:t,chart:e});xe.configure(e,a,t),xe.addBox(e,a),rt.set(e,a)},stop(e){xe.removeBox(e,rt.get(e)),rt.delete(e)},beforeUpdate(e,n,t){const a=rt.get(e);xe.configure(e,a,t),a.options=t},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const st={average(e){if(!e.length)return!1;let n,t,a=0,i=0,r=0;for(n=0,t=e.length;n-1?e.split("\n"):e}function ct(e,n){const{element:t,datasetIndex:a,index:i}=n,r=e.getDatasetMeta(a).controller,{label:o,value:s}=r.getLabelAndValue(i);return{chart:e,label:o,parsed:r.getParsed(i),raw:e.data.datasets[a].data[i],formattedValue:s,dataset:r.getDataset(),dataIndex:i,datasetIndex:a,element:t}}function ut(e,n){const t=e.chart.ctx,{body:i,footer:r,title:o}=e,{boxWidth:s,boxHeight:l}=n,d=Object(a.p)(n.bodyFont),c=Object(a.p)(n.titleFont),u=Object(a.p)(n.footerFont),h=o.length,p=r.length,f=i.length,m=Object(a.l)(n.padding);let g=m.height,b=0,v=i.reduce((e,n)=>e+n.before.length+n.lines.length+n.after.length,0);if(v+=e.beforeBody.length+e.afterBody.length,h&&(g+=h*c.lineHeight+(h-1)*n.titleSpacing+n.titleMarginBottom),v){g+=f*(n.displayColors?Math.max(l,d.lineHeight):d.lineHeight)+(v-f)*d.lineHeight+(v-1)*n.bodySpacing}p&&(g+=n.footerMarginTop+p*u.lineHeight+(p-1)*n.footerSpacing);let y=0;const x=function(e){b=Math.max(b,t.measureText(e).width+y)};return t.save(),t.font=c.string,Object(a.r)(e.title,x),t.font=d.string,Object(a.r)(e.beforeBody.concat(e.afterBody),x),y=n.displayColors?s+2+n.boxPadding:0,Object(a.r)(i,e=>{Object(a.r)(e.before,x),Object(a.r)(e.lines,x),Object(a.r)(e.after,x)}),y=0,t.font=u.string,Object(a.r)(e.footer,x),t.restore(),b+=m.width,{width:b,height:g}}function ht(e,n,t,a){const{x:i,width:r}=t,{width:o,chartArea:{left:s,right:l}}=e;let d="center";return"center"===a?d=i<=(s+l)/2?"left":"right":i<=r/2?d="left":i>=o-r/2&&(d="right"),function(e,n,t,a){const{x:i,width:r}=a,o=t.caretSize+t.caretPadding;return"left"===e&&i+r+o>n.width||("right"===e&&i-r-o<0||void 0)}(d,e,n,t)&&(d="center"),d}function pt(e,n,t){const a=t.yAlign||n.yAlign||function(e,n){const{y:t,height:a}=n;return te.height-a/2?"bottom":"center"}(e,t);return{xAlign:t.xAlign||n.xAlign||ht(e,n,t,a),yAlign:a}}function ft(e,n,t,i){const{caretSize:r,caretPadding:o,cornerRadius:s}=e,{xAlign:l,yAlign:d}=t,c=r+o,{topLeft:u,topRight:h,bottomLeft:p,bottomRight:f}=Object(a.Ab)(s);let m=function(e,n){let{x:t,width:a}=e;return"right"===n?t-=a:"center"===n&&(t-=a/2),t}(n,l);const g=function(e,n,t){let{y:a,height:i}=e;return"top"===n?a+=t:a-="bottom"===n?i+t:i/2,a}(n,d,c);return"center"===d?"left"===l?m+=c:"right"===l&&(m-=c):"left"===l?m-=Math.max(u,p)+r:"right"===l&&(m+=Math.max(h,f)+r),{x:Object(a.f)(m,0,i.width-n.width),y:Object(a.f)(g,0,i.height-n.height)}}function mt(e,n,t){const i=Object(a.l)(t.padding);return"center"===n?e.x+e.width/2:"right"===n?e.x+e.width-i.right:e.x+i.left}function gt(e){return lt([],dt(e))}function bt(e,n){const t=n&&n.dataset&&n.dataset.tooltip&&n.dataset.tooltip.callbacks;return t?e.override(t):e}class vt extends j{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart||e._chart,this._chart=this.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,t=this.options.setContext(this.getContext()),a=t.enabled&&n.options.animation&&t.animations,i=new l(this.chart,a);return a._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=(e=this.chart.getContext(),n=this,t=this._tooltipItems,Object(a.Jb)(e,{tooltip:n,tooltipItems:t,type:"tooltip"})));var e,n,t}getTitle(e,n){const{callbacks:t}=n,a=t.beforeTitle.apply(this,[e]),i=t.title.apply(this,[e]),r=t.afterTitle.apply(this,[e]);let o=[];return o=lt(o,dt(a)),o=lt(o,dt(i)),o=lt(o,dt(r)),o}getBeforeBody(e,n){return gt(n.callbacks.beforeBody.apply(this,[e]))}getBody(e,n){const{callbacks:t}=n,i=[];return Object(a.r)(e,e=>{const n={before:[],lines:[],after:[]},a=bt(t,e);lt(n.before,dt(a.beforeLabel.call(this,e))),lt(n.lines,a.label.call(this,e)),lt(n.after,dt(a.afterLabel.call(this,e))),i.push(n)}),i}getAfterBody(e,n){return gt(n.callbacks.afterBody.apply(this,[e]))}getFooter(e,n){const{callbacks:t}=n,a=t.beforeFooter.apply(this,[e]),i=t.footer.apply(this,[e]),r=t.afterFooter.apply(this,[e]);let o=[];return o=lt(o,dt(a)),o=lt(o,dt(i)),o=lt(o,dt(r)),o}_createItems(e){const n=this._active,t=this.chart.data,i=[],r=[],o=[];let s,l,d=[];for(s=0,l=n.length;se.filter(n,a,i,t))),e.itemSort&&(d=d.sort((n,a)=>e.itemSort(n,a,t))),Object(a.r)(d,n=>{const t=bt(e.callbacks,n);i.push(t.labelColor.call(this,n)),r.push(t.labelPointStyle.call(this,n)),o.push(t.labelTextColor.call(this,n))}),this.labelColors=i,this.labelPointStyles=r,this.labelTextColors=o,this.dataPoints=d,d}update(e,n){const t=this.options.setContext(this.getContext()),a=this._active;let i,r=[];if(a.length){const e=st[t.position].call(this,a,this._eventPosition);r=this._createItems(t),this.title=this.getTitle(r,t),this.beforeBody=this.getBeforeBody(r,t),this.body=this.getBody(r,t),this.afterBody=this.getAfterBody(r,t),this.footer=this.getFooter(r,t);const n=this._size=ut(this,t),o=Object.assign({},e,n),s=pt(this.chart,t,o),l=ft(t,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:l.x,y:l.y,width:n.width,height:n.height,caretX:e.x,caretY:e.y}}else 0!==this.opacity&&(i={opacity:0});this._tooltipItems=r,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&t.external&&t.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,t,a){const i=this.getCaretPosition(e,t,a);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(e,n,t){const{xAlign:i,yAlign:r}=this,{caretSize:o,cornerRadius:s}=t,{topLeft:l,topRight:d,bottomLeft:c,bottomRight:u}=Object(a.Ab)(s),{x:h,y:p}=e,{width:f,height:m}=n;let g,b,v,y,x,C;return"center"===r?(x=p+m/2,"left"===i?(g=h,b=g-o,y=x+o,C=x-o):(g=h+f,b=g+o,y=x-o,C=x+o),v=g):(b="left"===i?h+Math.max(l,c)+o:"right"===i?h+f-Math.max(d,u)-o:this.caretX,"top"===r?(y=p,x=y-o,g=b-o,v=b+o):(y=p+m,x=y+o,g=b+o,v=b-o),C=y),{x1:g,x2:b,x3:v,y1:y,y2:x,y3:C}}drawTitle(e,n,t){const i=this.title,r=i.length;let o,s,l;if(r){const d=Object(a.N)(t.rtl,this.x,this.width);for(e.x=mt(this,t.titleAlign,t),n.textAlign=d.textAlign(t.titleAlign),n.textBaseline="middle",o=Object(a.p)(t.titleFont),s=t.titleSpacing,n.fillStyle=t.titleColor,n.font=o.string,l=0;l0!==e)?(e.beginPath(),e.fillStyle=r.multiKeyBackground,Object(a.yb)(e,{x:n,y:m,w:d,h:l,radius:s}),e.fill(),e.stroke(),e.fillStyle=o.backgroundColor,e.beginPath(),Object(a.yb)(e,{x:t,y:m+1,w:d-2,h:l-2,radius:s}),e.fill()):(e.fillStyle=r.multiKeyBackground,e.fillRect(n,m,d,l),e.strokeRect(n,m,d,l),e.fillStyle=o.backgroundColor,e.fillRect(t,m+1,d-2,l-2))}e.fillStyle=this.labelTextColors[t]}drawBody(e,n,t){const{body:i}=this,{bodySpacing:r,bodyAlign:o,displayColors:s,boxHeight:l,boxWidth:d,boxPadding:c}=t,u=Object(a.p)(t.bodyFont);let h=u.lineHeight,p=0;const f=Object(a.N)(t.rtl,this.x,this.width),m=function(t){n.fillText(t,f.x(e.x+p),e.y+h/2),e.y+=h+r},g=f.textAlign(o);let b,v,y,x,C,T,D;for(n.textAlign=o,n.textBaseline="middle",n.font=u.string,e.x=mt(this,g,t),n.fillStyle=t.bodyColor,Object(a.r)(this.beforeBody,m),p=s&&"right"!==g?"center"===o?d/2+c:d+2+c:0,x=0,T=i.length;x0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,t=this.$animations,a=t&&t.x,i=t&&t.y;if(a||i){const t=st[e.position].call(this,this._active,this._eventPosition);if(!t)return;const r=this._size=ut(this,e),o=Object.assign({},t,this._size),s=pt(n,e,o),l=ft(e,o,s,n);a._to===l.x&&i._to===l.y||(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=r.width,this.height=r.height,this.caretX=t.x,this.caretY=t.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let t=this.opacity;if(!t)return;this._updateAnimationTarget(n);const i={width:this.width,height:this.height},r={x:this.x,y:this.y};t=Math.abs(t)<.001?0:t;const o=Object(a.l)(n.padding),s=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&s&&(e.save(),e.globalAlpha=t,this.drawBackground(r,e,i,n),Object(a.O)(e,n.textDirection),r.y+=o.top,this.drawTitle(r,e,n),this.drawBody(r,e,n),this.drawFooter(r,e,n),Object(a.Q)(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const t=this._active,i=e.map(({datasetIndex:e,index:n})=>{const t=this.chart.getDatasetMeta(e);if(!t)throw new Error("Cannot find a dataset at index "+e);return{datasetIndex:e,element:t.data[n],index:n}}),r=!Object(a.lb)(t,i),o=this._positionChanged(i,n);(r||o)&&(this._active=i,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,t=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const i=this.options,r=this._active||[],o=this._getActiveElements(e,r,n,t),s=this._positionChanged(o,e),l=n||!Object(a.lb)(o,r)||s;return l&&(this._active=o,(i.enabled||i.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,t,a){const i=this.options;if("mouseout"===e.type)return[];if(!a)return n;const r=this.chart.getElementsAtEventForMode(e,i.mode,i,t);return i.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:t,caretY:a,options:i}=this,r=st[i.position].call(this,e,n);return!1!==r&&(t!==r.x||a!==r.y)}}vt.positioners=st;var yt={id:"tooltip",_element:vt,positioners:st,afterInit(e,n,t){t&&(e.tooltip=new vt({chart:e,options:t}))},beforeUpdate(e,n,t){e.tooltip&&e.tooltip.initialize(t)},reset(e,n,t){e.tooltip&&e.tooltip.initialize(t)},afterDraw(e){const n=e.tooltip;if(n&&n._willRender()){const t={tooltip:n};if(!1===e.notifyPlugins("beforeTooltipDraw",t))return;n.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",t)}},afterEvent(e,n){if(e.tooltip){const t=n.replay;e.tooltip.handleEvent(n.event,t,n.inChartArea)&&(n.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,n)=>n.bodyFont.size,boxWidth:(e,n)=>n.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:a.S,title(e){if(e.length>0){const n=e[0],t=n.chart.data.labels,a=t?t.length:0;if(this&&this.options&&"dataset"===this.options.mode)return n.dataset.label||"";if(n.label)return n.label;if(a>0&&n.dataIndex"filter"!==e&&"itemSort"!==e&&"external"!==e,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},xt=Object.freeze({__proto__:null,Decimation:jn,Filler:Qn,Legend:tt,SubTitle:ot,Title:it,Tooltip:yt});function Ct(e,n,t,a){const i=e.indexOf(n);if(-1===i)return((e,n,t,a)=>("string"==typeof n?(t=e.push(n)-1,a.unshift({index:t,label:n})):isNaN(n)&&(t=null),t))(e,n,t,a);return i!==e.lastIndexOf(n)?t:i}class Tt extends G{constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const n=this._addedLabels;if(n.length){const e=this.getLabels();for(const{index:t,label:a}of n)e[t]===a&&e.splice(t,1);this._addedLabels=[]}super.init(e)}parse(e,n){if(Object(a.Mb)(e))return null;const t=this.getLabels();return((e,n)=>null===e?null:Object(a.f)(Math.round(e),0,n))(n=isFinite(n)&&t[n]===e?n:Ct(t,e,Object(a.Xb)(n,e),this._addedLabels),t.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let{min:t,max:a}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(t=0),n||(a=this.getLabels().length-1)),this.min=t,this.max=a}buildTicks(){const e=this.min,n=this.max,t=this.options.offset,a=[];let i=this.getLabels();i=0===e&&n===i.length-1?i:i.slice(e,n+1),this._valueRange=Math.max(i.length-(t?0:1),1),this._startValue=this.min-(t?.5:0);for(let t=e;t<=n;t++)a.push({value:t});return a}getLabelForValue(e){const n=this.getLabels();return e>=0&&en.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function Dt(e,n,{horizontal:t,minRotation:i}){const r=Object(a.Vb)(i),o=(t?Math.sin(r):Math.cos(r))||.001,s=.75*n*(""+e).length;return Math.min(n/o,s)}Tt.id="category",Tt.defaults={ticks:{callback:Tt.prototype.getLabelForValue}};class wt extends G{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Object(a.Mb)(e)||("number"==typeof e||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:t}=this.getUserBounds();let{min:i,max:r}=this;const o=e=>i=n?i:e,s=e=>r=t?r:e;if(e){const e=Object(a.Ub)(i),n=Object(a.Ub)(r);e<0&&n<0?s(0):e>0&&n>0&&o(0)}if(i===r){let n=1;(r>=Number.MAX_SAFE_INTEGER||i<=Number.MIN_SAFE_INTEGER)&&(n=Math.abs(.05*r)),s(r+n),e||o(i-n)}this.min=i,this.max=r}getTickLimit(){const e=this.options.ticks;let n,{maxTicksLimit:t,stepSize:a}=e;return a?(n=Math.ceil(this.max/a)-Math.floor(this.min/a)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${a} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),t=t||11),t&&(n=Math.min(t,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let t=this.getTickLimit();t=Math.max(2,t);const i=function(e,n){const t=[],{bounds:i,step:r,min:o,max:s,precision:l,count:d,maxTicks:c,maxDigits:u,includeBounds:h}=e,p=r||1,f=c-1,{min:m,max:g}=n,b=!Object(a.Mb)(o),v=!Object(a.Mb)(s),y=!Object(a.Mb)(d),x=(g-m)/(u+1);let C,T,D,w,O=Object(a.V)((g-m)/f/p)*p;if(O<1e-14&&!b&&!v)return[{value:m},{value:g}];w=Math.ceil(g/O)-Math.floor(m/O),w>f&&(O=Object(a.V)(w*O/f/p)*p),Object(a.Mb)(l)||(C=Math.pow(10,l),O=Math.ceil(O*C)/C),"ticks"===i?(T=Math.floor(m/O)*O,D=Math.ceil(g/O)*O):(T=m,D=g),b&&v&&r&&Object(a.W)((s-o)/r,O/1e3)?(w=Math.round(Math.min((s-o)/O,c)),O=(s-o)/w,T=o,D=s):y?(T=b?o:T,D=v?s:D,w=d-1,O=(D-T)/w):(w=(D-T)/O,w=Object(a.X)(w,Math.round(w),O/1e3)?Math.round(w):Math.ceil(w));const k=Math.max(Object(a.Y)(O),Object(a.Y)(T));C=Math.pow(10,Object(a.Mb)(l)?k:l),T=Math.round(T*C)/C,D=Math.round(D*C)/C;let S=0;for(b&&(h&&T!==o?(t.push({value:o}),T0?t:null;this._zero=!0}determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Object(a.Ib)(e)?Math.max(0,e):null,this.max=Object(a.Ib)(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let t=this.min,i=this.max;const r=n=>t=e?t:n,o=e=>i=n?i:e,s=(e,n)=>Math.pow(10,Math.floor(Object(a.bc)(e))+n);t===i&&(t<=0?(r(1),o(10)):(r(s(t,-1)),o(s(i,1)))),t<=0&&r(s(i,-1)),i<=0&&o(s(t,1)),this._zero&&this.min!==this._suggestedMin&&t===s(this.min,0)&&r(s(t,-1)),this.min=t,this.max=i}buildTicks(){const e=this.options,n=function(e,n){const t=Math.floor(Object(a.bc)(n.max)),i=Math.ceil(n.max/Math.pow(10,t)),r=[];let o=Object(a.c)(e.min,Math.pow(10,Math.floor(Object(a.bc)(n.min)))),s=Math.floor(Object(a.bc)(o)),l=Math.floor(o/Math.pow(10,s)),d=s<0?Math.pow(10,Math.abs(s)):1;do{r.push({value:o,major:kt(o)}),++l,10===l&&(l=1,++s,d=s>=0?1:d),o=Math.round(l*Math.pow(10,s)*d)/d}while(si?{start:n-t,end:n}:{start:n,end:n+t}}function Rt(e){const n={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},t=Object.assign({},n),i=[],r=[],o=e._pointLabels.length,s=e.options.pointLabels,l=s.centerPointLabels?a.q/o:0;for(let h=0;hn.r&&(s=(a.end-n.r)/r,e.r=Math.max(e.r,n.r+s)),i.startn.b&&(l=(i.end-n.b)/o,e.b=Math.max(e.b,n.b+l))}function _t(e){return 0===e||180===e?"center":e<180?"left":"right"}function Lt(e,n,t){return"right"===t?e-=n:"center"===t&&(e-=n/2),e}function Et(e,n,t){return 90===t||270===t?e-=n/2:(t>270||t<90)&&(e-=n),e}function Mt(e,n,t,i){const{ctx:r}=e;if(t)r.arc(e.xCenter,e.yCenter,n,0,a.u);else{let t=e.getPointPosition(0,n);r.moveTo(t.x,t.y);for(let a=1;a{const t=Object(a.d)(this.options.pointLabels.callback,[e,n],this);return t||0===t?t:""}).filter((e,n)=>this.chart.getDataVisibility(n))}fit(){const e=this.options;e.display&&e.pointLabels.display?Rt(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,n,t,a){this.xCenter+=Math.floor((e-n)/2),this.yCenter+=Math.floor((t-a)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,n,t,a))}getIndexAngle(e){const n=a.u/(this._pointLabels.length||1),t=this.options.startAngle||0;return Object(a.Cb)(e*n+Object(a.Vb)(t))}getDistanceFromCenterForValue(e){if(Object(a.Mb)(e))return NaN;const n=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*n:(e-this.min)*n}getValueForDistanceFromCenter(e){if(Object(a.Mb)(e))return NaN;const n=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-n:this.min+n}getPointLabelContext(e){const n=this._pointLabels||[];if(e>=0&&e=0;r--){const n=i.setContext(e.getPointLabelContext(r)),o=Object(a.p)(n.font),{x:s,y:l,textAlign:d,left:c,top:u,right:h,bottom:p}=e._pointLabelItems[r],{backdropColor:f}=n;if(!Object(a.Mb)(f)){const e=Object(a.Ab)(n.borderRadius),i=Object(a.l)(n.backdropPadding);t.fillStyle=f;const r=c-i.left,o=u-i.top,s=h-c+i.width,l=p-u+i.height;Object.values(e).some(e=>0!==e)?(t.beginPath(),Object(a.yb)(t,{x:r,y:o,w:s,h:l,radius:e}),t.fill()):t.fillRect(r,o,s,l)}Object(a.n)(t,e._pointLabels[r],s,l+o.lineHeight/2,o,{color:n.color,textAlign:d,textBaseline:"middle"})}}(this,r),i.display&&this.ticks.forEach((e,n)=>{if(0!==n){s=this.getDistanceFromCenterForValue(e.value);!function(e,n,t,a){const i=e.ctx,r=n.circular,{color:o,lineWidth:s}=n;!r&&!a||!o||!s||t<0||(i.save(),i.strokeStyle=o,i.lineWidth=s,i.setLineDash(n.borderDash),i.lineDashOffset=n.borderDashOffset,i.beginPath(),Mt(e,t,r,a),i.closePath(),i.stroke(),i.restore())}(this,i.setContext(this.getContext(n-1)),s,r)}}),t.display){for(e.save(),o=r-1;o>=0;o--){const a=t.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:r}=a;r&&i&&(e.lineWidth=r,e.strokeStyle=i,e.setLineDash(a.borderDash),e.lineDashOffset=a.borderDashOffset,s=this.getDistanceFromCenterForValue(n.ticks.reverse?this.min:this.max),l=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(l.x,l.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,n=this.options,t=n.ticks;if(!t.display)return;const i=this.getIndexAngle(0);let r,o;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(i),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((i,s)=>{if(0===s&&!n.reverse)return;const l=t.setContext(this.getContext(s)),d=Object(a.p)(l.font);if(r=this.getDistanceFromCenterForValue(this.ticks[s].value),l.showLabelBackdrop){e.font=d.string,o=e.measureText(i.label).width,e.fillStyle=l.backdropColor;const n=Object(a.l)(l.backdropPadding);e.fillRect(-o/2-n.left,-r-d.size/2-n.top,o+n.width,d.size+n.height)}Object(a.n)(e,i.label,0,-r,d,{color:l.color})}),e.restore()}drawTitle(){}}jt.id="radialLinear",jt.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:N.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:e=>e,padding:5,centerPointLabels:!1}},jt.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},jt.descriptors={angleLines:{_fallback:"grid"}};const Ut={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Nt=Object.keys(Ut);function Bt(e,n){return e-n}function Ft(e,n){if(Object(a.Mb)(n))return null;const t=e._adapter,{parser:i,round:r,isoWeekday:o}=e._parseOpts;let s=n;return"function"==typeof i&&(s=i(s)),Object(a.Ib)(s)||(s="string"==typeof i?t.parse(s,i):t.parse(s)),null===s?null:(r&&(s="week"!==r||!Object(a.Zb)(o)&&!0!==o?t.startOf(s,r):t.startOf(s,"isoWeek",o)),+s)}function zt(e,n,t,a){const i=Nt.length;for(let r=Nt.indexOf(e);r=n?t[i]:t[r]]=!0}}else e[n]=!0}function Vt(e,n,t){const a=[],i={},r=n.length;let o,s;for(o=0;o=0&&(n[l].major=!0);return n}(e,a,i,t):a}class Wt extends G{constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,n){const t=e.time||(e.time={}),i=this._adapter=new ee._date(e.adapters.date);i.init(n),Object(a.fb)(t.displayFormats,i.formats()),this._parseOpts={parser:t.parser,round:t.round,isoWeekday:t.isoWeekday},super.init(e),this._normalized=n.normalized}parse(e,n){return void 0===e?null:Ft(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const e=this.options,n=this._adapter,t=e.time.unit||"day";let{min:i,max:r,minDefined:o,maxDefined:s}=this.getUserBounds();function l(e){o||isNaN(e.min)||(i=Math.min(i,e.min)),s||isNaN(e.max)||(r=Math.max(r,e.max))}o&&s||(l(this._getLabelBounds()),"ticks"===e.bounds&&"labels"===e.ticks.source||l(this.getMinMax(!1))),i=Object(a.Ib)(i)&&!isNaN(i)?i:+n.startOf(Date.now(),t),r=Object(a.Ib)(r)&&!isNaN(r)?r:+n.endOf(Date.now(),t)+1,this.min=Math.min(i,r-1),this.max=Math.max(i+1,r)}_getLabelBounds(){const e=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,t=Number.NEGATIVE_INFINITY;return e.length&&(n=e[0],t=e[e.length-1]),{min:n,max:t}}buildTicks(){const e=this.options,n=e.time,t=e.ticks,i="labels"===t.source?this.getLabelTimestamps():this._generate();"ticks"===e.bounds&&i.length&&(this.min=this._userMin||i[0],this.max=this._userMax||i[i.length-1]);const r=this.min,o=this.max,s=Object(a.ab)(i,r,o);return this._unit=n.unit||(t.autoSkip?zt(n.minUnit,this.min,this.max,this._getLabelCapacity(r)):function(e,n,t,a,i){for(let r=Nt.length-1;r>=Nt.indexOf(t);r--){const t=Nt[r];if(Ut[t].common&&e._adapter.diff(i,a,t)>=n-1)return t}return Nt[t?Nt.indexOf(t):0]}(this,s.length,n.minUnit,this.min,this.max)),this._majorUnit=t.major.enabled&&"year"!==this._unit?function(e){for(let n=Nt.indexOf(e)+1,t=Nt.length;n+e.value))}initOffsets(e){let n,t,i=0,r=0;this.options.offset&&e.length&&(n=this.getDecimalForValue(e[0]),i=1===e.length?1-n:(this.getDecimalForValue(e[1])-n)/2,t=this.getDecimalForValue(e[e.length-1]),r=1===e.length?t:(t-this.getDecimalForValue(e[e.length-2]))/2);const o=e.length<3?.5:.25;i=Object(a.f)(i,0,o),r=Object(a.f)(r,0,o),this._offsets={start:i,end:r,factor:1/(i+1+r)}}_generate(){const e=this._adapter,n=this.min,t=this.max,i=this.options,r=i.time,o=r.unit||zt(r.minUnit,n,t,this._getLabelCapacity(n)),s=Object(a.Xb)(r.stepSize,1),l="week"===o&&r.isoWeekday,d=Object(a.Zb)(l)||!0===l,c={};let u,h,p=n;if(d&&(p=+e.startOf(p,"isoWeek",l)),p=+e.startOf(p,d?"day":o),e.diff(t,n,o)>1e5*s)throw new Error(n+" and "+t+" are too far apart with stepSize of "+s+" "+o);const f="data"===i.ticks.source&&this.getDataTimestamps();for(u=p,h=0;ue-n).map(e=>+e)}getLabelForValue(e){const n=this._adapter,t=this.options.time;return t.tooltipFormat?n.format(e,t.tooltipFormat):n.format(e,t.displayFormats.datetime)}_tickFormatFunction(e,n,t,i){const r=this.options,o=r.time.displayFormats,s=this._unit,l=this._majorUnit,d=s&&o[s],c=l&&o[l],u=t[n],h=l&&c&&u&&u.major,p=this._adapter.format(e,i||(h?c:d)),f=r.ticks.callback;return f?Object(a.d)(f,[p,n,t],this):p}generateTickLabels(e){let n,t,a;for(n=0,t=e.length;n0?o:1}getDataTimestamps(){let e,n,t=this._cache.data||[];if(t.length)return t;const a=this.getMatchingVisibleMetas();if(this._normalized&&a.length)return this._cache.data=a[0].controller.getAllParsedValues(this);for(e=0,n=a.length;e=e[l].pos&&n<=e[d].pos&&({lo:l,hi:d}=Object(a.A)(e,"pos",n)),({pos:i,time:o}=e[l]),({pos:r,time:s}=e[d])):(n>=e[l].time&&n<=e[d].time&&({lo:l,hi:d}=Object(a.A)(e,"time",n)),({time:i,pos:o}=e[l]),({time:r,pos:s}=e[d]));const c=r-i;return c?o+(s-o)*(n-i)/c:o}Wt.id="time",Wt.defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",major:{enabled:!1}}};class $t extends Wt{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=Yt(n,this.min),this._tableRange=Yt(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:t}=this,a=[],i=[];let r,o,s,l,d;for(r=0,o=e.length;r=n&&l<=t&&a.push(l);if(a.length<2)return[{time:n,pos:0},{time:t,pos:1}];for(r=0,o=a.length;re.length)&&(n=e.length);for(var t=0,a=new Array(n);t=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}Object.defineProperty(n,"__esModule",{value:!0});var f=function(e){function n(){return e.apply(this,arguments)||this}return o(n,e),n}(u(Error)),m=function(e){function n(n){return e.call(this,"Invalid DateTime: "+n.toMessage())||this}return o(n,e),n}(f),g=function(e){function n(n){return e.call(this,"Invalid Interval: "+n.toMessage())||this}return o(n,e),n}(f),b=function(e){function n(n){return e.call(this,"Invalid Duration: "+n.toMessage())||this}return o(n,e),n}(f),v=function(e){function n(){return e.apply(this,arguments)||this}return o(n,e),n}(f),y=function(e){function n(n){return e.call(this,"Invalid unit "+n)||this}return o(n,e),n}(f),x=function(e){function n(){return e.apply(this,arguments)||this}return o(n,e),n}(f),C=function(e){function n(){return e.call(this,"Zone is an abstract class")||this}return o(n,e),n}(f),T="numeric",D="short",w="long",O={year:T,month:T,day:T},k={year:T,month:D,day:T},S={year:T,month:D,day:T,weekday:D},P={year:T,month:w,day:T},A={year:T,month:w,day:T,weekday:w},R={hour:T,minute:T},I={hour:T,minute:T,second:T},_={hour:T,minute:T,second:T,timeZoneName:D},L={hour:T,minute:T,second:T,timeZoneName:w},E={hour:T,minute:T,hourCycle:"h23"},M={hour:T,minute:T,second:T,hourCycle:"h23"},j={hour:T,minute:T,second:T,hourCycle:"h23",timeZoneName:D},U={hour:T,minute:T,second:T,hourCycle:"h23",timeZoneName:w},N={year:T,month:T,day:T,hour:T,minute:T},B={year:T,month:T,day:T,hour:T,minute:T,second:T},F={year:T,month:D,day:T,hour:T,minute:T},z={year:T,month:D,day:T,hour:T,minute:T,second:T},H={year:T,month:D,day:T,weekday:D,hour:T,minute:T},V={year:T,month:w,day:T,hour:T,minute:T,timeZoneName:D},W={year:T,month:w,day:T,hour:T,minute:T,second:T,timeZoneName:D},Y={year:T,month:w,day:T,weekday:w,hour:T,minute:T,timeZoneName:w},$={year:T,month:w,day:T,weekday:w,hour:T,minute:T,second:T,timeZoneName:w};function G(e){return void 0===e}function q(e){return"number"==typeof e}function X(e){return"number"==typeof e&&e%1==0}function J(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function Z(e,n,t){if(0!==e.length)return e.reduce((function(e,a){var i=[n(a),a];return e&&t(e[0],i[0])===e[0]?e:i}),null)[1]}function K(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function Q(e,n,t){return X(e)&&e>=n&&e<=t}function ee(e,n){void 0===n&&(n=2);var t=e<0?"-":"",a=t?-1*e:e;return""+t+(a.toString().length=0&&(n=new Date(n)).setUTCFullYear(n.getUTCFullYear()-1900),+n}function de(e){var n=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,t=e-1,a=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7;return 4===n||3===a?53:52}function ce(e){return e>99?e:e>60?1900+e:2e3+e}function ue(e,n,t,a){void 0===a&&(a=null);var i=new Date(e),o={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};a&&(o.timeZone=a);var s=r({timeZoneName:n},o),l=new Intl.DateTimeFormat(t,s).formatToParts(i).find((function(e){return"timezonename"===e.type.toLowerCase()}));return l?l.value:null}function he(e,n){var t=parseInt(e,10);Number.isNaN(t)&&(t=0);var a=parseInt(n,10)||0;return 60*t+(t<0||Object.is(t,-0)?-a:a)}function pe(e){var n=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(n))throw new x("Invalid unit value "+e);return n}function fe(e,n){var t={};for(var a in e)if(K(e,a)){var i=e[a];if(null==i)continue;t[n(a)]=pe(i)}return t}function me(e,n){var t=Math.trunc(Math.abs(e/60)),a=Math.trunc(Math.abs(e%60)),i=e>=0?"+":"-";switch(n){case"short":return""+i+ee(t,2)+":"+ee(a,2);case"narrow":return""+i+t+(a>0?":"+a:"");case"techie":return""+i+ee(t,2)+ee(a,2);default:throw new RangeError("Value format "+n+" is out of range for property format")}}function ge(e){return function(e,n){return n.reduce((function(n,t){return n[t]=e[t],n}),{})}(e,["hour","minute","second","millisecond"])}var be=/[A-Za-z_+-]{1,256}(:?\/[A-Za-z0-9_+-]{1,256}(\/[A-Za-z0-9_+-]{1,256})?)?/,ve=["January","February","March","April","May","June","July","August","September","October","November","December"],ye=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],xe=["J","F","M","A","M","J","J","A","S","O","N","D"];function Ce(e){switch(e){case"narrow":return[].concat(xe);case"short":return[].concat(ye);case"long":return[].concat(ve);case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var Te=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],De=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],we=["M","T","W","T","F","S","S"];function Oe(e){switch(e){case"narrow":return[].concat(we);case"short":return[].concat(De);case"long":return[].concat(Te);case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var ke=["AM","PM"],Se=["Before Christ","Anno Domini"],Pe=["BC","AD"],Ae=["B","A"];function Re(e){switch(e){case"narrow":return[].concat(Ae);case"short":return[].concat(Pe);case"long":return[].concat(Se);default:return null}}function Ie(e,n){for(var t,a="",i=p(e);!(t=i()).done;){var r=t.value;r.literal?a+=r.val:a+=n(r.val)}return a}var _e={D:O,DD:k,DDD:P,DDDD:A,t:R,tt:I,ttt:_,tttt:L,T:E,TT:M,TTT:j,TTTT:U,f:N,ff:F,fff:V,ffff:Y,F:B,FF:z,FFF:W,FFFF:$},Le=function(){function e(e,n){this.opts=n,this.loc=e,this.systemLoc=null}e.create=function(n,t){return void 0===t&&(t={}),new e(n,t)},e.parseFormat=function(e){for(var n=null,t="",a=!1,i=[],r=0;r0&&i.push({literal:a,val:t}),n=null,t="",a=!a):a||o===n?t+=o:(t.length>0&&i.push({literal:!1,val:t}),t=o,n=o)}return t.length>0&&i.push({literal:a,val:t}),i},e.macroTokenToFormatOpts=function(e){return _e[e]};var n=e.prototype;return n.formatWithSystemDefault=function(e,n){return null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,r({},this.opts,n)).format()},n.formatDateTime=function(e,n){return void 0===n&&(n={}),this.loc.dtFormatter(e,r({},this.opts,n)).format()},n.formatDateTimeParts=function(e,n){return void 0===n&&(n={}),this.loc.dtFormatter(e,r({},this.opts,n)).formatToParts()},n.resolvedOptions=function(e,n){return void 0===n&&(n={}),this.loc.dtFormatter(e,r({},this.opts,n)).resolvedOptions()},n.num=function(e,n){if(void 0===n&&(n=0),this.opts.forceSimple)return ee(e,n);var t=r({},this.opts);return n>0&&(t.padTo=n),this.loc.numberFormatter(t).format(e)},n.formatDateTimeFromString=function(n,t){var a=this,i="en"===this.loc.listingMode(),r=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,o=function(e,t){return a.loc.extract(n,e,t)},s=function(e){return n.isOffsetFixed&&0===n.offset&&e.allowZ?"Z":n.isValid?n.zone.formatOffset(n.ts,e.format):""},l=function(){return i?function(e){return ke[e.hour<12?0:1]}(n):o({hour:"numeric",hourCycle:"h12"},"dayperiod")},d=function(e,t){return i?function(e,n){return Ce(n)[e.month-1]}(n,e):o(t?{month:e}:{month:e,day:"numeric"},"month")},c=function(e,t){return i?function(e,n){return Oe(n)[e.weekday-1]}(n,e):o(t?{weekday:e}:{weekday:e,month:"long",day:"numeric"},"weekday")},u=function(e){return i?function(e,n){return Re(n)[e.year<0?0:1]}(n,e):o({era:e},"era")};return Ie(e.parseFormat(t),(function(t){switch(t){case"S":return a.num(n.millisecond);case"u":case"SSS":return a.num(n.millisecond,3);case"s":return a.num(n.second);case"ss":return a.num(n.second,2);case"uu":return a.num(Math.floor(n.millisecond/10),2);case"uuu":return a.num(Math.floor(n.millisecond/100));case"m":return a.num(n.minute);case"mm":return a.num(n.minute,2);case"h":return a.num(n.hour%12==0?12:n.hour%12);case"hh":return a.num(n.hour%12==0?12:n.hour%12,2);case"H":return a.num(n.hour);case"HH":return a.num(n.hour,2);case"Z":return s({format:"narrow",allowZ:a.opts.allowZ});case"ZZ":return s({format:"short",allowZ:a.opts.allowZ});case"ZZZ":return s({format:"techie",allowZ:a.opts.allowZ});case"ZZZZ":return n.zone.offsetName(n.ts,{format:"short",locale:a.loc.locale});case"ZZZZZ":return n.zone.offsetName(n.ts,{format:"long",locale:a.loc.locale});case"z":return n.zoneName;case"a":return l();case"d":return r?o({day:"numeric"},"day"):a.num(n.day);case"dd":return r?o({day:"2-digit"},"day"):a.num(n.day,2);case"c":return a.num(n.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return a.num(n.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return r?o({month:"numeric",day:"numeric"},"month"):a.num(n.month);case"LL":return r?o({month:"2-digit",day:"numeric"},"month"):a.num(n.month,2);case"LLL":return d("short",!0);case"LLLL":return d("long",!0);case"LLLLL":return d("narrow",!0);case"M":return r?o({month:"numeric"},"month"):a.num(n.month);case"MM":return r?o({month:"2-digit"},"month"):a.num(n.month,2);case"MMM":return d("short",!1);case"MMMM":return d("long",!1);case"MMMMM":return d("narrow",!1);case"y":return r?o({year:"numeric"},"year"):a.num(n.year);case"yy":return r?o({year:"2-digit"},"year"):a.num(n.year.toString().slice(-2),2);case"yyyy":return r?o({year:"numeric"},"year"):a.num(n.year,4);case"yyyyyy":return r?o({year:"numeric"},"year"):a.num(n.year,6);case"G":return u("short");case"GG":return u("long");case"GGGGG":return u("narrow");case"kk":return a.num(n.weekYear.toString().slice(-2),2);case"kkkk":return a.num(n.weekYear,4);case"W":return a.num(n.weekNumber);case"WW":return a.num(n.weekNumber,2);case"o":return a.num(n.ordinal);case"ooo":return a.num(n.ordinal,3);case"q":return a.num(n.quarter);case"qq":return a.num(n.quarter,2);case"X":return a.num(Math.floor(n.ts/1e3));case"x":return a.num(n.ts);default:return function(t){var i=e.macroTokenToFormatOpts(t);return i?a.formatWithSystemDefault(n,i):t}(t)}}))},n.formatDurationFromString=function(n,t){var a,i=this,r=function(e){switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"M":return"month";case"y":return"year";default:return null}},o=e.parseFormat(t),s=o.reduce((function(e,n){var t=n.literal,a=n.val;return t?e:e.concat(a)}),[]),l=n.shiftTo.apply(n,s.map(r).filter((function(e){return e})));return Ie(o,(a=l,function(e){var n=r(e);return n?i.num(a.get(n),e.length):e}))},e}(),Ee=function(){function e(e,n){this.reason=e,this.explanation=n}return e.prototype.toMessage=function(){return this.explanation?this.reason+": "+this.explanation:this.reason},e}(),Me=function(){function e(){}var n=e.prototype;return n.offsetName=function(e,n){throw new C},n.formatOffset=function(e,n){throw new C},n.offset=function(e){throw new C},n.equals=function(e){throw new C},i(e,[{key:"type",get:function(){throw new C}},{key:"name",get:function(){throw new C}},{key:"isUniversal",get:function(){throw new C}},{key:"isValid",get:function(){throw new C}}]),e}(),je=null,Ue=function(e){function n(){return e.apply(this,arguments)||this}o(n,e);var t=n.prototype;return t.offsetName=function(e,n){return ue(e,n.format,n.locale)},t.formatOffset=function(e,n){return me(this.offset(e),n)},t.offset=function(e){return-new Date(e).getTimezoneOffset()},t.equals=function(e){return"system"===e.type},i(n,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return null===je&&(je=new n),je}}]),n}(Me),Ne=RegExp("^"+be.source+"$"),Be={};var Fe={year:0,month:1,day:2,hour:3,minute:4,second:5};var ze={},He=function(e){function n(t){var a;return(a=e.call(this)||this).zoneName=t,a.valid=n.isValidZone(t),a}o(n,e),n.create=function(e){return ze[e]||(ze[e]=new n(e)),ze[e]},n.resetCache=function(){ze={},Be={}},n.isValidSpecifier=function(e){return!(!e||!e.match(Ne))},n.isValidZone=function(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}};var t=n.prototype;return t.offsetName=function(e,n){return ue(e,n.format,n.locale,this.name)},t.formatOffset=function(e,n){return me(this.offset(e),n)},t.offset=function(e){var n=new Date(e);if(isNaN(n))return NaN;var t,a=(t=this.name,Be[t]||(Be[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})),Be[t]),i=a.formatToParts?function(e,n){for(var t=e.formatToParts(n),a=[],i=0;i=0?c:1e3+c))/6e4},t.equals=function(e){return"iana"===e.type&&e.name===this.name},i(n,[{key:"type",get:function(){return"iana"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return this.valid}}]),n}(Me),Ve=null,We=function(e){function n(n){var t;return(t=e.call(this)||this).fixed=n,t}o(n,e),n.instance=function(e){return 0===e?n.utcInstance:new n(e)},n.parseSpecifier=function(e){if(e){var t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new n(he(t[1],t[2]))}return null};var t=n.prototype;return t.offsetName=function(){return this.name},t.formatOffset=function(e,n){return me(this.fixed,n)},t.offset=function(){return this.fixed},t.equals=function(e){return"fixed"===e.type&&e.fixed===this.fixed},i(n,[{key:"type",get:function(){return"fixed"}},{key:"name",get:function(){return 0===this.fixed?"UTC":"UTC"+me(this.fixed,"narrow")}},{key:"isUniversal",get:function(){return!0}},{key:"isValid",get:function(){return!0}}],[{key:"utcInstance",get:function(){return null===Ve&&(Ve=new n(0)),Ve}}]),n}(Me),Ye=function(e){function n(n){var t;return(t=e.call(this)||this).zoneName=n,t}o(n,e);var t=n.prototype;return t.offsetName=function(){return null},t.formatOffset=function(){return""},t.offset=function(){return NaN},t.equals=function(){return!1},i(n,[{key:"type",get:function(){return"invalid"}},{key:"name",get:function(){return this.zoneName}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!1}}]),n}(Me);function $e(e,n){if(G(e)||null===e)return n;if(e instanceof Me)return e;if("string"==typeof e){var t=e.toLowerCase();return"local"===t||"system"===t?n:"utc"===t||"gmt"===t?We.utcInstance:He.isValidSpecifier(t)?He.create(e):We.parseSpecifier(t)||new Ye(e)}return q(e)?We.instance(e):"object"==typeof e&&e.offset&&"number"==typeof e.offset?e:new Ye(e)}var Ge,qe=function(){return Date.now()},Xe="system",Je=null,Ze=null,Ke=null,Qe=function(){function e(){}return e.resetCaches=function(){hn.resetCache(),He.resetCache()},i(e,null,[{key:"now",get:function(){return qe},set:function(e){qe=e}},{key:"defaultZone",get:function(){return $e(Xe,Ue.instance)},set:function(e){Xe=e}},{key:"defaultLocale",get:function(){return Je},set:function(e){Je=e}},{key:"defaultNumberingSystem",get:function(){return Ze},set:function(e){Ze=e}},{key:"defaultOutputCalendar",get:function(){return Ke},set:function(e){Ke=e}},{key:"throwOnInvalid",get:function(){return Ge},set:function(e){Ge=e}}]),e}(),en=["base"],nn={};function tn(e,n){void 0===n&&(n={});var t=JSON.stringify([e,n]),a=nn[t];return a||(a=new Intl.DateTimeFormat(e,n),nn[t]=a),a}var an={};var rn={};function on(e,n){void 0===n&&(n={});var t=n;t.base;var a=function(e,n){if(null==e)return{};var t,a,i={},r=Object.keys(e);for(a=0;a=0||(i[t]=e[t]);return i}(t,en),i=JSON.stringify([e,a]),r=rn[i];return r||(r=new Intl.RelativeTimeFormat(e,n),rn[i]=r),r}var sn=null;function ln(e,n,t,a,i){var r=e.listingMode(t);return"error"===r?null:"en"===r?a(n):i(n)}var dn=function(){function e(e,n,t){if(this.padTo=t.padTo||0,this.floor=t.floor||!1,!n){var a={useGrouping:!1};t.padTo>0&&(a.minimumIntegerDigits=t.padTo),this.inf=function(e,n){void 0===n&&(n={});var t=JSON.stringify([e,n]),a=an[t];return a||(a=new Intl.NumberFormat(e,n),an[t]=a),a}(e,a)}}return e.prototype.format=function(e){if(this.inf){var n=this.floor?Math.floor(e):e;return this.inf.format(n)}return ee(this.floor?Math.floor(e):ie(e,3),this.padTo)},e}(),cn=function(){function e(e,n,t){var a;if(this.opts=t,e.zone.isUniversal){var i=e.offset/60*-1,o=i>=0?"Etc/GMT+"+i:"Etc/GMT"+i;0!==e.offset&&He.create(o).valid?(a=o,this.dt=e):(a="UTC",t.timeZoneName?this.dt=e:this.dt=0===e.offset?e:ca.fromMillis(e.ts+60*e.offset*1e3))}else"system"===e.zone.type?this.dt=e:(this.dt=e,a=e.zone.name);var s=r({},this.opts);a&&(s.timeZone=a),this.dtf=tn(n,s)}var n=e.prototype;return n.format=function(){return this.dtf.format(this.dt.toJSDate())},n.formatToParts=function(){return this.dtf.formatToParts(this.dt.toJSDate())},n.resolvedOptions=function(){return this.dtf.resolvedOptions()},e}(),un=function(){function e(e,n,t){this.opts=r({style:"long"},t),!n&&J()&&(this.rtf=on(e,t))}var n=e.prototype;return n.format=function(e,n){return this.rtf?this.rtf.format(e,n):function(e,n,t,a){void 0===t&&(t="always"),void 0===a&&(a=!1);var i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},r=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===t&&r){var o="days"===e;switch(n){case 1:return o?"tomorrow":"next "+i[e][0];case-1:return o?"yesterday":"last "+i[e][0];case 0:return o?"today":"this "+i[e][0]}}var s=Object.is(n,-0)||n<0,l=Math.abs(n),d=1===l,c=i[e],u=a?d?c[1]:c[2]||c[1]:d?i[e][0]:e;return s?l+" "+u+" ago":"in "+l+" "+u}(n,e,this.opts.numeric,"long"!==this.opts.style)},n.formatToParts=function(e,n){return this.rtf?this.rtf.formatToParts(e,n):[]},e}(),hn=function(){function e(e,n,t,a){var i=function(e){var n=e.indexOf("-u-");if(-1===n)return[e];var t,a=e.substring(0,n);try{t=tn(e).resolvedOptions()}catch(e){t=tn(a).resolvedOptions()}var i=t;return[a,i.numberingSystem,i.calendar]}(e),r=i[0],o=i[1],s=i[2];this.locale=r,this.numberingSystem=n||o||null,this.outputCalendar=t||s||null,this.intl=function(e,n,t){return t||n?(e+="-u",t&&(e+="-ca-"+t),n&&(e+="-nu-"+n),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=a,this.fastNumbersCached=null}e.fromOpts=function(n){return e.create(n.locale,n.numberingSystem,n.outputCalendar,n.defaultToEN)},e.create=function(n,t,a,i){void 0===i&&(i=!1);var r=n||Qe.defaultLocale;return new e(r||(i?"en-US":sn||(sn=(new Intl.DateTimeFormat).resolvedOptions().locale)),t||Qe.defaultNumberingSystem,a||Qe.defaultOutputCalendar,r)},e.resetCache=function(){sn=null,nn={},an={},rn={}},e.fromObject=function(n){var t=void 0===n?{}:n,a=t.locale,i=t.numberingSystem,r=t.outputCalendar;return e.create(a,i,r)};var n=e.prototype;return n.listingMode=function(e){var n=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return n&&t?"en":"intl"},n.clone=function(n){return n&&0!==Object.getOwnPropertyNames(n).length?e.create(n.locale||this.specifiedLocale,n.numberingSystem||this.numberingSystem,n.outputCalendar||this.outputCalendar,n.defaultToEN||!1):this},n.redefaultToEN=function(e){return void 0===e&&(e={}),this.clone(r({},e,{defaultToEN:!0}))},n.redefaultToSystem=function(e){return void 0===e&&(e={}),this.clone(r({},e,{defaultToEN:!1}))},n.months=function(e,n,t){var a=this;return void 0===n&&(n=!1),void 0===t&&(t=!0),ln(this,e,t,Ce,(function(){var t=n?{month:e,day:"numeric"}:{month:e},i=n?"format":"standalone";return a.monthsCache[i][e]||(a.monthsCache[i][e]=function(e){for(var n=[],t=1;t<=12;t++){var a=ca.utc(2016,t,1);n.push(e(a))}return n}((function(e){return a.extract(e,t,"month")}))),a.monthsCache[i][e]}))},n.weekdays=function(e,n,t){var a=this;return void 0===n&&(n=!1),void 0===t&&(t=!0),ln(this,e,t,Oe,(function(){var t=n?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=n?"format":"standalone";return a.weekdaysCache[i][e]||(a.weekdaysCache[i][e]=function(e){for(var n=[],t=1;t<=7;t++){var a=ca.utc(2016,11,13+t);n.push(e(a))}return n}((function(e){return a.extract(e,t,"weekday")}))),a.weekdaysCache[i][e]}))},n.meridiems=function(e){var n=this;return void 0===e&&(e=!0),ln(this,void 0,e,(function(){return ke}),(function(){if(!n.meridiemCache){var e={hour:"numeric",hourCycle:"h12"};n.meridiemCache=[ca.utc(2016,11,13,9),ca.utc(2016,11,13,19)].map((function(t){return n.extract(t,e,"dayperiod")}))}return n.meridiemCache}))},n.eras=function(e,n){var t=this;return void 0===n&&(n=!0),ln(this,e,n,Re,(function(){var n={era:e};return t.eraCache[e]||(t.eraCache[e]=[ca.utc(-40,1,1),ca.utc(2017,1,1)].map((function(e){return t.extract(e,n,"era")}))),t.eraCache[e]}))},n.extract=function(e,n,t){var a=this.dtFormatter(e,n).formatToParts().find((function(e){return e.type.toLowerCase()===t}));return a?a.value:null},n.numberFormatter=function(e){return void 0===e&&(e={}),new dn(this.intl,e.forceSimple||this.fastNumbers,e)},n.dtFormatter=function(e,n){return void 0===n&&(n={}),new cn(e,this.intl,n)},n.relFormatter=function(e){return void 0===e&&(e={}),new un(this.intl,this.isEnglish(),e)},n.isEnglish=function(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")},n.equals=function(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar},i(e,[{key:"fastNumbers",get:function(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===new Intl.DateTimeFormat(e.intl).resolvedOptions().numberingSystem)),this.fastNumbersCached}}]),e}();function pn(){for(var e=arguments.length,n=new Array(e),t=0;t1?n-1:0),a=1;a3?Te.indexOf(e)+1:De.indexOf(e)+1),s}var Mn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function jn(e){var n,t=e[1],a=e[2],i=e[3],r=e[4],o=e[5],s=e[6],l=e[7],d=e[8],c=e[9],u=e[10],h=e[11],p=En(t,r,i,a,o,s,l);return n=d?Ln[d]:c?0:he(u,h),[p,new We(n)]}var Un=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Nn=/^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Bn=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Fn(e){var n=e[1],t=e[2],a=e[3];return[En(n,e[4],a,t,e[5],e[6],e[7]),We.utcInstance]}function zn(e){var n=e[1],t=e[2],a=e[3],i=e[4],r=e[5],o=e[6];return[En(n,e[7],t,a,i,r,o),We.utcInstance]}var Hn=pn(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,xn),Vn=pn(/(\d{4})-?W(\d\d)(?:-?(\d))?/,xn),Wn=pn(/(\d{4})-?(\d{3})/,xn),Yn=pn(yn),$n=fn(kn,Sn,Pn),Gn=fn(Cn,Sn,Pn),qn=fn(Tn,Sn,Pn),Xn=fn(Sn,Pn);var Jn=fn(Sn);var Zn=pn(/(\d{4})-(\d\d)-(\d\d)/,wn),Kn=pn(Dn),Qn=fn(kn,Sn,Pn,An),et=fn(Sn,Pn,An);var nt={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},tt=r({years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6}},nt),at=r({years:{quarters:4,months:12,weeks:52.1775,days:365.2425,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:30.436875/7,days:30.436875,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},nt),it=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],rt=it.slice(0).reverse();function ot(e,n,t){void 0===t&&(t=!1);var a={values:t?n.values:r({},e.values,n.values||{}),loc:e.loc.clone(n.loc),conversionAccuracy:n.conversionAccuracy||e.conversionAccuracy};return new lt(a)}function st(e,n,t,a,i){var r=e[i][t],o=n[t]/r,s=!(Math.sign(o)===Math.sign(a[i]))&&0!==a[i]&&Math.abs(o)<=1?function(e){return e<0?Math.floor(e):Math.ceil(e)}(o):Math.trunc(o);a[i]+=s,n[t]-=s*r}var lt=function(){function e(e){var n="longterm"===e.conversionAccuracy||!1;this.values=e.values,this.loc=e.loc||hn.create(),this.conversionAccuracy=n?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n?at:tt,this.isLuxonDuration=!0}e.fromMillis=function(n,t){return e.fromObject({milliseconds:n},t)},e.fromObject=function(n,t){if(void 0===t&&(t={}),null==n||"object"!=typeof n)throw new x("Duration.fromObject: argument expected to be an object, got "+(null===n?"null":typeof n));return new e({values:fe(n,e.normalizeUnit),loc:hn.fromObject(t),conversionAccuracy:t.conversionAccuracy})},e.fromDurationLike=function(n){if(q(n))return e.fromMillis(n);if(e.isDuration(n))return n;if("object"==typeof n)return e.fromObject(n);throw new x("Unknown duration argument "+n+" of type "+typeof n)},e.fromISO=function(n,t){var a=function(e){return mn(e,[In,_n])}(n)[0];return a?e.fromObject(a,t):e.invalid("unparsable",'the input "'+n+"\" can't be parsed as ISO 8601")},e.fromISOTime=function(n,t){var a=function(e){return mn(e,[Rn,Jn])}(n)[0];return a?e.fromObject(a,t):e.invalid("unparsable",'the input "'+n+"\" can't be parsed as ISO 8601")},e.invalid=function(n,t){if(void 0===t&&(t=null),!n)throw new x("need to specify a reason the Duration is invalid");var a=n instanceof Ee?n:new Ee(n,t);if(Qe.throwOnInvalid)throw new b(a);return new e({invalid:a})},e.normalizeUnit=function(e){var n={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!n)throw new y(e);return n},e.isDuration=function(e){return e&&e.isLuxonDuration||!1};var n=e.prototype;return n.toFormat=function(e,n){void 0===n&&(n={});var t=r({},n,{floor:!1!==n.round&&!1!==n.floor});return this.isValid?Le.create(this.loc,t).formatDurationFromString(this,e):"Invalid Duration"},n.toObject=function(){return this.isValid?r({},this.values):{}},n.toISO=function(){if(!this.isValid)return null;var e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=ie(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e},n.toISOTime=function(e){if(void 0===e&&(e={}),!this.isValid)return null;var n=this.toMillis();if(n<0||n>=864e5)return null;e=r({suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended"},e);var t=this.shiftTo("hours","minutes","seconds","milliseconds"),a="basic"===e.format?"hhmm":"hh:mm";e.suppressSeconds&&0===t.seconds&&0===t.milliseconds||(a+="basic"===e.format?"ss":":ss",e.suppressMilliseconds&&0===t.milliseconds||(a+=".SSS"));var i=t.toFormat(a);return e.includePrefix&&(i="T"+i),i},n.toJSON=function(){return this.toISO()},n.toString=function(){return this.toISO()},n.toMillis=function(){return this.as("milliseconds")},n.valueOf=function(){return this.toMillis()},n.plus=function(n){if(!this.isValid)return this;for(var t,a=e.fromDurationLike(n),i={},r=p(it);!(t=r()).done;){var o=t.value;(K(a.values,o)||K(this.values,o))&&(i[o]=a.get(o)+this.get(o))}return ot(this,{values:i},!0)},n.minus=function(n){if(!this.isValid)return this;var t=e.fromDurationLike(n);return this.plus(t.negate())},n.mapUnits=function(e){if(!this.isValid)return this;for(var n={},t=0,a=Object.keys(this.values);t=0){i=c;var u=0;for(var h in s)u+=this.matrix[h][c]*s[h],s[h]=0;q(l[c])&&(u+=l[c]);var f=Math.trunc(u);for(var m in o[c]=f,s[c]=(1e3*u-1e3*f)/1e3,l)it.indexOf(m)>it.indexOf(c)&&st(this.matrix,l,m,o,c)}else q(l[c])&&(s[c]=l[c])}for(var g in s)0!==s[g]&&(o[i]+=g===i?s[g]:s[g]/this.matrix[i][g]);return ot(this,{values:o},!0).normalize()},n.negate=function(){if(!this.isValid)return this;for(var e={},n=0,t=Object.keys(this.values);ne},n.isBefore=function(e){return!!this.isValid&&this.e<=e},n.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},n.set=function(n){var t=void 0===n?{}:n,a=t.start,i=t.end;return this.isValid?e.fromDateTimes(a||this.s,i||this.e):this},n.splitAt=function(){var n=this;if(!this.isValid)return[];for(var t=arguments.length,a=new Array(t),i=0;i+this.e?this.e:d;o.push(e.fromDateTimes(s,c)),s=c,l+=1}return o},n.splitBy=function(n){var t=lt.fromDurationLike(n);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var a,i=this.s,r=1,o=[];i+this.e?this.e:s,o.push(e.fromDateTimes(i,a)),i=a,r+=1}return o},n.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},n.overlaps=function(e){return this.e>e.s&&this.s=e.e)},n.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},n.intersection=function(n){if(!this.isValid)return this;var t=this.s>n.s?this.s:n.s,a=this.e=a?null:e.fromDateTimes(t,a)},n.union=function(n){if(!this.isValid)return this;var t=this.sn.e?this.e:n.e;return e.fromDateTimes(t,a)},e.merge=function(e){var n=e.sort((function(e,n){return e.s-n.s})).reduce((function(e,n){var t=e[0],a=e[1];return a?a.overlaps(n)||a.abutsStart(n)?[t,a.union(n)]:[t.concat([a]),n]:[t,n]}),[[],null]),t=n[0],a=n[1];return a&&t.push(a),t},e.xor=function(n){for(var t,a,i=null,r=0,o=[],s=n.map((function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]})),l=p((t=Array.prototype).concat.apply(t,s).sort((function(e,n){return e.time-n.time})));!(a=l()).done;){var d=a.value;1===(r+="s"===d.type?1:-1)?i=d.time:(i&&+i!=+d.time&&o.push(e.fromDateTimes(i,d.time)),i=null)}return e.merge(o)},n.difference=function(){for(var n=this,t=arguments.length,a=new Array(t),i=0;i=0){var u;a=d;var h,p=c(e,n);if((i=e.plus(((u={})[d]=p,u)))>n)e=e.plus(((h={})[d]=p-1,h)),p-=1;else e=i;r[d]=p}}return[e,r,i,a]}(e,n,t),r=i[0],o=i[1],s=i[2],l=i[3],d=n-r,c=t.filter((function(e){return["hours","minutes","seconds","milliseconds"].indexOf(e)>=0}));if(0===c.length){var u;if(s0?(h=lt.fromMillis(d,a)).shiftTo.apply(h,c).plus(p):p}var mt={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},gt={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},bt=mt.hanidec.replace(/[\[|\]]/g,"").split("");function vt(e,n){var t=e.numberingSystem;return void 0===n&&(n=""),new RegExp(""+mt[t||"latn"]+n)}function yt(e,n){return void 0===n&&(n=function(e){return e}),{regex:e,deser:function(e){var t=e[0];return n(function(e){var n=parseInt(e,10);if(isNaN(n)){n="";for(var t=0;t=o&&a<=s&&(n+=a-o)}}return parseInt(n,10)}return n}(t))}}}var xt="( |"+String.fromCharCode(160)+")",Ct=new RegExp(xt,"g");function Tt(e){return e.replace(/\./g,"\\.?").replace(Ct,xt)}function Dt(e){return e.replace(/\./g,"").replace(Ct," ").toLowerCase()}function wt(e,n){return null===e?null:{regex:RegExp(e.map(Tt).join("|")),deser:function(t){var a=t[0];return e.findIndex((function(e){return Dt(a)===Dt(e)}))+n}}}function Ot(e,n){return{regex:e,deser:function(e){return he(e[1],e[2])},groups:n}}function kt(e){return{regex:e,deser:function(e){return e[0]}}}var St={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"}};var Pt=null;function At(e,n){if(e.literal)return e;var t=Le.macroTokenToFormatOpts(e.val);if(!t)return e;var a=Le.create(n,t).formatDateTimeParts((Pt||(Pt=ca.fromMillis(1555555555555)),Pt)).map((function(e){return function(e,n,t){var a=e.type,i=e.value;if("literal"===a)return{literal:!0,val:i};var r=t[a],o=St[a];return"object"==typeof o&&(o=o[r]),o?{literal:!1,val:o}:void 0}(e,0,t)}));return a.includes(void 0)?e:a}function Rt(e,n,t){var a=function(e,n){var t;return(t=Array.prototype).concat.apply(t,e.map((function(e){return At(e,n)})))}(Le.parseFormat(t),e),i=a.map((function(n){return t=n,i=vt(a=e),r=vt(a,"{2}"),o=vt(a,"{3}"),s=vt(a,"{4}"),l=vt(a,"{6}"),d=vt(a,"{1,2}"),c=vt(a,"{1,3}"),u=vt(a,"{1,6}"),h=vt(a,"{1,9}"),p=vt(a,"{2,4}"),f=vt(a,"{4,6}"),m=function(e){return{regex:RegExp((n=e.val,n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:function(e){return e[0]},literal:!0};var n},(g=function(e){if(t.literal)return m(e);switch(e.val){case"G":return wt(a.eras("short",!1),0);case"GG":return wt(a.eras("long",!1),0);case"y":return yt(u);case"yy":return yt(p,ce);case"yyyy":return yt(s);case"yyyyy":return yt(f);case"yyyyyy":return yt(l);case"M":return yt(d);case"MM":return yt(r);case"MMM":return wt(a.months("short",!0,!1),1);case"MMMM":return wt(a.months("long",!0,!1),1);case"L":return yt(d);case"LL":return yt(r);case"LLL":return wt(a.months("short",!1,!1),1);case"LLLL":return wt(a.months("long",!1,!1),1);case"d":return yt(d);case"dd":return yt(r);case"o":return yt(c);case"ooo":return yt(o);case"HH":return yt(r);case"H":return yt(d);case"hh":return yt(r);case"h":return yt(d);case"mm":return yt(r);case"m":case"q":return yt(d);case"qq":return yt(r);case"s":return yt(d);case"ss":return yt(r);case"S":return yt(c);case"SSS":return yt(o);case"u":return kt(h);case"uu":return kt(d);case"uuu":return yt(i);case"a":return wt(a.meridiems(),0);case"kkkk":return yt(s);case"kk":return yt(p,ce);case"W":return yt(d);case"WW":return yt(r);case"E":case"c":return yt(i);case"EEE":return wt(a.weekdays("short",!1,!1),1);case"EEEE":return wt(a.weekdays("long",!1,!1),1);case"ccc":return wt(a.weekdays("short",!0,!1),1);case"cccc":return wt(a.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Ot(new RegExp("([+-]"+d.source+")(?::("+r.source+"))?"),2);case"ZZZ":return Ot(new RegExp("([+-]"+d.source+")("+r.source+")?"),2);case"z":return kt(/[a-z_+-/]{1,256}?/i);default:return m(e)}}(t)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"}).token=t,g;var t,a,i,r,o,s,l,d,c,u,h,p,f,m,g})),r=i.find((function(e){return e.invalidReason}));if(r)return{input:n,tokens:a,invalidReason:r.invalidReason};var o=function(e){return["^"+e.map((function(e){return e.regex})).reduce((function(e,n){return e+"("+n.source+")"}),"")+"$",e]}(i),s=o[0],l=o[1],d=RegExp(s,"i"),c=function(e,n,t){var a=e.match(n);if(a){var i={},r=1;for(var o in t)if(K(t,o)){var s=t[o],l=s.groups?s.groups+1:1;!s.literal&&s.token&&(i[s.token.val[0]]=s.deser(a.slice(r,r+l))),r+=l}return[a,i]}return[a,{}]}(n,d,l),u=c[0],h=c[1],p=h?function(e){var n,t=null;return G(e.z)||(t=He.create(e.z)),G(e.Z)||(t||(t=new We(e.Z)),n=e.Z),G(e.q)||(e.M=3*(e.q-1)+1),G(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),G(e.u)||(e.S=ae(e.u)),[Object.keys(e).reduce((function(n,t){var a=function(e){switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}}(t);return a&&(n[a]=e[t]),n}),{}),t,n]}(h):[null,null,void 0],f=p[0],m=p[1],g=p[2];if(K(h,"a")&&K(h,"H"))throw new v("Can't include meridiem when specifying 24-hour format");return{input:n,tokens:a,regex:d,rawMatches:u,matches:h,result:f,zone:m,specificOffset:g}}var It=[0,31,59,90,120,151,181,212,243,273,304,334],_t=[0,31,60,91,121,152,182,213,244,274,305,335];function Lt(e,n){return new Ee("unit out of range","you specified "+n+" (of type "+typeof n+") as a "+e+", which is invalid")}function Et(e,n,t){var a=new Date(Date.UTC(e,n-1,t)).getUTCDay();return 0===a?7:a}function Mt(e,n,t){return t+(re(e)?_t:It)[n-1]}function jt(e,n){var t=re(e)?_t:It,a=t.findIndex((function(e){return ede(t)?(n=t+1,l=1):n=t,r({weekYear:n,weekNumber:l,weekday:s},ge(e))}function Nt(e){var n,t=e.weekYear,a=e.weekNumber,i=e.weekday,o=Et(t,1,4),s=oe(t),l=7*a+i-o-3;l<1?l+=oe(n=t-1):l>s?(n=t+1,l-=oe(t)):n=t;var d=jt(n,l);return r({year:n,month:d.month,day:d.day},ge(e))}function Bt(e){var n=e.year;return r({year:n,ordinal:Mt(n,e.month,e.day)},ge(e))}function Ft(e){var n=e.year,t=jt(n,e.ordinal);return r({year:n,month:t.month,day:t.day},ge(e))}function zt(e){var n=X(e.year),t=Q(e.month,1,12),a=Q(e.day,1,se(e.year,e.month));return n?t?!a&&Lt("day",e.day):Lt("month",e.month):Lt("year",e.year)}function Ht(e){var n=e.hour,t=e.minute,a=e.second,i=e.millisecond,r=Q(n,0,23)||24===n&&0===t&&0===a&&0===i,o=Q(t,0,59),s=Q(a,0,59),l=Q(i,0,999);return r?o?s?!l&&Lt("millisecond",i):Lt("second",a):Lt("minute",t):Lt("hour",n)}var Vt="Invalid DateTime";function Wt(e){return new Ee("unsupported zone",'the zone "'+e.name+'" is not supported')}function Yt(e){return null===e.weekData&&(e.weekData=Ut(e.c)),e.weekData}function $t(e,n){var t={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new ca(r({},t,n,{old:t}))}function Gt(e,n,t){var a=e-60*n*1e3,i=t.offset(a);if(n===i)return[a,n];a-=60*(i-n)*1e3;var r=t.offset(a);return i===r?[a,i]:[e-60*Math.min(i,r)*1e3,Math.max(i,r)]}function qt(e,n){var t=new Date(e+=60*n*1e3);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function Xt(e,n,t){return Gt(le(e),n,t)}function Jt(e,n){var t=e.o,a=e.c.year+Math.trunc(n.years),i=e.c.month+Math.trunc(n.months)+3*Math.trunc(n.quarters),o=r({},e.c,{year:a,month:i,day:Math.min(e.c.day,se(a,i))+Math.trunc(n.days)+7*Math.trunc(n.weeks)}),s=lt.fromObject({years:n.years-Math.trunc(n.years),quarters:n.quarters-Math.trunc(n.quarters),months:n.months-Math.trunc(n.months),weeks:n.weeks-Math.trunc(n.weeks),days:n.days-Math.trunc(n.days),hours:n.hours,minutes:n.minutes,seconds:n.seconds,milliseconds:n.milliseconds}).as("milliseconds"),l=Gt(le(o),t,e.zone),d=l[0],c=l[1];return 0!==s&&(d+=s,c=e.zone.offset(d)),{ts:d,o:c}}function Zt(e,n,t,a,i,o){var s=t.setZone,l=t.zone;if(e&&0!==Object.keys(e).length){var d=n||l,c=ca.fromObject(e,r({},t,{zone:d,specificOffset:o}));return s?c:c.setZone(l)}return ca.invalid(new Ee("unparsable",'the input "'+i+"\" can't be parsed as "+a))}function Kt(e,n,t){return void 0===t&&(t=!0),e.isValid?Le.create(hn.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(e,n):null}function Qt(e,n){var t=n.suppressSeconds,a=void 0!==t&&t,i=n.suppressMilliseconds,r=void 0!==i&&i,o=n.includeOffset,s=n.includePrefix,l=void 0!==s&&s,d=n.includeZone,c=void 0!==d&&d,u=n.spaceZone,h=void 0!==u&&u,p=n.format,f=void 0===p?"extended":p,m="basic"===f?"HHmm":"HH:mm";a&&0===e.second&&0===e.millisecond||(m+="basic"===f?"ss":":ss",r&&0===e.millisecond||(m+=".SSS")),(c||o)&&h&&(m+=" "),c?m+="z":o&&(m+="basic"===f?"ZZZ":"ZZ");var g=Kt(e,m);return l&&(g="T"+g),g}var ea={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},na={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ta={ordinal:1,hour:0,minute:0,second:0,millisecond:0},aa=["year","month","day","hour","minute","second","millisecond"],ia=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ra=["year","ordinal","hour","minute","second","millisecond"];function oa(e){var n={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!n)throw new y(e);return n}function sa(e,n){var t,a,i=$e(n.zone,Qe.defaultZone),r=hn.fromObject(n),o=Qe.now();if(G(e.year))t=o;else{for(var s,l=p(aa);!(s=l()).done;){var d=s.value;G(e[d])&&(e[d]=ea[d])}var c=zt(e)||Ht(e);if(c)return ca.invalid(c);var u=Xt(e,i.offset(o),i);t=u[0],a=u[1]}return new ca({ts:t,zone:i,loc:r,o:a})}function la(e,n,t){var a=!!G(t.round)||t.round,i=function(e,i){return e=ie(e,a||t.calendary?0:2,!0),n.loc.clone(t).relFormatter(t).format(e,i)},r=function(a){return t.calendary?n.hasSame(e,a)?0:n.startOf(a).diff(e.startOf(a),a).get(a):n.diff(e,a).get(a)};if(t.unit)return i(r(t.unit),t.unit);for(var o,s=p(t.units);!(o=s()).done;){var l=o.value,d=r(l);if(Math.abs(d)>=1)return i(d,l)}return i(e>n?-0:0,t.units[t.units.length-1])}function da(e){var n,t={};return e.length>0&&"object"==typeof e[e.length-1]?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}var ca=function(){function e(e){var n=e.zone||Qe.defaultZone,t=e.invalid||(Number.isNaN(e.ts)?new Ee("invalid input"):null)||(n.isValid?null:Wt(n));this.ts=G(e.ts)?Qe.now():e.ts;var a=null,i=null;if(!t)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(n)){var r=[e.old.c,e.old.o];a=r[0],i=r[1]}else{var o=n.offset(this.ts);a=qt(this.ts,o),a=(t=Number.isNaN(a.year)?new Ee("invalid input"):null)?null:a,i=t?null:o}this._zone=n,this.loc=e.loc||hn.create(),this.invalid=t,this.weekData=null,this.c=a,this.o=i,this.isLuxonDateTime=!0}e.now=function(){return new e({})},e.local=function(){var e=da(arguments),n=e[0],t=e[1],a=t[0],i=t[1],r=t[2],o=t[3],s=t[4],l=t[5],d=t[6];return sa({year:a,month:i,day:r,hour:o,minute:s,second:l,millisecond:d},n)},e.utc=function(){var e=da(arguments),n=e[0],t=e[1],a=t[0],i=t[1],r=t[2],o=t[3],s=t[4],l=t[5],d=t[6];return n.zone=We.utcInstance,sa({year:a,month:i,day:r,hour:o,minute:s,second:l,millisecond:d},n)},e.fromJSDate=function(n,t){void 0===t&&(t={});var a,i=(a=n,"[object Date]"===Object.prototype.toString.call(a)?n.valueOf():NaN);if(Number.isNaN(i))return e.invalid("invalid input");var r=$e(t.zone,Qe.defaultZone);return r.isValid?new e({ts:i,zone:r,loc:hn.fromObject(t)}):e.invalid(Wt(r))},e.fromMillis=function(n,t){if(void 0===t&&(t={}),q(n))return n<-864e13||n>864e13?e.invalid("Timestamp out of range"):new e({ts:n,zone:$e(t.zone,Qe.defaultZone),loc:hn.fromObject(t)});throw new x("fromMillis requires a numerical input, but received a "+typeof n+" with value "+n)},e.fromSeconds=function(n,t){if(void 0===t&&(t={}),q(n))return new e({ts:1e3*n,zone:$e(t.zone,Qe.defaultZone),loc:hn.fromObject(t)});throw new x("fromSeconds requires a numerical input")},e.fromObject=function(n,t){void 0===t&&(t={}),n=n||{};var a=$e(t.zone,Qe.defaultZone);if(!a.isValid)return e.invalid(Wt(a));var i=Qe.now(),r=G(t.specificOffset)?a.offset(i):t.specificOffset,o=fe(n,oa),s=!G(o.ordinal),l=!G(o.year),d=!G(o.month)||!G(o.day),c=l||d,u=o.weekYear||o.weekNumber,h=hn.fromObject(t);if((c||s)&&u)throw new v("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(d&&s)throw new v("Can't mix ordinal dates with month/day");var f,m,g=u||o.weekday&&!c,b=qt(i,r);g?(f=ia,m=na,b=Ut(b)):s?(f=ra,m=ta,b=Bt(b)):(f=aa,m=ea);for(var y,x=!1,C=p(f);!(y=C()).done;){var T=y.value;G(o[T])?o[T]=x?m[T]:b[T]:x=!0}var D=(g?function(e){var n=X(e.weekYear),t=Q(e.weekNumber,1,de(e.weekYear)),a=Q(e.weekday,1,7);return n?t?!a&&Lt("weekday",e.weekday):Lt("week",e.week):Lt("weekYear",e.weekYear)}(o):s?function(e){var n=X(e.year),t=Q(e.ordinal,1,oe(e.year));return n?!t&&Lt("ordinal",e.ordinal):Lt("year",e.year)}(o):zt(o))||Ht(o);if(D)return e.invalid(D);var w=Xt(g?Nt(o):s?Ft(o):o,r,a),O=new e({ts:w[0],zone:a,o:w[1],loc:h});return o.weekday&&c&&n.weekday!==O.weekday?e.invalid("mismatched weekday","you can't specify both a weekday of "+o.weekday+" and a date of "+O.toISO()):O},e.fromISO=function(e,n){void 0===n&&(n={});var t=function(e){return mn(e,[Hn,$n],[Vn,Gn],[Wn,qn],[Yn,Xn])}(e);return Zt(t[0],t[1],n,"ISO 8601",e)},e.fromRFC2822=function(e,n){void 0===n&&(n={});var t=function(e){return mn(function(e){return e.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[Mn,jn])}(e);return Zt(t[0],t[1],n,"RFC 2822",e)},e.fromHTTP=function(e,n){void 0===n&&(n={});var t=function(e){return mn(e,[Un,Fn],[Nn,Fn],[Bn,zn])}(e);return Zt(t[0],t[1],n,"HTTP",n)},e.fromFormat=function(n,t,a){if(void 0===a&&(a={}),G(n)||G(t))throw new x("fromFormat requires an input string and a format");var i=a,r=i.locale,o=void 0===r?null:r,s=i.numberingSystem,l=void 0===s?null:s,d=function(e,n,t){var a=Rt(e,n,t);return[a.result,a.zone,a.specificOffset,a.invalidReason]}(hn.fromOpts({locale:o,numberingSystem:l,defaultToEN:!0}),n,t),c=d[0],u=d[1],h=d[2],p=d[3];return p?e.invalid(p):Zt(c,u,a,"format "+t,n,h)},e.fromString=function(n,t,a){return void 0===a&&(a={}),e.fromFormat(n,t,a)},e.fromSQL=function(e,n){void 0===n&&(n={});var t=function(e){return mn(e,[Zn,Qn],[Kn,et])}(e);return Zt(t[0],t[1],n,"SQL",e)},e.invalid=function(n,t){if(void 0===t&&(t=null),!n)throw new x("need to specify a reason the DateTime is invalid");var a=n instanceof Ee?n:new Ee(n,t);if(Qe.throwOnInvalid)throw new m(a);return new e({invalid:a})},e.isDateTime=function(e){return e&&e.isLuxonDateTime||!1};var n=e.prototype;return n.get=function(e){return this[e]},n.resolvedLocaleOptions=function(e){void 0===e&&(e={});var n=Le.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:n.locale,numberingSystem:n.numberingSystem,outputCalendar:n.calendar}},n.toUTC=function(e,n){return void 0===e&&(e=0),void 0===n&&(n={}),this.setZone(We.instance(e),n)},n.toLocal=function(){return this.setZone(Qe.defaultZone)},n.setZone=function(n,t){var a=void 0===t?{}:t,i=a.keepLocalTime,r=void 0!==i&&i,o=a.keepCalendarTime,s=void 0!==o&&o;if((n=$e(n,Qe.defaultZone)).equals(this.zone))return this;if(n.isValid){var l=this.ts;if(r||s){var d=n.offset(this.ts);l=Xt(this.toObject(),d,n)[0]}return $t(this,{ts:l,zone:n})}return e.invalid(Wt(n))},n.reconfigure=function(e){var n=void 0===e?{}:e,t=n.locale,a=n.numberingSystem,i=n.outputCalendar;return $t(this,{loc:this.loc.clone({locale:t,numberingSystem:a,outputCalendar:i})})},n.setLocale=function(e){return this.reconfigure({locale:e})},n.set=function(e){if(!this.isValid)return this;var n,t=fe(e,oa),a=!G(t.weekYear)||!G(t.weekNumber)||!G(t.weekday),i=!G(t.ordinal),o=!G(t.year),s=!G(t.month)||!G(t.day),l=o||s,d=t.weekYear||t.weekNumber;if((l||i)&&d)throw new v("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(s&&i)throw new v("Can't mix ordinal dates with month/day");a?n=Nt(r({},Ut(this.c),t)):G(t.ordinal)?(n=r({},this.toObject(),t),G(t.day)&&(n.day=Math.min(se(n.year,n.month),n.day))):n=Ft(r({},Bt(this.c),t));var c=Xt(n,this.o,this.zone);return $t(this,{ts:c[0],o:c[1]})},n.plus=function(e){return this.isValid?$t(this,Jt(this,lt.fromDurationLike(e))):this},n.minus=function(e){return this.isValid?$t(this,Jt(this,lt.fromDurationLike(e).negate())):this},n.startOf=function(e){if(!this.isValid)return this;var n={},t=lt.normalizeUnit(e);switch(t){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0}if("weeks"===t&&(n.weekday=1),"quarters"===t){var a=Math.ceil(this.month/3);n.month=3*(a-1)+1}return this.set(n)},n.endOf=function(e){var n;return this.isValid?this.plus((n={},n[e]=1,n)).startOf(e).minus(1):this},n.toFormat=function(e,n){return void 0===n&&(n={}),this.isValid?Le.create(this.loc.redefaultToEN(n)).formatDateTimeFromString(this,e):Vt},n.toLocaleString=function(e,n){return void 0===e&&(e=O),void 0===n&&(n={}),this.isValid?Le.create(this.loc.clone(n),e).formatDateTime(this):Vt},n.toLocaleParts=function(e){return void 0===e&&(e={}),this.isValid?Le.create(this.loc.clone(e),e).formatDateTimeParts(this):[]},n.toISO=function(e){return void 0===e&&(e={}),this.isValid?this.toISODate(e)+"T"+this.toISOTime(e):null},n.toISODate=function(e){var n=(void 0===e?{}:e).format,t="basic"===(void 0===n?"extended":n)?"yyyyMMdd":"yyyy-MM-dd";return this.year>9999&&(t="+"+t),Kt(this,t)},n.toISOWeekDate=function(){return Kt(this,"kkkk-'W'WW-c")},n.toISOTime=function(e){var n=void 0===e?{}:e,t=n.suppressMilliseconds,a=void 0!==t&&t,i=n.suppressSeconds,r=void 0!==i&&i,o=n.includeOffset,s=void 0===o||o,l=n.includePrefix,d=void 0!==l&&l,c=n.format;return Qt(this,{suppressSeconds:r,suppressMilliseconds:a,includeOffset:s,includePrefix:d,format:void 0===c?"extended":c})},n.toRFC2822=function(){return Kt(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)},n.toHTTP=function(){return Kt(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")},n.toSQLDate=function(){return Kt(this,"yyyy-MM-dd")},n.toSQLTime=function(e){var n=void 0===e?{}:e,t=n.includeOffset,a=void 0===t||t,i=n.includeZone;return Qt(this,{includeOffset:a,includeZone:void 0!==i&&i,spaceZone:!0})},n.toSQL=function(e){return void 0===e&&(e={}),this.isValid?this.toSQLDate()+" "+this.toSQLTime(e):null},n.toString=function(){return this.isValid?this.toISO():Vt},n.valueOf=function(){return this.toMillis()},n.toMillis=function(){return this.isValid?this.ts:NaN},n.toSeconds=function(){return this.isValid?this.ts/1e3:NaN},n.toJSON=function(){return this.toISO()},n.toBSON=function(){return this.toJSDate()},n.toObject=function(e){if(void 0===e&&(e={}),!this.isValid)return{};var n=r({},this.c);return e.includeConfig&&(n.outputCalendar=this.outputCalendar,n.numberingSystem=this.loc.numberingSystem,n.locale=this.loc.locale),n},n.toJSDate=function(){return new Date(this.isValid?this.ts:NaN)},n.diff=function(e,n,t){if(void 0===n&&(n="milliseconds"),void 0===t&&(t={}),!this.isValid||!e.isValid)return lt.invalid("created by diffing an invalid DateTime");var a,i=r({locale:this.locale,numberingSystem:this.numberingSystem},t),o=(a=n,Array.isArray(a)?a:[a]).map(lt.normalizeUnit),s=e.valueOf()>this.valueOf(),l=ft(s?this:e,s?e:this,o,i);return s?l.negate():l},n.diffNow=function(n,t){return void 0===n&&(n="milliseconds"),void 0===t&&(t={}),this.diff(e.now(),n,t)},n.until=function(e){return this.isValid?ut.fromDateTimes(this,e):this},n.hasSame=function(e,n){if(!this.isValid)return!1;var t=e.valueOf(),a=this.setZone(e.zone,{keepLocalTime:!0});return a.startOf(n)<=t&&t<=a.endOf(n)},n.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},n.toRelative=function(n){if(void 0===n&&(n={}),!this.isValid)return null;var t=n.base||e.fromObject({},{zone:this.zone}),a=n.padding?thisthis.set({month:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return re(this.year)}},{key:"daysInMonth",get:function(){return se(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?oe(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?de(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return O}},{key:"DATE_MED",get:function(){return k}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return S}},{key:"DATE_FULL",get:function(){return P}},{key:"DATE_HUGE",get:function(){return A}},{key:"TIME_SIMPLE",get:function(){return R}},{key:"TIME_WITH_SECONDS",get:function(){return I}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return _}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return L}},{key:"TIME_24_SIMPLE",get:function(){return E}},{key:"TIME_24_WITH_SECONDS",get:function(){return M}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return j}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return U}},{key:"DATETIME_SHORT",get:function(){return N}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return B}},{key:"DATETIME_MED",get:function(){return F}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return H}},{key:"DATETIME_FULL",get:function(){return V}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return W}},{key:"DATETIME_HUGE",get:function(){return Y}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return $}}]),e}();function ua(e){if(ca.isDateTime(e))return e;if(e&&e.valueOf&&q(e.valueOf()))return ca.fromJSDate(e);if(e&&"object"==typeof e)return ca.fromObject(e);throw new x("Unknown datetime argument: "+e+", of type "+typeof e)}n.DateTime=ca,n.Duration=lt,n.FixedOffsetZone=We,n.IANAZone=He,n.Info=ht,n.Interval=ut,n.InvalidZone=Ye,n.Settings=Qe,n.SystemZone=Ue,n.VERSION="2.2.0",n.Zone=Me},function(e,n,t){var a=t(2),i=t(148),r=t(149),o=t(150),s=t(24),l=t(10),d=l("iterator"),c=l("toStringTag"),u=o.values,h=function(e,n){if(e){if(e[d]!==u)try{s(e,d,u)}catch(n){e[d]=u}if(e[c]||s(e,c,n),i[n])for(var t in o)if(e[t]!==o[t])try{s(e,t,o[t])}catch(n){e[t]=o[t]}}};for(var p in i)h(a[p]&&a[p].prototype,p);h(r,"DOMTokenList")},function(e,n,t){var a=t(2),i=t(45),r=t(13),o=t(79),s=t(75),l=t(74),d=i("wks"),c=a.Symbol,u=c&&c.for,h=l?c:c&&c.withoutSetter||o;e.exports=function(e){if(!r(d,e)||!s&&"string"!=typeof d[e]){var n="Symbol."+e;s&&r(c,e)?d[e]=c[e]:d[e]=l&&u?u(n):h(n)}return d[e]}},function(e,n,t){var a=t(2),i=t(22),r=a.String,o=a.TypeError;e.exports=function(e){if(i(e))return e;throw o(r(e)+" is not an object")}},function(e,n){var t=Array.isArray;e.exports=t},function(e,n,t){var a=t(4),i=t(48),r=a({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,n){return r(i(e),n)}},function(e,n,t){var a=t(89),i="object"==typeof self&&self&&self.Object===Object&&self,r=a||i||Function("return this")();e.exports=r},function(e,n){e.exports={package:"../../package.json",menu:{text:"{{version|title}}",locations:[".navbar > .home-link::after",".sidebar > .nav-links > :first-child::before"],items:[{text:"Documentation",items:[{text:"Development (master)",link:"/docs/master/"},{text:"Latest version",link:"/docs/latest/"},{type:"versions",text:"{{version}}{{tag|suffix}}",link:"/docs/{{version}}/",exclude:/^[01]\.|2\.[0-5]\./,group:"minor"}]},{text:"Release notes (5 latest)",items:[{type:"versions",limit:5,target:"_blank",group:"patch",link:"https://github.com/chartjs/Chart.js/releases/tag/v{{version}}"}]}]},filters:{suffix:e=>e?` (${e})`:"",title:(e,n)=>window.location.href.includes("master")?"Development (master)":"latest"===n.tag?"Latest ("+e+")":e+(n.tag?` (${tag})`:"")+" (outdated)"},base:"/docs/3.9.1/",name:"chart.js",version:"3.9.1",versions:[{tag:null,name:"3.9.0"},{tag:null,name:"3.8.2"},{tag:null,name:"3.8.1"},{tag:null,name:"3.8.0"},{tag:null,name:"3.7.1"},{tag:null,name:"3.7.0"},{tag:null,name:"3.6.2"},{tag:null,name:"3.6.1"},{tag:null,name:"3.6.0"},{tag:null,name:"3.5.1"},{tag:null,name:"3.5.0"},{tag:null,name:"3.4.1"},{tag:null,name:"3.4.0"},{tag:null,name:"3.3.2"},{tag:null,name:"3.3.1"},{tag:null,name:"3.3.0"},{tag:null,name:"3.2.1"},{tag:null,name:"3.2.0"},{tag:null,name:"3.1.1"},{tag:null,name:"3.1.0"},{tag:null,name:"3.0.2"},{tag:null,name:"3.0.1"},{tag:null,name:"3.0.0"},{tag:null,name:"3.0.0-rc.7"},{tag:null,name:"3.0.0-rc.6"},{tag:null,name:"3.0.0-rc.5"},{tag:null,name:"3.0.0-rc.4"},{tag:null,name:"3.0.0-rc.3"},{tag:null,name:"3.0.0-rc.2"},{tag:null,name:"3.0.0-rc"},{tag:null,name:"3.0.0-beta.14"},{tag:null,name:"3.0.0-beta.13"},{tag:null,name:"3.0.0-beta.12"},{tag:null,name:"3.0.0-beta.11"},{tag:null,name:"3.0.0-beta.10"},{tag:null,name:"3.0.0-beta.9"},{tag:null,name:"3.0.0-beta.8"},{tag:null,name:"3.0.0-beta.7"},{tag:null,name:"3.0.0-beta.6"},{tag:null,name:"3.0.0-beta.5"},{tag:null,name:"3.0.0-beta.4"},{tag:null,name:"3.0.0-beta.3"},{tag:null,name:"3.0.0-beta.2"},{tag:null,name:"3.0.0-beta"},{tag:null,name:"3.0.0-alpha.2"},{tag:null,name:"3.0.0-alpha"},{tag:null,name:"2.9.4"},{tag:null,name:"2.9.3"},{tag:null,name:"2.9.2"},{tag:null,name:"2.9.1"},{tag:null,name:"2.9.0"},{tag:null,name:"2.8.0"},{tag:null,name:"2.8.0-rc.1"},{tag:null,name:"2.7.3"},{tag:null,name:"2.7.2"},{tag:null,name:"2.7.1"},{tag:null,name:"2.7.0"},{tag:null,name:"2.6.0"},{tag:null,name:"2.5.0"},{tag:null,name:"2.4.0"},{tag:null,name:"2.3.0"},{tag:null,name:"2.3.0-rc.1"},{tag:null,name:"2.2.2"},{tag:null,name:"2.2.1"},{tag:null,name:"2.2.0"},{tag:null,name:"2.2.0-rc.2"},{tag:null,name:"2.2.0-rc.1"},{tag:null,name:"2.1.6"},{tag:null,name:"2.1.5"},{tag:null,name:"2.1.4"},{tag:null,name:"2.1.3"},{tag:null,name:"2.1.2"},{tag:null,name:"2.1.1"},{tag:null,name:"2.1.0"},{tag:null,name:"2.0.2"},{tag:null,name:"2.0.1"},{tag:null,name:"2.0.0"},{tag:null,name:"1.1.1"},{tag:null,name:"1.1.0"},{tag:null,name:"1.0.2"},{tag:null,name:"1.0.1"},{tag:null,name:"1.0.1-beta.2"}]}},function(e,n,t){var a=t(7);e.exports=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,n){var t=Function.prototype.call;e.exports=t.bind?t.bind(t):function(){return t.apply(t,arguments)}},function(e,n,t){var a=t(189),i=t(192);e.exports=function(e,n){var t=i(e,n);return a(t)?t:void 0}},function(e,n,t){"use strict";var a=t(160),i=t(17),r=t(4),o=t(161),s=t(7),l=t(11),d=t(3),c=t(34),u=t(83),h=t(57),p=t(33),f=t(167),m=t(76),g=t(169),b=t(170),v=t(10)("replace"),y=Math.max,x=Math.min,C=r([].concat),T=r([].push),D=r("".indexOf),w=r("".slice),O="$0"==="a".replace(/./,"$0"),k=!!/./[v]&&""===/./[v]("a","$0");o("replace",(function(e,n,t){var r=k?"$":"$0";return[function(e,t){var a=p(this),r=null==e?void 0:m(e,v);return r?i(r,e,a,t):i(n,h(a),e,t)},function(e,i){var o=l(this),s=h(e);if("string"==typeof i&&-1===D(i,r)&&-1===D(i,"$<")){var p=t(n,o,s,i);if(p.done)return p.value}var m=d(i);m||(i=h(i));var v=o.global;if(v){var O=o.unicode;o.lastIndex=0}for(var k=[];;){var S=b(o,s);if(null===S)break;if(T(k,S),!v)break;""===h(S[0])&&(o.lastIndex=f(s,u(o.lastIndex),O))}for(var P,A="",R=0,I=0;I=R&&(A+=w(s,R,L)+N,R=L+_.length)}return A+w(s,R)}]}),!!s((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!O||k)},function(e,n,t){"use strict";t.d(n,"d",(function(){return a})),t.d(n,"a",(function(){return r})),t.d(n,"i",(function(){return o})),t.d(n,"f",(function(){return l})),t.d(n,"g",(function(){return d})),t.d(n,"h",(function(){return c})),t.d(n,"b",(function(){return u})),t.d(n,"e",(function(){return h})),t.d(n,"k",(function(){return p})),t.d(n,"l",(function(){return f})),t.d(n,"c",(function(){return g})),t.d(n,"j",(function(){return b}));t(19);const a=/#.*$/,i=/\.(md|html)$/,r=/\/$/,o=/^[a-z]+:/i;function s(e){return decodeURI(e).replace(a,"").replace(i,"")}function l(e){return o.test(e)}function d(e){return/^mailto:/.test(e)}function c(e){return/^tel:/.test(e)}function u(e){if(l(e))return e;const n=e.match(a),t=n?n[0]:"",i=s(e);return r.test(i)?e:i+".html"+t}function h(e,n){const t=decodeURIComponent(e.hash),i=function(e){const n=e.match(a);if(n)return n[0]}(n);if(i&&t!==i)return!1;return s(e.path)===s(n)}function p(e,n,t){if(l(n))return{type:"external",path:n};t&&(n=function(e,n,t){const a=e.charAt(0);if("/"===a)return e;if("?"===a||"#"===a)return n+e;const i=n.split("/");t&&i[i.length-1]||i.pop();const r=e.replace(/^\//,"").split("/");for(let e=0;efunction e(n,t,a,i=1){if("string"==typeof n)return p(t,n,a);if(Array.isArray(n))return Object.assign(p(t,n[0],a),{title:n[1]});{const r=n.children||[];return 0===r.length&&n.path?Object.assign(p(t,n.path,a),{title:n.title}):{type:"group",path:n.path,title:n.title,sidebarDepth:n.sidebarDepth,initialOpenGroupIndex:n.initialOpenGroupIndex,children:r.map(n=>e(n,t,a,i+1)),collapsable:!1!==n.collapsable}}}(e,i,t)):[]}return[]}function m(e){const n=g(e.headers||[]);return[{type:"group",collapsable:!1,title:e.title,path:null,children:n.map(n=>({type:"auto",title:n.title,basePath:e.path,path:e.path+"#"+n.slug,children:n.children||[]}))}]}function g(e){let n;return(e=e.map(e=>Object.assign({},e))).forEach(e=>{2===e.level?n=e:n&&(n.children||(n.children=[])).push(e)}),e.filter(e=>2===e.level)}function b(e){return Object.assign(e,{type:e.items&&e.items.length?"links":"link"})}},function(e,n){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,n,t){var a=t(3);e.exports=function(e){return"object"==typeof e?null!==e:a(e)}},function(e,n,t){var a=t(2),i=t(3),r=function(e){return i(e)?e:void 0};e.exports=function(e,n){return arguments.length<2?r(a[e]):a[e]&&a[e][n]}},function(e,n,t){var a=t(16),i=t(25),r=t(43);e.exports=a?function(e,n,t){return i.f(e,n,r(1,t))}:function(e,n,t){return e[n]=t,e}},function(e,n,t){var a=t(2),i=t(16),r=t(80),o=t(11),s=t(72),l=a.TypeError,d=Object.defineProperty;n.f=i?d:function(e,n,t){if(o(e),n=s(n),o(t),r)try{return d(e,n,t)}catch(e){}if("get"in t||"set"in t)throw l("Accessors not supported");return"value"in t&&(e[n]=t.value),e}},function(e,n,t){var a=t(30),i=t(174),r=t(175),o=a?a.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?i(e):r(e)}},function(e,n,t){var a=t(126),i=t(33);e.exports=function(e){return a(i(e))}},function(e,n){e.exports=!1},function(e,n,t){var a=t(2),i=t(3),r=t(13),o=t(24),s=t(47),l=t(50),d=t(51),c=t(81).CONFIGURABLE,u=d.get,h=d.enforce,p=String(String).split("String");(e.exports=function(e,n,t,l){var d,u=!!l&&!!l.unsafe,f=!!l&&!!l.enumerable,m=!!l&&!!l.noTargetGet,g=l&&void 0!==l.name?l.name:n;i(t)&&("Symbol("===String(g).slice(0,7)&&(g="["+String(g).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!r(t,"name")||c&&t.name!==g)&&o(t,"name",g),(d=h(t)).source||(d.source=p.join("string"==typeof g?g:""))),e!==a?(u?!m&&e[n]&&(f=!0):delete e[n],f?e[n]=t:o(e,n,t)):f?e[n]=t:s(n,t)})(Function.prototype,"toString",(function(){return i(this)&&u(this).source||l(this)}))},function(e,n,t){var a=t(14).Symbol;e.exports=a},function(e,n,t){t(9),t(19);e.exports={resolveTemplate:function(e,n,t){if(!e)return e;for(const[a,i]of Object.entries(n)){const r=new RegExp(`{{\\s*${a}\\s*(\\|\\s*(?\\w+)\\s*)?}}`,"g");e=e.replace(r,(e,a,r)=>{const o=r&&t[r]?t[r](i,n):i;return null==o?"":o})}return e}}},function(e,n,t){t(9);const a=t(266),i=/^(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,r={major:/^\d\./,minor:/^\d\.\d\./,patch:/^\d\.\d\.\d/};e.exports={collapseVersions:function({group:e},n){const t=[...n].sort((e,n)=>-a(e.name,n.name)),i=r[e],o={};return i?t.filter(e=>{const n=i.exec(e.name),t=n&&n[0];if(t&&!o[t])return o[t]=e,!0}):t},describeVersion:function({name:e,tag:n}){const t=i.exec(e);if(!t)return{};const a=e,r=t.groups,o=`${r.major}.${r.minor}.${r.patch}`;return{...r,version:a,core:o,tag:n}}}},function(e,n,t){var a=t(2).TypeError;e.exports=function(e){if(null==e)throw a("Can't call method on "+e);return e}},function(e,n){var t=Math.ceil,a=Math.floor;e.exports=function(e){var n=+e;return n!=n||0===n?0:(n>0?a:t)(n)}},function(e,n,t){var a,i=t(11),r=t(152),o=t(54),s=t(53),l=t(154),d=t(49),c=t(52),u=c("IE_PROTO"),h=function(){},p=function(e){return" + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/_common_ticks.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/_common_ticks.html new file mode 100644 index 0000000..1528a2b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/_common_ticks.html @@ -0,0 +1,43 @@ + + + + + + Common tick options to all axes | Chart.js + + + + + + + +

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common.html new file mode 100644 index 0000000..694eb70 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common.html @@ -0,0 +1,43 @@ + + + + + + Common options to all cartesian axes | Chart.js + + + + + + + +

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common_ticks.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common_ticks.html new file mode 100644 index 0000000..9d20ea5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/_common_ticks.html @@ -0,0 +1,43 @@ + + + + + + Common tick options to all cartesian axes | Chart.js + + + + + + + +

# Common tick options to all cartesian axes

Namespace: options.scales[scaleId].ticks

Name Type Default Description
align string 'center' The tick alignment along the axis. Can be 'start', 'center', 'end', or 'inner'. inner alignment means align start for first tick and end for the last tick of horizontal axis
crossAlign string 'near' The tick alignment perpendicular to the axis. Can be 'near', 'center', or 'far'. See Tick Alignment
sampleSize number ticks.length The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.
autoSkip boolean true If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what.
autoSkipPadding number 3 Padding between the ticks on the horizontal axis when autoSkip is enabled.
includeBounds boolean true Should the defined min and max values be presented as ticks even if they are not "nice".
labelOffset number 0 Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas
maxRotation number 50 Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales.
minRotation number 0 Minimum rotation for tick labels. Note: Only applicable to horizontal scales.
mirror boolean false Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales.
padding number 0 Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
maxTicksLimit number 11 Maximum number of ticks and gridlines to show.
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/category.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/category.html new file mode 100644 index 0000000..6e0ec07 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/category.html @@ -0,0 +1,86 @@ + + + + + + Category Axis | Chart.js + + + + + + + +

# Category Axis

If the global configuration is used, labels are drawn from one of the label arrays included in the chart data. If only data.labels is defined, this will be used. If data.xLabels is defined and the axis is horizontal, this will be used. Similarly, if data.yLabels is defined and the axis is vertical, this property will be used. Using both xLabels and yLabels together can create a chart that uses strings for both the X and Y axes.

Specifying any of the settings above defines the x-axis as type: 'category' if not defined otherwise. For more fine-grained control of category labels, it is also possible to add labels as part of the category axis definition. Doing so does not apply the global defaults.

# Category Axis Definition

Globally:

let chart = new Chart(ctx, {
+    type: ...
+    data: {
+        labels: ['January', 'February', 'March', 'April', 'May', 'June'],
+        datasets: ...
+    }
+});
+

As part of axis definition:

let chart = new Chart(ctx, {
+    type: ...
+    data: ...
+    options: {
+        scales: {
+            x: {
+                type: 'category',
+                labels: ['January', 'February', 'March', 'April', 'May', 'June']
+            }
+        }
+    }
+});
+

# Configuration Options

# Category Axis specific options

Namespace: options.scales[scaleId]

Name Type Description
min string|number The minimum item to display. more...
max string|number The maximum item to display. more...
labels string[]|string[][] An array of labels to display. When an individual label is an array of strings, each item is rendered on a new line.

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Tick Configuration

# Common tick options to all cartesian axes

Namespace: options.scales[scaleId].ticks

Name Type Default Description
align string 'center' The tick alignment along the axis. Can be 'start', 'center', 'end', or 'inner'. inner alignment means align start for first tick and end for the last tick of horizontal axis
crossAlign string 'near' The tick alignment perpendicular to the axis. Can be 'near', 'center', or 'far'. See Tick Alignment
sampleSize number ticks.length The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.
autoSkip boolean true If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what.
autoSkipPadding number 3 Padding between the ticks on the horizontal axis when autoSkip is enabled.
includeBounds boolean true Should the defined min and max values be presented as ticks even if they are not "nice".
labelOffset number 0 Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas
maxRotation number 50 Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales.
minRotation number 0 Minimum rotation for tick labels. Note: Only applicable to horizontal scales.
mirror boolean false Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales.
padding number 0 Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
maxTicksLimit number 11 Maximum number of ticks and gridlines to show.

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

# Min Max Configuration

For both the min and max properties, the value must be string in the labels array or numeric value as an index of a label in that array. In the example below, the x axis would only display "March" through "June".

let chart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            data: [10, 20, 30, 40, 50, 60]
+        }],
+        labels: ['January', 'February', 'March', 'April', 'May', 'June']
+    },
+    options: {
+        scales: {
+            x: {
+                min: 'March'
+            }
+        }
+    }
+});
+

# Internal data format

Internally category scale uses label indices

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/index.html new file mode 100644 index 0000000..c2a40d0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/index.html @@ -0,0 +1,396 @@ + + + + + + Cartesian Axes | Chart.js + + + + + + + +

# Cartesian Axes

Axes that follow a cartesian grid are known as 'Cartesian Axes'. Cartesian axes are used for line, bar, and bubble Graficas. Four cartesian axes are included in Chart.js by default.

# Visual Componentes

A cartesian axis is composed of visual Componentes that can be individually configured. These Componentes are:

# Border

The axis border is drawn at the edge of the axis, beside the chart area. In the image below, it is drawn in red.

const config = {
+  type: 'line',
+  data,
+  options: {
+    scales: {
+      x: {
+        grid: {
+          borderColor: 'red'
+        }
+      }
+    }
+  }
+};

# Grid lines

The grid lines for an axis are drawn on the chart area. In the image below, they are red.

const config = {
+  type: 'line',
+  data,
+  options: {
+    scales: {
+      x: {
+        grid: {
+          color: 'red',
+          borderColor: 'grey',
+          tickColor: 'grey'
+        }
+      }
+    }
+  }
+};

# Ticks and Tick Marks

Ticks represent data values on the axis that appear as labels. The tick mark is the extension of the grid line from the axis border to the label. +In this example, the tick mark is drawn in red while the tick label is drawn in blue.

const config = {
+  type: 'line',
+  data,
+  options: {
+    scales: {
+      x: {
+        grid: {
+          tickColor: 'red'
+        },
+        ticks: {
+          color: 'blue',
+        }
+      }
+    }
+  }
+};

# Title

The title component of the axis is used to label the data. In the example below, it is shown in red.

const config = {
+  type: 'line',
+  data,
+  options: {
+    scales: {
+      x: {
+        title: {
+          color: 'red',
+          display: true,
+          text: 'Month'
+        }
+      }
+    }
+  }
+};

# Common Configuration

Note

These are only the common options supported by all cartesian axes. Please see the specific axis documentation for all the available options for that axis.

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Axis Position

An axis can either be positioned at the edge of the chart, at the center of the chart area, or dynamically with respect to a data value.

To position the axis at the edge of the chart, set the position option to one of: 'top', 'left', 'bottom', 'right'. +To position the axis at the center of the chart area, set the position option to 'center'. In this mode, either the axis option must be specified or the axis ID has to start with the letter 'x' or 'y'. This is so chart.js knows what kind of axis (horizontal or vertical) it is. +To position the axis with respect to a data value, set the position option to an object such as:

{
+    x: -20
+}
+

This will position the axis at a value of -20 on the axis with ID "x". For cartesian axes, only 1 axis may be specified.

# Scale Bounds

The bounds property controls the scale boundary strategy (bypassed by min/max options).

  • 'data': makes sure data are fully visible, labels outside are removed
  • 'ticks': makes sure ticks are fully visible, data outside are truncated

# Tick Configuration

Note

These are only the common tick options supported by all cartesian axes. Please see specific axis documentation for all of the available options for that axis.

# Common tick options to all cartesian axes

Namespace: options.scales[scaleId].ticks

Name Type Default Description
align string 'center' The tick alignment along the axis. Can be 'start', 'center', 'end', or 'inner'. inner alignment means align start for first tick and end for the last tick of horizontal axis
crossAlign string 'near' The tick alignment perpendicular to the axis. Can be 'near', 'center', or 'far'. See Tick Alignment
sampleSize number ticks.length The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.
autoSkip boolean true If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what.
autoSkipPadding number 3 Padding between the ticks on the horizontal axis when autoSkip is enabled.
includeBounds boolean true Should the defined min and max values be presented as ticks even if they are not "nice".
labelOffset number 0 Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas
maxRotation number 50 Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales.
minRotation number 0 Minimum rotation for tick labels. Note: Only applicable to horizontal scales.
mirror boolean false Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales.
padding number 0 Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
maxTicksLimit number 11 Maximum number of ticks and gridlines to show.

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

# Tick Alignment

The alignment of ticks is primarily controlled using two settings on the tick configuration object: align and crossAlign. The align setting configures how labels align with the tick mark along the axis direction (i.e. horizontal for a horizontal axis and vertical for a vertical axis). The crossAlign setting configures how labels align with the tick mark in the perpendicular direction (i.e. vertical for a horizontal axis and horizontal for a vertical axis). In the example below, the crossAlign setting is used to left align the labels on the Y axis.

const config = {
+  type: 'bar',
+  data,
+  options: {
+    indexAxis: 'y',
+    scales: {
+      y: {
+        ticks: {
+          crossAlign: 'far',
+        }
+      }
+    }
+  }
+};

Note

The crossAlign setting is only effective when these preconditions are met:

  • tick rotation is 0
  • axis position is 'top', 'left', 'bottom' or 'right'

# Axis ID

The properties dataset.xAxisID or dataset.yAxisID have to match to scales property. This is especially needed if multi-axes Graficas are used.

const myChart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            // This dataset appears on the first axis
+            yAxisID: 'first-y-axis'
+        }, {
+            // This dataset appears on the second axis
+            yAxisID: 'second-y-axis'
+        }]
+    },
+    options: {
+        scales: {
+            'first-y-axis': {
+                type: 'linear'
+            },
+            'second-y-axis': {
+                type: 'linear'
+            }
+        }
+    }
+});
+

# Creating Multiple Axes

With cartesian axes, it is possible to create multiple X and Y axes. To do so, you can add multiple configuration objects to the xAxes and yAxes properties. When adding new axes, it is important to ensure that you specify the type of the new axes as default types are not used in this case.

In the example below, we are creating two Y axes. We then use the yAxisID property to map the datasets to their correct axes.

const myChart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            data: [20, 50, 100, 75, 25, 0],
+            label: 'Left dataset',
+            // This binds the dataset to the left y axis
+            yAxisID: 'left-y-axis'
+        }, {
+            data: [0.1, 0.5, 1.0, 2.0, 1.5, 0],
+            label: 'Right dataset',
+            // This binds the dataset to the right y axis
+            yAxisID: 'right-y-axis'
+        }],
+        labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
+    },
+    options: {
+        scales: {
+            'left-y-axis': {
+                type: 'linear',
+                position: 'left'
+            },
+            'right-y-axis': {
+                type: 'linear',
+                position: 'right'
+            }
+        }
+    }
+});
+
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/linear.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/linear.html new file mode 100644 index 0000000..5d37ecd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/linear.html @@ -0,0 +1,109 @@ + + + + + + Linear Axis | Chart.js + + + + + + + +

# Linear Axis

The linear scale is used to chart numerical data. It can be placed on either the x or y-axis. The scatter chart type automatically configures a line chart to use one of these scales for the x-axis. As the name suggests, linear interpolation is used to determine where a value lies on the axis.

# Configuration Options

# Linear Axis specific options

Namespace: options.scales[scaleId]

Name Type Description
beginAtZero boolean if true, scale will include 0 if it is not already included.
grace number|string Percentage (string ending with %) or amount (number) for added room in the scale range above and below data. more...

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Tick Configuration

# Linear Axis specific tick options

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
count number Yes undefined The number of ticks to generate. If specified, this overrides the automatic generation.
format object Yes The Intl.NumberFormat (opens new window) options used by the default label formatter
precision number Yes if defined and stepSize is not specified, the step size will be rounded to this many decimal places.
stepSize number Yes User-defined fixed step size for the scale. more...

# Common tick options to all cartesian axes

Namespace: options.scales[scaleId].ticks

Name Type Default Description
align string 'center' The tick alignment along the axis. Can be 'start', 'center', 'end', or 'inner'. inner alignment means align start for first tick and end for the last tick of horizontal axis
crossAlign string 'near' The tick alignment perpendicular to the axis. Can be 'near', 'center', or 'far'. See Tick Alignment
sampleSize number ticks.length The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.
autoSkip boolean true If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what.
autoSkipPadding number 3 Padding between the ticks on the horizontal axis when autoSkip is enabled.
includeBounds boolean true Should the defined min and max values be presented as ticks even if they are not "nice".
labelOffset number 0 Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas
maxRotation number 50 Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales.
minRotation number 0 Minimum rotation for tick labels. Note: Only applicable to horizontal scales.
mirror boolean false Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales.
padding number 0 Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
maxTicksLimit number 11 Maximum number of ticks and gridlines to show.

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

# Step Size

If set, the scale ticks will be enumerated by multiple of stepSize, having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.

This example sets up a chart with a y axis that creates ticks at 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.

let options = {
+    scales: {
+        y: {
+            max: 5,
+            min: 0,
+            ticks: {
+                stepSize: 0.5
+            }
+        }
+    }
+};
+

# Grace

If the value is string ending with %, its treat as percentage. If number, its treat as value. +The value is added to the maximum data value and subtracted from the minimum data. This extends the scale range as if the data values were that much greater.

const config = {
+  type: 'bar',
+  data,
+  options: {
+    scales: {
+      y: {
+        type: 'linear',
+        grace: '5%'
+      }
+    },
+    plugins: {
+      legend: false
+    }
+  }
+};

# Internal data format

Internally, the linear scale uses numeric data

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/logarithmic.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/logarithmic.html new file mode 100644 index 0000000..f5fd655 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/logarithmic.html @@ -0,0 +1,51 @@ + + + + + + Logarithmic Axis | Chart.js + + + + + + + +

# Logarithmic Axis

The logarithmic scale is used to chart numerical data. It can be placed on either the x or y-axis. As the name suggests, logarithmic interpolation is used to determine where a value lies on the axis.

# Configuration Options

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Tick Configuration

# Logarithmic Axis specific options

Namespace: options.scales[scaleId]

Name Type Default Description
format object The Intl.NumberFormat (opens new window) options used by the default label formatter

# Common tick options to all cartesian axes

Namespace: options.scales[scaleId].ticks

Name Type Default Description
align string 'center' The tick alignment along the axis. Can be 'start', 'center', 'end', or 'inner'. inner alignment means align start for first tick and end for the last tick of horizontal axis
crossAlign string 'near' The tick alignment perpendicular to the axis. Can be 'near', 'center', or 'far'. See Tick Alignment
sampleSize number ticks.length The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length.
autoSkip boolean true If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what.
autoSkipPadding number 3 Padding between the ticks on the horizontal axis when autoSkip is enabled.
includeBounds boolean true Should the defined min and max values be presented as ticks even if they are not "nice".
labelOffset number 0 Distance in pixels to offset the label from the centre point of the tick (in the x-direction for the x-axis, and the y-direction for the y-axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas
maxRotation number 50 Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales.
minRotation number 0 Minimum rotation for tick labels. Note: Only applicable to horizontal scales.
mirror boolean false Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales.
padding number 0 Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.
maxTicksLimit number 11 Maximum number of ticks and gridlines to show.

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

# Internal data format

Internally, the logarithmic scale uses numeric data.

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/time.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/time.html new file mode 100644 index 0000000..e1914cf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/time.html @@ -0,0 +1,121 @@ + + + + + + Time Cartesian Axis | Chart.js + + + + + + + +

# Time Cartesian Axis

The time scale is used to display times and dates. Data are spread according to the amount of time between data points. When building its ticks, it will automatically calculate the most comfortable unit base on the size of the scale.

# Date Adapters

The time scale requires both a date library and a corresponding adapter to be present. Please choose from the available adapters (opens new window).

# Data Sets

# Input Data

See data structures.

# Date Formats

When providing data for the time scale, Chart.js uses timestamps defined as milliseconds since the epoch (midnight January 1, 1970, UTC) internally. However, Chart.js also supports all of the formats that your chosen date adapter accepts. You should use timestamps if you'd like to set parsing: false for better performance.

# Configuration Options

# Time Axis specific options

Namespace: options.scales[scaleId]

Name Type Default Description
min number|string The minimum item to display. more...
max number|string The maximum item to display. more...
suggestedMin number|string The minimum item to display if there is no datapoint before it. more...
suggestedMax number|string The maximum item to display if there is no datapoint behind it. more...
adapters.date object {} Options for adapter for external date library if that adapter needs or supports options
bounds string 'data' Determines the scale bounds. more...
offsetAfterAutoskip boolean false If true, bar chart offsets are computed with auto skipped ticks.
ticks.source string 'auto' How ticks are generated. more...
time.displayFormats object Sets how different time units are displayed. more...
time.isoWeekday boolean|number false If boolean and true and the unit is set to 'week', then the first day of the week will be Monday. Otherwise, it will be Sunday. If number, the index of the first day of the week (0 - Sunday, 6 - Saturday)
time.parser string|function Custom parser for dates. more...
time.round string false If defined, dates will be rounded to the start of this unit. See Time Units below for the allowed units.
time.tooltipFormat string The format string to use for the tooltip.
time.unit string false If defined, will force the unit to be a certain type. See Time Units section below for details.
time.stepSize number 1 The number of units between grid lines.
time.minUnit string 'millisecond' The minimum display format to be used for a time unit.

# Common options to all cartesian axes

Namespace: options.scales[scaleId]

Name Type Default Description
bounds string 'ticks' Determines the scale bounds. more...
position string | object Position of the axis. more...
stack string Stack group. Axes at the same position with same stack are stacked.
stackWeight number 1 Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group.
axis string Which type of axis this is. Possible values are: 'x', 'y'. If not set, this is inferred from the first character of the ID which should be 'x' or 'y'.
offset boolean false If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default.
title object Scale title configuration. more...

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Time Units

The following time measurements are supported. The names can be passed as strings to the time.unit config option to force a certain unit.

  • 'millisecond'
  • 'second'
  • 'minute'
  • 'hour'
  • 'day'
  • 'week'
  • 'month'
  • 'quarter'
  • 'year'

For example, to create a chart with a time scale that always displayed units per month, the following config could be used.

const chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            x: {
+                type: 'time',
+                time: {
+                    unit: 'month'
+                }
+            }
+        }
+    }
+});
+

# Display Formats

You may specify a map of display formats with a key for each unit:

  • millisecond
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year

The format string used as a value depends on the date adapter you chose to use.

For example, to set the display format for the quarter unit to show the month and year, the following config might be passed to the chart constructor.

const chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            x: {
+                type: 'time',
+                time: {
+                    displayFormats: {
+                        quarter: 'MMM YYYY'
+                    }
+                }
+            }
+        }
+    }
+});
+

# Ticks Source

The ticks.source property controls the ticks generation.

  • 'auto': generates "optimal" ticks based on scale size and time options
  • 'data': generates ticks from data (including labels from data {x|y} objects)
  • 'labels': generates ticks from user given labels ONLY

# Parser

If this property is defined as a string, it is interpreted as a custom format to be used by the date adapter to parse the date.

If this is a function, it must return a type that can be handled by your date adapter's parse method.

# Min Max Configuration

For both the min and max properties, the value must be string that is parsable by your date adapter or a number with the amount of milliseconds that have elapsed since UNIX epoch. +In the example below the x axis will start at 7 October 2021.

let chart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            data: [{
+                x: '2021-11-06 23:39:30',
+                y: 50
+            }, {
+                x: '2021-11-07 01:00:28',
+                y: 60
+            }, {
+                x: '2021-11-07 09:00:28',
+                y: 20
+            }]
+        }],
+    },
+    options: {
+        scales: {
+            x: {
+                min: '2021-11-07 00:00:00',
+            }
+        }
+    }
+});
+

# Changing the scale type from Time scale to Logarithmic/Linear scale.

When changing the scale type from Time scale to Logarithmic/Linear scale, you need to add bounds: 'ticks' to the scale options. Changing the bounds parameter is necessary because its default value is the 'data' for the Time scale.

Initial config:

const chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            x: {
+                type: 'time',
+            }
+        }
+    }
+});
+

Scale update:

chart.options.scales.x = {
+    type: 'logarithmic',
+    bounds: 'ticks'
+};
+

# Internal data format

Internally time scale uses milliseconds since epoch

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/timeseries.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/timeseries.html new file mode 100644 index 0000000..9343585 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/cartesian/timeseries.html @@ -0,0 +1,62 @@ + + + + + + Time Series Axis | Chart.js + + + + + + + +

# Time Series Axis

The time series scale extends from the time scale and supports all the same options. However, for the time series scale, each data point is spread equidistant.

# Example

const chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            x: {
+                type: 'timeseries',
+            }
+        }
+    }
+});
+

# More details

Please see the time scale documentation for all other details.

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/index.html new file mode 100644 index 0000000..bd347c2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/index.html @@ -0,0 +1,122 @@ + + + + + + Axes | Chart.js + + + + + + + +

# Axes

Axes are an integral part of a chart. They are used to determine how data maps to a pixel value on the chart. In a cartesian chart, there is 1 or more X-axis and 1 or more Y-axis to map points onto the 2-dimensional canvas. These axes are known as 'cartesian axes'.

In a radial chart, such as a radar chart or a polar area chart, there is a single axis that maps points in the angular and radial directions. These are known as 'radial axes'.

Scales in Chart.js >v2.0 are significantly more powerful, but also different than those of v1.0.

  • Multiple X & Y axes are supported.
  • A built-in label auto-skip feature detects would-be overlapping ticks and labels and removes every nth label to keep things displaying normally.
  • Scale titles are supported.
  • New scale types can be extended without writing an entirely new chart type.

# Default scales

The default scaleId's for carterian Graficas are 'x' and 'y'. For radial Graficas: 'r'. +Each dataset is mapped to a scale for each axis (x, y or r) it requires. The scaleId's that a dataset is mapped to, is determined by the xAxisID, yAxisID or rAxisID. +If the ID for an axis is not specified, first scale for that axis is used. If no scale for an axis is found, a new scale is created.

Some examples:

The following chart will have 'x' and 'y' scales:

let chart = new Chart(ctx, {
+  type: 'line'
+});
+

The following chart will have scales 'x' and 'myScale':

let chart = new Chart(ctx, {
+  type: 'bar',
+  data: {
+    datasets: [{
+      data: [1, 2, 3]
+    }]
+  },
+  options: {
+    scales: {
+      myScale: {
+        type: 'logarithmic',
+        position: 'right', // `axis` is determined by the position as `'y'`
+      }
+    }
+  }
+});
+

The following chart will have scales 'xAxis' and 'yAxis':

let chart = new Chart(ctx, {
+  type: 'bar',
+  data: {
+    datasets: [{
+      yAxisID: 'yAxis'
+    }]
+  },
+  options: {
+    scales: {
+      xAxis: {
+        // The axis for this scale is determined from the first letter of the id as `'x'`
+        // It is recommended to specify `position` and / or `axis` explicitly.
+        type: 'time',
+      }
+    }
+  }
+});
+

The following chart will have 'r' scale:

let chart = new Chart(ctx, {
+  type: 'radar'
+});
+

The following chart will have 'myScale' scale:

let chart = new Chart(ctx, {
+  type: 'radar',
+  scales: {
+    myScale: {
+      axis: 'r'
+    }
+  }
+});
+

# Common Configuration

Note

These are only the common options supported by all axes. Please see specific axis documentation for all of the available options for that axis.

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Tick Configuration

Note

These are only the common tick options supported by all axes. Please see specific axis documentation for all of the available tick options for that axis.

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

# Axis Range Settings

Given the number of axis range settings, it is important to understand how they all interact with each other.

The suggestedMax and suggestedMin settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.

let minDataValue = Math.min(mostNegativeValue, options.suggestedMin);
+let maxDataValue = Math.max(mostPositiveValue, options.suggestedMax);
+

In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the suggestedMin setting, it is ignored.

let chart = new Chart(ctx, {
+    type: 'line',
+    data: {
+        datasets: [{
+            label: 'First dataset',
+            data: [0, 20, 40, 50]
+        }],
+        labels: ['January', 'February', 'March', 'April']
+    },
+    options: {
+        scales: {
+            y: {
+                suggestedMin: 50,
+                suggestedMax: 100
+            }
+        }
+    }
+});
+

In contrast to the suggested* settings, the min and max settings set explicit ends to the axes. When these are set, some data points may not be visible.

# Stacking

By default data is not stacked. If the stacked option of the value scale (y-axis on horizontal chart) is true, positive and negative values are stacked separately. Additionally a stack option can be defined per dataset to further divide into stack groups more.... +For some Graficas, you might want to stack positive and negative values together. That can be achieved by specifying stacked: 'single'.

# Callbacks

There are a number of config callbacks that can be used to change parameters in the scale at different points in the update process. The options are supplied at the top level of the axis options.

Namespace: options.scales[scaleId]

Name Arguments Description
beforeUpdate axis Callback called before the update process starts.
beforeSetDimensions axis Callback that runs before dimensions are set.
afterSetDimensions axis Callback that runs after dimensions are set.
beforeDataLimits axis Callback that runs before data limits are determined.
afterDataLimits axis Callback that runs after data limits are determined.
beforeBuildTicks axis Callback that runs before ticks are created.
afterBuildTicks axis Callback that runs after ticks are created. Useful for filtering ticks.
beforeTickToLabelConversion axis Callback that runs before ticks are converted into strings.
afterTickToLabelConversion axis Callback that runs after ticks are converted into strings.
beforeCalculateLabelRotation axis Callback that runs before tick rotation is determined.
afterCalculateLabelRotation axis Callback that runs after tick rotation is determined.
beforeFit axis Callback that runs before the scale fits to the canvas.
afterFit axis Callback that runs after the scale fits to the canvas.
afterUpdate axis Callback that runs at the end of the update process.

# Updating Axis Defaults

The default configuration for a scale can be easily changed. All you need to do is set the new options to Chart.defaults.scales[type].

For example, to set the minimum value of 0 for all linear scales, you would do the following. Any linear scales created after this time would now have a minimum of 0.

Chart.defaults.scales.linear.min = 0;
+

# Creating New Axes

To create a new axis, see the developer docs.

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/labelling.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/labelling.html new file mode 100644 index 0000000..9e0e578 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/labelling.html @@ -0,0 +1,70 @@ + + + + + + Labeling Axes | Chart.js + + + + + + + +

# Labeling Axes

When creating a chart, you want to tell the viewer what data they are viewing. To do this, you need to label the axis.

# Scale Title Configuration

Namespace: options.scales[scaleId].title, it defines options for the scale title. Note that this only applies to cartesian axes.

Name Type Default Description
display boolean false If true, display the axis title.
align string 'center' Alignment of the axis title. Possible options are 'start', 'center' and 'end'
text string|string[] '' The text for the title. (i.e. "# of People" or "Response Choices").
color Color Chart.defaults.color Color of label.
font Font Chart.defaults.font See Fonts
padding Padding 4 Padding to apply around scale labels. Only top, bottom and y are implemented.

# Creating Custom Tick Formats

It is also common to want to change the tick marks to include information about the data type. For example, adding a dollar sign ('$'). +To do this, you need to override the ticks.callback method in the axis configuration.

The method receives 3 arguments:

  • value - the tick value in the internal data format of the associated scale.
  • index - the tick index in the ticks array.
  • ticks - the array containing all of the tick objects.

The call to the method is scoped to the scale. this inside the method is the scale object.

If the callback returns null or undefined the associated grid line will be hidden.

TIP

The category axis, which is the default x-axis for line and bar Graficas, uses the index as internal data format. For accessing the label, use this.getLabelForValue(value). API: getLabelForValue

In the following example, every label of the Y-axis would be displayed with a dollar sign at the front.

const chart = new Chart(ctx, {
+    type: 'line',
+    data: data,
+    options: {
+        scales: {
+            y: {
+                ticks: {
+                    // Include a dollar sign in the ticks
+                    callback: function(value, index, ticks) {
+                        return '$' + value;
+                    }
+                }
+            }
+        }
+    }
+});
+

Keep in mind that overriding ticks.callback means that you are responsible for all formatting of the label. Depending on your use case, you may want to call the default formatter and then modify its output. In the example above, that would look like:

                        // call the default formatter, forwarding `this`
+                        return '$' + Chart.Ticks.formatters.numeric.apply(this, [value, index, ticks]);
+

Related samples:

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/index.html new file mode 100644 index 0000000..fe06884 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/index.html @@ -0,0 +1,243 @@ + + + + + + Radial Axes | Chart.js + + + + + + + +

# Radial Axes

Radial axes are used specifically for the radar and polar area chart types. These axes overlay the chart area, rather than being positioned on one of the edges. One radial axis is included by default in Chart.js.

# Visual Componentes

A radial axis is composed of visual Componentes that can be individually configured. These Componentes are:

# Angle Lines

The grid lines for an axis are drawn on the chart area. They stretch out from the center towards the edge of the canvas. In the example below, they are red.

const config = {
+  type: 'radar',
+  data,
+  options: {
+    scales: {
+      r: {
+        angleLines: {
+          color: 'red'
+        }
+      }
+    }
+  }
+};

# Grid Lines

The grid lines for an axis are drawn on the chart area. In the example below, they are red.

const config = {
+  type: 'radar',
+  data,
+  options: {
+    scales: {
+      r: {
+        grid: {
+          color: 'red'
+        }
+      }
+    }
+  }
+};

# Point Labels

The point labels indicate the value for each angle line. In the example below, they are red.

const config = {
+  type: 'radar',
+  data,
+  options: {
+    scales: {
+      r: {
+        pointLabels: {
+          color: 'red'
+        }
+      }
+    }
+  }
+};

# Ticks

The ticks are used to label values based on how far they are from the center of the axis. In the example below, they are red.

const config = {
+  type: 'radar',
+  data,
+  options: {
+    scales: {
+      r: {
+        ticks: {
+          color: 'red'
+        }
+      }
+    }
+  }
+};
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/linear.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/linear.html new file mode 100644 index 0000000..08131fa --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/radial/linear.html @@ -0,0 +1,84 @@ + + + + + + Linear Radial Axis | Chart.js + + + + + + + +

# Linear Radial Axis

The linear radial scale is used to chart numerical data. As the name suggests, linear interpolation is used to determine where a value lies in relation to the center of the axis.

The following additional configuration options are provided by the radial linear scale.

# Configuration Options

# Linear Radial Axis specific options

Namespace: options.scales[scaleId]

Name Type Default Description
animate boolean true Whether to animate scaling the chart from the centre
angleLines object Angle line configuration. more...
beginAtZero boolean false If true, scale will include 0 if it is not already included.
pointLabels object Point label configuration. more...
startAngle number 0 Starting angle of the scale. In degrees, 0 is at top.

# Common options to all axes

Namespace: options.scales[scaleId]

Name Type Default Description
type string Type of scale being employed. Custom scales can be created and Registroed with a string key. This allows changing the type of an axis for a chart.
alignToPixels boolean false Align pixel values to device pixels.
backgroundColor Color Background color of the scale area.
display boolean|string true Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible.
grid object Grid line configuration. more...
min number User defined minimum number for the scale, overrides minimum value from data. more...
max number User defined maximum number for the scale, overrides maximum value from data. more...
reverse boolean false Reverse the scale.
stacked boolean|string false Should the data be stacked. more...
suggestedMax number Adjustment used when calculating the maximum data value. more...
suggestedMin number Adjustment used when calculating the minimum data value. more...
ticks object Tick configuration. more...
weight number 0 The weight used to sort the axis. Higher weights are further away from the chart area.

# Tick Configuration

# Linear Radial Axis specific tick options

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
count number Yes undefined The number of ticks to generate. If specified, this overrides the automatic generation.
format object Yes The Intl.NumberFormat (opens new window) options used by the default label formatter
maxTicksLimit number Yes 11 Maximum number of ticks and gridlines to show.
precision number Yes If defined and stepSize is not specified, the step size will be rounded to this many decimal places.
stepSize number Yes User defined fixed step size for the scale. more...

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

The scriptable context is described in Options section.

# Grid Line Configuration

Namespace: options.scales[scaleId].grid, it defines options for the grid lines of the axis.

Name Type Scriptable Indexable Default Description
borderDash number[] [] Length and spacing of dashes on grid lines. See MDN (opens new window).
borderDashOffset number Yes 0.0 Offset for line dashes. See MDN (opens new window).
circular boolean false If true, gridlines are circular (on radar and polar area Graficas only).
color Color Yes Yes Chart.defaults.borderColor The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line, and so on.
display boolean true If false, do not display grid lines for this axis.
lineWidth number Yes Yes 1 Stroke width of grid lines.

The scriptable context is described in Options section.

# Axis Range Settings

Given the number of axis range settings, it is important to understand how they all interact with each other.

The suggestedMax and suggestedMin settings only change the data values that are used to scale the axis. These are useful for extending the range of the axis while maintaining the auto fit behaviour.

let minDataValue = Math.min(mostNegativeValue, options.ticks.suggestedMin);
+let maxDataValue = Math.max(mostPositiveValue, options.ticks.suggestedMax);
+

In this example, the largest positive value is 50, but the data maximum is expanded out to 100. However, because the lowest data value is below the suggestedMin setting, it is ignored.

let chart = new Chart(ctx, {
+    type: 'radar',
+    data: {
+        datasets: [{
+            label: 'First dataset',
+            data: [0, 20, 40, 50]
+        }],
+        labels: ['January', 'February', 'March', 'April']
+    },
+    options: {
+        scales: {
+            r: {
+                suggestedMin: 50,
+                suggestedMax: 100
+            }
+        }
+    }
+});
+

In contrast to the suggested* settings, the min and max settings set explicit ends to the axes. When these are set, some data points may not be visible.

# Step Size

If set, the scale ticks will be enumerated by multiple of stepSize, having one tick per increment. If not set, the ticks are labeled automatically using the nice numbers algorithm.

This example sets up a chart with a y axis that creates ticks at 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.

let options = {
+    scales: {
+        r: {
+            max: 5,
+            min: 0,
+            ticks: {
+                stepSize: 0.5
+            }
+        }
+    }
+};
+

# Angle Line Options

The following options are used to configure angled lines that radiate from the center of the chart to the point labels. +Namespace: options.scales[scaleId].angleLines

Name Type Scriptable Default Description
display boolean true If true, angle lines are shown.
color Color Yes Chart.defaults.borderColor Color of angled lines.
lineWidth number Yes 1 Width of angled lines.
borderDash number[] Yes1 [] Length and spacing of dashes on angled lines. See MDN (opens new window).
borderDashOffset number Yes 0.0 Offset for line dashes. See MDN (opens new window).
  1. the borderDash setting only accepts a static value or a function. Passing an array of arrays is not supported.

The scriptable context is described in Options section.

# Point Label Options

The following options are used to configure the point labels that are shown on the perimeter of the scale. +Namespace: options.scales[scaleId].pointLabels

Name Type Scriptable Default Description
backdropColor Color true undefined Background color of the point label.
backdropPadding Padding 2 Padding of label backdrop.
borderRadius number|object true 0 Border radius of the point label
display boolean true If true, point labels are shown.
callback function Callback function to transform data labels to point labels. The default implementation simply returns the current string.
color Color Yes Chart.defaults.color Color of label.
font Font Yes Chart.defaults.font See Fonts
padding number Yes 5 Padding between chart and point labels.
centerPointLabels boolean false If true, point labels are centered.

The scriptable context is described in Options section.

# Internal data format

Internally, the linear radial scale uses numeric data

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/axes/styling.html b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/styling.html new file mode 100644 index 0000000..887a9d7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/axes/styling.html @@ -0,0 +1,51 @@ + + + + + + Styling | Chart.js + + + + + + + +

# Styling

There are a number of options to allow styling an axis. There are settings to control grid lines and ticks.

# Grid Line Configuration

Namespace: options.scales[scaleId].grid, it defines options for the grid lines that run perpendicular to the axis.

Name Type Scriptable Indexable Default Description
borderColor Color Chart.defaults.borderColor The color of the border line.
borderWidth number 1 The width of the border line.
borderDash number[] Yes [] Length and spacing of dashes on grid lines. See MDN (opens new window).
borderDashOffset number Yes 0.0 Offset for line dashes. See MDN (opens new window).
circular boolean false If true, gridlines are circular (on radar and polar area Graficas only).
color Color Yes Yes Chart.defaults.borderColor The color of the grid lines. If specified as an array, the first color applies to the first grid line, the second to the second grid line, and so on.
display boolean true If false, do not display grid lines for this axis.
drawBorder boolean true If true, draw a border at the edge between the axis and the chart area.
drawOnChartArea boolean true If true, draw lines on the chart area inside the axis lines. This is useful when there are multiple axes and you need to control which grid lines are drawn.
drawTicks boolean true If true, draw lines beside the ticks in the axis area beside the chart.
lineWidth number Yes Yes 1 Stroke width of grid lines.
offset boolean false If true, grid lines will be shifted to be between labels. This is set to true for a bar chart by default.
tickBorderDash number[] Length and spacing of the tick mark line. If not set, defaults to the grid line borderDash value.
tickBorderDashOffset number Yes Yes Offset for the line dash of the tick mark. If unset, defaults to the grid line borderDashOffset value
tickColor Color Yes Yes Color of the tick line. If unset, defaults to the grid line color.
tickLength number 8 Length in pixels that the grid lines will draw into the axis area.
tickWidth number Yes Yes Width of the tick mark in pixels. If unset, defaults to the grid line width.
z number 0 z-index of gridline layer. Values <= 0 are drawn under datasets, > 0 on top.

The scriptable context is described in Options section.

# Tick Configuration

# Common tick options to all axes

Namespace: options.scales[scaleId].ticks

Name Type Scriptable Default Description
backdropColor Color Yes 'rgba(255, 255, 255, 0.75)' Color of label backdrops.
backdropPadding Padding 2 Padding of label backdrop.
callback function Returns the string representation of the tick value as it should be displayed on the chart. See callback.
display boolean true If true, show tick labels.
color Color Yes Chart.defaults.color Color of ticks.
font Font Yes Chart.defaults.font See Fonts
major object {} Major ticks configuration.
padding number 3 Sets the offset of the tick labels from the axis
showLabelBackdrop boolean Yes true for radial scale, false otherwise If true, draw a background behind the tick labels.
textStrokeColor Color Yes `` The color of the stroke around the text.
textStrokeWidth number Yes 0 Stroke width around the text.
z number 0 z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top.

The scriptable context is described in Options section.

# Major Tick Configuration

Namespace: options.scales[scaleId].ticks.major, it defines options for the major tick marks that are generated by the axis.

Name Type Default Description
enabled boolean false If true, major ticks are generated. A major tick will affect autoskipping and major will be defined on ticks in the scriptable options context.
Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/area.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/area.html new file mode 100644 index 0000000..d4e1bc8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/area.html @@ -0,0 +1,97 @@ + + + + + + Area Chart | Chart.js + + + + + + + +

# Area Chart

Both line and radar Graficas support a fill option on the dataset object which can be used to create space between two datasets or a dataset and a boundary, i.e. the scale origin, start, or end (see filling modes).

Note

This feature is implemented by the filler plugin (opens new window).

# Filling modes

Mode Type Values
Absolute dataset index number 1, 2, 3, ...
Relative dataset index string '-1', '-2', '+1', ...
Boundary string 'start', 'end', 'origin'
Disabled 1 boolean false
Stacked value below string 'stack'
Axis value object { value: number; }
Shape (fill inside line) string 'shape'

1 for backward compatibility, fill: true is equivalent to fill: 'origin'

# Example

new Chart(ctx, {
+    data: {
+        datasets: [
+            {fill: 'origin'},      // 0: fill to 'origin'
+            {fill: '+2'},          // 1: fill to dataset 3
+            {fill: 1},             // 2: fill to dataset 1
+            {fill: false},         // 3: no fill
+            {fill: '-2'},          // 4: fill to dataset 2
+            {fill: {value: 25}}    // 5: fill to axis value 25
+        ]
+    }
+});
+

If you need to support multiple colors when filling from one dataset to another, you may specify an object with the following option :

Param Type Description
target number, string, boolean, object The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries.
above Color If no color is set, the default color will be the background color of the chart.
below Color Same as the above.

# Example with multiple colors

new Chart(ctx, {
+    data: {
+        datasets: [
+            {
+              fill: {
+                target: 'origin',
+                above: 'rgb(255, 0, 0)',   // Area will be red above the origin
+                below: 'rgb(0, 0, 255)'    // And blue below the origin
+              }
+            }
+        ]
+    }
+});
+

# Configuration

Namespace: options.plugins.filler

Option Type Default Description
drawTime string beforeDatasetDraw Filler draw time. Supported values: 'beforeDraw', 'beforeDatasetDraw', 'beforeDatasetsDraw'
propagate boolean true Fill propagation when target is hidden.

# propagate

propagate takes a boolean value (default: true).

If true, the fill area will be recursively extended to the visible target defined by the fill value of hidden dataset targets:

# Example using propagate

new Chart(ctx, {
+    data: {
+        datasets: [
+            {fill: 'origin'},   // 0: fill to 'origin'
+            {fill: '-1'},       // 1: fill to dataset 0
+            {fill: 1},          // 2: fill to dataset 1
+            {fill: false},      // 3: no fill
+            {fill: '-2'}        // 4: fill to dataset 2
+        ]
+    },
+    options: {
+        plugins: {
+            filler: {
+                propagate: true
+            }
+        }
+    }
+});
+

propagate: true: +-if dataset 2 is hidden, dataset 4 will fill to dataset 1 +-if dataset 2 and 1 are hidden, dataset 4 will fill to 'origin'

propagate: false: +-if dataset 2 and/or 4 are hidden, dataset 4 will not be filled

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bar.html new file mode 100644 index 0000000..62ad961 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bar.html @@ -0,0 +1,253 @@ + + + + + + Bar Chart | Chart.js + + + + + + + +

# Bar Chart

A bar chart provides a way of showing data values represented as vertical bars. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.

const config = {
+  type: 'bar',
+  data: data,
+  options: {
+    scales: {
+      y: {
+        beginAtZero: true
+      }
+    }
+  },
+};

# Dataset Properties

Namespaces:

  • data.datasets[index] - options for this dataset only
  • options.datasets.bar - options for all bar datasets
  • options.elements.bar - options for all bar elements
  • options - options for the whole chart

The bar chart allows a number of properties to be specified for each dataset. +These are used to set display properties for a specific dataset. For example, +the color of the bars is generally set this way. +Only the data option needs to be specified in the dataset namespace.

Name Type Scriptable Indexable Default
backgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
base number Yes Yes
barPercentage number - - 0.9
barThickness number|string - -
borderColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
borderSkipped string|boolean Yes Yes 'start'
borderWidth number|object Yes Yes 0
borderRadius number|object Yes Yes 0
categoryPercentage number - - 0.8
clip number|object|false - -
data object|object[]| number[]|string[] - - required
grouped boolean - - true
hoverBackgroundColor Color Yes Yes
hoverBorderColor Color Yes Yes
hoverBorderWidth number Yes Yes 1
hoverBorderRadius number Yes Yes 0
indexAxis string - - 'x'
inflateAmount number|'auto' Yes Yes 'auto'
maxBarThickness number - -
minBarLength number - -
label string - - ''
order number - - 0
pointStyle pointStyle Yes - 'circle'
skipNull boolean - -
stack string - - 'bar'
xAxisID string - - first x axis
yAxisID string - - first y axis

All these values, if undefined, fallback to the scopes described in option resolution

# Example dataset configuration

data: {
+    datasets: [{
+        barPercentage: 0.5,
+        barThickness: 6,
+        maxBarThickness: 8,
+        minBarLength: 2,
+        data: [10, 20, 30, 40, 50, 60, 70]
+    }]
+};
+

# General

Name Description
base Base value for the bar in data units along the value axis. If not set, defaults to the value axis base value.
clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
grouped Should the bars be grouped on index axis. When true, all the datasets at same index value will be placed next to each other centering on that index value. When false, each bar is placed on its actual index-axis value.
indexAxis The base axis of the dataset. 'x' for vertical bars and 'y' for horizontal bars.
label The label for the dataset which appears in the legend and tooltips.
order The drawing order of dataset. Also affects order for stacking, tooltip and legend. more
skipNull If true, null or undefined values will not be used for spacing calculations when determining bar size.
stack The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). more
xAxisID The ID of the x-axis to plot this dataset on.
yAxisID The ID of the y-axis to plot this dataset on.

# Styling

The style of each bar can be controlled with the following properties:

Name Description
backgroundColor The bar background color.
borderColor The bar border color.
borderSkipped The edge to skip when drawing bar.
borderWidth The bar border width (in pixels).
borderRadius The bar border radius (in pixels).
minBarLength Set this to ensure that bars have a minimum length in pixels.
pointStyle Style of the point for legend. more...

All these values, if undefined, fallback to the associated elements.bar.* options.

# borderSkipped

This setting is used to avoid drawing the bar stroke at the base of the fill, or disable the border radius. +In general, this does not need to be changed except when creating chart types +that derive from a bar chart.

Note

For negative bars in a vertical chart, top and bottom are flipped. Same goes for left and right in a horizontal chart.

Options are:

  • 'start'
  • 'end'
  • 'middle' (only valid on stacked bars: the borders between bars are skipped)
  • 'bottom'
  • 'left'
  • 'top'
  • 'right'
  • false (don't skip any borders)
  • true (skip all borders)

# borderWidth

If this value is a number, it is applied to all sides of the rectangle (left, top, right, bottom), except borderSkipped. If this value is an object, the left property defines the left border width. Similarly, the right, top, and bottom properties can also be specified. Omitted borders and borderSkipped are skipped.

# borderRadius

If this value is a number, it is applied to all corners of the rectangle (topLeft, topRight, bottomLeft, bottomRight), except corners touching the borderSkipped. If this value is an object, the topLeft property defines the top-left corners border radius. Similarly, the topRight, bottomLeft, and bottomRight properties can also be specified. Omitted corners and those touching the borderSkipped are skipped. For example if the top border is skipped, the border radius for the corners topLeft and topRight will be skipped as well.

Stacked Graficas

When the border radius is supplied as a number and the chart is stacked, the radius will only be applied to the bars that are at the edges of the stack or where the bar is floating. The object syntax can be used to override this behavior.

# inflateAmount

This option can be used to inflate the rects that are used to draw the bars. This can be used to hide artifacts between bars when barPercentage(#barpercentage) * categoryPercentage(#categorypercentage) is 1. The default value 'auto' should work in most cases.

# Interactions

The interaction with each bar can be controlled with the following properties:

Name Description
hoverBackgroundColor The bar background color when hovered.
hoverBorderColor The bar border color when hovered.
hoverBorderWidth The bar border width when hovered (in pixels).
hoverBorderRadius The bar border radius when hovered (in pixels).

All these values, if undefined, fallback to the associated elements.bar.* options.

# barPercentage

Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other. more...

# categoryPercentage

Percent (0-1) of the available width each category should be within the sample width. more...

# barThickness

If this value is a number, it is applied to the width of each bar, in pixels. When this is enforced, barPercentage and categoryPercentage are ignored.

If set to 'flex', the base sample widths are calculated automatically based on the previous and following samples so that they take the full available widths without overlap. Then, bars are sized using barPercentage and categoryPercentage. There is no gap when the percentage options are 1. This mode generates bars with different widths when data are not evenly spaced.

If not set (default), the base sample widths are calculated using the smallest interval that prevents bar overlapping, and bars are sized using barPercentage and categoryPercentage. This mode always generates bars equally sized.

# maxBarThickness

Set this to ensure that bars are not sized thicker than this.

# Scale Configuration

The bar chart sets unique default values for the following configuration from the associated scale options:

Name Type Default Description
offset boolean true If true, extra space is added to both edges and the axis is scaled to fit into the chart area.
grid.offset boolean true If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval. If false, the grid line will go right down the middle of the bars. more...

# Example scale configuration

options = {
+    scales: {
+        x: {
+            grid: {
+              offset: true
+            }
+        }
+    }
+};
+

# Offset Grid Lines

If true, the bars for a particular data point fall between the grid lines. The grid line will move to the left by one half of the tick interval, which is the space between the grid lines. If false, the grid line will go right down the middle of the bars. This is set to true for a category scale in a bar chart while false for other scales or chart types by default.

# Default Options

It is common to want to apply a configuration setting to all created bar Graficas. The global bar chart settings are stored in Chart.overrides.bar. Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.

# barPercentage vs categoryPercentage

The following shows the relationship between the bar percentage option and the category percentage option.

// categoryPercentage: 1.0
+// barPercentage: 1.0
+Bar:        | 1.0 | 1.0 |
+Category:   |    1.0    |
+Sample:     |===========|
+// categoryPercentage: 1.0
+// barPercentage: 0.5
+Bar:          |.5|  |.5|
+Category:  |      1.0     |
+Sample:    |==============|
+// categoryPercentage: 0.5
+// barPercentage: 1.0
+Bar:             |1.0||1.0|
+Category:        |   .5   |
+Sample:     |==================|
+

# Data Structure

All of the supported data structures can be used with bar Graficas.

# Stacked Bar Chart

Bar Graficas can be configured into stacked bar Graficas by changing the settings on the X and Y axes to enable stacking. Stacked bar Graficas can be used to show how one data series is made up of a number of smaller pieces.

const stackedBar = new Chart(ctx, {
+    type: 'bar',
+    data: data,
+    options: {
+        scales: {
+            x: {
+                stacked: true
+            },
+            y: {
+                stacked: true
+            }
+        }
+    }
+});
+

# Horizontal Bar Chart

A horizontal bar chart is a variation on a vertical bar chart. It is sometimes used to show trend data, and the comparison of multiple data sets side by side. +To achieve this you will have to set the indexAxis property in the options object to 'y'. +The default for this property is 'x' and thus will show vertical bars.

const config = {
+  type: 'bar',
+  data,
+  options: {
+    indexAxis: 'y',
+  }
+};

# Horizontal Bar Chart config Options

The configuration options for the horizontal bar chart are the same as for the bar chart. However, any options specified on the x-axis in a bar chart, are applied to the y-axis in a horizontal bar chart.

# Internal data format

{x, y, _custom} where _custom is an optional object defining stacked bar properties: {start, end, barStart, barEnd, min, max}. start and end are the input values. Those two are repeated in barStart (closer to origin), barEnd (further from origin), min and max.

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bubble.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bubble.html new file mode 100644 index 0000000..fd3c091 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/bubble.html @@ -0,0 +1,99 @@ + + + + + + Bubble Chart | Chart.js + + + + + + + +

# Bubble Chart

A bubble chart is used to display three dimensions of data at the same time. The location of the bubble is determined by the first two dimensions and the corresponding horizontal and vertical axes. The third dimension is represented by the size of the individual bubbles.

const config = {
+  type: 'bubble',
+  data: data,
+  options: {}
+};

# Dataset Properties

Namespaces:

  • data.datasets[index] - options for this dataset only
  • options.datasets.bubble - options for all bubble datasets
  • options.elements.point - options for all point elements
  • options - options for the whole chart

The bubble chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of the bubbles is generally set this way.

Name Type Scriptable Indexable Default
backgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
borderColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
borderWidth number Yes Yes 3
clip number|object|false - - undefined
data object[] - - required
drawActiveElementsOnTop boolean Yes Yes true
hoverBackgroundColor Color Yes Yes undefined
hoverBorderColor Color Yes Yes undefined
hoverBorderWidth number Yes Yes 1
hoverRadius number Yes Yes 4
hitRadius number Yes Yes 1
label string - - undefined
order number - - 0
pointStyle pointStyle Yes Yes 'circle'
rotation number Yes Yes 0
radius number Yes Yes 3

All these values, if undefined, fallback to the scopes described in option resolution

# General

Name Description
clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
drawActiveElementsOnTop Draw the active bubbles of a dataset over the other bubbles of the dataset
label The label for the dataset which appears in the legend and tooltips.
order The drawing order of dataset. Also affects order for tooltip and legend. more

# Styling

The style of each bubble can be controlled with the following properties:

Name Description
backgroundColor bubble background color.
borderColor bubble border color.
borderWidth bubble border width (in pixels).
pointStyle bubble shape style.
rotation bubble rotation (in degrees).
radius bubble radius (in pixels).

All these values, if undefined, fallback to the associated elements.point.* options.

# Interactions

The interaction with each bubble can be controlled with the following properties:

Name Description
hitRadius bubble additional radius for hit detection (in pixels).
hoverBackgroundColor bubble background color when hovered.
hoverBorderColor bubble border color when hovered.
hoverBorderWidth bubble border width when hovered (in pixels).
hoverRadius bubble additional radius when hovered (in pixels).

All these values, if undefined, fallback to the associated elements.point.* options.

# Default Options

We can also change the default values for the Bubble chart type. Doing so will give all bubble Graficas created after this point the new defaults. The default configuration for the bubble chart can be accessed at Chart.overrides.bubble.

# Data Structure

Bubble chart datasets need to contain a data array of points, each point represented by an object containing the following properties:

{
+    // X Value
+    x: number,
+    // Y Value
+    y: number,
+    // Bubble radius in pixels (not scaled).
+    r: number
+}
+

Important: the radius property, r is not scaled by the chart, it is the raw radius in pixels of the bubble that is drawn on the canvas.

# Internal data format

{x, y, _custom} where _custom is the radius.

Last Updated: 8/3/2022, 12:46:38 PM
+ + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/doughnut.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/doughnut.html new file mode 100644 index 0000000..0ee9538 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/doughnut.html @@ -0,0 +1,146 @@ + + + + + + Doughnut and Pie Graficas | Chart.js + + + + + + + +

# Doughnut and Pie Graficas

Pie and doughnut Graficas are probably the most commonly used Graficas. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.

They are excellent at showing the relational proportions between data.

Pie and doughnut Graficas are effectively the same class in Chart.js, but have one different default value - their cutout. This equates to what portion of the inner should be cut out. This defaults to 0 for pie Graficas, and '50%' for doughnuts.

They are also Registroed under two aliases in the Chart core. Other than their different default value, and different alias, they are exactly the same.

    # Dataset Properties

    Namespaces:

    • data.datasets[index] - options for this dataset only
    • options.datasets.doughnut - options for all doughnut datasets
    • options.datasets.pie - options for all pie datasets
    • options.elements.arc - options for all arc elements
    • options - options for the whole chart

    The doughnut/pie chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colours of the dataset's arcs are generally set this way.

    Name Type Scriptable Indexable Default
    backgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    borderAlign 'center'|'inner' Yes Yes 'center'
    borderColor Color Yes Yes '#fff'
    borderJoinStyle 'round'|'bevel'|'miter' Yes Yes undefined
    borderRadius number|object Yes Yes 0
    borderWidth number Yes Yes 2
    circumference number - - undefined
    clip number|object|false - - undefined
    data number[] - - required
    hoverBackgroundColor Color Yes Yes undefined
    hoverBorderColor Color Yes Yes undefined
    hoverBorderJoinStyle 'round'|'bevel'|'miter' Yes Yes undefined
    hoverBorderWidth number Yes Yes undefined
    hoverOffset number Yes Yes 0
    offset number Yes Yes 0
    rotation number - - undefined
    spacing number - - 0
    weight number - - 1

    All these values, if undefined, fallback to the scopes described in option resolution

    # General

    Name Description
    circumference Per-dataset override for the sweep that the arcs cover
    clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
    rotation Per-dataset override for the starting angle to draw arcs from

    # Styling

    The style of each arc can be controlled with the following properties:

    Name Description
    backgroundColor arc background color.
    borderColor arc border color.
    borderJoinStyle arc border join style. See MDN (opens new window).
    borderWidth arc border width (in pixels).
    offset arc offset (in pixels).
    spacing Fixed arc offset (in pixels). Similar to offset but applies to all arcs.
    weight The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values.

    All these values, if undefined, fallback to the associated elements.arc.* options.

    # Border Alignment

    The following values are supported for borderAlign.

    • 'center' (default)
    • 'inner'

    When 'center' is set, the borders of arcs next to each other will overlap. When 'inner' is set, it is guaranteed that all borders will not overlap.

    # Border Radius

    If this value is a number, it is applied to all corners of the arc (outerStart, outerEnd, innerStart, innerRight). If this value is an object, the outerStart property defines the outer-start corner's border radius. Similarly, the outerEnd, innerStart, and innerEnd properties can also be specified.

    # Interactions

    The interaction with each arc can be controlled with the following properties:

    Name Description
    hoverBackgroundColor arc background color when hovered.
    hoverBorderColor arc border color when hovered.
    hoverBorderJoinStyle arc border join style when hovered. See MDN (opens new window).
    hoverBorderWidth arc border width when hovered (in pixels).
    hoverOffset arc offset when hovered (in pixels).

    All these values, if undefined, fallback to the associated elements.arc.* options.

    # Config Options

    These are the customisation options specific to Pie & Doughnut Graficas. These options are looked up on access, and form together with the global chart configuration the options of the chart.

    Name Type Default Description
    cutout number|string 50% - for doughnut, 0 - for pie The portion of the chart that is cut out of the middle. If string and ending with '%', percentage of the chart radius. number is considered to be pixels.
    radius number|string 100% The outer radius of the chart. If string and ending with '%', percentage of the maximum radius. number is considered to be pixels.
    rotation number 0 Starting angle to draw arcs from.
    circumference number 360 Sweep to allow arcs to cover.
    animation.animateRotate boolean true If true, the chart will animate in with a rotation animation. This property is in the options.animation object.
    animation.animateScale boolean false If true, will animate scaling the chart from the center outwards.

    # Default Options

    We can also change these default values for each Doughnut type that is created, this object is available at Chart.overrides.doughnut. Pie Graficas also have a clone of these defaults available to change at Chart.overrides.pie, with the only difference being cutout being set to 0.

    # Data Structure

    For a pie chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.

    You also need to specify an array of labels so that tooltips appear correctly.

    data = {
    +    datasets: [{
    +        data: [10, 20, 30]
    +    }],
    +    // These labels appear in the legend and in the tooltips when hovering different arcs
    +    labels: [
    +        'Red',
    +        'Yellow',
    +        'Blue'
    +    ]
    +};
    +
    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/index.html new file mode 100644 index 0000000..3b9eaea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/line.html new file mode 100644 index 0000000..52047bb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/line.html @@ -0,0 +1,177 @@ + + + + + + Line Chart | Chart.js + + + + + + + +

    # Line Chart

    A line chart is a way of plotting data points on a line. Often, it is used to show trend data, or the comparison of two data sets.

    const config = {
    +  type: 'line',
    +  data: data,
    +};

    # Dataset Properties

    Namespaces:

    • data.datasets[index] - options for this dataset only
    • options.datasets.line - options for all line datasets
    • options.elements.line - options for all line elements
    • options.elements.point - options for all point elements
    • options - options for the whole chart

    The line chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.

    Name Type Scriptable Indexable Default
    backgroundColor Color Yes - 'rgba(0, 0, 0, 0.1)'
    borderCapStyle string Yes - 'butt'
    borderColor Color Yes - 'rgba(0, 0, 0, 0.1)'
    borderDash number[] Yes - []
    borderDashOffset number Yes - 0.0
    borderJoinStyle 'round'|'bevel'|'miter' Yes - 'miter'
    borderWidth number Yes - 3
    clip number|object|false - - undefined
    cubicInterpolationMode string Yes - 'default'
    data object|object[]| number[]|string[] - - required
    drawActiveElementsOnTop boolean Yes Yes true
    fill boolean|string Yes - false
    hoverBackgroundColor Color Yes - undefined
    hoverBorderCapStyle string Yes - undefined
    hoverBorderColor Color Yes - undefined
    hoverBorderDash number[] Yes - undefined
    hoverBorderDashOffset number Yes - undefined
    hoverBorderJoinStyle 'round'|'bevel'|'miter' Yes - undefined
    hoverBorderWidth number Yes - undefined
    indexAxis string - - 'x'
    label string - - ''
    order number - - 0
    pointBackgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    pointBorderColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    pointBorderWidth number Yes Yes 1
    pointHitRadius number Yes Yes 1
    pointHoverBackgroundColor Color Yes Yes undefined
    pointHoverBorderColor Color Yes Yes undefined
    pointHoverBorderWidth number Yes Yes 1
    pointHoverRadius number Yes Yes 4
    pointRadius number Yes Yes 3
    pointRotation number Yes Yes 0
    pointStyle pointStyle Yes Yes 'circle'
    segment object - - undefined
    showLine boolean - - true
    spanGaps boolean|number - - undefined
    stack string - - 'line'
    stepped boolean|string - - false
    tension number - - 0
    xAxisID string - - first x axis
    yAxisID string - - first y axis

    All these values, if undefined, fallback to the scopes described in option resolution

    # General

    Name Description
    clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
    drawActiveElementsOnTop Draw the active points of a dataset over the other points of the dataset
    indexAxis The base axis of the dataset. 'x' for horizontal lines and 'y' for vertical lines.
    label The label for the dataset which appears in the legend and tooltips.
    order The drawing order of dataset. Also affects order for stacking, tooltip and legend. more
    stack The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). more
    xAxisID The ID of the x-axis to plot this dataset on.
    yAxisID The ID of the y-axis to plot this dataset on.

    # Point Styling

    The style of each point can be controlled with the following properties:

    Name Description
    pointBackgroundColor The fill color for points.
    pointBorderColor The border color for points.
    pointBorderWidth The width of the point border in pixels.
    pointHitRadius The pixel size of the non-displayed point that reacts to mouse events.
    pointRadius The radius of the point shape. If set to 0, the point is not rendered.
    pointRotation The rotation of the point in degrees.
    pointStyle Style of the point. more...

    All these values, if undefined, fallback first to the dataset options then to the associated elements.point.* options.

    # Line Styling

    The style of the line can be controlled with the following properties:

    Name Description
    backgroundColor The line fill color.
    borderCapStyle Cap style of the line. See MDN (opens new window).
    borderColor The line color.
    borderDash Length and spacing of dashes. See MDN (opens new window).
    borderDashOffset Offset for line dashes. See MDN (opens new window).
    borderJoinStyle Line joint style. See MDN (opens new window).
    borderWidth The line width (in pixels).
    fill How to fill the area under the line. See area Graficas.
    tension Bezier curve tension of the line. Set to 0 to draw straightlines. This option is ignored if monotone cubic interpolation is used.
    showLine If false, the line is not drawn for this dataset.
    spanGaps If true, lines will be drawn between points with no or null data. If false, points with null data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used.

    If the value is undefined, the values fallback to the associated elements.line.* options.

    # Interactions

    The interaction with each point can be controlled with the following properties:

    Name Description
    pointHoverBackgroundColor Point background color when hovered.
    pointHoverBorderColor Point border color when hovered.
    pointHoverBorderWidth Border width of point when hovered.
    pointHoverRadius The radius of the point when hovered.

    # cubicInterpolationMode

    The following interpolation modes are supported.

    • 'default'
    • 'monotone'

    The 'default' algorithm uses a custom weighted cubic interpolation, which produces pleasant curves for all types of datasets.

    The 'monotone' algorithm is more suited to y = f(x) datasets: it preserves monotonicity (or piecewise monotonicity) of the dataset being interpolated, and ensures local extremums (if any) stay at input data points.

    If left untouched (undefined), the global options.elements.line.cubicInterpolationMode property is used.

    # Segment

    Line segment styles can be overridden by scriptable options in the segment object. Currently all of the border* and backgroundColor options are supported. The segment styles are resolved for each section of the line between each point. undefined fallbacks to main line styles.

    TIP

    To be able to style gaps, you need the spanGaps option enabled.

    Context for the scriptable segment contains the following properties:

    • type: 'segment'
    • p0: first point element
    • p1: second point element
    • p0DataIndex: index of first point in the data array
    • p1DataIndex: index of second point in the data array
    • datasetIndex: dataset index

    Example usage

    # Stepped

    The following values are supported for stepped.

    • false: No Step Interpolation (default)
    • true: Step-before Interpolation (eq. 'before')
    • 'before': Step-before Interpolation
    • 'after': Step-after Interpolation
    • 'middle': Step-middle Interpolation

    If the stepped value is set to anything other than false, tension will be ignored.

    # Default Options

    It is common to want to apply a configuration setting to all created line Graficas. The global line chart settings are stored in Chart.overrides.line. Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.

    For example, to configure all line Graficas with spanGaps = true you would do:

    Chart.overrides.line.spanGaps = true;
    +

    # Data Structure

    All of the supported data structures can be used with line Graficas.

    # Stacked Area Chart

    Line Graficas can be configured into stacked area Graficas by changing the settings on the y-axis to enable stacking. Stacked area Graficas can be used to show how one data trend is made up of a number of smaller pieces.

    const stackedLine = new Chart(ctx, {
    +    type: 'line',
    +    data: data,
    +    options: {
    +        scales: {
    +            y: {
    +                stacked: true
    +            }
    +        }
    +    }
    +});
    +

    # Vertical Line Chart

    A vertical line chart is a variation on the horizontal line chart. +To achieve this you will have to set the indexAxis property in the options object to 'y'. +The default for this property is 'x' and thus will show horizontal lines.

    const config = {
    +  type: 'line',
    +  data: data,
    +  options: {
    +    indexAxis: 'y',
    +    scales: {
    +      x: {
    +        beginAtZero: true
    +      }
    +    }
    +  }
    +};

    # Config Options

    The configuration options for the vertical line chart are the same as for the line chart. However, any options specified on the x-axis in a line chart, are applied to the y-axis in a vertical line chart.

    # Internal data format

    {x, y}

    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/mixed.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/mixed.html new file mode 100644 index 0000000..f64dc7c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/mixed.html @@ -0,0 +1,149 @@ + + + + + + Mixed Chart Types | Chart.js + + + + + + + +

    # Mixed Chart Types

    With Chart.js, it is possible to create mixed Graficas that are a combination of two or more different chart types. A common example is a bar chart that also includes a line dataset.

    When creating a mixed chart, we specify the chart type on each dataset.

    const mixedChart = new Chart(ctx, {
    +    data: {
    +        datasets: [{
    +            type: 'bar',
    +            label: 'Bar Dataset',
    +            data: [10, 20, 30, 40]
    +        }, {
    +            type: 'line',
    +            label: 'Line Dataset',
    +            data: [50, 50, 50, 50],
    +        }],
    +        labels: ['January', 'February', 'March', 'April']
    +    },
    +    options: options
    +});
    +

    At this point, we have a chart rendering how we'd like. It's important to note that the default options for the Graficas are only considered at the dataset level and are not merged at the chart level in this case.

    const config = {
    +  type: 'scatter',
    +  data: data,
    +  options: {
    +    scales: {
    +      y: {
    +        beginAtZero: true
    +      }
    +    }
    +  }
    +};

    # Drawing order

    By default, datasets are drawn such that the first one is top-most. This can be altered by specifying order option to datasets. order defaults to 0. Note that this also affects stacking, legend, and tooltip. So it's essentially the same as reordering the datasets.

    The order property behaves like a weight instead of a specific order, so the higher the number, the sooner that dataset is drawn on the canvas and thus other datasets with a lower order number will get drawn over it.

    const mixedChart = new Chart(ctx, {
    +   type: 'bar',
    +   data: {
    +       datasets: [{
    +           label: 'Bar Dataset',
    +           data: [10, 20, 30, 40],
    +           // this dataset is drawn below
    +           order: 2
    +       }, {
    +           label: 'Line Dataset',
    +           data: [10, 10, 10, 10],
    +           type: 'line',
    +           // this dataset is drawn on top
    +           order: 1
    +       }],
    +       labels: ['January', 'February', 'March', 'April']
    +   },
    +   options: options
    +});
    +
    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/polar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/polar.html new file mode 100644 index 0000000..f2b1f40 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/polar.html @@ -0,0 +1,113 @@ + + + + + + Polar Area Chart | Chart.js + + + + + + + +

    # Polar Area Chart

    Polar area Graficas are similar to pie Graficas, but each segment has the same angle - the radius of the segment differs depending on the value.

    This type of chart is often useful when we want to show a comparison data similar to a pie chart, but also show a scale of values for context.

    const config = {
    +  type: 'polarArea',
    +  data: data,
    +  options: {}
    +};

    # Dataset Properties

    Namespaces:

    • data.datasets[index] - options for this dataset only
    • options.datasets.polarArea - options for all polarArea datasets
    • options.elements.arc - options for all arc elements
    • options - options for the whole chart

    The following options can be included in a polar area chart dataset to configure options for that specific dataset.

    Name Type Scriptable Indexable Default
    backgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    borderAlign 'center'|'inner' Yes Yes 'center'
    borderColor Color Yes Yes '#fff'
    borderJoinStyle 'round'|'bevel'|'miter' Yes Yes undefined
    borderWidth number Yes Yes 2
    clip number|object|false - - undefined
    data number[] - - required
    hoverBackgroundColor Color Yes Yes undefined
    hoverBorderColor Color Yes Yes undefined
    hoverBorderJoinStyle 'round'|'bevel'|'miter' Yes Yes undefined
    hoverBorderWidth number Yes Yes undefined
    circular boolean Yes Yes true

    All these values, if undefined, fallback to the scopes described in option resolution

    # General

    Name Description
    clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}

    # Styling

    The style of each arc can be controlled with the following properties:

    Name Description
    backgroundColor arc background color.
    borderColor arc border color.
    borderJoinStyle arc border join style. See MDN (opens new window).
    borderWidth arc border width (in pixels).
    circular By default the Arc is curved. If circular: false the Arc will be flat.

    All these values, if undefined, fallback to the associated elements.arc.* options.

    # Border Alignment

    The following values are supported for borderAlign.

    • 'center' (default)
    • 'inner'

    When 'center' is set, the borders of arcs next to each other will overlap. When 'inner' is set, it is guaranteed that all the borders do not overlap.

    # Interactions

    The interaction with each arc can be controlled with the following properties:

    Name Description
    hoverBackgroundColor arc background color when hovered.
    hoverBorderColor arc border color when hovered.
    hoverBorderJoinStyle arc border join style when hovered. See MDN (opens new window).
    hoverBorderWidth arc border width when hovered (in pixels).

    All these values, if undefined, fallback to the associated elements.arc.* options.

    # Config Options

    These are the customisation options specific to Polar Area Graficas. These options are looked up on access, and form together with the global chart default options the options of the chart.

    Name Type Default Description
    animation.animateRotate boolean true If true, the chart will animate in with a rotation animation. This property is in the options.animation object.
    animation.animateScale boolean true If true, will animate scaling the chart from the center outwards.

    The polar area chart uses the radialLinear scale. Additional configuration is provided via the scale.

    # Default Options

    We can also change these default values for each PolarArea type that is created, this object is available at Chart.overrides.polarArea. Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.

    For example, to configure all new polar area Graficas with animateScale = false you would do:

    Chart.overrides.polarArea.animation.animateScale = false;
    +

    # Data Structure

    For a polar area chart, datasets need to contain an array of data points. The data points should be a number, Chart.js will total all of the numbers and calculate the relative proportion of each.

    You also need to specify an array of labels so that tooltips appear correctly for each slice.

    data = {
    +    datasets: [{
    +        data: [10, 20, 30]
    +    }],
    +    // These labels appear in the legend and in the tooltips when hovering different arcs
    +    labels: [
    +        'Red',
    +        'Yellow',
    +        'Blue'
    +    ]
    +};
    +
    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/radar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/radar.html new file mode 100644 index 0000000..fc4b4ff --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/radar.html @@ -0,0 +1,155 @@ + + + + + + Radar Chart | Chart.js + + + + + + + +

    # Radar Chart

    A radar chart is a way of showing multiple data points and the variation between them.

    They are often useful for comparing the points of two or more different data sets.

    const config = {
    +  type: 'radar',
    +  data: data,
    +  options: {
    +    elements: {
    +      line: {
    +        borderWidth: 3
    +      }
    +    }
    +  },
    +};

    # Dataset Properties

    Namespaces:

    • data.datasets[index] - options for this dataset only
    • options.datasets.line - options for all line datasets
    • options.elements.line - options for all line elements
    • options.elements.point - options for all point elements
    • options - options for the whole chart

    The radar chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colour of a line is generally set this way.

    Name Type Scriptable Indexable Default
    backgroundColor Color Yes - 'rgba(0, 0, 0, 0.1)'
    borderCapStyle string Yes - 'butt'
    borderColor Color Yes - 'rgba(0, 0, 0, 0.1)'
    borderDash number[] Yes - []
    borderDashOffset number Yes - 0.0
    borderJoinStyle 'round'|'bevel'|'miter' Yes - 'miter'
    borderWidth number Yes - 3
    hoverBackgroundColor Color Yes - undefined
    hoverBorderCapStyle string Yes - undefined
    hoverBorderColor Color Yes - undefined
    hoverBorderDash number[] Yes - undefined
    hoverBorderDashOffset number Yes - undefined
    hoverBorderJoinStyle 'round'|'bevel'|'miter' Yes - undefined
    hoverBorderWidth number Yes - undefined
    clip number|object|false - - undefined
    data number[] - - required
    fill boolean|string Yes - false
    label string - - ''
    order number - - 0
    tension number - - 0
    pointBackgroundColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    pointBorderColor Color Yes Yes 'rgba(0, 0, 0, 0.1)'
    pointBorderWidth number Yes Yes 1
    pointHitRadius number Yes Yes 1
    pointHoverBackgroundColor Color Yes Yes undefined
    pointHoverBorderColor Color Yes Yes undefined
    pointHoverBorderWidth number Yes Yes 1
    pointHoverRadius number Yes Yes 4
    pointRadius number Yes Yes 3
    pointRotation number Yes Yes 0
    pointStyle pointStyle Yes Yes 'circle'
    spanGaps boolean - - undefined

    All these values, if undefined, fallback to the scopes described in option resolution

    # General

    Name Description
    clip How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
    label The label for the dataset which appears in the legend and tooltips.
    order The drawing order of dataset. Also affects order for tooltip and legend. more

    # Point Styling

    The style of each point can be controlled with the following properties:

    Name Description
    pointBackgroundColor The fill color for points.
    pointBorderColor The border color for points.
    pointBorderWidth The width of the point border in pixels.
    pointHitRadius The pixel size of the non-displayed point that reacts to mouse events.
    pointRadius The radius of the point shape. If set to 0, the point is not rendered.
    pointRotation The rotation of the point in degrees.
    pointStyle Style of the point. more...

    All these values, if undefined, fallback first to the dataset options then to the associated elements.point.* options.

    # Line Styling

    The style of the line can be controlled with the following properties:

    Name Description
    backgroundColor The line fill color.
    borderCapStyle Cap style of the line. See MDN (opens new window).
    borderColor The line color.
    borderDash Length and spacing of dashes. See MDN (opens new window).
    borderDashOffset Offset for line dashes. See MDN (opens new window).
    borderJoinStyle Line joint style. See MDN (opens new window).
    borderWidth The line width (in pixels).
    fill How to fill the area under the line. See area Graficas.
    tension Bezier curve tension of the line. Set to 0 to draw straight lines.
    spanGaps If true, lines will be drawn between points with no or null data. If false, points with null data will create a break in the line.

    If the value is undefined, the values fallback to the associated elements.line.* options.

    # Interactions

    The interaction with each point can be controlled with the following properties:

    Name Description
    pointHoverBackgroundColor Point background color when hovered.
    pointHoverBorderColor Point border color when hovered.
    pointHoverBorderWidth Border width of point when hovered.
    pointHoverRadius The radius of the point when hovered.

    # Scale Options

    The radar chart supports only a single scale. The options for this scale are defined in the scales.r property, which can be referenced from the Linear Radial Axis page.

    options = {
    +    scales: {
    +        r: {
    +            angleLines: {
    +                display: false
    +            },
    +            suggestedMin: 50,
    +            suggestedMax: 100
    +        }
    +    }
    +};
    +

    # Default Options

    It is common to want to apply a configuration setting to all created radar Graficas. The global radar chart settings are stored in Chart.overrides.radar. Changing the global options only affects Graficas created after the change. Existing Graficas are not changed.

    # Data Structure

    The data property of a dataset for a radar chart is specified as an array of numbers. Each point in the data array corresponds to the label at the same index.

    data: [20, 10]
    +

    For a radar chart, to provide context of what each point means, we include an array of strings that show around each point in the chart.

    data: {
    +    labels: ['Running', 'Swimming', 'Eating', 'Cycling'],
    +    datasets: [{
    +        data: [20, 10, 4, 2]
    +    }]
    +}
    +

    # Internal data format

    {x, y}

    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/charts/scatter.html b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/scatter.html new file mode 100644 index 0000000..4ad0939 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/charts/scatter.html @@ -0,0 +1,121 @@ + + + + + + Scatter Chart | Chart.js + + + + + + + +

    # Scatter Chart

    Scatter Graficas are based on basic line Graficas with the x axis changed to a linear axis. To use a scatter chart, data must be passed as objects containing X and Y properties. The example below creates a scatter chart with 4 points.

    const config = {
    +  type: 'scatter',
    +  data: data,
    +  options: {
    +    scales: {
    +      x: {
    +        type: 'linear',
    +        position: 'bottom'
    +      }
    +    }
    +  }
    +};

    # Dataset Properties

    Namespaces:

    • data.datasets[index] - options for this dataset only
    • options.datasets.scatter - options for all scatter datasets
    • options.elements.line - options for all line elements
    • options.elements.point - options for all point elements
    • options - options for the whole chart

    The scatter chart supports all of the same properties as the line chart. +By default, the scatter chart will override the showLine property of the line chart to false.

    The index scale is of the type linear. This means if you are using the labels array the values have to be numbers or parsable to numbers, the same applies to the object format for the keys.

    # Data Structure

    Unlike the line chart where data can be supplied in two different formats, the scatter chart only accepts data in a point format.

    data: [{
    +        x: 10,
    +        y: 20
    +    }, {
    +        x: 15,
    +        y: 10
    +    }]
    +

    # Internal data format

    {x, y}

    Last Updated: 8/3/2022, 12:46:38 PM
    + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/animations.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/animations.html new file mode 100644 index 0000000..9672647 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/animations.html @@ -0,0 +1,214 @@ + + + + + + Animations | Chart.js + + + + + + + +

    # Animations

    Chart.js animates Graficas out of the box. A number of options are provided to configure how the animation looks and how long it takes.

      # Animation configuration

      Animation configuration consists of 3 keys.

      Name Type Details
      animation object animation
      animations object animations
      transitions object transitions

      These keys can be configured in following paths:

      • `` - chart options
      • datasets[type] - dataset type options
      • overrides[type] - chart type options

      These paths are valid under defaults for global configuration and options for instance configuration.

      # animation

      The default configuration is defined here: core.animations.js

      Namespace: options.animation

      Name Type Default Description
      duration number 1000 The number of milliseconds an animation takes.
      easing string 'easeOutQuart' Easing function to use. more...
      delay number undefined Delay before starting the animations.
      loop boolean undefined If set to true, the animations loop endlessly.

      These defaults can be overridden in options.animation or dataset.animation and tooltip.animation. These keys are also Scriptable.

      # animations

      Animations options configures which element properties are animated and how. +In addition to the main animation configuration, the following options are available:

      Namespace: options.animations[animation]

      Name Type Default Description
      properties string[] key The property names this configuration applies to. Defaults to the key name of this object.
      type string typeof property Type of property, determines the interpolator used. Possible values: 'number', 'color' and 'boolean'. Only really needed for 'color', because typeof does not get that right.
      from number|Color|boolean undefined Start value for the animation. Current value is used when undefined
      to number|Color|boolean undefined End value for the animation. Updated value is used when undefined
      fn <T>(from: T, to: T, factor: number) => T; undefined Optional custom interpolator, instead of using a predefined interpolator from type

      # Default animations

      Name Option Value
      numbers properties ['x', 'y', 'borderWidth', 'radius', 'tension']
      numbers type 'number'
      colors properties ['color', 'borderColor', 'backgroundColor']
      colors type 'color'

      Note

      These default animations are overridden by most of the dataset controllers.

      # transitions

      The core transitions are 'active', 'hide', 'reset', 'resize', 'show'. +A custom transition can be used by passing a custom mode to update. +Transition extends the main animation configuration and animations configuration.

      # Default transitions

      Namespace: options.transitions[mode]

      Mode Option Value Description
      'active' animation.duration 400 Override default duration to 400ms for hover animations
      'resize' animation.duration 0 Override default duration to 0ms (= no animation) for resize
      'show' animations.colors { type: 'color', properties: ['borderColor', 'backgroundColor'], from: 'transparent' } Colors are faded in from transparent when dataset is shown using legend / api.
      'show' animations.visible { type: 'boolean', duration: 0 } Dataset visibility is immediately changed to true so the color transition from transparent is visible.
      'hide' animations.colors { type: 'color', properties: ['borderColor', 'backgroundColor'], to: 'transparent' } Colors are faded to transparent when dataset id hidden using legend / api.
      'hide' animations.visible { type: 'boolean', easing: 'easeInExpo' } Visibility is changed to false at a very late phase of animation

      # Disabling animation

      To disable an animation configuration, the animation node must be set to false, with the exception for animation modes which can be disabled by setting the duration to 0.

      chart.options.animation = false; // disables all animations
      +chart.options.animations.colors = false; // disables animation defined by the collection of 'colors' properties
      +chart.options.animations.x = false; // disables animation defined by the 'x' property
      +chart.options.transitions.active.animation.duration = 0; // disables the animation for 'active' mode
      +

      # Easing

      Available options are:

      • 'linear'
      • 'easeInQuad'
      • 'easeOutQuad'
      • 'easeInOutQuad'
      • 'easeInCubic'
      • 'easeOutCubic'
      • 'easeInOutCubic'
      • 'easeInQuart'
      • 'easeOutQuart'
      • 'easeInOutQuart'
      • 'easeInQuint'
      • 'easeOutQuint'
      • 'easeInOutQuint'
      • 'easeInSine'
      • 'easeOutSine'
      • 'easeInOutSine'
      • 'easeInExpo'
      • 'easeOutExpo'
      • 'easeInOutExpo'
      • 'easeInCirc'
      • 'easeOutCirc'
      • 'easeInOutCirc'
      • 'easeInElastic'
      • 'easeOutElastic'
      • 'easeInOutElastic'
      • 'easeInBack'
      • 'easeOutBack'
      • 'easeInOutBack'
      • 'easeInBounce'
      • 'easeOutBounce'
      • 'easeInOutBounce'

      See Robert Penner's easing equations (opens new window).

      # Animation Callbacks

      The animation configuration provides callbacks which are useful for synchronizing an external draw to the chart animation. +The callbacks can be set only at main animation configuration.

      Namespace: options.animation

      Name Type Default Description
      onProgress function null Callback called on each step of an animation.
      onComplete function null Callback called when all animations are completed.

      The callback is passed the following object:

      {
      +  // Chart object
      +  chart: Chart,
      +  // Number of animations still in progress
      +  currentStep: number,
      +  // `true` for the initial animation of the chart
      +  initial: boolean,
      +  // Total number of animations at the start of current animation
      +  numSteps: number,
      +}
      +

      The following example fills a progress bar during the chart animation.

      const chart = new Chart(ctx, {
      +    type: 'line',
      +    data: data,
      +    options: {
      +        animation: {
      +            onProgress: function(animation) {
      +                progress.value = animation.currentStep / animation.numSteps;
      +            }
      +        }
      +    }
      +});
      +

      Another example usage of these callbacks can be found in this progress bar sample. which displays a progress bar showing how far along the animation is.

      Last Updated: 8/3/2022, 12:46:38 PM
      + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/canvas-background.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/canvas-background.html new file mode 100644 index 0000000..db229c1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/canvas-background.html @@ -0,0 +1,198 @@ + + + + + + Canvas background | Chart.js + + + + + + + +

      # Canvas background

      In some use cases you would want a background image or color over the whole canvas. There is no built-in support for this, the way you can achieve this is by writing a custom plugin.

      In the two example plugins underneath here you can see how you can draw a color or image to the canvas as background. This way of giving the chart a background is only necessary if you want to export the chart with that specific background. +For normal use you can set the background more easily with CSS (opens new window).

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/decimation.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/decimation.html new file mode 100644 index 0000000..008b958 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/decimation.html @@ -0,0 +1,51 @@ + + + + + + Data Decimation | Chart.js + + + + + + + +

        # Data Decimation

        The decimation plugin can be used with line Graficas to automatically decimate data at the start of the chart lifecycle. Before enabling this plugin, review the requirements to ensure that it will work with the chart you want to create.

        # Configuration Options

        Namespace: options.plugins.decimation, the global options for the plugin are defined in Chart.defaults.plugins.decimation.

        Name Type Default Description
        enabled boolean false Is decimation enabled?
        algorithm string 'min-max' Decimation algorithm to use. See the more...
        samples number If the 'lttb' algorithm is used, this is the number of samples in the output dataset. Defaults to the canvas width to pick 1 sample per pixel.
        threshold number If the number of samples in the current axis range is above this value, the decimation will be triggered. Defaults to 4 times the canvas width.
        The number of point after decimation can be higher than the threshold value.

        # Decimation Algorithms

        Decimation algorithm to use for data. Options are:

        • 'lttb'
        • 'min-max'

        # Largest Triangle Three Bucket (LTTB) Decimation

        LTTB (opens new window) decimation reduces the number of data points significantly. This is most useful for showing trends in data using only a few data points.

        # Min/Max Decimation

        Min/max (opens new window) decimation will preserve peaks in your data but could require up to 4 points for each pixel. This type of decimation would work well for a very noisy signal where you need to see data peaks.

        # Requirements

        To use the decimation plugin, the following requirements must be met:

        1. The dataset must have an indexAxis of 'x'
        2. The dataset must be a line
        3. The X axis for the dataset must be either a 'linear' or 'time' type axis
        4. Data must not need parsing, i.e. parsing must be false
        5. The dataset object must be mutable. The plugin stores the original data as dataset._data and then defines a new data property on the dataset.
        6. There must be more points on the chart than the threshold value. Take a look at the Configuration Options for more information.
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/device-pixel-ratio.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/device-pixel-ratio.html new file mode 100644 index 0000000..e6a7710 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/device-pixel-ratio.html @@ -0,0 +1,51 @@ + + + + + + Device Pixel Ratio | Chart.js + + + + + + + +

        # Device Pixel Ratio

        By default the chart's canvas will use a 1:1 pixel ratio, unless the physical display has a higher pixel ratio (e.g. Retina displays).

        For applications where a chart will be converted to a bitmap, or printed to a higher DPI medium it can be desirable to render the chart at a higher resolution than the default.

        Setting devicePixelRatio to a value other than 1 will force the canvas size to be scaled by that amount, relative to the container size. There should be no visible difference on screen; the difference will only be visible when the image is zoomed or printed.

        # Configuration Options

        Namespace: options

        Name Type Default Description
        devicePixelRatio number window.devicePixelRatio Override the window's default devicePixelRatio.
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/elements.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/elements.html new file mode 100644 index 0000000..3efecb2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/elements.html @@ -0,0 +1,52 @@ + + + + + + Elements | Chart.js + + + + + + + +

        # Elements

        While chart types provide settings to configure the styling of each dataset, you sometimes want to style all datasets the same way. A common example would be to stroke all of the bars in a bar chart with the same colour but change the fill per dataset. Options can be configured for four different types of elements: arc, lines, points, and bars. When set, these options apply to all objects of that type unless specifically overridden by the configuration attached to a dataset.

        # Global Configuration

        The element options can be specified per chart or globally. The global options for elements are defined in Chart.defaults.elements. For example, to set the border width of all bar Graficas globally you would do:

        Chart.defaults.elements.bar.borderWidth = 2;
        +

        # Point Configuration

        Point elements are used to represent the points in a line, radar or bubble chart.

        Namespace: options.elements.point, global point options: Chart.defaults.elements.point.

        Name Type Default Description
        radius number 3 Point radius.
        pointStyle pointStyle 'circle' Point style.
        rotation number 0 Point rotation (in degrees).
        backgroundColor Color Chart.defaults.backgroundColor Point fill color.
        borderWidth number 1 Point stroke width.
        borderColor Color 'Chart.defaults.borderColor Point stroke color.
        hitRadius number 1 Extra radius added to point radius for hit detection.
        hoverRadius number 4 Point radius when hovered.
        hoverBorderWidth number 1 Stroke width when hovered.

        # Point Styles

        # Types

        The pointStyle argument accepts the following type of inputs: string, Image and HTMLCanvasElement

        # Info

        When a string is provided, the following values are supported:

        • 'circle'
        • 'cross'
        • 'crossRot'
        • 'dash'
        • 'line'
        • 'rect'
        • 'rectRounded'
        • 'rectRot'
        • 'star'
        • 'triangle'

        If the value is an image or a canvas element, that image or canvas element is drawn on the canvas using drawImage (opens new window).

        # Line Configuration

        Line elements are used to represent the line in a line chart.

        Namespace: options.elements.line, global line options: Chart.defaults.elements.line.

        Name Type Default Description
        tension number 0 Bézier curve tension (0 for no Bézier curves).
        backgroundColor Color Chart.defaults.backgroundColor Line fill color.
        borderWidth number 3 Line stroke width.
        borderColor Color Chart.defaults.borderColor Line stroke color.
        borderCapStyle string 'butt' Line cap style. See MDN (opens new window).
        borderDash number[] [] Line dash. See MDN (opens new window).
        borderDashOffset number 0.0 Line dash offset. See MDN (opens new window).
        borderJoinStyle 'round'|'bevel'|'miter' 'miter' Line join style. See MDN (opens new window).
        capBezierPoints boolean true true to keep Bézier control inside the chart, false for no restriction.
        cubicInterpolationMode string 'default' Interpolation mode to apply. See more...
        fill boolean|string false How to fill the area under the line. See area Graficas.
        stepped boolean false true to show the line as a stepped line (tension will be ignored).

        # Bar Configuration

        Bar elements are used to represent the bars in a bar chart.

        Namespace: options.elements.bar, global bar options: Chart.defaults.elements.bar.

        Name Type Default Description
        backgroundColor Color Chart.defaults.backgroundColor Bar fill color.
        borderWidth number 0 Bar stroke width.
        borderColor Color Chart.defaults.borderColor Bar stroke color.
        borderSkipped string 'start' Skipped (excluded) border: 'start', 'end', 'middle', 'bottom', 'left', 'top', 'right' or false.
        borderRadius number|object 0 The bar border radius (in pixels).
        inflateAmount number|'auto' 'auto' The amount of pixels to inflate the bar rectangle(s) when drawing.
        pointStyle string|Image|HTMLCanvasElement 'circle' Style of the point for legend.

        # Arc Configuration

        Arcs are used in the polar area, doughnut and pie Graficas.

        Namespace: options.elements.arc, global arc options: Chart.defaults.elements.arc.

        Name Type Default Description
        angle - for polar only number circumference / (arc count) Arc angle to cover.
        backgroundColor Color Chart.defaults.backgroundColor Arc fill color.
        borderAlign 'center'|'inner' 'center' Arc stroke alignment.
        borderColor Color '#fff' Arc stroke color.
        borderJoinStyle 'round'|'bevel'|'miter' 'bevel'|'round' Line join style. See MDN (opens new window). The default is 'round' when borderAlign is 'inner'
        borderWidth number 2 Arc stroke width.
        circular boolean true By default the Arc is curved. If circular: false the Arc will be flat
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/index.html new file mode 100644 index 0000000..68ab385 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/index.html @@ -0,0 +1,94 @@ + + + + + + Configuration | Chart.js + + + + + + + +

        # Configuration

        The configuration is used to change how the chart behaves. There are properties to control styling, fonts, the legend, etc.

        # Configuration object structure

        The top level structure of Chart.js configuration:

        const config = {
        +  type: 'line'
        +  data: {}
        +  options: {}
        +  plugins: []
        +}
        +

        # type

        Chart type determines the main type of the chart.

        note A dataset can override the type, this is how mixed Graficas are constructed.

        # data

        See Data Structures for details.

        # options

        Majority of the documentation talks about these options.

        # plugins

        Inline plugins can be included in this array. It is an alternative way of adding plugins for single chart (vs Registroing the plugin globally). +More about plugins in the developers section.

        # Global Configuration

        This concept was introduced in Chart.js 1.0 to keep configuration DRY (opens new window), and allow for changing options globally across chart types, avoiding the need to specify options for each instance, or the default for a particular chart type.

        Chart.js merges the options object passed to the chart with the global configuration using chart type defaults and scales defaults appropriately. This way you can be as specific as you would like in your individual chart configuration, while still changing the defaults for all chart types where applicable. The global general options are defined in Chart.defaults. The defaults for each chart type are discussed in the documentation for that chart type.

        The following example would set the interaction mode to 'nearest' for all Graficas where this was not overridden by the chart type defaults or the options passed to the constructor on creation.

        Chart.defaults.interaction.mode = 'nearest';
        +// Interaction mode is set to nearest because it was not overridden here
        +const chartInteractionModeNearest = new Chart(ctx, {
        +    type: 'line',
        +    data: data
        +});
        +// This chart would have the interaction mode that was passed in
        +const chartDifferentInteractionMode = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            // Overrides the global setting
        +            mode: 'index'
        +        }
        +    }
        +});
        +

        # Dataset Configuration

        Options may be configured directly on the dataset. The dataset options can be changed at multiple different levels. See options for details on how the options are resolved.

        The following example would set the showLine option to 'false' for all line datasets except for those overridden by options passed to the dataset on creation.

        // Do not show lines for all datasets by default
        +Chart.defaults.datasets.line.showLine = false;
        +// This chart would show a line only for the third dataset
        +const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: {
        +        datasets: [{
        +            data: [0, 0],
        +        }, {
        +            data: [0, 1]
        +        }, {
        +            data: [1, 0],
        +            showLine: true // overrides the `line` dataset default
        +        }, {
        +            type: 'scatter', // 'line' dataset default does not affect this dataset since it's a 'scatter'
        +            data: [1, 1]
        +        }]
        +    }
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/interactions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/interactions.html new file mode 100644 index 0000000..4f2cd29 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/interactions.html @@ -0,0 +1,204 @@ + + + + + + Interactions | Chart.js + + + + + + + +

        # Interactions

        Namespace: options.interaction, the global interaction configuration is at Chart.defaults.interaction. To configure which events trigger chart interactions, see events.

        Name Type Default Description
        mode string 'nearest' Sets which elements appear in the interaction. See Interaction Modes for details.
        intersect boolean true if true, the interaction mode only applies when the mouse position intersects an item on the chart.
        axis string 'x' Can be set to 'x', 'y', 'xy' or 'r' to define which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes.
        includeInvisible boolean false if true, the invisible points that are outside of the chart area will also be included when evaluating interactions.

        By default, these options apply to both the hover and tooltip interactions. The same options can be set in the options.hover namespace, in which case they will only affect the hover interaction. Similarly, the options can be set in the options.plugins.tooltip namespace to independently configure the tooltip interactions.

        # Events

        The following properties define how the chart interacts with events. +Namespace: options

        Name Type Default Description
        events string[] ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'] The events option defines the browser events that the chart should listen to for. Each of these events trigger hover and are passed to plugins. more...
        onHover function null Called when any of the events fire over chartArea. Passed the event, an array of active elements (bars, points, etc), and the chart.
        onClick function null Called if the event is of type 'mouseup', 'click' or ''contextmenu' over chartArea. Passed the event, an array of active elements, and the chart.

        # Event Option

        For example, to have the chart only respond to click events, you could do:

        const chart = new Chart(ctx, {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    // This chart will not respond to mousemove, etc
        +    events: ['click']
        +  }
        +});
        +

        Events for each plugin can be further limited by defining (allowed) events array in plugin options:

        const chart = new Chart(ctx, {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    // All of these (default) events trigger a hover and are passed to all plugins,
        +    // unless limited at plugin options
        +    events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],
        +    plugins: {
        +      tooltip: {
        +        // Tooltip will only receive click events
        +        events: ['click']
        +      }
        +    }
        +  }
        +});
        +

        Events that do not fire over chartArea, like mouseout, can be captured using a simple plugin:

        const chart = new Chart(ctx, {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    // these are the default events:
        +    // events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],
        +  },
        +  plugins: [{
        +    id: 'myEventCatcher',
        +    beforeEvent(chart, args, pluginOptions) {
        +      const event = args.event;
        +      if (event.type === 'mouseout') {
        +        // process the event
        +      }
        +    }
        +  }]
        +});
        +

        For more information about plugins, see Plugins

        # Converting Events to Data Values

        A common occurrence is taking an event, such as a click, and finding the data coordinates on the chart where the event occurred. Chart.js provides helpers that make this a straightforward process.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        onClick: (e) => {
        +            const canvasPosition = Chart.helpers.getRelativePosition(e, chart);
        +            // Substitute the appropriate scale IDs
        +            const dataX = chart.scales.x.getValueForPixel(canvasPosition.x);
        +            const dataY = chart.scales.y.getValueForPixel(canvasPosition.y);
        +        }
        +    }
        +});
        +

        When using a bundler, the helper functions have to be imported seperatly, for a full explanation of this please head over to the integration page

        # Modes

        When configuring the interaction with the graph via interaction, hover or tooltips, a number of different modes are available.

        options.hover and options.plugins.tooltip extend from options.interaction. So if mode, intersect or any other common settings are configured only in options.interaction, both hover and tooltips obey that.

        The modes are detailed below and how they behave in conjunction with the intersect setting.

        See how different modes work with the tooltip in tooltip interactions sample

        # point

        Finds all of the items that intersect the point.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'point'
        +        }
        +    }
        +});
        +

        # nearest

        Gets the items that are at the nearest distance to the point. The nearest item is determined based on the distance to the center of the chart item (point, bar). You can use the axis setting to define which coordinates are considered in distance calculation. If intersect is true, this is only triggered when the mouse position intersects an item in the graph. This is very useful for combo Graficas where points are hidden behind bars.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'nearest'
        +        }
        +    }
        +});
        +

        # index

        Finds item at the same index. If the intersect setting is true, the first intersecting item is used to determine the index in the data. If intersect false the nearest item, in the x direction, is used to determine the index.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'index'
        +        }
        +    }
        +});
        +

        To use index mode in a chart like the horizontal bar chart, where we Buscar along the y direction, you can use the axis setting introduced in v2.7.0. By setting this value to 'y' on the y direction is used.

        const chart = new Chart(ctx, {
        +    type: 'bar',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'index',
        +            axis: 'y'
        +        }
        +    }
        +});
        +

        # dataset

        Finds items in the same dataset. If the intersect setting is true, the first intersecting item is used to determine the index in the data. If intersect false the nearest item is used to determine the index.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'dataset'
        +        }
        +    }
        +});
        +

        # x

        Returns all items that would intersect based on the X coordinate of the position only. Would be useful for a vertical cursor implementation. Note that this only applies to cartesian Graficas.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'x'
        +        }
        +    }
        +});
        +

        # y

        Returns all items that would intersect based on the Y coordinate of the position. This would be useful for a horizontal cursor implementation. Note that this only applies to cartesian Graficas.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'y'
        +        }
        +    }
        +});
        +

        # Custom Interaction Modes

        New modes can be defined by adding functions to the Chart.Interaction.modes map. You can use the Chart.Interaction.evaluateInteractionItems function to help implement these.

        Example:

        import { Interaction } from 'chart.js';
        +import { getRelativePosition } from 'chart.js/helpers';
        +/**
        + * Custom interaction mode
        + * @function Interaction.modes.myCustomMode
        + * @param {Chart} chart - the chart we are returning items from
        + * @param {Event} e - the event we are find things at
        + * @param {InteractionOptions} options - options to use
        + * @param {boolean} [useFinalPosition] - use final element position (animation target)
        + * @return {InteractionItem[]} - items that are found
        + */
        +Interaction.modes.myCustomMode = function(chart, e, options, useFinalPosition) {
        +  const position = getRelativePosition(e, chart);
        +  const items = [];
        +  Interaction.evaluateInteractionItems(chart, 'x', position, (element, datasetIndex, index) => {
        +    if (element.inXRange(position.x, useFinalPosition) && myCustomLogic(element)) {
        +      items.push({element, datasetIndex, index});
        +    }
        +  });
        +  return items;
        +};
        +// Then, to use it...
        +new Chart.js(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        interaction: {
        +            mode: 'myCustomMode'
        +        }
        +    }
        +})
        +

        If you're using TypeScript, you'll also need to Registro the new mode:

        declare module 'chart.js' {
        +  interface InteractionModeMap {
        +    myCustomMode: InteractionModeFunction;
        +  }
        +}
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/layout.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/layout.html new file mode 100644 index 0000000..3301c7d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/layout.html @@ -0,0 +1,51 @@ + + + + + + Layout | Chart.js + + + + + + + +

        # Layout

        Namespace: options.layout, the global options for the chart layout is defined in Chart.defaults.layout.

        Name Type Default Scriptable Description
        autoPadding boolean true No Apply automatic padding so visible elements are completely drawn.
        padding Padding 0 Yes The padding to add inside the chart.
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/legend.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/legend.html new file mode 100644 index 0000000..9c97891 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/legend.html @@ -0,0 +1,141 @@ + + + + + + Legend | Chart.js + + + + + + + +

        # Legend

        The chart legend displays data about the datasets that are appearing on the chart.

        # Configuration options

        Namespace: options.plugins.legend, the global options for the chart legend is defined in Chart.defaults.plugins.legend.

        WARNING

        The doughnut, pie, and polar area Graficas override the legend defaults. To change the overrides for those chart types, the options are defined in Chart.overrides[type].plugins.legend.

        Name Type Default Description
        display boolean true Is the legend shown?
        position string 'top' Position of the legend. more...
        align string 'center' Alignment of the legend. more...
        maxHeight number Maximum height of the legend, in pixels
        maxWidth number Maximum width of the legend, in pixels
        fullSize boolean true Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use.
        onClick function A callback that is called when a click event is Registroed on a label item. Arguments: [event, legendItem, legend].
        onHover function A callback that is called when a 'mousemove' event is Registroed on top of a label item. Arguments: [event, legendItem, legend].
        onLeave function A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item. Arguments: [event, legendItem, legend].
        reverse boolean false Legend will show datasets in reverse order.
        labels object See the Legend Label Configuration section below.
        rtl boolean true for rendering the legends from right to left.
        textDirection string canvas' default This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the legend, regardless of the css specified on the canvas
        title object See the Legend Title Configuration section below.

        # Position

        Position of the legend. Options are:

        • 'top'
        • 'left'
        • 'bottom'
        • 'right'
        • 'chartArea'

        When using the 'chartArea' option the legend position is at the moment not configurable, it will always be on the left side of the chart in the middle.

        # Align

        Alignment of the legend. Options are:

        • 'start'
        • 'center'
        • 'end'

        Defaults to 'center' for unrecognized values.

        # Legend Label Configuration

        Namespace: options.plugins.legend.labels

        Name Type Default Description
        boxWidth number 40 Width of coloured box.
        boxHeight number font.size Height of the coloured box.
        color Color Chart.defaults.color Color of label and the strikethrough.
        font Font Chart.defaults.font See Fonts
        padding number 10 Padding between rows of colored boxes.
        generateLabels function Generates legend items for each thing in the legend. Default implementation returns the text + styling for the color box. See Legend Item for details.
        filter function null Filters legend items out of the legend. Receives 2 parameters, a Legend Item and the chart data.
        sort function null Sorts legend items. Type is : sort(a: LegendItem, b: LegendItem, data: ChartData): number;. Receives 3 parameters, two Legend Items and the chart data. The return value of the function is a number that indicates the order of the two legend item parameters. The ordering matches the return value (opens new window) of Array.prototype.sort()
        pointStyle pointStyle 'circle' If specified, this style of point is used for the legend. Only used if usePointStyle is true.
        textAlign string 'center' Horizontal alignment of the label text. Options are: 'left', 'right' or 'center'.
        usePointStyle boolean false Label style will match corresponding point style (size is based on pointStyleWidth or the minimum value between boxWidth and font.size).
        pointStyleWidth number null If usePointStyle is true, the width of the point style used for the legend (only for circle, rect and line point stlye).

        # Legend Title Configuration

        Namespace: options.plugins.legend.title

        Name Type Default Description
        color Color Chart.defaults.color Color of text.
        display boolean false Is the legend title displayed.
        font Font Chart.defaults.font See Fonts
        padding Padding 0 Padding around the title.
        text string The string title.

        # Legend Item Interface

        Items passed to the legend onClick function are the ones returned from labels.generateLabels. These items must implement the following interface.

        {
        +    // Label that will be displayed
        +    text: string,
        +    // Border radius of the legend item.
        +    // Introduced in 3.1.0
        +    borderRadius?: number | BorderRadius,
        +    // Index of the associated dataset
        +    datasetIndex: number,
        +    // Fill style of the legend box
        +    fillStyle: Color,
        +    // Text color
        +    fontColor: Color,
        +    // If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect
        +    hidden: boolean,
        +    // For box border. See https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap
        +    lineCap: string,
        +    // For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash
        +    lineDash: number[],
        +    // For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset
        +    lineDashOffset: number,
        +    // For box border. See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin
        +    lineJoin: string,
        +    // Width of box border
        +    lineWidth: number,
        +    // Stroke style of the legend box
        +    strokeStyle: Color,
        +    // Point style of the legend box (only used if usePointStyle is true)
        +    pointStyle: string | Image | HTMLCanvasElement,
        +    // Rotation of the point in degrees (only used if usePointStyle is true)
        +    rotation: number
        +}
        +

        # Example

        The following example will create a chart with the legend enabled and turn all of the text red in color.

        const chart = new Chart(ctx, {
        +    type: 'bar',
        +    data: data,
        +    options: {
        +        plugins: {
        +            legend: {
        +                display: true,
        +                labels: {
        +                    color: 'rgb(255, 99, 132)'
        +                }
        +            }
        +        }
        +    }
        +});
        +

        # Custom On Click Actions

        It can be common to want to trigger different behaviour when clicking an item in the legend. This can be easily achieved using a callback in the config object.

        The default legend click handler is:

        function(e, legendItem, legend) {
        +    const index = legendItem.datasetIndex;
        +    const ci = legend.chart;
        +    if (ci.isDatasetVisible(index)) {
        +        ci.hide(index);
        +        legendItem.hidden = true;
        +    } else {
        +        ci.show(index);
        +        legendItem.hidden = false;
        +    }
        +}
        +

        Lets say we wanted instead to link the display of the first two datasets. We could change the click handler accordingly.

        const defaultLegendClickHandler = Chart.defaults.plugins.legend.onClick;
        +const pieDoughnutLegendClickHandler = Chart.controllers.doughnut.overrides.plugins.legend.onClick;
        +const newLegendClickHandler = function (e, legendItem, legend) {
        +    const index = legendItem.datasetIndex;
        +    const type = legend.chart.config.type;
        +    if (index > 1) {
        +        // Do the original logic
        +        if (type === 'pie' || type === 'doughnut') {
        +            pieDoughnutLegendClickHandler(e, legendItem, legend)
        +        } else {
        +            defaultLegendClickHandler(e, legendItem, legend);
        +        }
        +    } else {
        +        let ci = legend.chart;
        +        [
        +            ci.getDatasetMeta(0),
        +            ci.getDatasetMeta(1)
        +        ].forEach(function(meta) {
        +            meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
        +        });
        +        ci.update();
        +    }
        +};
        +const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            legend: {
        +                onClick: newLegendClickHandler
        +            }
        +        }
        +    }
        +});
        +

        Now when you click the legend in this chart, the visibility of the first two datasets will be linked together.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/locale.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/locale.html new file mode 100644 index 0000000..8afc207 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/locale.html @@ -0,0 +1,51 @@ + + + + + + Locale | Chart.js + + + + + + + +

        # Locale

        For applications where the numbers of ticks on scales must be formatted accordingly with a language sensitive number formatting, you can enable this kind of formatting by setting the locale option.

        The locale is a string that is a Unicode BCP 47 locale identifier (opens new window).

        A Unicode BCP 47 locale identifier consists of

        1. a language code,
        2. (optionally) a script code,
        3. (optionally) a region (or country) code,
        4. (optionally) one or more variant codes, and
        5. (optionally) one or more extension sequences,

        with all present Componentes separated by hyphens.

        By default the chart is using the default locale of the platform which is running on.

        # Configuration Options

        Namespace: options

        Name Type Default Description
        locale string undefined a string with a BCP 47 language tag, leveraging on INTL NumberFormat (opens new window).
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/responsive.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/responsive.html new file mode 100644 index 0000000..6896bf5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/responsive.html @@ -0,0 +1,67 @@ + + + + + + Responsive Graficas | Chart.js + + + + + + + +

        # Responsive Graficas

        When it comes to changing the chart size based on the window size, a major limitation is that the canvas render size (canvas.width and .height) can not be expressed with relative values, contrary to the display size (canvas.style.width and .height). Furthermore, these sizes are independent from each other and thus the canvas render size does not adjust automatically based on the display size, making the rendering inaccurate.

        The following examples do not work:

        • <canvas height="40vh" width="80vw">: invalid values, the canvas doesn't resize (example (opens new window))
        • <canvas style="height:40vh; width:80vw">: invalid behavior, the canvas is resized but becomes blurry (example (opens new window))
        • <canvas style="margin: 0 auto;">: invalid behavior, the canvas continually shrinks. Chart.js needs a dedicated container for each canvas and this styling should be applied there.

        Chart.js provides a few options to enable responsiveness and control the resize behavior of Graficas by detecting when the canvas display size changes and update the render size accordingly.

        # Configuration Options

        Namespace: options

        Name Type Default Description
        responsive boolean true Resizes the chart canvas when its container does (important note...).
        maintainAspectRatio boolean true Maintain the original canvas aspect ratio (width / height) when resizing.
        aspectRatio number 1|2 Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style. The default value varies by chart type; Radial Graficas (doughnut, pie, polarArea, radar) default to 1 and others default to 2.
        onResize function null Called when a resize occurs. Gets passed two arguments: the chart instance and the new size.
        resizeDelay number 0 Delay the resize update by the given amount of milliseconds. This can ease the resize process by debouncing the update of the elements.

        # Important Note

        Detecting when the canvas size changes can not be done directly from the canvas element. Chart.js uses its parent container to update the canvas render and display sizes. However, this method requires the container to be relatively positioned and dedicated to the chart canvas only. Responsiveness can then be achieved by setting relative values for the container size (example (opens new window)):

        <div class="chart-container" style="position: relative; height:40vh; width:80vw">
        +    <canvas id="chart"></canvas>
        +</div>
        +

        The chart can also be programmatically resized by modifying the container size:

        chart.canvas.parentNode.style.height = '128px';
        +chart.canvas.parentNode.style.width = '128px';
        +

        Note that in order for the above code to correctly resize the chart height, the maintainAspectRatio option must also be set to false.

        # Printing Resizable Graficas

        CSS media queries allow changing styles when printing a page. The CSS applied from these media queries may cause Graficas to need to resize. However, the resize won't happen automatically. To support resizing Graficas when printing, you need to hook the onbeforeprint (opens new window) event and manually trigger resizing of each chart.

        function beforePrintHandler () {
        +    for (let id in Chart.instances) {
        +        Chart.instances[id].resize();
        +    }
        +}
        +

        You may also find that, due to complexities in when the browser lays out the document for printing and when resize events are fired, Chart.js is unable to properly resize for the print layout. To work around this, you can pass an explicit size to .resize() then use an onafterprint (opens new window) event to restore the automatic size when done.

        window.addEventListener('beforeprint', () => {
        +  myChart.resize(600, 600);
        +});
        +window.addEventListener('afterprint', () => {
        +  myChart.resize();
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/subtitle.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/subtitle.html new file mode 100644 index 0000000..1ee7d9c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/subtitle.html @@ -0,0 +1,63 @@ + + + + + + Subtitle | Chart.js + + + + + + + +

        # Subtitle

        Subtitle is a second title placed under the main title, by default. It has exactly the same configuration options with the main title.

        # Subtitle Configuration

        Namespace: options.plugins.subtitle. The global defaults for subtitle are configured in Chart.defaults.plugins.subtitle.

        Exactly the same configuration options with title are available for subtitle, the namespaces only differ.

        # Example Usage

        The example below would enable a title of 'Custom Chart Subtitle' on the chart that is created.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            subtitle: {
        +                display: true,
        +                text: 'Custom Chart Subtitle'
        +            }
        +        }
        +    }
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/title.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/title.html new file mode 100644 index 0000000..8b2e9ae --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/title.html @@ -0,0 +1,79 @@ + + + + + + Title | Chart.js + + + + + + + +

        # Title

        The chart title defines text to draw at the top of the chart.

        # Title Configuration

        Namespace: options.plugins.title, the global options for the chart title is defined in Chart.defaults.plugins.title.

        Name Type Default Scriptable Description
        align string 'center' Yes Alignment of the title. more...
        color Color Chart.defaults.color Yes Color of text.
        display boolean false Yes Is the title shown?
        fullSize boolean true Yes Marks that this box should take the full width/height of the canvas. If false, the box is sized and placed above/beside the chart area.
        position string 'top' Yes Position of title. more...
        font Font {weight: 'bold'} Yes See Fonts
        padding Padding 10 Yes Padding to apply around the title. Only top and bottom are implemented.
        text string|string[] '' Yes Title text to display. If specified as an array, text is rendered on multiple lines.

        # Position

        Possible title position values are:

        • 'top'
        • 'left'
        • 'bottom'
        • 'right'

        # Align

        Alignment of the title. Options are:

        • 'start'
        • 'center'
        • 'end'

        # Example Usage

        The example below would enable a title of 'Custom Chart Title' on the chart that is created.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            title: {
        +                display: true,
        +                text: 'Custom Chart Title'
        +            }
        +        }
        +    }
        +});
        +

        This example shows how to specify separate top and bottom title text padding:

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            title: {
        +                display: true,
        +                text: 'Custom Chart Title',
        +                padding: {
        +                    top: 10,
        +                    bottom: 30
        +                }
        +            }
        +        }
        +    }
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/tooltip.html b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/tooltip.html new file mode 100644 index 0000000..a1b4ee1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/configuration/tooltip.html @@ -0,0 +1,280 @@ + + + + + + Tooltip | Chart.js + + + + + + + +

        # Tooltip

        # Tooltip Configuration

        Namespace: options.plugins.tooltip, the global options for the chart tooltips is defined in Chart.defaults.plugins.tooltip.

        WARNING

        The bubble, doughnut, pie, polar area, and scatter Graficas override the tooltip defaults. To change the overrides for those chart types, the options are defined in Chart.overrides[type].plugins.tooltip.

        Name Type Default Description
        enabled boolean true Are on-canvas tooltips enabled?
        external function null See external tooltip section.
        mode string interaction.mode Sets which elements appear in the tooltip. more....
        intersect boolean interaction.intersect If true, the tooltip mode applies only when the mouse position intersects with an element. If false, the mode will be applied at all times.
        position string 'average' The mode for positioning the tooltip. more...
        callbacks object See the callbacks section.
        itemSort function Sort tooltip items. more...
        filter function Filter tooltip items. more...
        backgroundColor Color 'rgba(0, 0, 0, 0.8)' Background color of the tooltip.
        titleColor Color '#fff' Color of title text.
        titleFont Font {weight: 'bold'} See Fonts.
        titleAlign string 'left' Horizontal alignment of the title text lines. more...
        titleSpacing number 2 Spacing to add to top and bottom of each title line.
        titleMarginBottom number 6 Margin to add on bottom of title section.
        bodyColor Color '#fff' Color of body text.
        bodyFont Font {} See Fonts.
        bodyAlign string 'left' Horizontal alignment of the body text lines. more...
        bodySpacing number 2 Spacing to add to top and bottom of each tooltip item.
        footerColor Color '#fff' Color of footer text.
        footerFont Font {weight: 'bold'} See Fonts.
        footerAlign string 'left' Horizontal alignment of the footer text lines. more...
        footerSpacing number 2 Spacing to add to top and bottom of each footer line.
        footerMarginTop number 6 Margin to add before drawing the footer.
        padding Padding 6 Padding inside the tooltip.
        caretPadding number 2 Extra distance to move the end of the tooltip arrow away from the tooltip point.
        caretSize number 5 Size, in px, of the tooltip arrow.
        cornerRadius number|object 6 Radius of tooltip corner curves.
        multiKeyBackground Color '#fff' Color to draw behind the colored boxes when multiple items are in the tooltip.
        displayColors boolean true If true, color boxes are shown in the tooltip.
        boxWidth number bodyFont.size Width of the color box if displayColors is true.
        boxHeight number bodyFont.size Height of the color box if displayColors is true.
        boxPadding number 1 Padding between the color box and the text.
        usePointStyle boolean false Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight).
        borderColor Color 'rgba(0, 0, 0, 0)' Color of the border.
        borderWidth number 0 Size of the border.
        rtl boolean true for rendering the tooltip from right to left.
        textDirection string canvas' default This will force the text direction 'rtl' or 'ltr on the canvas for rendering the tooltips, regardless of the css specified on the canvas
        xAlign string undefined Position of the tooltip caret in the X direction. more
        yAlign string undefined Position of the tooltip caret in the Y direction. more

        # Position Modes

        Possible modes are:

        • 'average'
        • 'nearest'

        'average' mode will place the tooltip at the average position of the items displayed in the tooltip. 'nearest' will place the tooltip at the position of the element closest to the event position.

        You can also define custom position modes.

        # Tooltip Alignment

        The xAlign and yAlign options define the position of the tooltip caret. If these parameters are unset, the optimal caret position is determined.

        The following values for the xAlign setting are supported.

        • 'left'
        • 'center'
        • 'right'

        The following values for the yAlign setting are supported.

        • 'top'
        • 'center'
        • 'bottom'

        # Text Alignment

        The titleAlign, bodyAlign and footerAlign options define the horizontal position of the text lines with respect to the tooltip box. The following values are supported.

        • 'left' (default)
        • 'right'
        • 'center'

        These options are only applied to text lines. Color boxes are always aligned to the left edge.

        # Sort Callback

        Allows sorting of tooltip items. Must implement at minimum a function that can be passed to Array.prototype.sort (opens new window). This function can also accept a third parameter that is the data object passed to the chart.

        # Filter Callback

        Allows filtering of tooltip items. Must implement at minimum a function that can be passed to Array.prototype.filter (opens new window). This function can also accept a fourth parameter that is the data object passed to the chart.

        # Tooltip Callbacks

        Namespace: options.plugins.tooltip.callbacks, the tooltip has the following callbacks for providing text. For all functions, this will be the tooltip object created from the Tooltip constructor.

        Namespace: data.datasets[].tooltip.callbacks, items marked with Yes in the column Dataset override can be overridden per dataset.

        A tooltip item context is generated for each item that appears in the tooltip. This is the primary model that the callback methods interact with. For functions that return text, arrays of strings are treated as multiple lines of text.

        Name Arguments Return Type Dataset override Description
        beforeTitle TooltipItem[] string | string[] Returns the text to render before the title.
        title TooltipItem[] string | string[] Returns text to render as the title of the tooltip.
        afterTitle TooltipItem[] string | string[] Returns text to render after the title.
        beforeBody TooltipItem[] string | string[] Returns text to render before the body section.
        beforeLabel TooltipItem string | string[] Yes Returns text to render before an individual label. This will be called for each item in the tooltip.
        label TooltipItem string | string[] Yes Returns text to render for an individual item in the tooltip. more...
        labelColor TooltipItem object Yes Returns the colors to render for the tooltip item. more...
        labelTextColor TooltipItem Color Yes Returns the colors for the text of the label for the tooltip item.
        labelPointStyle TooltipItem object Yes Returns the point style to use instead of color boxes if usePointStyle is true (object with values pointStyle and rotation). Default implementation uses the point style from the dataset points. more...
        afterLabel TooltipItem string | string[] Yes Returns text to render after an individual label.
        afterBody TooltipItem[] string | string[] Returns text to render after the body section.
        beforeFooter TooltipItem[] string | string[] Returns text to render before the footer section.
        footer TooltipItem[] string | string[] Returns text to render as the footer of the tooltip.
        afterFooter TooltipItem[] string | string[] Text to render after the footer section.

        # Label Callback

        The label callback can change the text that displays for a given data point. A common example to show a unit. The example below puts a '$' before every row.

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            tooltip: {
        +                callbacks: {
        +                    label: function(context) {
        +                        let label = context.dataset.label || '';
        +                        if (label) {
        +                            label += ': ';
        +                        }
        +                        if (context.parsed.y !== null) {
        +                            label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(context.parsed.y);
        +                        }
        +                        return label;
        +                    }
        +                }
        +            }
        +        }
        +    }
        +});
        +

        # Label Color Callback

        For example, to return a red box with a blue dashed border that has a border radius for each item in the tooltip you could do:

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            tooltip: {
        +                callbacks: {
        +                    labelColor: function(context) {
        +                        return {
        +                            borderColor: 'rgb(0, 0, 255)',
        +                            backgroundColor: 'rgb(255, 0, 0)',
        +                            borderWidth: 2,
        +                            borderDash: [2, 2],
        +                            borderRadius: 2,
        +                        };
        +                    },
        +                    labelTextColor: function(context) {
        +                        return '#543453';
        +                    }
        +                }
        +            }
        +        }
        +    }
        +});
        +

        # Label Point Style Callback

        For example, to draw triangles instead of the regular color box for each item in the tooltip you could do:

        const chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            tooltip: {
        +                usePointStyle: true,
        +                callbacks: {
        +                    labelPointStyle: function(context) {
        +                        return {
        +                            pointStyle: 'triangle',
        +                            rotation: 0
        +                        };
        +                    }
        +                }
        +            }
        +        }
        +    }
        +});
        +

        # Tooltip Item Context

        The tooltip items passed to the tooltip callbacks implement the following interface.

        {
        +    // The chart the tooltip is being shown on
        +    chart: Chart
        +    // Label for the tooltip
        +    label: string,
        +    // Parsed data values for the given `dataIndex` and `datasetIndex`
        +    parsed: object,
        +    // Raw data values for the given `dataIndex` and `datasetIndex`
        +    raw: object,
        +    // Formatted value for the tooltip
        +    formattedValue: string,
        +    // The dataset the item comes from
        +    dataset: object
        +    // Index of the dataset the item comes from
        +    datasetIndex: number,
        +    // Index of this data item in the dataset
        +    dataIndex: number,
        +    // The chart element (point, arc, bar, etc.) for this tooltip item
        +    element: Element,
        +}
        +

        # External (Custom) Tooltips

        External tooltips allow you to hook into the tooltip rendering process so that you can render the tooltip in your own custom way. Generally this is used to create an HTML tooltip instead of an on-canvas tooltip. The external option takes a function which is passed a context parameter containing the chart and tooltip. You can enable external tooltips in the global or chart configuration like so:

        const myPieChart = new Chart(ctx, {
        +    type: 'pie',
        +    data: data,
        +    options: {
        +        plugins: {
        +            tooltip: {
        +                // Disable the on-canvas tooltip
        +                enabled: false,
        +                external: function(context) {
        +                    // Tooltip Element
        +                    let tooltipEl = document.getElementById('chartjs-tooltip');
        +                    // Create element on first render
        +                    if (!tooltipEl) {
        +                        tooltipEl = document.createElement('div');
        +                        tooltipEl.id = 'chartjs-tooltip';
        +                        tooltipEl.innerHTML = '<table></table>';
        +                        document.body.appendChild(tooltipEl);
        +                    }
        +                    // Hide if no tooltip
        +                    const tooltipModel = context.tooltip;
        +                    if (tooltipModel.opacity === 0) {
        +                        tooltipEl.style.opacity = 0;
        +                        return;
        +                    }
        +                    // Set caret Position
        +                    tooltipEl.classList.remove('above', 'below', 'no-transform');
        +                    if (tooltipModel.yAlign) {
        +                        tooltipEl.classList.add(tooltipModel.yAlign);
        +                    } else {
        +                        tooltipEl.classList.add('no-transform');
        +                    }
        +                    function getBody(bodyItem) {
        +                        return bodyItem.lines;
        +                    }
        +                    // Set Text
        +                    if (tooltipModel.body) {
        +                        const titleLines = tooltipModel.title || [];
        +                        const bodyLines = tooltipModel.body.map(getBody);
        +                        let innerHtml = '<thead>';
        +                        titleLines.forEach(function(title) {
        +                            innerHtml += '<tr><th>' + title + '</th></tr>';
        +                        });
        +                        innerHtml += '</thead><tbody>';
        +                        bodyLines.forEach(function(body, i) {
        +                            const colors = tooltipModel.labelColors[i];
        +                            let style = 'background:' + colors.backgroundColor;
        +                            style += '; border-color:' + colors.borderColor;
        +                            style += '; border-width: 2px';
        +                            const span = '<span style="' + style + '"></span>';
        +                            innerHtml += '<tr><td>' + span + body + '</td></tr>';
        +                        });
        +                        innerHtml += '</tbody>';
        +                        let tableRoot = tooltipEl.querySelector('table');
        +                        tableRoot.innerHTML = innerHtml;
        +                    }
        +                    const position = context.chart.canvas.getBoundingClientRect();
        +                    const bodyFont = Chart.helpers.toFont(tooltipModel.options.bodyFont);
        +                    // Display, position, and set styles for font
        +                    tooltipEl.style.opacity = 1;
        +                    tooltipEl.style.position = 'absolute';
        +                    tooltipEl.style.left = position.left + window.pageXOffset + tooltipModel.caretX + 'px';
        +                    tooltipEl.style.top = position.top + window.pageYOffset + tooltipModel.caretY + 'px';
        +                    tooltipEl.style.font = bodyFont.string;
        +                    tooltipEl.style.padding = tooltipModel.padding + 'px ' + tooltipModel.padding + 'px';
        +                    tooltipEl.style.pointerEvents = 'none';
        +                }
        +            }
        +        }
        +    }
        +});
        +

        See samples for examples on how to get started with external tooltips.

        # Tooltip Model

        The tooltip model contains parameters that can be used to render the tooltip.

        {
        +    chart: Chart,
        +    // The items that we are rendering in the tooltip. See Tooltip Item Interface section
        +    dataPoints: TooltipItem[],
        +    // Positioning
        +    xAlign: string,
        +    yAlign: string,
        +    // X and Y properties are the top left of the tooltip
        +    x: number,
        +    y: number,
        +    width: number,
        +    height: number,
        +    // Where the tooltip points to
        +    caretX: number,
        +    caretY: number,
        +    // Body
        +    // The body lines that need to be rendered
        +    // Each object contains 3 parameters
        +    // before: string[] // lines of text before the line with the color square
        +    // lines: string[], // lines of text to render as the main item with color square
        +    // after: string[], // lines of text to render after the main lines
        +    body: object[],
        +    // lines of text that appear after the title but before the body
        +    beforeBody: string[],
        +    // line of text that appear after the body and before the footer
        +    afterBody: string[],
        +    // Title
        +    // lines of text that form the title
        +    title: string[],
        +    // Footer
        +    // lines of text that form the footer
        +    footer: string[],
        +    // colors to render for each item in body[]. This is the color of the squares in the tooltip
        +    labelColors: Color[],
        +    labelTextColors: Color[],
        +    // 0 opacity is a hidden tooltip
        +    opacity: number,
        +    // tooltip options
        +    options: Object
        +}
        +

        # Custom Position Modes

        New modes can be defined by adding functions to the Chart.Tooltip.positioners map.

        Example:

        import { Tooltip } from 'chart.js';
        +/**
        + * Custom positioner
        + * @function Tooltip.positioners.myCustomPositioner
        + * @param elements {Chart.Element[]} the tooltip elements
        + * @param eventPosition {Point} the position of the event in canvas coordinates
        + * @returns {TooltipPosition} the tooltip position
        + */
        +Tooltip.positioners.myCustomPositioner = function(elements, eventPosition) {
        +    // A reference to the tooltip model
        +    const tooltip = this;
        +    /* ... */
        +    return {
        +        x: 0,
        +        y: 0
        +        // You may also include xAlign and yAlign to override those tooltip options.
        +    };
        +};
        +// Then, to use it...
        +new Chart.js(ctx, {
        +    data,
        +    options: {
        +        plugins: {
        +            tooltip: {
        +                position: 'myCustomPositioner'
        +            }
        +        }
        +    }
        +})
        +

        See samples for a more detailed example.

        If you're using TypeScript, you'll also need to Registro the new mode:

        declare module 'chart.js' {
        +  interface TooltipPositionerMap {
        +    myCustomPositioner: TooltipPositionerFunction<ChartType>;
        +  }
        +}
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/api.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/api.html new file mode 100644 index 0000000..429e6da --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/api.html @@ -0,0 +1,102 @@ + + + + + + API | Chart.js + + + + + + + +

        # API

        For each chart, there are a set of global prototype methods on the shared chart type which you may find useful. These are available on all Graficas created with Chart.js, but for the examples, let's use a line chart we've made.

        // For example:
        +const myLineChart = new Chart(ctx, config);
        +

        # .destroy()

        Use this to destroy any chart instances that are created. This will clean up any references stored to the chart object within Chart.js, along with any associated event listeners attached by Chart.js. +This must be called before the canvas is reused for a new chart.

        // Destroys a specific chart instance
        +myLineChart.destroy();
        +

        # .update(mode?)

        Triggers an update of the chart. This can be safely called after updating the data object. This will update all scales, legends, and then re-render the chart.

        myLineChart.data.datasets[0].data[2] = 50; // Would update the first dataset's value of 'March' to be 50
        +myLineChart.update(); // Calling update now animates the position of March from 90 to 50.
        +

        A mode string can be provided to indicate transition configuration should be used. Core calls this method using any of 'active', 'hide', 'reset', 'resize', 'show' or undefined. 'none' is also a supported mode for skipping animations for single update. Please see animations docs for more details.

        Example:

        myChart.update('active');
        +

        See Updating Graficas for more details.

        # .reset()

        Reset the chart to its state before the initial animation. A new animation can then be triggered using update.

        myLineChart.reset();
        +

        # .render()

        Triggers a redraw of all chart elements. Note, this does not update elements for new data. Use .update() in that case.

        # .stop()

        Use this to stop any current animation. This will pause the chart during any current animation frame. Call .render() to re-animate.

        // Stops the Graficas animation loop at its current frame
        +myLineChart.stop();
        +// => returns 'this' for chainability
        +

        # .resize(width?, height?)

        Use this to manually resize the canvas element. This is run each time the canvas container is resized, but you can call this method manually if you change the size of the canvas nodes container element.

        You can call .resize() with no parameters to have the chart take the size of its container element, or you can pass explicit dimensions (e.g., for printing).

        // Resizes & redraws to fill its container element
        +myLineChart.resize();
        +// => returns 'this' for chainability
        +// With an explicit size:
        +myLineChart.resize(width, height);
        +

        # .clear()

        Will clear the chart canvas. Used extensively internally between animation frames, but you might find it useful.

        // Will clear the canvas that myLineChart is drawn on
        +myLineChart.clear();
        +// => returns 'this' for chainability
        +

        # .toBase64Image(type?, quality?)

        This returns a base 64 encoded string of the chart in its current state.

        myLineChart.toBase64Image();
        +// => returns png data url of the image on the canvas
        +myLineChart.toBase64Image('image/jpeg', 1)
        +// => returns a jpeg data url in the highest quality of the canvas
        +

        # .getElementsAtEventForMode(e, mode, options, useFinalPosition)

        Calling getElementsAtEventForMode(e, mode, options, useFinalPosition) on your Chart instance passing an event and a mode will return the elements that are found. The options and useFinalPosition arguments are passed through to the handlers.

        To get an item that was clicked on, getElementsAtEventForMode can be used.

        function clickHandler(evt) {
        +    const points = myChart.getElementsAtEventForMode(evt, 'nearest', { intersect: true }, true);
        +    if (points.length) {
        +        const firstPoint = points[0];
        +        const label = myChart.data.labels[firstPoint.index];
        +        const value = myChart.data.datasets[firstPoint.datasetIndex].data[firstPoint.index];
        +    }
        +}
        +

        # .getSortedVisibleDatasetMetas()

        Returns an array of all the dataset meta's in the order that they are drawn on the canvas that are not hidden.

        const visibleMetas = chart.getSortedVisibleDatasetMetas();
        +

        # .getDatasetMeta(index)

        Looks for the dataset that matches the current index and returns that metadata. This returned data has all of the metadata that is used to construct the chart.

        The data property of the metadata will contain information about each point, bar, etc. depending on the chart type.

        Extensive examples of usage are available in the Chart.js tests (opens new window).

        const meta = myChart.getDatasetMeta(0);
        +const x = meta.data[0].x;
        +

        # getVisibleDatasetCount

        Returns the amount of datasets that are currently not hidden.

        const numberOfVisibleDatasets = chart.getVisibleDatasetCount();
        +

        # setDatasetVisibility(datasetIndex, visibility)

        Sets the visibility for a given dataset. This can be used to build a chart legend in HTML. During click on one of the HTML items, you can call setDatasetVisibility to change the appropriate dataset.

        chart.setDatasetVisibility(1, false); // hides dataset at index 1
        +chart.update(); // chart now renders with dataset hidden
        +

        # toggleDataVisibility(index)

        Toggles the visibility of an item in all datasets. A dataset needs to explicitly support this feature for it to have an effect. From internal chart types, doughnut / pie, polar area, and bar use this.

        chart.toggleDataVisibility(2); // toggles the item in all datasets, at index 2
        +chart.update(); // chart now renders with item hidden
        +

        # getDataVisibility(index)

        Returns the stored visibility state of an data index for all datasets. Set by toggleDataVisibility. A dataset controller should use this method to determine if an item should not be visible.

        const visible = chart.getDataVisibility(2);
        +

        # hide(datasetIndex, dataIndex?)

        If dataIndex is not specified, sets the visibility for the given dataset to false. Updates the chart and animates the dataset with 'hide' mode. This animation can be configured under the hide key in animation options. Please see animations docs for more details.

        If dataIndex is specified, sets the hidden flag of that element to true and updates the chart.

        chart.hide(1); // hides dataset at index 1 and does 'hide' animation.
        +chart.hide(0, 2); // hides the data element at index 2 of the first dataset.
        +

        # show(datasetIndex, dataIndex?)

        If dataIndex is not specified, sets the visibility for the given dataset to true. Updates the chart and animates the dataset with 'show' mode. This animation can be configured under the show key in animation options. Please see animations docs for more details.

        If dataIndex is specified, sets the hidden flag of that element to false and updates the chart.

        chart.show(1); // shows dataset at index 1 and does 'show' animation.
        +chart.show(0, 2); // shows the data element at index 2 of the first dataset.
        +

        # setActiveElements(activeElements)

        Sets the active (hovered) elements for the chart. See the "Programmatic Events" sample file to see this in action.

        chart.setActiveElements([
        +    {datasetIndex: 0, index: 1},
        +]);
        +

        # Static: getChart(key)

        Finds the chart instance from the given key. If the key is a string, it is interpreted as the ID of the Canvas node for the Chart. The key can also be a CanvasRenderingContext2D or an HTMLDOMElement. This will return undefined if no Chart is found. To be found, the chart must have previously been created.

        const chart = Chart.getChart("canvas-id");
        +

        # Static: Registro(chartComponentLike)

        Used to Registro plugins, axis types or chart types globally to all your Graficas.

        import { Chart, Tooltip, LinearScale, PointElement, BubbleController } from 'chart.js';
        +Chart.Registro(Tooltip, LinearScale, PointElement, BubbleController);
        +

        # Static: unRegistro(chartComponentLike)

        Used to unRegistro plugins, axis types or chart types globally from all your Graficas.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/axes.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/axes.html new file mode 100644 index 0000000..ed9c7ce --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/axes.html @@ -0,0 +1,132 @@ + + + + + + New Axes | Chart.js + + + + + + + +

        # New Axes

        Axes in Chart.js can be individually extended. Axes should always derive from Chart.Scale but this is not a mandatory requirement.

        class MyScale extends Chart.Scale {
        +    /* extensions ... */
        +}
        +MyScale.id = 'myScale';
        +MyScale.defaults = defaultConfigObject;
        +// MyScale is now derived from Chart.Scale
        +

        Once you have created your scale class, you need to Registro it with the global chart object so that it can be used.

        Chart.Registro(MyScale);
        +// If the new scale is not extending Chart.Scale, the prototype can not be used to detect what
        +// you are trying to Registro - so you need to be explicit:
        +// Chart.registry.addScales(MyScale);
        +

        To use the new scale, simply pass in the string key to the config when creating a chart.

        const lineChart = new Chart(ctx, {
        +    data: data,
        +    type: 'line',
        +    options: {
        +        scales: {
        +            y: {
        +                type: 'myScale' // this is the same id that was set on the scale
        +            }
        +        }
        +    }
        +});
        +

        # Scale Properties

        Scale instances are given the following properties during the fitting process.

        {
        +    left: number, // left edge of the scale bounding box
        +    right: number, // right edge of the bounding box
        +    top: number,
        +    bottom: number,
        +    width: number, // the same as right - left
        +    height: number, // the same as bottom - top
        +    // Margin on each side. Like css, this is outside the bounding box.
        +    margins: {
        +        left: number,
        +        right: number,
        +        top: number,
        +        bottom: number
        +    },
        +    // Amount of padding on the inside of the bounding box (like CSS)
        +    paddingLeft: number,
        +    paddingRight: number,
        +    paddingTop: number,
        +    paddingBottom: number
        +}
        +

        # Scale Interface

        To work with Chart.js, custom scale types must implement the following interface.

        {
        +    // Determines the data limits. Should set this.min and this.max to be the data max/min
        +    determineDataLimits: function() {},
        +    // Generate tick marks. this.chart is the chart instance. The data object can be accessed as this.chart.data
        +    // buildTicks() should create a ticks array on the axis instance, if you intend to use any of the implementations from the base class
        +    buildTicks: function() {},
        +    // Get the label to show for the given value
        +    getLabelForValue: function(value) {},
        +    // Get the pixel (x coordinate for horizontal axis, y coordinate for vertical axis) for a given value
        +    // @param index: index into the ticks array
        +    getPixelForTick: function(index) {},
        +    // Get the pixel (x coordinate for horizontal axis, y coordinate for vertical axis) for a given value
        +    // @param value : the value to get the pixel for
        +    // @param [index] : index into the data array of the value
        +    getPixelForValue: function(value, index) {},
        +    // Get the value for a given pixel (x coordinate for horizontal axis, y coordinate for vertical axis)
        +    // @param pixel : pixel value
        +    getValueForPixel: function(pixel) {}
        +}
        +

        Optionally, the following methods may also be overwritten, but an implementation is already provided by the Chart.Scale base class.

        {
        +    // Adds labels to objects in the ticks array. The default implementation simply calls this.options.ticks.callback(numericalTick, index, ticks);
        +    generateTickLabels: function() {},
        +    // Determine how much the labels will rotate by. The default implementation will only rotate labels if the scale is horizontal.
        +    calculateLabelRotation: function() {},
        +    // Fits the scale into the canvas.
        +    // this.maxWidth and this.maxHeight will tell you the maximum dimensions the scale instance can be. Scales should endeavour to be as efficient as possible with canvas space.
        +    // this.margins is the amount of space you have on either side of your scale that you may expand in to. This is used already for calculating the best label rotation
        +    // You must set this.minSize to be the size of your scale. It must be an object containing 2 properties: width and height.
        +    // You must set this.width to be the width and this.height to be the height of the scale
        +    fit: function() {},
        +    // Draws the scale onto the canvas. this.(left|right|top|bottom) will have been populated to tell you the area on the canvas to draw in
        +    // @param chartArea : an object containing four properties: left, right, top, bottom. This is the rectangle that lines, bars, etc will be drawn in. It may be used, for example, to draw grid lines.
        +    draw: function(chartArea) {}
        +}
        +

        The Core.Scale base class also has some utility functions that you may find useful.

        {
        +    // Returns true if the scale instance is horizontal
        +    isHorizontal: function() {},
        +    // Returns the scale tick objects ({label, major})
        +    getTicks: function() {}
        +}
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/charts.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/charts.html new file mode 100644 index 0000000..918d6b4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/charts.html @@ -0,0 +1,126 @@ + + + + + + New Graficas | Chart.js + + + + + + + +

        # New Graficas

        Chart.js 2.0 introduced the concept of controllers for each dataset. Like scales, new controllers can be written as needed.

        class MyType extends Chart.DatasetController {
        +}
        +Chart.Registro(MyType);
        +// Now we can create a new instance of our chart, using the Chart.js API
        +new Chart(ctx, {
        +    // this is the string the constructor was Registroed at, ie Chart.controllers.MyType
        +    type: 'MyType',
        +    data: data,
        +    options: options
        +});
        +

        # Dataset Controller Interface

        Dataset controllers must implement the following interface.

        {
        +    // Defaults for Graficas of this type
        +    defaults: {
        +        // If set to `false` or `null`, no dataset level element is created.
        +        // If set to a string, this is the type of element to create for the dataset.
        +        // For example, a line create needs to create a line element so this is the string 'line'
        +        datasetElementType: string | null | false,
        +        // If set to `false` or `null`, no elements are created for each data value.
        +        // If set to a string, this is the type of element to create for each data value.
        +        // For example, a line create needs to create a point element so this is the string 'point'
        +        dataElementType: string | null | false,
        +    }
        +    // ID of the controller
        +    id: string;
        +    // Update the elements in response to new data
        +    // @param mode : update mode, core calls this method using any of `'active'`, `'hide'`, `'reset'`, `'resize'`, `'show'` or `undefined`
        +    update: function(mode) {}
        +}
        +

        The following methods may optionally be overridden by derived dataset controllers.

        {
        +    // Draw the representation of the dataset. The base implementation works in most cases, and an example of a derived version
        +    // can be found in the line controller
        +    draw: function() {},
        +    // Initializes the controller
        +    initialize: function() {},
        +    // Ensures that the dataset represented by this controller is linked to a scale. Overridden to helpers.noop in the polar area and doughnut controllers as these
        +    // chart types using a single scale
        +    linkScales: function() {},
        +    // Parse the data into the controller meta data. The default implementation will work for cartesian parsing, but an example of an overridden
        +    // version can be found in the doughnut controller
        +    parse: function(start, count) {},
        +}
        +

        # Extending Existing Chart Types

        Extending or replacing an existing controller type is easy. Simply replace the constructor for one of the built in types with your own.

        The built in controller types are:

        • BarController
        • BubbleController
        • DoughnutController
        • LineController
        • PieController
        • PolarAreaController
        • RadarController
        • ScatterController

        These controllers are also available in the UMD package, directly under Chart. Eg: Chart.BarController.

        For example, to derive a new chart type that extends from a bubble chart, you would do the following.

        import {BubbleController} from 'chart.js';
        +class Custom extends BubbleController {
        +    draw() {
        +        // Call bubble controller method to draw all the points
        +        super.draw(arguments);
        +        // Now we can do some custom drawing for this dataset. Here we'll draw a red box around the first point in each dataset
        +        const meta = this.getMeta();
        +        const pt0 = meta.data[0];
        +        const {x, y} = pt0.getProps(['x', 'y']);
        +        const {radius} = pt0.options;
        +        const ctx = this.chart.ctx;
        +        ctx.save();
        +        ctx.strokeStyle = 'red';
        +        ctx.lineWidth = 1;
        +        ctx.strokeRect(x - radius, y - radius, 2 * radius, 2 * radius);
        +        ctx.restore();
        +    }
        +};
        +Custom.id = 'derivedBubble';
        +Custom.defaults = BubbleController.defaults;
        +// Stores the controller so that the chart initialization routine can look it up
        +Chart.Registro(Custom);
        +// Now we can create and use our new chart type
        +new Chart(ctx, {
        +    type: 'derivedBubble',
        +    data: data,
        +    options: options
        +});
        +

        # TypeScript Typings

        If you want your new chart type to be statically typed, you must provide a .d.ts TypeScript declaration file. Chart.js provides a way to augment built-in types with user-defined ones, by using the concept of "declaration merging".

        When adding a new chart type, ChartTypeRegistry must contains the declarations for the new type, either by extending an existing entry in ChartTypeRegistry or by creating a new one.

        For example, to provide typings for a new chart type that extends from a bubble chart, you would add a .d.ts containing:

        import { ChartTypeRegistry } from 'chart.js'
        +declare module 'chart.js' {
        +    interface ChartTypeRegistry {
        +        derivedBubble: ChartTypeRegistry['bubble']
        +    }
        +}
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/contributing.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/contributing.html new file mode 100644 index 0000000..f55eae5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/contributing.html @@ -0,0 +1,58 @@ + + + + + + Contributing | Chart.js + + + + + + + +

        # Contributing

        New contributions to the library are welcome, but we ask that you please follow these guidelines:

        • Before opening a PR for major additions or changes, please discuss the expected API and/or implementation by filing an issue (opens new window) or asking about it in the Chart.js Slack (opens new window) #dev channel. This will save you development time by getting feedback upfront and make review faster by giving the maintainers more context and details.
        • Consider whether your changes are useful for all Usuarios, or if creating a Chart.js plugin would be more appropriate.
        • Check that your code will pass tests and eslint code standards. npm test will run both the linter and tests for you.
        • Add unit tests and document new functionality (in the test/ and docs/ directories respectively).
        • Avoid breaking changes unless there is an upcoming major release, which is infrequent. We encourage people to write plugins for most new advanced features, and care a lot about backwards compatibility.
        • We strongly prefer new methods to be added as private whenever possible. A method can be made private either by making a top-level function outside of a class or by prefixing it with _ and adding @private JSDoc if inside a class. Public APIs take considerable time to review and become locked once implemented as we have limited ability to change them without breaking backwards compatibility. Private APIs allow the flexibility to address unforeseen cases.

        # Joining the project

        Active committers and contributors are invited to introduce yourself and request commit access to this project. We have a very active Slack community that you can join here (opens new window). If you think you can help, we'd love to have you!

        # Building and Testing

        Firstly, we need to ensure development dependencies are installed. With node and npm installed, after cloning the Chart.js repo to a local directory, and navigating to that directory in the command line, we can run the following:

        > npm install
        +

        This will install the local development dependencies for Chart.js.

        The following commands are now available from the repository root:

        > npm run build             // build dist files in ./dist
        +> npm run autobuild         // build and watch for source changes
        +> npm run dev               // run tests and watch for source and test changes
        +> npm run lint              // perform code linting (ESLint, tsc)
        +> npm test                  // perform code linting and run unit tests with coverage
        +

        npm run dev and npm test can be appended with a string that is used to match the spec filenames. For example: npm run dev plugins will start karma in watch mode for test/specs/**/*plugin*.js.

        # Documentation

        We use Vuepress (opens new window) to manage the docs which are contained as Markdown files in the docs directory. You can run the doc server locally using these commands:

        > npm run docs:dev
        +

        # Image-Based Tests

        Some display-related functionality is difficult to test via typical Jasmine units. For this reason, we introduced image-based tests (#3988 (opens new window) and #5777 (opens new window)) to assert that a chart is drawn pixel-for-pixel matching an expected image.

        Generated Graficas in image-based tests should be as minimal as possible and focus only on the tested feature to prevent failure if another feature breaks (e.g. disable the title and legend when testing scales).

        You can create a new image-based test by following the steps below:

        • Create a JS file (example (opens new window)) or JSON file (example (opens new window)) that defines chart config and generation options.
        • Add this file in test/fixtures/{spec.name}/{feature-name}.json.
        • Add a describe line (opens new window) to the beginning of test/specs/{spec.name}.tests.js if it doesn't exist yet.
        • Run npm run dev.
        • Click the "Debug" button (top/right): a test should fail with the associated canvas visible.
        • Right click on the chart and "Save image as..." test/fixtures/{spec.name}/{feature-name}.png making sure not to activate the tooltip or any hover functionality
        • Refresh the browser page (CTRL+R): test should now pass
        • Verify test relevancy by changing the feature values slightly in the JSON file.

        Tests should pass in both browsers. In general, we've hidden all text in image tests since it's quite difficult to get them passing between different browsers. As a result, it is recommended to hide all scales in image-based tests. It is also recommended to disable animations. If tests still do not pass, adjust tolerance and/or threshold (opens new window) at the beginning of the JSON file keeping them as low as possible.

        When a test fails, the expected and actual images are shown. If you'd like to see the images even when the tests pass, set "debug": true in the JSON file.

        # Bugs and Issues

        Please report these on the GitHub page - at github.com/chartjs/Chart.js. Please do not use issues for support requests. For help using Chart.js, please take a look at the chart.js (opens new window) tag on Stack Overflow.

        Well structured, detailed bug reports are hugely valuable for the project.

        Guidelines for reporting bugs:

        Please provide any additional details associated with the bug, if it's browser or screen density specific, or only happens with a certain configuration or data.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/index.html new file mode 100644 index 0000000..dc92d7b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/index.html @@ -0,0 +1,54 @@ + + + + + + Developers | Chart.js + + + + + + + +

        # Developers

        Developer features allow extending and enhancing Chart.js in many different ways.

        # Latest resources

        Latest documentation and samples, including unreleased features, are available at:

        # Development releases

        Latest builds are available for testing at:

        WARNING: Development builds MUST not be used for production purposes or as replacement for CDN.

        # Browser support

        All modern and up-to-date browsers are supported, including, but not limited to:

        Chrome +Edge +Firefox +Safari

        As of version 3, we have dropped Internet Explorer 11 support.

        Browser support for the canvas element is available in all modern & major mobile browsers. CanIUse (opens new window)

        Run npx browserslist at the root of the codebase (opens new window) to get a list of supported browsers.

        Thanks to BrowserStack (opens new window) for allowing our team to test on thousands of browsers.

        # Previous versions

        To migrate from version 2 to version 3, please see the v3 migration guide.

        Version 3 has a largely different API than earlier versions.

        Most earlier version options have current equivalents or are the same.

        Please note - documentation for previous versions is available online or in the GitHub repo.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/plugins.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/plugins.html new file mode 100644 index 0000000..ab5b090 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/plugins.html @@ -0,0 +1,117 @@ + + + + + + Plugins | Chart.js + + + + + + + +

        # Plugins

        Plugins are the most efficient way to customize or change the default behavior of a chart. They have been introduced at version 2.1.0 (opens new window) (global plugins only) and extended at version 2.5.0 (opens new window) (per chart plugins and options).

        # Using plugins

        Plugins can be shared between chart instances:

        const plugin = { /* plugin implementation */ };
        +// chart1 and chart2 use "plugin"
        +const chart1 = new Chart(ctx, {
        +    plugins: [plugin]
        +});
        +const chart2 = new Chart(ctx, {
        +    plugins: [plugin]
        +});
        +// chart3 doesn't use "plugin"
        +const chart3 = new Chart(ctx, {});
        +

        Plugins can also be defined directly in the chart plugins config (a.k.a. inline plugins):

        WARNING

        inline plugins are not Registroed. Some plugins require Registroing, i.e. can't be used inline.

        const chart = new Chart(ctx, {
        +    plugins: [{
        +        beforeInit: function(chart, args, options) {
        +            //..
        +        }
        +    }]
        +});
        +

        However, this approach is not ideal when the customization needs to apply to many Graficas.

        # Global plugins

        Plugins can be Registroed globally to be applied on all Graficas (a.k.a. global plugins):

        Chart.Registro({
        +    // plugin implementation
        +});
        +

        WARNING

        inline plugins can't be Registroed globally.

        # Configuration

        # Plugin ID

        Plugins must define a unique id in order to be configurable.

        This id should follow the npm package name convention (opens new window):

        • can't start with a dot or an underscore
        • can't contain any non-URL-safe characters
        • can't contain uppercase letters
        • should be something short, but also reasonably descriptive

        If a plugin is intended to be released publicly, you may want to check the registry (opens new window) to see if there's something by that name already. Note that in this case, the package name should be prefixed by chartjs-plugin- to appear in Chart.js plugin registry.

        # Plugin options

        Plugin options are located under the options.plugins config and are scoped by the plugin ID: options.plugins.{plugin-id}.

        const chart = new Chart(ctx, {
        +    options: {
        +        foo: { ... },           // chart 'foo' option
        +        plugins: {
        +            p1: {
        +                foo: { ... },   // p1 plugin 'foo' option
        +                bar: { ... }
        +            },
        +            p2: {
        +                foo: { ... },   // p2 plugin 'foo' option
        +                bla: { ... }
        +            }
        +        }
        +    }
        +});
        +

        # Disable plugins

        To disable a global plugin for a specific chart instance, the plugin options must be set to false:

        Chart.Registro({
        +    id: 'p1',
        +    // ...
        +});
        +const chart = new Chart(ctx, {
        +    options: {
        +        plugins: {
        +            p1: false   // disable plugin 'p1' for this instance
        +        }
        +    }
        +});
        +

        To disable all plugins for a specific chart instance, set options.plugins to false:

        const chart = new Chart(ctx, {
        +    options: {
        +        plugins: false // all plugins are disabled for this instance
        +    }
        +});
        +

        # Plugin defaults

        You can set default values for your plugin options in the defaults entry of your plugin object. In the example below the canvas will always have a lightgreen backgroundColor unless the user overrides this option in options.plugins.custom_canvas_background_color.color.

        const plugin = {
        +    id: 'custom_canvas_background_color',
        +    beforeDraw: (chart, args, options) => {
        +        const {ctx} = chart;
        +        ctx.save();
        +        ctx.globalCompositeOperation = 'destination-over';
        +        ctx.fillStyle = options.color;
        +        ctx.fillRect(0, 0, chart.width, chart.height);
        +        ctx.restore();
        +    },
        +    defaults: {
        +        color: 'lightGreen'
        +    }
        +}
        +

        # Plugin Core API

        Read more about the existing plugin extension hooks.

        # Chart Initialization

        Plugins are notified during the initialization process. These hooks can be used to setup data needed for the plugin to operate.

        Chart.js init flowchart

        # Chart Update

        Plugins are notified throughout the update process.

        Chart.js update flowchart

        # Scale Update

        Plugins are notified throughout the scale update process.

        Chart.js scale update flowchart

        # Rendering

        Plugins can interact with the chart throughout the render process. The rendering process is documented in the flowchart below. Each of the green processes is a plugin notification. The red lines indicate how cancelling part of the render process can occur when a plugin returns false from a hook. Not all hooks are cancelable, however, in general most before* hooks can be cancelled.

        Chart.js render pipeline flowchart

        # Event Handling

        Plugins can interact with the chart during the event handling process. The event handling flow is documented in the flowchart below. Each of the green processes is a plugin notification. If a plugin makes changes that require a re-render, the plugin can set args.changed to true to indicate that a render is needed. The built-in tooltip plugin uses this method to indicate when the tooltip has changed.

        Chart.js event handling flowchart

        # Chart destroy

        Plugins are notified during the destroy process. These hooks can be used to destroy things that the plugin made and used during its life. +The destroy hook has been deprecated since Chart.js version 3.7.0, use the afterDestroy hook instead.

        Chart.js destroy flowchart

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/publishing.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/publishing.html new file mode 100644 index 0000000..d03b69c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/publishing.html @@ -0,0 +1,62 @@ + + + + + + Publishing an extension | Chart.js + + + + + + + +

        # Publishing an extension

        If you are planning on publishing an extension for Chart.js, here are a some pointers.

        # Awesome

        You'd probably want your extension to be listed in the awesome (opens new window).

        Note the minimum extension age requirement of 30 days.

        # ESM

        If you are utilizing ESM, you probably still want to publish an UMD bundle of your extension. Because Chart.js v3 is tree shakeable, the interface is a bit different. +UMD package's global Chart includes everything, while ESM package exports all the things separately. +Fortunately, most of the exports can be mapped automatically by the bundlers.

        But not the helpers.

        In UMD, helpers are available through Chart.helpers. In ESM, they are imported from chart.js/helpers.

        For example import {isNullOrUndef} from 'chart.js/helpers' is available at Chart.helpers.isNullOrUndef for UMD.

        # Rollup

        output.globals can be used to convert the helpers.

        module.exports = {
        +  // ...
        +  output: {
        +    globals: {
        +      'chart.js': 'Chart',
        +      'chart.js/helpers': 'Chart.helpers'
        +    }
        +  }
        +};
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/developers/updates.html b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/updates.html new file mode 100644 index 0000000..cbb6dd2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/developers/updates.html @@ -0,0 +1,110 @@ + + + + + + Updating Graficas | Chart.js + + + + + + + +

        # Updating Graficas

        It's pretty common to want to update Graficas after they've been created. When the chart data or options are changed, Chart.js will animate to the new data values and options.

        # Adding or Removing Data

        Adding and removing data is supported by changing the data array. To add data, just add data into the data array as seen in this example.

        function addData(chart, label, data) {
        +    chart.data.labels.push(label);
        +    chart.data.datasets.forEach((dataset) => {
        +        dataset.data.push(data);
        +    });
        +    chart.update();
        +}
        +function removeData(chart) {
        +    chart.data.labels.pop();
        +    chart.data.datasets.forEach((dataset) => {
        +        dataset.data.pop();
        +    });
        +    chart.update();
        +}
        +

        # Updating Options

        To update the options, mutating the options property in place or passing in a new options object are supported.

        • If the options are mutated in place, other option properties would be preserved, including those calculated by Chart.js.
        • If created as a new object, it would be like creating a new chart with the options - old options would be discarded.
        function updateConfigByMutating(chart) {
        +    chart.options.plugins.title.text = 'new title';
        +    chart.update();
        +}
        +function updateConfigAsNewObject(chart) {
        +    chart.options = {
        +        responsive: true,
        +        plugins: {
        +            title: {
        +                display: true,
        +                text: 'Chart.js'
        +            }
        +        },
        +        scales: {
        +            x: {
        +                display: true
        +            },
        +            y: {
        +                display: true
        +            }
        +        }
        +    };
        +    chart.update();
        +}
        +

        Scales can be updated separately without changing other options. +To update the scales, pass in an object containing all the customization including those unchanged ones.

        Variables referencing any one from chart.scales would be lost after updating scales with a new id or the changed type.

        function updateScales(chart) {
        +    let xScale = chart.scales.x;
        +    let yScale = chart.scales.y;
        +    chart.options.scales = {
        +        newId: {
        +            display: true
        +        },
        +        y: {
        +            display: true,
        +            type: 'logarithmic'
        +        }
        +    };
        +    chart.update();
        +    // need to update the reference
        +    xScale = chart.scales.newId;
        +    yScale = chart.scales.y;
        +}
        +

        You can also update a specific scale either by its id.

        function updateScale(chart) {
        +    chart.options.scales.y = {
        +        type: 'logarithmic'
        +    };
        +    chart.update();
        +}
        +

        Code sample for updating options can be found in toggle-scale-type.html (opens new window).

        # Preventing Animations

        Sometimes when a chart updates, you may not want an animation. To achieve this you can call update with 'none' as mode.

        myChart.update('none');
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/favicon.ico b/Practica-14.5/src/assets/vendor/chart.js/docs/favicon.ico new file mode 100644 index 0000000..5192a32 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/favicon.ico differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/accessibility.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/accessibility.html new file mode 100644 index 0000000..abc89ac --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/accessibility.html @@ -0,0 +1,57 @@ + + + + + + Accessibility | Chart.js + + + + + + + +

        # Accessibility

        Chart.js Graficas are rendered on user provided canvas elements. Thus, it is up to the user to create the canvas element in a way that is accessible. The canvas element has support in all browsers and will render on screen but the canvas content will not be accessible to screen readers.

        With canvas, the accessibility has to be added with ARIA attributes on the canvas element or added using internal fallback content placed within the opening and closing canvas tags.

        This website (opens new window) has a more detailed explanation of canvas accessibility as well as in depth examples.

        # Examples

        These are some examples of accessible canvas elements.

        By setting the role and aria-label, this canvas now has an accessible name.

        <canvas id="goodCanvas1" width="400" height="100" aria-label="Hello ARIA World" role="img"></canvas>
        +

        This canvas element has a text alternative via fallback content.

        <canvas id="okCanvas2" width="400" height="100">
        +    <p>Hello Fallback World</p>
        +</canvas>
        +

        These are some bad examples of inaccessible canvas elements.

        This canvas element does not have an accessible name or role.

        <canvas id="badCanvas1" width="400" height="100"></canvas>
        +

        This canvas element has inaccessible fallback content.

        <canvas id="badCanvas2" width="400" height="100">Your browser does not support the canvas element.</canvas>
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/colors.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/colors.html new file mode 100644 index 0000000..43f5c31 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/colors.html @@ -0,0 +1,78 @@ + + + + + + Colors | Chart.js + + + + + + + +

        # Colors

        When supplying colors to Chart options, you can use a number of formats. You can specify the color as a string in hexadecimal, RGB, or HSL notations. If a color is needed, but not specified, Chart.js will use the global default color. There are 3 color options, stored at Chart.defaults, to set:

        Name Type Default Description
        backgroundColor Color rgba(0, 0, 0, 0.1) Background color.
        borderColor Color rgba(0, 0, 0, 0.1) Border color.
        color Color #666 Font color.

        You can also pass a CanvasGradient (opens new window) object. You will need to create this before passing to the chart, but using it you can achieve some interesting effects.

        # Patterns and Gradients

        An alternative option is to pass a CanvasPattern (opens new window) or CanvasGradient (opens new window) object instead of a string colour.

        For example, if you wanted to fill a dataset with a pattern from an image you could do the following.

        const img = new Image();
        +img.src = 'https://example.com/my_image.png';
        +img.onload = function() {
        +    const ctx = document.getElementById('canvas').getContext('2d');
        +    const fillPattern = ctx.createPattern(img, 'repeat');
        +    const chart = new Chart(ctx, {
        +        data: {
        +            labels: ['Item 1', 'Item 2', 'Item 3'],
        +            datasets: [{
        +                data: [10, 20, 30],
        +                backgroundColor: fillPattern
        +            }]
        +        }
        +    });
        +};
        +

        Using pattern fills for data graphics can help viewers with vision deficiencies (e.g. color-blindness or partial sight) to more easily understand your data (opens new window).

        Using the Patternomaly (opens new window) library you can generate patterns to fill datasets.

        const chartData = {
        +    datasets: [{
        +        data: [45, 25, 20, 10],
        +        backgroundColor: [
        +            pattern.draw('square', '#ff6384'),
        +            pattern.draw('circle', '#36a2eb'),
        +            pattern.draw('diamond', '#cc65fe'),
        +            pattern.draw('triangle', '#ffce56')
        +        ]
        +    }],
        +    labels: ['Red', 'Blue', 'Purple', 'Yellow']
        +};
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/data-structures.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/data-structures.html new file mode 100644 index 0000000..33136dd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/data-structures.html @@ -0,0 +1,147 @@ + + + + + + Data structures | Chart.js + + + + + + + +

        # Data structures

        The data property of a dataset can be passed in various formats. By default, that data is parsed using the associated chart type and scales.

        If the labels property of the main data property is used, it has to contain the same amount of elements as the dataset with the most values. These labels are used to label the index axis (default x axes). The values for the labels have to be provided in an array. +The provided labels can be of the type string or number to be rendered correctly. In case you want multiline labels you can provide an array with each line as one entry in the array.

        # Primitive[]

        type: 'bar',
        +data: {
        +    datasets: [{
        +      data: [20, 10],
        +    }],
        +    labels: ['a', 'b']
        +}
        +

        When the data is an array of numbers, values from labels array at the same index are used for the index axis (x for vertical, y for horizontal Graficas).

        # Object[]

        type: 'line',
        +data: {
        +  datasets: [{
        +    data: [{x: 10, y: 20}, {x: 15, y: null}, {x: 20, y: 10}]
        +  }]
        +}
        +
        type: 'line',
        +data: {
        +  datasets: [{
        +    data: [{x:'2016-12-25', y:20}, {x:'2016-12-26', y:10}]
        +  }]
        +}
        +
        type: 'bar',
        +data: {
        +  datasets: [{
        +    data: [{x:'Sales', y:20}, {x:'Revenue', y:10}]
        +  }]
        +}
        +

        This is also the internal format used for parsed data. In this mode, parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.

        The values provided must be parsable by the associated scales or in the internal format of the associated scales. A common mistake would be to provide integers for the category scale, which uses integers as an internal format, where each integer represents an index in the labels array. null can be used for skipped values.

        # Object[] using custom properties

        type: 'bar',
        +data: {
        +    datasets: [{
        +        data: [{id: 'Sales', nested: {value: 1500}}, {id: 'Purchases', nested: {value: 500}}]
        +    }]
        +},
        +options: {
        +    parsing: {
        +        xAxisKey: 'id',
        +        yAxisKey: 'nested.value'
        +    }
        +}
        +

        When using the pie/doughnut, radar or polarArea chart type, the parsing object should have a key item that points to the value to look at. In this example, the doughnut chart will show two items with values 1500 and 500.

        type: 'doughnut',
        +data: {
        +    datasets: [{
        +        data: [{id: 'Sales', nested: {value: 1500}}, {id: 'Purchases', nested: {value: 500}}]
        +    }]
        +},
        +options: {
        +    parsing: {
        +        key: 'nested.value'
        +    }
        +}
        +

        If the key contains a dot, it needs to be escaped with a double slash:

        type: 'line',
        +data: {
        +    datasets: [{
        +        data: [{ 'data.key': 'one', 'data.value': 20 }, { 'data.key': 'two', 'data.value': 30 }]
        +    }]
        +},
        +options: {
        +    parsing: {
        +      xAxisKey: 'data\\.key',
        +      yAxisKey: 'data\\.value'
        +    }
        +}
        +

        WARNING

        When using object notation in a radar chart you still need a labels array with labels for the chart to show correctly.

        # Object

        type: 'pie',
        +data: {
        +    datasets: [{
        +      data: {
        +          January: 10,
        +          February: 20
        +      }
        +    }]
        +}
        +

        In this mode, property name is used for index scale and value for value scale. For vertical Graficas, index scale is x and value scale is y.

        # Dataset Configuration

        Name Type Description
        label string The label for the dataset which appears in the legend and tooltips.
        clip number|object How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: clip: {left: 5, top: false, right: -2, bottom: 0}
        order number The drawing order of dataset. Also affects order for stacking, tooltip and legend.
        stack string The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). Defaults to dataset type.
        parsing boolean|object How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally.
        hidden boolean Configure the visibility of the dataset. Using hidden: true will hide the dataset from being rendered in the Chart.

        # parsing

        const data = [{x: 'Jan', net: 100, cogs: 50, gm: 50}, {x: 'Feb', net: 120, cogs: 55, gm: 75}];
        +const cfg = {
        +    type: 'bar',
        +    data: {
        +        labels: ['Jan', 'Feb'],
        +        datasets: [{
        +            label: 'Net sales',
        +            data: data,
        +            parsing: {
        +                yAxisKey: 'net'
        +            }
        +        }, {
        +            label: 'Cost of goods sold',
        +            data: data,
        +            parsing: {
        +                yAxisKey: 'cogs'
        +            }
        +        }, {
        +            label: 'Gross margin',
        +            data: data,
        +            parsing: {
        +                yAxisKey: 'gm'
        +            }
        +        }]
        +    },
        +};
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/fonts.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/fonts.html new file mode 100644 index 0000000..7c1039c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/fonts.html @@ -0,0 +1,68 @@ + + + + + + Fonts | Chart.js + + + + + + + +

        # Fonts

        There are special global settings that can change all of the fonts on the chart. These options are in Chart.defaults.font. The global font settings only apply when more specific options are not included in the config.

        For example, in this chart the text will have a font size of 16px except for the labels in the legend.

        Chart.defaults.font.size = 16;
        +let chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        plugins: {
        +            legend: {
        +                labels: {
        +                    // This more specific font property overrides the global property
        +                    font: {
        +                        size: 14
        +                    }
        +                }
        +            }
        +        }
        +    }
        +});
        +
        Name Type Default Description
        family string "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" Default font family for all text, follows CSS font-family options.
        size number 12 Default font size (in px) for text. Does not apply to radialLinear scale point labels.
        style string 'normal' Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit).
        weight string undefined Default font weight (boldness). (see MDN (opens new window)).
        lineHeight number|string 1.2 Height of an individual line of text (see MDN (opens new window)).

        # Missing Fonts

        If a font is specified for a chart that does exist on the system, the browser will not apply the font when it is set. If you notice odd fonts appearing in your Graficas, check that the font you are applying exists on your system. See issue 3318 (opens new window) for more details.

        # Loading Fonts

        If a font is not cached and needs to be loaded, Graficas that use the font will need to be updated once the font is loaded. This can be accomplished using the Font Loading APIs (opens new window). See issue 8020 (opens new window) for more details.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/index.html new file mode 100644 index 0000000..cd68ab2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/options.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/options.html new file mode 100644 index 0000000..39ed312 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/options.html @@ -0,0 +1,71 @@ + + + + + + Options | Chart.js + + + + + + + +

        # Options

        # Option resolution

        Options are resolved from top to bottom, using a context dependent route.

        # Chart level options

        • options
        • overrides[config.type]
        • defaults

        # Dataset level options

        dataset.type defaults to config.type, if not specified.

        • dataset
        • options.datasets[dataset.type]
        • options
        • overrides[config.type].datasets[dataset.type]
        • defaults.datasets[dataset.type]
        • defaults

        # Dataset animation options

        • dataset.animation
        • options.datasets[dataset.type].animation
        • options.animation
        • overrides[config.type].datasets[dataset.type].animation
        • defaults.datasets[dataset.type].animation
        • defaults.animation

        # Dataset element level options

        Each scope is looked up with elementType prefix in the option name first, then without the prefix. For example, radius for point element is looked up using pointRadius and if that does not hit, then radius.

        • dataset
        • options.datasets[dataset.type]
        • options.datasets[dataset.type].elements[elementType]
        • options.elements[elementType]
        • options
        • overrides[config.type].datasets[dataset.type]
        • overrides[config.type].datasets[dataset.type].elements[elementType]
        • defaults.datasets[dataset.type]
        • defaults.datasets[dataset.type].elements[elementType]
        • defaults.elements[elementType]
        • defaults

        # Scale options

        • options.scales
        • overrides[config.type].scales
        • defaults.scales
        • defaults.scale

        # Plugin options

        A plugin can provide additionalOptionScopes array of paths to additionally look for its options in. For root scope, use empty string: ''. Most core plugins also take options from root scope.

        • options.plugins[plugin.id]
        • (options.[...plugin.additionalOptionScopes])
        • overrides[config.type].plugins[plugin.id]
        • defaults.plugins[plugin.id]
        • (defaults.[...plugin.additionalOptionScopes])

        # Scriptable Options

        Scriptable options also accept a function which is called for each of the underlying data values and that takes the unique argument context representing contextual information (see option context). +A resolver is passed as second parameter, that can be used to access other options in the same context.

        Note

        The context argument should be validated in the scriptable function, because the function can be invoked in different contexts. The type field is a good candidate for this validation.

        Example:

        color: function(context) {
        +    const index = context.dataIndex;
        +    const value = context.dataset.data[index];
        +    return value < 0 ? 'red' :  // draw negative values in red
        +        index % 2 ? 'blue' :    // else, alternate values in blue and green
        +        'green';
        +},
        +borderColor: function(context, options) {
        +    const color = options.color; // resolve the value of another scriptable option: 'red', 'blue' or 'green'
        +    return Chart.helpers.color(color).lighten(0.2);
        +}
        +

        # Indexable Options

        Indexable options also accept an array in which each item corresponds to the element at the same index. Note that if there are less items than data, the items are looped over. In many cases, using a function is more appropriate if supported.

        Example:

        color: [
        +    'red',    // color for data at index 0
        +    'blue',   // color for data at index 1
        +    'green',  // color for data at index 2
        +    'black',  // color for data at index 3
        +    //...
        +]
        +

        # Option Context

        The option context is used to give contextual information when resolving options and currently only applies to scriptable options. +The object is preserved, so it can be used to store and pass information between calls.

        There are multiple levels of context objects:

        • chart
          • dataset
            • data
          • scale
            • tick
            • pointLabel (only used in the radial linear scale)
          • tooltip

        Each level inherits its parent(s) and any contextual information stored in the parent is available through the child.

        The context object contains the following properties:

        # chart

        • chart: the associated chart
        • type: 'chart'

        # dataset

        In addition to chart

        • active: true if element is active (hovered)
        • dataset: dataset at index datasetIndex
        • datasetIndex: index of the current dataset
        • index: same as datasetIndex
        • mode: the update mode
        • type: 'dataset'

        # data

        In addition to dataset

        • active: true if element is active (hovered)
        • dataIndex: index of the current data
        • parsed: the parsed data values for the given dataIndex and datasetIndex
        • raw: the raw data values for the given dataIndex and datasetIndex
        • element: the element (point, arc, bar, etc.) for this data
        • index: same as dataIndex
        • type: 'data'

        # scale

        In addition to chart

        • scale: the associated scale
        • type: 'scale'

        # tick

        In addition to scale

        • tick: the associated tick object
        • index: tick index
        • type: 'tick'

        # tooltip

        In addition to chart

        • tooltip: the tooltip object
        • tooltipItems: the items the tooltip is displaying
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/padding.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/padding.html new file mode 100644 index 0000000..4eadb24 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/padding.html @@ -0,0 +1,87 @@ + + + + + + Padding | Chart.js + + + + + + + +

        # Padding

        Padding values in Chart options can be supplied in couple of different formats.

        # Number

        If this value is a number, it is applied to all sides (left, top, right, bottom).

        For example, defining a 20px padding to all sides of chart:

        let chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        layout: {
        +            padding: 20
        +        }
        +    }
        +});
        +

        # {top, left, bottom, right} object

        If this value is an object, the left property defines the left padding. Similarly the right, top and bottom properties can also be specified. +Omitted properties default to 0.

        Lets say you wanted to add 50px of padding to the left side of the chart canvas, you would do:

        let chart = new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        layout: {
        +            padding: {
        +                left: 50
        +            }
        +        }
        +    }
        +});
        +

        # {x, y} object

        This is a shorthand for defining left/right and top/bottom to the same values.

        For example, 10px left / right and 4px top / bottom padding on a Radial Linear Axis tick backdropPadding:

        let chart = new Chart(ctx, {
        +    type: 'radar',
        +    data: data,
        +    options: {
        +        scales: {
        +          r: {
        +            ticks: {
        +              backdropPadding: {
        +                  x: 10,
        +                  y: 4
        +              }
        +            }
        +        }
        +    }
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/general/performance.html b/Practica-14.5/src/assets/vendor/chart.js/docs/general/performance.html new file mode 100644 index 0000000..f32b86e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/general/performance.html @@ -0,0 +1,133 @@ + + + + + + Performance | Chart.js + + + + + + + +

        # Performance

        Chart.js Graficas are rendered on canvas elements, which makes rendering quite fast. For large datasets or performance sensitive applications, you may wish to consider the tips below.

        # Data structure and format

        # Parsing

        Provide prepared data in the internal format accepted by the dataset and scales, and set parsing: false. See Data structures for more information.

        # Data normalization

        Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so. Even without this option, it can sometimes still be faster to provide sorted data.

        # Decimation

        Decimating your data will achieve the best results. When there is a lot of data to display on the graph, it doesn't make sense to show tens of thousands of data points on a graph that is only a few hundred pixels wide.

        The decimation plugin can be used with line Graficas to decimate data before the chart is rendered. This will provide the best performance since it will reduce the memory needed to render the chart.

        Line Graficas are able to do automatic data decimation during draw, when certain conditions are met. You should still consider decimating data yourself before passing it in for maximum performance since the automatic decimation occurs late in the chart life cycle.

        # Tick Calculation

        # Rotation

        Specify a rotation value by setting minRotation and maxRotation to the same value, which avoids the chart from having to automatically determine a value to use.

        # Sampling

        Set the ticks.sampleSize option. This will determine how large your labels are by looking at only a subset of them in order to render axes more quickly. This works best if there is not a large variance in the size of your labels.

        # Disable Animations

        If your Graficas have long render times, it is a good idea to disable animations. Doing so will mean that the chart needs to only be rendered once during an update instead of multiple times. This will have the effect of reducing CPU usage and improving general page performance. +Line Graficas use Path2D caching when animations are disabled and Path2D is available.

        To disable animations

        new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        animation: false
        +    }
        +});
        +

        # Specify min and max for scales

        If you specify the min and max, the scale does not have to compute the range from the data.

        new Chart(ctx, {
        +    type: 'line',
        +    data: data,
        +    options: {
        +        scales: {
        +            x: {
        +                type: 'time',
        +                min: new Date('2019-01-01').valueOf(),
        +                max: new Date('2019-12-31').valueOf()
        +            },
        +            y: {
        +                type: 'linear',
        +                min: 0,
        +                max: 100
        +            }
        +        }
        +    }
        +});
        +

        # Parallel rendering with web workers (Chromium only)

        Chromium (Chrome: version 69, Edge: 79, Opera: 56) added the ability to transfer rendering control of a canvas (opens new window) to a web worker. Web workers can use the OffscreenCanvas API (opens new window) to render from a web worker onto canvases in the DOM. Chart.js is a canvas-based library and supports rendering in a web worker - just pass an OffscreenCanvas into the Chart constructor instead of a Canvas element. Note that as of today, this API is only supported in Chromium based browsers.

        By moving all Chart.js calculations onto a separate thread, the main thread can be freed up for other uses. Some tips and tricks when using Chart.js in a web worker:

        • Transferring data between threads can be expensive, so ensure that your config and data objects are as small as possible. Try generating them on the worker side if you can (workers can make HTTP requests!) or passing them to your worker as ArrayBuffers, which can be transferred quickly from one thread to another.
        • You can't transfer functions between threads, so if your config object includes functions you'll have to strip them out before transferring and then add them back later.
        • You can't access the DOM from worker threads, so Chart.js plugins that use the DOM (including any mouse interactions) will likely not work.
        • Ensure that you have a fallback if you support browsers other than the most modern Chromium browsers.
        • Resizing the chart must be done manually. See an example in the worker code below.

        Example main thread code:

        const config = {};
        +const canvas = new HTMLCanvasElement();
        +const offscreenCanvas = canvas.transferControlToOffscreen();
        +const worker = new Worker('worker.js');
        +worker.postMessage({canvas: offscreenCanvas, config}, [offscreenCanvas]);
        +

        Example worker code, in worker.js:

        onmessage = function(event) {
        +    const {canvas, config} = event.data;
        +    const chart = new Chart(canvas, config);
        +    // Resizing the chart must be done manually, since OffscreenCanvas does not include event listeners.
        +    canvas.width = 100;
        +    canvas.height = 100;
        +    chart.resize();
        +};
        +

        # Line Graficas

        # Leave Bézier curves disabled

        If you are drawing lines on your chart, disabling Bézier curves will improve render times since drawing a straight line is more performant than a Bézier curve. Bézier curves are disabled by default.

        # Automatic data decimation during draw

        Line element will automatically decimate data, when tension, stepped, and borderDash are left set to their default values (false, 0, and [] respectively). This improves rendering speed by skipping drawing of invisible line segments.

        # Enable spanGaps

        If you have a lot of data points, it can be more performant to enable spanGaps. This disables segmentation of the line, which can be an unneeded step.

        To enable spanGaps:

        new Chart(ctx, {
        +    type: 'line',
        +    data: {
        +        datasets: [{
        +            spanGaps: true // enable for a single dataset
        +        }]
        +    },
        +    options: {
        +        spanGaps: true // enable for all datasets
        +    }
        +});
        +

        # Disable Line Drawing

        If you have a lot of data points, it can be more performant to disable rendering of the line for a dataset and only draw points. Doing this means that there is less to draw on the canvas which will improve render performance.

        To disable lines:

        new Chart(ctx, {
        +    type: 'line',
        +    data: {
        +        datasets: [{
        +            showLine: false // disable for a single dataset
        +        }]
        +    },
        +    options: {
        +        showLine: false // disable for all datasets
        +    }
        +});
        +

        # Disable Point Drawing

        If you have a lot of data points, it can be more performant to disable rendering of the points for a dataset and only draw line. Doing this means that there is less to draw on the canvas which will improve render performance.

        To disable point drawing:

        new Chart(ctx, {
        +    type: 'line',
        +    data: {
        +        datasets: [{
        +            pointRadius: 0 // disable for a single dataset
        +        }]
        +    },
        +    options: {
        +        datasets: {
        +            line: {
        +                pointRadius: 0 // disable for all `'line'` datasets
        +            }
        +        },
        +        elements: {
        +            point: {
        +                radius: 0 // default to disabled in all datasets
        +            }
        +        }
        +    }
        +});
        +

        # When transpiling with Babel, consider using loose mode

        Babel 7.9 changed the way classes are constructed. It is slow, unless used with loose mode. +More information (opens new window)

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/index.html new file mode 100644 index 0000000..24a55b0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/index.html @@ -0,0 +1,129 @@ + + + + + + Getting Started | Chart.js + + + + + + + +

        # Getting Started

        Let's get started using Chart.js!

        First, we need to have a canvas in our page. It's recommended to give the chart its own container for responsiveness.

        <div>
        +  <canvas id="myChart"></canvas>
        +</div>
        +

        Now that we have a canvas we can use, we need to include Chart.js in our page.

        <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
        +

        Now, we can create a chart. We add a script to our page:

        <script>
        +  const labels = [
        +    'January',
        +    'February',
        +    'March',
        +    'April',
        +    'May',
        +    'June',
        +  ];
        +  const data = {
        +    labels: labels,
        +    datasets: [{
        +      label: 'My First dataset',
        +      backgroundColor: 'rgb(255, 99, 132)',
        +      borderColor: 'rgb(255, 99, 132)',
        +      data: [0, 10, 5, 2, 20, 30, 45],
        +    }]
        +  };
        +  const config = {
        +    type: 'line',
        +    data: data,
        +    options: {}
        +  };
        +</script>
        +

        Finally, render the chart using our configuration:

        <script>
        +  const myChart = new Chart(
        +    document.getElementById('myChart'),
        +    config
        +  );
        +</script>
        +

        It's that easy to get started using Chart.js! From here you can explore the many options that can help you customise your Graficas with scales, tooltips, labels, colors, custom actions, and much more.

        Here the sample above is presented with our sample block:

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {}
        +};

        Note

        As you can see, some of the boilerplate needed is not visible in our sample blocks, as the samples focus on the configuration options.

        All our examples are available online.

        To run the samples locally you first have to install all the necessary packages using the npm ci command, after this you can run npm run docs:dev to build the documentation. As soon as the build is done, you can go to http://localhost:8080/samples/ (opens new window) to see the samples.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/installation.html b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/installation.html new file mode 100644 index 0000000..22bcab3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/installation.html @@ -0,0 +1,52 @@ + + + + + + Installation | Chart.js + + + + + + + +

        # npm

        npm (opens new window) npm (opens new window)

        npm install chart.js
        +

        # CDN

        # CDNJS

        cdnjs (opens new window)

        Chart.js built files are available on CDNJS (opens new window):

        https://cdnjs.com/libraries/Chart.js (opens new window)

        # jsDelivr

        jsdelivr (opens new window) jsdelivr hits (opens new window)

        Chart.js built files are also available through jsDelivr (opens new window):

        https://www.jsdelivr.com/package/npm/chart.js?path=dist (opens new window)

        # Github

        github (opens new window)

        You can download the latest version of Chart.js on GitHub (opens new window).

        If you download or clone the repository, you must build Chart.js to generate the dist files. Chart.js no longer comes with prebuilt release versions, so an alternative option to downloading the repo is strongly advised.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/integration.html b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/integration.html new file mode 100644 index 0000000..f914fa3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/integration.html @@ -0,0 +1,138 @@ + + + + + + Integration | Chart.js + + + + + + + +

        # Integration

        Chart.js can be integrated with plain JavaScript or with different module loaders. The examples below show how to load Chart.js in different systems.

        # Script Tag

        <script src="path/to/chartjs/dist/chart.js"></script>
        +<script>
        +    const myChart = new Chart(ctx, {...});
        +</script>
        +

        # Common JS

        const Chart = require('chart.js');
        +const myChart = new Chart(ctx, {...});
        +

        # Bundlers (Webpack, Rollup, etc.)

        Chart.js 3 is tree-shakeable, so it is necessary to import and Registro the controllers, elements, scales and plugins you are going to use.

        For all available imports see the example below.

        import {
        +  Chart,
        +  ArcElement,
        +  LineElement,
        +  BarElement,
        +  PointElement,
        +  BarController,
        +  BubbleController,
        +  DoughnutController,
        +  LineController,
        +  PieController,
        +  PolarAreaController,
        +  RadarController,
        +  ScatterController,
        +  CategoryScale,
        +  LinearScale,
        +  LogarithmicScale,
        +  RadialLinearScale,
        +  TimeScale,
        +  TimeSeriesScale,
        +  Decimation,
        +  Filler,
        +  Legend,
        +  Title,
        +  Tooltip,
        +  SubTitle
        +} from 'chart.js';
        +Chart.Registro(
        +  ArcElement,
        +  LineElement,
        +  BarElement,
        +  PointElement,
        +  BarController,
        +  BubbleController,
        +  DoughnutController,
        +  LineController,
        +  PieController,
        +  PolarAreaController,
        +  RadarController,
        +  ScatterController,
        +  CategoryScale,
        +  LinearScale,
        +  LogarithmicScale,
        +  RadialLinearScale,
        +  TimeScale,
        +  TimeSeriesScale,
        +  Decimation,
        +  Filler,
        +  Legend,
        +  Title,
        +  Tooltip,
        +  SubTitle
        +);
        +const myChart = new Chart(ctx, {...});
        +

        A short registration format is also available to quickly Registro everything.

        import { Chart, Registroables } from 'chart.js';
        +Chart.Registro(...Registroables);
        +

        And finally there is a separate path to do just the above for you, in one line:

        import Chart from 'chart.js/auto';
        +

        # Helper functions

        If you want to use the helper functions, you will need to import these separately from the helpers package and use them as stand-alone functions.

        Example of Converting Events to Data Values using bundlers.

        import Chart from 'chart.js/auto';
        +import { getRelativePosition } from 'chart.js/helpers';
        +const chart = new Chart(ctx, {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    onClick: (e) => {
        +      const canvasPosition = getRelativePosition(e, chart);
        +      // Substitute the appropriate scale IDs
        +      const dataX = chart.scales.x.getValueForPixel(canvasPosition.x);
        +      const dataY = chart.scales.y.getValueForPixel(canvasPosition.y);
        +    }
        +  }
        +});
        +

        # Require JS

        Important: RequireJS can not load CommonJS module as is (opens new window), so be sure to require one of the UMD builds instead (i.e. dist/chart.js, dist/chart.min.js, etc.).

        require(['path/to/chartjs/dist/chart.min.js'], function(Chart){
        +    const myChart = new Chart(ctx, {...});
        +});
        +

        Note: in order to use the time scale, you need to make sure one of the available date adapters (opens new window) and corresponding date library are fully loaded after requiring Chart.js. For this you can use nested requires:

        require(['chartjs'], function(Chart) {
        +    require(['moment'], function() {
        +        require(['chartjs-adapter-moment'], function() {
        +            new Chart(ctx, {...});
        +        });
        +    });
        +});
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/usage.html b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/usage.html new file mode 100644 index 0000000..f7266c8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/usage.html @@ -0,0 +1,95 @@ + + + + + + Usage | Chart.js + + + + + + + +

        # Usage

        Chart.js can be used with ES6 modules, plain JavaScript, and module loaders.

        # Creating a Chart

        To create a chart, we need to instantiate the Chart class. To do this, we need to pass in the node, jQuery instance, or 2d context of the canvas of where we want to draw the chart. Here's an example.

        <canvas id="myChart" width="400" height="400"></canvas>
        +
        // Any of the following formats may be used
        +const ctx = document.getElementById('myChart');
        +const ctx = document.getElementById('myChart').getContext('2d');
        +const ctx = $('#myChart');
        +const ctx = 'myChart';
        +

        Once you have the element or context, you're ready to instantiate a pre-defined chart-type or create your own!

        The following example instantiates a bar chart showing the number of votes for different colors and the y-axis starting at 0.

        <canvas id="myChart" width="400" height="400"></canvas>
        +<script>
        +const ctx = document.getElementById('myChart');
        +const myChart = new Chart(ctx, {
        +    type: 'bar',
        +    data: {
        +        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        +        datasets: [{
        +            label: '# of Votes',
        +            data: [12, 19, 3, 5, 2, 3],
        +            backgroundColor: [
        +                'rgba(255, 99, 132, 0.2)',
        +                'rgba(54, 162, 235, 0.2)',
        +                'rgba(255, 206, 86, 0.2)',
        +                'rgba(75, 192, 192, 0.2)',
        +                'rgba(153, 102, 255, 0.2)',
        +                'rgba(255, 159, 64, 0.2)'
        +            ],
        +            borderColor: [
        +                'rgba(255, 99, 132, 1)',
        +                'rgba(54, 162, 235, 1)',
        +                'rgba(255, 206, 86, 1)',
        +                'rgba(75, 192, 192, 1)',
        +                'rgba(153, 102, 255, 1)',
        +                'rgba(255, 159, 64, 1)'
        +            ],
        +            borderWidth: 1
        +        }]
        +    },
        +    options: {
        +        scales: {
        +            y: {
        +                beginAtZero: true
        +            }
        +        }
        +    }
        +});
        +</script>
        +
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/v3-migration.html b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/v3-migration.html new file mode 100644 index 0000000..4fc9172 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/getting-started/v3-migration.html @@ -0,0 +1,142 @@ + + + + + + 3.x Migration Guide | Chart.js + + + + + + + +

        # 3.x Migration Guide

        Chart.js 3.0 introduces a number of breaking changes. Chart.js 2.0 was released in April 2016. In the years since then, as Chart.js has grown in popularity and feature set, we've learned some lessons about how to better create a charting library. In order to improve performance, offer new features, and improve maintainability, it was necessary to break backwards compatibility, but we aimed to do so only when worth the benefit. Some major highlights of v3 include:

        • Large performance improvements including the ability to skip data parsing and render Graficas in parallel via webworkers
        • Additional configurability and scriptable options with better defaults
        • Completely rewritten animation system
        • Rewritten filler plugin with numerous bug fixes
        • Documentation migrated from GitBook to Vuepress
        • API documentation generated and verified by TypeDoc
        • No more CSS injection
        • Tons of bug fixes
        • Tree shaking

        # End user migration

        # Setup and installation

        • Distributed files are now in lower case. For example: dist/chart.js.
        • Chart.js is no longer providing the Chart.bundle.js and Chart.bundle.min.js. Please see the installation and integration docs for details on the recommended way to setup Chart.js if you were using these builds.
        • moment is no longer specified as an npm dependency. If you are using the time or timeseries scales, you must include one of the available adapters (opens new window) and corresponding date library. You no longer need to exclude moment from your build.
        • The Chart constructor will throw an error if the canvas/context provided is already in use
        • Chart.js 3 is tree-shakeable. So if you are using it as an npm module in a project and want to make use of this feature, you need to import and Registro the controllers, elements, scales and plugins you want to use, for a list of all the available items to import see integration. You will not have to call Registro if importing Chart.js via a script tag or from the auto Registro path as an npm module, in this case you will not get the tree shaking benefits. Here is an example of Registroing Componentes:
        import { Chart, LineController, LineElement, PointElement, LinearScale, Title } from `chart.js`
        +Chart.Registro(LineController, LineElement, PointElement, LinearScale, Title);
        +const chart = new Chart(ctx, {
        +    type: 'line',
        +    // data: ...
        +    options: {
        +        plugins: {
        +            title: {
        +                display: true,
        +                text: 'Chart Title'
        +            }
        +        },
        +        scales: {
        +            x: {
        +                type: 'linear'
        +            },
        +            y: {
        +                type: 'linear'
        +            }
        +        }
        +    }
        +})
        +

        # Chart types

        • horizontalBar chart type was removed. Horizontal bar Graficas can be configured using the new indexAxis option

        # Options

        A number of changes were made to the configuration options passed to the Chart constructor. Those changes are documented below.

        # Generic changes

        • Indexable options are now looping. backgroundColor: ['red', 'green'] will result in alternating 'red' / 'green' if there are more than 2 data points.
        • The input properties of object data can now be freely specified, see data structures for details.
        • Most options are resolved utilizing proxies, instead of merging with defaults. In addition to easily enabling different resolution routes for different contexts, it allows using other resolved options in scriptable options. +
          • Options are by default scriptable and indexable, unless disabled for some reason.
          • Scriptable options receive a option resolver as second parameter for accessing other options in same context.
          • Resolution falls to upper scopes, if no match is found earlier. See options for details.

        # Specific changes

        • elements.rectangle is now elements.bar
        • hover.animationDuration is now configured in animation.active.duration
        • responsiveAnimationDuration is now configured in animation.resize.duration
        • Polar area elements.arc.angle is now configured in degrees instead of radians.
        • Polar area startAngle option is now consistent with Radar, 0 is at top and value is in degrees. Default is changed from -½π to 0.
        • Doughnut rotation option is now in degrees and 0 is at top. Default is changed from -½π to 0.
        • Doughnut circumference option is now in degrees. Default is changed from to 360.
        • Doughnut cutoutPercentage was renamed to cutoutand accepts pixels as number and percent as string ending with %.
        • scale option was removed in favor of options.scales.r (or any other scale id, with axis: 'r')
        • scales.[x/y]Axes arrays were removed. Scales are now configured directly to options.scales object with the object key being the scale Id.
        • scales.[x/y]Axes.barPercentage was moved to dataset option barPercentage
        • scales.[x/y]Axes.barThickness was moved to dataset option barThickness
        • scales.[x/y]Axes.categoryPercentage was moved to dataset option categoryPercentage
        • scales.[x/y]Axes.maxBarThickness was moved to dataset option maxBarThickness
        • scales.[x/y]Axes.minBarLength was moved to dataset option minBarLength
        • scales.[x/y]Axes.scaleLabel was renamed to scales[id].title
        • scales.[x/y]Axes.scaleLabel.labelString was renamed to scales[id].title.text
        • scales.[x/y]Axes.ticks.beginAtZero was renamed to scales[id].beginAtZero
        • scales.[x/y]Axes.ticks.max was renamed to scales[id].max
        • scales.[x/y]Axes.ticks.min was renamed to scales[id].min
        • scales.[x/y]Axes.ticks.reverse was renamed to scales[id].reverse
        • scales.[x/y]Axes.ticks.suggestedMax was renamed to scales[id].suggestedMax
        • scales.[x/y]Axes.ticks.suggestedMin was renamed to scales[id].suggestedMin
        • scales.[x/y]Axes.ticks.unitStepSize was removed. Use scales[id].ticks.stepSize
        • scales.[x/y]Axes.ticks.userCallback was renamed to scales[id].ticks.callback
        • scales.[x/y]Axes.time.format was renamed to scales[id].time.parser
        • scales.[x/y]Axes.time.max was renamed to scales[id].max
        • scales.[x/y]Axes.time.min was renamed to scales[id].min
        • scales.[x/y]Axes.zeroLine* options of axes were removed. Use scriptable scale options instead.
        • The dataset option steppedLine was removed. Use stepped
        • The chart option showLines was renamed to showLine to match the dataset option.
        • The chart option startAngle was moved to radial scale options.
        • To override the platform class used in a chart instance, pass platform: PlatformClass in the config object. Note that the class should be passed, not an instance of the class.
        • aspectRatio defaults to 1 for doughnut, pie, polarArea, and radar Graficas
        • TimeScale does not read t from object data by default anymore. The default property is x or y, depending on the orientation. See data structures for details on how to change the default.
        • tooltips namespace was renamed to tooltip to match the plugin name
        • legend, title and tooltip namespaces were moved from options to options.plugins.
        • tooltips.custom was renamed to plugins.tooltip.external

        # Defaults

        • global namespace was removed from defaults. So Chart.defaults.global is now Chart.defaults
        • Dataset controller defaults were relocate to overrides. For example Chart.defaults.line is now Chart.overrides.line
        • default prefix was removed from defaults. For example Chart.defaults.global.defaultColor is now Chart.defaults.color
        • defaultColor was split to color, borderColor and backgroundColor
        • defaultFontColor was renamed to color
        • defaultFontFamily was renamed to font.family
        • defaultFontSize was renamed to font.size
        • defaultFontStyle was renamed to font.style
        • defaultLineHeight was renamed to font.lineHeight
        • Horizontal Bar default tooltip mode was changed from 'index' to 'nearest' to match vertical bar Graficas
        • legend, title and tooltip namespaces were moved from Chart.defaults to Chart.defaults.plugins.
        • elements.line.fill default changed from true to false.
        • Line Graficas no longer override the default interaction mode. Default is changed from 'index' to 'nearest'.

        # Scales

        The configuration options for scales is the largest change in v3. The xAxes and yAxes arrays were removed and axis options are individual scales now keyed by scale ID.

        The v2 configuration below is shown with it's new v3 configuration

        options: {
        +  scales: {
        +    xAxes: [{
        +      id: 'x',
        +      type: 'time',
        +      display: true,
        +      title: {
        +        display: true,
        +        text: 'Date'
        +      },
        +      ticks: {
        +        major: {
        +          enabled: true
        +        },
        +        font: function(context) {
        +          if (context.tick && context.tick.major) {
        +            return {
        +              weight: 'bold',
        +              color: '#FF0000'
        +            };
        +          }
        +        }
        +      }
        +    }],
        +    yAxes: [{
        +      id: 'y',
        +      display: true,
        +      title: {
        +        display: true,
        +        text: 'value'
        +      }
        +    }]
        +  }
        +}
        +

        And now, in v3:

        options: {
        +  scales: {
        +    x: {
        +      type: 'time',
        +      display: true,
        +      title: {
        +        display: true,
        +        text: 'Date'
        +      },
        +      ticks: {
        +        major: {
        +          enabled: true
        +        },
        +        color: (context) => context.tick && context.tick.major && '#FF0000',
        +        font: function(context) {
        +          if (context.tick && context.tick.major) {
        +            return {
        +              weight: 'bold'
        +            };
        +          }
        +        }
        +      }
        +    },
        +    y: {
        +      display: true,
        +      title: {
        +        display: true,
        +        text: 'value'
        +      }
        +    }
        +  }
        +}
        +
        • The time scale option distribution: 'series' was removed and a new scale type timeseries was introduced in its place
        • In the time scale, autoSkip is now enabled by default for consistency with the other scales

        # Animations

        Animation system was completely rewritten in Chart.js v3. Each property can now be animated separately. Please see animations docs for details.

        # Customizability

        • custom attribute of elements was removed. Please use scriptable options
        • The hover property of scriptable options context object was renamed to active to align it with the datalabels plugin.

        # Interactions

        • To allow DRY configuration, a root options scope for common interaction options was added. options.hover and options.plugins.tooltip now both extend from options.interaction. Defaults are defined at defaults.interaction level, so by default hover and tooltip interactions share the same mode etc.
        • interactions are now limited to the chart area + allowed overflow
        • {mode: 'label'} was replaced with {mode: 'index'}
        • {mode: 'single'} was replaced with {mode: 'nearest', intersect: true}
        • modes['X-axis'] was replaced with {mode: 'index', intersect: false}
        • options.onClick is now limited to the chart area
        • options.onClick and options.onHover now receive the chart instance as a 3rd argument
        • options.onHover now receives a wrapped event as the first parameter. The previous first parameter value is accessible via event.native.
        • options.hover.onHover was removed, use options.onHover.

        # Ticks

        • options.gridLines was renamed to options.grid
        • options.gridLines.offsetGridLines was renamed to options.grid.offset.
        • options.gridLines.tickMarkLength was renamed to options.grid.tickLength.
        • options.ticks.fixedStepSize is no longer used. Use options.ticks.stepSize.
        • options.ticks.major and options.ticks.minor were replaced with scriptable options for tick fonts.
        • Chart.Ticks.formatters.linear was renamed to Chart.Ticks.formatters.numeric.
        • options.ticks.backdropPaddingX and options.ticks.backdropPaddingY were replaced with options.ticks.backdropPadding in the radial linear scale.

        # Tooltip

        • xLabel and yLabel were removed. Please use label and formattedValue
        • The filter option will now be passed additional parameters when called and should have the method signature function(tooltipItem, index, tooltipItems, data)
        • The custom callback now takes a context object that has tooltip and chart properties
        • All properties of tooltip model related to the tooltip options have been moved to reside within the options property.
        • The callbacks no longer are given a data parameter. The tooltip item parameter contains the chart and dataset instead
        • The tooltip item's index parameter was renamed to dataIndex and value was renamed to formattedValue
        • The xPadding and yPadding options were merged into a single padding object

        # Developer migration

        While the end-user migration for Chart.js 3 is fairly straight-forward, the developer migration can be more complicated. Please reach out for help in the #dev Slack (opens new window) channel if tips on migrating would be helpful.

        Some of the biggest things that have changed:

        • There is a completely rewritten and more performant animation system. +
          • Element._model and Element._view are no longer used and properties are now set directly on the elements. You will have to use the method getProps to access these properties inside most methods such as inXRange/inYRange and getCenterPoint. Please take a look at the Chart.js-provided elements (opens new window) for examples.
          • When building the elements in a controller, it's now suggested to call updateElement to provide the element properties. There are also methods such as getSharedOptions and includeOptions that have been added to skip redundant computation. Please take a look at the Chart.js-provided controllers (opens new window) for examples.
        • Scales introduced a new parsing API. This API takes user data and converts it into a more standard format. E.g. it allows Usuarios to provide numeric data as a string and converts it to a number where necessary. Previously this was done on the fly as Graficas were rendered. Now it's done up front with the ability to skip it for better performance if Usuarios provide data in the correct format. If you're using standard data format like x/y you may not need to do anything. If you're using a custom data format you will have to override some of the parse methods in core.datasetController.js. An example can be found in chartjs-chart-financial (opens new window), which uses an {o, h, l, c} data format.

        A few changes were made to controllers that are more straight-forward, but will affect all controllers:

        • Options: +
          • global was removed from the defaults namespace as it was unnecessary and sometimes inconsistent
          • Dataset defaults are now under the chart type options instead of vice-versa. This was not able to be done when introduced in 2.x for backwards compatibility. Fixing it removes the biggest stumbling block that new chart developers encountered
          • Scale default options need to be updated as described in the end user migration section (e.g. x instead of xAxes and y instead of yAxes)
        • updateElement was changed to updateElements and has a new method signature as described below. This provides performance enhancements such as allowing easier reuse of computations that are common to all elements and reducing the number of function calls

        # Removed

        The following properties and methods were removed:

        # Removed from Chart

        • Chart.animationService
        • Chart.active
        • Chart.borderWidth
        • Chart.chart.chart
        • Chart.Bar. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.Bubble. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.Chart
        • Chart.Controller
        • Chart.Doughnut. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.innerRadius now lives on doughnut, pie, and polarArea controllers
        • Chart.lastActive
        • Chart.Legend was moved to Chart.plugins.legend._element and made private
        • Chart.Line. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.LinearScaleBase now must be imported and cannot be accessed off the Chart object
        • Chart.offsetX
        • Chart.offsetY
        • Chart.outerRadius now lives on doughnut, pie, and polarArea controllers
        • Chart.plugins was replaced with Chart.registry. Plugin defaults are now in Chart.defaults.plugins[id].
        • Chart.plugins.Registro was replaced by Chart.Registro.
        • Chart.PolarArea. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.prototype.generateLegend
        • Chart.platform. It only contained disableCSSInjection. CSS is never injected in v3.
        • Chart.PluginBase
        • Chart.Radar. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.radiusLength
        • Chart.scaleService was replaced with Chart.registry. Scale defaults are now in Chart.defaults.scales[type].
        • Chart.Scatter. New Graficas are created via new Chart and providing the appropriate type parameter
        • Chart.types
        • Chart.Title was moved to Chart.plugins.title._element and made private
        • Chart.Tooltip is now provided by the tooltip plugin. The positioners can be accessed from tooltipPlugin.positioners
        • ILayoutItem.minSize

        # Removed from Dataset Controllers

        • BarController.getDatasetMeta().bar
        • DatasetController.addElementAndReset
        • DatasetController.createMetaData
        • DatasetController.createMetaDataset
        • DoughnutController.getRingIndex

        # Removed from Elements

        • Element.getArea
        • Element.height
        • Element.hidden was replaced by chart level status, usable with getDataVisibility(index) / toggleDataVisibility(index)
        • Element.initialize
        • Element.inLabelRange
        • Line.calculatePointY

        # Removed from Helpers

        • helpers.addEvent
        • helpers.aliasPixel
        • helpers.arrayEquals
        • helpers.configMerge
        • helpers.findIndex
        • helpers.findNextWhere
        • helpers.findPreviousWhere
        • helpers.extend. Use Object.assign instead
        • helpers.getValueAtIndexOrDefault. Use helpers.resolve instead.
        • helpers.indexOf
        • helpers.lineTo
        • helpers.longestText was made private
        • helpers.max
        • helpers.measureText was made private
        • helpers.min
        • helpers.nextItem
        • helpers.niceNum
        • helpers.numberOfLabelLines
        • helpers.previousItem
        • helpers.removeEvent
        • helpers.roundedRect
        • helpers.scaleMerge
        • helpers.where

        # Removed from Layout

        • Layout.defaults

        # Removed from Scales

        • LinearScaleBase.handleDirectionalChanges
        • LogarithmicScale.minNotZero
        • Scale.getRightValue
        • Scale.longestLabelWidth
        • Scale.longestTextCache is now private
        • Scale.margins is now private
        • Scale.mergeTicksOptions
        • Scale.ticksAsNumbers
        • Scale.tickValues is now private
        • TimeScale.getLabelCapacity is now private
        • TimeScale.tickFormatFunction is now private

        # Removed from Plugins (Legend, Title, and Tooltip)

        • IPlugin.afterScaleUpdate. Use afterLayout instead
        • Legend.margins is now private
        • Legend onClick, onHover, and onLeave options now receive the legend as the 3rd argument in addition to implicitly via this
        • Legend onClick, onHover, and onLeave options now receive a wrapped event as the first parameter. The previous first parameter value is accessible via event.native.
        • Title.margins is now private
        • The tooltip item's x and y attributes were replaced by element. You can use element.x and element.y or element.tooltipPosition() instead.

        # Removal of Public APIs

        The following public APIs were removed.

        • getElementAtEvent is replaced with chart.getElementsAtEventForMode(e, 'nearest', { intersect: true }, false)
        • getElementsAtEvent is replaced with chart.getElementsAtEventForMode(e, 'index', { intersect: true }, false)
        • getElementsAtXAxis is replaced with chart.getElementsAtEventForMode(e, 'index', { intersect: false }, false)
        • getDatasetAtEvent is replaced with chart.getElementsAtEventForMode(e, 'dataset', { intersect: true }, false)

        # Removal of private APIs

        The following private APIs were removed.

        • Chart._bufferedRender
        • Chart._updating
        • Chart.data.datasets[datasetIndex]._meta
        • DatasetController._getIndexScaleId
        • DatasetController._getIndexScale
        • DatasetController._getValueScaleId
        • DatasetController._getValueScale
        • Element._ctx
        • Element._model
        • Element._view
        • LogarithmicScale._valueOffset
        • TimeScale.getPixelForOffset
        • TimeScale.getLabelWidth
        • Tooltip._lastActive

        # Renamed

        The following properties were renamed during v3 development:

        • Chart.Animation.animationObject was renamed to Chart.Animation
        • Chart.Animation.chartInstance was renamed to Chart.Animation.chart
        • Chart.canvasHelpers was merged with Chart.helpers
        • Chart.elements.Arc was renamed to Chart.elements.ArcElement
        • Chart.elements.Line was renamed to Chart.elements.LineElement
        • Chart.elements.Point was renamed to Chart.elements.PointElement
        • Chart.elements.Rectangle was renamed to Chart.elements.BarElement
        • Chart.layoutService was renamed to Chart.layouts
        • Chart.pluginService was renamed to Chart.plugins
        • helpers.callCallback was renamed to helpers.callback
        • helpers.drawRoundedRectangle was renamed to helpers.roundedRect
        • helpers.getValueOrDefault was renamed to helpers.valueOrDefault
        • LayoutItem.fullWidth was renamed to LayoutItem.fullSize
        • Point.controlPointPreviousX was renamed to Point.cp1x
        • Point.controlPointPreviousY was renamed to Point.cp1y
        • Point.controlPointNextX was renamed to Point.cp2x
        • Point.controlPointNextY was renamed to Point.cp2y
        • Scale.calculateTickRotation was renamed to Scale.calculateLabelRotation
        • Tooltip.options.legendColorBackgroupd was renamed to Tooltip.options.multiKeyBackground

        # Renamed private APIs

        The private APIs listed below were renamed:

        • BarController.calculateBarIndexPixels was renamed to BarController._calculateBarIndexPixels
        • BarController.calculateBarValuePixels was renamed to BarController._calculateBarValuePixels
        • BarController.getStackCount was renamed to BarController._getStackCount
        • BarController.getStackIndex was renamed to BarController._getStackIndex
        • BarController.getRuler was renamed to BarController._getRuler
        • Chart.destroyDatasetMeta was renamed to Chart._destroyDatasetMeta
        • Chart.drawDataset was renamed to Chart._drawDataset
        • Chart.drawDatasets was renamed to Chart._drawDatasets
        • Chart.eventHandler was renamed to Chart._eventHandler
        • Chart.handleEvent was renamed to Chart._handleEvent
        • Chart.initialize was renamed to Chart._initialize
        • Chart.resetElements was renamed to Chart._resetElements
        • Chart.unbindEvents was renamed to Chart._unbindEvents
        • Chart.updateDataset was renamed to Chart._updateDataset
        • Chart.updateDatasets was renamed to Chart._updateDatasets
        • Chart.updateLayout was renamed to Chart._updateLayout
        • DatasetController.destroy was renamed to DatasetController._destroy
        • DatasetController.insertElements was renamed to DatasetController._insertElements
        • DatasetController.onDataPop was renamed to DatasetController._onDataPop
        • DatasetController.onDataPush was renamed to DatasetController._onDataPush
        • DatasetController.onDataShift was renamed to DatasetController._onDataShift
        • DatasetController.onDataSplice was renamed to DatasetController._onDataSplice
        • DatasetController.onDataUnshift was renamed to DatasetController._onDataUnshift
        • DatasetController.removeElements was renamed to DatasetController._removeElements
        • DatasetController.resyncElements was renamed to DatasetController._resyncElements
        • LayoutItem.isFullWidth was renamed to LayoutItem.isFullSize
        • RadialLinearScale.setReductions was renamed to RadialLinearScale._setReductions
        • RadialLinearScale.pointLabels was renamed to RadialLinearScale._pointLabels
        • Scale.handleMargins was renamed to Scale._handleMargins

        # Changed

        The APIs listed in this section have changed in signature or behaviour from version 2.

        # Changed in Scales

        • Scale.getLabelForIndex was replaced by scale.getLabelForValue
        • Scale.getPixelForValue now only requires one parameter. For the TimeScale that parameter must be millis since the epoch. As a performance optimization, it may take an optional second parameter, giving the index of the data point.
        # Changed in Ticks
        • Scale.afterBuildTicks now has no parameters like the other callbacks
        • Scale.buildTicks is now expected to return tick objects
        • Scale.convertTicksToLabels was renamed to generateTickLabels. It is now expected to set the label property on the ticks given as input
        • Scale.ticks now contains objects instead of strings
        • When the autoSkip option is enabled, Scale.ticks now contains only the non-skipped ticks instead of all ticks.
        • Ticks are now always generated in monotonically increasing order
        # Changed in Time Scale
        • getValueForPixel now returns milliseconds since the epoch

        # Changed in Controllers

        # Core Controller
        • The first parameter to updateHoverStyle is now an array of objects containing the element, datasetIndex, and index
        • The signature or resize changed, the first silent parameter was removed.
        # Dataset Controllers
        • updateElement was replaced with updateElements now taking the elements to update, the start index, count, and mode
        • setHoverStyle and removeHoverStyle now additionally take the datasetIndex and index

        # Changed in Interactions

        • Interaction mode methods now return an array of objects containing the element, datasetIndex, and index

        # Changed in Layout

        • ILayoutItem.update no longer has a return value

        # Changed in Helpers

        All helpers are now exposed in a flat hierarchy, e.g., Chart.helpers.canvas.clipArea -> Chart.helpers.clipArea

        # Canvas Helper
        • The second parameter to drawPoint is now the full options object, so style, rotation, and radius are no longer passed explicitly
        • helpers.getMaximumHeight was replaced by helpers.dom.getMaximumSize
        • helpers.getMaximumWidth was replaced by helpers.dom.getMaximumSize
        • helpers.clear was renamed to helpers.clearCanvas and now takes canvas and optionally ctx as parameter(s).
        • helpers.retinaScale accepts optional third parameter forceStyle, which forces overriding current canvas style. forceRatio no longer falls back to window.devicePixelRatio, instead it defaults to 1.

        # Changed in Platform

        • Chart.platform is no longer the platform object used by Graficas. Every chart instance now has a separate platform instance.
        • Chart.platFormularios is an object that contains two usable platform classes, BasicPlatform and DomPlatform. It also contains BasePlatform, a class that all platFormularios must extend from.
        • If the canvas passed in is an instance of OffscreenCanvas, the BasicPlatform is automatically used.
        • isAttached method was added to platform.

        # Changed in IPlugin interface

        • All plugin hooks have unified signature with 3 arguments: chart, args and options. This means change in signature for these hooks: beforeInit, afterInit, reset, beforeLayout, afterLayout, beforeRender, afterRender, beforeDraw, afterDraw, beforeDatasetsDraw, afterDatasetsDraw, beforeEvent, afterEvent, resize, destroy.
        • afterDatasetsUpdate, afterUpdate, beforeDatasetsUpdate, and beforeUpdate now receive args object as second argument. options argument is always the last and thus was moved from 2nd to 3rd place.
        • afterEvent and beforeEvent now receive a wrapped event as the event property of the second argument. The native event is available via args.event.native.
        • Initial resize is no longer silent. Meaning that resize event can fire between beforeInit and afterInit
        • New hooks: install, start, stop, and uninstall
        • afterEvent should notify about changes that need a render by setting args.changed to true. Because the args are shared with all plugins, it should only be set to true and not false.
        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/index.html new file mode 100644 index 0000000..d423836 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/index.html @@ -0,0 +1,85 @@ + + + + + + Chart.js | Chart.js + + + + + + + +

        # Chart.js

        slack (opens new window)

        # Installation

        You can get the latest version of Chart.js from npm (opens new window), the GitHub releases (opens new window), or use a Chart.js CDN (opens new window). Detailed installation instructions can be found on the installation page.

        If you're using a front-end framework (e.g., React, Angular, or Vue), please check available integrations (opens new window).

        # Creating a Chart

        It's easy to get started with Chart.js. All that's required is the script included in your page along with a single <canvas> node to render the chart.

        In this example, we create a bar chart for a single dataset and render that in our page. You can see all the ways to use Chart.js in the usage documentation.

        <canvas id="myChart" width="400" height="400"></canvas>
        +<script>
        +const ctx = document.getElementById('myChart').getContext('2d');
        +const myChart = new Chart(ctx, {
        +    type: 'bar',
        +    data: {
        +        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        +        datasets: [{
        +            label: '# of Votes',
        +            data: [12, 19, 3, 5, 2, 3],
        +            backgroundColor: [
        +                'rgba(255, 99, 132, 0.2)',
        +                'rgba(54, 162, 235, 0.2)',
        +                'rgba(255, 206, 86, 0.2)',
        +                'rgba(75, 192, 192, 0.2)',
        +                'rgba(153, 102, 255, 0.2)',
        +                'rgba(255, 159, 64, 0.2)'
        +            ],
        +            borderColor: [
        +                'rgba(255, 99, 132, 1)',
        +                'rgba(54, 162, 235, 1)',
        +                'rgba(255, 206, 86, 1)',
        +                'rgba(75, 192, 192, 1)',
        +                'rgba(153, 102, 255, 1)',
        +                'rgba(255, 159, 64, 1)'
        +            ],
        +            borderWidth: 1
        +        }]
        +    },
        +    options: {
        +        scales: {
        +            y: {
        +                beginAtZero: true
        +            }
        +        }
        +    }
        +});
        +</script>
        +

        # Contributing

        Before submitting an issue or a pull request to the project, please take a moment to look over the contributing guidelines first.

        For support using Chart.js, please post questions with the chart.js tag on Stack Overflow (opens new window).

        # License

        Chart.js is available under the MIT license (opens new window).

        Documentation is copyright © 2014-2022 Chart.js contributors.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/logo.png b/Practica-14.5/src/assets/vendor/chart.js/docs/logo.png new file mode 100644 index 0000000..f6639e1 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/chart.js/docs/logo.png differ diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/logo.svg b/Practica-14.5/src/assets/vendor/chart.js/docs/logo.svg new file mode 100644 index 0000000..69be242 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/logo.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/data-decimation.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/data-decimation.html new file mode 100644 index 0000000..e8f8d77 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/data-decimation.html @@ -0,0 +1,225 @@ + + + + + + Data Decimation | Chart.js + + + + + + + +

        # Data Decimation

        This example shows how to use the built-in data decimation to reduce the number of points drawn on the graph for improved performance.

        const decimation = {
        +  enabled: false,
        +  algorithm: 'min-max',
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-axis-type.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-axis-type.html new file mode 100644 index 0000000..d053995 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-axis-type.html @@ -0,0 +1,166 @@ + + + + + + Derived Axis Type | Chart.js + + + + + + + +

        # Derived Axis Type

        const config = {
        +  type: 'line',
        +  data,
        +  options: {
        +    responsive: true,
        +    scales: {
        +      x: {
        +        display: true,
        +      },
        +      y: {
        +        display: true,
        +        type: 'log2',
        +      }
        +    }
        +  }
        +};

        # Log2 axis implementation

        import {Scale, LinearScale} from 'chart.js';
        +export default class Log2Axis extends Scale {
        +  constructor(cfg) {
        +    super(cfg);
        +    this._startValue = undefined;
        +    this._valueRange = 0;
        +  }
        +  parse(raw, index) {
        +    const value = LinearScale.prototype.parse.apply(this, [raw, index]);
        +    return isFinite(value) && value > 0 ? value : null;
        +  }
        +  determineDataLimits() {
        +    const {min, max} = this.getMinMax(true);
        +    this.min = isFinite(min) ? Math.max(0, min) : null;
        +    this.max = isFinite(max) ? Math.max(0, max) : null;
        +  }
        +  buildTicks() {
        +    const ticks = [];
        +    let power = Math.floor(Math.log2(this.min || 1));
        +    let maxPower = Math.ceil(Math.log2(this.max || 2));
        +    while (power <= maxPower) {
        +      ticks.push({value: Math.pow(2, power)});
        +      power += 1;
        +    }
        +    this.min = ticks[0].value;
        +    this.max = ticks[ticks.length - 1].value;
        +    return ticks;
        +  }
        +  /**
        +   * @protected
        +   */
        +  configure() {
        +    const start = this.min;
        +    super.configure();
        +    this._startValue = Math.log2(start);
        +    this._valueRange = Math.log2(this.max) - Math.log2(start);
        +  }
        +  getPixelForValue(value) {
        +    if (value === undefined || value === 0) {
        +      value = this.min;
        +    }
        +    return this.getPixelForDecimal(value === this.min ? 0
        +      : (Math.log2(value) - this._startValue) / this._valueRange);
        +  }
        +  getValueForPixel(pixel) {
        +    const decimal = this.getDecimalForPixel(pixel);
        +    return Math.pow(2, this._startValue + decimal * this._valueRange);
        +  }
        +}
        +Log2Axis.id = 'log2';
        +Log2Axis.defaults = {};
        +// The derived axis is Registroed like this:
        +// Chart.Registro(Log2Axis);
        +

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-chart-type.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-chart-type.html new file mode 100644 index 0000000..33a9847 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/derived-chart-type.html @@ -0,0 +1,134 @@ + + + + + + Derived Chart Type | Chart.js + + + + + + + +

        # Derived Chart Type

        const config = {
        +  type: 'derivedBubble',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Derived Chart Type'
        +      },
        +    }
        +  }
        +};

        # DerivedBubble Implementation

        import {Chart, BubbleController} from 'chart.js';
        +class Custom extends BubbleController {
        +  draw() {
        +    // Call bubble controller method to draw all the points
        +    super.draw(arguments);
        +    // Now we can do some custom drawing for this dataset.
        +    // Here we'll draw a box around the first point in each dataset,
        +    // using `boxStrokeStyle` dataset option for color
        +    var meta = this.getMeta();
        +    var pt0 = meta.data[0];
        +    const {x, y} = pt0.getProps(['x', 'y']);
        +    const {radius} = pt0.options;
        +    var ctx = this.chart.ctx;
        +    ctx.save();
        +    ctx.strokeStyle = this.options.boxStrokeStyle;
        +    ctx.lineWidth = 1;
        +    ctx.strokeRect(x - radius, y - radius, 2 * radius, 2 * radius);
        +    ctx.restore();
        +  }
        +}
        +Custom.id = 'derivedBubble';
        +Custom.defaults = {
        +  // Custom defaults. Bubble defaults are inherited.
        +  boxStrokeStyle: 'red'
        +};
        +// Overrides are only inherited, but not merged if defined
        +// Custom.overrides = Chart.overrides.bubble;
        +// Stores the controller so that the chart initialization routine can look it up
        +Chart.Registro(Custom);
        +

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/linear-gradient.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/linear-gradient.html new file mode 100644 index 0000000..e4f9f75 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/linear-gradient.html @@ -0,0 +1,217 @@ + + + + + + Linear Gradient | Chart.js + + + + + + + +

        # Linear Gradient

        let width, height, gradient;
        +function getGradient(ctx, chartArea) {
        +  const chartWidth = chartArea.right - chartArea.left;
        +  const chartHeight = chartArea.bottom - chartArea.top;
        +  if (!gradient || width !== chartWidth || height !== chartHeight) {
        +    // Create the gradient because this is either the first render
        +    // or the size of the chart has changed
        +    width = chartWidth;
        +    height = chartHeight;
        +    gradient = ctx.createLinearGradient(0, chartArea.bottom, 0, chartArea.top);
        +    gradient.addColorStop(0, Utils.CHART_COLORS.blue);
        +    gradient.addColorStop(0.5, Utils.CHART_COLORS.yellow);
        +    gradient.addColorStop(1, Utils.CHART_COLORS.red);
        +  }
        +  return gradient;
        +}

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/programmatic-events.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/programmatic-events.html new file mode 100644 index 0000000..fddcc75 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/programmatic-events.html @@ -0,0 +1,207 @@ + + + + + + Programmatic Event Triggers | Chart.js + + + + + + + +

        # Programmatic Event Triggers

        function triggerHover(chart) {
        +  if (chart.getActiveElements().length > 0) {
        +    chart.setActiveElements([]);
        +  } else {
        +    chart.setActiveElements([
        +      {
        +        datasetIndex: 0,
        +        index: 0,
        +      }, {
        +        datasetIndex: 1,
        +        index: 0,
        +      }
        +    ]);
        +  }
        +  chart.update();
        +}

        # API

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/progress-bar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/progress-bar.html new file mode 100644 index 0000000..2e0a913 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/progress-bar.html @@ -0,0 +1,275 @@ + + + + + + Animation Progress Bar | Chart.js + + + + + + + +

        # Animation Progress Bar

        # Initial animation

        # Other animations

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    animation: {
        +      duration: 2000,
        +      onProgress: function(context) {
        +        if (context.initial) {
        +          initProgress.value = context.currentStep / context.numSteps;
        +        } else {
        +          progress.value = context.currentStep / context.numSteps;
        +        }
        +      },
        +      onComplete: function(context) {
        +        if (context.initial) {
        +          console.log('Initial animation finished');
        +        } else {
        +          console.log('animation finished');
        +        }
        +      }
        +    },
        +    interaction: {
        +      mode: 'nearest',
        +      axis: 'x',
        +      intersect: false
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart - Animation Progress Bar'
        +      }
        +    },
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/radial-gradient.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/radial-gradient.html new file mode 100644 index 0000000..516ca19 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/advanced/radial-gradient.html @@ -0,0 +1,231 @@ + + + + + + Radial Gradient | Chart.js + + + + + + + +

        # Radial Gradient

        function createRadialGradient3(context, c1, c2, c3) {
        +  const chartArea = context.chart.chartArea;
        +  if (!chartArea) {
        +    // This case happens on initial chart load
        +    return;
        +  }
        +  const chartWidth = chartArea.right - chartArea.left;
        +  const chartHeight = chartArea.bottom - chartArea.top;
        +  if (width !== chartWidth || height !== chartHeight) {
        +    cache.clear();
        +  }
        +  let gradient = cache.get(c1 + c2 + c3);
        +  if (!gradient) {
        +    // Create the gradient because this is either the first render
        +    // or the size of the chart has changed
        +    width = chartWidth;
        +    height = chartHeight;
        +    const centerX = (chartArea.left + chartArea.right) / 2;
        +    const centerY = (chartArea.top + chartArea.bottom) / 2;
        +    const r = Math.min(
        +      (chartArea.right - chartArea.left) / 2,
        +      (chartArea.bottom - chartArea.top) / 2
        +    );
        +    const ctx = context.chart.ctx;
        +    gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, r);
        +    gradient.addColorStop(0, c1);
        +    gradient.addColorStop(0.5, c2);
        +    gradient.addColorStop(1, c3);
        +    cache.set(c1 + c2 + c3, gradient);
        +  }
        +  return gradient;
        +}

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/delay.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/delay.html new file mode 100644 index 0000000..5ecf626 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/delay.html @@ -0,0 +1,173 @@ + + + + + + Delay | Chart.js + + + + + + + +

        # Delay

        let delayed;
        +const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    animation: {
        +      onComplete: () => {
        +        delayed = true;
        +      },
        +      delay: (context) => {
        +        let delay = 0;
        +        if (context.type === 'data' && context.mode === 'default' && !delayed) {
        +          delay = context.dataIndex * 300 + context.datasetIndex * 100;
        +        }
        +        return delay;
        +      },
        +    },
        +    scales: {
        +      x: {
        +        stacked: true,
        +      },
        +      y: {
        +        stacked: true
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/drop.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/drop.html new file mode 100644 index 0000000..5ce1641 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/drop.html @@ -0,0 +1,257 @@ + + + + + + Drop | Chart.js + + + + + + + +

        # Drop

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    animations: {
        +      y: {
        +        easing: 'easeInOutElastic',
        +        from: (ctx) => {
        +          if (ctx.type === 'data') {
        +            if (ctx.mode === 'default' && !ctx.dropped) {
        +              ctx.dropped = true;
        +              return 0;
        +            }
        +          }
        +        }
        +      }
        +    },
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/loop.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/loop.html new file mode 100644 index 0000000..736b11c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/loop.html @@ -0,0 +1,257 @@ + + + + + + Loop | Chart.js + + + + + + + +

        # Loop

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    animations: {
        +      radius: {
        +        duration: 400,
        +        easing: 'linear',
        +        loop: (context) => context.active
        +      }
        +    },
        +    hoverRadius: 12,
        +    hoverBackgroundColor: 'yellow',
        +    interaction: {
        +      mode: 'nearest',
        +      intersect: false,
        +      axis: 'x'
        +    },
        +    plugins: {
        +      tooltip: {
        +        enabled: false
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line-easing.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line-easing.html new file mode 100644 index 0000000..cb34e79 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line-easing.html @@ -0,0 +1,349 @@ + + + + + + Progressive Line With Easing | Chart.js + + + + + + + +

        # Progressive Line With Easing

        const config = {
        +  type: 'line',
        +  data: {
        +    datasets: [{
        +      borderColor: Utils.CHART_COLORS.red,
        +      borderWidth: 1,
        +      radius: 0,
        +      data: data,
        +    },
        +    {
        +      borderColor: Utils.CHART_COLORS.blue,
        +      borderWidth: 1,
        +      radius: 0,
        +      data: data2,
        +    }]
        +  },
        +  options: {
        +    animation,
        +    interaction: {
        +      intersect: false
        +    },
        +    plugins: {
        +      legend: false,
        +      title: {
        +        display: true,
        +        text: () => easing.name
        +      }
        +    },
        +    scales: {
        +      x: {
        +        type: 'linear'
        +      }
        +    }
        +  }
        +};

        # Api

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line.html new file mode 100644 index 0000000..9ca5709 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/animations/progressive-line.html @@ -0,0 +1,195 @@ + + + + + + Progressive Line | Chart.js + + + + + + + +

        # Progressive Line

        const config = {
        +  type: 'line',
        +  data: {
        +    datasets: [{
        +      borderColor: Utils.CHART_COLORS.red,
        +      borderWidth: 1,
        +      radius: 0,
        +      data: data,
        +    },
        +    {
        +      borderColor: Utils.CHART_COLORS.blue,
        +      borderWidth: 1,
        +      radius: 0,
        +      data: data2,
        +    }]
        +  },
        +  options: {
        +    animation,
        +    interaction: {
        +      intersect: false
        +    },
        +    plugins: {
        +      legend: false
        +    },
        +    scales: {
        +      x: {
        +        type: 'linear'
        +      }
        +    }
        +  }
        +};

        # Api

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-boundaries.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-boundaries.html new file mode 100644 index 0000000..e5635d9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-boundaries.html @@ -0,0 +1,245 @@ + + + + + + Line Chart Boundaries | Chart.js + + + + + + + +

        # Line Chart Boundaries

        const data = {
        +  labels: generateLabels(),
        +  datasets: [
        +    {
        +      label: 'Dataset',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.red,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),
        +      fill: false
        +    }
        +  ]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-datasets.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-datasets.html new file mode 100644 index 0000000..184403f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-datasets.html @@ -0,0 +1,331 @@ + + + + + + Line Chart Datasets | Chart.js + + + + + + + +

        # Line Chart Datasets

        const data = {
        +  labels: generateLabels(),
        +  datasets: [
        +    {
        +      label: 'D0',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.red,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),
        +      hidden: true
        +    },
        +    {
        +      label: 'D1',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.orange,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange),
        +      fill: '-1'
        +    },
        +    {
        +      label: 'D2',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.yellow,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.yellow),
        +      hidden: true,
        +      fill: 1
        +    },
        +    {
        +      label: 'D3',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.green,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.green),
        +      fill: '-1'
        +    },
        +    {
        +      label: 'D4',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.blue,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue),
        +      fill: '-1'
        +    },
        +    {
        +      label: 'D5',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.grey,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.grey),
        +      fill: '+2'
        +    },
        +    {
        +      label: 'D6',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.purple,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.purple),
        +      fill: false
        +    },
        +    {
        +      label: 'D7',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.red,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.red),
        +      fill: 8
        +    },
        +    {
        +      label: 'D8',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.orange,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.orange),
        +      fill: 'end',
        +      hidden: true
        +    },
        +    {
        +      label: 'D9',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.yellow,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.yellow),
        +      fill: {above: 'blue', below: 'red', target: {value: 350}}
        +    }
        +  ]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-drawtime.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-drawtime.html new file mode 100644 index 0000000..7e1712f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-drawtime.html @@ -0,0 +1,235 @@ + + + + + + Line Chart drawTime | Chart.js + + + + + + + +

        # Line Chart drawTime

        const data = {
        +  labels: generateLabels(),
        +  datasets: [
        +    {
        +      label: 'Dataset 1',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.red,
        +      backgroundColor: Utils.CHART_COLORS.red,
        +      fill: true
        +    },
        +    {
        +      label: 'Dataset 2',
        +      data: generateData(),
        +      borderColor: Utils.CHART_COLORS.blue,
        +      backgroundColor: Utils.transparentize(Utils.CHART_COLORS.blue),
        +      fill: true
        +    }
        +  ]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-stacked.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-stacked.html new file mode 100644 index 0000000..8a6f5ea --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/line-stacked.html @@ -0,0 +1,351 @@ + + + + + + Line Chart Stacked | Chart.js + + + + + + + +

        # Line Chart Stacked

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => 'Chart.js Line Chart - stacked=' + ctx.chart.options.scales.y.stacked
        +      },
        +      tooltip: {
        +        mode: 'index'
        +      },
        +    },
        +    interaction: {
        +      mode: 'nearest',
        +      axis: 'x',
        +      intersect: false
        +    },
        +    scales: {
        +      x: {
        +        title: {
        +          display: true,
        +          text: 'Month'
        +        }
        +      },
        +      y: {
        +        stacked: true,
        +        title: {
        +          display: true,
        +          text: 'Value'
        +        }
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/radar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/radar.html new file mode 100644 index 0000000..3eb3899 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/area/radar.html @@ -0,0 +1,285 @@ + + + + + + Radar Chart Stacked | Chart.js + + + + + + + +

        # Radar Chart Stacked

        const config = {
        +  type: 'radar',
        +  data: data,
        +  options: {
        +    plugins: {
        +      filler: {
        +        propagate: false
        +      },
        +      'samples-filler-analyser': {
        +        target: 'chart-analyser'
        +      }
        +    },
        +    interaction: {
        +      intersect: false
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/border-radius.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/border-radius.html new file mode 100644 index 0000000..f3babb2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/border-radius.html @@ -0,0 +1,157 @@ + + + + + + Bar Chart Border Radius | Chart.js + + + + + + + +

        # Bar Chart Border Radius

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Bar Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/floating.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/floating.html new file mode 100644 index 0000000..adc730b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/floating.html @@ -0,0 +1,153 @@ + + + + + + Floating Bars | Chart.js + + + + + + + +

        # Floating Bars

        Using [number, number][] as the type for data to define the beginning and end value for each bar. This is instead of having every bar start at 0.

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Floating Bar Chart'
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/horizontal.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/horizontal.html new file mode 100644 index 0000000..2cca218 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/horizontal.html @@ -0,0 +1,253 @@ + + + + + + Horizontal Bar Chart | Chart.js + + + + + + + +

        # Horizontal Bar Chart

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    indexAxis: 'y',
        +    // Elements options apply to all of the options unless overridden in a dataset
        +    // In this case, we are setting the border of each horizontal bar to be 2px wide
        +    elements: {
        +      bar: {
        +        borderWidth: 2,
        +      }
        +    },
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'right',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Horizontal Bar Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked-groups.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked-groups.html new file mode 100644 index 0000000..d2086cd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked-groups.html @@ -0,0 +1,173 @@ + + + + + + Stacked Bar Chart with Groups | Chart.js + + + + + + + +

        # Stacked Bar Chart with Groups

        Using the stack property to divide datasets into multiple stacks.

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Bar Chart - Stacked'
        +      },
        +    },
        +    responsive: true,
        +    interaction: {
        +      intersect: false,
        +    },
        +    scales: {
        +      x: {
        +        stacked: true,
        +      },
        +      y: {
        +        stacked: true
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked.html new file mode 100644 index 0000000..c5134d5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/stacked.html @@ -0,0 +1,161 @@ + + + + + + Stacked Bar Chart | Chart.js + + + + + + + +

        # Stacked Bar Chart

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Bar Chart - Stacked'
        +      },
        +    },
        +    responsive: true,
        +    scales: {
        +      x: {
        +        stacked: true,
        +      },
        +      y: {
        +        stacked: true
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/vertical.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/vertical.html new file mode 100644 index 0000000..0098a64 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/bar/vertical.html @@ -0,0 +1,237 @@ + + + + + + Vertical Bar Chart | Chart.js + + + + + + + +

        # Vertical Bar Chart

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Bar Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/index.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/index.html new file mode 100644 index 0000000..452e070 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/information.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/information.html new file mode 100644 index 0000000..62585ff --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/information.html @@ -0,0 +1,48 @@ + + + + + + Information | Chart.js + + + + + + + +

        # Information

        # Out of the box working samples

        These samples are made for demonstration purposes only. They won't work out of the box if you copy paste them into your own website. This is because of how the docs are getting built. Some boilerplate code gets hidden. +For a sample that can be copied and pasted and used directly you can check the usage page.

        # Autogenerated data

        The data used in the samples is autogenerated using custom functions. These functions do not ship with the library, for more information about this you can check the utils page.

        # Actions block

        The samples have an actions code block. These actions are not part of chart.js. They are internally transformed to separate buttons together with onClick listeners by a plugin we use in the documentation. To implement such actions yourself you can make some buttons and add onClick event listeners to them. Then in these event listeners you can call your variable in which you made the chart and do the logic that the button is supposed to do.

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/events.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/events.html new file mode 100644 index 0000000..f464cfa --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/events.html @@ -0,0 +1,121 @@ + + + + + + Events | Chart.js + + + + + + + +

        # Events

        This sample demonstrates how to use the event hooks to highlight chart elements.

        const config = {
        +  type: 'pie',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: {
        +        onHover: handleHover,
        +        onLeave: handleLeave
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/html.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/html.html new file mode 100644 index 0000000..053830c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/html.html @@ -0,0 +1,251 @@ + + + + + + HTML Legend | Chart.js + + + + + + + +

        # HTML Legend

        This example shows how to create a custom HTML legend using a plugin and connect it to the chart in lieu of the default on-canvas legend.

        const getOrCreateLegendList = (chart, id) => {
        +  const legendContainer = document.getElementById(id);
        +  let listContainer = legendContainer.querySelector('ul');
        +  if (!listContainer) {
        +    listContainer = document.createElement('ul');
        +    listContainer.style.display = 'flex';
        +    listContainer.style.flexDirection = 'row';
        +    listContainer.style.margin = 0;
        +    listContainer.style.padding = 0;
        +    legendContainer.appendChild(listContainer);
        +  }
        +  return listContainer;
        +};
        +const htmlLegendPlugin = {
        +  id: 'htmlLegend',
        +  afterUpdate(chart, args, options) {
        +    const ul = getOrCreateLegendList(chart, options.containerID);
        +    // Remove old legend items
        +    while (ul.firstChild) {
        +      ul.firstChild.remove();
        +    }
        +    // Reuse the built-in legendItems generator
        +    const items = chart.options.plugins.legend.labels.generateLabels(chart);
        +    items.forEach(item => {
        +      const li = document.createElement('li');
        +      li.style.alignItems = 'center';
        +      li.style.cursor = 'pointer';
        +      li.style.display = 'flex';
        +      li.style.flexDirection = 'row';
        +      li.style.marginLeft = '10px';
        +      li.onclick = () => {
        +        const {type} = chart.config;
        +        if (type === 'pie' || type === 'doughnut') {
        +          // Pie and doughnut Graficas only have a single dataset and visibility is per item
        +          chart.toggleDataVisibility(item.index);
        +        } else {
        +          chart.setDatasetVisibility(item.datasetIndex, !chart.isDatasetVisible(item.datasetIndex));
        +        }
        +        chart.update();
        +      };
        +      // Color box
        +      const boxSpan = document.createElement('span');
        +      boxSpan.style.background = item.fillStyle;
        +      boxSpan.style.borderColor = item.strokeStyle;
        +      boxSpan.style.borderWidth = item.lineWidth + 'px';
        +      boxSpan.style.display = 'inline-block';
        +      boxSpan.style.height = '20px';
        +      boxSpan.style.marginRight = '10px';
        +      boxSpan.style.width = '20px';
        +      // Text
        +      const textContainer = document.createElement('p');
        +      textContainer.style.color = item.fontColor;
        +      textContainer.style.margin = 0;
        +      textContainer.style.padding = 0;
        +      textContainer.style.textDecoration = item.hidden ? 'line-through' : '';
        +      const text = document.createTextNode(item.text);
        +      textContainer.appendChild(text);
        +      li.appendChild(boxSpan);
        +      li.appendChild(textContainer);
        +      ul.appendChild(li);
        +    });
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/point-style.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/point-style.html new file mode 100644 index 0000000..e69af1d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/point-style.html @@ -0,0 +1,131 @@ + + + + + + Point Style | Chart.js + + + + + + + +

        # Point Style

        This sample show how to use the dataset point style in the legend instead of a rectangle to identify each dataset..

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: {
        +        labels: {
        +          usePointStyle: true,
        +        },
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/position.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/position.html new file mode 100644 index 0000000..c1d1b28 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/position.html @@ -0,0 +1,147 @@ + + + + + + Position | Chart.js + + + + + + + +

        # Position

        This sample show how to change the position of the chart legend.

        const config = {
        +  type: 'line',
        +  data: data,
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/title.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/title.html new file mode 100644 index 0000000..26851d4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/legend/title.html @@ -0,0 +1,159 @@ + + + + + + Alignment and Title Position | Chart.js + + + + + + + +

        # Alignment and Title Position

        This sample show how to configure the alignment and title position of the chart legend.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: {
        +        title: {
        +          display: true,
        +          text: 'Legend Title',
        +        }
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/interpolation.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/interpolation.html new file mode 100644 index 0000000..e94d0fe --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/interpolation.html @@ -0,0 +1,177 @@ + + + + + + Interpolation Modes | Chart.js + + + + + + + +

        # Interpolation Modes

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart - Cubic interpolation mode'
        +      },
        +    },
        +    interaction: {
        +      intersect: false,
        +    },
        +    scales: {
        +      x: {
        +        display: true,
        +        title: {
        +          display: true
        +        }
        +      },
        +      y: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Value'
        +        },
        +        suggestedMin: -10,
        +        suggestedMax: 200
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/line.html new file mode 100644 index 0000000..e578116 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/line.html @@ -0,0 +1,235 @@ + + + + + + Line Chart | Chart.js + + + + + + + +

        # Line Chart

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/multi-axis.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/multi-axis.html new file mode 100644 index 0000000..a8e7e6a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/multi-axis.html @@ -0,0 +1,185 @@ + + + + + + Multi Axis Line Chart | Chart.js + + + + + + + +

        # Multi Axis Line Chart

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    interaction: {
        +      mode: 'index',
        +      intersect: false,
        +    },
        +    stacked: false,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart - Multi Axis'
        +      }
        +    },
        +    scales: {
        +      y: {
        +        type: 'linear',
        +        display: true,
        +        position: 'left',
        +      },
        +      y1: {
        +        type: 'linear',
        +        display: true,
        +        position: 'right',
        +        // grid line settings
        +        grid: {
        +          drawOnChartArea: false, // only want the grid lines for one axis to show up
        +        },
        +      },
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/point-styling.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/point-styling.html new file mode 100644 index 0000000..1d1b74c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/point-styling.html @@ -0,0 +1,289 @@ + + + + + + Point Styling | Chart.js + + + + + + + +

        # Point Styling

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => 'Point Style: ' + ctx.chart.data.datasets[0].pointStyle,
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/segments.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/segments.html new file mode 100644 index 0000000..feb55bd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/segments.html @@ -0,0 +1,103 @@ + + + + + + Line Segment Styling | Chart.js + + + + + + + +

        # Line Segment Styling

        Using helper functions to style each segment. Gaps in the data ('skipped') are set to dashed lines and segments with values going 'down' are set to a different color.

        const config = {
        +  type: 'line',
        +  data: {
        +    labels: Utils.months({count: 7}),
        +    datasets: [{
        +      label: 'My First Dataset',
        +      data: [65, 59, NaN, 48, 56, 57, 40],
        +      borderColor: 'rgb(75, 192, 192)',
        +      segment: {
        +        borderColor: ctx => skipped(ctx, 'rgb(0,0,0,0.2)') || down(ctx, 'rgb(192,75,75)'),
        +        borderDash: ctx => skipped(ctx, [6, 6]),
        +      },
        +      spanGaps: true
        +    }]
        +  },
        +  options: genericOptions
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/stepped.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/stepped.html new file mode 100644 index 0000000..c2cb78a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/stepped.html @@ -0,0 +1,203 @@ + + + + + + Stepped Line Graficas | Chart.js + + + + + + + +

        # Stepped Line Graficas

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    interaction: {
        +      intersect: false,
        +      axis: 'x'
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => 'Step ' + ctx.chart.data.datasets[0].stepped + ' Interpolation',
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/styling.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/styling.html new file mode 100644 index 0000000..5cedf0d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/line/styling.html @@ -0,0 +1,173 @@ + + + + + + Line Styling | Chart.js + + + + + + + +

        # Line Styling

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart'
        +      },
        +    },
        +    interaction: {
        +      mode: 'index',
        +      intersect: false
        +    },
        +    scales: {
        +      x: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Month'
        +        }
        +      },
        +      y: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Value'
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/bubble.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/bubble.html new file mode 100644 index 0000000..cc1bf4e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/bubble.html @@ -0,0 +1,233 @@ + + + + + + Bubble | Chart.js + + + + + + + +

        # Bubble

        const config = {
        +  type: 'bubble',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Bubble Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/combo-bar-line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/combo-bar-line.html new file mode 100644 index 0000000..9b65c5c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/combo-bar-line.html @@ -0,0 +1,243 @@ + + + + + + Combo bar/line | Chart.js + + + + + + + +

        # Combo bar/line

        const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Combined Line/Bar Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/doughnut.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/doughnut.html new file mode 100644 index 0000000..151cabc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/doughnut.html @@ -0,0 +1,273 @@ + + + + + + Doughnut | Chart.js + + + + + + + +

        # Doughnut

        const config = {
        +  type: 'doughnut',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Doughnut Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/multi-series-pie.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/multi-series-pie.html new file mode 100644 index 0000000..6711790 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/multi-series-pie.html @@ -0,0 +1,195 @@ + + + + + + Multi Series Pie | Chart.js + + + + + + + +

        # Multi Series Pie

        const config = {
        +  type: 'pie',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        labels: {
        +          generateLabels: function(chart) {
        +            // Get the default label list
        +            const original = Chart.overrides.pie.plugins.legend.labels.generateLabels;
        +            const labelsOriginal = original.call(this, chart);
        +            // Build an array of colors used in the datasets of the chart
        +            let datasetColors = chart.data.datasets.map(function(e) {
        +              return e.backgroundColor;
        +            });
        +            datasetColors = datasetColors.flat();
        +            // Modify the color and hide state of each label
        +            labelsOriginal.forEach(label => {
        +              // There are twice as many labels as there are datasets. This converts the label index into the corresponding dataset index
        +              label.datasetIndex = (label.index - label.index % 2) / 2;
        +              // The hidden state must match the dataset's hidden state
        +              label.hidden = !chart.isDatasetVisible(label.datasetIndex);
        +              // Change the color to match the dataset
        +              label.fillStyle = datasetColors[label.index];
        +            });
        +            return labelsOriginal;
        +          }
        +        },
        +        onClick: function(mouseEvent, legendItem, legend) {
        +          // toggle the visibility of the dataset from what it currently is
        +          legend.chart.getDatasetMeta(
        +            legendItem.datasetIndex
        +          ).hidden = legend.chart.isDatasetVisible(legendItem.datasetIndex);
        +          legend.chart.update();
        +        }
        +      },
        +      tooltip: {
        +        callbacks: {
        +          label: function(context) {
        +            const labelIndex = (context.datasetIndex * 2) + context.dataIndex;
        +            return context.chart.data.labels[labelIndex] + ': ' + context.formattedValue;
        +          }
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/pie.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/pie.html new file mode 100644 index 0000000..3e68c45 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/pie.html @@ -0,0 +1,225 @@ + + + + + + Pie | Chart.js + + + + + + + +

        # Pie

        const config = {
        +  type: 'pie',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Pie Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area-center-labels.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area-center-labels.html new file mode 100644 index 0000000..b832d98 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area-center-labels.html @@ -0,0 +1,211 @@ + + + + + + Polar area centered point labels | Chart.js + + + + + + + +

        # Polar area centered point labels

        const config = {
        +  type: 'polarArea',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    scales: {
        +      r: {
        +        pointLabels: {
        +          display: true,
        +          centerPointLabels: true,
        +          font: {
        +            size: 18
        +          }
        +        }
        +      }
        +    },
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Polar Area Chart With Centered Point Labels'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area.html new file mode 100644 index 0000000..d6ea57b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/polar-area.html @@ -0,0 +1,189 @@ + + + + + + Polar area | Chart.js + + + + + + + +

        # Polar area

        const config = {
        +  type: 'polarArea',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Polar Area Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar-skip-points.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar-skip-points.html new file mode 100644 index 0000000..fa172d7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar-skip-points.html @@ -0,0 +1,179 @@ + + + + + + Radar skip points | Chart.js + + + + + + + +

        # Radar skip points

        const config = {
        +  type: 'radar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Radar Skip Points Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar.html new file mode 100644 index 0000000..6f9562f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/radar.html @@ -0,0 +1,229 @@ + + + + + + Radar | Chart.js + + + + + + + +

        # Radar

        const config = {
        +  type: 'radar',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Radar Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter-multi-axis.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter-multi-axis.html new file mode 100644 index 0000000..1bb30fb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter-multi-axis.html @@ -0,0 +1,277 @@ + + + + + + Scatter - Multi axis | Chart.js + + + + + + + +

        # Scatter - Multi axis

        const config = {
        +  type: 'scatter',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Scatter Multi Axis Chart'
        +      }
        +    },
        +    scales: {
        +      y: {
        +        type: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance
        +        position: 'left',
        +        ticks: {
        +          color: Utils.CHART_COLORS.red
        +        }
        +      },
        +      y2: {
        +        type: 'linear', // only linear but allow scale type registration. This allows extensions to exist solely for log scale for instance
        +        position: 'right',
        +        reverse: true,
        +        ticks: {
        +          color: Utils.CHART_COLORS.blue
        +        },
        +        grid: {
        +          drawOnChartArea: false // only want the grid lines for one axis to show up
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter.html new file mode 100644 index 0000000..c85a16f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/scatter.html @@ -0,0 +1,233 @@ + + + + + + Scatter | Chart.js + + + + + + + +

        # Scatter

        const config = {
        +  type: 'scatter',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      legend: {
        +        position: 'top',
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Scatter Chart'
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/stacked-bar-line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/stacked-bar-line.html new file mode 100644 index 0000000..0783fe1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/other-charts/stacked-bar-line.html @@ -0,0 +1,247 @@ + + + + + + Stacked bar/line | Chart.js + + + + + + + +

        # Stacked bar/line

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Stacked Line/Bar Chart'
        +      }
        +    },
        +    scales: {
        +      y: {
        +        stacked: true
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/chart-area-border.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/chart-area-border.html new file mode 100644 index 0000000..26d143f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/chart-area-border.html @@ -0,0 +1,147 @@ + + + + + + Chart Area Border | Chart.js + + + + + + + +

        # Chart Area Border

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      chartAreaBorder: {
        +        borderColor: 'red',
        +        borderWidth: 2,
        +        borderDash: [5, 5],
        +        borderDashOffset: 2,
        +      }
        +    }
        +  },
        +  plugins: [chartAreaBorder]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/doughnut-empty-state.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/doughnut-empty-state.html new file mode 100644 index 0000000..36e7d58 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/doughnut-empty-state.html @@ -0,0 +1,143 @@ + + + + + + Doughnut Empty State | Chart.js + + + + + + + +

        # Doughnut Empty State

        const config = {
        +  type: 'doughnut',
        +  data: data,
        +  options: {
        +    plugins: {
        +      emptyDoughnut: {
        +        color: 'rgba(255, 128, 0, 0.5)',
        +        width: 2,
        +        radiusDecrease: 20
        +      }
        +    }
        +  },
        +  plugins: [plugin]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/quadrants.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/quadrants.html new file mode 100644 index 0000000..7b0467a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/plugins/quadrants.html @@ -0,0 +1,153 @@ + + + + + + Quadrants | Chart.js + + + + + + + +

        # Quadrants

        const config = {
        +  type: 'scatter',
        +  data: data,
        +  options: {
        +    plugins: {
        +      quadrants: {
        +        topLeft: Utils.CHART_COLORS.red,
        +        topRight: Utils.CHART_COLORS.blue,
        +        bottomRight: Utils.CHART_COLORS.green,
        +        bottomLeft: Utils.CHART_COLORS.yellow,
        +      }
        +    }
        +  },
        +  plugins: [quadrants]
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/center.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/center.html new file mode 100644 index 0000000..01fbeec --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/center.html @@ -0,0 +1,189 @@ + + + + + + Center Positioning | Chart.js + + + + + + + +

        # Center Positioning

        This sample show how to place the axis in the center of the chart area, instead of at the edges.

        const config = {
        +  type: 'scatter',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Axis Center Positioning'
        +      }
        +    },
        +    scales: {
        +      x: {
        +        min: -100,
        +        max: 100,
        +      },
        +      y: {
        +        min: -100,
        +        max: 100,
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/grid.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/grid.html new file mode 100644 index 0000000..2035f48 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/grid.html @@ -0,0 +1,197 @@ + + + + + + Grid Configuration | Chart.js + + + + + + + +

        # Grid Configuration

        This sample shows how to use scriptable grid options for an axis to control styling. In this case, the Y axis grid lines are colored based on their value. In addition, booleans are provided to toggle different parts of the X axis grid visibility.

        // Change these settings to change the display for different parts of the X axis
        +// grid configuiration
        +const DISPLAY = true;
        +const BORDER = true;
        +const CHART_AREA = true;
        +const TICKS = true;
        +const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Grid Line Settings'
        +      }
        +    },
        +    scales: {
        +      x: {
        +        grid: {
        +          display: DISPLAY,
        +          drawBorder: BORDER,
        +          drawOnChartArea: CHART_AREA,
        +          drawTicks: TICKS,
        +        }
        +      },
        +      y: {
        +        grid: {
        +          drawBorder: false,
        +          color: function(context) {
        +            if (context.tick.value > 0) {
        +              return Utils.CHART_COLORS.green;
        +            } else if (context.tick.value < 0) {
        +              return Utils.CHART_COLORS.red;
        +            }
        +            return '#000000';
        +          },
        +        },
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/ticks.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/ticks.html new file mode 100644 index 0000000..9bac902 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/ticks.html @@ -0,0 +1,189 @@ + + + + + + Tick Configuration | Chart.js + + + + + + + +

        # Tick Configuration

        This sample shows how to use different tick features to control how tick labels are shown on the X axis. These features include:

        • Multi-line labels
        • Filtering labels
        • Changing the tick color
        • Changing the tick alignment for the X axis
        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart with Tick Configuration'
        +      }
        +    },
        +    scales: {
        +      x: {
        +        ticks: {
        +          // For a category axis, the val is the index so the lookup via getLabelForValue is needed
        +          callback: function(val, index) {
        +            // Hide every 2nd tick label
        +            return index % 2 === 0 ? this.getLabelForValue(val) : '';
        +          },
        +          color: 'red',
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/titles.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/titles.html new file mode 100644 index 0000000..a6752e4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scale-options/titles.html @@ -0,0 +1,171 @@ + + + + + + Title Configuration | Chart.js + + + + + + + +

        # Title Configuration

        This sample shows how to configure the title of an axis including alignment, font, and color.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    scales: {
        +      x: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Month',
        +          color: '#911',
        +          font: {
        +            family: 'Comic Sans MS',
        +            size: 20,
        +            weight: 'bold',
        +            lineHeight: 1.2,
        +          },
        +          padding: {top: 20, left: 0, right: 0, bottom: 0}
        +        }
        +      },
        +      y: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Value',
        +          color: '#191',
        +          font: {
        +            family: 'Times',
        +            size: 20,
        +            style: 'normal',
        +            lineHeight: 1.2
        +          },
        +          padding: {top: 30, left: 0, right: 0, bottom: 0}
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max-suggested.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max-suggested.html new file mode 100644 index 0000000..42241fe --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max-suggested.html @@ -0,0 +1,133 @@ + + + + + + Linear Scale - Suggested Min-Max | Chart.js + + + + + + + +

        # Linear Scale - Suggested Min-Max

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Suggested Min and Max Settings'
        +      }
        +    },
        +    scales: {
        +      y: {
        +        // the data minimum used for determining the ticks is Math.min(dataMin, suggestedMin)
        +        suggestedMin: 30,
        +        // the data maximum used for determining the ticks is Math.max(dataMax, suggestedMax)
        +        suggestedMax: 50,
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max.html new file mode 100644 index 0000000..7674117 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-min-max.html @@ -0,0 +1,129 @@ + + + + + + Linear Scale - Min-Max | Chart.js + + + + + + + +

        # Linear Scale - Min-Max

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Min and Max Settings'
        +      }
        +    },
        +    scales: {
        +      y: {
        +        min: 10,
        +        max: 50,
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-step-size.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-step-size.html new file mode 100644 index 0000000..4e68dcf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/linear-step-size.html @@ -0,0 +1,285 @@ + + + + + + Linear Scale - Step Size | Chart.js + + + + + + + +

        # Linear Scale - Step Size

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      tooltip: {
        +        mode: 'index',
        +        intersect: false
        +      },
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart'
        +      }
        +    },
        +    hover: {
        +      mode: 'index',
        +      intersec: false
        +    },
        +    scales: {
        +      x: {
        +        title: {
        +          display: true,
        +          text: 'Month'
        +        }
        +      },
        +      y: {
        +        title: {
        +          display: true,
        +          text: 'Value'
        +        },
        +        min: 0,
        +        max: 100,
        +        ticks: {
        +          // forces step size to be 50 units
        +          stepSize: 50
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/log.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/log.html new file mode 100644 index 0000000..23f6a49 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/log.html @@ -0,0 +1,161 @@ + + + + + + Log Scale | Chart.js + + + + + + + +

        # Log Scale

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart - Logarithmic'
        +      }
        +    },
        +    scales: {
        +      x: {
        +        display: true,
        +      },
        +      y: {
        +        display: true,
        +        type: 'logarithmic',
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/stacked.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/stacked.html new file mode 100644 index 0000000..86fae44 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/stacked.html @@ -0,0 +1,165 @@ + + + + + + Stacked Linear / Category | Chart.js + + + + + + + +

        # Stacked Linear / Category

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    responsive: true,
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Stacked scales',
        +      },
        +    },
        +    scales: {
        +      y: {
        +        type: 'linear',
        +        position: 'left',
        +        stack: 'demo',
        +        stackWeight: 2,
        +        grid: {
        +          borderColor: Utils.CHART_COLORS.red
        +        }
        +      },
        +      y2: {
        +        type: 'category',
        +        labels: ['ON', 'OFF'],
        +        offset: true,
        +        position: 'left',
        +        stack: 'demo',
        +        stackWeight: 1,
        +        grid: {
        +          borderColor: Utils.CHART_COLORS.blue
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-combo.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-combo.html new file mode 100644 index 0000000..79dc3eb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-combo.html @@ -0,0 +1,175 @@ + + + + + + Time Scale - Combo Chart | Chart.js + + + + + + + +

        # Time Scale - Combo Chart

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        text: 'Chart.js Combo Time Scale',
        +        display: true
        +      }
        +    },
        +    scales: {
        +      x: {
        +        type: 'time',
        +        display: true,
        +        offset: true,
        +        time: {
        +          unit: 'day'
        +        }
        +      },
        +    },
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-line.html new file mode 100644 index 0000000..89ed7a9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-line.html @@ -0,0 +1,237 @@ + + + + + + Time Scale | Chart.js + + + + + + + +

        # Time Scale

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        text: 'Chart.js Time Scale',
        +        display: true
        +      }
        +    },
        +    scales: {
        +      x: {
        +        type: 'time',
        +        time: {
        +          // Luxon format string
        +          tooltipFormat: 'DD T'
        +        },
        +        title: {
        +          display: true,
        +          text: 'Date'
        +        }
        +      },
        +      y: {
        +        title: {
        +          display: true,
        +          text: 'value'
        +        }
        +      }
        +    },
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-max-span.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-max-span.html new file mode 100644 index 0000000..03ad509 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scales/time-max-span.html @@ -0,0 +1,267 @@ + + + + + + Time Scale - Max Span | Chart.js + + + + + + + +

        # Time Scale - Max Span

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    spanGaps: 1000 * 60 * 60 * 24 * 2, // 2 days
        +    responsive: true,
        +    interaction: {
        +      mode: 'nearest',
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Time - spanGaps: 172800000 (2 days in ms)'
        +      },
        +    },
        +    scales: {
        +      x: {
        +        type: 'time',
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'Date'
        +        },
        +        ticks: {
        +          autoSkip: false,
        +          maxRotation: 0,
        +          major: {
        +            enabled: true
        +          },
        +          // color: function(context) {
        +          //   return context.tick && context.tick.major ? '#FF0000' : 'rgba(0,0,0,0.1)';
        +          // },
        +          font: function(context) {
        +            if (context.tick && context.tick.major) {
        +              return {
        +                weight: 'bold',
        +              };
        +            }
        +          }
        +        }
        +      },
        +      y: {
        +        display: true,
        +        title: {
        +          display: true,
        +          text: 'value'
        +        }
        +      }
        +    }
        +  },
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bar.html new file mode 100644 index 0000000..8d6a978 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bar.html @@ -0,0 +1,155 @@ + + + + + + Bar Chart | Chart.js + + + + + + + +

        # Bar Chart

        Demo selecting bar color based on the bar's y value.

        function colorize(opaque) {
        +  return (ctx) => {
        +    const v = ctx.parsed.y;
        +    const c = v < -50 ? '#D60000'
        +      : v < 0 ? '#F46300'
        +      : v < 50 ? '#0358B6'
        +      : '#44DE28';
        +    return opaque ? c : Utils.transparentize(c, 1 - Math.abs(v / 150));
        +  };
        +}
        +const config = {
        +  type: 'bar',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: false,
        +    },
        +    elements: {
        +      bar: {
        +        backgroundColor: colorize(false),
        +        borderColor: colorize(true),
        +        borderWidth: 2
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bubble.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bubble.html new file mode 100644 index 0000000..838002c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/bubble.html @@ -0,0 +1,209 @@ + + + + + + Bubble Chart | Chart.js + + + + + + + +

        # Bubble Chart

        function channelValue(x, y, values) {
        +  return x < 0 && y < 0 ? values[0] : x < 0 ? values[1] : y < 0 ? values[2] : values[3];
        +}
        +function colorize(opaque, context) {
        +  const value = context.raw;
        +  const x = value.x / 100;
        +  const y = value.y / 100;
        +  const r = channelValue(x, y, [250, 150, 50, 0]);
        +  const g = channelValue(x, y, [0, 50, 150, 250]);
        +  const b = channelValue(x, y, [0, 150, 150, 250]);
        +  const a = opaque ? 1 : 0.5 * value.v / 1000;
        +  return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
        +}
        +const config = {
        +  type: 'bubble',
        +  data: data,
        +  options: {
        +    aspectRatio: 1,
        +    plugins: {
        +      legend: false,
        +      tooltip: false,
        +    },
        +    elements: {
        +      point: {
        +        backgroundColor: colorize.bind(null, false),
        +        borderColor: colorize.bind(null, true),
        +        borderWidth: function(context) {
        +          return Math.min(Math.max(1, context.datasetIndex + 1), 8);
        +        },
        +        hoverBackgroundColor: 'transparent',
        +        hoverBorderColor: function(context) {
        +          return Utils.color(context.datasetIndex);
        +        },
        +        hoverBorderWidth: function(context) {
        +          return Math.round(8 * context.raw.v / 1000);
        +        },
        +        radius: function(context) {
        +          const size = context.chart.width;
        +          const base = Math.abs(context.raw.v) / 1000;
        +          return (size / 24) * base;
        +        }
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/line.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/line.html new file mode 100644 index 0000000..64a07de --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/line.html @@ -0,0 +1,187 @@ + + + + + + Line Chart | Chart.js + + + + + + + +

        # Line Chart

        function getLineColor(ctx) {
        +  return Utils.color(ctx.datasetIndex);
        +}
        +function alternatePointStyles(ctx) {
        +  const index = ctx.dataIndex;
        +  return index % 2 === 0 ? 'circle' : 'rect';
        +}
        +function makeHalfAsOpaque(ctx) {
        +  return Utils.transparentize(getLineColor(ctx));
        +}
        +function adjustRadiusBasedOnData(ctx) {
        +  const v = ctx.parsed.y;
        +  return v < 10 ? 5
        +    : v < 25 ? 7
        +    : v < 50 ? 9
        +    : v < 75 ? 11
        +    : 15;
        +}
        +const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: false,
        +      tooltip: true,
        +    },
        +    elements: {
        +      line: {
        +        fill: false,
        +        backgroundColor: getLineColor,
        +        borderColor: getLineColor,
        +      },
        +      point: {
        +        backgroundColor: getLineColor,
        +        hoverBackgroundColor: makeHalfAsOpaque,
        +        radius: adjustRadiusBasedOnData,
        +        pointStyle: alternatePointStyles,
        +        hoverRadius: 15,
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/pie.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/pie.html new file mode 100644 index 0000000..a2055b5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/pie.html @@ -0,0 +1,179 @@ + + + + + + Pie Chart | Chart.js + + + + + + + +

        # Pie Chart

        function colorize(opaque, hover, ctx) {
        +  const v = ctx.parsed;
        +  const c = v < -50 ? '#D60000'
        +    : v < 0 ? '#F46300'
        +    : v < 50 ? '#0358B6'
        +    : '#44DE28';
        +  const opacity = hover ? 1 - Math.abs(v / 150) - 0.2 : 1 - Math.abs(v / 150);
        +  return opaque ? c : Utils.transparentize(c, opacity);
        +}
        +function hoverColorize(ctx) {
        +  return colorize(false, true, ctx);
        +}
        +const config = {
        +  type: 'pie',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: false,
        +      tooltip: false,
        +    },
        +    elements: {
        +      arc: {
        +        backgroundColor: colorize.bind(null, false, false),
        +        hoverBackgroundColor: hoverColorize
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/polar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/polar.html new file mode 100644 index 0000000..d69a3f6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/polar.html @@ -0,0 +1,159 @@ + + + + + + Polar Area Chart | Chart.js + + + + + + + +

        # Polar Area Chart

        function colorize(opaque, hover, ctx) {
        +  const v = ctx.raw;
        +  const c = v < 35 ? '#D60000'
        +    : v < 55 ? '#F46300'
        +    : v < 75 ? '#0358B6'
        +    : '#44DE28';
        +  const opacity = hover ? 1 - Math.abs(v / 150) - 0.2 : 1 - Math.abs(v / 150);
        +  return opaque ? c : Utils.transparentize(c, opacity);
        +}
        +function hoverColorize(ctx) {
        +  return colorize(false, true, ctx);
        +}
        +const config = {
        +  type: 'polarArea',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: false,
        +      tooltip: false,
        +    },
        +    elements: {
        +      arc: {
        +        backgroundColor: colorize.bind(null, false, false),
        +        hoverBackgroundColor: hoverColorize
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/radar.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/radar.html new file mode 100644 index 0000000..4ae76ca --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/scriptable/radar.html @@ -0,0 +1,191 @@ + + + + + + Radar Chart | Chart.js + + + + + + + +

        # Radar Chart

        function getLineColor(ctx) {
        +  return Utils.color(ctx.datasetIndex);
        +}
        +function alternatePointStyles(ctx) {
        +  const index = ctx.dataIndex;
        +  return index % 2 === 0 ? 'circle' : 'rect';
        +}
        +function makeHalfAsOpaque(ctx) {
        +  return Utils.transparentize(getLineColor(ctx));
        +}
        +function make20PercentOpaque(ctx) {
        +  return Utils.transparentize(getLineColor(ctx), 0.8);
        +}
        +function adjustRadiusBasedOnData(ctx) {
        +  const v = ctx.parsed.y;
        +  return v < 10 ? 5
        +    : v < 25 ? 7
        +    : v < 50 ? 9
        +    : v < 75 ? 11
        +    : 15;
        +}
        +const config = {
        +  type: 'radar',
        +  data: data,
        +  options: {
        +    plugins: {
        +      legend: false,
        +      tooltip: false,
        +    },
        +    elements: {
        +      line: {
        +        backgroundColor: make20PercentOpaque,
        +        borderColor: getLineColor,
        +      },
        +      point: {
        +        backgroundColor: getLineColor,
        +        hoverBackgroundColor: makeHalfAsOpaque,
        +        radius: adjustRadiusBasedOnData,
        +        pointStyle: alternatePointStyles,
        +        hoverRadius: 15,
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/subtitle/basic.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/subtitle/basic.html new file mode 100644 index 0000000..59838b9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/subtitle/basic.html @@ -0,0 +1,131 @@ + + + + + + Basic | Chart.js + + + + + + + +

        # Basic

        This sample shows basic usage of subtitle.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart Title',
        +      },
        +      subtitle: {
        +        display: true,
        +        text: 'Chart Subtitle',
        +        color: 'blue',
        +        font: {
        +          size: 12,
        +          family: 'tahoma',
        +          weight: 'normal',
        +          style: 'italic'
        +        },
        +        padding: {
        +          bottom: 10
        +        }
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/title/alignment.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/title/alignment.html new file mode 100644 index 0000000..c610ad6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/title/alignment.html @@ -0,0 +1,149 @@ + + + + + + Alignment | Chart.js + + + + + + + +

        # Alignment

        This sample show how to configure the alignment of the chart title

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart Title',
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/content.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/content.html new file mode 100644 index 0000000..49b31ce --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/content.html @@ -0,0 +1,141 @@ + + + + + + Custom Tooltip Content | Chart.js + + + + + + + +

        # Custom Tooltip Content

        This sample shows how to use the tooltip callbacks to add additional content to the tooltip.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    interaction: {
        +      intersect: false,
        +      mode: 'index',
        +    },
        +    plugins: {
        +      tooltip: {
        +        callbacks: {
        +          footer: footer,
        +        }
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/html.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/html.html new file mode 100644 index 0000000..5b774db --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/html.html @@ -0,0 +1,299 @@ + + + + + + External HTML Tooltip | Chart.js + + + + + + + +

        # External HTML Tooltip

        This sample shows how to use the external tooltip functionality to generate an HTML tooltip.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    interaction: {
        +      mode: 'index',
        +      intersect: false,
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: 'Chart.js Line Chart - External Tooltips'
        +      },
        +      tooltip: {
        +        enabled: false,
        +        position: 'nearest',
        +        external: externalTooltipHandler
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/interactions.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/interactions.html new file mode 100644 index 0000000..a0db995 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/interactions.html @@ -0,0 +1,273 @@ + + + + + + Interaction Modes | Chart.js + + + + + + + +

        # Interaction Modes

        This sample shows how to use the tooltip position mode setting.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    interaction: {
        +      intersect: false,
        +      mode: 'index',
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => {
        +          const {axis = 'xy', intersect, mode} = ctx.chart.options.interaction;
        +          return 'Mode: ' + mode + ', axis: ' + axis + ', intersect: ' + intersect;
        +        }
        +      },
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/point-style.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/point-style.html new file mode 100644 index 0000000..f178faa --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/point-style.html @@ -0,0 +1,173 @@ + + + + + + Point Style | Chart.js + + + + + + + +

        # Point Style

        This sample shows how to use the dataset point style in the tooltip instead of a rectangle to identify each dataset.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    interaction: {
        +      mode: 'index',
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => 'Tooltip point style: ' + ctx.chart.options.plugins.tooltip.usePointStyle,
        +      },
        +      tooltip: {
        +        usePointStyle: true,
        +      }
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/position.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/position.html new file mode 100644 index 0000000..cfacbdb --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/tooltip/position.html @@ -0,0 +1,201 @@ + + + + + + Position | Chart.js + + + + + + + +

        # Position

        This sample shows how to use the tooltip position mode setting.

        const config = {
        +  type: 'line',
        +  data: data,
        +  options: {
        +    interaction: {
        +      intersect: false,
        +      mode: 'index',
        +    },
        +    plugins: {
        +      title: {
        +        display: true,
        +        text: (ctx) => 'Tooltip position mode: ' + ctx.chart.options.plugins.tooltip.position,
        +      },
        +    }
        +  }
        +};

        # Docs

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/docs/samples/utils.html b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/utils.html new file mode 100644 index 0000000..6222664 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/docs/samples/utils.html @@ -0,0 +1,188 @@ + + + + + + Utils | Chart.js + + + + + + + +

        # Utils

        # Disclaimer

        The Utils file contains multiple helper functions that the chart.js sample pages use to generate Graficas. +These functions are subject to change, including but not limited to breaking changes without prior notice.

        Because of this please don't rely on this file in production environments.

        # Functions

        import colorLib from '@kurkle/color';
        +import {DateTime} from 'luxon';
        +import 'chartjs-adapter-luxon';
        +import {valueOrDefault} from '../../dist/helpers.mjs';
        +// Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/
        +var _seed = Date.now();
        +export function srand(seed) {
        +  _seed = seed;
        +}
        +export function rand(min, max) {
        +  min = valueOrDefault(min, 0);
        +  max = valueOrDefault(max, 0);
        +  _seed = (_seed * 9301 + 49297) % 233280;
        +  return min + (_seed / 233280) * (max - min);
        +}
        +export function numbers(config) {
        +  var cfg = config || {};
        +  var min = valueOrDefault(cfg.min, 0);
        +  var max = valueOrDefault(cfg.max, 100);
        +  var from = valueOrDefault(cfg.from, []);
        +  var count = valueOrDefault(cfg.count, 8);
        +  var decimals = valueOrDefault(cfg.decimals, 8);
        +  var continuity = valueOrDefault(cfg.continuity, 1);
        +  var dfactor = Math.pow(10, decimals) || 0;
        +  var data = [];
        +  var i, value;
        +  for (i = 0; i < count; ++i) {
        +    value = (from[i] || 0) + this.rand(min, max);
        +    if (this.rand() <= continuity) {
        +      data.push(Math.round(dfactor * value) / dfactor);
        +    } else {
        +      data.push(null);
        +    }
        +  }
        +  return data;
        +}
        +export function points(config) {
        +  const xs = this.numbers(config);
        +  const ys = this.numbers(config);
        +  return xs.map((x, i) => ({x, y: ys[i]}));
        +}
        +export function bubbles(config) {
        +  return this.points(config).map(pt => {
        +    pt.r = this.rand(config.rmin, config.rmax);
        +    return pt;
        +  });
        +}
        +export function labels(config) {
        +  var cfg = config || {};
        +  var min = cfg.min || 0;
        +  var max = cfg.max || 100;
        +  var count = cfg.count || 8;
        +  var step = (max - min) / count;
        +  var decimals = cfg.decimals || 8;
        +  var dfactor = Math.pow(10, decimals) || 0;
        +  var prefix = cfg.prefix || '';
        +  var values = [];
        +  var i;
        +  for (i = min; i < max; i += step) {
        +    values.push(prefix + Math.round(dfactor * i) / dfactor);
        +  }
        +  return values;
        +}
        +const MONTHS = [
        +  'January',
        +  'February',
        +  'March',
        +  'April',
        +  'May',
        +  'June',
        +  'July',
        +  'August',
        +  'September',
        +  'October',
        +  'November',
        +  'December'
        +];
        +export function months(config) {
        +  var cfg = config || {};
        +  var count = cfg.count || 12;
        +  var section = cfg.section;
        +  var values = [];
        +  var i, value;
        +  for (i = 0; i < count; ++i) {
        +    value = MONTHS[Math.ceil(i) % 12];
        +    values.push(value.substring(0, section));
        +  }
        +  return values;
        +}
        +const COLORS = [
        +  '#4dc9f6',
        +  '#f67019',
        +  '#f53794',
        +  '#537bc4',
        +  '#acc236',
        +  '#166a8f',
        +  '#00a950',
        +  '#58595b',
        +  '#8549ba'
        +];
        +export function color(index) {
        +  return COLORS[index % COLORS.length];
        +}
        +export function transparentize(value, opacity) {
        +  var alpha = opacity === undefined ? 0.5 : 1 - opacity;
        +  return colorLib(value).alpha(alpha).rgbString();
        +}
        +export const CHART_COLORS = {
        +  red: 'rgb(255, 99, 132)',
        +  orange: 'rgb(255, 159, 64)',
        +  yellow: 'rgb(255, 205, 86)',
        +  green: 'rgb(75, 192, 192)',
        +  blue: 'rgb(54, 162, 235)',
        +  purple: 'rgb(153, 102, 255)',
        +  grey: 'rgb(201, 203, 207)'
        +};
        +const NAMED_COLORS = [
        +  CHART_COLORS.red,
        +  CHART_COLORS.orange,
        +  CHART_COLORS.yellow,
        +  CHART_COLORS.green,
        +  CHART_COLORS.blue,
        +  CHART_COLORS.purple,
        +  CHART_COLORS.grey,
        +];
        +export function namedColor(index) {
        +  return NAMED_COLORS[index % NAMED_COLORS.length];
        +}
        +export function newDate(days) {
        +  return DateTime.now().plus({days}).toJSDate();
        +}
        +export function newDateString(days) {
        +  return DateTime.now().plus({days}).toISO();
        +}
        +export function parseISODate(str) {
        +  return DateTime.fromISO(str);
        +}
        +

        File on github (opens new window)

        # Componentes

        Some of the samples make reference to a Componentes object. This is an artifact of using a module bundler to build the samples. The creation of that Componentes object is shown below. If chart.js is included as a browser script, these items are accessible via the Chart object, i.e Chart.Tooltip.

        // Add Chart Componentes needed in samples here.
        +// Usable through `Componentes[name]`.
        +export {Tooltip} from '../../dist/chart.mjs';
        +

        File on github (opens new window)

        Last Updated: 8/3/2022, 12:46:38 PM
        + + + diff --git a/Practica-14.5/src/assets/vendor/chart.js/elements/element.arc.d.ts b/Practica-14.5/src/assets/vendor/chart.js/elements/element.arc.d.ts new file mode 100644 index 0000000..78a353a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/elements/element.arc.d.ts @@ -0,0 +1,44 @@ +import Element from '../core/core.element.js'; +import type { ArcOptions, Point } from '../types/index.js'; +export interface ArcProps extends Point { + startAngle: number; + endAngle: number; + innerRadius: number; + outerRadius: number; + circumference: number; +} +export default class ArcElement extends Element { + static id: string; + static defaults: { + borderAlign: string; + borderColor: string; + borderJoinStyle: any; + borderRadius: number; + borderWidth: number; + offset: number; + spacing: number; + angle: any; + circular: boolean; + }; + static defaultRoutes: { + backgroundColor: string; + }; + circumference: number; + endAngle: number; + fullCircles: number; + innerRadius: number; + outerRadius: number; + pixelMargin: number; + startAngle: number; + constructor(cfg: any); + inRange(chartX: number, chartY: number, useFinalPosition: boolean): boolean; + getCenterPoint(useFinalPosition: boolean): { + x: number; + y: number; + }; + tooltipPosition(useFinalPosition: boolean): { + x: number; + y: number; + }; + draw(ctx: CanvasRenderingContext2D): void; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/elements/element.bar.d.ts b/Practica-14.5/src/assets/vendor/chart.js/elements/element.bar.d.ts new file mode 100644 index 0000000..f650e32 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/elements/element.bar.d.ts @@ -0,0 +1,32 @@ +export default class BarElement extends Element { + static id: string; + /** + * @type {any} + */ + static defaults: any; + constructor(cfg: any); + options: any; + horizontal: any; + base: any; + width: any; + height: any; + inflateAmount: any; + draw(ctx: any): void; + inRange(mouseX: any, mouseY: any, useFinalPosition: any): boolean; + inXRange(mouseX: any, useFinalPosition: any): boolean; + inYRange(mouseY: any, useFinalPosition: any): boolean; + getCenterPoint(useFinalPosition: any): { + x: number; + y: number; + }; + getRange(axis: any): number; +} +export type BarProps = { + x: number; + y: number; + base: number; + horizontal: boolean; + width: number; + height: number; +}; +import Element from "../core/core.element.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/elements/element.line.d.ts b/Practica-14.5/src/assets/vendor/chart.js/elements/element.line.d.ts new file mode 100644 index 0000000..a5fe47d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/elements/element.line.d.ts @@ -0,0 +1,87 @@ +export default class LineElement extends Element { + static id: string; + /** + * @type {any} + */ + static defaults: any; + static descriptors: { + _scriptable: boolean; + _indexable: (name: any) => boolean; + }; + constructor(cfg: any); + animated: boolean; + options: any; + _chart: any; + _loop: any; + _fullLoop: any; + _path: any; + _points: any; + _segments: import("../helpers/helpers.segment.js").Segment[]; + _decimated: boolean; + _pointsUpdated: boolean; + _datasetIndex: any; + updateControlPoints(chartArea: any, indexAxis: any): void; + set points(arg: any); + get points(): any; + get segments(): import("../helpers/helpers.segment.js").Segment[]; + /** + * First non-skipped point on this line + * @returns {PointElement|undefined} + */ + first(): PointElement | undefined; + /** + * Last non-skipped point on this line + * @returns {PointElement|undefined} + */ + last(): PointElement | undefined; + /** + * Interpolate a point in this line at the same value on `property` as + * the reference `point` provided + * @param {PointElement} point - the reference point + * @param {string} property - the property to match on + * @returns {PointElement|undefined} + */ + interpolate(point: PointElement, property: string): PointElement | undefined; + /** + * Append a segment of this line to current path. + * @param {CanvasRenderingContext2D} ctx + * @param {object} segment + * @param {number} segment.start - start index of the segment, referring the points array + * @param {number} segment.end - end index of the segment, referring the points array + * @param {boolean} segment.loop - indicates that the segment is a loop + * @param {object} params + * @param {boolean} params.move - move to starting point (vs line to it) + * @param {boolean} params.reverse - path the segment from end to start + * @param {number} params.start - limit segment to points starting from `start` index + * @param {number} params.end - limit segment to points ending at `start` + `count` index + * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed) + */ + pathSegment(ctx: CanvasRenderingContext2D, segment: { + start: number; + end: number; + loop: boolean; + }, params: { + move: boolean; + reverse: boolean; + start: number; + end: number; + }): undefined | boolean; + /** + * Append all segments of this line to current path. + * @param {CanvasRenderingContext2D|Path2D} ctx + * @param {number} [start] + * @param {number} [count] + * @returns {undefined|boolean} - true if line is a full loop (path should be closed) + */ + path(ctx: CanvasRenderingContext2D | Path2D, start?: number, count?: number): undefined | boolean; + /** + * Draw + * @param {CanvasRenderingContext2D} ctx + * @param {object} chartArea + * @param {number} [start] + * @param {number} [count] + */ + draw(ctx: CanvasRenderingContext2D, chartArea: object, start?: number, count?: number): void; +} +export type PointElement = import('./element.point.js').default; +import Element from "../core/core.element.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/elements/element.point.d.ts b/Practica-14.5/src/assets/vendor/chart.js/elements/element.point.d.ts new file mode 100644 index 0000000..28cab0c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/elements/element.point.d.ts @@ -0,0 +1,39 @@ +import Element from '../core/core.element.js'; +import type { CartesianParsedData, ChartArea, Point, PointHoverOptions, PointOptions } from '../types/index.js'; +export declare type PointProps = Point; +export default class PointElement extends Element { + static id: string; + parsed: CartesianParsedData; + skip?: boolean; + stop?: boolean; + /** + * @type {any} + */ + static defaults: { + borderWidth: number; + hitRadius: number; + hoverBorderWidth: number; + hoverRadius: number; + pointStyle: string; + radius: number; + rotation: number; + }; + /** + * @type {any} + */ + static defaultRoutes: { + backgroundColor: string; + borderColor: string; + }; + constructor(cfg: any); + inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean): boolean; + inXRange(mouseX: number, useFinalPosition?: boolean): boolean; + inYRange(mouseY: number, useFinalPosition?: boolean): boolean; + getCenterPoint(useFinalPosition?: boolean): { + x: number; + y: number; + }; + size(options?: Partial): number; + draw(ctx: CanvasRenderingContext2D, area: ChartArea): void; + getRange(): any; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/elements/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/elements/index.d.ts new file mode 100644 index 0000000..3db94cc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/elements/index.d.ts @@ -0,0 +1,4 @@ +export { default as ArcElement } from "./element.arc.js"; +export { default as LineElement } from "./element.line.js"; +export { default as PointElement } from "./element.point.js"; +export { default as BarElement } from "./element.bar.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs b/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs new file mode 100644 index 0000000..ff6b5f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs @@ -0,0 +1,135 @@ +/*! + * Chart.js v4.1.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +'use strict'; + +var helpers_segment = require('./chunks/helpers.segment.cjs'); +require('@kurkle/color'); + + + +exports.HALF_PI = helpers_segment.HALF_PI; +exports.INFINITY = helpers_segment.INFINITY; +exports.PI = helpers_segment.PI; +exports.PITAU = helpers_segment.PITAU; +exports.QUARTER_PI = helpers_segment.QUARTER_PI; +exports.RAD_PER_DEG = helpers_segment.RAD_PER_DEG; +exports.TAU = helpers_segment.TAU; +exports.TWO_THIRDS_PI = helpers_segment.TWO_THIRDS_PI; +exports._addGrace = helpers_segment._addGrace; +exports._alignPixel = helpers_segment._alignPixel; +exports._alignStartEnd = helpers_segment._alignStartEnd; +exports._angleBetween = helpers_segment._angleBetween; +exports._angleDiff = helpers_segment._angleDiff; +exports._arrayUnique = helpers_segment._arrayUnique; +exports._attachContext = helpers_segment._attachContext; +exports._bezierCurveTo = helpers_segment._bezierCurveTo; +exports._bezierInterpolation = helpers_segment._bezierInterpolation; +exports._boundSegment = helpers_segment._boundSegment; +exports._boundSegments = helpers_segment._boundSegments; +exports._capitalize = helpers_segment._capitalize; +exports._computeSegments = helpers_segment._computeSegments; +exports._createResolver = helpers_segment._createResolver; +exports._decimalPlaces = helpers_segment._decimalPlaces; +exports._deprecated = helpers_segment._deprecated; +exports._descriptors = helpers_segment._descriptors; +exports._elementsEqual = helpers_segment._elementsEqual; +exports._factorize = helpers_segment._factorize; +exports._filterBetween = helpers_segment._filterBetween; +exports._getParentNode = helpers_segment._getParentNode; +exports._getStartAndCountOfVisiblePoints = helpers_segment._getStartAndCountOfVisiblePoints; +exports._int16Range = helpers_segment._int16Range; +exports._isBetween = helpers_segment._isBetween; +exports._isClickEvent = helpers_segment._isClickEvent; +exports._isDomSupported = helpers_segment._isDomSupported; +exports._isPointInArea = helpers_segment._isPointInArea; +exports._limitValue = helpers_segment._limitValue; +exports._longestText = helpers_segment._longestText; +exports._lookup = helpers_segment._lookup; +exports._lookupByKey = helpers_segment._lookupByKey; +exports._measureText = helpers_segment._measureText; +exports._merger = helpers_segment._merger; +exports._mergerIf = helpers_segment._mergerIf; +exports._normalizeAngle = helpers_segment._normalizeAngle; +exports._parseObjectDataRadialScale = helpers_segment._parseObjectDataRadialScale; +exports._pointInLine = helpers_segment._pointInLine; +exports._readValueToProps = helpers_segment._readValueToProps; +exports._rlookupByKey = helpers_segment._rlookupByKey; +exports._scaleRangesChanged = helpers_segment._scaleRangesChanged; +exports._setMinAndMaxByKey = helpers_segment._setMinAndMaxByKey; +exports._splitKey = helpers_segment._splitKey; +exports._steppedInterpolation = helpers_segment._steppedInterpolation; +exports._steppedLineTo = helpers_segment._steppedLineTo; +exports._textX = helpers_segment._textX; +exports._toLeftRightCenter = helpers_segment._toLeftRightCenter; +exports._updateBezierControlPoints = helpers_segment._updateBezierControlPoints; +exports.addRoundedRectPath = helpers_segment.addRoundedRectPath; +exports.almostEquals = helpers_segment.almostEquals; +exports.almostWhole = helpers_segment.almostWhole; +exports.callback = helpers_segment.callback; +exports.clearCanvas = helpers_segment.clearCanvas; +exports.clipArea = helpers_segment.clipArea; +exports.clone = helpers_segment.clone; +exports.color = helpers_segment.color; +exports.createContext = helpers_segment.createContext; +exports.debounce = helpers_segment.debounce; +exports.defined = helpers_segment.defined; +exports.distanceBetweenPoints = helpers_segment.distanceBetweenPoints; +exports.drawPoint = helpers_segment.drawPoint; +exports.drawPointLegend = helpers_segment.drawPointLegend; +exports.each = helpers_segment.each; +exports.easingEffects = helpers_segment.effects; +exports.finiteOrDefault = helpers_segment.finiteOrDefault; +exports.fontString = helpers_segment.fontString; +exports.formatNumber = helpers_segment.formatNumber; +exports.getAngleFromPoint = helpers_segment.getAngleFromPoint; +exports.getHoverColor = helpers_segment.getHoverColor; +exports.getMaximumSize = helpers_segment.getMaximumSize; +exports.getRelativePosition = helpers_segment.getRelativePosition; +exports.getRtlAdapter = helpers_segment.getRtlAdapter; +exports.getStyle = helpers_segment.getStyle; +exports.isArray = helpers_segment.isArray; +exports.isFinite = helpers_segment.isNumberFinite; +exports.isFunction = helpers_segment.isFunction; +exports.isNullOrUndef = helpers_segment.isNullOrUndef; +exports.isNumber = helpers_segment.isNumber; +exports.isObject = helpers_segment.isObject; +exports.isPatternOrGradient = helpers_segment.isPatternOrGradient; +exports.listenArrayEvents = helpers_segment.listenArrayEvents; +exports.log10 = helpers_segment.log10; +exports.merge = helpers_segment.merge; +exports.mergeIf = helpers_segment.mergeIf; +exports.niceNum = helpers_segment.niceNum; +exports.noop = helpers_segment.noop; +exports.overrideTextDirection = helpers_segment.overrideTextDirection; +exports.readUsedSize = helpers_segment.readUsedSize; +exports.renderText = helpers_segment.renderText; +exports.requestAnimFrame = helpers_segment.requestAnimFrame; +exports.resolve = helpers_segment.resolve; +exports.resolveObjectKey = helpers_segment.resolveObjectKey; +exports.restoreTextDirection = helpers_segment.restoreTextDirection; +exports.retinaScale = helpers_segment.retinaScale; +exports.setsEqual = helpers_segment.setsEqual; +exports.sign = helpers_segment.sign; +exports.splineCurve = helpers_segment.splineCurve; +exports.splineCurveMonotone = helpers_segment.splineCurveMonotone; +exports.supportsEventListenerOptions = helpers_segment.supportsEventListenerOptions; +exports.throttled = helpers_segment.throttled; +exports.toDegrees = helpers_segment.toDegrees; +exports.toDimension = helpers_segment.toDimension; +exports.toFont = helpers_segment.toFont; +exports.toFontString = helpers_segment.toFontString; +exports.toLineHeight = helpers_segment.toLineHeight; +exports.toPadding = helpers_segment.toPadding; +exports.toPercentage = helpers_segment.toPercentage; +exports.toRadians = helpers_segment.toRadians; +exports.toTRBL = helpers_segment.toTRBL; +exports.toTRBLCorners = helpers_segment.toTRBLCorners; +exports.uid = helpers_segment.uid; +exports.unclipArea = helpers_segment.unclipArea; +exports.unlistenArrayEvents = helpers_segment.unlistenArrayEvents; +exports.valueOrDefault = helpers_segment.valueOrDefault; +//# sourceMappingURL=helpers.cjs.map diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs.map b/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs.map new file mode 100644 index 0000000..0bf0063 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.esm.js b/Practica-14.5/src/assets/vendor/chart.js/helpers.esm.js new file mode 100644 index 0000000..508bc93 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.esm.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +export { H as HALF_PI, b1 as INFINITY, P as PI, b0 as PITAU, b3 as QUARTER_PI, b2 as RAD_PER_DEG, T as TAU, b4 as TWO_THIRDS_PI, D as _addGrace, J as _alignPixel, S as _alignStartEnd, p as _angleBetween, b5 as _angleDiff, _ as _arrayUnique, a9 as _attachContext, at as _bezierCurveTo, aq as _bezierInterpolation, ay as _boundSegment, ao as _boundSegments, W as _capitalize, an as _computeSegments, aa as _createResolver, aL as _decimalPlaces, aU as _deprecated, ab as _descriptors, ai as _elementsEqual, A as _factorize, aN as _filterBetween, a2 as _getParentNode, q as _getStartAndCountOfVisiblePoints, I as _int16Range, ak as _isBetween, aj as _isClickEvent, a6 as _isDomSupported, $ as _isPointInArea, E as _limitValue, aM as _longestText, aO as _lookup, Z as _lookupByKey, G as _measureText, aS as _merger, aT as _mergerIf, az as _normalizeAngle, y as _parseObjectDataRadialScale, ar as _pointInLine, al as _readValueToProps, Y as _rlookupByKey, w as _scaleRangesChanged, aH as _setMinAndMaxByKey, aV as _splitKey, ap as _steppedInterpolation, as as _steppedLineTo, aC as _textX, R as _toLeftRightCenter, am as _updateBezierControlPoints, av as addRoundedRectPath, aK as almostEquals, aJ as almostWhole, C as callback, ag as clearCanvas, L as clipArea, aR as clone, c as color, h as createContext, ae as debounce, j as defined, aG as distanceBetweenPoints, au as drawPoint, aE as drawPointLegend, Q as each, e as easingEffects, B as finiteOrDefault, a_ as fontString, o as formatNumber, a0 as getAngleFromPoint, aQ as getHoverColor, a1 as getMaximumSize, X as getRelativePosition, aA as getRtlAdapter, aZ as getStyle, b as isArray, g as isFinite, a8 as isFunction, k as isNullOrUndef, x as isNumber, i as isObject, aP as isPatternOrGradient, l as listenArrayEvents, z as log10, V as merge, ac as mergeIf, aI as niceNum, aF as noop, aB as overrideTextDirection, a3 as readUsedSize, M as renderText, r as requestAnimFrame, a as resolve, f as resolveObjectKey, aD as restoreTextDirection, af as retinaScale, ah as setsEqual, s as sign, aX as splineCurve, aY as splineCurveMonotone, a5 as supportsEventListenerOptions, a4 as throttled, F as toDegrees, n as toDimension, O as toFont, aW as toFontString, a$ as toLineHeight, K as toPadding, m as toPercentage, t as toRadians, aw as toTRBL, ax as toTRBLCorners, ad as uid, N as unclipArea, u as unlistenArrayEvents, v as valueOrDefault } from './chunks/helpers.segment.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.js b/Practica-14.5/src/assets/vendor/chart.js/helpers.js new file mode 100644 index 0000000..d14654c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.js @@ -0,0 +1,9 @@ +/*! + * Chart.js v4.1.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +export { H as HALF_PI, b2 as INFINITY, P as PI, b1 as PITAU, b4 as QUARTER_PI, b3 as RAD_PER_DEG, T as TAU, b5 as TWO_THIRDS_PI, R as _addGrace, X as _alignPixel, a2 as _alignStartEnd, p as _angleBetween, b6 as _angleDiff, _ as _arrayUnique, a8 as _attachContext, as as _bezierCurveTo, ap as _bezierInterpolation, ax as _boundSegment, an as _boundSegments, a5 as _capitalize, am as _computeSegments, a9 as _createResolver, aK as _decimalPlaces, aV as _deprecated, aa as _descriptors, ah as _elementsEqual, N as _factorize, aO as _filterBetween, I as _getParentNode, q as _getStartAndCountOfVisiblePoints, W as _int16Range, aj as _isBetween, ai as _isClickEvent, M as _isDomSupported, C as _isPointInArea, S as _limitValue, aN as _longestText, aP as _lookup, B as _lookupByKey, V as _measureText, aT as _merger, aU as _mergerIf, ay as _normalizeAngle, y as _parseObjectDataRadialScale, aq as _pointInLine, ak as _readValueToProps, A as _rlookupByKey, w as _scaleRangesChanged, aG as _setMinAndMaxByKey, aW as _splitKey, ao as _steppedInterpolation, ar as _steppedLineTo, aB as _textX, a1 as _toLeftRightCenter, al as _updateBezierControlPoints, au as addRoundedRectPath, aJ as almostEquals, aI as almostWhole, Q as callback, af as clearCanvas, Y as clipArea, aS as clone, c as color, j as createContext, ad as debounce, h as defined, aE as distanceBetweenPoints, at as drawPoint, aD as drawPointLegend, F as each, e as easingEffects, O as finiteOrDefault, a$ as fontString, o as formatNumber, D as getAngleFromPoint, aR as getHoverColor, G as getMaximumSize, z as getRelativePosition, az as getRtlAdapter, a_ as getStyle, b as isArray, g as isFinite, a7 as isFunction, k as isNullOrUndef, x as isNumber, i as isObject, aQ as isPatternOrGradient, l as listenArrayEvents, aM as log10, a4 as merge, ab as mergeIf, aH as niceNum, aF as noop, aA as overrideTextDirection, J as readUsedSize, Z as renderText, r as requestAnimFrame, a as resolve, f as resolveObjectKey, aC as restoreTextDirection, ae as retinaScale, ag as setsEqual, s as sign, aY as splineCurve, aZ as splineCurveMonotone, K as supportsEventListenerOptions, L as throttled, U as toDegrees, n as toDimension, a0 as toFont, aX as toFontString, b0 as toLineHeight, E as toPadding, m as toPercentage, t as toRadians, av as toTRBL, aw as toTRBLCorners, ac as uid, $ as unclipArea, u as unlistenArrayEvents, v as valueOrDefault } from './chunks/helpers.segment.js'; +import '@kurkle/color'; +//# sourceMappingURL=helpers.js.map diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.js.map b/Practica-14.5/src/assets/vendor/chart.js/helpers.js.map new file mode 100644 index 0000000..de14c42 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers.mjs b/Practica-14.5/src/assets/vendor/chart.js/helpers.mjs new file mode 100644 index 0000000..5eef9a0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers.mjs @@ -0,0 +1,7 @@ +/*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +export { H as HALF_PI, b1 as INFINITY, P as PI, b0 as PITAU, b3 as QUARTER_PI, b2 as RAD_PER_DEG, T as TAU, b4 as TWO_THIRDS_PI, D as _addGrace, J as _alignPixel, S as _alignStartEnd, p as _angleBetween, b5 as _angleDiff, _ as _arrayUnique, a9 as _attachContext, at as _bezierCurveTo, aq as _bezierInterpolation, ay as _boundSegment, ao as _boundSegments, W as _capitalize, an as _computeSegments, aa as _createResolver, aL as _decimalPlaces, aU as _deprecated, ab as _descriptors, ai as _elementsEqual, A as _factorize, aN as _filterBetween, a2 as _getParentNode, q as _getStartAndCountOfVisiblePoints, I as _int16Range, ak as _isBetween, aj as _isClickEvent, a6 as _isDomSupported, $ as _isPointInArea, E as _limitValue, aM as _longestText, aO as _lookup, Z as _lookupByKey, G as _measureText, aS as _merger, aT as _mergerIf, az as _normalizeAngle, y as _parseObjectDataRadialScale, ar as _pointInLine, al as _readValueToProps, Y as _rlookupByKey, w as _scaleRangesChanged, aH as _setMinAndMaxByKey, aV as _splitKey, ap as _steppedInterpolation, as as _steppedLineTo, aC as _textX, R as _toLeftRightCenter, am as _updateBezierControlPoints, av as addRoundedRectPath, aK as almostEquals, aJ as almostWhole, C as callback, ag as clearCanvas, L as clipArea, aR as clone, c as color, h as createContext, ae as debounce, j as defined, aG as distanceBetweenPoints, au as drawPoint, aE as drawPointLegend, Q as each, e as easingEffects, B as finiteOrDefault, a_ as fontString, o as formatNumber, a0 as getAngleFromPoint, aQ as getHoverColor, a1 as getMaximumSize, X as getRelativePosition, aA as getRtlAdapter, aZ as getStyle, b as isArray, g as isFinite, a8 as isFunction, k as isNullOrUndef, x as isNumber, i as isObject, aP as isPatternOrGradient, l as listenArrayEvents, z as log10, V as merge, ac as mergeIf, aI as niceNum, aF as noop, aB as overrideTextDirection, a3 as readUsedSize, M as renderText, r as requestAnimFrame, a as resolve, f as resolveObjectKey, aD as restoreTextDirection, af as retinaScale, ah as setsEqual, s as sign, aX as splineCurve, aY as splineCurveMonotone, a5 as supportsEventListenerOptions, a4 as throttled, F as toDegrees, n as toDimension, O as toFont, aW as toFontString, a$ as toLineHeight, K as toPadding, m as toPercentage, t as toRadians, aw as toTRBL, ax as toTRBLCorners, ad as uid, N as unclipArea, u as unlistenArrayEvents, v as valueOrDefault } from './chunks/helpers.segment.mjs'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.canvas.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.canvas.d.ts new file mode 100644 index 0000000..57d06f6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.canvas.d.ts @@ -0,0 +1,85 @@ +/** + * Note: typedefs are auto-exported, so use a made-up `canvas` namespace where + * necessary to avoid duplicates with `export * from './helpers`; see + * https://github.com/microsoft/TypeScript/issues/46011 + * @typedef { import('../core/core.controller.js').default } canvas.Chart + * @typedef { import('../types/index.js').Point } Point + */ +/** + * @namespace Chart.helpers.canvas + */ +/** + * Converts the given font object into a CSS font string. + * @param {object} font - A font object. + * @return {string|null} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font + * @private + */ +export function toFontString(font: object): string | null; +/** + * @private + */ +export function _measureText(ctx: any, data: any, gc: any, longest: any, string: any): any; +/** + * @private + */ +export function _longestText(ctx: any, font: any, arrayOfThings: any, cache: any): number; +/** + * Returns the aligned pixel value to avoid anti-aliasing blur + * @param {canvas.Chart} chart - The chart instance. + * @param {number} pixel - A pixel value. + * @param {number} width - The width of the element. + * @returns {number} The aligned pixel value. + * @private + */ +export function _alignPixel(chart: canvas.Chart, pixel: number, width: number): number; +/** + * Clears the entire canvas. + * @param {HTMLCanvasElement} canvas + * @param {CanvasRenderingContext2D} [ctx] + */ +export function clearCanvas(canvas: HTMLCanvasElement, ctx?: CanvasRenderingContext2D): void; +export function drawPoint(ctx: any, options: any, x: any, y: any): void; +export function drawPointLegend(ctx: any, options: any, x: any, y: any, w: any): void; +/** + * Returns true if the point is inside the rectangle + * @param {Point} point - The point to test + * @param {object} area - The rectangle + * @param {number} [margin] - allowed margin + * @returns {boolean} + * @private + */ +export function _isPointInArea(point: Point, area: object, margin?: number): boolean; +export function clipArea(ctx: any, area: any): void; +export function unclipArea(ctx: any): void; +/** + * @private + */ +export function _steppedLineTo(ctx: any, previous: any, target: any, flip: any, mode: any): any; +/** + * @private + */ +export function _bezierCurveTo(ctx: any, previous: any, target: any, flip: any): any; +/** + * Render text onto the canvas + */ +export function renderText(ctx: any, text: any, x: any, y: any, font: any, opts?: {}): void; +/** + * Add a path of a rectangle with rounded corners to the current sub-path + * @param {CanvasRenderingContext2D} ctx Context + * @param {*} rect Bounding rect + */ +export function addRoundedRectPath(ctx: CanvasRenderingContext2D, rect: any): void; +export namespace canvas { + /** + * Note: typedefs are auto-exported, so use a made-up `canvas` namespace where + * necessary to avoid duplicates with `export * from './helpers`; see + * https://github.com/microsoft/TypeScript/issues/46011 + */ + type Chart = import('../core/core.controller.js').default; +} +/** + * Note: typedefs are auto-exported, so use a made-up `canvas` namespace where + * necessary to avoid duplicates with `export * from './helpers`; see + * https://github.com/microsoft/TypeScript/issues/46011 + */ +export type Point = import('../types/index.js').Point; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.collection.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.collection.d.ts new file mode 100644 index 0000000..eba543d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.collection.d.ts @@ -0,0 +1,68 @@ +/** + * Binary Buscar + * @param table - the table Buscar. must be sorted! + * @param value - value to find + * @param cmp + * @private + */ +export declare function _lookup(table: number[], value: number, cmp?: (value: number) => boolean): { + lo: number; + hi: number; +}; +export declare function _lookup(table: T[], value: number, cmp: (value: number) => boolean): { + lo: number; + hi: number; +}; +/** + * Binary Buscar + * @param table - the table Buscar. must be sorted! + * @param key - property name for the value in each entry + * @param value - value to find + * @param last - lookup last index + * @private + */ +export declare const _lookupByKey: (table: Record[], key: string, value: number, last?: boolean) => { + lo: number; + hi: number; +}; +/** + * Reverse binary Buscar + * @param table - the table Buscar. must be sorted! + * @param key - property name for the value in each entry + * @param value - value to find + * @private + */ +export declare const _rlookupByKey: (table: Record[], key: string, value: number) => { + lo: number; + hi: number; +}; +/** + * Return subset of `values` between `min` and `max` inclusive. + * Values are assumed to be in sorted order. + * @param values - sorted array of values + * @param min - min value + * @param max - max value + */ +export declare function _filterBetween(values: number[], min: number, max: number): number[]; +export interface ArrayListener { + _onDataPush?(...item: T[]): void; + _onDataPop?(): void; + _onDataShift?(): void; + _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void; + _onDataUnshift?(...item: T[]): void; +} +/** + * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice', + * 'unshift') and notify the listener AFTER the array has been altered. Listeners are + * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments. + */ +export declare function listenArrayEvents(array: T[], listener: ArrayListener): void; +/** + * Removes the given array event listener and cleanup extra attached properties (such as + * the _chartjs stub and overridden methods) if array doesn't have any more listeners. + */ +export declare function unlistenArrayEvents(array: T[], listener: ArrayListener): void; +/** + * @param items + */ +export declare function _arrayUnique(items: T[]): T[]; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.color.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.color.d.ts new file mode 100644 index 0000000..b4d7c70 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.color.d.ts @@ -0,0 +1,13 @@ +import { Color } from '@kurkle/color'; +export declare function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient; +export declare function color(value: CanvasGradient): CanvasGradient; +export declare function color(value: CanvasPattern): CanvasPattern; +export declare function color(value: string | { + r: number; + g: number; + b: number; + a: number; +} | [number, number, number] | [number, number, number, number]): Color; +export declare function getHoverColor(value: CanvasGradient): CanvasGradient; +export declare function getHoverColor(value: CanvasPattern): CanvasPattern; +export declare function getHoverColor(value: string): string; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.config.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.config.d.ts new file mode 100644 index 0000000..dba7ec8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.config.d.ts @@ -0,0 +1,61 @@ +/** + * Creates a Proxy for resolving raw values for options. + * @param {object[]} scopes - The option scopes to look for values, in resolution order + * @param {string[]} [prefixes] - The prefixes for values, in resolution order. + * @param {object[]} [rootScopes] - The root option scopes + * @param {string|boolean} [fallback] - Parent scopes fallback + * @param {function} [getTarget] - callback for getting the target for changed values + * @returns Proxy + * @private + */ +export function _createResolver(scopes: object[], prefixes?: string[], rootScopes?: object[], fallback?: string | boolean, getTarget?: Function): { + [Symbol.toStringTag]: string; + _cacheable: boolean; + _scopes: any[]; + _rootScopes: any[]; + _fallback: string | boolean; + _getTarget: Function; + override: (scope: any) => any; +}; +/** + * Returns an Proxy for resolving option values with context. + * @param {object} proxy - The Proxy returned by `_createResolver` + * @param {object} context - Context object for scriptable/indexable options + * @param {object} [subProxy] - The proxy provided for scriptable options + * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults] - Defaults for descriptors + * @private + */ +export function _attachContext(proxy: object, context: object, subProxy?: object, descriptorDefaults?: { + scriptable: boolean; + indexable: boolean; + allKeys?: boolean; +}): { + _cacheable: boolean; + _proxy: any; + _context: any; + _subProxy: any; + _stack: Set; + _descriptors: { + allKeys: any; + scriptable: any; + indexable: any; + isScriptable: (...args: any[]) => any; + isIndexable: (...args: any[]) => any; + }; + setContext: (ctx: any) => any; + override: (scope: any) => any; +}; +/** + * @private + */ +export function _descriptors(proxy: any, defaults?: { + scriptable: boolean; + indexable: boolean; +}): { + allKeys: any; + scriptable: any; + indexable: any; + isScriptable: (...args: any[]) => any; + isIndexable: (...args: any[]) => any; +}; +export function _parseObjectDataRadialScale(meta: any, data: any, start: any, count: any): any[]; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.core.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.core.d.ts new file mode 100644 index 0000000..a2d1aff --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.core.d.ts @@ -0,0 +1,147 @@ +/** + * @namespace Chart.helpers + */ +import type { AnyObject } from '../types/basic.js'; +import type { ActiveDataPoint, ChartEvent } from '../types/index.js'; +/** + * An empty function that can be used, for example, for optional callback. + */ +export declare function noop(): void; +/** + * Returns a unique id, sequentially generated from a global variable. + */ +export declare const uid: () => number; +/** + * Returns true if `value` is neither null nor undefined, else returns false. + * @param value - The value to test. + * @since 2.7.0 + */ +export declare function isNullOrUndef(value: unknown): value is null | undefined; +/** + * Returns true if `value` is an array (including typed arrays), else returns false. + * @param value - The value to test. + * @function + */ +export declare function isArray(value: unknown): value is T[]; +/** + * Returns true if `value` is an object (excluding null), else returns false. + * @param value - The value to test. + * @since 2.7.0 + */ +export declare function isObject(value: unknown): value is AnyObject; +/** + * Returns true if `value` is a finite number, else returns false + * @param value - The value to test. + */ +declare function isNumberFinite(value: unknown): value is number; +export { isNumberFinite as isFinite, }; +/** + * Returns `value` if finite, else returns `defaultValue`. + * @param value - The value to return if defined. + * @param defaultValue - The value to return if `value` is not finite. + */ +export declare function finiteOrDefault(value: unknown, defaultValue: number): number; +/** + * Returns `value` if defined, else returns `defaultValue`. + * @param value - The value to return if defined. + * @param defaultValue - The value to return if `value` is undefined. + */ +export declare function valueOrDefault(value: T | undefined, defaultValue: T): T; +export declare const toPercentage: (value: number | string, dimension: number) => number; +export declare const toDimension: (value: number | string, dimension: number) => number; +/** + * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the + * value returned by `fn`. If `fn` is not a function, this method returns undefined. + * @param fn - The function to call. + * @param args - The arguments with which `fn` should be called. + * @param [thisArg] - The value of `this` provided for the call to `fn`. + */ +export declare function callback R, TA, R>(fn: T | undefined, args: unknown[], thisArg?: TA): R | undefined; +/** + * Note(SB) for performance sake, this method should only be used when loopable type + * is unknown or in none intensive code (not called often and small loopable). Else + * it's preferable to use a regular for() loop and save extra function calls. + * @param loopable - The object or array to be iterated. + * @param fn - The function to call for each item. + * @param [thisArg] - The value of `this` provided for the call to `fn`. + * @param [reverse] - If true, iterates backward on the loopable. + */ +export declare function each(loopable: Record, fn: (this: TA, v: T, i: string) => void, thisArg?: TA, reverse?: boolean): void; +export declare function each(loopable: T[], fn: (this: TA, v: T, i: number) => void, thisArg?: TA, reverse?: boolean): void; +/** + * Returns true if the `a0` and `a1` arrays have the same content, else returns false. + * @param a0 - The array to compare + * @param a1 - The array to compare + * @private + */ +export declare function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]): boolean; +/** + * Returns a deep copy of `source` without keeping references on objects and arrays. + * @param source - The value to clone. + */ +export declare function clone(source: T): T; +/** + * The default merger when Chart.helpers.merge is called without merger option. + * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback. + * @private + */ +export declare function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject): void; +export interface MergeOptions { + merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void; +} +/** + * Recursively deep copies `source` properties into `target` with the given `options`. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param target - The target object in which all sources are merged into. + * @param source - Object(s) to merge into `target`. + * @param [options] - Merging options: + * @param [options.merger] - The merge method (key, target, source, options) + * @returns The `target` object. + */ +export declare function merge(target: T, source: [], options?: MergeOptions): T; +export declare function merge(target: T, source: S1, options?: MergeOptions): T & S1; +export declare function merge(target: T, source: [S1], options?: MergeOptions): T & S1; +export declare function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2; +export declare function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3; +export declare function merge(target: T, source: [S1, S2, S3, S4], options?: MergeOptions): T & S1 & S2 & S3 & S4; +export declare function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject; +/** + * Recursively deep copies `source` properties into `target` *only* if not defined in target. + * IMPORTANT: `target` is not cloned and will be updated with `source` properties. + * @param target - The target object in which all sources are merged into. + * @param source - Object(s) to merge into `target`. + * @returns The `target` object. + */ +export declare function mergeIf(target: T, source: []): T; +export declare function mergeIf(target: T, source: S1): T & S1; +export declare function mergeIf(target: T, source: [S1]): T & S1; +export declare function mergeIf(target: T, source: [S1, S2]): T & S1 & S2; +export declare function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3; +export declare function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4; +export declare function mergeIf(target: T, source: AnyObject[]): AnyObject; +/** + * Merges source[key] in target[key] only if target[key] is undefined. + * @private + */ +export declare function _mergerIf(key: string, target: AnyObject, source: AnyObject): void; +/** + * @private + */ +export declare function _deprecated(scope: string, value: unknown, previous: string, current: string): void; +/** + * @private + */ +export declare function _splitKey(key: string): string[]; +export declare function resolveObjectKey(obj: AnyObject, key: string): AnyObject; +/** + * @private + */ +export declare function _capitalize(str: string): string; +export declare const defined: (value: unknown) => boolean; +export declare const isFunction: (value: unknown) => value is (...args: any[]) => any; +export declare const setsEqual: (a: Set, b: Set) => boolean; +/** + * @param e - The event + * @private + */ +export declare function _isClickEvent(e: ChartEvent): boolean; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.curve.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.curve.d.ts new file mode 100644 index 0000000..8d3b786 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.curve.d.ts @@ -0,0 +1,25 @@ +import type { ChartArea } from '../types/index.js'; +export interface SplinePoint { + x: number; + y: number; + skip?: boolean; + cp1x?: number; + cp1y?: number; + cp2x?: number; + cp2y?: number; +} +export declare function splineCurve(firstPoint: SplinePoint, middlePoint: SplinePoint, afterPoint: SplinePoint, t: number): { + previous: SplinePoint; + next: SplinePoint; +}; +/** + * This function calculates Bézier control points in a similar way than |splineCurve|, + * but preserves monotonicity of the provided data and ensures no local extremums are added + * between the dataset discrete points due to the interpolation. + * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation + */ +export declare function splineCurveMonotone(points: SplinePoint[], indexAxis?: 'x' | 'y'): void; +/** + * @private + */ +export declare function _updateBezierControlPoints(points: SplinePoint[], options: any, area: ChartArea, loop: boolean, indexAxis: 'x' | 'y'): void; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.dom.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.dom.d.ts new file mode 100644 index 0000000..1678b18 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.dom.d.ts @@ -0,0 +1,55 @@ +import type Chart from '../core/core.controller.js'; +import type { ChartEvent } from '../types.js'; +/** + * Note: typedefs are auto-exported, so use a made-up `dom` namespace where + * necessary to avoid duplicates with `export * from './helpers`; see + * https://github.com/microsoft/TypeScript/issues/46011 + * @typedef { import('../core/core.controller.js').default } dom.Chart + * @typedef { import('../../types').ChartEvent } ChartEvent + */ +/** + * @private + */ +export declare function _isDomSupported(): boolean; +/** + * @private + */ +export declare function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement; +export declare function getStyle(el: HTMLElement, property: string): string; +/** + * Gets an event's x, y coordinates, relative to the chart area + * @param event + * @param chart + * @returns x and y coordinates of the event + */ +export declare function getRelativePosition(event: Event | ChartEvent | TouchEvent | MouseEvent, chart: Chart): { + x: number; + y: number; +}; +export declare function getMaximumSize(canvas: HTMLCanvasElement, bbWidth?: number, bbHeight?: number, aspectRatio?: number): { + width: number; + height: number; +}; +/** + * @param chart + * @param forceRatio + * @param forceStyle + * @returns True if the canvas context size or transformation has changed. + */ +export declare function retinaScale(chart: Chart, forceRatio: number, forceStyle?: boolean): boolean | void; +/** + * Detects support for options object argument in addEventListener. + * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support + * @private + */ +export declare const supportsEventListenerOptions: boolean; +/** + * The "used" size is the final value of a dimension property after all calculations have + * been performed. This method uses the computed style of `element` but returns undefined + * if the computed style is not expressed in pixels. That can happen in some cases where + * `element` has a size relative to its parent and this last one is not yet displayed, + * for example because of `display: none` on a parent node. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value + * @returns Size in pixels or undefined if unknown. + */ +export declare function readUsedSize(element: HTMLElement, property: 'width' | 'height'): number | undefined; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.easing.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.easing.d.ts new file mode 100644 index 0000000..dc8804d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.easing.d.ts @@ -0,0 +1,40 @@ +/** + * Easing functions adapted from Robert Penner's easing equations. + * @namespace Chart.helpers.easing.effects + * @see http://www.robertpenner.com/easing/ + */ +declare const effects: { + readonly linear: (t: number) => number; + readonly easeInQuad: (t: number) => number; + readonly easeOutQuad: (t: number) => number; + readonly easeInOutQuad: (t: number) => number; + readonly easeInCubic: (t: number) => number; + readonly easeOutCubic: (t: number) => number; + readonly easeInOutCubic: (t: number) => number; + readonly easeInQuart: (t: number) => number; + readonly easeOutQuart: (t: number) => number; + readonly easeInOutQuart: (t: number) => number; + readonly easeInQuint: (t: number) => number; + readonly easeOutQuint: (t: number) => number; + readonly easeInOutQuint: (t: number) => number; + readonly easeInSine: (t: number) => number; + readonly easeOutSine: (t: number) => number; + readonly easeInOutSine: (t: number) => number; + readonly easeInExpo: (t: number) => number; + readonly easeOutExpo: (t: number) => number; + readonly easeInOutExpo: (t: number) => number; + readonly easeInCirc: (t: number) => number; + readonly easeOutCirc: (t: number) => number; + readonly easeInOutCirc: (t: number) => number; + readonly easeInElastic: (t: number) => number; + readonly easeOutElastic: (t: number) => number; + readonly easeInOutElastic: (t: number) => number; + readonly easeInBack: (t: number) => number; + readonly easeOutBack: (t: number) => number; + readonly easeInOutBack: (t: number) => number; + readonly easeInBounce: (t: number) => number; + readonly easeOutBounce: (t: number) => number; + readonly easeInOutBounce: (t: number) => number; +}; +export declare type EasingFunction = keyof typeof effects; +export default effects; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.extras.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.extras.d.ts new file mode 100644 index 0000000..fc95895 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.extras.d.ts @@ -0,0 +1,45 @@ +import type { ChartMeta, PointElement } from '../types/index.js'; +export declare function fontString(pixelSize: number, fontStyle: string, fontFamily: string): string; +/** +* Request animation polyfill +*/ +export declare const requestAnimFrame: (((callback: FrameRequestCallback) => number) & typeof requestAnimationFrame) | ((callback: any) => any); +/** + * Throttles calling `fn` once per animation frame + * Latest arguments are used on the actual call + */ +export declare function throttled>(fn: (...args: TArgs) => void, thisArg: any): (...args: TArgs) => void; +/** + * Debounces calling `fn` for `delay` ms + */ +export declare function debounce>(fn: (...args: TArgs) => void, delay: number): (...args: TArgs) => number; +/** + * Converts 'start' to 'left', 'end' to 'right' and others to 'center' + * @private + */ +export declare const _toLeftRightCenter: (align: 'start' | 'end' | 'center') => "center" | "left" | "right"; +/** + * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center` + * @private + */ +export declare const _alignStartEnd: (align: 'start' | 'end' | 'center', start: number, end: number) => number; +/** + * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left` + * @private + */ +export declare const _textX: (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => number; +/** + * Return start and count of visible points. + * @private + */ +export declare function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean): { + start: number; + count: number; +}; +/** + * Checks if the scale ranges have changed. + * @param {object} meta - dataset meta. + * @returns {boolean} + * @private + */ +export declare function _scaleRangesChanged(meta: any): boolean; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.interpolation.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.interpolation.d.ts new file mode 100644 index 0000000..7b2dca2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.interpolation.d.ts @@ -0,0 +1,23 @@ +import type { Point } from '../types/geometric.js'; +import type { SplinePoint } from './helpers.curve.js'; +/** + * @private + */ +export declare function _pointInLine(p1: Point, p2: Point, t: number, mode?: any): { + x: number; + y: number; +}; +/** + * @private + */ +export declare function _steppedInterpolation(p1: Point, p2: Point, t: number, mode: 'middle' | 'after' | unknown): { + x: number; + y: number; +}; +/** + * @private + */ +export declare function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?: any): { + x: number; + y: number; +}; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.intl.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.intl.d.ts new file mode 100644 index 0000000..288f8cf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.intl.d.ts @@ -0,0 +1 @@ +export declare function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions): string; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.math.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.math.d.ts new file mode 100644 index 0000000..c7b5549 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.math.d.ts @@ -0,0 +1,84 @@ +import type { Point } from '../types/geometric.js'; +/** + * @alias Chart.helpers.math + * @namespace + */ +export declare const PI: number; +export declare const TAU: number; +export declare const PITAU: number; +export declare const INFINITY: number; +export declare const RAD_PER_DEG: number; +export declare const HALF_PI: number; +export declare const QUARTER_PI: number; +export declare const TWO_THIRDS_PI: number; +export declare const log10: (x: number) => number; +export declare const sign: (x: number) => number; +export declare function almostEquals(x: number, y: number, epsilon: number): boolean; +/** + * Implementation of the nice number algorithm used in determining where axis labels will go + */ +export declare function niceNum(range: number): number; +/** + * Returns an array of factors sorted from 1 to sqrt(value) + * @private + */ +export declare function _factorize(value: number): number[]; +export declare function isNumber(n: unknown): n is number; +export declare function almostWhole(x: number, epsilon: number): boolean; +/** + * @private + */ +export declare function _setMinAndMaxByKey(array: Record[], target: { + min: number; + max: number; +}, property: string): void; +export declare function toRadians(degrees: number): number; +export declare function toDegrees(radians: number): number; +/** + * Returns the number of decimal places + * i.e. the number of digits after the decimal point, of the value of this Number. + * @param x - A number. + * @returns The number of decimal places. + * @private + */ +export declare function _decimalPlaces(x: number): number; +export declare function getAngleFromPoint(centrePoint: Point, anglePoint: Point): { + angle: number; + distance: number; +}; +export declare function distanceBetweenPoints(pt1: Point, pt2: Point): number; +/** + * Shortest distance between angles, in either direction. + * @private + */ +export declare function _angleDiff(a: number, b: number): number; +/** + * Normalize angle to be between 0 and 2*PI + * @private + */ +export declare function _normalizeAngle(a: number): number; +/** + * @private + */ +export declare function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean): boolean; +/** + * Limit `value` between `min` and `max` + * @param value + * @param min + * @param max + * @private + */ +export declare function _limitValue(value: number, min: number, max: number): number; +/** + * @param {number} value + * @private + */ +export declare function _int16Range(value: number): number; +/** + * @param value + * @param start + * @param end + * @param [epsilon] + * @private + */ +export declare function _isBetween(value: number, start: number, end: number, epsilon?: number): boolean; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.options.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.options.d.ts new file mode 100644 index 0000000..c170553 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.options.d.ts @@ -0,0 +1,101 @@ +import { Point } from './helpers.canvas.js'; +import type { ChartArea, FontSpec } from '../types/index.js'; +import type { TRBL, TRBLCorners } from '../types/geometric.js'; +/** + * @alias Chart.helpers.options + * @namespace + */ +/** + * Converts the given line height `value` in pixels for a specific font `size`. + * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em'). + * @param size - The font size (in pixels) used to resolve relative `value`. + * @returns The effective line height in pixels (size * 1.2 if value is invalid). + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height + * @since 2.7.0 + */ +export declare function toLineHeight(value: number | string, size: number): number; +/** + * @param value + * @param props + */ +export declare function _readValueToProps(value: number | Record, props: K[]): Record; +export declare function _readValueToProps(value: number | Record, props: Record): Record; +/** + * Converts the given value into a TRBL object. + * @param value - If a number, set the value to all TRBL component, + * else, if an object, use defined properties and sets undefined ones to 0. + * x / y are shorthands for same value for left/right and top/bottom. + * @returns The padding values (top, right, bottom, left) + * @since 3.0.0 + */ +export declare function toTRBL(value: number | TRBL | Point): Record<"left" | "top" | "bottom" | "right", number>; +/** + * Converts the given value into a TRBL corners object (similar with css border-radius). + * @param value - If a number, set the value to all TRBL corner Componentes, + * else, if an object, use defined properties and sets undefined ones to 0. + * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight) + * @since 3.0.0 + */ +export declare function toTRBLCorners(value: number | TRBLCorners): Record<"topLeft" | "topRight" | "bottomLeft" | "bottomRight", number>; +/** + * Converts the given value into a padding object with pre-computed width/height. + * @param value - If a number, set the value to all TRBL component, + * else, if an object, use defined properties and sets undefined ones to 0. + * x / y are shorthands for same value for left/right and top/bottom. + * @returns The padding values (top, right, bottom, left, width, height) + * @since 2.7.0 + */ +export declare function toPadding(value?: number | TRBL): ChartArea; +export interface CanvasFontSpec extends FontSpec { + string: string; +} +/** + * Parses font options and returns the font object. + * @param options - A object that contains font options to be parsed. + * @param fallback - A object that contains fallback font options. + * @return The font object. + * @private + */ +export declare function toFont(options: Partial, fallback?: Partial): { + family: string; + lineHeight: number; + size: number; + style: "normal" | "inherit" | "italic" | "oblique" | "initial"; + weight: string; + string: string; +}; +/** + * Evaluates the given `inputs` sequentially and returns the first defined value. + * @param inputs - An array of values, falling back to the last value. + * @param context - If defined and the current value is a function, the value + * is called with `context` as first argument and the result becomes the new input. + * @param index - If defined and the current value is an array, the value + * at `index` become the new input. + * @param info - object to return information about resolution in + * @param info.cacheable - Will be set to `false` if option is not cacheable. + * @since 2.7.0 + */ +export declare function resolve(inputs: Array, context?: object, index?: number, info?: { + cacheable: boolean; +}): unknown; +/** + * @param minmax + * @param grace + * @param beginAtZero + * @private + */ +export declare function _addGrace(minmax: { + min: number; + max: number; +}, grace: number | string, beginAtZero: boolean): { + min: number; + max: number; +}; +/** + * Create a context inheriting parentContext + * @param parentContext + * @param context + * @returns + */ +export declare function createContext(parentContext: null, context: T): T; +export declare function createContext(parentContext: P, context: T): P & T; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.rtl.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.rtl.d.ts new file mode 100644 index 0000000..93ceb1c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.rtl.d.ts @@ -0,0 +1,10 @@ +export interface RTLAdapter { + x(x: number): number; + setWidth(w: number): void; + textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right'; + xPlus(x: number, value: number): number; + leftForLtr(x: number, itemWidth: number): number; +} +export declare function getRtlAdapter(rtl: boolean, rectX: number, width: number): RTLAdapter; +export declare function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl'): void; +export declare function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]): void; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.segment.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.segment.d.ts new file mode 100644 index 0000000..20f19c4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/helpers.segment.d.ts @@ -0,0 +1,65 @@ +/** + * Returns the sub-segment(s) of a line segment that fall in the given bounds + * @param {object} segment + * @param {number} segment.start - start index of the segment, referring the points array + * @param {number} segment.end - end index of the segment, referring the points array + * @param {boolean} segment.loop - indicates that the segment is a loop + * @param {object} [segment.style] - segment style + * @param {PointElement[]} points - the points that this segment refers to + * @param {object} [bounds] + * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`. + * @param {number} bounds.start - start value of the property + * @param {number} bounds.end - end value of the property + * @private + **/ +export function _boundSegment(segment: { + start: number; + end: number; + loop: boolean; + style?: object; +}, points: PointElement[], bounds?: { + property: string; + start: number; + end: number; +}): { + start: number; + end: number; + loop: boolean; + style?: object; +}[]; +/** + * Returns the segments of the line that are inside given bounds + * @param {LineElement} line + * @param {object} [bounds] + * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`. + * @param {number} bounds.start - start value of the `property` + * @param {number} bounds.end - end value of the `property` + * @private + */ +export function _boundSegments(line: LineElement, bounds?: { + property: string; + start: number; + end: number; +}): { + start: number; + end: number; + loop: boolean; + style?: object; +}[]; +/** + * Compute the continuous segments that define the whole line + * There can be skipped points within a segment, if spanGaps is true. + * @param {LineElement} line + * @param {object} [segmentOptions] + * @return {Segment[]} + * @private + */ +export function _computeSegments(line: LineElement, segmentOptions?: object): Segment[]; +export type LineElement = import('../elements/element.line.js').default; +export type PointElement = import('../elements/element.point.js').default; +export type Segment = { + start: number; + end: number; + loop: boolean; + style?: any; +}; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/index.d.ts new file mode 100644 index 0000000..d43469e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/index.d.ts @@ -0,0 +1,15 @@ +export * from './helpers.color.js'; +export * from './helpers.core.js'; +export * from './helpers.canvas.js'; +export * from './helpers.collection.js'; +export * from './helpers.config.js'; +export * from './helpers.curve.js'; +export * from './helpers.dom.js'; +export { default as easingEffects } from './helpers.easing.js'; +export * from './helpers.extras.js'; +export * from './helpers.interpolation.js'; +export * from './helpers.intl.js'; +export * from './helpers.options.js'; +export * from './helpers.math.js'; +export * from './helpers.rtl.js'; +export * from './helpers.segment.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/helpers/types.d.ts b/Practica-14.5/src/assets/vendor/chart.js/helpers/types.d.ts new file mode 100644 index 0000000..5c68f0c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/helpers/types.d.ts @@ -0,0 +1,17 @@ +/** + * Temporary entry point of the types at the time of the transition. + * After transition done need to remove it in favor of index.ts + */ +export * from './helpers.color.js'; +export * from './helpers.collection.js'; +export * from './helpers.core.js'; +export * from './helpers.curve.js'; +export * from './helpers.dom.js'; +export * from './helpers.easing.js'; +export * from './helpers.extras.js'; +export * from './helpers.interpolation.js'; +export * from './helpers.intl.js'; +export * from './helpers.math.js'; +export * from './helpers.options.js'; +export * from './helpers.rtl.js'; +export * from '../types/helpers/index.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/index.d.ts new file mode 100644 index 0000000..6b8dcfe --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/index.d.ts @@ -0,0 +1,12 @@ +export * from './controllers/index.js'; +export * from './core/index.js'; +export * from './elements/index.js'; +export * from './platform/index.js'; +export * from './plugins/index.js'; +export * from './scales/index.js'; +import * as controllers from './controllers/index.js'; +import * as elements from './elements/index.js'; +import * as plugins from './plugins/index.js'; +import * as scales from './scales/index.js'; +export { controllers, elements, plugins, scales, }; +export declare const Registroables: (typeof controllers | typeof elements | typeof plugins | typeof scales)[]; diff --git a/Practica-14.5/src/assets/vendor/chart.js/index.umd.d.ts b/Practica-14.5/src/assets/vendor/chart.js/index.umd.d.ts new file mode 100644 index 0000000..58e390f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/index.umd.d.ts @@ -0,0 +1,5 @@ +/** + * @namespace Chart + */ +import Chart from './core/core.controller.js'; +export default Chart; diff --git a/Practica-14.5/src/assets/vendor/chart.js/platform/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/platform/index.d.ts new file mode 100644 index 0000000..0ad1283 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/platform/index.d.ts @@ -0,0 +1,5 @@ +export function _detectPlatform(canvas: any): typeof BasicPlatform | typeof DomPlatform; +import BasicPlatform from "./platform.basic.js"; +import DomPlatform from "./platform.dom.js"; +import BasePlatform from "./platform.base.js"; +export { BasePlatform, BasicPlatform, DomPlatform }; diff --git a/Practica-14.5/src/assets/vendor/chart.js/platform/platform.base.d.ts b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.base.d.ts new file mode 100644 index 0000000..9422a0a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.base.d.ts @@ -0,0 +1,63 @@ +/** + * @typedef { import('../core/core.controller.js').default } Chart + */ +/** + * Abstract class that allows abstracting platform dependencies away from the chart. + */ +export default class BasePlatform { + /** + * Called at chart construction time, returns a context2d instance implementing + * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}. + * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific) + * @param {number} [aspectRatio] - The chart options + */ + acquireContext(canvas: HTMLCanvasElement, aspectRatio?: number): void; + /** + * Called at chart destruction time, releases any resources associated to the context + * previously returned by the acquireContext() method. + * @param {CanvasRenderingContext2D} context - The context2d instance + * @returns {boolean} true if the method succeeded, else false + */ + releaseContext(context: CanvasRenderingContext2D): boolean; + /** + * Registros the specified listener on the given chart. + * @param {Chart} chart - Chart from which to listen for event + * @param {string} type - The ({@link ChartEvent}) type to listen for + * @param {function} listener - Receives a notification (an object that implements + * the {@link ChartEvent} interface) when an event of the specified type occurs. + */ + addEventListener(chart: Chart, type: string, listener: Function): void; + /** + * Removes the specified listener previously Registroed with addEventListener. + * @param {Chart} chart - Chart from which to remove the listener + * @param {string} type - The ({@link ChartEvent}) type to remove + * @param {function} listener - The listener function to remove from the event target. + */ + removeEventListener(chart: Chart, type: string, listener: Function): void; + /** + * @returns {number} the current devicePixelRatio of the device this platform is connected to. + */ + getDevicePixelRatio(): number; + /** + * Returns the maximum size in pixels of given canvas element. + * @param {HTMLCanvasElement} element + * @param {number} [width] - content width of parent element + * @param {number} [height] - content height of parent element + * @param {number} [aspectRatio] - aspect ratio to maintain + */ + getMaximumSize(element: HTMLCanvasElement, width?: number, height?: number, aspectRatio?: number): { + width: number; + height: number; + }; + /** + * @param {HTMLCanvasElement} canvas + * @returns {boolean} true if the canvas is attached to the platform, false if not. + */ + isAttached(canvas: HTMLCanvasElement): boolean; + /** + * Updates config with platform specific requirements + * @param {import('../core/core.config.js').default} config + */ + updateConfig(config: import('../core/core.config.js').default): void; +} +export type Chart = import('../core/core.controller.js').default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/platform/platform.basic.d.ts b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.basic.d.ts new file mode 100644 index 0000000..31a5259 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.basic.d.ts @@ -0,0 +1,10 @@ +/** + * Platform class for Graficas without access to the DOM or to many element properties + * This platform is used by default for any chart passed an OffscreenCanvas. + * @extends BasePlatform + */ +export default class BasicPlatform extends BasePlatform { + acquireContext(item: any): any; + updateConfig(config: any): void; +} +import BasePlatform from "./platform.base.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/platform/platform.dom.d.ts b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.dom.d.ts new file mode 100644 index 0000000..e17f242 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/platform/platform.dom.d.ts @@ -0,0 +1,19 @@ +/** + * Platform class for Graficas that can access the DOM and global window/document properties + * @extends BasePlatform + */ +export default class DomPlatform extends BasePlatform { + /** + * @param {HTMLCanvasElement} canvas + * @param {number} [aspectRatio] + * @return {CanvasRenderingContext2D|null} + */ + acquireContext(canvas: HTMLCanvasElement, aspectRatio?: number): CanvasRenderingContext2D | null; + /** + * @param {Chart} chart + * @param {string} type + */ + removeEventListener(chart: Chart, type: string): void; +} +export type Chart = import('../core/core.controller.js').default; +import BasePlatform from "./platform.base.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/index.d.ts new file mode 100644 index 0000000..39043cf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/index.d.ts @@ -0,0 +1,7 @@ +export { default as Colors } from "./plugin.colors.js"; +export { default as Decimation } from "./plugin.decimation.js"; +export { default as Filler } from "./plugin.filler/index.js"; +export { default as Legend } from "./plugin.legend.js"; +export { default as SubTitle } from "./plugin.subtitle.js"; +export { default as Title } from "./plugin.title.js"; +export { default as Tooltip } from "./plugin.tooltip.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.colors.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.colors.d.ts new file mode 100644 index 0000000..d445b8a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.colors.d.ts @@ -0,0 +1,11 @@ +import type { Chart } from '../types.js'; +export interface ColorsPluginOptions { + enabled?: boolean; + forceOverride?: boolean; +} +declare const _default: { + id: string; + defaults: ColorsPluginOptions; + beforeLayout(chart: Chart, _args: any, options: ColorsPluginOptions): void; +}; +export default _default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.decimation.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.decimation.d.ts new file mode 100644 index 0000000..784c17e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.decimation.d.ts @@ -0,0 +1,11 @@ +declare namespace _default { + const id: string; + namespace defaults { + const algorithm: string; + const enabled: boolean; + } + function beforeElementsUpdate(chart: any, args: any, options: any): void; + function destroy(chart: any): void; + function destroy(chart: any): void; +} +export default _default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.drawing.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.drawing.d.ts new file mode 100644 index 0000000..a89b48e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.drawing.d.ts @@ -0,0 +1 @@ +export function _drawfill(ctx: any, source: any, area: any): void; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.helper.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.helper.d.ts new file mode 100644 index 0000000..fbccfa7 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.helper.d.ts @@ -0,0 +1,14 @@ +/** + * @param {PointElement[] | { x: number; y: number; }} boundary + * @param {LineElement} line + * @return {LineElement?} + */ +export function _createBoundaryLine(boundary: PointElement[] | { + x: number; + y: number; +}, line: LineElement): LineElement | null; +export function _shouldApplyFill(source: any): boolean; +export type Chart = import('../../core/core.controller.js').default; +export type Scale = import('../../core/core.scale.js').default; +export type PointElement = import('../../elements/element.point.js').default; +import { LineElement } from "../../elements/index.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.options.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.options.d.ts new file mode 100644 index 0000000..f3d218b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.options.d.ts @@ -0,0 +1,30 @@ +/** + * @typedef { import('../../core/core.scale.js').default } Scale + * @typedef { import('../../elements/element.line.js').default } LineElement + * @typedef { import('../../types/index.js').FillTarget } FillTarget + * @typedef { import('../../types/index.js').ComplexFillTarget } ComplexFillTarget + */ +export function _resolveTarget(sources: any, index: any, propagate: any): any; +/** + * @param {LineElement} line + * @param {number} index + * @param {number} count + */ +export function _decodeFill(line: LineElement, index: number, count: number): any; +/** + * @param {FillTarget | ComplexFillTarget} fill + * @param {Scale} scale + * @returns {number | null} + */ +export function _getTargetPixel(fill: FillTarget | ComplexFillTarget, scale: Scale): number | null; +/** + * @param {FillTarget | ComplexFillTarget} fill + * @param {Scale} scale + * @param {number} startValue + * @returns {number | undefined} + */ +export function _getTargetValue(fill: FillTarget | ComplexFillTarget, scale: Scale, startValue: number): number | undefined; +export type Scale = import('../../core/core.scale.js').default; +export type LineElement = import('../../elements/element.line.js').default; +export type FillTarget = import('../../types/index.js').FillTarget; +export type ComplexFillTarget = import('../../types/index.js').ComplexFillTarget; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.segment.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.segment.d.ts new file mode 100644 index 0000000..41552ec --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.segment.d.ts @@ -0,0 +1,36 @@ +export function _segments(line: any, target: any, property: any): ({ + source: any; + target: { + property: any; + start: any; + end: any; + }; + start: any; + end: any; +} | { + source: { + start: number; + end: number; + loop: boolean; + style?: any; + }; + target: { + start: number; + end: number; + loop: boolean; + style?: any; + }; + start: { + [x: number]: any; + }; + end: { + [x: number]: any; + }; +})[]; +export function _getBounds(property: any, first: any, last: any, loop: any): { + property: any; + start: any; + end: any; +}; +export function _pointsFromSegments(boundary: any, line: any): any[]; +export function _findSegmentEnd(start: any, end: any, points: any): any; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.d.ts new file mode 100644 index 0000000..90656c9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.d.ts @@ -0,0 +1,9 @@ +/** + * @typedef { import('../../core/core.controller.js').default } Chart + * @typedef { import('../../core/core.scale.js').default } Scale + * @typedef { import('../../elements/element.point.js').default } PointElement + */ +export function _getTarget(source: any): any; +export type Chart = import('../../core/core.controller.js').default; +export type Scale = import('../../core/core.scale.js').default; +export type PointElement = import('../../elements/element.point.js').default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.stack.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.stack.d.ts new file mode 100644 index 0000000..be2625f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/filler.target.stack.d.ts @@ -0,0 +1,14 @@ +/** + * @param {{ chart: Chart; scale: Scale; index: number; line: LineElement; }} source + * @return {LineElement} + */ +export function _buildStackLine(source: { + chart: Chart; + scale: Scale; + index: number; + line: LineElement; +}): LineElement; +export type Chart = import('../../core/core.controller.js').default; +export type Scale = import('../../core/core.scale.js').default; +export type PointElement = import('../../elements/element.point.js').default; +import { LineElement } from "../../elements/index.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/index.d.ts new file mode 100644 index 0000000..1356620 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/index.d.ts @@ -0,0 +1,16 @@ +declare namespace _default { + const id: string; + function afterDatasetsUpdate(chart: any, _args: any, options: any): void; + function afterDatasetsUpdate(chart: any, _args: any, options: any): void; + function beforeDraw(chart: any, _args: any, options: any): void; + function beforeDraw(chart: any, _args: any, options: any): void; + function beforeDatasetsDraw(chart: any, _args: any, options: any): void; + function beforeDatasetsDraw(chart: any, _args: any, options: any): void; + function beforeDatasetDraw(chart: any, args: any, options: any): void; + function beforeDatasetDraw(chart: any, args: any, options: any): void; + namespace defaults { + const propagate: boolean; + const drawTime: string; + } +} +export default _default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/simpleArc.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/simpleArc.d.ts new file mode 100644 index 0000000..91f9d7d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.filler/simpleArc.d.ts @@ -0,0 +1,12 @@ +export class simpleArc { + constructor(opts: any); + x: any; + y: any; + radius: any; + pathSegment(ctx: any, bounds: any, opts: any): boolean; + interpolate(point: any): { + x: any; + y: any; + angle: any; + }; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.legend.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.legend.d.ts new file mode 100644 index 0000000..0301a9b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.legend.d.ts @@ -0,0 +1,121 @@ +export class Legend extends Element { + /** + * @param {{ ctx: any; options: any; chart: any; }} config + */ + constructor(config: { + ctx: any; + options: any; + chart: any; + }); + _added: boolean; + legendHitBoxes: any[]; + /** + * @private + */ + private _hoveredItem; + doughnutMode: boolean; + chart: any; + options: any; + ctx: any; + legendItems: any; + columnSizes: any[]; + lineWidths: number[]; + maxHeight: any; + maxWidth: any; + top: any; + bottom: any; + left: any; + right: any; + height: any; + width: any; + _margins: any; + position: any; + weight: any; + fullSize: any; + update(maxWidth: any, maxHeight: any, margins: any): void; + setDimensions(): void; + buildLabels(): void; + fit(): void; + /** + * @private + */ + private _fitRows; + _fitCols(titleHeight: any, labelFont: any, boxWidth: any, _itemHeight: any): any; + adjustHitBoxes(): void; + isHorizontal(): boolean; + draw(): void; + /** + * @private + */ + private _draw; + /** + * @protected + */ + protected drawTitle(): void; + /** + * @private + */ + private _computeTitleHeight; + /** + * @private + */ + private _getLegendItemAt; + /** + * Handle an event + * @param {ChartEvent} e - The event to handle + */ + handleEvent(e: ChartEvent): void; +} +declare namespace _default { + export const id: string; + export { Legend as _element }; + export function start(chart: any, _args: any, options: any): void; + export function start(chart: any, _args: any, options: any): void; + export function stop(chart: any): void; + export function stop(chart: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export function afterUpdate(chart: any): void; + export function afterUpdate(chart: any): void; + export function afterEvent(chart: any, args: any): void; + export function afterEvent(chart: any, args: any): void; + export namespace defaults { + const display: boolean; + const position: string; + const align: string; + const fullSize: boolean; + const reverse: boolean; + const weight: number; + function onClick(e: any, legendItem: any, legend: any): void; + function onClick(e: any, legendItem: any, legend: any): void; + const onHover: any; + const onLeave: any; + namespace labels { + function color(ctx: any): any; + const boxWidth: number; + const padding: number; + function generateLabels(chart: any): any; + function generateLabels(chart: any): any; + } + namespace title { + export function color_1(ctx: any): any; + export { color_1 as color }; + const display_1: boolean; + export { display_1 as display }; + const position_1: string; + export { position_1 as position }; + export const text: string; + } + } + export namespace descriptors { + export function _scriptable(name: any): boolean; + export namespace labels_1 { + export function _scriptable_1(name: any): boolean; + export { _scriptable_1 as _scriptable }; + } + export { labels_1 as labels }; + } +} +export default _default; +export type ChartEvent = import('../types/index.js').ChartEvent; +import Element from "../core/core.element.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.subtitle.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.subtitle.d.ts new file mode 100644 index 0000000..850bcf1 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.subtitle.d.ts @@ -0,0 +1,30 @@ +declare namespace _default { + const id: string; + function start(chart: any, _args: any, options: any): void; + function start(chart: any, _args: any, options: any): void; + function stop(chart: any): void; + function stop(chart: any): void; + function beforeUpdate(chart: any, _args: any, options: any): void; + function beforeUpdate(chart: any, _args: any, options: any): void; + namespace defaults { + export const align: string; + export const display: boolean; + export namespace font { + const weight: string; + } + export const fullSize: boolean; + export const padding: number; + export const position: string; + export const text: string; + const weight_1: number; + export { weight_1 as weight }; + } + namespace defaultRoutes { + const color: string; + } + namespace descriptors { + const _scriptable: boolean; + const _indexable: boolean; + } +} +export default _default; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.title.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.title.d.ts new file mode 100644 index 0000000..c4ffd6c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.title.d.ts @@ -0,0 +1,64 @@ +export class Title extends Element { + /** + * @param {{ ctx: any; options: any; chart: any; }} config + */ + constructor(config: { + ctx: any; + options: any; + chart: any; + }); + chart: any; + options: any; + ctx: any; + _padding: import("../types.js").ChartArea; + top: number; + bottom: any; + left: number; + right: any; + width: any; + height: any; + position: any; + weight: any; + fullSize: any; + update(maxWidth: any, maxHeight: any): void; + isHorizontal(): boolean; + _drawArgs(offset: any): { + titleX: any; + titleY: any; + maxWidth: number; + rotation: number; + }; + draw(): void; +} +declare namespace _default { + export const id: string; + export { Title as _element }; + export function start(chart: any, _args: any, options: any): void; + export function start(chart: any, _args: any, options: any): void; + export function stop(chart: any): void; + export function stop(chart: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export namespace defaults { + export const align: string; + export const display: boolean; + export namespace font { + const weight: string; + } + export const fullSize: boolean; + export const padding: number; + export const position: string; + export const text: string; + const weight_1: number; + export { weight_1 as weight }; + } + export namespace defaultRoutes { + const color: string; + } + export namespace descriptors { + const _scriptable: boolean; + const _indexable: boolean; + } +} +export default _default; +import Element from "../core/core.element.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.tooltip.d.ts b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.tooltip.d.ts new file mode 100644 index 0000000..f154b83 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/plugins/plugin.tooltip.d.ts @@ -0,0 +1,322 @@ +export class Tooltip extends Element { + /** + * @namespace Chart.Tooltip.positioners + */ + static positioners: { + /** + * Average mode places the tooltip at the average position of the elements shown + */ + average(items: any): false | { + x: number; + y: number; + }; + /** + * Gets the tooltip position nearest of the item nearest to the event position + */ + nearest(items: any, eventPosition: any): false | { + x: any; + y: any; + }; + }; + constructor(config: any); + opacity: number; + _active: any[]; + _eventPosition: any; + _size: { + width: number; + height: number; + }; + _cachedAnimations: Readonly; + _tooltipItems: any[]; + $animations: any; + $context: any; + chart: any; + options: any; + dataPoints: { + chart: import("../core/core.controller.js").default; + label: any; + parsed: any; + raw: any; + formattedValue: any; + dataset: any; + dataIndex: number; + datasetIndex: number; + element: Element; + }[]; + title: any; + beforeBody: any; + body: any[]; + afterBody: any; + footer: any; + xAlign: any; + yAlign: any; + x: any; + y: any; + height: number; + width: number; + caretX: any; + caretY: any; + labelColors: any[]; + labelPointStyles: any[]; + labelTextColors: any[]; + initialize(options: any): void; + /** + * @private + */ + private _resolveAnimations; + /** + * @protected + */ + protected getContext(): any; + getTitle(context: any, options: any): any; + getBeforeBody(tooltipItems: any, options: any): any; + getBody(tooltipItems: any, options: any): any[]; + getAfterBody(tooltipItems: any, options: any): any; + getFooter(tooltipItems: any, options: any): any; + /** + * @private + */ + private _createItems; + update(changed: any, replay: any): void; + drawCaret(tooltipPoint: any, ctx: any, size: any, options: any): void; + getCaretPosition(tooltipPoint: any, size: any, options: any): { + x1: any; + x2: any; + x3: any; + y1: any; + y2: any; + y3: any; + }; + drawTitle(pt: any, ctx: any, options: any): void; + /** + * @private + */ + private _drawColorBox; + drawBody(pt: any, ctx: any, options: any): void; + drawFooter(pt: any, ctx: any, options: any): void; + drawBackground(pt: any, ctx: any, tooltipSize: any, options: any): void; + /** + * Update x/y animation targets when _active elements are animating too + * @private + */ + private _updateAnimationTarget; + /** + * Determine if the tooltip will draw anything + * @returns {boolean} True if the tooltip will render + */ + _willRender(): boolean; + draw(ctx: any): void; + /** + * Get active elements in the tooltip + * @returns {Array} Array of elements that are active in the tooltip + */ + getActiveElements(): any[]; + /** + * Set active elements in the tooltip + * @param {array} activeElements Array of active datasetIndex/index pairs. + * @param {object} eventPosition Synthetic event position used in positioning + */ + setActiveElements(activeElements: any[], eventPosition: object): void; + _ignoreReplayEvents: boolean; + /** + * Handle an event + * @param {ChartEvent} e - The event to handle + * @param {boolean} [replay] - This is a replayed event (from update) + * @param {boolean} [inChartArea] - The event is inside chartArea + * @returns {boolean} true if the tooltip changed + */ + handleEvent(e: ChartEvent, replay?: boolean, inChartArea?: boolean): boolean; + /** + * Helper for determining the active elements for event + * @param {ChartEvent} e - The event to handle + * @param {InteractionItem[]} lastActive - Previously active elements + * @param {boolean} [replay] - This is a replayed event (from update) + * @param {boolean} [inChartArea] - The event is inside chartArea + * @returns {InteractionItem[]} - Active elements + * @private + */ + private _getActiveElements; + /** + * Determine if the active elements + event combination changes the + * tooltip position + * @param {array} active - Active elements + * @param {ChartEvent} e - Event that triggered the position change + * @returns {boolean} True if the position has changed + */ + _positionChanged(active: any[], e: ChartEvent): boolean; +} +declare namespace _default { + export const id: string; + export { Tooltip as _element }; + export { positioners }; + export function afterInit(chart: any, _args: any, options: any): void; + export function afterInit(chart: any, _args: any, options: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export function beforeUpdate(chart: any, _args: any, options: any): void; + export function reset(chart: any, _args: any, options: any): void; + export function reset(chart: any, _args: any, options: any): void; + export function afterDraw(chart: any): void; + export function afterDraw(chart: any): void; + export function afterEvent(chart: any, args: any): void; + export function afterEvent(chart: any, args: any): void; + export namespace defaults { + export const enabled: boolean; + export const external: any; + export const position: string; + export const backgroundColor: string; + export const titleColor: string; + export namespace titleFont { + const weight: string; + } + export const titleSpacing: number; + export const titleMarginBottom: number; + export const titleAlign: string; + export const bodyColor: string; + export const bodySpacing: number; + export const bodyFont: {}; + export const bodyAlign: string; + export const footerColor: string; + export const footerSpacing: number; + export const footerMarginTop: number; + export namespace footerFont { + const weight_1: string; + export { weight_1 as weight }; + } + export const footerAlign: string; + export const padding: number; + export const caretPadding: number; + export const caretSize: number; + export const cornerRadius: number; + export function boxHeight(ctx: any, opts: any): any; + export function boxWidth(ctx: any, opts: any): any; + export const multiKeyBackground: string; + export const displayColors: boolean; + export const boxPadding: number; + export const borderColor: string; + export const borderWidth: number; + export namespace animation { + const duration: number; + const easing: string; + } + export namespace animations { + namespace numbers { + const type: string; + const properties: string[]; + } + namespace opacity { + const easing_1: string; + export { easing_1 as easing }; + const duration_1: number; + export { duration_1 as duration }; + } + } + export { defaultCallbacks as callbacks }; + } + export namespace defaultRoutes { + const bodyFont_1: string; + export { bodyFont_1 as bodyFont }; + const footerFont_1: string; + export { footerFont_1 as footerFont }; + const titleFont_1: string; + export { titleFont_1 as titleFont }; + } + export namespace descriptors { + export function _scriptable(name: any): boolean; + export const _indexable: boolean; + export namespace callbacks { + const _scriptable_1: boolean; + export { _scriptable_1 as _scriptable }; + const _indexable_1: boolean; + export { _indexable_1 as _indexable }; + } + export namespace animation_1 { + const _fallback: boolean; + } + export { animation_1 as animation }; + export namespace animations_1 { + const _fallback_1: string; + export { _fallback_1 as _fallback }; + } + export { animations_1 as animations }; + } + export const additionalOptionScopes: string[]; +} +export default _default; +export type Chart = import('../platform/platform.base.js').Chart; +export type ChartEvent = import('../types/index.js').ChartEvent; +export type ActiveElement = import('../types/index.js').ActiveElement; +export type InteractionItem = import('../core/core.interaction.js').InteractionItem; +import Element from "../core/core.element.js"; +import Animations from "../core/core.animations.js"; +declare namespace positioners { + /** + * Average mode places the tooltip at the average position of the elements shown + */ + function average(items: any): false | { + x: number; + y: number; + }; + /** + * Average mode places the tooltip at the average position of the elements shown + */ + function average(items: any): false | { + x: number; + y: number; + }; + /** + * Gets the tooltip position nearest of the item nearest to the event position + */ + function nearest(items: any, eventPosition: any): false | { + x: any; + y: any; + }; + /** + * Gets the tooltip position nearest of the item nearest to the event position + */ + function nearest(items: any, eventPosition: any): false | { + x: any; + y: any; + }; +} +declare namespace defaultCallbacks { + export { noop as beforeTitle }; + export function title(tooltipItems: any): any; + export function title(tooltipItems: any): any; + export { noop as afterTitle }; + export { noop as beforeBody }; + export { noop as beforeLabel }; + export function label(tooltipItem: any): any; + export function label(tooltipItem: any): any; + export function labelColor(tooltipItem: any): { + borderColor: any; + backgroundColor: any; + borderWidth: any; + borderDash: any; + borderDashOffset: any; + borderRadius: number; + }; + export function labelColor(tooltipItem: any): { + borderColor: any; + backgroundColor: any; + borderWidth: any; + borderDash: any; + borderDashOffset: any; + borderRadius: number; + }; + export function labelTextColor(): any; + export function labelTextColor(): any; + export function labelPointStyle(tooltipItem: any): { + pointStyle: any; + rotation: any; + }; + export function labelPointStyle(tooltipItem: any): { + pointStyle: any; + rotation: any; + }; + export { noop as afterLabel }; + export { noop as afterBody }; + export { noop as beforeFooter }; + export { noop as footer }; + export { noop as afterFooter }; +} +import { noop } from "../helpers/helpers.core.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/index.d.ts new file mode 100644 index 0000000..a6b28f9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/index.d.ts @@ -0,0 +1,6 @@ +export { default as CategoryScale } from "./scale.category.js"; +export { default as LinearScale } from "./scale.linear.js"; +export { default as LogarithmicScale } from "./scale.logarithmic.js"; +export { default as RadialLinearScale } from "./scale.radialLinear.js"; +export { default as TimeScale } from "./scale.time.js"; +export { default as TimeSeriesScale } from "./scale.timeseries.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.category.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.category.d.ts new file mode 100644 index 0000000..85af4c5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.category.d.ts @@ -0,0 +1,21 @@ +export default class CategoryScale extends Scale { + static id: string; + /** + * @type {any} + */ + static defaults: any; + /** @type {number} */ + _startValue: number; + _valueRange: number; + _addedLabels: any[]; + init(scaleOptions: any): void; + parse(raw: any, index: any): number; + buildTicks(): { + value: any; + }[]; + getLabelForValue(value: any): any; + getPixelForValue(value: any): number; + getPixelForTick(index: any): number; + getValueForPixel(pixel: any): number; +} +import Scale from "../core/core.scale.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linear.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linear.d.ts new file mode 100644 index 0000000..3a71744 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linear.d.ts @@ -0,0 +1,10 @@ +export default class LinearScale extends LinearScaleBase { + static id: string; + /** + * @type {any} + */ + static defaults: any; + getPixelForValue(value: any): number; + getValueForPixel(pixel: any): number; +} +import LinearScaleBase from "./scale.linearbase.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linearbase.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linearbase.d.ts new file mode 100644 index 0000000..39f264b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.linearbase.d.ts @@ -0,0 +1,20 @@ +export default class LinearScaleBase extends Scale { + /** @type {number} */ + start: number; + /** @type {number} */ + end: number; + /** @type {number} */ + _startValue: number; + /** @type {number} */ + _endValue: number; + _valueRange: number; + parse(raw: any, index: any): number; + handleTickRangeOptions(): void; + getTickLimit(): number; + /** + * @protected + */ + protected computeTickLimit(): number; + getLabelForValue(value: any): string; +} +import Scale from "../core/core.scale.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.logarithmic.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.logarithmic.d.ts new file mode 100644 index 0000000..32ce9c6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.logarithmic.d.ts @@ -0,0 +1,25 @@ +export default class LogarithmicScale extends Scale { + static id: string; + /** + * @type {any} + */ + static defaults: any; + /** @type {number} */ + start: number; + /** @type {number} */ + end: number; + /** @type {number} */ + _startValue: number; + _valueRange: number; + parse(raw: any, index: any): number; + _zero: boolean; + handleTickRangeOptions(): void; + /** + * @param {number} value + * @return {string} + */ + getLabelForValue(value: number): string; + getPixelForValue(value: any): number; + getValueForPixel(pixel: any): number; +} +import Scale from "../core/core.scale.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.radialLinear.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.radialLinear.d.ts new file mode 100644 index 0000000..a34fa8f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.radialLinear.d.ts @@ -0,0 +1,63 @@ +export default class RadialLinearScale extends LinearScaleBase { + static id: string; + /** + * @type {any} + */ + static defaults: any; + static defaultRoutes: { + 'angleLines.color': string; + 'pointLabels.color': string; + 'ticks.color': string; + }; + static descriptors: { + angleLines: { + _fallback: string; + }; + }; + /** @type {number} */ + xCenter: number; + /** @type {number} */ + yCenter: number; + /** @type {number} */ + drawingArea: number; + /** @type {string[]} */ + _pointLabels: string[]; + _pointLabelItems: any[]; + _padding: import("../types.js").ChartArea; + generateTickLabels(ticks: any): void; + setCenterPoint(leftMovement: any, rightMovement: any, topMovement: any, bottomMovement: any): void; + getIndexAngle(index: any): number; + getDistanceFromCenterForValue(value: any): number; + getValueForDistanceFromCenter(distance: any): any; + getPointLabelContext(index: any): any; + getPointPosition(index: any, distanceFromCenter: any, additionalAngle?: number): { + x: number; + y: number; + angle: number; + }; + getPointPositionForValue(index: any, value: any): { + x: number; + y: number; + angle: number; + }; + getBasePosition(index: any): { + x: number; + y: number; + angle: number; + }; + getPointLabelPosition(index: any): { + left: any; + top: any; + right: any; + bottom: any; + }; + /** + * @protected + */ + protected drawGrid(): void; + /** + * @protected + */ + protected drawLabels(): void; +} +import LinearScaleBase from "./scale.linearbase.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.time.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.time.d.ts new file mode 100644 index 0000000..d9fa01e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.time.d.ts @@ -0,0 +1,124 @@ +export default class TimeScale extends Scale { + static id: string; + /** + * @type {any} + */ + static defaults: any; + /** + * @param {object} props + */ + constructor(props: object); + /** @type {{data: number[], labels: number[], all: number[]}} */ + _cache: { + data: number[]; + labels: number[]; + all: number[]; + }; + /** @type {Unit} */ + _unit: Unit; + /** @type {Unit=} */ + _majorUnit: Unit | undefined; + _offsets: {}; + _normalized: boolean; + _parseOpts: { + parser: any; + round: any; + isoWeekday: any; + }; + init(scaleOpts: any, opts?: {}): void; + _adapter: DateAdapter; + /** + * @param {*} raw + * @param {number?} [index] + * @return {number} + */ + parse(raw: any, index?: number | null): number; + /** + * @private + */ + private _getLabelBounds; + /** + * Returns the start and end offsets from edges in the form of {start, end} + * where each value is a relative width to the scale and ranges between 0 and 1. + * They add extra margins on the both sides by scaling down the original scale. + * Offsets are added when the `offset` option is true. + * @param {number[]} timestamps + * @protected + */ + protected initOffsets(timestamps?: number[]): void; + /** + * Generates a maximum of `capacity` timestamps between min and max, rounded to the + * `minor` unit using the given scale time `options`. + * Important: this method can return ticks outside the min and max range, it's the + * responsibility of the calling code to clamp values if needed. + * @private + */ + private _generate; + /** + * @param {number} value + * @return {string} + */ + getLabelForValue(value: number): string; + /** + * Function to format an individual tick mark + * @param {number} time + * @param {number} index + * @param {object[]} ticks + * @param {string|undefined} [format] + * @return {string} + * @private + */ + private _tickFormatFunction; + /** + * @param {object[]} ticks + */ + generateTickLabels(ticks: object[]): void; + /** + * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC) + * @return {number} + */ + getDecimalForValue(value: number): number; + /** + * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC) + * @return {number} + */ + getPixelForValue(value: number): number; + /** + * @param {number} pixel + * @return {number} + */ + getValueForPixel(pixel: number): number; + /** + * @param {string} label + * @return {{w:number, h:number}} + * @private + */ + private _getLabelSize; + /** + * @param {number} exampleTime + * @return {number} + * @private + */ + private _getLabelCapacity; + /** + * @protected + */ + protected getDataTimestamps(): any; + /** + * @protected + */ + protected getLabelTimestamps(): number[]; + /** + * @param {number[]} values + * @protected + */ + protected normalize(values: number[]): number[]; +} +export type Unit = import('../core/core.adapters.js').TimeUnit; +export type Interval = { + common: boolean; + size: number; + steps?: number; +}; +export type DateAdapter = import('../core/core.adapters.js').DateAdapter; +import Scale from "../core/core.scale.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/scales/scale.timeseries.d.ts b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.timeseries.d.ts new file mode 100644 index 0000000..8467a83 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/scales/scale.timeseries.d.ts @@ -0,0 +1,32 @@ +export default TimeSeriesScale; +declare class TimeSeriesScale extends TimeScale { + /** @type {object[]} */ + _table: object[]; + /** @type {number} */ + _minPos: number; + /** @type {number} */ + _tableRange: number; + /** + * @protected + */ + protected initOffsets(): void; + /** + * Returns an array of {time, pos} objects used to interpolate a specific `time` or position + * (`pos`) on the scale, by Buscaring entries before and after the requested value. `pos` is + * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other + * extremity (left + width or top + height). Note that it would be more optimized to directly + * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need + * to create the lookup table. The table ALWAYS contains at least two items: min and max. + * @param {number[]} timestamps + * @return {object[]} + * @protected + */ + protected buildLookupTable(timestamps: number[]): object[]; + /** + * Returns all timestamps + * @return {number[]} + * @private + */ + private _getTimestampsForTable; +} +import TimeScale from "./scale.time.js"; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types.d.ts new file mode 100644 index 0000000..e2fb0f9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types.d.ts @@ -0,0 +1,10 @@ +/** + * Temporary entry point of the types at the time of the transition. + * After transition done need to remove it in favor of index.ts + */ +export * from './index.js'; +/** + * Explicitly re-exporting to resolve the ambiguity. + */ +export { BarController, BubbleController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, ScatterController, Animation, Animations, Chart, DatasetController, Interaction, Scale, Ticks, defaults, layouts, registry, ArcElement, BarElement, LineElement, PointElement, BasePlatform, BasicPlatform, DomPlatform, Decimation, Filler, Legend, SubTitle, Title, Tooltip, CategoryScale, LinearScale, LogarithmicScale, RadialLinearScale, TimeScale, TimeSeriesScale, Registroables } from './types/index.js'; +export * from './types/index.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/animation.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/animation.d.ts new file mode 100644 index 0000000..4189512 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/animation.d.ts @@ -0,0 +1,34 @@ +import {Chart} from './index.js'; +import {AnyObject} from './basic.js'; + +export declare class Animation { + constructor(cfg: AnyObject, target: AnyObject, prop: string, to?: unknown); + active(): boolean; + update(cfg: AnyObject, to: unknown, date: number): void; + cancel(): void; + tick(date: number): void; + readonly _to: unknown; +} + +export interface AnimationEvent { + chart: Chart; + numSteps: number; + initial: boolean; + currentStep: number; +} + +export declare class Animator { + listen(chart: Chart, event: 'complete' | 'progress', cb: (event: AnimationEvent) => void): void; + add(chart: Chart, items: readonly Animation[]): void; + has(chart: Chart): boolean; + start(chart: Chart): void; + running(chart: Chart): boolean; + stop(chart: Chart): void; + remove(chart: Chart): boolean; +} + +export declare class Animations { + constructor(chart: Chart, animations: AnyObject); + configure(animations: AnyObject): void; + update(target: AnyObject, values: AnyObject): undefined | boolean; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/basic.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/basic.d.ts new file mode 100644 index 0000000..1692c9c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/basic.d.ts @@ -0,0 +1,3 @@ + +export type AnyObject = Record; +export type EmptyObject = Record; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/color.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/color.d.ts new file mode 100644 index 0000000..4a68f98 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/color.d.ts @@ -0,0 +1 @@ +export type Color = string | CanvasGradient | CanvasPattern; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/geometric.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/geometric.d.ts new file mode 100644 index 0000000..e8e4f27 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/geometric.d.ts @@ -0,0 +1,39 @@ +export interface ChartArea { + top: number; + left: number; + right: number; + bottom: number; + width: number; + height: number; +} + +export interface Point { + x: number; + y: number; +} + +export type TRBL = { + top: number; + right: number; + bottom: number; + left: number; +} + +export type TRBLCorners = { + topLeft: number; + topRight: number; + bottomLeft: number; + bottomRight: number; +}; + +export type CornerRadius = number | Partial; + +export type RoundedRect = { + x: number; + y: number; + w: number; + h: number; + radius?: CornerRadius +} + +export type Padding = Partial | number | Point; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.canvas.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.canvas.d.ts new file mode 100644 index 0000000..f76a200 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.canvas.d.ts @@ -0,0 +1,135 @@ +import {PointStyle, Scriptable, ScripTablascaleContext} from '../index.js'; +import {Color} from '../color.js'; +import {ChartArea, RoundedRect} from '../geometric.js'; +import {CanvasFontSpec} from '../../helpers/helpers.options.js'; + +export function clearCanvas(canvas: HTMLCanvasElement, ctx?: CanvasRenderingContext2D): void; + +export function clipArea(ctx: CanvasRenderingContext2D, area: ChartArea): void; + +export function unclipArea(ctx: CanvasRenderingContext2D): void; + +export interface DrawPointOptions { + pointStyle: PointStyle; + rotation?: number; + radius: number; + borderWidth: number; +} + +export function drawPoint(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number): void; + +export function drawPointLegend(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number, w: number): void; + +/** + * Converts the given font object into a CSS font string. + * @param font a font object + * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font + */ +export function toFontString(font: { size: number; family: string; style?: string; weight?: string }): string | null; + +export interface RenderTextOpts { + /** + * The fill color of the text. If unset, the existing + * fillStyle property of the canvas is unchanged. + */ + color?: Color; + + /** + * The width of the strikethrough / underline + * @default 2 + */ + decorationWidth?: number; + + /** + * The max width of the text in pixels + */ + maxWidth?: number; + + /** + * A rotation to be applied to the canvas + * This is applied after the translation is applied + */ + rotation?: number; + + /** + * Apply a strikethrough effect to the text + */ + strikethrough?: boolean; + + /** + * The color of the text stroke. If unset, the existing + * strokeStyle property of the context is unchanged + */ + strokeColor?: Color; + + /** + * The text stroke width. If unset, the existing + * lineWidth property of the context is unchanged + */ + strokeWidth?: number; + + /** + * The text alignment to use. If unset, the existing + * textAlign property of the context is unchanged + */ + textAlign?: CanvasTextAlign; + + /** + * The text baseline to use. If unset, the existing + * textBaseline property of the context is unchanged + */ + textBaseline?: CanvasTextBaseline; + + /** + * If specified, a translation to apply to the context + */ + translation?: [number, number]; + + /** + * Underline the text + */ + underline?: boolean; + + /** + * Dimensions for drawing the label backdrop + */ + backdrop?: BackdropOptions; +} + +export interface BackdropOptions { + /** + * Left position of backdrop as pixel + */ + left: number; + + /** + * Top position of backdrop as pixel + */ + top: number; + + /** + * Width of backdrop in pixels + */ + width: number; + + /** + * Height of backdrop in pixels + */ + height: number; + + /** + * Color of label backdrops. + */ + color: Scriptable; +} + +export function renderText( + ctx: CanvasRenderingContext2D, + text: string | string[], + x: number, + y: number, + font: CanvasFontSpec, + opts?: RenderTextOpts +): void; + +export function addRoundedRectPath(ctx: CanvasRenderingContext2D, rect: RoundedRect): void; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.segment.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.segment.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/helpers.segment.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/helpers/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/index.d.ts new file mode 100644 index 0000000..9aa9cf2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/helpers/index.d.ts @@ -0,0 +1,3 @@ +export * from './helpers.canvas.js'; +export * from './helpers.canvas.js'; +export * from './helpers.segment.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/index.d.ts new file mode 100644 index 0000000..00efe55 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/index.d.ts @@ -0,0 +1,3674 @@ +/* eslint-disable @typescript-eslint/ban-types */ +import {DeepPartial, DistributiveArray, UnionToIntersection} from './utils.js'; + +import {TimeUnit} from '../core/core.adapters.js'; +import PointElement from '../elements/element.point.js'; +import {EasingFunction} from '../helpers/helpers.easing.js'; +import {AnimationEvent} from './animation.js'; +import {AnyObject, EmptyObject} from './basic.js'; +import {Color} from './color.js'; +import Element from '../core/core.element.js'; +import {ChartArea, Padding, Point} from './geometric.js'; +import {LayoutItem, LayoutPosition} from './layout.js'; +import {RenderTextOpts} from './helpers/helpers.canvas.js'; +import {CanvasFontSpec} from '../helpers/helpers.options.js'; + +export {EasingFunction} from '../helpers/helpers.easing.js'; +export {default as ArcElement, ArcProps} from '../elements/element.arc.js'; +export {default as PointElement, PointProps} from '../elements/element.point.js'; +export {Animation, Animations, Animator, AnimationEvent} from './animation.js'; +export {Color} from './color.js'; +export {ChartArea, Point} from './geometric.js'; +export {LayoutItem, LayoutPosition} from './layout.js'; + +export interface ScriptableContext { + active: boolean; + chart: Chart; + dataIndex: number; + dataset: UnionToIntersection>; + datasetIndex: number; + type: string; + mode: string; + parsed: UnionToIntersection>; + raw: unknown; +} + +export interface ScriptableLineSegmentContext { + type: 'segment', + p0: PointElement, + p1: PointElement, + p0DataIndex: number, + p1DataIndex: number, + datasetIndex: number +} + +export type Scriptable = T | ((ctx: TContext, options: AnyObject) => T | undefined); +export type ScriptableOptions = { [P in keyof T]: Scriptable }; +export type ScriptableAndScriptableOptions = Scriptable | ScriptableOptions; +export type ScriptableAndArray = readonly T[] | Scriptable; +export type ScriptableAndArrayOptions = { [P in keyof T]: ScriptableAndArray }; + +export interface ParsingOptions { + /** + * How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally. + */ + parsing: + { + [key: string]: string; + } + | false; + + /** + * Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so. + */ + normalized: boolean; +} + +export interface ControllerDatasetOptions extends ParsingOptions { + /** + * The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas. + * @default 'x' + */ + indexAxis: 'x' | 'y'; + /** + * How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: `clip: {left: 5, top: false, right: -2, bottom: 0}` + */ + clip: number | ChartArea | false; + /** + * The label for the dataset which appears in the legend and tooltips. + */ + label: string; + /** + * The drawing order of dataset. Also affects order for stacking, tooltip and legend. + */ + order: number; + + /** + * The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). + */ + stack: string; + /** + * Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart. + * @default false + */ + hidden: boolean; +} + +export interface BarControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'bar'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other. + * @default 0.9 + */ + barPercentage: number; + /** + * Percent (0-1) of the available width each category should be within the sample width. + * @default 0.8 + */ + categoryPercentage: number; + + /** + * Manually set width of each bar in pixels. If set to 'flex', it computes "optimal" sample widths that globally arrange bars side by side. If not set (default), bars are equally sized based on the smallest interval. + */ + barThickness: number | 'flex'; + + /** + * Set this to ensure that bars are not sized thicker than this. + */ + maxBarThickness: number; + + /** + * Set this to ensure that bars have a minimum length in pixels. + */ + minBarLength: number; + + /** + * Point style for the legend + * @default 'circle; + */ + pointStyle: PointStyle; + + /** + * Should the bars be grouped on index axis + * @default true + */ + grouped: boolean; +} + +export interface BarControllerChartOptions { + /** + * Should null or undefined values be omitted from drawing + */ + skipNull?: boolean; +} + +export type BarController = DatasetController +export declare const BarController: ChartComponent & { + prototype: BarController; + new (chart: Chart, datasetIndex: number): BarController; +}; + +export interface BubbleControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; +} + +export interface BubbleDataPoint extends Point { + /** + * Bubble radius in pixels (not scaled). + */ + r: number; +} + +export type BubbleController = DatasetController +export declare const BubbleController: ChartComponent & { + prototype: BubbleController; + new (chart: Chart, datasetIndex: number): BubbleController; +}; + +export interface LineControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + ScriptableOptions, ScriptableContext<'line'>>, + ScriptableAndArrayOptions>, + ScriptableOptions, ScriptableContext<'line'>>, + ScriptableAndArrayOptions>, + AnimationOptions<'line'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + * @default false + */ + spanGaps: boolean | number; + + showLine: boolean; +} + +export interface LineControllerChartOptions { + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + * @default false + */ + spanGaps: boolean | number; + /** + * If false, the lines between points are not drawn. + * @default true + */ + showLine: boolean; +} + +export type LineController = DatasetController +export declare const LineController: ChartComponent & { + prototype: LineController; + new (chart: Chart, datasetIndex: number): LineController; +}; + +export type ScatterControllerDatasetOptions = LineControllerDatasetOptions; + +export type ScatterDataPoint = Point + +export type ScatterControllerChartOptions = LineControllerChartOptions; + +export type ScatterController = LineController +export declare const ScatterController: ChartComponent & { + prototype: ScatterController; + new (chart: Chart, datasetIndex: number): ScatterController; +}; + +export interface DoughnutControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'doughnut'> { + + /** + * Sweep to allow arcs to cover. + * @default 360 + */ + circumference: number; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * Starting angle to draw this dataset from. + * @default 0 + */ + rotation: number; + + /** + * The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values. + * @default 1 + */ + weight: number; + + /** + * Similar to the `offset` option, but applies to all arcs. This can be used to to add spaces + * between arcs + * @default 0 + */ + spacing: number; +} + +export interface DoughnutAnimationOptions { + /** + * If true, the chart will animate in with a rotation animation. This property is in the options.animation object. + * @default true + */ + animateRotate: boolean; + + /** + * If true, will animate scaling the chart from the center outwards. + * @default false + */ + animateScale: boolean; +} + +export interface DoughnutControllerChartOptions { + /** + * Sweep to allow arcs to cover. + * @default 360 + */ + circumference: number; + + /** + * The portion of the chart that is cut out of the middle. ('50%' - for doughnut, 0 - for pie) + * String ending with '%' means percentage, number means pixels. + * @default 50 + */ + cutout: Scriptable>; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * The outer radius of the chart. String ending with '%' means percentage of maximum radius, number means pixels. + * @default '100%' + */ + radius: Scriptable>; + + /** + * Starting angle to draw arcs from. + * @default 0 + */ + rotation: number; + + /** + * Spacing between the arcs + * @default 0 + */ + spacing: number; + + animation: false | DoughnutAnimationOptions; +} + +export type DoughnutDataPoint = number; + +export interface DoughnutController extends DatasetController { + readonly innerRadius: number; + readonly outerRadius: number; + readonly offsetX: number; + readonly offsetY: number; + + calculateTotal(): number; + calculateCircumference(value: number): number; +} + +export declare const DoughnutController: ChartComponent & { + prototype: DoughnutController; + new (chart: Chart, datasetIndex: number): DoughnutController; +}; + +export interface DoughnutMetaExtensions { + total: number; +} + +export type PieControllerDatasetOptions = DoughnutControllerDatasetOptions; +export type PieControllerChartOptions = DoughnutControllerChartOptions; +export type PieAnimationOptions = DoughnutAnimationOptions; + +export type PieDataPoint = DoughnutDataPoint; +export type PieMetaExtensions = DoughnutMetaExtensions; + +export type PieController = DoughnutController +export declare const PieController: ChartComponent & { + prototype: PieController; + new (chart: Chart, datasetIndex: number): PieController; +}; + +export interface PolarAreaControllerDatasetOptions extends DoughnutControllerDatasetOptions { + /** + * Arc angle to cover. - for polar only + * @default circumference / (arc count) + */ + angle: number; +} + +export type PolarAreaAnimationOptions = DoughnutAnimationOptions; + +export interface PolarAreaControllerChartOptions { + /** + * Starting angle to draw arcs for the first item in a dataset. In degrees, 0 is at top. + * @default 0 + */ + startAngle: number; + + animation: false | PolarAreaAnimationOptions; +} + +export interface PolarAreaController extends DoughnutController { + countVisibleElements(): number; +} +export declare const PolarAreaController: ChartComponent & { + prototype: PolarAreaController; + new (chart: Chart, datasetIndex: number): PolarAreaController; +}; + +export interface RadarControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'radar'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + */ + spanGaps: boolean | number; + + /** + * If false, the line is not drawn for this dataset. + */ + showLine: boolean; +} + +export type RadarControllerChartOptions = LineControllerChartOptions; + +export type RadarController = DatasetController +export declare const RadarController: ChartComponent & { + prototype: RadarController; + new (chart: Chart, datasetIndex: number): RadarController; +}; +interface ChartMetaCommon { + type: string; + controller: DatasetController; + order: number; + + label: string; + index: number; + visible: boolean; + + stack: number; + + indexAxis: 'x' | 'y'; + + data: TElement[]; + dataset?: TDatasetElement; + + hidden: boolean; + + xAxisID?: string; + yAxisID?: string; + rAxisID?: string; + iAxisID: string; + vAxisID: string; + + xScale?: Scale; + yScale?: Scale; + rScale?: Scale; + iScale?: Scale; + vScale?: Scale; + + _sorted: boolean; + _stacked: boolean | 'single'; + _parsed: unknown[]; +} + +export type ChartMeta< + TType extends ChartType = ChartType, + TElement extends Element = Element, + TDatasetElement extends Element = Element, +> = DeepPartial< +{ [key in ChartType]: ChartTypeRegistry[key]['metaExtensions'] }[TType] +> & ChartMetaCommon; + +export interface ActiveDataPoint { + datasetIndex: number; + index: number; +} + +export interface ActiveElement extends ActiveDataPoint { + element: Element; +} + +export declare class Chart< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + readonly platform: BasePlatform; + readonly id: string; + readonly canvas: HTMLCanvasElement; + readonly ctx: CanvasRenderingContext2D; + readonly config: ChartConfigurationInstance; + readonly width: number; + readonly height: number; + readonly aspectRatio: number; + readonly boxes: LayoutItem[]; + readonly currentDevicePixelRatio: number; + readonly chartArea: ChartArea; + readonly scales: { [key: string]: Scale }; + readonly attached: boolean; + + readonly legend?: LegendElement; // Only available if legend plugin is Registroed and enabled + readonly tooltip?: TooltipModel; // Only available if tooltip plugin is Registroed and enabled + + data: ChartData; + options: ChartOptions; + + constructor(item: ChartItem, config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset); + + clear(): this; + stop(): this; + + resize(width?: number, height?: number): void; + ensureScalesHaveIDs(): void; + buildOrUpdateScales(): void; + buildOrUpdateControllers(): void; + reset(): void; + update(mode?: UpdateMode): void; + render(): void; + draw(): void; + + isPointInArea(point: Point): boolean; + getElementsAtEventForMode(e: Event, mode: string, options: InteractionOptions, useFinalPosition: boolean): InteractionItem[]; + + getSortedVisibleDatasetMetas(): ChartMeta[]; + getDatasetMeta(datasetIndex: number): ChartMeta; + getVisibleDatasetCount(): number; + isDatasetVisible(datasetIndex: number): boolean; + setDatasetVisibility(datasetIndex: number, visible: boolean): void; + toggleDataVisibility(index: number): void; + getDataVisibility(index: number): boolean; + hide(datasetIndex: number, dataIndex?: number): void; + show(datasetIndex: number, dataIndex?: number): void; + + getActiveElements(): ActiveElement[]; + setActiveElements(active: ActiveDataPoint[]): void; + + destroy(): void; + toBase64Image(type?: string, quality?: unknown): string; + bindEvents(): void; + unbindEvents(): void; + updateHoverStyle(items: InteractionItem[], mode: 'dataset', enabled: boolean): void; + + notifyPlugins(hook: string, args?: AnyObject): boolean | void; + + isPluginEnabled(pluginId: string): boolean; + + static readonly defaults: Defaults; + static readonly overrides: Overrides; + static readonly version: string; + static readonly instances: { [key: string]: Chart }; + static readonly registry: Registry; + static getChart(key: string | CanvasRenderingContext2D | HTMLCanvasElement): Chart | undefined; + static Registro(...items: ChartComponentLike[]): void; + static unRegistro(...items: ChartComponentLike[]): void; +} + +export declare const Registroables: readonly ChartComponentLike[]; + +export declare type ChartItem = + | string + | CanvasRenderingContext2D + | HTMLCanvasElement + | { canvas: HTMLCanvasElement } + | ArrayLike; + +export declare const enum UpdateModeEnum { + resize = 'resize', + reset = 'reset', + none = 'none', + hide = 'hide', + show = 'show', + normal = 'normal', + active = 'active' +} + +export type UpdateMode = keyof typeof UpdateModeEnum; + +export declare class DatasetController< + TType extends ChartType = ChartType, + TElement extends Element = Element, + TDatasetElement extends Element = Element, + TParsedData = ParsedDataType, +> { + constructor(chart: Chart, datasetIndex: number); + + readonly chart: Chart; + readonly index: number; + readonly _cachedMeta: ChartMeta; + enableOptionSharing: boolean; + // If true, the controller supports the decimation + // plugin. Defaults to `false` for all controllers + // except the LineController + supportsDecimation: boolean; + + linkScales(): void; + getAllParsedValues(scale: Scale): number[]; + protected getLabelAndValue(index: number): { label: string; value: string }; + updateElements(elements: TElement[], start: number, count: number, mode: UpdateMode): void; + update(mode: UpdateMode): void; + updateIndex(datasetIndex: number): void; + protected getMaxOverflow(): boolean | number; + draw(): void; + reset(): void; + getDataset(): ChartDataset; + getMeta(): ChartMeta; + getScaleForId(scaleID: string): Scale | undefined; + configure(): void; + initialize(): void; + addElements(): void; + buildOrUpdateElements(resetNewElements?: boolean): void; + + getStyle(index: number, active: boolean): AnyObject; + protected resolveDatasetElementOptions(mode: UpdateMode): AnyObject; + protected resolveDataElementOptions(index: number, mode: UpdateMode): AnyObject; + /** + * Utility for checking if the options are shared and should be animated separately. + * @protected + */ + protected getSharedOptions(options: AnyObject): undefined | AnyObject; + /** + * Utility for determining if `options` should be included in the updated properties + * @protected + */ + protected includeOptions(mode: UpdateMode, sharedOptions: AnyObject): boolean; + /** + * Utility for updating an element with new properties, using animations when appropriate. + * @protected + */ + + protected updateElement(element: TElement | TDatasetElement, index: number | undefined, properties: AnyObject, mode: UpdateMode): void; + /** + * Utility to animate the shared options, that are potentially affecting multiple elements. + * @protected + */ + + protected updateSharedOptions(sharedOptions: AnyObject, mode: UpdateMode, newOptions: AnyObject): void; + removeHoverStyle(element: TElement, datasetIndex: number, index: number): void; + setHoverStyle(element: TElement, datasetIndex: number, index: number): void; + + parse(start: number, count: number): void; + protected parsePrimitiveData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected parseArrayData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected parseObjectData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected getParsed(index: number): TParsedData; + protected applyStack(scale: Scale, parsed: unknown[]): number; + protected updateRangeFromParsed( + range: { min: number; max: number }, + scale: Scale, + parsed: unknown[], + stack: boolean | string + ): void; + protected getMinMax(scale: Scale, canStack?: boolean): { min: number; max: number }; +} + +export interface DatasetControllerChartComponent extends ChartComponent { + defaults: { + datasetElementType?: string | null | false; + dataElementType?: string | null | false; + }; +} + +export interface Defaults extends CoreChartOptions, ElementChartOptions, PluginChartOptions { + + scale: ScaleOptionsByType; + scales: { + [key in ScaleType]: ScaleOptionsByType; + }; + + set(values: AnyObject): AnyObject; + set(scope: string, values: AnyObject): AnyObject; + get(scope: string): AnyObject; + + describe(scope: string, values: AnyObject): AnyObject; + override(scope: string, values: AnyObject): AnyObject; + + /** + * Routes the named defaults to fallback to another scope/name. + * This routing is useful when those target values, like defaults.color, are changed runtime. + * If the values would be copied, the runtime change would not take effect. By routing, the + * fallback is evaluated at each access, so its always up to date. + * + * Example: + * + * defaults.route('elements.arc', 'backgroundColor', '', 'color') + * - reads the backgroundColor from defaults.color when undefined locally + * + * @param scope Scope this route applies to. + * @param name Property name that should be routed to different namespace when not defined here. + * @param targetScope The namespace where those properties should be routed to. + * Empty string ('') is the root of defaults. + * @param targetName The target name in the target scope the property should be routed to. + */ + route(scope: string, name: string, targetScope: string, targetName: string): void; +} + +export type Overrides = { + [key in ChartType]: + CoreChartOptions & + ElementChartOptions & + PluginChartOptions & + DatasetChartOptions & + ScaleChartOptions & + ChartTypeRegistry[key]['chartOptions']; +} + +export declare const defaults: Defaults; +export interface InteractionOptions { + axis?: string; + intersect?: boolean; + includeInvisible?: boolean; +} + +export interface InteractionItem { + element: Element; + datasetIndex: number; + index: number; +} + +export type InteractionModeFunction = ( + chart: Chart, + e: ChartEvent, + options: InteractionOptions, + useFinalPosition?: boolean +) => InteractionItem[]; + +export interface InteractionModeMap { + /** + * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item + */ + index: InteractionModeFunction; + + /** + * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect is false, we find the nearest item and return the items in that dataset + */ + dataset: InteractionModeFunction; + /** + * Point mode returns all elements that hit test based on the event position + * of the event + */ + point: InteractionModeFunction; + /** + * nearest mode returns the element closest to the point + */ + nearest: InteractionModeFunction; + /** + * x mode returns the elements that hit-test at the current x coordinate + */ + x: InteractionModeFunction; + /** + * y mode returns the elements that hit-test at the current y coordinate + */ + y: InteractionModeFunction; +} + +export type InteractionMode = keyof InteractionModeMap; + +export declare const Interaction: { + modes: InteractionModeMap; + + /** + * Helper function to select candidate elements for interaction + */ + evaluateInteractionItems( + chart: Chart, + axis: InteractionAxis, + position: Point, + handler: (element: Element & VisualElement, datasetIndex: number, index: number) => void, + intersect?: boolean + ): InteractionItem[]; +}; + +export declare const layouts: { + /** + * Registro a box to a chart. + * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title. + * @param {Chart} chart - the chart to use + * @param {LayoutItem} item - the item to add to be laid out + */ + addBox(chart: Chart, item: LayoutItem): void; + + /** + * Remove a layoutItem from a chart + * @param {Chart} chart - the chart to remove the box from + * @param {LayoutItem} layoutItem - the item to remove from the layout + */ + removeBox(chart: Chart, layoutItem: LayoutItem): void; + + /** + * Sets (or updates) options on the given `item`. + * @param {Chart} chart - the chart in which the item lives (or will be added to) + * @param {LayoutItem} item - the item to configure with the given options + * @param options - the new item options. + */ + configure( + chart: Chart, + item: LayoutItem, + options: { fullSize?: number; position?: LayoutPosition; weight?: number } + ): void; + + /** + * Fits boxes of the given chart into the given size by having each box measure itself + * then running a fitting algorithm + * @param {Chart} chart - the chart + * @param {number} width - the width to fit into + * @param {number} height - the height to fit into + */ + update(chart: Chart, width: number, height: number): void; +}; + +export interface Plugin extends ExtendedPlugin { + id: string; + + /** + * @desc Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false). + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + install?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called when a plugin is starting. This happens when chart is created or plugin is enabled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + start?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + stop?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before initializing `chart`. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeInit?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called after `chart` has been initialized and before the first update. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterInit?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before updating `chart`. If any plugin returns `false`, the update + * is cancelled (and thus subsequent render(s)) until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart update. + */ + beforeUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after `chart` has been updated and before rendering. Note that this + * hook will not be called if the chart update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode + * @param {object} options - The plugin options. + */ + afterUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): void; + /** + * @desc Called during the update process, before any chart elements have been created. + * This can be used for data decimation by changing the data array inside a dataset. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeElementsUpdate?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called during chart reset + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since version 3.0.0 + */ + reset?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before updating the `chart` datasets. If any plugin returns `false`, + * the datasets update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @returns {boolean} false to cancel the datasets update. + * @since version 2.1.5 + */ + beforeDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets have been updated. Note that this hook + * will not be called if the datasets update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @since version 2.1.5 + */ + afterDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): void; + /** + * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin + * returns `false`, the datasets update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note + * that this hook will not be called if the datasets update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + */ + afterDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: false }, options: O): void; + /** + * @desc Called before laying out `chart`. If any plugin returns `false`, + * the layout update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart layout. + */ + beforeLayout?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called before scale data limits are calculated. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + beforeDataLimits?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after scale data limits are calculated. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + afterDataLimits?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called before scale builds its ticks. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + beforeBuildTicks?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after scale has build its ticks. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + afterBuildTicks?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after the `chart` has been laid out. Note that this hook will not + * be called if the layout update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterLayout?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before rendering `chart`. If any plugin returns `false`, + * the rendering is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart rendering. + */ + beforeRender?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` has been fully rendered (and animation completed). Note + * that this hook will not be called if the rendering has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterRender?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before drawing `chart` at every animation frame. If any plugin returns `false`, + * the frame drawing is cancelled untilanother `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart drawing. + */ + beforeDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` has been drawn. Note that this hook will not be called + * if the drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDraw?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before drawing the `chart` datasets. If any plugin returns `false`, + * the datasets drawing is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetsDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets have been drawn. Note that this hook + * will not be called if the datasets drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDatasetsDraw?(chart: Chart, args: EmptyObject, options: O, cancelable: false): void; + /** + * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets + * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing + * is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetDraw?(chart: Chart, args: { index: number; meta: ChartMeta }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets at the given `args.index` have been drawn + * (datasets are drawn in the reverse order). Note that this hook will not be called + * if the datasets drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {object} options - The plugin options. + */ + afterDatasetDraw?(chart: Chart, args: { index: number; meta: ChartMeta }, options: O): void; + /** + * @desc Called before processing the specified `event`. If any plugin returns `false`, + * the event will be discarded. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {ChartEvent} args.event - The event object. + * @param {boolean} args.replay - True if this event is replayed from `Chart.update` + * @param {boolean} args.inChartArea - The event position is inside chartArea + * @param {object} options - The plugin options. + */ + beforeEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, cancelable: true, inChartArea: boolean }, options: O): boolean | void; + /** + * @desc Called after the `event` has been consumed. Note that this hook + * will not be called if the `event` has been previously discarded. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {ChartEvent} args.event - The event object. + * @param {boolean} args.replay - True if this event is replayed from `Chart.update` + * @param {boolean} args.inChartArea - The event position is inside chartArea + * @param {boolean} [args.changed] - Set to true if the plugin needs a render. Should only be changed to true, because this args object is passed through all plugins. + * @param {object} options - The plugin options. + */ + afterEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, changed?: boolean, cancelable: false, inChartArea: boolean }, options: O): void; + /** + * @desc Called after the chart as been resized. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.size - The new canvas display size (eq. canvas.style width & height). + * @param {object} options - The plugin options. + */ + resize?(chart: Chart, args: { size: { width: number, height: number } }, options: O): void; + /** + * Called before the chart is being destroyed. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeDestroy?(chart: Chart, args: EmptyObject, options: O): void; + /** + * Called after the chart has been destroyed. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDestroy?(chart: Chart, args: EmptyObject, options: O): void; + /** + * Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false). + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + uninstall?(chart: Chart, args: EmptyObject, options: O): void; + + /** + * Default options used in the plugin + */ + defaults?: Partial; +} + +export declare type ChartComponentLike = ChartComponent | ChartComponent[] | { [key: string]: ChartComponent } | Plugin | Plugin[]; + +/** + * Please use the module's default export which provides a singleton instance + * Note: class is exported for typedoc + */ +export interface Registry { + readonly controllers: TypedRegistry; + readonly elements: TypedRegistry; + readonly plugins: TypedRegistry; + readonly scales: TypedRegistry; + + add(...args: ChartComponentLike[]): void; + remove(...args: ChartComponentLike[]): void; + + addControllers(...args: ChartComponentLike[]): void; + addElements(...args: ChartComponentLike[]): void; + addPlugins(...args: ChartComponentLike[]): void; + addScales(...args: ChartComponentLike[]): void; + + getController(id: string): DatasetController | undefined; + getElement(id: string): Element | undefined; + getPlugin(id: string): Plugin | undefined; + getScale(id: string): Scale | undefined; +} + +export declare const registry: Registry; + +export interface Tick { + value: number; + label?: string | string[]; + major?: boolean; +} + +export interface CoreScaleOptions { + /** + * Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible. + * @default true + */ + display: boolean | 'auto'; + /** + * Align pixel values to device pixels + */ + alignToPixels: boolean; + /** + * Reverse the scale. + * @default false + */ + reverse: boolean; + /** + * The weight used to sort the axis. Higher weights are further away from the chart area. + * @default true + */ + weight: number; + /** + * Callback called before the update process starts. + */ + beforeUpdate(axis: Scale): void; + /** + * Callback that runs before dimensions are set. + */ + beforeSetDimensions(axis: Scale): void; + /** + * Callback that runs after dimensions are set. + */ + afterSetDimensions(axis: Scale): void; + /** + * Callback that runs before data limits are determined. + */ + beforeDataLimits(axis: Scale): void; + /** + * Callback that runs after data limits are determined. + */ + afterDataLimits(axis: Scale): void; + /** + * Callback that runs before ticks are created. + */ + beforeBuildTicks(axis: Scale): void; + /** + * Callback that runs after ticks are created. Useful for filtering ticks. + */ + afterBuildTicks(axis: Scale): void; + /** + * Callback that runs before ticks are converted into strings. + */ + beforeTickToLabelConversion(axis: Scale): void; + /** + * Callback that runs after ticks are converted into strings. + */ + afterTickToLabelConversion(axis: Scale): void; + /** + * Callback that runs before tick rotation is determined. + */ + beforeCalculateLabelRotation(axis: Scale): void; + /** + * Callback that runs after tick rotation is determined. + */ + afterCalculateLabelRotation(axis: Scale): void; + /** + * Callback that runs before the scale fits to the canvas. + */ + beforeFit(axis: Scale): void; + /** + * Callback that runs after the scale fits to the canvas. + */ + afterFit(axis: Scale): void; + /** + * Callback that runs at the end of the update process. + */ + afterUpdate(axis: Scale): void; +} + +export interface Scale extends Element, LayoutItem { + readonly id: string; + readonly type: string; + readonly ctx: CanvasRenderingContext2D; + readonly chart: Chart; + + maxWidth: number; + maxHeight: number; + + paddingTop: number; + paddingBottom: number; + paddingLeft: number; + paddingRight: number; + + axis: string; + labelRotation: number; + min: number; + max: number; + ticks: Tick[]; + getMatchingVisibleMetas(type?: string): ChartMeta[]; + + drawTitle(chartArea: ChartArea): void; + drawLabels(chartArea: ChartArea): void; + drawGrid(chartArea: ChartArea): void; + + /** + * @param {number} pixel + * @return {number} + */ + getDecimalForPixel(pixel: number): number; + /** + * Utility for getting the pixel location of a percentage of scale + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} decimal + * @return {number} + */ + getPixelForDecimal(decimal: number): number; + /** + * Returns the location of the tick at the given index + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} index + * @return {number} + */ + getPixelForTick(index: number): number; + /** + * Used to get the label to display in the tooltip for the given value + * @param {*} value + * @return {string} + */ + getLabelForValue(value: number): string; + + /** + * Returns the grid line width at given value + */ + getLineWidthForValue(value: number): number; + + /** + * Returns the location of the given data point. Value can either be an index or a numerical value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {*} value + * @param {number} [index] + * @return {number} + */ + getPixelForValue(value: number, index?: number): number; + + /** + * Used to get the data value from a given pixel. This is the inverse of getPixelForValue + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} pixel + * @return {*} + */ + getValueForPixel(pixel: number): number | undefined; + + getBaseValue(): number; + /** + * Returns the pixel for the minimum chart value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @return {number} + */ + getBasePixel(): number; + + init(options: O): void; + parse(raw: unknown, index: number): unknown; + getUserBounds(): { min: number; max: number; minDefined: boolean; maxDefined: boolean }; + getMinMax(canStack: boolean): { min: number; max: number }; + getTicks(): Tick[]; + getLabels(): string[]; + getLabelItems(chartArea?: ChartArea): LabelItem[]; + beforeUpdate(): void; + configure(): void; + afterUpdate(): void; + beforeSetDimensions(): void; + setDimensions(): void; + afterSetDimensions(): void; + beforeDataLimits(): void; + determineDataLimits(): void; + afterDataLimits(): void; + beforeBuildTicks(): void; + buildTicks(): Tick[]; + afterBuildTicks(): void; + beforeTickToLabelConversion(): void; + generateTickLabels(ticks: Tick[]): void; + afterTickToLabelConversion(): void; + beforeCalculateLabelRotation(): void; + calculateLabelRotation(): void; + afterCalculateLabelRotation(): void; + beforeFit(): void; + fit(): void; + afterFit(): void; + + isFullSize(): boolean; +} +export declare class Scale { + constructor(cfg: {id: string, type: string, ctx: CanvasRenderingContext2D, chart: Chart}); +} + +export interface ScripTablascaleContext { + chart: Chart; + scale: Scale; + index: number; + tick: Tick; +} + +export interface ScripTablascalePointLabelContext { + chart: Chart; + scale: Scale; + index: number; + label: string; + type: string; +} + +export interface LabelItem { + label: string | string[]; + font: CanvasFontSpec; + textOffset: number; + options: RenderTextOpts; +} + +export declare const Ticks: { + formatters: { + /** + * Formatter for value labels + * @param value the value to display + * @return {string|string[]} the label to display + */ + values(value: unknown): string | string[]; + /** + * Formatter for numeric ticks + * @param tickValue the value to be formatted + * @param index the position of the tickValue parameter in the ticks array + * @param ticks the list of ticks being converted + * @return string representation of the tickValue parameter + */ + numeric(tickValue: number, index: number, ticks: { value: number }[]): string; + /** + * Formatter for logarithmic ticks + * @param tickValue the value to be formatted + * @param index the position of the tickValue parameter in the ticks array + * @param ticks the list of ticks being converted + * @return string representation of the tickValue parameter + */ + logarithmic(tickValue: number, index: number, ticks: { value: number }[]): string; + }; +}; + +export interface TypedRegistry { + /** + * @param {ChartComponent} item + * @returns {string} The scope where items defaults were Registroed to. + */ + Registro(item: ChartComponent): string; + get(id: string): T | undefined; + unRegistro(item: ChartComponent): void; +} + +export interface ChartEvent { + type: + | 'contextmenu' + | 'mouseenter' + | 'mousedown' + | 'mousemove' + | 'mouseup' + | 'mouseout' + | 'click' + | 'dblclick' + | 'keydown' + | 'keypress' + | 'keyup' + | 'resize'; + native: Event | null; + x: number | null; + y: number | null; +} +export interface ChartComponent { + id: string; + defaults?: AnyObject; + defaultRoutes?: { [property: string]: string }; + + beforeRegistro?(): void; + afterRegistro?(): void; + beforeUnRegistro?(): void; + afterUnRegistro?(): void; +} + +export type InteractionAxis = 'x' | 'y' | 'xy' | 'r'; + +export interface CoreInteractionOptions { + /** + * Sets which elements appear in the tooltip. See Interaction Modes for details. + * @default 'nearest' + */ + mode: InteractionMode; + /** + * if true, the hover mode only applies when the mouse position intersects an item on the chart. + * @default true + */ + intersect: boolean; + + /** + * Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes. + */ + axis: InteractionAxis; + + /** + * if true, the invisible points that are outside of the chart area will also be included when evaluating interactions. + * @default false + */ + includeInvisible: boolean; +} + +export interface CoreChartOptions extends ParsingOptions, AnimationOptions { + + datasets: { + [key in ChartType]: ChartTypeRegistry[key]['datasetOptions'] + } + + /** + * The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas. + * @default 'x' + */ + indexAxis: 'x' | 'y'; + + /** + * How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: `clip: {left: 5, top: false, right: -2, bottom: 0}` + */ + clip: number | ChartArea | false; + + /** + * base color + * @see Defaults.color + */ + color: Scriptable>; + /** + * base background color + * @see Defaults.backgroundColor + */ + backgroundColor: Scriptable>; + /** + * base border color + * @see Defaults.borderColor + */ + borderColor: Scriptable>; + /** + * base font + * @see Defaults.font + */ + font: Partial; + /** + * Resizes the chart canvas when its container does (important note...). + * @default true + */ + responsive: boolean; + /** + * Maintain the original canvas aspect ratio (width / height) when resizing. + * @default true + */ + maintainAspectRatio: boolean; + /** + * Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements. + * @default 0 + */ + resizeDelay: number; + + /** + * Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style. + * @default 2 + */ + aspectRatio: number; + + /** + * Locale used for number formatting (using `Intl.NumberFormat`). + * @default user's browser setting + */ + locale: string; + + /** + * Called when a resize occurs. Gets passed two arguments: the chart instance and the new size. + */ + onResize(chart: Chart, size: { width: number; height: number }): void; + + /** + * Override the window's default devicePixelRatio. + * @default window.devicePixelRatio + */ + devicePixelRatio: number; + + interaction: CoreInteractionOptions; + + hover: CoreInteractionOptions; + + /** + * The events option defines the browser events that the chart should listen to for tooltips and hovering. + * @default ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'] + */ + events: (keyof HTMLElementEventMap)[] + + /** + * Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart. + */ + onHover(event: ChartEvent, elements: ActiveElement[], chart: Chart): void; + + /** + * Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart. + */ + onClick(event: ChartEvent, elements: ActiveElement[], chart: Chart): void; + + layout: Partial<{ + autoPadding: boolean; + padding: Scriptable>; + }>; +} + +export type AnimationSpec = { + /** + * The number of milliseconds an animation takes. + * @default 1000 + */ + duration?: Scriptable>; + /** + * Easing function to use + * @default 'easeOutQuart' + */ + easing?: Scriptable>; + + /** + * Delay before starting the animations. + * @default 0 + */ + delay?: Scriptable>; + + /** + * If set to true, the animations loop endlessly. + * @default false + */ + loop?: Scriptable>; +} + +export type AnimationsSpec = { + [name: string]: false | AnimationSpec & { + properties: string[]; + + /** + * Type of property, determines the interpolator used. Possible values: 'number', 'color' and 'boolean'. Only really needed for 'color', because typeof does not get that right. + */ + type: 'color' | 'number' | 'boolean'; + + fn: (from: T, to: T, factor: number) => T; + + /** + * Start value for the animation. Current value is used when undefined + */ + from: Scriptable>; + /** + * + */ + to: Scriptable>; + } +} + +export type TransitionSpec = { + animation: AnimationSpec; + animations: AnimationsSpec; +} + +export type TransitionsSpec = { + [mode: string]: TransitionSpec +} + +export type AnimationOptions = { + animation: false | AnimationSpec & { + /** + * Callback called on each step of an animation. + */ + onProgress?: (this: Chart, event: AnimationEvent) => void; + /** + * Callback called when all animations are completed. + */ + onComplete?: (this: Chart, event: AnimationEvent) => void; + }; + animations: AnimationsSpec; + transitions: TransitionsSpec; +}; + +export interface FontSpec { + /** + * Default font family for all text, follows CSS font-family options. + * @default "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" + */ + family: string; + /** + * Default font size (in px) for text. Does not apply to radialLinear scale point labels. + * @default 12 + */ + size: number; + /** + * Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit) + * @default 'normal' + */ + style: 'normal' | 'italic' | 'oblique' | 'initial' | 'inherit'; + /** + * Default font weight (boldness). (see MDN). + */ + weight: string | null; + /** + * Height of an individual line of text (see MDN). + * @default 1.2 + */ + lineHeight: number | string; +} + +export type TextAlign = 'left' | 'center' | 'right'; +export type Align = 'start' | 'center' | 'end'; + +export interface VisualElement { + draw(ctx: CanvasRenderingContext2D, area?: ChartArea): void; + inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean): boolean; + inXRange(mouseX: number, useFinalPosition?: boolean): boolean; + inYRange(mouseY: number, useFinalPosition?: boolean): boolean; + getCenterPoint(useFinalPosition?: boolean): Point; + getRange?(axis: 'x' | 'y'): number; +} + +export interface CommonElementOptions { + borderWidth: number; + borderColor: Color; + backgroundColor: Color; +} + +export interface CommonHoverOptions { + hoverBorderWidth: number; + hoverBorderColor: Color; + hoverBackgroundColor: Color; +} + +export interface Segment { + start: number; + end: number; + loop: boolean; +} + +export interface ArcBorderRadius { + outerStart: number; + outerEnd: number; + innerStart: number; + innerEnd: number; +} + +export interface ArcOptions extends CommonElementOptions { + /** + * Arc stroke alignment. + */ + borderAlign: 'center' | 'inner'; + + /** + * Line join style. See MDN. Default is 'round' when `borderAlign` is 'inner', else 'bevel'. + */ + borderJoinStyle: CanvasLineJoin; + + /** + * Sets the border radius for arcs + * @default 0 + */ + borderRadius: number | ArcBorderRadius; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * If false, Arc will be flat. + * @default true + */ + circular: boolean; + + /** + * Spacing between arcs + */ + spacing: number +} + +export interface ArcHoverOptions extends CommonHoverOptions { + hoverOffset: number; +} + +export interface LineProps { + points: Point[] +} + +export interface LineOptions extends CommonElementOptions { + /** + * Line cap style. See MDN. + * @default 'butt' + */ + borderCapStyle: CanvasLineCap; + /** + * Line dash. See MDN. + * @default [] + */ + borderDash: number[]; + /** + * Line dash offset. See MDN. + * @default 0.0 + */ + borderDashOffset: number; + /** + * Line join style. See MDN. + * @default 'miter' + */ + borderJoinStyle: CanvasLineJoin; + /** + * true to keep Bézier control inside the chart, false for no restriction. + * @default true + */ + capBezierPoints: boolean; + /** + * Interpolation mode to apply. + * @default 'default' + */ + cubicInterpolationMode: 'default' | 'monotone'; + /** + * Bézier curve tension (0 for no Bézier curves). + * @default 0 + */ + tension: number; + /** + * true to show the line as a stepped line (tension will be ignored). + * @default false + */ + stepped: 'before' | 'after' | 'middle' | boolean; + /** + * Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end + */ + fill: FillTarget | ComplexFillTarget; + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + */ + spanGaps: boolean | number; + + segment: { + backgroundColor: Scriptable, + borderColor: Scriptable, + borderCapStyle: Scriptable; + borderDash: Scriptable; + borderDashOffset: Scriptable; + borderJoinStyle: Scriptable; + borderWidth: Scriptable; + }; +} + +export interface LineHoverOptions extends CommonHoverOptions { + hoverBorderCapStyle: CanvasLineCap; + hoverBorderDash: number[]; + hoverBorderDashOffset: number; + hoverBorderJoinStyle: CanvasLineJoin; +} + +export interface LineElement + extends Element, + VisualElement { + updateControlPoints(chartArea: ChartArea, indexAxis?: 'x' | 'y'): void; + points: Point[]; + readonly segments: Segment[]; + first(): Point | false; + last(): Point | false; + interpolate(point: Point, property: 'x' | 'y'): undefined | Point | Point[]; + pathSegment(ctx: CanvasRenderingContext2D, segment: Segment, params: AnyObject): undefined | boolean; + path(ctx: CanvasRenderingContext2D): boolean; +} + +export declare const LineElement: ChartComponent & { + prototype: LineElement; + new (cfg: AnyObject): LineElement; +}; + +export type PointStyle = + | 'circle' + | 'cross' + | 'crossRot' + | 'dash' + | 'line' + | 'rect' + | 'rectRounded' + | 'rectRot' + | 'star' + | 'triangle' + | false + | HTMLImageElement + | HTMLCanvasElement; + +export interface PointOptions extends CommonElementOptions { + /** + * Point radius + * @default 3 + */ + radius: number; + /** + * Extra radius added to point radius for hit detection. + * @default 1 + */ + hitRadius: number; + /** + * Point style + * @default 'circle; + */ + pointStyle: PointStyle; + /** + * Point rotation (in degrees). + * @default 0 + */ + rotation: number; + /** + * Draw the active elements over the other elements of the dataset, + * @default true + */ + drawActiveElementsOnTop: boolean; +} + +export interface PointHoverOptions extends CommonHoverOptions { + /** + * Point radius when hovered. + * @default 4 + */ + hoverRadius: number; +} + +export interface PointPrefixedOptions { + /** + * The fill color for points. + */ + pointBackgroundColor: Color; + /** + * The border color for points. + */ + pointBorderColor: Color; + /** + * The width of the point border in pixels. + */ + pointBorderWidth: number; + /** + * The pixel size of the non-displayed point that reacts to mouse events. + */ + pointHitRadius: number; + /** + * The radius of the point shape. If set to 0, the point is not rendered. + */ + pointRadius: number; + /** + * The rotation of the point in degrees. + */ + pointRotation: number; + /** + * Style of the point. + */ + pointStyle: PointStyle; +} + +export interface PointPrefixedHoverOptions { + /** + * Point background color when hovered. + */ + pointHoverBackgroundColor: Color; + /** + * Point border color when hovered. + */ + pointHoverBorderColor: Color; + /** + * Border width of point when hovered. + */ + pointHoverBorderWidth: number; + /** + * The radius of the point when hovered. + */ + pointHoverRadius: number; +} + +export interface BarProps extends Point { + base: number; + horizontal: boolean; + width: number; + height: number; +} + +export interface BarOptions extends Omit { + /** + * The base value for the bar in data units along the value axis. + */ + base: number; + + /** + * Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all). + * @default 'start' + */ + borderSkipped: 'start' | 'end' | 'left' | 'right' | 'bottom' | 'top' | 'middle' | boolean; + + /** + * Border radius + * @default 0 + */ + borderRadius: number | BorderRadius; + + /** + * Amount to inflate the rectangle(s). This can be used to hide artifacts between bars. + * Unit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0. + * @default 'auto' + */ + inflateAmount: number | 'auto'; + + /** + * Width of the border, number for all sides, object to specify width for each side specifically + * @default 0 + */ + borderWidth: number | { top?: number, right?: number, bottom?: number, left?: number }; +} + +export interface BorderRadius { + topLeft: number; + topRight: number; + bottomLeft: number; + bottomRight: number; +} + +export interface BarHoverOptions extends CommonHoverOptions { + hoverBorderRadius: number | BorderRadius; +} + +export interface BarElement< + T extends BarProps = BarProps, + O extends BarOptions = BarOptions +> extends Element, VisualElement {} + +export declare const BarElement: ChartComponent & { + prototype: BarElement; + new (cfg: AnyObject): BarElement; +}; + +export interface ElementOptionsByType { + arc: ScriptableAndArrayOptions>; + bar: ScriptableAndArrayOptions>; + line: ScriptableAndArrayOptions>; + point: ScriptableAndArrayOptions>; +} + +export type ElementChartOptions = { + elements: ElementOptionsByType +}; + +export declare class BasePlatform { + /** + * Called at chart construction time, returns a context2d instance implementing + * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}. + * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific) + * @param options - The chart options + */ + acquireContext( + canvas: HTMLCanvasElement, + options?: CanvasRenderingContext2DSettings + ): CanvasRenderingContext2D | null; + /** + * Called at chart destruction time, releases any resources associated to the context + * previously returned by the acquireContext() method. + * @param {CanvasRenderingContext2D} context - The context2d instance + * @returns {boolean} true if the method succeeded, else false + */ + releaseContext(context: CanvasRenderingContext2D): boolean; + /** + * Registros the specified listener on the given chart. + * @param {Chart} chart - Chart from which to listen for event + * @param {string} type - The ({@link ChartEvent}) type to listen for + * @param listener - Receives a notification (an object that implements + * the {@link ChartEvent} interface) when an event of the specified type occurs. + */ + addEventListener(chart: Chart, type: string, listener: (e: ChartEvent) => void): void; + /** + * Removes the specified listener previously Registroed with addEventListener. + * @param {Chart} chart - Chart from which to remove the listener + * @param {string} type - The ({@link ChartEvent}) type to remove + * @param listener - The listener function to remove from the event target. + */ + removeEventListener(chart: Chart, type: string, listener: (e: ChartEvent) => void): void; + /** + * @returns {number} the current devicePixelRatio of the device this platform is connected to. + */ + getDevicePixelRatio(): number; + /** + * @param {HTMLCanvasElement} canvas - The canvas for which to calculate the maximum size + * @param {number} [width] - Parent element's content width + * @param {number} [height] - Parent element's content height + * @param {number} [aspectRatio] - The aspect ratio to maintain + * @returns { width: number, height: number } the maximum size available. + */ + getMaximumSize(canvas: HTMLCanvasElement, width?: number, height?: number, aspectRatio?: number): { width: number, height: number }; + /** + * @param {HTMLCanvasElement} canvas + * @returns {boolean} true if the canvas is attached to the platform, false if not. + */ + isAttached(canvas: HTMLCanvasElement): boolean; + /** + * Updates config with platform specific requirements + * @param {ChartConfiguration | ChartConfigurationCustomTypes} config + */ + updateConfig(config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset): void; +} + +export declare class BasicPlatform extends BasePlatform {} +export declare class DomPlatform extends BasePlatform {} + +export declare const Decimation: Plugin; + +export declare const enum DecimationAlgorithm { + lttb = 'lttb', + minmax = 'min-max', +} +interface BaseDecimationOptions { + enabled: boolean; + threshold?: number; +} + +interface LttbDecimationOptions extends BaseDecimationOptions { + algorithm: DecimationAlgorithm.lttb | 'lttb'; + samples?: number; +} + +interface MinMaxDecimationOptions extends BaseDecimationOptions { + algorithm: DecimationAlgorithm.minmax | 'min-max'; +} + +export type DecimationOptions = LttbDecimationOptions | MinMaxDecimationOptions; + +export declare const Filler: Plugin; +export interface FillerOptions { + drawTime: 'beforeDatasetDraw' | 'beforeDatasetsDraw'; + propagate: boolean; +} + +export type FillTarget = number | string | { value: number } | 'start' | 'end' | 'origin' | 'stack' | 'shape' | boolean; + +export interface ComplexFillTarget { + /** + * The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries. + */ + target: FillTarget; + /** + * If no color is set, the default color will be the background color of the chart. + */ + above: Color; + /** + * Same as the above. + */ + below: Color; +} + +export interface FillerControllerDatasetOptions { + /** + * Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end + */ + fill: FillTarget | ComplexFillTarget; +} + +export declare const Legend: Plugin; + +export interface LegendItem { + /** + * Label that will be displayed + */ + text: string; + + /** + * Border radius of the legend box + * @since 3.1.0 + */ + borderRadius?: number | BorderRadius; + + /** + * Index of the associated dataset + */ + datasetIndex?: number; + + /** + * Index the associated label in the labels array + */ + index?: number + + /** + * Fill style of the legend box + */ + fillStyle?: Color; + + /** + * Font color for the text + * Defaults to LegendOptions.labels.color + */ + fontColor?: Color; + + /** + * If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect + */ + hidden?: boolean; + + /** + * For box border. + * @see https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap + */ + lineCap?: CanvasLineCap; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash + */ + lineDash?: number[]; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset + */ + lineDashOffset?: number; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin + */ + lineJoin?: CanvasLineJoin; + + /** + * Width of box border + */ + lineWidth?: number; + + /** + * Stroke style of the legend box + */ + strokeStyle?: Color; + + /** + * Point style of the legend box (only used if usePointStyle is true) + */ + pointStyle?: PointStyle; + + /** + * Rotation of the point in degrees (only used if usePointStyle is true) + */ + rotation?: number; + + /** + * Text alignment + */ + textAlign?: TextAlign; +} + +export interface LegendElement extends Element>, LayoutItem { + chart: Chart; + ctx: CanvasRenderingContext2D; + legendItems?: LegendItem[]; + options: LegendOptions; +} + +export interface LegendOptions { + /** + * Is the legend shown? + * @default true + */ + display: boolean; + /** + * Position of the legend. + * @default 'top' + */ + position: LayoutPosition; + /** + * Alignment of the legend. + * @default 'center' + */ + align: Align; + /** + * Maximum height of the legend, in pixels + */ + maxHeight: number; + /** + * Maximum width of the legend, in pixels + */ + maxWidth: number; + /** + * Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use. + * @default true + */ + fullSize: boolean; + /** + * Legend will show datasets in reverse order. + * @default false + */ + reverse: boolean; + /** + * A callback that is called when a click event is Registroed on a label item. + */ + onClick(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + /** + * A callback that is called when a 'mousemove' event is Registroed on top of a label item + */ + onHover(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + /** + * A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item. + */ + onLeave(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + + labels: { + /** + * Width of colored box. + * @default 40 + */ + boxWidth: number; + /** + * Height of the coloured box. + * @default fontSize + */ + boxHeight: number; + /** + * Padding between the color box and the text + * @default 1 + */ + boxPadding: number; + /** + * Color of label + * @see Defaults.color + */ + color: Color; + /** + * Font of label + * @see Defaults.font + */ + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + /** + * Padding between rows of colored boxes. + * @default 10 + */ + padding: number; + /** + * Generates legend items for each thing in the legend. Default implementation returns the text + styling for the color box. See Legend Item for details. + */ + generateLabels(chart: Chart): LegendItem[]; + + /** + * Filters legend items out of the legend. Receives 2 parameters, a Legend Item and the chart data + */ + filter(item: LegendItem, data: ChartData): boolean; + + /** + * Sorts the legend items + */ + sort(a: LegendItem, b: LegendItem, data: ChartData): number; + + /** + * Override point style for the legend. Only applies if usePointStyle is true + */ + pointStyle: PointStyle; + + /** + * Text alignment + */ + textAlign?: TextAlign; + + /** + * Label style will match corresponding point style (size is based on the minimum value between boxWidth and font.size). + * @default false + */ + usePointStyle: boolean; + + /** + * Label borderRadius will match corresponding borderRadius. + * @default false + */ + useBorderRadius: boolean; + + /** + * Override the borderRadius to use. + * @default undefined + */ + borderRadius: number; + }; + /** + * true for rendering the legends from right to left. + */ + rtl: boolean; + /** + * This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the legend, regardless of the css specified on the canvas + * @default canvas' default + */ + textDirection: string; + + title: { + /** + * Is the legend title displayed. + * @default false + */ + display: boolean; + /** + * Color of title + * @see Defaults.color + */ + color: Color; + /** + * see Fonts + */ + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + position: 'center' | 'start' | 'end'; + padding?: number | ChartArea; + /** + * The string title. + */ + text: string; + }; +} + +export declare const SubTitle: Plugin; +export declare const Title: Plugin; + +export interface TitleOptions { + /** + * Alignment of the title. + * @default 'center' + */ + align: Align; + /** + * Is the title shown? + * @default false + */ + display: boolean; + /** + * Position of title + * @default 'top' + */ + position: 'top' | 'left' | 'bottom' | 'right'; + /** + * Color of text + * @see Defaults.color + */ + color: Color; + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + + /** + * Marks that this box should take the full width/height of the canvas (moving other boxes). If set to `false`, places the box above/beside the + * chart area + * @default true + */ + fullSize: boolean; + /** + * Adds padding above and below the title text if a single number is specified. It is also possible to change top and bottom padding separately. + */ + padding: number | { top: number; bottom: number }; + /** + * Title text to display. If specified as an array, text is rendered on multiple lines. + */ + text: string | string[]; +} + +export type TooltipXAlignment = 'left' | 'center' | 'right'; +export type TooltipYAlignment = 'top' | 'center' | 'bottom'; +export interface TooltipLabelStyle { + borderColor: Color; + backgroundColor: Color; + + /** + * Width of border line + * @since 3.1.0 + */ + borderWidth?: number; + + /** + * Border dash + * @since 3.1.0 + */ + borderDash?: [number, number]; + + /** + * Border dash offset + * @since 3.1.0 + */ + borderDashOffset?: number; + + /** + * borderRadius + * @since 3.1.0 + */ + borderRadius?: number | BorderRadius; +} +export interface TooltipModel extends Element> { + readonly chart: Chart; + + // The items that we are rendering in the tooltip. See Tooltip Item Interface section + dataPoints: TooltipItem[]; + + // Positioning + xAlign: TooltipXAlignment; + yAlign: TooltipYAlignment; + + // X and Y properties are the top left of the tooltip + x: number; + y: number; + width: number; + height: number; + // Where the tooltip points to + caretX: number; + caretY: number; + + // Body + // The body lines that need to be rendered + // Each object contains 3 parameters + // before: string[] // lines of text before the line with the color square + // lines: string[]; // lines of text to render as the main item with color square + // after: string[]; // lines of text to render after the main lines + body: { before: string[]; lines: string[]; after: string[] }[]; + // lines of text that appear after the title but before the body + beforeBody: string[]; + // line of text that appear after the body and before the footer + afterBody: string[]; + + // Title + // lines of text that form the title + title: string[]; + + // Footer + // lines of text that form the footer + footer: string[]; + + // Styles to render for each item in body[]. This is the styling of the squares in the tooltip + labelColors: TooltipLabelStyle[]; + labelTextColors: Color[]; + labelPointStyles: { pointStyle: PointStyle; rotation: number }[]; + + // 0 opacity is a hidden tooltip + opacity: number; + + // tooltip options + options: TooltipOptions; + + getActiveElements(): ActiveElement[]; + setActiveElements(active: ActiveDataPoint[], eventPosition: Point): void; +} + +export interface TooltipPosition extends Point { + xAlign?: TooltipXAlignment; + yAlign?: TooltipYAlignment; +} + +export type TooltipPositionerFunction = ( + this: TooltipModel, + items: readonly ActiveElement[], + eventPosition: Point +) => TooltipPosition | false; + +export interface TooltipPositionerMap { + average: TooltipPositionerFunction; + nearest: TooltipPositionerFunction; +} + +export type TooltipPositioner = keyof TooltipPositionerMap; + +export interface Tooltip extends Plugin { + readonly positioners: TooltipPositionerMap; +} + +export declare const Tooltip: Tooltip; + +export interface TooltipCallbacks< + TType extends ChartType, + Model = TooltipModel, + Item = TooltipItem> { + + beforeTitle(this: Model, tooltipItems: Item[]): string | string[] | void; + title(this: Model, tooltipItems: Item[]): string | string[] | void; + afterTitle(this: Model, tooltipItems: Item[]): string | string[] | void; + + beforeBody(this: Model, tooltipItems: Item[]): string | string[] | void; + afterBody(this: Model, tooltipItems: Item[]): string | string[] | void; + + beforeLabel(this: Model, tooltipItem: Item): string | string[] | void; + label(this: Model, tooltipItem: Item): string | string[] | void; + afterLabel(this: Model, tooltipItem: Item): string | string[] | void; + + labelColor(this: Model, tooltipItem: Item): TooltipLabelStyle | void; + labelTextColor(this: Model, tooltipItem: Item): Color | void; + labelPointStyle(this: Model, tooltipItem: Item): { pointStyle: PointStyle; rotation: number } | void; + + beforeFooter(this: Model, tooltipItems: Item[]): string | string[] | void; + footer(this: Model, tooltipItems: Item[]): string | string[] | void; + afterFooter(this: Model, tooltipItems: Item[]): string | string[] | void; +} + +export interface ExtendedPlugin< + TType extends ChartType, + O = AnyObject, + Model = TooltipModel> { + /** + * @desc Called before drawing the `tooltip`. If any plugin returns `false`, + * the tooltip drawing is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Tooltip} args.tooltip - The tooltip. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart tooltip drawing. + */ + beforeTooltipDraw?(chart: Chart, args: { tooltip: Model, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after drawing the `tooltip`. Note that this hook will not + * be called if the tooltip drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Tooltip} args.tooltip - The tooltip. + * @param {object} options - The plugin options. + */ + afterTooltipDraw?(chart: Chart, args: { tooltip: Model }, options: O): void; +} + +export interface ScriptableTooltipContext { + chart: UnionToIntersection>; + tooltip: UnionToIntersection>; + tooltipItems: TooltipItem[]; +} + +export interface TooltipOptions extends CoreInteractionOptions { + /** + * Are on-canvas tooltips enabled? + * @default true + */ + enabled: Scriptable>; + /** + * See external tooltip section. + */ + external(this: TooltipModel, args: { chart: Chart; tooltip: TooltipModel }): void; + /** + * The mode for positioning the tooltip + */ + position: Scriptable> + + /** + * Override the tooltip alignment calculations + */ + xAlign: Scriptable>; + yAlign: Scriptable>; + + /** + * Sort tooltip items. + */ + itemSort: (a: TooltipItem, b: TooltipItem, data: ChartData) => number; + + filter: (e: TooltipItem, index: number, array: TooltipItem[], data: ChartData) => boolean; + + /** + * Background color of the tooltip. + * @default 'rgba(0, 0, 0, 0.8)' + */ + backgroundColor: Scriptable>; + /** + * Padding between the color box and the text. + * @default 1 + */ + boxPadding: number; + /** + * Color of title + * @default '#fff' + */ + titleColor: Scriptable>; + /** + * See Fonts + * @default {weight: 'bold'} + */ + titleFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Spacing to add to top and bottom of each title line. + * @default 2 + */ + titleSpacing: Scriptable>; + /** + * Margin to add on bottom of title section. + * @default 6 + */ + titleMarginBottom: Scriptable>; + /** + * Horizontal alignment of the title text lines. + * @default 'left' + */ + titleAlign: Scriptable>; + /** + * Spacing to add to top and bottom of each tooltip item. + * @default 2 + */ + bodySpacing: Scriptable>; + /** + * Color of body + * @default '#fff' + */ + bodyColor: Scriptable>; + /** + * See Fonts. + * @default {} + */ + bodyFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Horizontal alignment of the body text lines. + * @default 'left' + */ + bodyAlign: Scriptable>; + /** + * Spacing to add to top and bottom of each footer line. + * @default 2 + */ + footerSpacing: Scriptable>; + /** + * Margin to add before drawing the footer. + * @default 6 + */ + footerMarginTop: Scriptable>; + /** + * Color of footer + * @default '#fff' + */ + footerColor: Scriptable>; + /** + * See Fonts + * @default {weight: 'bold'} + */ + footerFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Horizontal alignment of the footer text lines. + * @default 'left' + */ + footerAlign: Scriptable>; + /** + * Padding to add to the tooltip + * @default 6 + */ + padding: Scriptable>; + /** + * Extra distance to move the end of the tooltip arrow away from the tooltip point. + * @default 2 + */ + caretPadding: Scriptable>; + /** + * Size, in px, of the tooltip arrow. + * @default 5 + */ + caretSize: Scriptable>; + /** + * Radius of tooltip corner curves. + * @default 6 + */ + cornerRadius: Scriptable>; + /** + * Color to draw behind the colored boxes when multiple items are in the tooltip. + * @default '#fff' + */ + multiKeyBackground: Scriptable>; + /** + * If true, color boxes are shown in the tooltip. + * @default true + */ + displayColors: Scriptable>; + /** + * Width of the color box if displayColors is true. + * @default bodyFont.size + */ + boxWidth: Scriptable>; + /** + * Height of the color box if displayColors is true. + * @default bodyFont.size + */ + boxHeight: Scriptable>; + /** + * Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight) + * @default false + */ + usePointStyle: Scriptable>; + /** + * Color of the border. + * @default 'rgba(0, 0, 0, 0)' + */ + borderColor: Scriptable>; + /** + * Size of the border. + * @default 0 + */ + borderWidth: Scriptable>; + /** + * true for rendering the legends from right to left. + */ + rtl: Scriptable>; + + /** + * This will force the text direction 'rtl' or 'ltr on the canvas for rendering the tooltips, regardless of the css specified on the canvas + * @default canvas's default + */ + textDirection: Scriptable>; + + animation: AnimationSpec | false; + animations: AnimationsSpec | false; + callbacks: TooltipCallbacks; +} + +export interface TooltipItem { + /** + * The chart the tooltip is being shown on + */ + chart: Chart; + + /** + * Label for the tooltip + */ + label: string; + + /** + * Parsed data values for the given `dataIndex` and `datasetIndex` + */ + parsed: UnionToIntersection>; + + /** + * Raw data values for the given `dataIndex` and `datasetIndex` + */ + raw: unknown; + + /** + * Formatted value for the tooltip + */ + formattedValue: string; + + /** + * The dataset the item comes from + */ + dataset: UnionToIntersection>; + + /** + * Index of the dataset the item comes from + */ + datasetIndex: number; + + /** + * Index of this data item in the dataset + */ + dataIndex: number; + + /** + * The chart element (point, arc, bar, etc.) for this tooltip item + */ + element: Element; +} + +export interface PluginOptionsByType { + decimation: DecimationOptions; + filler: FillerOptions; + legend: LegendOptions; + subtitle: TitleOptions; + title: TitleOptions; + tooltip: TooltipOptions; +} +export interface PluginChartOptions { + plugins: PluginOptionsByType; +} + +export interface BorderOptions { + /** + * @default true + */ + display: boolean + /** + * @default [] + */ + dash: Scriptable; + /** + * @default 0 + */ + dashOffset: Scriptable; + color: Color; + width: number; +} + +export interface GridLineOptions { + /** + * @default true + */ + display: boolean; + /** + * @default false + */ + circular: boolean; + /** + * @default 'rgba(0, 0, 0, 0.1)' + */ + color: ScriptableAndArray; + /** + * @default 1 + */ + lineWidth: ScriptableAndArray; + /** + * @default true + */ + drawOnChartArea: boolean; + /** + * @default true + */ + drawTicks: boolean; + /** + * @default [] + */ + tickBorderDash: number[]; + /** + * @default 0 + */ + tickBorderDashOffset: Scriptable; + /** + * @default 'rgba(0, 0, 0, 0.1)' + */ + tickColor: ScriptableAndArray; + /** + * @default 10 + */ + tickLength: number; + /** + * @default 1 + */ + tickWidth: number; + /** + * @default false + */ + offset: boolean; + /** + * @default 0 + */ + z: number; +} + +export interface TickOptions { + /** + * Color of label backdrops. + * @default 'rgba(255, 255, 255, 0.75)' + */ + backdropColor: Scriptable; + /** + * Padding of tick backdrop. + * @default 2 + */ + backdropPadding: number | ChartArea; + + /** + * Returns the string representation of the tick value as it should be displayed on the chart. See callback. + */ + callback: (this: Scale, tickValue: number | string, index: number, ticks: Tick[]) => string | string[] | number | number[] | null | undefined; + /** + * If true, show tick labels. + * @default true + */ + display: boolean; + /** + * Color of tick + * @see Defaults.color + */ + color: ScriptableAndArray; + /** + * see Fonts + */ + font: ScriptableAndScriptableOptions, ScripTablascaleContext>; + /** + * Sets the offset of the tick labels from the axis + */ + padding: number; + /** + * If true, draw a background behind the tick labels. + * @default false + */ + showLabelBackdrop: Scriptable; + /** + * The color of the stroke around the text. + * @default undefined + */ + textStrokeColor: Scriptable; + /** + * Stroke width around the text. + * @default 0 + */ + textStrokeWidth: Scriptable; + /** + * z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top. + * @default 0 + */ + z: number; + + major: { + /** + * If true, major ticks are generated. A major tick will affect autoskipping and major will be defined on ticks in the scriptable options context. + * @default false + */ + enabled: boolean; + }; +} + +export type CartesianTickOptions = TickOptions & { + /** + * The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length. + * @default ticks.length + */ + sampleSize: number; + /** + * The label alignment + * @default 'center' + */ + align: Align | 'inner'; + /** + * If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what. + * @default true + */ + autoSkip: boolean; + /** + * Padding between the ticks on the horizontal axis when autoSkip is enabled. + * @default 0 + */ + autoSkipPadding: number; + + /** + * How is the label positioned perpendicular to the axis direction. + * This only applies when the rotation is 0 and the axis position is one of "top", "left", "right", or "bottom" + * @default 'near' + */ + crossAlign: 'near' | 'center' | 'far'; + + /** + * Should the defined `min` and `max` values be presented as ticks even if they are not "nice". + * @default: true + */ + includeBounds: boolean; + + /** + * Distance in pixels to offset the label from the centre point of the tick (in the x direction for the x axis, and the y direction for the y axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas + * @default 0 + */ + labelOffset: number; + + /** + * Minimum rotation for tick labels. Note: Only applicable to horizontal scales. + * @default 0 + */ + minRotation: number; + /** + * Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales. + * @default 50 + */ + maxRotation: number; + /** + * Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales. + * @default false + */ + mirror: boolean; + /** + * Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction. + * @default 0 + */ + padding: number; + /** + * Maximum number of ticks and gridlines to show. + * @default 11 + */ + maxTicksLimit: number; +} + +export interface ScriptableCartesianScaleContext { + scale: keyof CartesianScaleTypeRegistry; + type: string; +} + +export interface ScriptableChartContext { + chart: Chart; + type: string; +} + +export interface CartesianScaleOptions extends CoreScaleOptions { + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @since 2.7.0 + * @default 'ticks' + */ + bounds: 'ticks' | 'data'; + + /** + * Position of the axis. + */ + position: 'left' | 'top' | 'right' | 'bottom' | 'center' | { [scale: string]: number }; + + /** + * Stack group. Axes at the same `position` with same `stack` are stacked. + */ + stack?: string; + + /** + * Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group. + * @default 1 + */ + stackWeight?: number; + + /** + * Which type of axis this is. Possible values are: 'x', 'y', 'r'. If not set, this is inferred from the first character of the ID which should be 'x', 'y' or 'r'. + */ + axis: 'x' | 'y' | 'r'; + + /** + * User defined minimum value for the scale, overrides minimum value from data. + */ + min: number; + + /** + * User defined maximum value for the scale, overrides maximum value from data. + */ + max: number; + + /** + * If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default. + * @default false + */ + offset: boolean; + + grid: Partial; + + border: BorderOptions; + + /** Options for the scale title. */ + title: { + /** If true, displays the axis title. */ + display: boolean; + /** Alignment of the axis title. */ + align: Align; + /** The text for the title, e.g. "# of People" or "Response Choices". */ + text: string | string[]; + /** Color of the axis label. */ + color: Color; + /** Information about the axis title font. */ + font: ScriptableAndScriptableOptions, ScriptableCartesianScaleContext>; + /** Padding to apply around scale labels. */ + padding: number | { + /** Padding on the (relative) top side of this axis label. */ + top: number; + /** Padding on the (relative) bottom side of this axis label. */ + bottom: number; + /** This is a shorthand for defining top/bottom to the same values. */ + y: number; + }; + }; + + /** + * If true, data will be comprised between datasets of data + * @default false + */ + stacked?: boolean | 'single'; + + ticks: CartesianTickOptions; +} + +export type CategoryScaleOptions = Omit & { + min: string | number; + max: string | number; + labels: string[] | string[][]; +}; + +export type CategoryScale = Scale +export declare const CategoryScale: ChartComponent & { + prototype: CategoryScale; + new (cfg: AnyObject): CategoryScale; +}; + +export type LinearScaleOptions = CartesianScaleOptions & { + + /** + * if true, scale will include 0 if it is not already included. + * @default true + */ + beginAtZero: boolean; + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMin?: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMax?: number; + /** + * Percentage (string ending with %) or amount (number) for added room in the scale range above and below data. + */ + grace?: string | number; + + ticks: { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + + /** + * if defined and stepSize is not specified, the step size will be rounded to this many decimal places. + */ + precision: number; + + /** + * User defined fixed step size for the scale + */ + stepSize: number; + + /** + * User defined count of ticks + */ + count: number; + }; +}; + +export type LinearScale = Scale +export declare const LinearScale: ChartComponent & { + prototype: LinearScale; + new (cfg: AnyObject): LinearScale; +}; + +export type LogarithmicScaleOptions = CartesianScaleOptions & { + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMin?: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMax?: number; + + ticks: { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + }; +}; + +export type LogarithmicScale = Scale +export declare const LogarithmicScale: ChartComponent & { + prototype: LogarithmicScale; + new (cfg: AnyObject): LogarithmicScale; +}; + +export type TimeScaleOptions = Omit & { + min: string | number; + max: string | number; + suggestedMin: string | number; + suggestedMax: string | number; + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @since 2.7.0 + * @default 'data' + */ + bounds: 'ticks' | 'data'; + + /** + * If true, bar chart offsets are computed with skipped tick sizes + * @since 3.8.0 + * @default false + */ + offsetAfterAutoskip: boolean; + + /** + * options for creating a new adapter instance + */ + adapters: { + date: unknown; + }; + + time: { + /** + * Custom parser for dates. + */ + parser: string | ((v: unknown) => number); + /** + * If defined, dates will be rounded to the start of this unit. See Time Units below for the allowed units. + */ + round: false | TimeUnit; + /** + * If boolean and true and the unit is set to 'week', then the first day of the week will be Monday. Otherwise, it will be Sunday. + * If `number`, the index of the first day of the week (0 - Sunday, 6 - Saturday). + * @default false + */ + isoWeekday: boolean | number; + /** + * Sets how different time units are displayed. + */ + displayFormats: { + [key: string]: string; + }; + /** + * The format string to use for the tooltip. + */ + tooltipFormat: string; + /** + * If defined, will force the unit to be a certain type. See Time Units section below for details. + * @default false + */ + unit: false | TimeUnit; + /** + * The minimum display format to be used for a time unit. + * @default 'millisecond' + */ + minUnit: TimeUnit; + }; + + ticks: { + /** + * Ticks generation input values: + * - 'auto': generates "optimal" ticks based on scale size and time options. + * - 'data': generates ticks from data (including labels from data `{t|x|y}` objects). + * - 'labels': generates ticks from user given `data.labels` values ONLY. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + * @default 'auto' + */ + source: 'labels' | 'auto' | 'data'; + /** + * The number of units between grid lines. + * @default 1 + */ + stepSize: number; + }; +}; + +export interface TimeScale extends Scale { + getDataTimestamps(): number[]; + getLabelTimestamps(): string[]; + normalize(values: number[]): number[]; +} + +export declare const TimeScale: ChartComponent & { + prototype: TimeScale; + new (cfg: AnyObject): TimeScale; +}; + +export type TimeSeriesScale = TimeScale +export declare const TimeSeriesScale: ChartComponent & { + prototype: TimeSeriesScale; + new (cfg: AnyObject): TimeSeriesScale; +}; + +export type RadialTickOptions = TickOptions & { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + + /** + * Maximum number of ticks and gridlines to show. + * @default 11 + */ + maxTicksLimit: number; + + /** + * if defined and stepSize is not specified, the step size will be rounded to this many decimal places. + */ + precision: number; + + /** + * User defined fixed step size for the scale. + */ + stepSize: number; + + /** + * User defined number of ticks + */ + count: number; +} + +export type RadialLinearScaleOptions = CoreScaleOptions & { + animate: boolean; + + startAngle: number; + + angleLines: { + /** + * if true, angle lines are shown. + * @default true + */ + display: boolean; + /** + * Color of angled lines. + * @default 'rgba(0, 0, 0, 0.1)' + */ + color: Scriptable; + /** + * Width of angled lines. + * @default 1 + */ + lineWidth: Scriptable; + /** + * Length and spacing of dashes on angled lines. See MDN. + * @default [] + */ + borderDash: Scriptable; + /** + * Offset for line dashes. See MDN. + * @default 0 + */ + borderDashOffset: Scriptable; + }; + + /** + * if true, scale will include 0 if it is not already included. + * @default false + */ + beginAtZero: boolean; + + grid: Partial; + + /** + * User defined minimum number for the scale, overrides minimum value from data. + */ + min: number; + /** + * User defined maximum number for the scale, overrides maximum value from data. + */ + max: number; + + pointLabels: { + /** + * Background color of the point label. + * @default undefined + */ + backdropColor: Scriptable; + /** + * Padding of label backdrop. + * @default 2 + */ + backdropPadding: Scriptable; + + /** + * Border radius + * @default 0 + * @since 3.8.0 + */ + borderRadius: Scriptable; + + /** + * if true, point labels are shown. + * @default true + */ + display: boolean; + /** + * Color of label + * @see Defaults.color + */ + color: Scriptable; + /** + */ + font: ScriptableAndScriptableOptions, ScripTablascalePointLabelContext>; + + /** + * Callback function to transform data labels to point labels. The default implementation simply returns the current string. + */ + callback: (label: string, index: number) => string | string[] | number | number[]; + + /** + * Padding around the pointLabels + * @default 5 + */ + padding: Scriptable; + + /** + * if true, point labels are centered. + * @default false + */ + centerPointLabels: boolean; + }; + + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMax: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMin: number; + + ticks: RadialTickOptions; +}; + +export interface RadialLinearScale extends Scale { + setCenterPoint(leftMovement: number, rightMovement: number, topMovement: number, bottomMovement: number): void; + getIndexAngle(index: number): number; + getDistanceFromCenterForValue(value: number): number; + getValueForDistanceFromCenter(distance: number): number; + getPointPosition(index: number, distanceFromCenter: number): { x: number; y: number; angle: number }; + getPointPositionForValue(index: number, value: number): { x: number; y: number; angle: number }; + getPointLabelPosition(index: number): ChartArea; + getBasePosition(index: number): { x: number; y: number; angle: number }; +} +export declare const RadialLinearScale: ChartComponent & { + prototype: RadialLinearScale; + new (cfg: AnyObject): RadialLinearScale; +}; + +export interface CartesianScaleTypeRegistry { + linear: { + options: LinearScaleOptions; + }; + logarithmic: { + options: LogarithmicScaleOptions; + }; + category: { + options: CategoryScaleOptions; + }; + time: { + options: TimeScaleOptions; + }; + timeseries: { + options: TimeScaleOptions; + }; +} + +export interface RadialScaleTypeRegistry { + radialLinear: { + options: RadialLinearScaleOptions; + }; +} + +export interface ScaleTypeRegistry extends CartesianScaleTypeRegistry, RadialScaleTypeRegistry { +} + +export type ScaleType = keyof ScaleTypeRegistry; + +export interface CartesianParsedData extends Point { + // Only specified when stacked bars are enabled + _stacks?: { + // Key is the stack ID which is generally the axis ID + [key: string]: { + // Inner key is the datasetIndex + [key: number]: number; + } + } +} + +interface BarParsedData extends CartesianParsedData { + // Only specified if floating bars are show + _custom?: { + barStart: number; + barEnd: number; + start: number; + end: number; + min: number; + max: number; + } +} + +interface BubbleParsedData extends CartesianParsedData { + // The bubble radius value + _custom: number; +} + +interface RadialParsedData { + r: number; +} + +export interface ChartTypeRegistry { + bar: { + chartOptions: BarControllerChartOptions; + datasetOptions: BarControllerDatasetOptions; + defaultDataPoint: number | [number, number] | null; + metaExtensions: {}; + parsedDataType: BarParsedData, + scales: keyof CartesianScaleTypeRegistry; + }; + line: { + chartOptions: LineControllerChartOptions; + datasetOptions: LineControllerDatasetOptions & FillerControllerDatasetOptions; + defaultDataPoint: ScatterDataPoint | number | null; + metaExtensions: {}; + parsedDataType: CartesianParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + scatter: { + chartOptions: ScatterControllerChartOptions; + datasetOptions: ScatterControllerDatasetOptions; + defaultDataPoint: ScatterDataPoint | number | null; + metaExtensions: {}; + parsedDataType: CartesianParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + bubble: { + chartOptions: unknown; + datasetOptions: BubbleControllerDatasetOptions; + defaultDataPoint: BubbleDataPoint; + metaExtensions: {}; + parsedDataType: BubbleParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + pie: { + chartOptions: PieControllerChartOptions; + datasetOptions: PieControllerDatasetOptions; + defaultDataPoint: PieDataPoint; + metaExtensions: PieMetaExtensions; + parsedDataType: number; + scales: keyof CartesianScaleTypeRegistry; + }; + doughnut: { + chartOptions: DoughnutControllerChartOptions; + datasetOptions: DoughnutControllerDatasetOptions; + defaultDataPoint: DoughnutDataPoint; + metaExtensions: DoughnutMetaExtensions; + parsedDataType: number; + scales: keyof CartesianScaleTypeRegistry; + }; + polarArea: { + chartOptions: PolarAreaControllerChartOptions; + datasetOptions: PolarAreaControllerDatasetOptions; + defaultDataPoint: number; + metaExtensions: {}; + parsedDataType: RadialParsedData; + scales: keyof RadialScaleTypeRegistry; + }; + radar: { + chartOptions: RadarControllerChartOptions; + datasetOptions: RadarControllerDatasetOptions & FillerControllerDatasetOptions; + defaultDataPoint: number | null; + metaExtensions: {}; + parsedDataType: RadialParsedData; + scales: keyof RadialScaleTypeRegistry; + }; +} + +export type ChartType = keyof ChartTypeRegistry; + +export type ScaleOptionsByType = + { [key in ScaleType]: { type: key } & ScaleTypeRegistry[key]['options'] }[TScale] +; + +// Convenience alias for creating and manipulating scale options in user code +export type ScaleOptions = DeepPartial>; + +export type DatasetChartOptions = { + [key in TType]: { + datasets: ChartTypeRegistry[key]['datasetOptions']; + }; +}; + +export type ScaleChartOptions = { + scales: { + [key: string]: ScaleOptionsByType; + }; +}; + +export type ChartOptions = DeepPartial< +CoreChartOptions & +ElementChartOptions & +PluginChartOptions & +DatasetChartOptions & +ScaleChartOptions & +ChartTypeRegistry[TType]['chartOptions'] +>; + +export type DefaultDataPoint = DistributiveArray; + +export type ParsedDataType = ChartTypeRegistry[TType]['parsedDataType']; + +export interface ChartDatasetProperties { + type?: TType; + data: TData; +} + +export interface ChartDatasetPropertiesCustomTypesPerDataset { + type: TType; + data: TData; +} + +export type ChartDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint +> = DeepPartial< +{ [key in ChartType]: { type: key } & ChartTypeRegistry[key]['datasetOptions'] }[TType] +> & ChartDatasetProperties; + +export type ChartDatasetCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint +> = DeepPartial< +{ [key in ChartType]: { type: key } & ChartTypeRegistry[key]['datasetOptions'] }[TType] +> & ChartDatasetPropertiesCustomTypesPerDataset; + +/** + * TData represents the data point type. If unspecified, a default is provided + * based on the chart type. + * TLabel represents the label type + */ +export interface ChartData< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + labels?: TLabel[]; + datasets: ChartDataset[]; +} + +export interface ChartDataCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + labels?: TLabel[]; + datasets: ChartDatasetCustomTypesPerDataset[]; +} + +export interface ChartConfiguration< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + type: TType; + data: ChartData; + options?: ChartOptions; + plugins?: Plugin[]; +} + +export interface ChartConfigurationCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + data: ChartDataCustomTypesPerDataset; + options?: ChartOptions; + plugins?: Plugin[]; +} + +export type ChartConfigurationInstance = ChartConfiguration | ChartConfigurationCustomTypesPerDataset & { type?: undefined } diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/layout.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/layout.d.ts new file mode 100644 index 0000000..39ddc13 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/layout.d.ts @@ -0,0 +1,65 @@ +import {ChartArea} from './geometric.js'; + +export type LayoutPosition = 'left' | 'top' | 'right' | 'bottom' | 'center' | 'chartArea' | {[scaleId: string]: number}; + +export interface LayoutItem { + /** + * The position of the item in the chart layout. Possible values are + */ + position: LayoutPosition; + /** + * The weight used to sort the item. Higher weights are further away from the chart area + */ + weight: number; + /** + * if true, and the item is horizontal, then push vertical boxes down + */ + fullSize: boolean; + /** + * Width of item. Must be valid after update() + */ + width: number; + /** + * Height of item. Must be valid after update() + */ + height: number; + /** + * Left edge of the item. Set by layout system and cannot be used in update + */ + left: number; + /** + * Top edge of the item. Set by layout system and cannot be used in update + */ + top: number; + /** + * Right edge of the item. Set by layout system and cannot be used in update + */ + right: number; + /** + * Bottom edge of the item. Set by layout system and cannot be used in update + */ + bottom: number; + + /** + * Called before the layout process starts + */ + beforeLayout?(): void; + /** + * Draws the element + */ + draw(chartArea: ChartArea): void; + /** + * Returns an object with padding on the edges + */ + getPadding?(): ChartArea; + /** + * returns true if the layout item is horizontal (ie. top or bottom) + */ + isHorizontal(): boolean; + /** + * Takes two parameters: width and height. + * @param width + * @param height + */ + update(width: number, height: number, margins?: ChartArea): void; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/animation.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/animation.d.ts new file mode 100644 index 0000000..4189512 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/animation.d.ts @@ -0,0 +1,34 @@ +import {Chart} from './index.js'; +import {AnyObject} from './basic.js'; + +export declare class Animation { + constructor(cfg: AnyObject, target: AnyObject, prop: string, to?: unknown); + active(): boolean; + update(cfg: AnyObject, to: unknown, date: number): void; + cancel(): void; + tick(date: number): void; + readonly _to: unknown; +} + +export interface AnimationEvent { + chart: Chart; + numSteps: number; + initial: boolean; + currentStep: number; +} + +export declare class Animator { + listen(chart: Chart, event: 'complete' | 'progress', cb: (event: AnimationEvent) => void): void; + add(chart: Chart, items: readonly Animation[]): void; + has(chart: Chart): boolean; + start(chart: Chart): void; + running(chart: Chart): boolean; + stop(chart: Chart): void; + remove(chart: Chart): boolean; +} + +export declare class Animations { + constructor(chart: Chart, animations: AnyObject); + configure(animations: AnyObject): void; + update(target: AnyObject, values: AnyObject): undefined | boolean; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/basic.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/basic.d.ts new file mode 100644 index 0000000..1692c9c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/basic.d.ts @@ -0,0 +1,3 @@ + +export type AnyObject = Record; +export type EmptyObject = Record; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/color.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/color.d.ts new file mode 100644 index 0000000..4a68f98 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/color.d.ts @@ -0,0 +1 @@ +export type Color = string | CanvasGradient | CanvasPattern; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/geometric.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/geometric.d.ts new file mode 100644 index 0000000..e8e4f27 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/geometric.d.ts @@ -0,0 +1,39 @@ +export interface ChartArea { + top: number; + left: number; + right: number; + bottom: number; + width: number; + height: number; +} + +export interface Point { + x: number; + y: number; +} + +export type TRBL = { + top: number; + right: number; + bottom: number; + left: number; +} + +export type TRBLCorners = { + topLeft: number; + topRight: number; + bottomLeft: number; + bottomRight: number; +}; + +export type CornerRadius = number | Partial; + +export type RoundedRect = { + x: number; + y: number; + w: number; + h: number; + radius?: CornerRadius +} + +export type Padding = Partial | number | Point; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.canvas.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.canvas.d.ts new file mode 100644 index 0000000..f76a200 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.canvas.d.ts @@ -0,0 +1,135 @@ +import {PointStyle, Scriptable, ScripTablascaleContext} from '../index.js'; +import {Color} from '../color.js'; +import {ChartArea, RoundedRect} from '../geometric.js'; +import {CanvasFontSpec} from '../../helpers/helpers.options.js'; + +export function clearCanvas(canvas: HTMLCanvasElement, ctx?: CanvasRenderingContext2D): void; + +export function clipArea(ctx: CanvasRenderingContext2D, area: ChartArea): void; + +export function unclipArea(ctx: CanvasRenderingContext2D): void; + +export interface DrawPointOptions { + pointStyle: PointStyle; + rotation?: number; + radius: number; + borderWidth: number; +} + +export function drawPoint(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number): void; + +export function drawPointLegend(ctx: CanvasRenderingContext2D, options: DrawPointOptions, x: number, y: number, w: number): void; + +/** + * Converts the given font object into a CSS font string. + * @param font a font object + * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font + */ +export function toFontString(font: { size: number; family: string; style?: string; weight?: string }): string | null; + +export interface RenderTextOpts { + /** + * The fill color of the text. If unset, the existing + * fillStyle property of the canvas is unchanged. + */ + color?: Color; + + /** + * The width of the strikethrough / underline + * @default 2 + */ + decorationWidth?: number; + + /** + * The max width of the text in pixels + */ + maxWidth?: number; + + /** + * A rotation to be applied to the canvas + * This is applied after the translation is applied + */ + rotation?: number; + + /** + * Apply a strikethrough effect to the text + */ + strikethrough?: boolean; + + /** + * The color of the text stroke. If unset, the existing + * strokeStyle property of the context is unchanged + */ + strokeColor?: Color; + + /** + * The text stroke width. If unset, the existing + * lineWidth property of the context is unchanged + */ + strokeWidth?: number; + + /** + * The text alignment to use. If unset, the existing + * textAlign property of the context is unchanged + */ + textAlign?: CanvasTextAlign; + + /** + * The text baseline to use. If unset, the existing + * textBaseline property of the context is unchanged + */ + textBaseline?: CanvasTextBaseline; + + /** + * If specified, a translation to apply to the context + */ + translation?: [number, number]; + + /** + * Underline the text + */ + underline?: boolean; + + /** + * Dimensions for drawing the label backdrop + */ + backdrop?: BackdropOptions; +} + +export interface BackdropOptions { + /** + * Left position of backdrop as pixel + */ + left: number; + + /** + * Top position of backdrop as pixel + */ + top: number; + + /** + * Width of backdrop in pixels + */ + width: number; + + /** + * Height of backdrop in pixels + */ + height: number; + + /** + * Color of label backdrops. + */ + color: Scriptable; +} + +export function renderText( + ctx: CanvasRenderingContext2D, + text: string | string[], + x: number, + y: number, + font: CanvasFontSpec, + opts?: RenderTextOpts +): void; + +export function addRoundedRectPath(ctx: CanvasRenderingContext2D, rect: RoundedRect): void; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.segment.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.segment.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/helpers.segment.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/index.d.ts new file mode 100644 index 0000000..9aa9cf2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/helpers/index.d.ts @@ -0,0 +1,3 @@ +export * from './helpers.canvas.js'; +export * from './helpers.canvas.js'; +export * from './helpers.segment.js'; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/index.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/index.d.ts new file mode 100644 index 0000000..00efe55 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/index.d.ts @@ -0,0 +1,3674 @@ +/* eslint-disable @typescript-eslint/ban-types */ +import {DeepPartial, DistributiveArray, UnionToIntersection} from './utils.js'; + +import {TimeUnit} from '../core/core.adapters.js'; +import PointElement from '../elements/element.point.js'; +import {EasingFunction} from '../helpers/helpers.easing.js'; +import {AnimationEvent} from './animation.js'; +import {AnyObject, EmptyObject} from './basic.js'; +import {Color} from './color.js'; +import Element from '../core/core.element.js'; +import {ChartArea, Padding, Point} from './geometric.js'; +import {LayoutItem, LayoutPosition} from './layout.js'; +import {RenderTextOpts} from './helpers/helpers.canvas.js'; +import {CanvasFontSpec} from '../helpers/helpers.options.js'; + +export {EasingFunction} from '../helpers/helpers.easing.js'; +export {default as ArcElement, ArcProps} from '../elements/element.arc.js'; +export {default as PointElement, PointProps} from '../elements/element.point.js'; +export {Animation, Animations, Animator, AnimationEvent} from './animation.js'; +export {Color} from './color.js'; +export {ChartArea, Point} from './geometric.js'; +export {LayoutItem, LayoutPosition} from './layout.js'; + +export interface ScriptableContext { + active: boolean; + chart: Chart; + dataIndex: number; + dataset: UnionToIntersection>; + datasetIndex: number; + type: string; + mode: string; + parsed: UnionToIntersection>; + raw: unknown; +} + +export interface ScriptableLineSegmentContext { + type: 'segment', + p0: PointElement, + p1: PointElement, + p0DataIndex: number, + p1DataIndex: number, + datasetIndex: number +} + +export type Scriptable = T | ((ctx: TContext, options: AnyObject) => T | undefined); +export type ScriptableOptions = { [P in keyof T]: Scriptable }; +export type ScriptableAndScriptableOptions = Scriptable | ScriptableOptions; +export type ScriptableAndArray = readonly T[] | Scriptable; +export type ScriptableAndArrayOptions = { [P in keyof T]: ScriptableAndArray }; + +export interface ParsingOptions { + /** + * How to parse the dataset. The parsing can be disabled by specifying parsing: false at chart options or dataset. If parsing is disabled, data must be sorted and in the formats the associated chart type and scales use internally. + */ + parsing: + { + [key: string]: string; + } + | false; + + /** + * Chart.js is fastest if you provide data with indices that are unique, sorted, and consistent across datasets and provide the normalized: true option to let Chart.js know that you have done so. + */ + normalized: boolean; +} + +export interface ControllerDatasetOptions extends ParsingOptions { + /** + * The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas. + * @default 'x' + */ + indexAxis: 'x' | 'y'; + /** + * How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: `clip: {left: 5, top: false, right: -2, bottom: 0}` + */ + clip: number | ChartArea | false; + /** + * The label for the dataset which appears in the legend and tooltips. + */ + label: string; + /** + * The drawing order of dataset. Also affects order for stacking, tooltip and legend. + */ + order: number; + + /** + * The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack). + */ + stack: string; + /** + * Configures the visibility state of the dataset. Set it to true, to hide the dataset from the chart. + * @default false + */ + hidden: boolean; +} + +export interface BarControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'bar'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * Percent (0-1) of the available width each bar should be within the category width. 1.0 will take the whole category width and put the bars right next to each other. + * @default 0.9 + */ + barPercentage: number; + /** + * Percent (0-1) of the available width each category should be within the sample width. + * @default 0.8 + */ + categoryPercentage: number; + + /** + * Manually set width of each bar in pixels. If set to 'flex', it computes "optimal" sample widths that globally arrange bars side by side. If not set (default), bars are equally sized based on the smallest interval. + */ + barThickness: number | 'flex'; + + /** + * Set this to ensure that bars are not sized thicker than this. + */ + maxBarThickness: number; + + /** + * Set this to ensure that bars have a minimum length in pixels. + */ + minBarLength: number; + + /** + * Point style for the legend + * @default 'circle; + */ + pointStyle: PointStyle; + + /** + * Should the bars be grouped on index axis + * @default true + */ + grouped: boolean; +} + +export interface BarControllerChartOptions { + /** + * Should null or undefined values be omitted from drawing + */ + skipNull?: boolean; +} + +export type BarController = DatasetController +export declare const BarController: ChartComponent & { + prototype: BarController; + new (chart: Chart, datasetIndex: number): BarController; +}; + +export interface BubbleControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; +} + +export interface BubbleDataPoint extends Point { + /** + * Bubble radius in pixels (not scaled). + */ + r: number; +} + +export type BubbleController = DatasetController +export declare const BubbleController: ChartComponent & { + prototype: BubbleController; + new (chart: Chart, datasetIndex: number): BubbleController; +}; + +export interface LineControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + ScriptableOptions, ScriptableContext<'line'>>, + ScriptableAndArrayOptions>, + ScriptableOptions, ScriptableContext<'line'>>, + ScriptableAndArrayOptions>, + AnimationOptions<'line'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + * @default false + */ + spanGaps: boolean | number; + + showLine: boolean; +} + +export interface LineControllerChartOptions { + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + * @default false + */ + spanGaps: boolean | number; + /** + * If false, the lines between points are not drawn. + * @default true + */ + showLine: boolean; +} + +export type LineController = DatasetController +export declare const LineController: ChartComponent & { + prototype: LineController; + new (chart: Chart, datasetIndex: number): LineController; +}; + +export type ScatterControllerDatasetOptions = LineControllerDatasetOptions; + +export type ScatterDataPoint = Point + +export type ScatterControllerChartOptions = LineControllerChartOptions; + +export type ScatterController = LineController +export declare const ScatterController: ChartComponent & { + prototype: ScatterController; + new (chart: Chart, datasetIndex: number): ScatterController; +}; + +export interface DoughnutControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'doughnut'> { + + /** + * Sweep to allow arcs to cover. + * @default 360 + */ + circumference: number; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * Starting angle to draw this dataset from. + * @default 0 + */ + rotation: number; + + /** + * The relative thickness of the dataset. Providing a value for weight will cause the pie or doughnut dataset to be drawn with a thickness relative to the sum of all the dataset weight values. + * @default 1 + */ + weight: number; + + /** + * Similar to the `offset` option, but applies to all arcs. This can be used to to add spaces + * between arcs + * @default 0 + */ + spacing: number; +} + +export interface DoughnutAnimationOptions { + /** + * If true, the chart will animate in with a rotation animation. This property is in the options.animation object. + * @default true + */ + animateRotate: boolean; + + /** + * If true, will animate scaling the chart from the center outwards. + * @default false + */ + animateScale: boolean; +} + +export interface DoughnutControllerChartOptions { + /** + * Sweep to allow arcs to cover. + * @default 360 + */ + circumference: number; + + /** + * The portion of the chart that is cut out of the middle. ('50%' - for doughnut, 0 - for pie) + * String ending with '%' means percentage, number means pixels. + * @default 50 + */ + cutout: Scriptable>; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * The outer radius of the chart. String ending with '%' means percentage of maximum radius, number means pixels. + * @default '100%' + */ + radius: Scriptable>; + + /** + * Starting angle to draw arcs from. + * @default 0 + */ + rotation: number; + + /** + * Spacing between the arcs + * @default 0 + */ + spacing: number; + + animation: false | DoughnutAnimationOptions; +} + +export type DoughnutDataPoint = number; + +export interface DoughnutController extends DatasetController { + readonly innerRadius: number; + readonly outerRadius: number; + readonly offsetX: number; + readonly offsetY: number; + + calculateTotal(): number; + calculateCircumference(value: number): number; +} + +export declare const DoughnutController: ChartComponent & { + prototype: DoughnutController; + new (chart: Chart, datasetIndex: number): DoughnutController; +}; + +export interface DoughnutMetaExtensions { + total: number; +} + +export type PieControllerDatasetOptions = DoughnutControllerDatasetOptions; +export type PieControllerChartOptions = DoughnutControllerChartOptions; +export type PieAnimationOptions = DoughnutAnimationOptions; + +export type PieDataPoint = DoughnutDataPoint; +export type PieMetaExtensions = DoughnutMetaExtensions; + +export type PieController = DoughnutController +export declare const PieController: ChartComponent & { + prototype: PieController; + new (chart: Chart, datasetIndex: number): PieController; +}; + +export interface PolarAreaControllerDatasetOptions extends DoughnutControllerDatasetOptions { + /** + * Arc angle to cover. - for polar only + * @default circumference / (arc count) + */ + angle: number; +} + +export type PolarAreaAnimationOptions = DoughnutAnimationOptions; + +export interface PolarAreaControllerChartOptions { + /** + * Starting angle to draw arcs for the first item in a dataset. In degrees, 0 is at top. + * @default 0 + */ + startAngle: number; + + animation: false | PolarAreaAnimationOptions; +} + +export interface PolarAreaController extends DoughnutController { + countVisibleElements(): number; +} +export declare const PolarAreaController: ChartComponent & { + prototype: PolarAreaController; + new (chart: Chart, datasetIndex: number): PolarAreaController; +}; + +export interface RadarControllerDatasetOptions + extends ControllerDatasetOptions, + ScriptableAndArrayOptions>, + ScriptableAndArrayOptions>, + AnimationOptions<'radar'> { + /** + * The ID of the x axis to plot this dataset on. + */ + xAxisID: string; + /** + * The ID of the y axis to plot this dataset on. + */ + yAxisID: string; + + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + */ + spanGaps: boolean | number; + + /** + * If false, the line is not drawn for this dataset. + */ + showLine: boolean; +} + +export type RadarControllerChartOptions = LineControllerChartOptions; + +export type RadarController = DatasetController +export declare const RadarController: ChartComponent & { + prototype: RadarController; + new (chart: Chart, datasetIndex: number): RadarController; +}; +interface ChartMetaCommon { + type: string; + controller: DatasetController; + order: number; + + label: string; + index: number; + visible: boolean; + + stack: number; + + indexAxis: 'x' | 'y'; + + data: TElement[]; + dataset?: TDatasetElement; + + hidden: boolean; + + xAxisID?: string; + yAxisID?: string; + rAxisID?: string; + iAxisID: string; + vAxisID: string; + + xScale?: Scale; + yScale?: Scale; + rScale?: Scale; + iScale?: Scale; + vScale?: Scale; + + _sorted: boolean; + _stacked: boolean | 'single'; + _parsed: unknown[]; +} + +export type ChartMeta< + TType extends ChartType = ChartType, + TElement extends Element = Element, + TDatasetElement extends Element = Element, +> = DeepPartial< +{ [key in ChartType]: ChartTypeRegistry[key]['metaExtensions'] }[TType] +> & ChartMetaCommon; + +export interface ActiveDataPoint { + datasetIndex: number; + index: number; +} + +export interface ActiveElement extends ActiveDataPoint { + element: Element; +} + +export declare class Chart< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + readonly platform: BasePlatform; + readonly id: string; + readonly canvas: HTMLCanvasElement; + readonly ctx: CanvasRenderingContext2D; + readonly config: ChartConfigurationInstance; + readonly width: number; + readonly height: number; + readonly aspectRatio: number; + readonly boxes: LayoutItem[]; + readonly currentDevicePixelRatio: number; + readonly chartArea: ChartArea; + readonly scales: { [key: string]: Scale }; + readonly attached: boolean; + + readonly legend?: LegendElement; // Only available if legend plugin is Registroed and enabled + readonly tooltip?: TooltipModel; // Only available if tooltip plugin is Registroed and enabled + + data: ChartData; + options: ChartOptions; + + constructor(item: ChartItem, config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset); + + clear(): this; + stop(): this; + + resize(width?: number, height?: number): void; + ensureScalesHaveIDs(): void; + buildOrUpdateScales(): void; + buildOrUpdateControllers(): void; + reset(): void; + update(mode?: UpdateMode): void; + render(): void; + draw(): void; + + isPointInArea(point: Point): boolean; + getElementsAtEventForMode(e: Event, mode: string, options: InteractionOptions, useFinalPosition: boolean): InteractionItem[]; + + getSortedVisibleDatasetMetas(): ChartMeta[]; + getDatasetMeta(datasetIndex: number): ChartMeta; + getVisibleDatasetCount(): number; + isDatasetVisible(datasetIndex: number): boolean; + setDatasetVisibility(datasetIndex: number, visible: boolean): void; + toggleDataVisibility(index: number): void; + getDataVisibility(index: number): boolean; + hide(datasetIndex: number, dataIndex?: number): void; + show(datasetIndex: number, dataIndex?: number): void; + + getActiveElements(): ActiveElement[]; + setActiveElements(active: ActiveDataPoint[]): void; + + destroy(): void; + toBase64Image(type?: string, quality?: unknown): string; + bindEvents(): void; + unbindEvents(): void; + updateHoverStyle(items: InteractionItem[], mode: 'dataset', enabled: boolean): void; + + notifyPlugins(hook: string, args?: AnyObject): boolean | void; + + isPluginEnabled(pluginId: string): boolean; + + static readonly defaults: Defaults; + static readonly overrides: Overrides; + static readonly version: string; + static readonly instances: { [key: string]: Chart }; + static readonly registry: Registry; + static getChart(key: string | CanvasRenderingContext2D | HTMLCanvasElement): Chart | undefined; + static Registro(...items: ChartComponentLike[]): void; + static unRegistro(...items: ChartComponentLike[]): void; +} + +export declare const Registroables: readonly ChartComponentLike[]; + +export declare type ChartItem = + | string + | CanvasRenderingContext2D + | HTMLCanvasElement + | { canvas: HTMLCanvasElement } + | ArrayLike; + +export declare const enum UpdateModeEnum { + resize = 'resize', + reset = 'reset', + none = 'none', + hide = 'hide', + show = 'show', + normal = 'normal', + active = 'active' +} + +export type UpdateMode = keyof typeof UpdateModeEnum; + +export declare class DatasetController< + TType extends ChartType = ChartType, + TElement extends Element = Element, + TDatasetElement extends Element = Element, + TParsedData = ParsedDataType, +> { + constructor(chart: Chart, datasetIndex: number); + + readonly chart: Chart; + readonly index: number; + readonly _cachedMeta: ChartMeta; + enableOptionSharing: boolean; + // If true, the controller supports the decimation + // plugin. Defaults to `false` for all controllers + // except the LineController + supportsDecimation: boolean; + + linkScales(): void; + getAllParsedValues(scale: Scale): number[]; + protected getLabelAndValue(index: number): { label: string; value: string }; + updateElements(elements: TElement[], start: number, count: number, mode: UpdateMode): void; + update(mode: UpdateMode): void; + updateIndex(datasetIndex: number): void; + protected getMaxOverflow(): boolean | number; + draw(): void; + reset(): void; + getDataset(): ChartDataset; + getMeta(): ChartMeta; + getScaleForId(scaleID: string): Scale | undefined; + configure(): void; + initialize(): void; + addElements(): void; + buildOrUpdateElements(resetNewElements?: boolean): void; + + getStyle(index: number, active: boolean): AnyObject; + protected resolveDatasetElementOptions(mode: UpdateMode): AnyObject; + protected resolveDataElementOptions(index: number, mode: UpdateMode): AnyObject; + /** + * Utility for checking if the options are shared and should be animated separately. + * @protected + */ + protected getSharedOptions(options: AnyObject): undefined | AnyObject; + /** + * Utility for determining if `options` should be included in the updated properties + * @protected + */ + protected includeOptions(mode: UpdateMode, sharedOptions: AnyObject): boolean; + /** + * Utility for updating an element with new properties, using animations when appropriate. + * @protected + */ + + protected updateElement(element: TElement | TDatasetElement, index: number | undefined, properties: AnyObject, mode: UpdateMode): void; + /** + * Utility to animate the shared options, that are potentially affecting multiple elements. + * @protected + */ + + protected updateSharedOptions(sharedOptions: AnyObject, mode: UpdateMode, newOptions: AnyObject): void; + removeHoverStyle(element: TElement, datasetIndex: number, index: number): void; + setHoverStyle(element: TElement, datasetIndex: number, index: number): void; + + parse(start: number, count: number): void; + protected parsePrimitiveData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected parseArrayData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected parseObjectData(meta: ChartMeta, data: AnyObject[], start: number, count: number): AnyObject[]; + protected getParsed(index: number): TParsedData; + protected applyStack(scale: Scale, parsed: unknown[]): number; + protected updateRangeFromParsed( + range: { min: number; max: number }, + scale: Scale, + parsed: unknown[], + stack: boolean | string + ): void; + protected getMinMax(scale: Scale, canStack?: boolean): { min: number; max: number }; +} + +export interface DatasetControllerChartComponent extends ChartComponent { + defaults: { + datasetElementType?: string | null | false; + dataElementType?: string | null | false; + }; +} + +export interface Defaults extends CoreChartOptions, ElementChartOptions, PluginChartOptions { + + scale: ScaleOptionsByType; + scales: { + [key in ScaleType]: ScaleOptionsByType; + }; + + set(values: AnyObject): AnyObject; + set(scope: string, values: AnyObject): AnyObject; + get(scope: string): AnyObject; + + describe(scope: string, values: AnyObject): AnyObject; + override(scope: string, values: AnyObject): AnyObject; + + /** + * Routes the named defaults to fallback to another scope/name. + * This routing is useful when those target values, like defaults.color, are changed runtime. + * If the values would be copied, the runtime change would not take effect. By routing, the + * fallback is evaluated at each access, so its always up to date. + * + * Example: + * + * defaults.route('elements.arc', 'backgroundColor', '', 'color') + * - reads the backgroundColor from defaults.color when undefined locally + * + * @param scope Scope this route applies to. + * @param name Property name that should be routed to different namespace when not defined here. + * @param targetScope The namespace where those properties should be routed to. + * Empty string ('') is the root of defaults. + * @param targetName The target name in the target scope the property should be routed to. + */ + route(scope: string, name: string, targetScope: string, targetName: string): void; +} + +export type Overrides = { + [key in ChartType]: + CoreChartOptions & + ElementChartOptions & + PluginChartOptions & + DatasetChartOptions & + ScaleChartOptions & + ChartTypeRegistry[key]['chartOptions']; +} + +export declare const defaults: Defaults; +export interface InteractionOptions { + axis?: string; + intersect?: boolean; + includeInvisible?: boolean; +} + +export interface InteractionItem { + element: Element; + datasetIndex: number; + index: number; +} + +export type InteractionModeFunction = ( + chart: Chart, + e: ChartEvent, + options: InteractionOptions, + useFinalPosition?: boolean +) => InteractionItem[]; + +export interface InteractionModeMap { + /** + * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item + */ + index: InteractionModeFunction; + + /** + * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something + * If the options.intersect is false, we find the nearest item and return the items in that dataset + */ + dataset: InteractionModeFunction; + /** + * Point mode returns all elements that hit test based on the event position + * of the event + */ + point: InteractionModeFunction; + /** + * nearest mode returns the element closest to the point + */ + nearest: InteractionModeFunction; + /** + * x mode returns the elements that hit-test at the current x coordinate + */ + x: InteractionModeFunction; + /** + * y mode returns the elements that hit-test at the current y coordinate + */ + y: InteractionModeFunction; +} + +export type InteractionMode = keyof InteractionModeMap; + +export declare const Interaction: { + modes: InteractionModeMap; + + /** + * Helper function to select candidate elements for interaction + */ + evaluateInteractionItems( + chart: Chart, + axis: InteractionAxis, + position: Point, + handler: (element: Element & VisualElement, datasetIndex: number, index: number) => void, + intersect?: boolean + ): InteractionItem[]; +}; + +export declare const layouts: { + /** + * Registro a box to a chart. + * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title. + * @param {Chart} chart - the chart to use + * @param {LayoutItem} item - the item to add to be laid out + */ + addBox(chart: Chart, item: LayoutItem): void; + + /** + * Remove a layoutItem from a chart + * @param {Chart} chart - the chart to remove the box from + * @param {LayoutItem} layoutItem - the item to remove from the layout + */ + removeBox(chart: Chart, layoutItem: LayoutItem): void; + + /** + * Sets (or updates) options on the given `item`. + * @param {Chart} chart - the chart in which the item lives (or will be added to) + * @param {LayoutItem} item - the item to configure with the given options + * @param options - the new item options. + */ + configure( + chart: Chart, + item: LayoutItem, + options: { fullSize?: number; position?: LayoutPosition; weight?: number } + ): void; + + /** + * Fits boxes of the given chart into the given size by having each box measure itself + * then running a fitting algorithm + * @param {Chart} chart - the chart + * @param {number} width - the width to fit into + * @param {number} height - the height to fit into + */ + update(chart: Chart, width: number, height: number): void; +}; + +export interface Plugin extends ExtendedPlugin { + id: string; + + /** + * @desc Called when plugin is installed for this chart instance. This hook is also invoked for disabled plugins (options === false). + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + install?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called when a plugin is starting. This happens when chart is created or plugin is enabled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + start?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called when a plugin stopping. This happens when chart is destroyed or plugin is disabled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + stop?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before initializing `chart`. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeInit?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called after `chart` has been initialized and before the first update. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterInit?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before updating `chart`. If any plugin returns `false`, the update + * is cancelled (and thus subsequent render(s)) until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart update. + */ + beforeUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after `chart` has been updated and before rendering. Note that this + * hook will not be called if the chart update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode + * @param {object} options - The plugin options. + */ + afterUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): void; + /** + * @desc Called during the update process, before any chart elements have been created. + * This can be used for data decimation by changing the data array inside a dataset. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeElementsUpdate?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called during chart reset + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since version 3.0.0 + */ + reset?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before updating the `chart` datasets. If any plugin returns `false`, + * the datasets update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @returns {boolean} false to cancel the datasets update. + * @since version 2.1.5 + */ + beforeDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets have been updated. Note that this hook + * will not be called if the datasets update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @since version 2.1.5 + */ + afterDatasetsUpdate?(chart: Chart, args: { mode: UpdateMode, cancelable: true }, options: O): void; + /** + * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin + * returns `false`, the datasets update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note + * that this hook will not be called if the datasets update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {UpdateMode} args.mode - The update mode. + * @param {object} options - The plugin options. + */ + afterDatasetUpdate?(chart: Chart, args: { index: number; meta: ChartMeta, mode: UpdateMode, cancelable: false }, options: O): void; + /** + * @desc Called before laying out `chart`. If any plugin returns `false`, + * the layout update is cancelled until another `update` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart layout. + */ + beforeLayout?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called before scale data limits are calculated. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + beforeDataLimits?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after scale data limits are calculated. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + afterDataLimits?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called before scale builds its ticks. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + beforeBuildTicks?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after scale has build its ticks. This hook is called separately for each scale in the chart. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Scale} args.scale - The scale. + * @param {object} options - The plugin options. + */ + afterBuildTicks?(chart: Chart, args: { scale: Scale }, options: O): void; + /** + * @desc Called after the `chart` has been laid out. Note that this hook will not + * be called if the layout update has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterLayout?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before rendering `chart`. If any plugin returns `false`, + * the rendering is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart rendering. + */ + beforeRender?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` has been fully rendered (and animation completed). Note + * that this hook will not be called if the rendering has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterRender?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before drawing `chart` at every animation frame. If any plugin returns `false`, + * the frame drawing is cancelled untilanother `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart drawing. + */ + beforeDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` has been drawn. Note that this hook will not be called + * if the drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDraw?(chart: Chart, args: EmptyObject, options: O): void; + /** + * @desc Called before drawing the `chart` datasets. If any plugin returns `false`, + * the datasets drawing is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetsDraw?(chart: Chart, args: { cancelable: true }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets have been drawn. Note that this hook + * will not be called if the datasets drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDatasetsDraw?(chart: Chart, args: EmptyObject, options: O, cancelable: false): void; + /** + * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets + * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing + * is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart datasets drawing. + */ + beforeDatasetDraw?(chart: Chart, args: { index: number; meta: ChartMeta }, options: O): boolean | void; + /** + * @desc Called after the `chart` datasets at the given `args.index` have been drawn + * (datasets are drawn in the reverse order). Note that this hook will not be called + * if the datasets drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.index - The dataset index. + * @param {object} args.meta - The dataset metadata. + * @param {object} options - The plugin options. + */ + afterDatasetDraw?(chart: Chart, args: { index: number; meta: ChartMeta }, options: O): void; + /** + * @desc Called before processing the specified `event`. If any plugin returns `false`, + * the event will be discarded. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {ChartEvent} args.event - The event object. + * @param {boolean} args.replay - True if this event is replayed from `Chart.update` + * @param {boolean} args.inChartArea - The event position is inside chartArea + * @param {object} options - The plugin options. + */ + beforeEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, cancelable: true, inChartArea: boolean }, options: O): boolean | void; + /** + * @desc Called after the `event` has been consumed. Note that this hook + * will not be called if the `event` has been previously discarded. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {ChartEvent} args.event - The event object. + * @param {boolean} args.replay - True if this event is replayed from `Chart.update` + * @param {boolean} args.inChartArea - The event position is inside chartArea + * @param {boolean} [args.changed] - Set to true if the plugin needs a render. Should only be changed to true, because this args object is passed through all plugins. + * @param {object} options - The plugin options. + */ + afterEvent?(chart: Chart, args: { event: ChartEvent, replay: boolean, changed?: boolean, cancelable: false, inChartArea: boolean }, options: O): void; + /** + * @desc Called after the chart as been resized. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {number} args.size - The new canvas display size (eq. canvas.style width & height). + * @param {object} options - The plugin options. + */ + resize?(chart: Chart, args: { size: { width: number, height: number } }, options: O): void; + /** + * Called before the chart is being destroyed. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + beforeDestroy?(chart: Chart, args: EmptyObject, options: O): void; + /** + * Called after the chart has been destroyed. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + */ + afterDestroy?(chart: Chart, args: EmptyObject, options: O): void; + /** + * Called after chart is destroyed on all plugins that were installed for that chart. This hook is also invoked for disabled plugins (options === false). + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {object} options - The plugin options. + * @since 3.0.0 + */ + uninstall?(chart: Chart, args: EmptyObject, options: O): void; + + /** + * Default options used in the plugin + */ + defaults?: Partial; +} + +export declare type ChartComponentLike = ChartComponent | ChartComponent[] | { [key: string]: ChartComponent } | Plugin | Plugin[]; + +/** + * Please use the module's default export which provides a singleton instance + * Note: class is exported for typedoc + */ +export interface Registry { + readonly controllers: TypedRegistry; + readonly elements: TypedRegistry; + readonly plugins: TypedRegistry; + readonly scales: TypedRegistry; + + add(...args: ChartComponentLike[]): void; + remove(...args: ChartComponentLike[]): void; + + addControllers(...args: ChartComponentLike[]): void; + addElements(...args: ChartComponentLike[]): void; + addPlugins(...args: ChartComponentLike[]): void; + addScales(...args: ChartComponentLike[]): void; + + getController(id: string): DatasetController | undefined; + getElement(id: string): Element | undefined; + getPlugin(id: string): Plugin | undefined; + getScale(id: string): Scale | undefined; +} + +export declare const registry: Registry; + +export interface Tick { + value: number; + label?: string | string[]; + major?: boolean; +} + +export interface CoreScaleOptions { + /** + * Controls the axis global visibility (visible when true, hidden when false). When display: 'auto', the axis is visible only if at least one associated dataset is visible. + * @default true + */ + display: boolean | 'auto'; + /** + * Align pixel values to device pixels + */ + alignToPixels: boolean; + /** + * Reverse the scale. + * @default false + */ + reverse: boolean; + /** + * The weight used to sort the axis. Higher weights are further away from the chart area. + * @default true + */ + weight: number; + /** + * Callback called before the update process starts. + */ + beforeUpdate(axis: Scale): void; + /** + * Callback that runs before dimensions are set. + */ + beforeSetDimensions(axis: Scale): void; + /** + * Callback that runs after dimensions are set. + */ + afterSetDimensions(axis: Scale): void; + /** + * Callback that runs before data limits are determined. + */ + beforeDataLimits(axis: Scale): void; + /** + * Callback that runs after data limits are determined. + */ + afterDataLimits(axis: Scale): void; + /** + * Callback that runs before ticks are created. + */ + beforeBuildTicks(axis: Scale): void; + /** + * Callback that runs after ticks are created. Useful for filtering ticks. + */ + afterBuildTicks(axis: Scale): void; + /** + * Callback that runs before ticks are converted into strings. + */ + beforeTickToLabelConversion(axis: Scale): void; + /** + * Callback that runs after ticks are converted into strings. + */ + afterTickToLabelConversion(axis: Scale): void; + /** + * Callback that runs before tick rotation is determined. + */ + beforeCalculateLabelRotation(axis: Scale): void; + /** + * Callback that runs after tick rotation is determined. + */ + afterCalculateLabelRotation(axis: Scale): void; + /** + * Callback that runs before the scale fits to the canvas. + */ + beforeFit(axis: Scale): void; + /** + * Callback that runs after the scale fits to the canvas. + */ + afterFit(axis: Scale): void; + /** + * Callback that runs at the end of the update process. + */ + afterUpdate(axis: Scale): void; +} + +export interface Scale extends Element, LayoutItem { + readonly id: string; + readonly type: string; + readonly ctx: CanvasRenderingContext2D; + readonly chart: Chart; + + maxWidth: number; + maxHeight: number; + + paddingTop: number; + paddingBottom: number; + paddingLeft: number; + paddingRight: number; + + axis: string; + labelRotation: number; + min: number; + max: number; + ticks: Tick[]; + getMatchingVisibleMetas(type?: string): ChartMeta[]; + + drawTitle(chartArea: ChartArea): void; + drawLabels(chartArea: ChartArea): void; + drawGrid(chartArea: ChartArea): void; + + /** + * @param {number} pixel + * @return {number} + */ + getDecimalForPixel(pixel: number): number; + /** + * Utility for getting the pixel location of a percentage of scale + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} decimal + * @return {number} + */ + getPixelForDecimal(decimal: number): number; + /** + * Returns the location of the tick at the given index + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} index + * @return {number} + */ + getPixelForTick(index: number): number; + /** + * Used to get the label to display in the tooltip for the given value + * @param {*} value + * @return {string} + */ + getLabelForValue(value: number): string; + + /** + * Returns the grid line width at given value + */ + getLineWidthForValue(value: number): number; + + /** + * Returns the location of the given data point. Value can either be an index or a numerical value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {*} value + * @param {number} [index] + * @return {number} + */ + getPixelForValue(value: number, index?: number): number; + + /** + * Used to get the data value from a given pixel. This is the inverse of getPixelForValue + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @param {number} pixel + * @return {*} + */ + getValueForPixel(pixel: number): number | undefined; + + getBaseValue(): number; + /** + * Returns the pixel for the minimum chart value + * The coordinate (0, 0) is at the upper-left corner of the canvas + * @return {number} + */ + getBasePixel(): number; + + init(options: O): void; + parse(raw: unknown, index: number): unknown; + getUserBounds(): { min: number; max: number; minDefined: boolean; maxDefined: boolean }; + getMinMax(canStack: boolean): { min: number; max: number }; + getTicks(): Tick[]; + getLabels(): string[]; + getLabelItems(chartArea?: ChartArea): LabelItem[]; + beforeUpdate(): void; + configure(): void; + afterUpdate(): void; + beforeSetDimensions(): void; + setDimensions(): void; + afterSetDimensions(): void; + beforeDataLimits(): void; + determineDataLimits(): void; + afterDataLimits(): void; + beforeBuildTicks(): void; + buildTicks(): Tick[]; + afterBuildTicks(): void; + beforeTickToLabelConversion(): void; + generateTickLabels(ticks: Tick[]): void; + afterTickToLabelConversion(): void; + beforeCalculateLabelRotation(): void; + calculateLabelRotation(): void; + afterCalculateLabelRotation(): void; + beforeFit(): void; + fit(): void; + afterFit(): void; + + isFullSize(): boolean; +} +export declare class Scale { + constructor(cfg: {id: string, type: string, ctx: CanvasRenderingContext2D, chart: Chart}); +} + +export interface ScripTablascaleContext { + chart: Chart; + scale: Scale; + index: number; + tick: Tick; +} + +export interface ScripTablascalePointLabelContext { + chart: Chart; + scale: Scale; + index: number; + label: string; + type: string; +} + +export interface LabelItem { + label: string | string[]; + font: CanvasFontSpec; + textOffset: number; + options: RenderTextOpts; +} + +export declare const Ticks: { + formatters: { + /** + * Formatter for value labels + * @param value the value to display + * @return {string|string[]} the label to display + */ + values(value: unknown): string | string[]; + /** + * Formatter for numeric ticks + * @param tickValue the value to be formatted + * @param index the position of the tickValue parameter in the ticks array + * @param ticks the list of ticks being converted + * @return string representation of the tickValue parameter + */ + numeric(tickValue: number, index: number, ticks: { value: number }[]): string; + /** + * Formatter for logarithmic ticks + * @param tickValue the value to be formatted + * @param index the position of the tickValue parameter in the ticks array + * @param ticks the list of ticks being converted + * @return string representation of the tickValue parameter + */ + logarithmic(tickValue: number, index: number, ticks: { value: number }[]): string; + }; +}; + +export interface TypedRegistry { + /** + * @param {ChartComponent} item + * @returns {string} The scope where items defaults were Registroed to. + */ + Registro(item: ChartComponent): string; + get(id: string): T | undefined; + unRegistro(item: ChartComponent): void; +} + +export interface ChartEvent { + type: + | 'contextmenu' + | 'mouseenter' + | 'mousedown' + | 'mousemove' + | 'mouseup' + | 'mouseout' + | 'click' + | 'dblclick' + | 'keydown' + | 'keypress' + | 'keyup' + | 'resize'; + native: Event | null; + x: number | null; + y: number | null; +} +export interface ChartComponent { + id: string; + defaults?: AnyObject; + defaultRoutes?: { [property: string]: string }; + + beforeRegistro?(): void; + afterRegistro?(): void; + beforeUnRegistro?(): void; + afterUnRegistro?(): void; +} + +export type InteractionAxis = 'x' | 'y' | 'xy' | 'r'; + +export interface CoreInteractionOptions { + /** + * Sets which elements appear in the tooltip. See Interaction Modes for details. + * @default 'nearest' + */ + mode: InteractionMode; + /** + * if true, the hover mode only applies when the mouse position intersects an item on the chart. + * @default true + */ + intersect: boolean; + + /** + * Defines which directions are used in calculating distances. Defaults to 'x' for 'index' mode and 'xy' in dataset and 'nearest' modes. + */ + axis: InteractionAxis; + + /** + * if true, the invisible points that are outside of the chart area will also be included when evaluating interactions. + * @default false + */ + includeInvisible: boolean; +} + +export interface CoreChartOptions extends ParsingOptions, AnimationOptions { + + datasets: { + [key in ChartType]: ChartTypeRegistry[key]['datasetOptions'] + } + + /** + * The base axis of the chart. 'x' for vertical Graficas and 'y' for horizontal Graficas. + * @default 'x' + */ + indexAxis: 'x' | 'y'; + + /** + * How to clip relative to chartArea. Positive value allows overflow, negative value clips that many pixels inside chartArea. 0 = clip at chartArea. Clipping can also be configured per side: `clip: {left: 5, top: false, right: -2, bottom: 0}` + */ + clip: number | ChartArea | false; + + /** + * base color + * @see Defaults.color + */ + color: Scriptable>; + /** + * base background color + * @see Defaults.backgroundColor + */ + backgroundColor: Scriptable>; + /** + * base border color + * @see Defaults.borderColor + */ + borderColor: Scriptable>; + /** + * base font + * @see Defaults.font + */ + font: Partial; + /** + * Resizes the chart canvas when its container does (important note...). + * @default true + */ + responsive: boolean; + /** + * Maintain the original canvas aspect ratio (width / height) when resizing. + * @default true + */ + maintainAspectRatio: boolean; + /** + * Delay the resize update by give amount of milliseconds. This can ease the resize process by debouncing update of the elements. + * @default 0 + */ + resizeDelay: number; + + /** + * Canvas aspect ratio (i.e. width / height, a value of 1 representing a square canvas). Note that this option is ignored if the height is explicitly defined either as attribute or via the style. + * @default 2 + */ + aspectRatio: number; + + /** + * Locale used for number formatting (using `Intl.NumberFormat`). + * @default user's browser setting + */ + locale: string; + + /** + * Called when a resize occurs. Gets passed two arguments: the chart instance and the new size. + */ + onResize(chart: Chart, size: { width: number; height: number }): void; + + /** + * Override the window's default devicePixelRatio. + * @default window.devicePixelRatio + */ + devicePixelRatio: number; + + interaction: CoreInteractionOptions; + + hover: CoreInteractionOptions; + + /** + * The events option defines the browser events that the chart should listen to for tooltips and hovering. + * @default ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'] + */ + events: (keyof HTMLElementEventMap)[] + + /** + * Called when any of the events fire. Passed the event, an array of active elements (bars, points, etc), and the chart. + */ + onHover(event: ChartEvent, elements: ActiveElement[], chart: Chart): void; + + /** + * Called if the event is of type 'mouseup' or 'click'. Passed the event, an array of active elements, and the chart. + */ + onClick(event: ChartEvent, elements: ActiveElement[], chart: Chart): void; + + layout: Partial<{ + autoPadding: boolean; + padding: Scriptable>; + }>; +} + +export type AnimationSpec = { + /** + * The number of milliseconds an animation takes. + * @default 1000 + */ + duration?: Scriptable>; + /** + * Easing function to use + * @default 'easeOutQuart' + */ + easing?: Scriptable>; + + /** + * Delay before starting the animations. + * @default 0 + */ + delay?: Scriptable>; + + /** + * If set to true, the animations loop endlessly. + * @default false + */ + loop?: Scriptable>; +} + +export type AnimationsSpec = { + [name: string]: false | AnimationSpec & { + properties: string[]; + + /** + * Type of property, determines the interpolator used. Possible values: 'number', 'color' and 'boolean'. Only really needed for 'color', because typeof does not get that right. + */ + type: 'color' | 'number' | 'boolean'; + + fn: (from: T, to: T, factor: number) => T; + + /** + * Start value for the animation. Current value is used when undefined + */ + from: Scriptable>; + /** + * + */ + to: Scriptable>; + } +} + +export type TransitionSpec = { + animation: AnimationSpec; + animations: AnimationsSpec; +} + +export type TransitionsSpec = { + [mode: string]: TransitionSpec +} + +export type AnimationOptions = { + animation: false | AnimationSpec & { + /** + * Callback called on each step of an animation. + */ + onProgress?: (this: Chart, event: AnimationEvent) => void; + /** + * Callback called when all animations are completed. + */ + onComplete?: (this: Chart, event: AnimationEvent) => void; + }; + animations: AnimationsSpec; + transitions: TransitionsSpec; +}; + +export interface FontSpec { + /** + * Default font family for all text, follows CSS font-family options. + * @default "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" + */ + family: string; + /** + * Default font size (in px) for text. Does not apply to radialLinear scale point labels. + * @default 12 + */ + size: number; + /** + * Default font style. Does not apply to tooltip title or footer. Does not apply to chart title. Follows CSS font-style options (i.e. normal, italic, oblique, initial, inherit) + * @default 'normal' + */ + style: 'normal' | 'italic' | 'oblique' | 'initial' | 'inherit'; + /** + * Default font weight (boldness). (see MDN). + */ + weight: string | null; + /** + * Height of an individual line of text (see MDN). + * @default 1.2 + */ + lineHeight: number | string; +} + +export type TextAlign = 'left' | 'center' | 'right'; +export type Align = 'start' | 'center' | 'end'; + +export interface VisualElement { + draw(ctx: CanvasRenderingContext2D, area?: ChartArea): void; + inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean): boolean; + inXRange(mouseX: number, useFinalPosition?: boolean): boolean; + inYRange(mouseY: number, useFinalPosition?: boolean): boolean; + getCenterPoint(useFinalPosition?: boolean): Point; + getRange?(axis: 'x' | 'y'): number; +} + +export interface CommonElementOptions { + borderWidth: number; + borderColor: Color; + backgroundColor: Color; +} + +export interface CommonHoverOptions { + hoverBorderWidth: number; + hoverBorderColor: Color; + hoverBackgroundColor: Color; +} + +export interface Segment { + start: number; + end: number; + loop: boolean; +} + +export interface ArcBorderRadius { + outerStart: number; + outerEnd: number; + innerStart: number; + innerEnd: number; +} + +export interface ArcOptions extends CommonElementOptions { + /** + * Arc stroke alignment. + */ + borderAlign: 'center' | 'inner'; + + /** + * Line join style. See MDN. Default is 'round' when `borderAlign` is 'inner', else 'bevel'. + */ + borderJoinStyle: CanvasLineJoin; + + /** + * Sets the border radius for arcs + * @default 0 + */ + borderRadius: number | ArcBorderRadius; + + /** + * Arc offset (in pixels). + */ + offset: number; + + /** + * If false, Arc will be flat. + * @default true + */ + circular: boolean; + + /** + * Spacing between arcs + */ + spacing: number +} + +export interface ArcHoverOptions extends CommonHoverOptions { + hoverOffset: number; +} + +export interface LineProps { + points: Point[] +} + +export interface LineOptions extends CommonElementOptions { + /** + * Line cap style. See MDN. + * @default 'butt' + */ + borderCapStyle: CanvasLineCap; + /** + * Line dash. See MDN. + * @default [] + */ + borderDash: number[]; + /** + * Line dash offset. See MDN. + * @default 0.0 + */ + borderDashOffset: number; + /** + * Line join style. See MDN. + * @default 'miter' + */ + borderJoinStyle: CanvasLineJoin; + /** + * true to keep Bézier control inside the chart, false for no restriction. + * @default true + */ + capBezierPoints: boolean; + /** + * Interpolation mode to apply. + * @default 'default' + */ + cubicInterpolationMode: 'default' | 'monotone'; + /** + * Bézier curve tension (0 for no Bézier curves). + * @default 0 + */ + tension: number; + /** + * true to show the line as a stepped line (tension will be ignored). + * @default false + */ + stepped: 'before' | 'after' | 'middle' | boolean; + /** + * Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end + */ + fill: FillTarget | ComplexFillTarget; + /** + * If true, lines will be drawn between points with no or null data. If false, points with NaN data will create a break in the line. Can also be a number specifying the maximum gap length to span. The unit of the value depends on the scale used. + */ + spanGaps: boolean | number; + + segment: { + backgroundColor: Scriptable, + borderColor: Scriptable, + borderCapStyle: Scriptable; + borderDash: Scriptable; + borderDashOffset: Scriptable; + borderJoinStyle: Scriptable; + borderWidth: Scriptable; + }; +} + +export interface LineHoverOptions extends CommonHoverOptions { + hoverBorderCapStyle: CanvasLineCap; + hoverBorderDash: number[]; + hoverBorderDashOffset: number; + hoverBorderJoinStyle: CanvasLineJoin; +} + +export interface LineElement + extends Element, + VisualElement { + updateControlPoints(chartArea: ChartArea, indexAxis?: 'x' | 'y'): void; + points: Point[]; + readonly segments: Segment[]; + first(): Point | false; + last(): Point | false; + interpolate(point: Point, property: 'x' | 'y'): undefined | Point | Point[]; + pathSegment(ctx: CanvasRenderingContext2D, segment: Segment, params: AnyObject): undefined | boolean; + path(ctx: CanvasRenderingContext2D): boolean; +} + +export declare const LineElement: ChartComponent & { + prototype: LineElement; + new (cfg: AnyObject): LineElement; +}; + +export type PointStyle = + | 'circle' + | 'cross' + | 'crossRot' + | 'dash' + | 'line' + | 'rect' + | 'rectRounded' + | 'rectRot' + | 'star' + | 'triangle' + | false + | HTMLImageElement + | HTMLCanvasElement; + +export interface PointOptions extends CommonElementOptions { + /** + * Point radius + * @default 3 + */ + radius: number; + /** + * Extra radius added to point radius for hit detection. + * @default 1 + */ + hitRadius: number; + /** + * Point style + * @default 'circle; + */ + pointStyle: PointStyle; + /** + * Point rotation (in degrees). + * @default 0 + */ + rotation: number; + /** + * Draw the active elements over the other elements of the dataset, + * @default true + */ + drawActiveElementsOnTop: boolean; +} + +export interface PointHoverOptions extends CommonHoverOptions { + /** + * Point radius when hovered. + * @default 4 + */ + hoverRadius: number; +} + +export interface PointPrefixedOptions { + /** + * The fill color for points. + */ + pointBackgroundColor: Color; + /** + * The border color for points. + */ + pointBorderColor: Color; + /** + * The width of the point border in pixels. + */ + pointBorderWidth: number; + /** + * The pixel size of the non-displayed point that reacts to mouse events. + */ + pointHitRadius: number; + /** + * The radius of the point shape. If set to 0, the point is not rendered. + */ + pointRadius: number; + /** + * The rotation of the point in degrees. + */ + pointRotation: number; + /** + * Style of the point. + */ + pointStyle: PointStyle; +} + +export interface PointPrefixedHoverOptions { + /** + * Point background color when hovered. + */ + pointHoverBackgroundColor: Color; + /** + * Point border color when hovered. + */ + pointHoverBorderColor: Color; + /** + * Border width of point when hovered. + */ + pointHoverBorderWidth: number; + /** + * The radius of the point when hovered. + */ + pointHoverRadius: number; +} + +export interface BarProps extends Point { + base: number; + horizontal: boolean; + width: number; + height: number; +} + +export interface BarOptions extends Omit { + /** + * The base value for the bar in data units along the value axis. + */ + base: number; + + /** + * Skipped (excluded) border: 'start', 'end', 'left', 'right', 'bottom', 'top', 'middle', false (none) or true (all). + * @default 'start' + */ + borderSkipped: 'start' | 'end' | 'left' | 'right' | 'bottom' | 'top' | 'middle' | boolean; + + /** + * Border radius + * @default 0 + */ + borderRadius: number | BorderRadius; + + /** + * Amount to inflate the rectangle(s). This can be used to hide artifacts between bars. + * Unit is pixels. 'auto' translates to 0.33 pixels when barPercentage * categoryPercentage is 1, else 0. + * @default 'auto' + */ + inflateAmount: number | 'auto'; + + /** + * Width of the border, number for all sides, object to specify width for each side specifically + * @default 0 + */ + borderWidth: number | { top?: number, right?: number, bottom?: number, left?: number }; +} + +export interface BorderRadius { + topLeft: number; + topRight: number; + bottomLeft: number; + bottomRight: number; +} + +export interface BarHoverOptions extends CommonHoverOptions { + hoverBorderRadius: number | BorderRadius; +} + +export interface BarElement< + T extends BarProps = BarProps, + O extends BarOptions = BarOptions +> extends Element, VisualElement {} + +export declare const BarElement: ChartComponent & { + prototype: BarElement; + new (cfg: AnyObject): BarElement; +}; + +export interface ElementOptionsByType { + arc: ScriptableAndArrayOptions>; + bar: ScriptableAndArrayOptions>; + line: ScriptableAndArrayOptions>; + point: ScriptableAndArrayOptions>; +} + +export type ElementChartOptions = { + elements: ElementOptionsByType +}; + +export declare class BasePlatform { + /** + * Called at chart construction time, returns a context2d instance implementing + * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}. + * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific) + * @param options - The chart options + */ + acquireContext( + canvas: HTMLCanvasElement, + options?: CanvasRenderingContext2DSettings + ): CanvasRenderingContext2D | null; + /** + * Called at chart destruction time, releases any resources associated to the context + * previously returned by the acquireContext() method. + * @param {CanvasRenderingContext2D} context - The context2d instance + * @returns {boolean} true if the method succeeded, else false + */ + releaseContext(context: CanvasRenderingContext2D): boolean; + /** + * Registros the specified listener on the given chart. + * @param {Chart} chart - Chart from which to listen for event + * @param {string} type - The ({@link ChartEvent}) type to listen for + * @param listener - Receives a notification (an object that implements + * the {@link ChartEvent} interface) when an event of the specified type occurs. + */ + addEventListener(chart: Chart, type: string, listener: (e: ChartEvent) => void): void; + /** + * Removes the specified listener previously Registroed with addEventListener. + * @param {Chart} chart - Chart from which to remove the listener + * @param {string} type - The ({@link ChartEvent}) type to remove + * @param listener - The listener function to remove from the event target. + */ + removeEventListener(chart: Chart, type: string, listener: (e: ChartEvent) => void): void; + /** + * @returns {number} the current devicePixelRatio of the device this platform is connected to. + */ + getDevicePixelRatio(): number; + /** + * @param {HTMLCanvasElement} canvas - The canvas for which to calculate the maximum size + * @param {number} [width] - Parent element's content width + * @param {number} [height] - Parent element's content height + * @param {number} [aspectRatio] - The aspect ratio to maintain + * @returns { width: number, height: number } the maximum size available. + */ + getMaximumSize(canvas: HTMLCanvasElement, width?: number, height?: number, aspectRatio?: number): { width: number, height: number }; + /** + * @param {HTMLCanvasElement} canvas + * @returns {boolean} true if the canvas is attached to the platform, false if not. + */ + isAttached(canvas: HTMLCanvasElement): boolean; + /** + * Updates config with platform specific requirements + * @param {ChartConfiguration | ChartConfigurationCustomTypes} config + */ + updateConfig(config: ChartConfiguration | ChartConfigurationCustomTypesPerDataset): void; +} + +export declare class BasicPlatform extends BasePlatform {} +export declare class DomPlatform extends BasePlatform {} + +export declare const Decimation: Plugin; + +export declare const enum DecimationAlgorithm { + lttb = 'lttb', + minmax = 'min-max', +} +interface BaseDecimationOptions { + enabled: boolean; + threshold?: number; +} + +interface LttbDecimationOptions extends BaseDecimationOptions { + algorithm: DecimationAlgorithm.lttb | 'lttb'; + samples?: number; +} + +interface MinMaxDecimationOptions extends BaseDecimationOptions { + algorithm: DecimationAlgorithm.minmax | 'min-max'; +} + +export type DecimationOptions = LttbDecimationOptions | MinMaxDecimationOptions; + +export declare const Filler: Plugin; +export interface FillerOptions { + drawTime: 'beforeDatasetDraw' | 'beforeDatasetsDraw'; + propagate: boolean; +} + +export type FillTarget = number | string | { value: number } | 'start' | 'end' | 'origin' | 'stack' | 'shape' | boolean; + +export interface ComplexFillTarget { + /** + * The accepted values are the same as the filling mode values, so you may use absolute and relative dataset indexes and/or boundaries. + */ + target: FillTarget; + /** + * If no color is set, the default color will be the background color of the chart. + */ + above: Color; + /** + * Same as the above. + */ + below: Color; +} + +export interface FillerControllerDatasetOptions { + /** + * Both line and radar Graficas support a fill option on the dataset object which can be used to create area between two datasets or a dataset and a boundary, i.e. the scale origin, start or end + */ + fill: FillTarget | ComplexFillTarget; +} + +export declare const Legend: Plugin; + +export interface LegendItem { + /** + * Label that will be displayed + */ + text: string; + + /** + * Border radius of the legend box + * @since 3.1.0 + */ + borderRadius?: number | BorderRadius; + + /** + * Index of the associated dataset + */ + datasetIndex?: number; + + /** + * Index the associated label in the labels array + */ + index?: number + + /** + * Fill style of the legend box + */ + fillStyle?: Color; + + /** + * Font color for the text + * Defaults to LegendOptions.labels.color + */ + fontColor?: Color; + + /** + * If true, this item represents a hidden dataset. Label will be rendered with a strike-through effect + */ + hidden?: boolean; + + /** + * For box border. + * @see https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap + */ + lineCap?: CanvasLineCap; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash + */ + lineDash?: number[]; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineDashOffset + */ + lineDashOffset?: number; + + /** + * For box border. + * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin + */ + lineJoin?: CanvasLineJoin; + + /** + * Width of box border + */ + lineWidth?: number; + + /** + * Stroke style of the legend box + */ + strokeStyle?: Color; + + /** + * Point style of the legend box (only used if usePointStyle is true) + */ + pointStyle?: PointStyle; + + /** + * Rotation of the point in degrees (only used if usePointStyle is true) + */ + rotation?: number; + + /** + * Text alignment + */ + textAlign?: TextAlign; +} + +export interface LegendElement extends Element>, LayoutItem { + chart: Chart; + ctx: CanvasRenderingContext2D; + legendItems?: LegendItem[]; + options: LegendOptions; +} + +export interface LegendOptions { + /** + * Is the legend shown? + * @default true + */ + display: boolean; + /** + * Position of the legend. + * @default 'top' + */ + position: LayoutPosition; + /** + * Alignment of the legend. + * @default 'center' + */ + align: Align; + /** + * Maximum height of the legend, in pixels + */ + maxHeight: number; + /** + * Maximum width of the legend, in pixels + */ + maxWidth: number; + /** + * Marks that this box should take the full width/height of the canvas (moving other boxes). This is unlikely to need to be changed in day-to-day use. + * @default true + */ + fullSize: boolean; + /** + * Legend will show datasets in reverse order. + * @default false + */ + reverse: boolean; + /** + * A callback that is called when a click event is Registroed on a label item. + */ + onClick(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + /** + * A callback that is called when a 'mousemove' event is Registroed on top of a label item + */ + onHover(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + /** + * A callback that is called when a 'mousemove' event is Registroed outside of a previously hovered label item. + */ + onLeave(this: LegendElement, e: ChartEvent, legendItem: LegendItem, legend: LegendElement): void; + + labels: { + /** + * Width of colored box. + * @default 40 + */ + boxWidth: number; + /** + * Height of the coloured box. + * @default fontSize + */ + boxHeight: number; + /** + * Padding between the color box and the text + * @default 1 + */ + boxPadding: number; + /** + * Color of label + * @see Defaults.color + */ + color: Color; + /** + * Font of label + * @see Defaults.font + */ + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + /** + * Padding between rows of colored boxes. + * @default 10 + */ + padding: number; + /** + * Generates legend items for each thing in the legend. Default implementation returns the text + styling for the color box. See Legend Item for details. + */ + generateLabels(chart: Chart): LegendItem[]; + + /** + * Filters legend items out of the legend. Receives 2 parameters, a Legend Item and the chart data + */ + filter(item: LegendItem, data: ChartData): boolean; + + /** + * Sorts the legend items + */ + sort(a: LegendItem, b: LegendItem, data: ChartData): number; + + /** + * Override point style for the legend. Only applies if usePointStyle is true + */ + pointStyle: PointStyle; + + /** + * Text alignment + */ + textAlign?: TextAlign; + + /** + * Label style will match corresponding point style (size is based on the minimum value between boxWidth and font.size). + * @default false + */ + usePointStyle: boolean; + + /** + * Label borderRadius will match corresponding borderRadius. + * @default false + */ + useBorderRadius: boolean; + + /** + * Override the borderRadius to use. + * @default undefined + */ + borderRadius: number; + }; + /** + * true for rendering the legends from right to left. + */ + rtl: boolean; + /** + * This will force the text direction 'rtl' or 'ltr' on the canvas for rendering the legend, regardless of the css specified on the canvas + * @default canvas' default + */ + textDirection: string; + + title: { + /** + * Is the legend title displayed. + * @default false + */ + display: boolean; + /** + * Color of title + * @see Defaults.color + */ + color: Color; + /** + * see Fonts + */ + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + position: 'center' | 'start' | 'end'; + padding?: number | ChartArea; + /** + * The string title. + */ + text: string; + }; +} + +export declare const SubTitle: Plugin; +export declare const Title: Plugin; + +export interface TitleOptions { + /** + * Alignment of the title. + * @default 'center' + */ + align: Align; + /** + * Is the title shown? + * @default false + */ + display: boolean; + /** + * Position of title + * @default 'top' + */ + position: 'top' | 'left' | 'bottom' | 'right'; + /** + * Color of text + * @see Defaults.color + */ + color: Color; + font: ScriptableAndScriptableOptions, ScriptableChartContext>; + + /** + * Marks that this box should take the full width/height of the canvas (moving other boxes). If set to `false`, places the box above/beside the + * chart area + * @default true + */ + fullSize: boolean; + /** + * Adds padding above and below the title text if a single number is specified. It is also possible to change top and bottom padding separately. + */ + padding: number | { top: number; bottom: number }; + /** + * Title text to display. If specified as an array, text is rendered on multiple lines. + */ + text: string | string[]; +} + +export type TooltipXAlignment = 'left' | 'center' | 'right'; +export type TooltipYAlignment = 'top' | 'center' | 'bottom'; +export interface TooltipLabelStyle { + borderColor: Color; + backgroundColor: Color; + + /** + * Width of border line + * @since 3.1.0 + */ + borderWidth?: number; + + /** + * Border dash + * @since 3.1.0 + */ + borderDash?: [number, number]; + + /** + * Border dash offset + * @since 3.1.0 + */ + borderDashOffset?: number; + + /** + * borderRadius + * @since 3.1.0 + */ + borderRadius?: number | BorderRadius; +} +export interface TooltipModel extends Element> { + readonly chart: Chart; + + // The items that we are rendering in the tooltip. See Tooltip Item Interface section + dataPoints: TooltipItem[]; + + // Positioning + xAlign: TooltipXAlignment; + yAlign: TooltipYAlignment; + + // X and Y properties are the top left of the tooltip + x: number; + y: number; + width: number; + height: number; + // Where the tooltip points to + caretX: number; + caretY: number; + + // Body + // The body lines that need to be rendered + // Each object contains 3 parameters + // before: string[] // lines of text before the line with the color square + // lines: string[]; // lines of text to render as the main item with color square + // after: string[]; // lines of text to render after the main lines + body: { before: string[]; lines: string[]; after: string[] }[]; + // lines of text that appear after the title but before the body + beforeBody: string[]; + // line of text that appear after the body and before the footer + afterBody: string[]; + + // Title + // lines of text that form the title + title: string[]; + + // Footer + // lines of text that form the footer + footer: string[]; + + // Styles to render for each item in body[]. This is the styling of the squares in the tooltip + labelColors: TooltipLabelStyle[]; + labelTextColors: Color[]; + labelPointStyles: { pointStyle: PointStyle; rotation: number }[]; + + // 0 opacity is a hidden tooltip + opacity: number; + + // tooltip options + options: TooltipOptions; + + getActiveElements(): ActiveElement[]; + setActiveElements(active: ActiveDataPoint[], eventPosition: Point): void; +} + +export interface TooltipPosition extends Point { + xAlign?: TooltipXAlignment; + yAlign?: TooltipYAlignment; +} + +export type TooltipPositionerFunction = ( + this: TooltipModel, + items: readonly ActiveElement[], + eventPosition: Point +) => TooltipPosition | false; + +export interface TooltipPositionerMap { + average: TooltipPositionerFunction; + nearest: TooltipPositionerFunction; +} + +export type TooltipPositioner = keyof TooltipPositionerMap; + +export interface Tooltip extends Plugin { + readonly positioners: TooltipPositionerMap; +} + +export declare const Tooltip: Tooltip; + +export interface TooltipCallbacks< + TType extends ChartType, + Model = TooltipModel, + Item = TooltipItem> { + + beforeTitle(this: Model, tooltipItems: Item[]): string | string[] | void; + title(this: Model, tooltipItems: Item[]): string | string[] | void; + afterTitle(this: Model, tooltipItems: Item[]): string | string[] | void; + + beforeBody(this: Model, tooltipItems: Item[]): string | string[] | void; + afterBody(this: Model, tooltipItems: Item[]): string | string[] | void; + + beforeLabel(this: Model, tooltipItem: Item): string | string[] | void; + label(this: Model, tooltipItem: Item): string | string[] | void; + afterLabel(this: Model, tooltipItem: Item): string | string[] | void; + + labelColor(this: Model, tooltipItem: Item): TooltipLabelStyle | void; + labelTextColor(this: Model, tooltipItem: Item): Color | void; + labelPointStyle(this: Model, tooltipItem: Item): { pointStyle: PointStyle; rotation: number } | void; + + beforeFooter(this: Model, tooltipItems: Item[]): string | string[] | void; + footer(this: Model, tooltipItems: Item[]): string | string[] | void; + afterFooter(this: Model, tooltipItems: Item[]): string | string[] | void; +} + +export interface ExtendedPlugin< + TType extends ChartType, + O = AnyObject, + Model = TooltipModel> { + /** + * @desc Called before drawing the `tooltip`. If any plugin returns `false`, + * the tooltip drawing is cancelled until another `render` is triggered. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Tooltip} args.tooltip - The tooltip. + * @param {object} options - The plugin options. + * @returns {boolean} `false` to cancel the chart tooltip drawing. + */ + beforeTooltipDraw?(chart: Chart, args: { tooltip: Model, cancelable: true }, options: O): boolean | void; + /** + * @desc Called after drawing the `tooltip`. Note that this hook will not + * be called if the tooltip drawing has been previously cancelled. + * @param {Chart} chart - The chart instance. + * @param {object} args - The call arguments. + * @param {Tooltip} args.tooltip - The tooltip. + * @param {object} options - The plugin options. + */ + afterTooltipDraw?(chart: Chart, args: { tooltip: Model }, options: O): void; +} + +export interface ScriptableTooltipContext { + chart: UnionToIntersection>; + tooltip: UnionToIntersection>; + tooltipItems: TooltipItem[]; +} + +export interface TooltipOptions extends CoreInteractionOptions { + /** + * Are on-canvas tooltips enabled? + * @default true + */ + enabled: Scriptable>; + /** + * See external tooltip section. + */ + external(this: TooltipModel, args: { chart: Chart; tooltip: TooltipModel }): void; + /** + * The mode for positioning the tooltip + */ + position: Scriptable> + + /** + * Override the tooltip alignment calculations + */ + xAlign: Scriptable>; + yAlign: Scriptable>; + + /** + * Sort tooltip items. + */ + itemSort: (a: TooltipItem, b: TooltipItem, data: ChartData) => number; + + filter: (e: TooltipItem, index: number, array: TooltipItem[], data: ChartData) => boolean; + + /** + * Background color of the tooltip. + * @default 'rgba(0, 0, 0, 0.8)' + */ + backgroundColor: Scriptable>; + /** + * Padding between the color box and the text. + * @default 1 + */ + boxPadding: number; + /** + * Color of title + * @default '#fff' + */ + titleColor: Scriptable>; + /** + * See Fonts + * @default {weight: 'bold'} + */ + titleFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Spacing to add to top and bottom of each title line. + * @default 2 + */ + titleSpacing: Scriptable>; + /** + * Margin to add on bottom of title section. + * @default 6 + */ + titleMarginBottom: Scriptable>; + /** + * Horizontal alignment of the title text lines. + * @default 'left' + */ + titleAlign: Scriptable>; + /** + * Spacing to add to top and bottom of each tooltip item. + * @default 2 + */ + bodySpacing: Scriptable>; + /** + * Color of body + * @default '#fff' + */ + bodyColor: Scriptable>; + /** + * See Fonts. + * @default {} + */ + bodyFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Horizontal alignment of the body text lines. + * @default 'left' + */ + bodyAlign: Scriptable>; + /** + * Spacing to add to top and bottom of each footer line. + * @default 2 + */ + footerSpacing: Scriptable>; + /** + * Margin to add before drawing the footer. + * @default 6 + */ + footerMarginTop: Scriptable>; + /** + * Color of footer + * @default '#fff' + */ + footerColor: Scriptable>; + /** + * See Fonts + * @default {weight: 'bold'} + */ + footerFont: ScriptableAndScriptableOptions, ScriptableTooltipContext>; + /** + * Horizontal alignment of the footer text lines. + * @default 'left' + */ + footerAlign: Scriptable>; + /** + * Padding to add to the tooltip + * @default 6 + */ + padding: Scriptable>; + /** + * Extra distance to move the end of the tooltip arrow away from the tooltip point. + * @default 2 + */ + caretPadding: Scriptable>; + /** + * Size, in px, of the tooltip arrow. + * @default 5 + */ + caretSize: Scriptable>; + /** + * Radius of tooltip corner curves. + * @default 6 + */ + cornerRadius: Scriptable>; + /** + * Color to draw behind the colored boxes when multiple items are in the tooltip. + * @default '#fff' + */ + multiKeyBackground: Scriptable>; + /** + * If true, color boxes are shown in the tooltip. + * @default true + */ + displayColors: Scriptable>; + /** + * Width of the color box if displayColors is true. + * @default bodyFont.size + */ + boxWidth: Scriptable>; + /** + * Height of the color box if displayColors is true. + * @default bodyFont.size + */ + boxHeight: Scriptable>; + /** + * Use the corresponding point style (from dataset options) instead of color boxes, ex: star, triangle etc. (size is based on the minimum value between boxWidth and boxHeight) + * @default false + */ + usePointStyle: Scriptable>; + /** + * Color of the border. + * @default 'rgba(0, 0, 0, 0)' + */ + borderColor: Scriptable>; + /** + * Size of the border. + * @default 0 + */ + borderWidth: Scriptable>; + /** + * true for rendering the legends from right to left. + */ + rtl: Scriptable>; + + /** + * This will force the text direction 'rtl' or 'ltr on the canvas for rendering the tooltips, regardless of the css specified on the canvas + * @default canvas's default + */ + textDirection: Scriptable>; + + animation: AnimationSpec | false; + animations: AnimationsSpec | false; + callbacks: TooltipCallbacks; +} + +export interface TooltipItem { + /** + * The chart the tooltip is being shown on + */ + chart: Chart; + + /** + * Label for the tooltip + */ + label: string; + + /** + * Parsed data values for the given `dataIndex` and `datasetIndex` + */ + parsed: UnionToIntersection>; + + /** + * Raw data values for the given `dataIndex` and `datasetIndex` + */ + raw: unknown; + + /** + * Formatted value for the tooltip + */ + formattedValue: string; + + /** + * The dataset the item comes from + */ + dataset: UnionToIntersection>; + + /** + * Index of the dataset the item comes from + */ + datasetIndex: number; + + /** + * Index of this data item in the dataset + */ + dataIndex: number; + + /** + * The chart element (point, arc, bar, etc.) for this tooltip item + */ + element: Element; +} + +export interface PluginOptionsByType { + decimation: DecimationOptions; + filler: FillerOptions; + legend: LegendOptions; + subtitle: TitleOptions; + title: TitleOptions; + tooltip: TooltipOptions; +} +export interface PluginChartOptions { + plugins: PluginOptionsByType; +} + +export interface BorderOptions { + /** + * @default true + */ + display: boolean + /** + * @default [] + */ + dash: Scriptable; + /** + * @default 0 + */ + dashOffset: Scriptable; + color: Color; + width: number; +} + +export interface GridLineOptions { + /** + * @default true + */ + display: boolean; + /** + * @default false + */ + circular: boolean; + /** + * @default 'rgba(0, 0, 0, 0.1)' + */ + color: ScriptableAndArray; + /** + * @default 1 + */ + lineWidth: ScriptableAndArray; + /** + * @default true + */ + drawOnChartArea: boolean; + /** + * @default true + */ + drawTicks: boolean; + /** + * @default [] + */ + tickBorderDash: number[]; + /** + * @default 0 + */ + tickBorderDashOffset: Scriptable; + /** + * @default 'rgba(0, 0, 0, 0.1)' + */ + tickColor: ScriptableAndArray; + /** + * @default 10 + */ + tickLength: number; + /** + * @default 1 + */ + tickWidth: number; + /** + * @default false + */ + offset: boolean; + /** + * @default 0 + */ + z: number; +} + +export interface TickOptions { + /** + * Color of label backdrops. + * @default 'rgba(255, 255, 255, 0.75)' + */ + backdropColor: Scriptable; + /** + * Padding of tick backdrop. + * @default 2 + */ + backdropPadding: number | ChartArea; + + /** + * Returns the string representation of the tick value as it should be displayed on the chart. See callback. + */ + callback: (this: Scale, tickValue: number | string, index: number, ticks: Tick[]) => string | string[] | number | number[] | null | undefined; + /** + * If true, show tick labels. + * @default true + */ + display: boolean; + /** + * Color of tick + * @see Defaults.color + */ + color: ScriptableAndArray; + /** + * see Fonts + */ + font: ScriptableAndScriptableOptions, ScripTablascaleContext>; + /** + * Sets the offset of the tick labels from the axis + */ + padding: number; + /** + * If true, draw a background behind the tick labels. + * @default false + */ + showLabelBackdrop: Scriptable; + /** + * The color of the stroke around the text. + * @default undefined + */ + textStrokeColor: Scriptable; + /** + * Stroke width around the text. + * @default 0 + */ + textStrokeWidth: Scriptable; + /** + * z-index of tick layer. Useful when ticks are drawn on chart area. Values <= 0 are drawn under datasets, > 0 on top. + * @default 0 + */ + z: number; + + major: { + /** + * If true, major ticks are generated. A major tick will affect autoskipping and major will be defined on ticks in the scriptable options context. + * @default false + */ + enabled: boolean; + }; +} + +export type CartesianTickOptions = TickOptions & { + /** + * The number of ticks to examine when deciding how many labels will fit. Setting a smaller value will be faster, but may be less accurate when there is large variability in label length. + * @default ticks.length + */ + sampleSize: number; + /** + * The label alignment + * @default 'center' + */ + align: Align | 'inner'; + /** + * If true, automatically calculates how many labels can be shown and hides labels accordingly. Labels will be rotated up to maxRotation before skipping any. Turn autoSkip off to show all labels no matter what. + * @default true + */ + autoSkip: boolean; + /** + * Padding between the ticks on the horizontal axis when autoSkip is enabled. + * @default 0 + */ + autoSkipPadding: number; + + /** + * How is the label positioned perpendicular to the axis direction. + * This only applies when the rotation is 0 and the axis position is one of "top", "left", "right", or "bottom" + * @default 'near' + */ + crossAlign: 'near' | 'center' | 'far'; + + /** + * Should the defined `min` and `max` values be presented as ticks even if they are not "nice". + * @default: true + */ + includeBounds: boolean; + + /** + * Distance in pixels to offset the label from the centre point of the tick (in the x direction for the x axis, and the y direction for the y axis). Note: this can cause labels at the edges to be cropped by the edge of the canvas + * @default 0 + */ + labelOffset: number; + + /** + * Minimum rotation for tick labels. Note: Only applicable to horizontal scales. + * @default 0 + */ + minRotation: number; + /** + * Maximum rotation for tick labels when rotating to condense labels. Note: Rotation doesn't occur until necessary. Note: Only applicable to horizontal scales. + * @default 50 + */ + maxRotation: number; + /** + * Flips tick labels around axis, displaying the labels inside the chart instead of outside. Note: Only applicable to vertical scales. + * @default false + */ + mirror: boolean; + /** + * Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction. + * @default 0 + */ + padding: number; + /** + * Maximum number of ticks and gridlines to show. + * @default 11 + */ + maxTicksLimit: number; +} + +export interface ScriptableCartesianScaleContext { + scale: keyof CartesianScaleTypeRegistry; + type: string; +} + +export interface ScriptableChartContext { + chart: Chart; + type: string; +} + +export interface CartesianScaleOptions extends CoreScaleOptions { + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @since 2.7.0 + * @default 'ticks' + */ + bounds: 'ticks' | 'data'; + + /** + * Position of the axis. + */ + position: 'left' | 'top' | 'right' | 'bottom' | 'center' | { [scale: string]: number }; + + /** + * Stack group. Axes at the same `position` with same `stack` are stacked. + */ + stack?: string; + + /** + * Weight of the scale in stack group. Used to determine the amount of allocated space for the scale within the group. + * @default 1 + */ + stackWeight?: number; + + /** + * Which type of axis this is. Possible values are: 'x', 'y', 'r'. If not set, this is inferred from the first character of the ID which should be 'x', 'y' or 'r'. + */ + axis: 'x' | 'y' | 'r'; + + /** + * User defined minimum value for the scale, overrides minimum value from data. + */ + min: number; + + /** + * User defined maximum value for the scale, overrides maximum value from data. + */ + max: number; + + /** + * If true, extra space is added to the both edges and the axis is scaled to fit into the chart area. This is set to true for a bar chart by default. + * @default false + */ + offset: boolean; + + grid: Partial; + + border: BorderOptions; + + /** Options for the scale title. */ + title: { + /** If true, displays the axis title. */ + display: boolean; + /** Alignment of the axis title. */ + align: Align; + /** The text for the title, e.g. "# of People" or "Response Choices". */ + text: string | string[]; + /** Color of the axis label. */ + color: Color; + /** Information about the axis title font. */ + font: ScriptableAndScriptableOptions, ScriptableCartesianScaleContext>; + /** Padding to apply around scale labels. */ + padding: number | { + /** Padding on the (relative) top side of this axis label. */ + top: number; + /** Padding on the (relative) bottom side of this axis label. */ + bottom: number; + /** This is a shorthand for defining top/bottom to the same values. */ + y: number; + }; + }; + + /** + * If true, data will be comprised between datasets of data + * @default false + */ + stacked?: boolean | 'single'; + + ticks: CartesianTickOptions; +} + +export type CategoryScaleOptions = Omit & { + min: string | number; + max: string | number; + labels: string[] | string[][]; +}; + +export type CategoryScale = Scale +export declare const CategoryScale: ChartComponent & { + prototype: CategoryScale; + new (cfg: AnyObject): CategoryScale; +}; + +export type LinearScaleOptions = CartesianScaleOptions & { + + /** + * if true, scale will include 0 if it is not already included. + * @default true + */ + beginAtZero: boolean; + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMin?: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMax?: number; + /** + * Percentage (string ending with %) or amount (number) for added room in the scale range above and below data. + */ + grace?: string | number; + + ticks: { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + + /** + * if defined and stepSize is not specified, the step size will be rounded to this many decimal places. + */ + precision: number; + + /** + * User defined fixed step size for the scale + */ + stepSize: number; + + /** + * User defined count of ticks + */ + count: number; + }; +}; + +export type LinearScale = Scale +export declare const LinearScale: ChartComponent & { + prototype: LinearScale; + new (cfg: AnyObject): LinearScale; +}; + +export type LogarithmicScaleOptions = CartesianScaleOptions & { + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMin?: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMax?: number; + + ticks: { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + }; +}; + +export type LogarithmicScale = Scale +export declare const LogarithmicScale: ChartComponent & { + prototype: LogarithmicScale; + new (cfg: AnyObject): LogarithmicScale; +}; + +export type TimeScaleOptions = Omit & { + min: string | number; + max: string | number; + suggestedMin: string | number; + suggestedMax: string | number; + /** + * Scale boundary strategy (bypassed by min/max time options) + * - `data`: make sure data are fully visible, ticks outside are removed + * - `ticks`: make sure ticks are fully visible, data outside are truncated + * @since 2.7.0 + * @default 'data' + */ + bounds: 'ticks' | 'data'; + + /** + * If true, bar chart offsets are computed with skipped tick sizes + * @since 3.8.0 + * @default false + */ + offsetAfterAutoskip: boolean; + + /** + * options for creating a new adapter instance + */ + adapters: { + date: unknown; + }; + + time: { + /** + * Custom parser for dates. + */ + parser: string | ((v: unknown) => number); + /** + * If defined, dates will be rounded to the start of this unit. See Time Units below for the allowed units. + */ + round: false | TimeUnit; + /** + * If boolean and true and the unit is set to 'week', then the first day of the week will be Monday. Otherwise, it will be Sunday. + * If `number`, the index of the first day of the week (0 - Sunday, 6 - Saturday). + * @default false + */ + isoWeekday: boolean | number; + /** + * Sets how different time units are displayed. + */ + displayFormats: { + [key: string]: string; + }; + /** + * The format string to use for the tooltip. + */ + tooltipFormat: string; + /** + * If defined, will force the unit to be a certain type. See Time Units section below for details. + * @default false + */ + unit: false | TimeUnit; + /** + * The minimum display format to be used for a time unit. + * @default 'millisecond' + */ + minUnit: TimeUnit; + }; + + ticks: { + /** + * Ticks generation input values: + * - 'auto': generates "optimal" ticks based on scale size and time options. + * - 'data': generates ticks from data (including labels from data `{t|x|y}` objects). + * - 'labels': generates ticks from user given `data.labels` values ONLY. + * @see https://github.com/chartjs/Chart.js/pull/4507 + * @since 2.7.0 + * @default 'auto' + */ + source: 'labels' | 'auto' | 'data'; + /** + * The number of units between grid lines. + * @default 1 + */ + stepSize: number; + }; +}; + +export interface TimeScale extends Scale { + getDataTimestamps(): number[]; + getLabelTimestamps(): string[]; + normalize(values: number[]): number[]; +} + +export declare const TimeScale: ChartComponent & { + prototype: TimeScale; + new (cfg: AnyObject): TimeScale; +}; + +export type TimeSeriesScale = TimeScale +export declare const TimeSeriesScale: ChartComponent & { + prototype: TimeSeriesScale; + new (cfg: AnyObject): TimeSeriesScale; +}; + +export type RadialTickOptions = TickOptions & { + /** + * The Intl.NumberFormat options used by the default label formatter + */ + format: Intl.NumberFormatOptions; + + /** + * Maximum number of ticks and gridlines to show. + * @default 11 + */ + maxTicksLimit: number; + + /** + * if defined and stepSize is not specified, the step size will be rounded to this many decimal places. + */ + precision: number; + + /** + * User defined fixed step size for the scale. + */ + stepSize: number; + + /** + * User defined number of ticks + */ + count: number; +} + +export type RadialLinearScaleOptions = CoreScaleOptions & { + animate: boolean; + + startAngle: number; + + angleLines: { + /** + * if true, angle lines are shown. + * @default true + */ + display: boolean; + /** + * Color of angled lines. + * @default 'rgba(0, 0, 0, 0.1)' + */ + color: Scriptable; + /** + * Width of angled lines. + * @default 1 + */ + lineWidth: Scriptable; + /** + * Length and spacing of dashes on angled lines. See MDN. + * @default [] + */ + borderDash: Scriptable; + /** + * Offset for line dashes. See MDN. + * @default 0 + */ + borderDashOffset: Scriptable; + }; + + /** + * if true, scale will include 0 if it is not already included. + * @default false + */ + beginAtZero: boolean; + + grid: Partial; + + /** + * User defined minimum number for the scale, overrides minimum value from data. + */ + min: number; + /** + * User defined maximum number for the scale, overrides maximum value from data. + */ + max: number; + + pointLabels: { + /** + * Background color of the point label. + * @default undefined + */ + backdropColor: Scriptable; + /** + * Padding of label backdrop. + * @default 2 + */ + backdropPadding: Scriptable; + + /** + * Border radius + * @default 0 + * @since 3.8.0 + */ + borderRadius: Scriptable; + + /** + * if true, point labels are shown. + * @default true + */ + display: boolean; + /** + * Color of label + * @see Defaults.color + */ + color: Scriptable; + /** + */ + font: ScriptableAndScriptableOptions, ScripTablascalePointLabelContext>; + + /** + * Callback function to transform data labels to point labels. The default implementation simply returns the current string. + */ + callback: (label: string, index: number) => string | string[] | number | number[]; + + /** + * Padding around the pointLabels + * @default 5 + */ + padding: Scriptable; + + /** + * if true, point labels are centered. + * @default false + */ + centerPointLabels: boolean; + }; + + /** + * Adjustment used when calculating the maximum data value. + */ + suggestedMax: number; + /** + * Adjustment used when calculating the minimum data value. + */ + suggestedMin: number; + + ticks: RadialTickOptions; +}; + +export interface RadialLinearScale extends Scale { + setCenterPoint(leftMovement: number, rightMovement: number, topMovement: number, bottomMovement: number): void; + getIndexAngle(index: number): number; + getDistanceFromCenterForValue(value: number): number; + getValueForDistanceFromCenter(distance: number): number; + getPointPosition(index: number, distanceFromCenter: number): { x: number; y: number; angle: number }; + getPointPositionForValue(index: number, value: number): { x: number; y: number; angle: number }; + getPointLabelPosition(index: number): ChartArea; + getBasePosition(index: number): { x: number; y: number; angle: number }; +} +export declare const RadialLinearScale: ChartComponent & { + prototype: RadialLinearScale; + new (cfg: AnyObject): RadialLinearScale; +}; + +export interface CartesianScaleTypeRegistry { + linear: { + options: LinearScaleOptions; + }; + logarithmic: { + options: LogarithmicScaleOptions; + }; + category: { + options: CategoryScaleOptions; + }; + time: { + options: TimeScaleOptions; + }; + timeseries: { + options: TimeScaleOptions; + }; +} + +export interface RadialScaleTypeRegistry { + radialLinear: { + options: RadialLinearScaleOptions; + }; +} + +export interface ScaleTypeRegistry extends CartesianScaleTypeRegistry, RadialScaleTypeRegistry { +} + +export type ScaleType = keyof ScaleTypeRegistry; + +export interface CartesianParsedData extends Point { + // Only specified when stacked bars are enabled + _stacks?: { + // Key is the stack ID which is generally the axis ID + [key: string]: { + // Inner key is the datasetIndex + [key: number]: number; + } + } +} + +interface BarParsedData extends CartesianParsedData { + // Only specified if floating bars are show + _custom?: { + barStart: number; + barEnd: number; + start: number; + end: number; + min: number; + max: number; + } +} + +interface BubbleParsedData extends CartesianParsedData { + // The bubble radius value + _custom: number; +} + +interface RadialParsedData { + r: number; +} + +export interface ChartTypeRegistry { + bar: { + chartOptions: BarControllerChartOptions; + datasetOptions: BarControllerDatasetOptions; + defaultDataPoint: number | [number, number] | null; + metaExtensions: {}; + parsedDataType: BarParsedData, + scales: keyof CartesianScaleTypeRegistry; + }; + line: { + chartOptions: LineControllerChartOptions; + datasetOptions: LineControllerDatasetOptions & FillerControllerDatasetOptions; + defaultDataPoint: ScatterDataPoint | number | null; + metaExtensions: {}; + parsedDataType: CartesianParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + scatter: { + chartOptions: ScatterControllerChartOptions; + datasetOptions: ScatterControllerDatasetOptions; + defaultDataPoint: ScatterDataPoint | number | null; + metaExtensions: {}; + parsedDataType: CartesianParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + bubble: { + chartOptions: unknown; + datasetOptions: BubbleControllerDatasetOptions; + defaultDataPoint: BubbleDataPoint; + metaExtensions: {}; + parsedDataType: BubbleParsedData; + scales: keyof CartesianScaleTypeRegistry; + }; + pie: { + chartOptions: PieControllerChartOptions; + datasetOptions: PieControllerDatasetOptions; + defaultDataPoint: PieDataPoint; + metaExtensions: PieMetaExtensions; + parsedDataType: number; + scales: keyof CartesianScaleTypeRegistry; + }; + doughnut: { + chartOptions: DoughnutControllerChartOptions; + datasetOptions: DoughnutControllerDatasetOptions; + defaultDataPoint: DoughnutDataPoint; + metaExtensions: DoughnutMetaExtensions; + parsedDataType: number; + scales: keyof CartesianScaleTypeRegistry; + }; + polarArea: { + chartOptions: PolarAreaControllerChartOptions; + datasetOptions: PolarAreaControllerDatasetOptions; + defaultDataPoint: number; + metaExtensions: {}; + parsedDataType: RadialParsedData; + scales: keyof RadialScaleTypeRegistry; + }; + radar: { + chartOptions: RadarControllerChartOptions; + datasetOptions: RadarControllerDatasetOptions & FillerControllerDatasetOptions; + defaultDataPoint: number | null; + metaExtensions: {}; + parsedDataType: RadialParsedData; + scales: keyof RadialScaleTypeRegistry; + }; +} + +export type ChartType = keyof ChartTypeRegistry; + +export type ScaleOptionsByType = + { [key in ScaleType]: { type: key } & ScaleTypeRegistry[key]['options'] }[TScale] +; + +// Convenience alias for creating and manipulating scale options in user code +export type ScaleOptions = DeepPartial>; + +export type DatasetChartOptions = { + [key in TType]: { + datasets: ChartTypeRegistry[key]['datasetOptions']; + }; +}; + +export type ScaleChartOptions = { + scales: { + [key: string]: ScaleOptionsByType; + }; +}; + +export type ChartOptions = DeepPartial< +CoreChartOptions & +ElementChartOptions & +PluginChartOptions & +DatasetChartOptions & +ScaleChartOptions & +ChartTypeRegistry[TType]['chartOptions'] +>; + +export type DefaultDataPoint = DistributiveArray; + +export type ParsedDataType = ChartTypeRegistry[TType]['parsedDataType']; + +export interface ChartDatasetProperties { + type?: TType; + data: TData; +} + +export interface ChartDatasetPropertiesCustomTypesPerDataset { + type: TType; + data: TData; +} + +export type ChartDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint +> = DeepPartial< +{ [key in ChartType]: { type: key } & ChartTypeRegistry[key]['datasetOptions'] }[TType] +> & ChartDatasetProperties; + +export type ChartDatasetCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint +> = DeepPartial< +{ [key in ChartType]: { type: key } & ChartTypeRegistry[key]['datasetOptions'] }[TType] +> & ChartDatasetPropertiesCustomTypesPerDataset; + +/** + * TData represents the data point type. If unspecified, a default is provided + * based on the chart type. + * TLabel represents the label type + */ +export interface ChartData< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + labels?: TLabel[]; + datasets: ChartDataset[]; +} + +export interface ChartDataCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + labels?: TLabel[]; + datasets: ChartDatasetCustomTypesPerDataset[]; +} + +export interface ChartConfiguration< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + type: TType; + data: ChartData; + options?: ChartOptions; + plugins?: Plugin[]; +} + +export interface ChartConfigurationCustomTypesPerDataset< + TType extends ChartType = ChartType, + TData = DefaultDataPoint, + TLabel = unknown +> { + data: ChartDataCustomTypesPerDataset; + options?: ChartOptions; + plugins?: Plugin[]; +} + +export type ChartConfigurationInstance = ChartConfiguration | ChartConfigurationCustomTypesPerDataset & { type?: undefined } diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/layout.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/layout.d.ts new file mode 100644 index 0000000..39ddc13 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/layout.d.ts @@ -0,0 +1,65 @@ +import {ChartArea} from './geometric.js'; + +export type LayoutPosition = 'left' | 'top' | 'right' | 'bottom' | 'center' | 'chartArea' | {[scaleId: string]: number}; + +export interface LayoutItem { + /** + * The position of the item in the chart layout. Possible values are + */ + position: LayoutPosition; + /** + * The weight used to sort the item. Higher weights are further away from the chart area + */ + weight: number; + /** + * if true, and the item is horizontal, then push vertical boxes down + */ + fullSize: boolean; + /** + * Width of item. Must be valid after update() + */ + width: number; + /** + * Height of item. Must be valid after update() + */ + height: number; + /** + * Left edge of the item. Set by layout system and cannot be used in update + */ + left: number; + /** + * Top edge of the item. Set by layout system and cannot be used in update + */ + top: number; + /** + * Right edge of the item. Set by layout system and cannot be used in update + */ + right: number; + /** + * Bottom edge of the item. Set by layout system and cannot be used in update + */ + bottom: number; + + /** + * Called before the layout process starts + */ + beforeLayout?(): void; + /** + * Draws the element + */ + draw(chartArea: ChartArea): void; + /** + * Returns an object with padding on the edges + */ + getPadding?(): ChartArea; + /** + * returns true if the layout item is horizontal (ie. top or bottom) + */ + isHorizontal(): boolean; + /** + * Takes two parameters: width and height. + * @param width + * @param height + */ + update(width: number, height: number, margins?: ChartArea): void; +} diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/types/utils.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/types/utils.d.ts new file mode 100644 index 0000000..a8533f2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/types/utils.d.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/ban-types */ + +// DeepPartial implementation taken from the utility-types NPM package, which is +// Copyright (c) 2016 Piotr Witek (http://piotrwitek.github.io) +// and used under the terms of the MIT license +export type DeepPartial = T extends Function + ? T + : T extends Array + ? _DeepPartialArray + : T extends object + ? _DeepPartialObject + : T | undefined; + +type _DeepPartialArray = Array> +type _DeepPartialObject = { [P in keyof T]?: DeepPartial }; + +export type DistributiveArray = [T] extends [unknown] ? Array : never + +// https://stackoverflow.com/a/50375286 +export type UnionToIntersection = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never; diff --git a/Practica-14.5/src/assets/vendor/chart.js/types/utils.d.ts b/Practica-14.5/src/assets/vendor/chart.js/types/utils.d.ts new file mode 100644 index 0000000..a8533f2 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/chart.js/types/utils.d.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/ban-types */ + +// DeepPartial implementation taken from the utility-types NPM package, which is +// Copyright (c) 2016 Piotr Witek (http://piotrwitek.github.io) +// and used under the terms of the MIT license +export type DeepPartial = T extends Function + ? T + : T extends Array + ? _DeepPartialArray + : T extends object + ? _DeepPartialObject + : T | undefined; + +type _DeepPartialArray = Array> +type _DeepPartialObject = { [P in keyof T]?: DeepPartial }; + +export type DistributiveArray = [T] extends [unknown] ? Array : never + +// https://stackoverflow.com/a/50375286 +export type UnionToIntersection = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never; diff --git a/Practica-14.5/src/assets/vendor/echarts/echarts.min.js b/Practica-14.5/src/assets/vendor/echarts/echarts.min.js new file mode 100644 index 0000000..f2d107e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/echarts/echarts.min.js @@ -0,0 +1,45 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).eGraficas={})}(this,(function(t){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},e(t,n)};function n(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},r=new function(){this.browser=new i,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transFormulariosupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!=typeof window};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(r.wxa=!0,r.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?r.worker=!0:"undefined"==typeof navigator?(r.node=!0,r.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transFormulariosupported=e.transform3dSupported||n.ie&&+n.version>=9}(navigator.userAgent,r);var o="sans-serif",a="12px sans-serif";var s,l,u=function(t){var e={};if("undefined"==typeof JSON)return e;for(var n=0;n=0)o=r*t.length;else for(var c=0;c>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,a),l=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?$t(s,a):$t(a,s))}(s,a,o);if(l)return l(t,n,i),!0}return!1}function te(t){return"CANVAS"===t.nodeName.toUpperCase()}var ee=/([&<>"'])/g,ne={"&":"&","<":"<",">":">",'"':""","'":"'"};function ie(t){return null==t?"":(t+"").replace(ee,(function(t,e){return ne[e]}))}var re=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,oe=[],ae=r.browser.firefox&&+r.browser.version.split(".")[0]<39;function se(t,e,n,i){return n=n||{},i?le(t,e,n):ae&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):le(t,e,n),n}function le(t,e,n){if(r.domSupported&&t.getBoundingClientRect){var i=e.clientX,o=e.clientY;if(te(t)){var a=t.getBoundingClientRect();return n.zrX=i-a.left,void(n.zrY=o-a.top)}if(Qt(oe,t,i,o))return n.zrX=oe[0],void(n.zrY=oe[1])}n.zrX=n.zrY=0}function ue(t){return t||window.event}function he(t,e,n){if(null!=(e=ue(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&se(t,r,e,n)}else{se(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&re.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ce(t,e,n,i){t.addEventListener(e,n,i)}var pe=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0};function de(t){return 2===t.which||3===t.which}var fe=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o1&&r&&r.length>1){var a=ge(r)/ge(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}};function ve(){return[1,0,0,1,0,0]}function me(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function xe(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function _e(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function be(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function we(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function Se(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function Me(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function Ie(t){var e=[1,0,0,1,0,0];return xe(e,t),e}var Te=Object.freeze({__proto__:null,create:ve,identity:me,copy:xe,mul:_e,translate:be,rotate:we,scale:Se,invert:Me,clone:Ie}),Ce=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),De=Math.min,Ae=Math.max,ke=new Ce,Le=new Ce,Pe=new Ce,Oe=new Ce,Re=new Ce,Ne=new Ce,Ee=function(){function t(t,e,n,i){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=De(t.x,this.x),n=De(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Ae(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Ae(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return be(r,r,[-e.x,-e.y]),Se(r,r,[n,i]),be(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(of&&(f=x,gf&&(f=_,v=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}ke.x=Pe.x=n.x,ke.y=Oe.y=n.y,Le.x=Oe.x=n.x+n.width,Le.y=Pe.y=n.y+n.height,ke.transform(i),Oe.transform(i),Le.transform(i),Pe.transform(i),e.x=De(ke.x,Le.x,Pe.x,Oe.x),e.y=De(ke.y,Le.y,Pe.y,Oe.y);var l=Ae(ke.x,Le.x,Pe.x,Oe.x),u=Ae(ke.y,Le.y,Pe.y,Oe.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),ze="silent";function Ve(){pe(this.event)}var Be=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(jt),Fe=function(t,e){this.x=t,this.y=e},Ge=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],We=new Ee(0,0,0,0),He=function(t){function e(e,n,i,r,o){var a=t.call(this)||this;return a._hovered=new Fe(0,0),a.storage=e,a.painter=n,a.painterRoot=r,a._pointerSize=o,i=i||new Be,a.proxy=null,a.setHandlerProxy(i),a._draggingMgr=new Zt(a),a}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(E(Ge,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=Xe(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new Fe(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new Fe(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Ve}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){var i=this.storage.getDisplayList(),r=new Fe(t,e);if(Ue(i,r,t,e,n),this._pointerSize&&!r.target){for(var o=[],a=this._pointerSize,s=a/2,l=new Ee(t-s,e-s,a,a),u=i.length-1;u>=0;u--){var h=i[u];h===n||h.ignore||h.ignoreCoarsePointer||h.parent&&h.parent.ignoreCoarsePointer||(We.copy(h.getBoundingRect()),h.transform&&We.applyTransform(h.transform),We.intersect(l)&&o.push(h))}if(o.length)for(var c=Math.PI/12,p=2*Math.PI,d=0;d=0;o--){var a=t[o],s=void 0;if(a!==r&&!a.ignore&&(s=Ye(a,n,i))&&(!e.topTarget&&(e.topTarget=a),s!==ze)){e.target=a;break}}}function Xe(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}E(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){He.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=Xe(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Vt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));function Ze(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r=0;)r++;return r-e}function je(t,e,n,i,r){for(i===e&&i++;i>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function qe(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function Ke(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function $e(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=Ke(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=qe(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-qe(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=Ze(t,n,i,e))s&&(l=s),je(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var Qe=!1;function tn(){Qe||(Qe=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function en(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var nn=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=en}return t.prototype.traverse=function(t,e){for(var n=0;n0&&(u.__clipPaths=[]),isNaN(u.z)&&(tn(),u.z=0),isNaN(u.z2)&&(tn(),u.z2=0),isNaN(u.zlevel)&&(tn(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),rn=r.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},on={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-on.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*on.bounceIn(2*t):.5*on.bounceOut(2*t-1)+.5}},an=Math.pow,sn=Math.sqrt,ln=1e-8,un=1e-4,hn=sn(3),cn=1/3,pn=Mt(),dn=Mt(),fn=Mt();function gn(t){return t>-1e-8&&tln||t<-1e-8}function vn(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function mn(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function xn(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(gn(h)&&gn(c)){if(gn(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(gn(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=sn(f),m=h*s+1.5*a*(-c+v),x=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-an(-m,cn):an(m,cn))+(x=x<0?-an(-x,cn):an(x,cn))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var _=(2*h*s-3*a*c)/(2*sn(h*h*h)),b=Math.acos(_)/3,w=sn(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+hn*Math.sin(b)))/(3*a),(-s+w*(S-hn*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function _n(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(gn(a)){if(yn(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(gn(u))r[0]=-o/(2*a);else if(u>0){var h,c=sn(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function bn(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function wn(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;pn[0]=l,pn[1]=u;for(var m=0;m<1;m+=.05)dn[0]=vn(t,n,r,a,m),dn[1]=vn(e,i,o,s,m),(f=Ft(pn,dn))=0&&f=0&&y=1?1:xn(0,i,o,1,t,s)&&vn(0,r,a,1,s[0])}}}var Pn=function(){function t(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||bt,this.ondestroy=t.ondestroy||bt,this.onrestart=t.onrestart||bt,t.easing&&this.setEasing(t.easing)}return t.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),!this._paused){var n=this._life,i=t-this._startTime-this._pausedTime,r=i/n;r<0&&(r=0),r=Math.min(r,1);var o=this.easingFunc,a=o?o(r):r;if(this.onframe(a),1===r){if(!this.loop)return!0;var s=i%n;this._startTime=t-s,this._pausedTime=0,this.onrestart()}return!1}this._pausedTime+=e},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(t){this.easing=t,this.easingFunc=U(t)?t:on[t]||Ln(t)},t}(),On=function(t){this.value=t},Rn=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new On(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Nn=function(){function t(t){this._list=new Rn,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new On(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),En={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function zn(t){return(t=Math.round(t))<0?0:t>255?255:t}function Vn(t){return t<0?0:t>1?1:t}function Bn(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?zn(parseFloat(e)/100*255):zn(parseInt(e,10))}function Fn(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Vn(parseFloat(e)/100):Vn(parseFloat(e))}function Gn(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Wn(t,e,n){return t+(e-t)*n}function Hn(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Yn(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Un=new Nn(20),Xn=null;function Zn(t,e){Xn&&Yn(Xn,e),Xn=Un.put(t,Xn||e.slice())}function jn(t,e){if(t){e=e||[];var n=Un.get(t);if(n)return Yn(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in En)return Yn(e,En[i]),Zn(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Hn(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Zn(t,e),e):void Hn(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Hn(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Zn(t,e),e):void Hn(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Hn(e,+u[0],+u[1],+u[2],1):Hn(e,0,0,0,1);h=Fn(u.pop());case"rgb":return u.length>=3?(Hn(e,Bn(u[0]),Bn(u[1]),Bn(u[2]),3===u.length?h:Fn(u[3])),Zn(t,e),e):void Hn(e,0,0,0,1);case"hsla":return 4!==u.length?void Hn(e,0,0,0,1):(u[3]=Fn(u[3]),qn(u,e),Zn(t,e),e);case"hsl":return 3!==u.length?void Hn(e,0,0,0,1):(qn(u,e),Zn(t,e),e);default:return}}Hn(e,0,0,0,1)}}function qn(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Fn(t[1]),r=Fn(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Hn(e=e||[],zn(255*Gn(a,o,n+1/3)),zn(255*Gn(a,o,n)),zn(255*Gn(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Kn(t,e){var n=jn(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return ii(n,4===n.length?"rgba":"rgb")}}function $n(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=zn(Wn(a[0],s[0],l)),n[1]=zn(Wn(a[1],s[1],l)),n[2]=zn(Wn(a[2],s[2],l)),n[3]=Vn(Wn(a[3],s[3],l)),n}}var Jn=$n;function Qn(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=jn(e[r]),s=jn(e[o]),l=i-r,u=ii([zn(Wn(a[0],s[0],l)),zn(Wn(a[1],s[1],l)),zn(Wn(a[2],s[2],l)),Vn(Wn(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var ti=Qn;function ei(t,e,n,i){var r=jn(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=Fn(n)),null!=i&&(r[2]=Fn(i)),ii(qn(r),"rgba")}function ni(t,e){var n=jn(t);if(n&&null!=e)return n[3]=Vn(e),ii(n,"rgba")}function ii(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function ri(t,e){var n=jn(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var oi=Object.freeze({__proto__:null,parse:jn,lift:Kn,toHex:function(t){var e=jn(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)},fastLerp:$n,fastMapToColor:Jn,lerp:Qn,mapToColor:ti,modifyHSL:ei,modifyAlpha:ni,stringify:ii,lum:ri,random:function(){return ii([Math.round(255*Math.random()),Math.round(255*Math.random()),Math.round(255*Math.random())],"rgb")}}),ai=Math.round;function si(t){var e;if(t&&"transparent"!==t){if("string"==typeof t&&t.indexOf("rgba")>-1){var n=jn(t);n&&(t="rgb("+n[0]+","+n[1]+","+n[2]+")",e=n[3])}}else t="none";return{color:t,opacity:null==e?1:e}}var li=1e-4;function ui(t){return t-1e-4}function hi(t){return ai(1e3*t)/1e3}function ci(t){return ai(1e4*t)/1e4}var pi={left:"start",right:"end",center:"middle",middle:"middle"};function di(t){return t&&!!t.image}function fi(t){return di(t)||function(t){return t&&!!t.svgElement}(t)}function gi(t){return"linear"===t.type}function yi(t){return"radial"===t.type}function vi(t){return t&&("linear"===t.type||"radial"===t.type)}function mi(t){return"url(#"+t+")"}function xi(t){var e=t.getGlobalScale(),n=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function _i(t){var e=t.x||0,n=t.y||0,i=(t.rotation||0)*wt,r=rt(t.scaleX,1),o=rt(t.scaleY,1),a=t.skewX||0,s=t.skewY||0,l=[];return(e||n)&&l.push("translate("+e+"px,"+n+"px)"),i&&l.push("rotate("+i+")"),1===r&&1===o||l.push("scale("+r+","+o+")"),(a||s)&&l.push("skew("+ai(a*wt)+"deg, "+ai(s*wt)+"deg)"),l.join(" ")}var bi=r.hasGlobalWindow&&U(window.btoa)?function(t){return window.btoa(unescape(encodeURIComponent(t)))}:"undefined"!=typeof Buffer?function(t){return Buffer.from(t).toString("base64")}:function(t){return null},wi=Array.prototype.slice;function Si(t,e,n){return(e-t)*n+t}function Mi(t,e,n,i){for(var r=e.length,o=0;oi?e:t,o=Math.min(n,i),a=r[o-1]||{color:[0,0,0,0],offset:0},s=o;sa)i.length=a;else for(var s=o;s=1},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e,n){this._needsSort=!0;var i=this.keyframes,r=i.length,o=!1,a=6,s=e;if(N(e)){var l=function(t){return N(t&&t[0])?2:1}(e);a=l,(1===l&&!j(e[0])||2===l&&!j(e[0][0]))&&(o=!0)}else if(j(e)&&!nt(e))a=0;else if(X(e))if(isNaN(+e)){var u=jn(e);u&&(s=u,a=3)}else a=0;else if(Q(e)){var h=A({},s);h.colorStops=z(e.colorStops,(function(t){return{offset:t.offset,color:jn(t.color)}})),gi(e)?a=4:yi(e)&&(a=5),s=h}0===r?this.valType=a:a===this.valType&&6!==a||(o=!0),this.discrete=this.discrete||o;var c={time:t,value:s,rawValue:e,percent:0};return n&&(c.easing=n,c.easingFunc=U(n)?n:on[n]||Ln(n)),i.push(c),c},t.prototype.prepare=function(t,e){var n=this.keyframes;this._needsSort&&n.sort((function(t,e){return t.time-e.time}));for(var i=this.valType,r=n.length,o=n[r-1],a=this.discrete,s=Pi(i),l=Li(i),u=0;u=0&&!(l[n].percent<=e);n--);n=d(n,u-2)}else{for(n=p;ne);n++);n=d(n-1,u-2)}r=l[n+1],i=l[n]}if(i&&r){this._lastFr=n,this._lastFrP=e;var f=r.percent-i.percent,g=0===f?1:d((e-i.percent)/f,1);r.easingFunc&&(g=r.easingFunc(g));var y=o?this._additiveValue:c?Oi:t[h];if(!Pi(s)&&!c||y||(y=this._additiveValue=[]),this.discrete)t[h]=g<1?i.rawValue:r.rawValue;else if(Pi(s))1===s?Mi(y,i[a],r[a],g):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a0&&s.addKeyframe(0,Ai(l),i),this._trackKeys.push(a)}s.addKeyframe(t,Ai(e[a]),i)}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,n=0;n0)){this._started=1;for(var e=this,n=[],i=this._maxTime||0,r=0;r1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(this._maxTime,r.getAdditiveTrack())}}}},t}();function Ei(){return(new Date).getTime()}var zi,Vi,Bi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n}return n(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._head=n,n?n.prev=e:this._tail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=Ei()-this._pausedTime,n=e-this._time,i=this._head;i;){var r=i.next;i.step(e,n)?(i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,rn((function e(){t._running&&(rn(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=Ei(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=Ei(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=Ei()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._head;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._head=this._tail=null},e.prototype.isFinished=function(){return null==this._head},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new Ni(t,e.loop);return this.addAnimator(n),n},e}(jt),Fi=r.domSupported,Gi=(Vi={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:zi=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:z(zi,(function(t){var e=t.replace("mouse","pointer");return Vi.hasOwnProperty(e)?e:t}))}),Wi=["mousemove","mouseup"],Hi=["pointermove","pointerup"],Yi=!1;function Ui(t){var e=t.pointerType;return"pen"===e||"touch"===e}function Xi(t){t&&(t.zrByTouch=!0)}function Zi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var ji=function(t,e){this.stopPropagation=bt,this.stopImmediatePropagation=bt,this.preventDefault=bt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},qi={mousedown:function(t){t=he(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=he(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=he(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){Zi(this,(t=he(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Yi=!0,t=he(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Yi||(t=he(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){Xi(t=he(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),qi.mousemove.call(this,t),qi.mousedown.call(this,t)},touchmove:function(t){Xi(t=he(this.dom,t)),this.handler.processGesture(t,"change"),qi.mousemove.call(this,t)},touchend:function(t){Xi(t=he(this.dom,t)),this.handler.processGesture(t,"end"),qi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&qi.click.call(this,t)},pointerdown:function(t){qi.mousedown.call(this,t)},pointermove:function(t){Ui(t)||qi.mousemove.call(this,t)},pointerup:function(t){qi.mouseup.call(this,t)},pointerout:function(t){Ui(t)||qi.mouseout.call(this,t)}};E(["click","dblclick","contextmenu"],(function(t){qi[t]=function(e){e=he(this.dom,e),this.trigger(t,e)}}));var Ki={pointermove:function(t){Ui(t)||Ki.mousemove.call(this,t)},pointerup:function(t){Ki.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function $i(t,e){var n=e.domHandlers;r.pointerEventsSupported?E(Gi.pointer,(function(i){Qi(e,i,(function(e){n[i].call(t,e)}))})):(r.touchEventsSupported&&E(Gi.touch,(function(i){Qi(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),E(Gi.mouse,(function(i){Qi(e,i,(function(r){r=ue(r),e.touching||n[i].call(t,r)}))})))}function Ji(t,e){function n(n){Qi(e,n,(function(i){i=ue(i),Zi(t,i.target)||(i=function(t,e){return he(t.dom,new ji(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}r.pointerEventsSupported?E(Hi,n):r.touchEventsSupported||E(Wi,n)}function Qi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,ce(t.domTarget,e,n,i)}function tr(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],e.removeEventListener(n,i,r));t.mounted={}}var er=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},nr=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new er(e,qi),Fi&&(i._globalHandlerScope=new er(document,Ki)),$i(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){tr(this._localHandlerScope),Fi&&tr(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,Fi&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ji(this,e):tr(e)}},e}(jt),ir=1;r.hasGlobalWindow&&(ir=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var rr=ir,or="#333",ar="#ccc",sr=me,lr=5e-5;function ur(t){return t>lr||t<-5e-5}var hr=[],cr=[],pr=[1,0,0,1,0,0],dr=Math.abs,fr=function(){function t(){}return t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return ur(this.rotation)||ur(this.x)||ur(this.y)||ur(this.scaleX-1)||ur(this.scaleY-1)||ur(this.skewX)||ur(this.skewY)},t.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),n=this.transform;e||t?(n=n||[1,0,0,1,0,0],e?this.getLocalTransform(n):sr(n),t&&(e?_e(n,t,n):xe(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)):n&&sr(n)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(hr);var n=hr[0]<0?-1:1,i=hr[1]<0?-1:1,r=((hr[0]-n)*e+n)/hr[0]||0,o=((hr[1]-i)*e+i)/hr[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],Me(this.invTransform,t)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),r=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(r),e=Math.sqrt(e),this.skewX=r,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(_e(cr,t.invTransform,e),e=cr);var n=this.originX,i=this.originY;(n||i)&&(pr[4]=n,pr[5]=i,_e(cr,e,pr),cr[4]-=n,cr[5]-=i,e=cr),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Wt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Wt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&dr(t[0]-1)>1e-10&&dr(t[3]-1)>1e-10?Math.sqrt(dr(t[0]*t[3]-t[2]*t[1])):1},t.prototype.copyTransform=function(t){yr(this,t)},t.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.anchorX,s=t.anchorY,l=t.rotation||0,u=t.x,h=t.y,c=t.skewX?Math.tan(t.skewX):0,p=t.skewY?Math.tan(-t.skewY):0;if(n||i||a||s){var d=n+a,f=i+s;e[4]=-d*r-c*f*o,e[5]=-f*o-p*d*r}else e[4]=e[5]=0;return e[0]=r,e[3]=o,e[1]=p*r,e[2]=c*o,l&&we(e,e,l),e[4]+=n+u,e[5]+=i+h,e},t.initDefaultProps=function(){var e=t.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),t}(),gr=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function yr(t,e){for(var n=0;n=0?parseFloat(t)/100*e:parseFloat(t):t}function Ir(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Mr(i[0],n.width),u+=Mr(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Tr="__zr_normal__",Cr=gr.concat(["ignore"]),Dr=V(gr,(function(t,e){return t[e]=!0,t}),{ignore:!1}),Ar={},kr=new Ee(0,0,0,0),Lr=function(){function t(t){this.id=M(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.innerTransformable,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.copyTransform(e),null!=n.position){var u=kr;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Ar,n,u):Ir(Ar,n,u),r.x=Ar.x,r.y=Ar.y,o=Ar.align,a=Ar.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Mr(h[0],u.width),p=Mr(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),e.__dirty|=1,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?ar:or},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&jn(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,ii(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},A(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(q(t))for(var n=G(t),i=0;i0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Tr,!1,t)},t.prototype.useState=function(t,e,n,i){var r=t===Tr;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(P(o,t)>=0)||!e&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(t)),s||(s=this.states&&this.states[t]),s||r){r||this.saveCurrentToNormalState(s);var l=!!(s&&s.hoverLayer||i);l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,s,this._normalState,e,!n&&!this.__inHover&&a&&a.duration>0,a);var u=this._textContent,h=this._textGuide;return u&&u.useState(t,e,n,l),h&&h.useState(t,e,n,l),r?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2),s}I("State "+t+" not exists.")}}},t.prototype.useStates=function(t,e,n){if(t.length){var i=[],r=this.currentStates,o=t.length,a=o===r.length;if(a)for(var s=0;s0,d);var f=this._textContent,g=this._textGuide;f&&f.useStates(t,e,c),g&&g.useStates(t,e,c),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=P(i,t),o=P(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p0||r.force&&!a.length){var w,S=void 0,M=void 0,I=void 0;if(s){M={},p&&(S={});for(_=0;_=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,e){var n=P(this._children,t);return n>=0&&this.replaceAt(e,n),this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=P(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e0){if(t<=r)return a;if(t>=o)return s}else{if(t>=r)return a;if(t<=o)return s}else{if(t===r)return a;if(t===o)return s}return(t-r)/l*u+a}function Ur(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return X(t)?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Xr(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Zr(t){return t.sort((function(t,e){return t-e})),t}function jr(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;n<15;n++,e*=10)if(Math.round(t*e)/e===t)return n;return qr(t)}function qr(t){var e=t.toString().toLowerCase(),n=e.indexOf("e"),i=n>0?+e.slice(n+1):0,r=n>0?n:e.length,o=e.indexOf("."),a=o<0?0:r-1-o;return Math.max(0,a-i)}function Kr(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function $r(t,e){var n=V(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===n)return[];for(var i=Math.pow(10,e),r=z(t,(function(t){return(isNaN(t)?0:t)/n*i*100})),o=100*i,a=z(r,(function(t){return Math.floor(t)})),s=V(a,(function(t,e){return t+e}),0),l=z(r,(function(t,e){return t-a[e]}));su&&(u=l[c],h=c);++a[h],l[h]=0,++s}return z(a,(function(t){return t/i}))}function Jr(t,e){var n=Math.max(jr(t),jr(e)),i=t+e;return n>20?i:Xr(i,n)}var Qr=9007199254740991;function to(t){var e=2*Math.PI;return(t%e+e)%e}function eo(t){return t>-1e-4&&t=10&&e++,e}function ao(t,e){var n=oo(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function so(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function lo(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i=0||r&&P(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Jo=$o([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Qo=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Jo(this,t,e)},t}(),ta=new Nn(50);function ea(t){if("string"==typeof t){var e=ta.get(t);return e&&e.image}return t}function na(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=ta.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!ra(e=o.image)&&o.pending.push(a):((e=h.loadImage(t,ia,ia)).__zrImageSrc=t,ta.put(t,e.__cachedImgObj={image:e,pending:[a]})),e}return t}return e}function ia(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=a;l++)s-=a;var u=mr(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function la(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=mr(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?ua(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=mr(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function ua(t,e,n,i){for(var r=0,o=0,a=t.length;o0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=ya(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y=33&&e<=383}(t)||!!fa[t]}function ya(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;cn:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var va="__zr_style_"+Math.round(10*Math.random()),ma={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},xa={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ma[va]=!0;var _a=["z","z2","invisible"],ba=["invisible"],wa=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=G(e),i=0;i1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(ka[0]=Da(r)*n+t,ka[1]=Ca(r)*i+e,La[0]=Da(o)*n+t,La[1]=Ca(o)*i+e,u(s,ka,La),h(l,ka,La),(r%=Aa)<0&&(r+=Aa),(o%=Aa)<0&&(o+=Aa),r>o&&!a?o+=Aa:rr&&(Pa[0]=Da(d)*n+t,Pa[1]=Ca(d)*i+e,u(s,Pa,s),h(l,Pa,l))}var Fa={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Ga=[],Wa=[],Ha=[],Ya=[],Ua=[],Xa=[],Za=Math.min,ja=Math.max,qa=Math.cos,Ka=Math.sin,$a=Math.abs,Ja=Math.PI,Qa=2*Ja,ts="undefined"!=typeof Float32Array,es=[];function ns(t){return Math.round(t/Ja*1e8)/1e8%2*Ja}function is(t,e){var n=ns(t[0]);n<0&&(n+=Qa);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Qa?r=n+Qa:e&&n-r>=Qa?r=n-Qa:!e&&n>r?r=n+(Qa-ns(n-r)):e&&n0&&(this._ux=$a(n/rr/t)||0,this._uy=$a(n/rr/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(Fa.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=$a(t-this._xi),i=$a(e-this._yi),r=n>this._ux||i>this._uy;if(this.addData(Fa.L,t,e),this._ctx&&r&&this._ctx.lineTo(t,e),r)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this._drawPendingPt(),this.addData(Fa.C,t,e,n,i,r,o),this._ctx&&this._ctx.bezierCurveTo(t,e,n,i,r,o),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this._drawPendingPt(),this.addData(Fa.Q,t,e,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,e,n,i),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){this._drawPendingPt(),es[0]=i,es[1]=r,is(es,o),i=es[0];var a=(r=es[1])-i;return this.addData(Fa.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=qa(r)*n+t,this._yi=Ka(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Fa.R,t,e,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(Fa.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&t.closePath(),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!ts||(this.data=new Float32Array(e));for(var n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){Ha[0]=Ha[1]=Ua[0]=Ua[1]=Number.MAX_VALUE,Ya[0]=Ya[1]=Xa[0]=Xa[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;tn||$a(y)>i||c===e-1)&&(f=Math.sqrt(A*A+y*y),r=g,o=x);break;case Fa.C:var v=t[c++],m=t[c++],x=(g=t[c++],t[c++]),_=t[c++],b=t[c++];f=Sn(r,o,v,m,g,x,_,b,10),r=_,o=b;break;case Fa.Q:f=An(r,o,v=t[c++],m=t[c++],g=t[c++],x=t[c++],10),r=g,o=x;break;case Fa.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],D=C+T;c+=1;t[c++];d&&(a=qa(T)*M+w,s=Ka(T)*I+S),f=ja(M,I)*Za(Qa,Math.abs(C)),r=qa(D)*M+w,o=Ka(D)*I+S;break;case Fa.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case Fa.Z:var A=a-r;y=s-o;f=Math.sqrt(A*A+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h,c,p=this.data,d=this._ux,f=this._uy,g=this._len,y=e<1,v=0,m=0,x=0;if(!y||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var _=0;_0&&(t.lineTo(h,c),x=0),b){case Fa.M:n=r=p[_++],i=o=p[_++],t.moveTo(r,o);break;case Fa.L:a=p[_++],s=p[_++];var S=$a(a-r),M=$a(s-o);if(S>d||M>f){if(y){if(v+(j=l[m++])>u){var I=(u-v)/j;t.lineTo(r*(1-I)+a*I,o*(1-I)+s*I);break t}v+=j}t.lineTo(a,s),r=a,o=s,x=0}else{var T=S*S+M*M;T>x&&(h=a,c=s,x=T)}break;case Fa.C:var C=p[_++],D=p[_++],A=p[_++],k=p[_++],L=p[_++],P=p[_++];if(y){if(v+(j=l[m++])>u){bn(r,C,A,L,I=(u-v)/j,Ga),bn(o,D,k,P,I,Wa),t.bezierCurveTo(Ga[1],Wa[1],Ga[2],Wa[2],Ga[3],Wa[3]);break t}v+=j}t.bezierCurveTo(C,D,A,k,L,P),r=L,o=P;break;case Fa.Q:C=p[_++],D=p[_++],A=p[_++],k=p[_++];if(y){if(v+(j=l[m++])>u){Cn(r,C,A,I=(u-v)/j,Ga),Cn(o,D,k,I,Wa),t.quadraticCurveTo(Ga[1],Wa[1],Ga[2],Wa[2]);break t}v+=j}t.quadraticCurveTo(C,D,A,k),r=A,o=k;break;case Fa.A:var O=p[_++],R=p[_++],N=p[_++],E=p[_++],z=p[_++],V=p[_++],B=p[_++],F=!p[_++],G=N>E?N:E,W=$a(N-E)>.001,H=z+V,Y=!1;if(y)v+(j=l[m++])>u&&(H=z+V*(u-v)/j,Y=!0),v+=j;if(W&&t.ellipse?t.ellipse(O,R,N,E,B,z,H,F):t.arc(O,R,G,z,H,F),Y)break t;w&&(n=qa(z)*N+O,i=Ka(z)*E+R),r=qa(H)*N+O,o=Ka(H)*E+R;break;case Fa.R:n=r=p[_],i=o=p[_+1],a=p[_++],s=p[_++];var U=p[_++],X=p[_++];if(y){if(v+(j=l[m++])>u){var Z=u-v;t.moveTo(a,s),t.lineTo(a+Za(Z,U),s),(Z-=U)>0&&t.lineTo(a+U,s+Za(Z,X)),(Z-=X)>0&&t.lineTo(a+ja(U-Z,0),s+X),(Z-=U)>0&&t.lineTo(a,s+ja(X-Z,0));break t}v+=j}t.rect(a,s,U,X);break;case Fa.Z:if(y){var j;if(v+(j=l[m++])>u){I=(u-v)/j;t.lineTo(r*(1-I)+n*I,o*(1-I)+i*I);break t}v+=j}t.closePath(),r=n,o=i}}},t.prototype.clone=function(){var e=new t,n=this.data;return e.data=n.slice?n.slice():Array.prototype.slice.call(n),e._len=this._len,e},t.CMD=Fa,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}();function os(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||at+s&&o>n+s||oe+c&&h>i+c&&h>o+c&&h>s+c||ht+c&&u>n+c&&u>r+c&&u>a+c||ue+u&&l>i+u&&l>o+u||lt+u&&s>n+u&&s>r+u||sn||h+ur&&(r+=hs);var p=Math.atan2(l,s);return p<0&&(p+=hs),p>=i&&p<=r||p+hs>=i&&p+hs<=r}function ps(t,e,n,i,r,o){if(o>e&&o>i||or?s:0}var ds=rs.CMD,fs=2*Math.PI;var gs=[-1,-1,-1],ys=[-1,-1];function vs(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u1&&(h=void 0,h=ys[0],ys[0]=ys[1],ys[1]=h),f=vn(e,i,o,s,ys[0]),d>1&&(g=vn(e,i,o,s,ys[1]))),2===d?ve&&s>i&&s>o||s=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(gn(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=sn(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,gs);if(0===l)return 0;var u=Tn(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Mn(e,i,o,u),p=0;pn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);gs[0]=-l,gs[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=fs-1e-4){i=0,r=fs;var h=o?1:-1;return a>=gs[0]+t&&a<=gs[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=fs,r+=fs);for(var p=0,d=0;d<2;d++){var f=gs[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=fs+g),(g>=i&&g<=r||g+fs>=i&&g+fs<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function _s(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y1&&(n||(c+=ps(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case ds.M:p=f=u[y++],d=g=u[y++];break;case ds.L:if(n){if(os(p,d,u[y],u[y+1],e,i,r))return!0}else c+=ps(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case ds.C:if(n){if(as(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=vs(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case ds.Q:if(n){if(ss(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=ms(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case ds.A:var x=u[y++],_=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+x,a=Math.sin(S)*w+_,m?(f=o,g=a):c+=ps(p,d,o,a,i,r);var T=(i-x)*w/b+x;if(n){if(cs(x,_,w,S,S+M,I,e,T,r))return!0}else c+=xs(x,_,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+x,d=Math.sin(S+M)*w+_;break;case ds.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(os(f,g,o,g,e,i,r)||os(o,g,o,a,e,i,r)||os(o,a,f,a,e,i,r)||os(f,a,f,g,e,i,r))return!0}else c+=ps(o,g,o,a,i,r),c+=ps(f,a,f,g,i,r);break;case ds.Z:if(n){if(os(p,d,f,g,e,i,r))return!0}else c+=ps(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=ps(p,d,f,g,i,r)||0),0!==c}var bs=k({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ma),ws={style:k({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},xa.style)},Ss=gr.concat(["invisible","culling","z","z2","zlevel","parent"]),Ms=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s.5?or:e>.2?"#eee":ar}if(t)return ar}return or},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(X(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===ri(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=-5},e.prototype.getUpdatedPathProxy=function(t){return!this.path&&this.createPathProxy(),this.path.beginPath(),this.buildPath(this.path,this.shape,t),this.path},e.prototype.createPathProxy=function(){this.path=new rs(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var r=this.path;(i||4&this.__dirty)&&(r.beginPath(),this.buildPath(r,this.shape,!1),this.pathUpdated()),t=r.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){o.copy(t);var a=e.strokeNoScale?this.getLineScale():1,s=e.lineWidth;if(!this.hasFill()){var l=this.strokeContainThreshold;s=Math.max(s,null==l?4:l)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return _s(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return _s(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=4,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:A(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(4&this.__dirty)},e.prototype.createStyle=function(t){return mt(bs,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=A({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=A({},i.shape),A(s,n.shape)):(s=A({},r?this.shape:i.shape),A(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=A({},this.shape);for(var u={},h=G(s),c=0;c0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return mt(Is,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=_r(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(wa);Ts.prototype.type="tspan";var Cs=k({x:0,y:0},ma),Ds={style:k({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},xa.style)};var As=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return mt(Cs,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Ds},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Ee(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(wa);As.prototype.type="image";var ks=Math.round;function Ls(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(ks(2*i)===ks(2*r)&&(t.x1=t.x2=Os(i,s,!0)),ks(2*o)===ks(2*a)&&(t.y1=t.y2=Os(o,s,!0)),t):t}}function Ps(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Os(i,s,!0),t.y=Os(r,s,!0),t.width=Math.max(Os(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Os(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Os(t,e,n){if(!e)return t;var i=ks(2*t);return(i+ks(e))%2==0?i/2:(i+(n?1:-1))/2}var Rs=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ns={},Es=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Rs},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ps(Ns,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Ms);Es.prototype.type="rect";var zs={fill:"#000"},Vs={style:k({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},xa.style)},Bs=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=zs,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;ed&&h){var f=Math.floor(d/l);n=n.slice(0,f)}if(t&&a&&null!=c)for(var g=sa(c,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),y=0;y0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,D=0;Dl&&da(n,t.substring(l,u),e,s),da(n,i[2],e,s,i[1]),l=oa.lastIndex}lo){b>0?(m.tokens=m.tokens.slice(0,b),y(m,_,x),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,D=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=mr(P.text,I);else{if(D){var A=w.backgroundColor,k=A&&A.image;k&&ra(k=ea(k))&&(P.width=Math.max(P.width,k.width*T/k.height))}var L=f&&null!=r?r-_:null;null!=L&&L=0&&"right"===(C=x[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=x[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,s){var l=e.rich[t.styleName]||{};l.text=t.text;var u=t.verticalAlign,h=i+n/2;"top"===u?h=i+t.height/2:"bottom"===u&&(h=i+n-t.height/2),!t.isLineHolder&&$s(l)&&this._renderBackground(l,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,h-t.height/2,t.width,t.height);var c=!!l.backgroundColor,p=t.textPadding;p&&(r=qs(r,o,p),h-=t.height/2-p[0]-t.innerHeight/2);var d=this._getOrCreateChild(Ts),f=d.createStyle();d.useStyle(f);var g=this._defaultStyle,y=!1,v=0,m=js("fill"in l?l.fill:"fill"in e?e.fill:(y=!0,g.fill)),x=Zs("stroke"in l?l.stroke:"stroke"in e?e.stroke:c||s||g.autoStroke&&!y?null:(v=2,g.stroke)),_=l.textShadowBlur>0||e.textShadowBlur>0;f.text=t.text,f.x=r,f.y=h,_&&(f.shadowBlur=l.textShadowBlur||e.textShadowBlur||0,f.shadowColor=l.textShadowColor||e.textShadowColor||"transparent",f.shadowOffsetX=l.textShadowOffsetX||e.textShadowOffsetX||0,f.shadowOffsetY=l.textShadowOffsetY||e.textShadowOffsetY||0),f.textAlign=o,f.textBaseline="middle",f.font=t.font||a,f.opacity=ot(l.opacity,e.opacity,1),Ys(f,l),x&&(f.lineWidth=ot(l.lineWidth,e.lineWidth,v),f.lineDash=rt(l.lineDash,e.lineDash),f.lineDashOffset=e.lineDashOffset||0,f.stroke=x),m&&(f.fill=m);var b=t.contentWidth,w=t.contentHeight;d.setBoundingRect(new Ee(br(f.x,b,f.textAlign),wr(f.y,w,f.textBaseline),b,w))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=u&&u.image,d=u&&!p,f=t.borderRadius,g=this;if(d||t.lineHeight||h&&c){(a=this._getOrCreateChild(Es)).useStyle(a.createStyle()),a.style.fill=null;var y=a.shape;y.x=n,y.y=i,y.width=r,y.height=o,y.r=f,a.dirtyShape()}if(d)(l=a.style).fill=u||null,l.fillOpacity=rt(t.fillOpacity,1);else if(p){(s=this._getOrCreateChild(As)).onload=function(){g.dirtyStyle()};var v=s.style;v.image=u.image,v.x=n,v.y=i,v.width=r,v.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=rt(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var m=(a||s).style;m.shadowBlur=t.shadowBlur||0,m.shadowColor=t.shadowColor||"transparent",m.shadowOffsetX=t.shadowOffsetX||0,m.shadowOffsetY=t.shadowOffsetY||0,m.opacity=ot(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";return Us(t)&&(e=[t.fontStyle,t.fontWeight,Hs(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),e&&ut(e)||t.textFont||t.font},e}(wa),Fs={left:!0,right:1,center:1},Gs={top:1,bottom:1,middle:1},Ws=["fontStyle","fontWeight","fontSize","fontFamily"];function Hs(t){return"string"!=typeof t||-1===t.indexOf("px")&&-1===t.indexOf("rem")&&-1===t.indexOf("em")?isNaN(+t)?"12px":t+"px":t}function Ys(t,e){for(var n=0;n=0,o=!1;if(t instanceof Ms){var a=nl(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(pl(s)||pl(l)){var u=(i=i||{}).style||{};"inherit"===u.fill?(o=!0,i=A({},i),(u=A({},u)).fill=s):!pl(u.fill)&&pl(s)?(o=!0,i=A({},i),(u=A({},u)).fill=fl(s)):!pl(u.stroke)&&pl(l)&&(o||(i=A({},i),u=A({},u)),u.stroke=fl(l)),i.style=u}}if(i&&null==i.z2){o||(i=A({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:al)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=P(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Wl(t,e,n){jl(t,!0),Sl(t,Tl),Yl(t,e,n)}function Hl(t,e,n,i){i?function(t){jl(t,!1)}(t):Wl(t,e,n)}function Yl(t,e,n){var i=Js(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var Ul=["emphasis","blur","select"],Xl={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Zl(t,e,n,i){n=n||"itemStyle";for(var r=0;r1&&(a*=iu(f),s*=iu(f));var g=(r===o?-1:1)*iu((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+ou(c)*y-ru(c)*v,x=(e+i)/2+ru(c)*y+ou(c)*v,_=uu([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=uu(b,w);if(lu(b,w)<=-1&&(S=au),lu(b,w)>=1&&(S=0),S<0){var M=Math.round(S/au*1e6)/1e6;S=2*au+M%2*au}h.addData(u,m,x,a,s,_,S,c,o)}var cu=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,pu=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var du=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(Ms);function fu(t){return null!=t.setData}function gu(t,e){var n=function(t){var e=new rs;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=rs.CMD,l=t.match(cu);if(!l)return e;for(var u=0;uk*k+L*L&&(M=T,I=C),{cx:M,cy:I,x0:-h,y0:-c,x1:M*(r/b-1),y1:I*(r/b-1)}}function Ru(t,e){var n,i=ku(e.r,0),r=ku(e.r0||0,0),o=i>0;if(o||r>0){if(o||(i=r,r=0),r>i){var a=i;i=r,r=a}var s=e.startAngle,l=e.endAngle;if(!isNaN(s)&&!isNaN(l)){var u=e.cx,h=e.cy,c=!!e.clockwise,p=Du(l-s),d=p>Su&&p%Su;if(d>Pu&&(p=d),i>Pu)if(p>Su-Pu)t.moveTo(u+i*Iu(s),h+i*Mu(s)),t.arc(u,h,i,s,l,!c),r>Pu&&(t.moveTo(u+r*Iu(l),h+r*Mu(l)),t.arc(u,h,r,l,s,c));else{var f=void 0,g=void 0,y=void 0,v=void 0,m=void 0,x=void 0,_=void 0,b=void 0,w=void 0,S=void 0,M=void 0,I=void 0,T=void 0,C=void 0,D=void 0,A=void 0,k=i*Iu(s),L=i*Mu(s),P=r*Iu(l),O=r*Mu(l),R=p>Pu;if(R){var N=e.cornerRadius;N&&(n=function(t){var e;if(Y(t)){var n=t.length;if(!n)return t;e=1===n?[t[0],t[0],0,0]:2===n?[t[0],t[0],t[1],t[1]]:3===n?t.concat(t[2]):t}else e=[t,t,t,t];return e}(N),f=n[0],g=n[1],y=n[2],v=n[3]);var E=Du(i-r)/2;if(m=Lu(E,y),x=Lu(E,v),_=Lu(E,f),b=Lu(E,g),M=w=ku(m,x),I=S=ku(_,b),(w>Pu||S>Pu)&&(T=i*Iu(l),C=i*Mu(l),D=r*Iu(s),A=r*Mu(s),pPu){var U=Lu(y,M),X=Lu(v,M),Z=Ou(D,A,k,L,i,U,c),j=Ou(T,C,P,O,i,X,c);t.moveTo(u+Z.cx+Z.x0,h+Z.cy+Z.y0),M0&&t.arc(u+Z.cx,h+Z.cy,U,Cu(Z.y0,Z.x0),Cu(Z.y1,Z.x1),!c),t.arc(u,h,i,Cu(Z.cy+Z.y1,Z.cx+Z.x1),Cu(j.cy+j.y1,j.cx+j.x1),!c),X>0&&t.arc(u+j.cx,h+j.cy,X,Cu(j.y1,j.x1),Cu(j.y0,j.x0),!c))}else t.moveTo(u+k,h+L),t.arc(u,h,i,s,l,!c);else t.moveTo(u+k,h+L);if(r>Pu&&R)if(I>Pu){U=Lu(f,I),Z=Ou(P,O,T,C,r,-(X=Lu(g,I)),c),j=Ou(k,L,D,A,r,-U,c);t.lineTo(u+Z.cx+Z.x0,h+Z.cy+Z.y0),I0&&t.arc(u+Z.cx,h+Z.cy,X,Cu(Z.y0,Z.x0),Cu(Z.y1,Z.x1),!c),t.arc(u,h,r,Cu(Z.cy+Z.y1,Z.cx+Z.x1),Cu(j.cy+j.y1,j.cx+j.x1),c),U>0&&t.arc(u+j.cx,h+j.cy,U,Cu(j.y1,j.x1),Cu(j.y0,j.x0),!c))}else t.lineTo(u+P,h+O),t.arc(u,h,r,l,s,c);else t.lineTo(u+P,h+O)}else t.moveTo(u,h);t.closePath()}}}var Nu=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0},Eu=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Nu},e.prototype.buildPath=function(t,e){Ru(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(Ms);Eu.prototype.type="sector";var zu=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Vu=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new zu},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(Ms);function Bu(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;prh[1]){if(a=!1,r)return a;var u=Math.abs(rh[0]-ih[1]),h=Math.abs(ih[0]-rh[1]);Math.min(u,h)>i.len()&&(u0){var c={duration:h.duration,delay:h.delay||0,easing:h.easing,done:o,force:!!o||!!a,setToFinal:!u,scope:t,during:a};l?e.animateFrom(n,c):e.animateTo(n,c)}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function dh(t,e,n,i,r,o){ph("update",t,e,n,i,r,o)}function fh(t,e,n,i,r,o){ph("enter",t,e,n,i,r,o)}function gh(t){if(!t.__zr)return!0;for(var e=0;eMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Vh(t){return!t.isGroup}function Bh(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Vh(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Vh(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),dh(t,i,n,Js(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=A({},t.shape)),e}}function Fh(t,e){return z(t,(function(t){var n=t[0];n=_h(n,e.x),n=bh(n,e.x+e.width);var i=t[1];return i=_h(i,e.y),[n,i=bh(i,e.y+e.height)]}))}function Gh(t,e){var n=_h(t.x,e.x),i=bh(t.x+t.width,e.x+e.width),r=_h(t.y,e.y),o=bh(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Wh(t,e,n){var i=A({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),k(r,n),new As(i)):Dh(t.replace("path://",""),i,n,"center")}function Hh(t,e,n,i,r){for(var o=0,a=r[r.length-1];o=-1e-6)return!1;var f=t-r,g=e-o,y=Uh(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Uh(f,g,c,p)/d;return!(v<0||v>1)}function Uh(t,e,n,i){return t*i-n*e}function Xh(t){var e=t.itemTooltipOption,n=t.componentModel,i=t.itemName,r=X(e)?{formatter:e}:e,o=n.mainType,a=n.componentIndex,s={componentType:o,name:i,$vars:["name"]};s[o+"Index"]=a;var l=t.formatterParamsExtra;l&&E(G(l),(function(t){_t(s,t)||(s[t]=l[t],s.$vars.push(t))}));var u=Js(t.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:i,option:k({content:i,formatterParams:s},r)}}function Zh(t,e){var n;t.isGroup&&(n=e(t)),n||t.traverse(e)}function jh(t,e){if(t)if(Y(t))for(var n=0;n-1?Cc:Ac;function Oc(t,e){t=t.toUpperCase(),Lc[t]=new Sc(e),kc[t]=e}function Rc(t){return Lc[t]}Oc(Dc,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Oc(Cc,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Nc=1e3,Ec=6e4,zc=36e5,Vc=864e5,Bc=31536e6,Fc={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},Gc="{yyyy}-{MM}-{dd}",Wc={year:"{yyyy}",month:"{yyyy}-{MM}",day:Gc,hour:"{yyyy}-{MM}-{dd} "+Fc.hour,minute:"{yyyy}-{MM}-{dd} "+Fc.minute,second:"{yyyy}-{MM}-{dd} "+Fc.second,millisecond:Fc.none},Hc=["year","month","day","hour","minute","second","millisecond"],Yc=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Uc(t,e){return"0000".substr(0,e-(t+="").length)+t}function Xc(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function Zc(t){return t===Xc(t)}function jc(t,e,n,i){var r=io(t),o=r[$c(n)](),a=r[Jc(n)]()+1,s=Math.floor((a-1)/3)+1,l=r[Qc(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[tp(n)](),c=(h-1)%12+1,p=r[ep(n)](),d=r[np(n)](),f=r[ip(n)](),g=(i instanceof Sc?i:Rc(i||Pc)||Lc.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),x=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Uc(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Uc(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Uc(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Uc(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Uc(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Uc(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Uc(f,3)).replace(/{S}/g,f+"")}function qc(t,e){var n=io(t),i=n[Jc(e)]()+1,r=n[Qc(e)](),o=n[tp(e)](),a=n[ep(e)](),s=n[np(e)](),l=0===n[ip(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function Kc(t,e,n){var i=j(t)?io(t):t;switch(e=e||qc(t,n)){case"year":return i[$c(n)]();case"half-year":return i[Jc(n)]()>=6?1:0;case"quarter":return Math.floor((i[Jc(n)]()+1)/4);case"month":return i[Jc(n)]();case"day":return i[Qc(n)]();case"half-day":return i[tp(n)]()/24;case"hour":return i[tp(n)]();case"minute":return i[ep(n)]();case"second":return i[np(n)]();case"millisecond":return i[ip(n)]()}}function $c(t){return t?"getUTCFullYear":"getFullYear"}function Jc(t){return t?"getUTCMonth":"getMonth"}function Qc(t){return t?"getUTCDate":"getDate"}function tp(t){return t?"getUTCHours":"getHours"}function ep(t){return t?"getUTCMinutes":"getMinutes"}function np(t){return t?"getUTCSeconds":"getSeconds"}function ip(t){return t?"getUTCMilliseconds":"getMilliseconds"}function rp(t){return t?"setUTCFullYear":"setFullYear"}function op(t){return t?"setUTCMonth":"setMonth"}function ap(t){return t?"setUTCDate":"setDate"}function sp(t){return t?"setUTCHours":"setHours"}function lp(t){return t?"setUTCMinutes":"setMinutes"}function up(t){return t?"setUTCSeconds":"setSeconds"}function hp(t){return t?"setUTCMilliseconds":"setMilliseconds"}function cp(t){if(!ho(t))return X(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function pp(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var dp=st;function fp(t,e,n){function i(t){return t&&ut(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?io(t):t;if(!isNaN(+s))return jc(s,"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}",n);if(a)return"-"}if("ordinal"===e)return Z(t)?i(t):j(t)&&r(t)?t+"":"-";var l=uo(t);return r(l)?cp(l):Z(t)?i(t):"boolean"==typeof t?t+"":"-"}var gp=["a","b","c","d","e","f","g"],yp=function(t,e){return"{"+t+(null==e?"":e)+"}"};function vp(t,e,n){Y(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o':'':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|} ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function xp(t,e){return e=e||"transparent",X(t)?t:q(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function _p(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var bp=E,wp=["left","right","top","bottom","width","height"],Sp=[["width","left","right"],["height","top","bottom"]];function Mp(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var Ip=Mp;H(Mp,"vertical"),H(Mp,"horizontal");function Tp(t,e,n){n=dp(n||0);var i=e.width,r=e.height,o=Ur(t.left,i),a=Ur(t.top,r),s=Ur(t.right,i),l=Ur(t.bottom,r),u=Ur(t.width,i),h=Ur(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new Ee(o+n[3],a+n[0],u,h);return f.margin=n,f}function Cp(t,e,n,i,r,o){var a,s=!r||!r.hv||r.hv[0],l=!r||!r.hv||r.hv[1],u=r&&r.boundingMode||"all";if((o=o||t).x=t.x,o.y=t.y,!s&&!l)return!1;if("raw"===u)a="group"===t.type?new Ee(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(a=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(a=a.clone()).applyTransform(h)}var c=Tp(k({width:a.width,height:a.height},e),n,i),p=s?c.x-a.x:0,d=l?c.y-a.y:0;return"raw"===u?(o.x=p,o.y=d):(o.x+=p,o.y+=d),o===t&&t.markRedraw(),!0}function Dp(t){var e=t.layoutMode||t.constructor.layoutMode;return q(e)?e:e?{type:e}:null}function Ap(t,e,n){var i=n&&n.ignoreSize;!Y(i)&&(i=[i,i]);var r=a(Sp[0],0),o=a(Sp[1],1);function a(n,r){var o={},a=0,u={},h=0;if(bp(n,(function(e){u[e]=t[e]})),bp(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c=0;a--)o=C(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponentes=function(t,e){var n=t+"Index",i=t+"Id";return Vo(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Sc);Xo(Op,Sc),Ko(Op),function(t){var e={};t.RegistroSubTypeDefaulter=function(t,n){var i=Yo(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Yo(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Op),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return E(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return E(t,(function(t){P(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),E(s,(function(t){P(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);P(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(E(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),E(c.successor,p?f:d)}E(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(Op,(function(t){var e=[];E(Op.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=z(e,(function(t){return Yo(t).main})),"dataset"!==t&&P(e,"dataset")<=0&&e.unshift("dataset");return e}));var Rp="";"undefined"!=typeof navigator&&(Rp=navigator.platform||"");var Np="rgba(0, 0, 0, 0.2)",Ep={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Np,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Np,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Np,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Np,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Np,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Np,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Rp.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},zp=yt(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),Vp="original",Bp="arrayRows",Fp="objectRows",Gp="keyedColumns",Wp="typedArray",Hp="unknown",Yp="column",Up="row",Xp=1,Zp=2,jp=3,qp=Po();function Kp(t,e,n){var i={},r=Jp(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=qp(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;E(t=t.slice(),(function(e,n){var r=q(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;ie)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var hd=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Sc(i),this._locale=new Sc(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=dd(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,dd(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);0,this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):rd(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&E(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._ComponentesMap,r=this._ComponentesCount,o=[],a=yt(),s=e&&e.replaceMergeMainTypeMap;qp(this).datasetMap=yt(),E(t,(function(t,e){null!=t&&(Op.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?T(t):C(n[e],t,!0))})),s&&s.each((function(t,e){Op.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),Op.topologicalTravel(o,Op.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=ed.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,_o(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=Io(a,o,l);(function(t,e,n){E(t,(function(t){var i=t.newOption;q(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Op),n[e]=null,i.set(e,null),r.set(e,0);var h,c=[],p=[],d=0;E(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o="series"===e,a=Op.getClass(e,t.keyInfo.subType,!o);if(!a)return;if("tooltip"===e){if(h)return void 0;h=!0}if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var s=A({componentIndex:n},t.keyInfo);A(i=new a(r,this,this,s),s),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(c.push(i.option),p.push(i),d++):(c.push(void 0),p.push(void 0))}),this),n[e]=c,i.set(e,p),r.set(e,d),"series"===e&&nd(this)}),this),this._seriesIndices||nd(this)},e.prototype.getOption=function(){var t=T(this.option);return E(t,(function(e,n){if(Op.hasClass(n)){for(var i=_o(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!ko(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._ComponentesMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var bd=E,wd=q,Sd=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Md(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Sd.length;n=0;g--){var y=t[g];if(s||(p=y.data.rawIndexOf(y.stackedByDimension,c)),p>=0){var v=y.data.getByRawIndex(y.stackResultDimension,p);if("all"===l||"positive"===l&&v>0||"negative"===l&&v<0||"samesign"===l&&d>=0&&v>0||"samesign"===l&&d<=0&&v<0){d=Jr(d,v),f=v;break}}}return i[0]=d,i[1]=f,i}))}))}var Wd,Hd,Yd,Ud,Xd,Zd=function(t){this.data=t.data||(t.sourceFormat===Gp?{}:[]),this.sourceFormat=t.sourceFormat||Hp,this.seriesLayoutBy=t.seriesLayoutBy||Yp,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var e=this.dimensionsDefine=t.dimensionsDefine;if(e)for(var n=0;nu&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e=0&&(s=o.interpolatedValue[l])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return df(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function yf(t){var e,n;return q(t)?t.type&&(n=t):e=t,{text:e,frag:n}}function vf(t){return new mf(t)}var mf=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p1&&i>0?s:a}};return o;function a(){return e=t?null:oe},gte:function(t,e){return t>=e}},Mf=function(){function t(t,e){if(!j(e)){var n="";0,yo(n)}this._opFn=Sf[t],this._rvalFloat=uo(e)}return t.prototype.evaluate=function(t){return j(t)?this._opFn(t,this._rvalFloat):this._opFn(uo(t),this._rvalFloat)},t}(),If=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=j(t)?t:uo(t),i=j(e)?e:uo(e),r=isNaN(n),o=isNaN(i);if(r&&(n=this._incomparable),o&&(i=this._incomparable),r&&o){var a=X(t),s=X(e);a&&(n=s?t:0),s&&(i=a?e:0)}return ni?-this._resultLT:0},t}(),Tf=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=uo(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=uo(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Cf(t,e){return"eq"===t||"ne"===t?new Tf("eq"===t,e):_t(Sf,t)?new Mf(t,e):null}var Df=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return _f(t,e)},t}();function Af(t){var e=t.sourceFormat;if(!Nf(e)){var n="";0,yo(n)}return t.data}function kf(t){var e=t.sourceFormat,n=t.data;if(!Nf(e)){var i="";0,yo(i)}if(e===Bp){for(var r=[],o=0,a=n.length;o65535?Vf:Bf}function Yf(t,e,n,i,r){var o=Wf[n||"float"];if(r){var a=t[e],s=a&&a.length;if(s!==i){for(var l=new o(i),u=0;ug[1]&&(g[1]=f)}return this._rawCount=this._count=s,{start:a,end:s}},t.prototype._initDataFromProvider=function(t,e,n){for(var i=this._provider,r=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,l=z(o,(function(t){return t.property})),u=0;uy[1]&&(y[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent=[]},t.prototype.count=function(){return this._count},t.prototype.get=function(t,e){if(!(e>=0&&e=0&&e=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r=u&&x<=h||isNaN(x))&&(a[s++]=d),d++}p=!0}else if(2===r){f=c[i[0]];var y=c[i[1]],v=t[i[1]][0],m=t[i[1]][1];for(g=0;g=u&&x<=h||isNaN(x))&&(_>=v&&_<=m||isNaN(_))&&(a[s++]=d),d++}p=!0}}if(!p)if(1===r)for(g=0;g=u&&x<=h||isNaN(x))&&(a[s++]=b)}else for(g=0;gt[M][1])&&(w=!1)}w&&(a[s++]=e.getRawIndex(g))}return sy[1]&&(y[1]=g)}}}},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=this.clone([t],!0),a=o._chunks[t],s=this.count(),l=0,u=Math.floor(1/e),h=this.getRawIndex(0),c=new(Hf(this._rawCount))(Math.min(2*(Math.ceil(s/u)+2),s));c[l++]=h;for(var p=1;pn&&(n=i,r=I)}M>0&&M<_-x&&(c[l++]=Math.min(S,r),r=Math.max(S,r)),c[l++]=r,h=r}return c[l++]=this.getRawIndex(s-1),o._count=l,o._indices=c,o.getRawIndex=this._getRawIdx,o},t.prototype.downSample=function(t,e,n,i){for(var r=this.clone([t],!0),o=r._chunks,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=r._rawExtent[t]=[1/0,-1/0],c=new(Hf(this._rawCount))(Math.ceil(u/s)),p=0,d=0;du-d&&(s=u-d,a.length=s);for(var f=0;fh[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r._updateGetRawIdx(),r},t.prototype.each=function(t,e){if(this._count)for(var n=t.length,i=this._chunks,r=0,o=this.count();ra&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getRawDataItem=function(t){var e=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(e);for(var n=[],i=this._chunks,r=0;r=0?this._indices[t]:-1},t.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},t.internalField=function(){function t(t,e,n,i){return _f(t[i],this._dimensions[i])}Ef={arrayRows:t,objectRows:function(t,e,n,i){return _f(t[e],this._dimensions[i])},keyedColumns:t,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return _f(r instanceof Array?r[i]:r,this._dimensions[i])},typedArray:function(t,e,n,i){return t[i]}}}(),t}(),Xf=function(){function t(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(jf(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=$(a=o.get("data",!0))?Wp:Vp,e=[];var h=this._getSourceMetaRawOption()||{},c=l&&l.metaRawOption||{},p=rt(h.seriesLayoutBy,c.seriesLayoutBy)||null,d=rt(h.sourceHeader,c.sourceHeader),f=rt(h.dimensions,c.dimensions);t=p!==c.seriesLayoutBy||!!d!=!!c.sourceHeader||f?[qd(a,{seriesLayoutBy:p,sourceHeader:d,dimensions:f},s)]:[]}else{var g=n;if(r){var y=this._applyTransform(i);t=y.sourceList,e=y.upstreamSignList}else{t=[qd(g.get("source",!0),this._getSourceMetaRawOption(),null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&qf(o)}var a,s=[],l=[];return E(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||qf(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=_o(t),r=i.length,o="";r||yo(o);for(var a=0,s=r;a1||n>0&&!t.noHeader;return E(t.blocks,(function(t){var n=ng(t);n>=e&&(e=n+ +(i&&(!n||tg(t)&&!t.noHeader)))})),e}return 0}function ig(t,e,n,i){var r,o=e.noHeader,a=(r=ng(e),{html:$f[r],richText:Jf[r]}),s=[],l=e.blocks||[];lt(!l||Y(l)),l=l||[];var u=t.orderMode;if(e.sortBlocks&&u){l=l.slice();var h={valueAsc:"asc",valueDesc:"desc"};if(_t(h,u)){var c=new If(h[u],null);l.sort((function(t,e){return c.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===u&&l.reverse()}E(l,(function(n,r){var o=e.valueFormatter,l=eg(n)(o?A(A({},t),{valueFormatter:o}):t,n,r>0?a.html:0,i);null!=l&&s.push(l)}));var p="richText"===t.renderMode?s.join(a.richText):ag(s.join(""),o?n:a.html);if(o)return p;var d=fp(e.header,"ordinal",t.useUTC),f=Kf(i,t.renderMode).nameStyle;return"richText"===t.renderMode?sg(t,d,f)+a.richText+p:ag('
        '+ie(d)+"
        "+p,n)}function rg(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=t.useUTC,h=e.valueFormatter||t.valueFormatter||function(t){return z(t=Y(t)?t:[t],(function(t,e){return fp(t,Y(d)?d[e]:d,u)}))};if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":fp(l,"ordinal",u),d=e.valueType,f=a?[]:h(e.value),g=!s||!o,y=!s&&o,v=Kf(i,r),m=v.nameStyle,x=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":sg(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(Y(e)?e.join(" "):e,o)}(t,f,g,y,x)):ag((s?"":c)+(o?"":function(t,e,n){return''+ie(t)+""}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px",o=e?"float:right;margin-left:"+r:"";return t=Y(t)?t:[t],''+z(t,(function(t){return ie(t)})).join("  ")+""}(f,g,y,x)),n)}}function og(t,e,n,i,r,o){if(t)return eg(t)({useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter},t,0,o)}function ag(t,e){return'
        '+t+'
        '}function sg(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function lg(t,e){return xp(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function ug(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var hg=function(){function t(){this.richTextStyles={},this._nextStyleNameId=co()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=mp({color:e,type:t,renderMode:n,markerId:i});return X(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};Y(e)?E(e,(function(t){return A(n,t)})):A(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function cg(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=Y(c),d=lg(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=V(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(Qf("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?E(i,(function(t){h(df(o,n,t),t)})):E(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=df(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=Ao(o),v=y&&o.name||"",m=l.getName(a),x=s?v:m;return Qf("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Qf("nameValue",{markerType:"item",markerColor:d,name:x,noName:!ut(x),value:e,valueType:n})].concat(i||[])})}var pg=Po();function dg(t,e){return t.getName(e)||t.getId(e)}var fg=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=vf({count:yg,reset:vg}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(pg(this).sourceManager=new Xf(this)).prepareSource();var i=this.getInitialData(t,n);xg(i,this),this.dataTask.context.data=i,pg(this).dataBeforeProcessed=i,gg(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Dp(this),i=n?kp(t):{},r=this.subType;Op.hasClass(r)&&(r+="Series"),C(t,e.getTheme().get(this.subType)),C(t,this.getDefaultOption()),bo(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Ap(t,i,n)},e.prototype.mergeOption=function(t,e){t=C(this.option,t,!0),this.fillDataTextStyle(t.data);var n=Dp(this);n&&Ap(this.option,t,n);var i=pg(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);xg(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,pg(this).dataBeforeProcessed=r,gg(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!$(t))for(var e=["show"],n=0;nthis.getShallow("animationThreshold")&&(e=!1),!!e},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=sd.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,r=this.getData(e);if("series"===i||"all"===n)return this.option.selectedMap={},void(this._selectedDataIndicesMap={});for(var o=0;o=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(e);return("all"===n||n[dg(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this.__universalTransitionEnabled)return!0;var t=this.option.universalTransition;return!!t&&(!0===t||t&&t.enabled)},e.prototype._innerSelect=function(t,e){var n,i,r=this.option,o=r.selectedMode,a=e.length;if(o&&a)if("series"===o)r.selectedMap="all";else if("multiple"===o){q(r.selectedMap)||(r.selectedMap={});for(var s=r.selectedMap,l=0;l0&&this._innerSelect(t,e)}},e.RegistroClass=function(t){return Op.RegistroClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Op);function gg(t){var e=t.name;Ao(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return E(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function yg(t){return t.model.getRawData().count()}function vg(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),mg}function mg(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function xg(t,e){E(vt(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,H(_g,e))}))}function _g(t,e){var n=bg(t);return n&&n.setOutputEnd((e||this).count()),e}function bg(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}R(fg,gf),R(fg,sd),Xo(fg,Op);var wg=function(){function t(){this.group=new Er,this.uid=Ic("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.toggleBlurSeries=function(t,e,n){},t.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)},t}();function Sg(){var t=Po();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Uo(wg),Ko(wg);var Mg=Po(),Ig=Sg(),Tg=function(){function t(){this.group=new Er,this.uid=Ic("viewChart"),this.renderTask=vf({plan:Ag,reset:kg}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){0},t.prototype.highlight=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&Dg(r,i,"emphasis")},t.prototype.downplay=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&Dg(r,i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.eachRendered=function(t){jh(this.group,t)},t.markUpdateMethod=function(t,e){Mg(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Cg(t,e,n){t&&ql(t)&&("emphasis"===e?Al:kl)(t,n)}function Dg(t,e,n){var i=Lo(t,e),r=e&&null!=e.highlightKey?function(t){var e=el[t];return null==e&&tl<=32&&(e=el[t]=tl++),e}(e.highlightKey):null;null!=i?E(_o(i),(function(e){Cg(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Cg(t,n,r)}))}function Ag(t){return Ig(t.model)}function kg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Mg(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Lg[l]}Uo(Tg),Ko(Tg);var Lg={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Pg="\0__throttleOriginMethod",Og="\0__throttleRate",Rg="\0__throttleType";function Ng(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Eg(t,e,n,i){var r=t[e];if(r){var o=r[Pg]||r,a=r[Rg];if(r[Og]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Ng(o,n,"debounce"===i))[Pg]=o,r[Rg]=i,r[Og]=n}return r}}function zg(t,e){var n=t[e];n&&n[Pg]&&(n.clear&&n.clear(),t[e]=n[Pg])}var Vg=Po(),Bg={itemStyle:$o(_c,!0),lineStyle:$o(vc,!0)},Fg={lineStyle:"stroke",itemStyle:"fill"};function Gg(t,e){var n=t.visualStyleMapper||Bg[e];return n||(console.warn("Unknown style type '"+e+"'."),Bg.itemStyle)}function Wg(t,e){var n=t.visualDrawType||Fg[e];return n||(console.warn("Unknown style type '"+e+"'."),"fill")}var Hg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Gg(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=Wg(t,i),l=o[s],u=U(l)?l:null,h="auto"===o.fill||"auto"===o.stroke;if(!o[s]||u||h){var c=t.getColorFromPalette(t.name,null,e.getSeriesCount());o[s]||(o[s]=c,n.setVisual("colorFromPalette",!0)),o.fill="auto"===o.fill||U(o.fill)?c:o.fill,o.stroke="auto"===o.stroke||U(o.stroke)?c:o.stroke}if(n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=A({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},Yg=new Sc,Ug={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Gg(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){Yg.option=n[i];var a=r(Yg);A(t.ensureUniqueItemVisual(e,"style"),a),Yg.option.decal&&(t.setItemVisual(e,"decal",Yg.option.decal),Yg.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Xg={performRawSeries:!0,overallReset:function(t){var e=yt();t.eachSeries((function(t){var n=t.getColorBy();if(!t.isColorBySeries()){var i=t.type+"-"+n,r=e.get(i);r||(r={},e.set(i,r)),Vg(t).scope=r}})),t.eachSeries((function(e){if(!e.isColorBySeries()&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Vg(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Wg(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Zg=Math.PI;var jg=function(){function t(t,e,n,i){this._stageTaskMap=yt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=yt();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;E(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";lt(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._perFormulariostageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._perFormulariostageTasks(this._visualHandlers,t,e,n)},t.prototype._perFormulariostageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}E(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.perFormularioseriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=yt(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||vf({plan:Qg,reset:ty,count:iy}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||vf({reset:qg});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=yt(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,vf({reset:Kg,onDirty:Jg})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}lt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,E(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return U(t)&&(t={overallReset:t,seriesType:ry(t)}),t.uid=Ic("stageHandler"),e&&(t.visualType=e),t},t}();function qg(t){t.overallReset(t.ecModel,t.api,t.payload)}function Kg(t){return t.overallProgress&&$g}function $g(){this.agent.dirty(),this.getDownstream().dirty()}function Jg(){this.agent&&this.agent.dirty()}function Qg(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function ty(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=_o(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?z(e,(function(t,e){return ny(e)})):ey}var ey=ny(0);function ny(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),vy=["symbol","symbolSize","symbolRotate","symbolOffset"],my=vy.concat(["symbolKeepAspect"]),xy={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendIcon&&n.setVisual("legendIcon",t.legendIcon),t.hasSymbolVisual){for(var i={},r={},o=!1,a=0;a=0&&Gy(l)?l:.5,t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=Gy(i)?i:0,r=Gy(r)?r:1,o=Gy(o)?o:0,a=Gy(a)?a:0,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o0&&(e=i.lineDash,n=i.lineWidth,e&&"solid"!==e&&n>0?"dashed"===e?[4*n,2*n]:"dotted"===e?[n]:j(e)?[e]:Y(e)?e:null:null),o=i.lineDashOffset;if(r){var a=i.strokeNoScale&&t.getLineScale?t.getLineScale():1;a&&1!==a&&(r=z(r,(function(t){return t/a})),o/=a)}return[r,o]}var Xy=new rs(!0);function Zy(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function jy(t){return"string"==typeof t&&"none"!==t}function qy(t){var e=t.fill;return null!=e&&"none"!==e}function Ky(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function $y(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Jy(t,e,n){var i=na(e.image,e.__image,n);if(ra(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix&&r&&r.setTransform){var o=new DOMMatrix;o.translateSelf(e.x||0,e.y||0),o.rotateSelf(0,0,(e.rotation||0)*wt),o.scaleSelf(e.scaleX||1,e.scaleY||1),r.setTransform(o)}return r}}var Qy=["shadowBlur","shadowOffsetX","shadowOffsetY"],tv=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function ev(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;if(i||e.opacity!==n.opacity){rv(t,r),o=!0;var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?ma.opacity:a}(i||e.blend!==n.blend)&&(o||(rv(t,r),o=!0),t.globalCompositeOperation=e.blend||ma.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,e,n){if(!this.__flagInMainProcess)if(this._disposed)qv(this.id);else{var i,r,o;if(q(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new xd(this._api),s=this._theme,l=this._model=new hd;l.scheduler=this._scheduler,l.ssr=this._ssr,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Qv);var u={seriesTransition:o,optionChanged:!0};if(n)this.__pendingUpdate={silent:i,updateParams:u},this.__flagInMainProcess=!1,this.getZr().wakeUp();else{try{Tv(this),Av.update.call(this,null,u)}catch(t){throw this.__pendingUpdate=null,this.__flagInMainProcess=!1,t}this._ssr||this._zr.flush(),this.__pendingUpdate=null,this.__flagInMainProcess=!1,Ov.call(this,i),Rv.call(this,i)}}},e.prototype.setTheme=function(){go()},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||r.hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){t=t||{};var e=this._zr.painter;return e.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){t=t||{};var e=this._zr.painter;return e.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(r.svgSupported){var t=this._zr;return E(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponentes,n=this._model,i=[],r=this;E(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._ComponentesMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return E(i,(function(t){t.group.ignore=!1})),o}qv(this.id)},e.prototype.getConnectedDataURL=function(t){if(!this._disposed){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(rm[n]){var a=o,s=o,l=-1/0,u=-1/0,c=[],p=t&&t.pixelRatio||this.getDevicePixelRatio();E(im,(function(o,h){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.renderToCanvas(T(t)),d=o.getDom().getBoundingClientRect();a=i(d.left,a),s=i(d.top,s),l=r(d.right,l),u=r(d.bottom,u),c.push({dom:p,left:d.left,top:d.top})}}));var d=(l*=p)-(a*=p),f=(u*=p)-(s*=p),g=h.createCanvas(),y=Fr(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return E(c,(function(t){var e=t.left-a,n=t.top-s;v+=''+t.dom+""})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Es({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),E(c,(function(t){var e=new As({style:{x:t.left*p-a,y:t.top*p-s,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}qv(this.id)},e.prototype.convertToPixel=function(t,e){return kv(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return kv(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return E(Ro(this._model,t),(function(t,i){i.indexOf("Models")>=0&&E(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._GraficasMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;qv(this.id)},e.prototype.getVisual=function(t,e){var n=Ro(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?by(r,o,e):wy(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._ComponentesMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._GraficasMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;E(jv,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&Ty(o,(function(t){var e=Js(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=A({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_GraficasMap":"_ComponentesMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),E($v,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),E(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(Iy("map","selectchanged",e,i,t),Iy("pie","selectchanged",e,i,t)):"select"===t.fromAction?(Iy("map","selected",e,i,t),Iy("pie","selected",e,i,t)):"unselect"===t.fromAction&&(Iy("map","unselected",e,i,t),Iy("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?qv(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)qv(this.id);else{this._disposed=!0,this.getDom()&&Bo(this.getDom(),sm,"");var t=this,e=t._api,n=t._model;E(t._ComponentesViews,(function(t){t.dispose(n,e)})),E(t._GraficasViews,(function(t){t.dispose(n,e)})),t._zr.dispose(),t._dom=t._model=t._GraficasMap=t._ComponentesMap=t._GraficasViews=t._ComponentesViews=t._scheduler=t._api=t._zr=t._throttledZrFlush=t._theme=t._coordSysMgr=t._messageCenter=null,delete im[t.id]}},e.prototype.resize=function(t){if(!this.__flagInMainProcess)if(this._disposed)qv(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__pendingUpdate&&(null==i&&(i=this.__pendingUpdate.silent),n=!0,this.__pendingUpdate=null),this.__flagInMainProcess=!0;try{n&&Tv(this),Av.update.call(this,{type:"resize",animation:A({duration:0},t&&t.animation)})}catch(t){throw this.__flagInMainProcess=!1,t}this.__flagInMainProcess=!1,Ov.call(this,i),Rv.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)qv(this.id);else if(q(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),nm[t]){var n=nm[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?qv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=A({},t);return e.type=$v[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)qv(this.id);else if(q(e)||(e={silent:!!e}),Kv[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Pv.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&r.browser.weChat&&this._throttledZrFlush(),Ov.call(this,n),Rv.call(this,n)}},e.prototype.updateLabelLayout=function(){gv.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed)qv(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))}function e(t){for(var e=[],n=t.currentStates,i=0;i0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.eachRendered((function(t){if(t.states&&t.states.emphasis){if(gh(t))return;if(t instanceof Ms&&function(t){var e=nl(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(t),t.__dirty){var n=t.prevStates;n&&t.useStates(n)}if(r){t.stateTransition=a;var i=t.getTextContent(),o=t.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}t.__dirty&&e(t)}}))}Tv=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Cv(t,!0),Cv(t,!1),e.plan()},Cv=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._ComponentesViews:t._GraficasViews,o=e?t._ComponentesMap:t._GraficasMap,a=t._zr,s=t._api,l=0;le.get("hoverLayerThreshold")&&!r.node&&!r.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._GraficasMap[e.__viewId];n.__alive&&n.eachRendered((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,e),gv.trigger("series:afterupdate",e,n,l)},Wv=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Hv=function(t){t.__needsUpdateStatus&&(t.getZr().storage.traverse((function(t){gh(t)||e(t)})),t.__needsUpdateStatus=!1)},Fv=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Al(e,n),Wv(t)},i.prototype.leaveEmphasis=function(e,n){kl(e,n),Wv(t)},i.prototype.enterBlur=function(e){Ll(e),Wv(t)},i.prototype.leaveBlur=function(e){Pl(e),Wv(t)},i.prototype.enterSelect=function(e){Ol(e),Wv(t)},i.prototype.leaveSelect=function(e){Rl(e),Wv(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(gd))(t)},Gv=function(t){function e(t,e){for(var n=0;n=0)){bm.push(n);var o=jg.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function Sm(t,e){nm[t]=e}function Mm(t,e,n){var i=vv("RegistroMap");i&&i(t,e,n)}var Im=function(t){var e=(t=T(t)).type,n="";e||yo(n);var i=e.split(":");2!==i.length&&yo(n);var r=!1;"eGraficas"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Of.set(e,t)};_m(mv,Hg),_m(xv,Ug),_m(xv,Xg),_m(mv,xy),_m(xv,_y),_m(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=cv(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=cv(r,e)}}))})),pm(Fd),dm(900,(function(t){var e=yt();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Gd)})),Sm("default",(function(t,e){k(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Er,i=new Es({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new Bs({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new Es({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Ju({shape:{startAngle:-Zg/2,endAngle:-Zg/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Zg/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Zg/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),vm({type:sl,event:sl,update:sl},bt),vm({type:ll,event:ll,update:ll},bt),vm({type:ul,event:ul,update:ul},bt),vm({type:hl,event:hl,update:hl},bt),vm({type:cl,event:cl,update:cl},bt),cm("light",hy),cm("dark",gy);var Tm=[],Cm={RegistroPreprocessor:pm,RegistroProcessor:dm,RegistroPostInit:fm,RegistroPostUpdate:gm,RegistroUpdateLifecycle:ym,RegistroAction:vm,RegistroCoordinateSystem:mm,RegistroLayout:xm,RegistroVisual:_m,RegistroTransform:Im,RegistroLoading:Sm,RegistroMap:Mm,RegistroImpl:function(t,e){yv[t]=e},PRIORITY:_v,ComponentModel:Op,ComponentView:wg,SeriesModel:fg,ChartView:Tg,RegistroComponentModel:function(t){Op.RegistroClass(t)},RegistroComponentView:function(t){wg.RegistroClass(t)},RegistroSeriesModel:function(t){fg.RegistroClass(t)},RegistroChartView:function(t){Tg.RegistroClass(t)},RegistroSubTypeDefaulter:function(t,e){Op.RegistroSubTypeDefaulter(t,e)},RegistroPainter:function(t,e){Gr(t,e)}};function Dm(t){Y(t)?E(t,(function(t){Dm(t)})):P(Tm,t)>=0||(Tm.push(t),U(t)&&(t={install:t}),t.install(Cm))}function Am(t){return null==t?0:t.length||1}function km(t){return t}var Lm=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||km,this._newKeyGetter=i||km,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1&&c>1)this._updateManyToMany&&this._updateManyToMany(u,l),i[s]=null;else if(h>1)for(var p=0;p1)for(var a=0;a30}var Hm,Ym,Um,Xm,Zm,jm,qm,Km=q,$m=z,Jm="undefined"==typeof Int32Array?Array:Int32Array,Qm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],tx=["_approximateExtent"],ex=function(){function t(t,e){var n;this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var i=!1;Bm(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var r={},o=[],a={},s=!1,l={},u=0;u=e)){var n=this._store.getProvider();this._updateOrdinalMeta();var i=this._nameList,r=this._idList;if(n.getSource().sourceFormat===Vp&&!n.pure)for(var o=[],a=t;a0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(Y(r=this.getVisual(e))?r=r.slice():Km(r)&&(r=A({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Km(e)?A(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){Km(t)?A(this._layout,t):this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?A(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel&&this.hostModel.seriesIndex;Qs(n,this.dataType,t,e),this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){E(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){return e||(e=new t(this._schema?this._schema:$m(this.dimensions,this._getDimInfo,this),this.hostModel)),Zm(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(t,e){var n=this[t];U(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(at(arguments)))})},t.internalField=(Hm=function(t){var e=t._invertedIndicesMap;E(e,(function(n,i){var r=t._dimInfos[i],o=r.ordinalMeta,a=t._store;if(o){n=e[i]=new Jm(o.categories.length);for(var s=0;s1&&(s+="__ec__"+u),i[e]=s}})),t}();function nx(t,e){jd(t)||(t=Kd(t));var n=(e=e||{}).coordDimensions||[],i=e.dimensionsDefine||t.dimensionsDefine||[],r=yt(),o=[],a=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return E(e,(function(t){var e;q(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(t,n,i,e.dimensionsCount),s=e.canOmitUnusedDimensions&&Wm(a),l=i===t.dimensionsDefine,u=l?Gm(t):Fm(i),h=e.encodeDefine;!h&&e.encodeDefaulter&&(h=e.encodeDefaulter(t,a));for(var c=yt(h),p=new Ff(a),d=0;d0&&(i.name=r+(o-1)),o++,e.set(r,o)}}(o),new Vm({source:t,dimensions:o,fullDimensionCount:a,dimensionOmitted:s})}function ix(t,e,n){if(n||e.hasKey(t)){for(var i=0;e.hasKey(t+i);)i++;t+=i}return e.set(t,!0),t}var rx=function(t){this.coordSysDims=[],this.axisMap=yt(),this.categoryAxisMap=yt(),this.coordSysName=t};var ox={cartesian2d:function(t,e,n,i){var r=t.getReferringComponentes("xAxis",Eo).models[0],o=t.getReferringComponentes("yAxis",Eo).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),ax(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),ax(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponentes("singleAxis",Eo).models[0];e.coordSysDims=["single"],n.set("single",r),ax(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponentes("polar",Eo).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),ax(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),ax(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();E(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),ax(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function ax(t){return"category"===t.get("type")}function sx(t,e,n){var i,r,o,a=(n=n||{}).byIndex,s=n.stackedCoordDimension;!function(t){return!Bm(t.schema)}(e)?(r=e.schema,i=r.dimensions,o=e.store):i=e;var l,u,h,c,p=!(!t||!t.get("stack"));if(E(i,(function(t,e){X(t)&&(i[e]=t={name:t}),p&&!t.isExtraCoord&&(a||l||!t.ordinalMeta||(l=t),u||"ordinal"===t.type||"time"===t.type||s&&s!==t.coordDim||(u=t))})),!u||a||l||(a=!0),u){h="__\0ecstackresult_"+t.id,c="__\0ecstackedover_"+t.id,l&&(l.createInvertedIndices=!0);var d=u.coordDim,f=u.type,g=0;E(i,(function(t){t.coordDim===d&&g++}));var y={name:h,coordDim:d,coordDimIndex:g,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},v={name:c,coordDim:c,coordDimIndex:g+1,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};r?(o&&(y.storeDimIndex=o.ensureCalculationDimension(c,f),v.storeDimIndex=o.ensureCalculationDimension(h,f)),r.appendCalculationDimension(y),r.appendCalculationDimension(v)):(i.push(y),i.push(v))}return{stackedDimension:u&&u.name,stackedByDimension:l&&l.name,isStackedByIndex:a,stackedOverDimension:c,stackResultDimension:h}}function lx(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function ux(t,e){return lx(t,e)?t.getCalculationInfo("stackResultDimension"):e}function hx(t,e,n){n=n||{};var i,r=e.getSourceManager(),o=!1;t?(o=!0,i=Kd(t)):o=(i=r.getSource()).sourceFormat===Vp;var a=function(t){var e=t.get("coordinateSystem"),n=new rx(e),i=ox[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e),s=function(t,e){var n,i=t.get("coordinateSystem"),r=vd.get(i);return e&&e.coordSysDims&&(n=z(e.coordSysDims,(function(t){var n={name:t},i=e.axisMap.get(t);if(i){var r=i.get("type");n.type=Rm(r)}return n}))),n||(n=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||["x","y"]),n}(e,a),l=n.useEncodeDefaulter,u=U(l)?l:l?H(Kp,s,e):null,h=nx(i,{coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!o}),c=function(t,e,n){var i,r;return n&&E(t,(function(t,o){var a=t.coordDim,s=n.categoryAxisMap.get(a);s&&(null==i&&(i=o),t.ordinalMeta=s.getOrdinalMeta(),e&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(r=!0)})),r||null==i||(t[i].otherDims.itemName=0),i}(h.dimensions,n.createInvertedIndices,a),p=o?null:r.getSharedDataStore(h),d=sx(e,{schema:h,store:p}),f=new ex(h,e);f.setCalculationInfo(d);var g=null!=c&&function(t){if(t.sourceFormat===Vp){var e=function(t){var e=0;for(;ee[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Ko(cx);var px=0,dx=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++px}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&z(i,fx);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if(!X(t)&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=yt(this.categories))},t}();function fx(t){return q(t)&&null!=t.value?t.value:t+""}function gx(t){return"interval"===t.type||"log"===t.type}function yx(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=ao(o/e,!0);null!=n&&ai&&(a=r.interval=i);var s=r.intervalPrecision=mx(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),xx(t,0,e),xx(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[Xr(Math.ceil(t[0]/a)*a,s),Xr(Math.floor(t[1]/a)*a,s)],t),r}function vx(t){var e=Math.pow(10,oo(t)),n=t/e;return n?2===n?n=3:3===n?n=5:n*=2:n=1,Xr(n*e)}function mx(t){return jr(t)+2}function xx(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function _x(t,e){return t>=e[0]&&t<=e[1]}function bx(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Sx(t,e){return t*(e[1]-e[0])+e[0]}var Mx=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new dx({})),Y(i)&&(i=new dx({categories:z(i,(function(t){return q(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return null==t?NaN:X(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return _x(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return bx(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(Sx(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(cx);cx.RegistroClass(Mx);var Ix=Xr,Tx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return _x(t,this._extent)},e.prototype.normalize=function(t){return bx(t,this._extent)},e.prototype.scale=function(t){return Sx(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=mx(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:Ix(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return E(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Ur(t.get("barWidth"),i),d=Ur(t.get("barMaxWidth"),i),f=Ur(t.get("barMinWidth")||(Bx(t)?.5:1),i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:Px(r),stackId:Lx(t)})})),Nx(n)}function Nx(t){var e={};E(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return E(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=G(i).length;o=Math.max(35-4*a,15)+"%"}var s=Ur(o,r),l=Ur(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),E(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&ei&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;E(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;E(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function Ex(t,e){var n=Ox(t,e),i=Rx(n);E(n,(function(t){var e=t.getData(),n=t.coordinateSystem.getBaseAxis(),r=Lx(t),o=i[Px(n)][r],a=o.offset,s=o.width;e.setLayout({bandWidth:o.bandWidth,offset:a,size:s})}))}function zx(t){return{seriesType:t,plan:Sg(),reset:function(t){if(Vx(t)){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),r=n.getOtherAxis(i),o=e.getDimensionIndex(e.mapDimension(r.dim)),a=e.getDimensionIndex(e.mapDimension(i.dim)),s=t.get("showBackground",!0),l=e.mapDimension(r.dim),u=e.getCalculationInfo("stackResultDimension"),h=lx(e,l)&&!!e.getCalculationInfo("stackedOnSeries"),c=r.isHorizontal(),p=function(t,e){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}(0,r),d=Bx(t),f=t.get("barMinHeight")||0,g=u&&e.getDimensionIndex(u),y=e.getLayout("size"),v=e.getLayout("offset");return{progress:function(t,e){for(var i,r=t.count,l=d&&Ax(3*r),u=d&&s&&Ax(3*r),m=d&&Ax(r),x=n.master.getRect(),_=c?x.width:x.height,b=e.getStore(),w=0;null!=(i=t.next());){var S=b.get(h?g:o,i),M=b.get(a,i),I=p,T=void 0;h&&(T=+S-b.get(o,i));var C=void 0,D=void 0,A=void 0,k=void 0;if(c){var L=n.dataToPoint([S,M]);if(h)I=n.dataToPoint([T,M])[0];C=I,D=L[1]+v,A=L[0]-I,k=y,Math.abs(A)0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(Y(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return jc(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(){var t=this._interval,e=this._extent,n=[];if(!t)return n;n.push({value:e[0],level:0});var i=this.getSetting("useUTC"),r=function(t,e,n,i){var r=1e4,o=Yc,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var x=B(z(u,(function(t){return B(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),_=[],b=x.length-1;for(d=0;dn&&(this._approxInterval=n);var o=Gx.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Hx(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Yx(t){return(t/=zc)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Ux(t,e){return(t/=e?Ec:Nc)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Xx(t){return ao(t,!0)}function Zx(t,e,n){var i=new Date(t);switch(Xc(e)){case"year":case"month":i[op(n)](0);case"day":i[ap(n)](1);case"hour":i[sp(n)](0);case"minute":i[lp(n)](0);case"second":i[up(n)](0),i[hp(n)](0)}return i.getTime()}cx.RegistroClass(Fx);var jx=cx.prototype,qx=Tx.prototype,Kx=Xr,$x=Math.floor,Jx=Math.ceil,Qx=Math.pow,t_=Math.log,e_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Tx,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return z(qx.getTicks.call(this,t),(function(t){var e=t.value,r=Xr(Qx(this.base,e));return r=e===n[0]&&this._fixMin?i_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?i_(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=t_(this.base);t=t_(Math.max(0,t))/n,e=t_(Math.max(0,e))/n,qx.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=jx.getExtent.call(this);e[0]=Qx(t,e[0]),e[1]=Qx(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=i_(e[0],n[0])),this._fixMax&&(e[1]=i_(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=t_(t[0])/t_(e),t[1]=t_(t[1])/t_(e),jx.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.calcNiceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=ro(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Xr(Jx(e[0]/i)*i),Xr($x(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.calcNiceExtent=function(t){qx.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return _x(t=t_(t)/t_(this.base),this._extent)},e.prototype.normalize=function(t){return bx(t=t_(t)/t_(this.base),this._extent)},e.prototype.scale=function(t){return t=Sx(t,this._extent),Qx(this.base,t)},e.type="log",e}(cx),n_=e_.prototype;function i_(t,e){return Kx(t,jr(e))}n_.getMinorTicks=qx.getMinorTicks,n_.getLabel=qx.getLabel,cx.RegistroClass(e_);var r_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[a_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=o_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),o_={min:"_determinedMin",max:"_determinedMax"},a_={min:"_dataMin",max:"_dataMax"};function s_(t,e,n){var i=t.rawExtentInfo;return i||(i=new r_(t,e,n),t.rawExtentInfo=i,i)}function l_(t,e){return null==e?null:nt(e)?NaN:t.parse(e)}function u_(t,e){var n=t.type,i=s_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Ox("bar",a),l=!1;if(E(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Rx(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=function(t,e,n){if(t&&e){var i=t[Px(e)];return null!=i&&null!=n?i[Lx(n)]:i}}(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;E(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;E(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function h_(t,e){var n=e,i=u_(t,n),r=i.extent,o=n.get("splitNumber");t instanceof e_&&(t.base=n.get("logBase"));var a=t.type,s=n.get("interval"),l="interval"===a||"time"===a;t.setExtent(r[0],r[1]),t.calcNiceExtent({splitNumber:o,fixMin:i.fixMin,fixMax:i.fixMax,minInterval:l?n.get("minInterval"):null,maxInterval:l?n.get("maxInterval"):null}),null!=s&&t.setInterval&&t.setInterval(s)}function c_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Mx({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Fx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(cx.getClass(e)||Tx)}}function p_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):X(i)?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):U(i)?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(d_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function d_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function f_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Ee(t.x,t.y,o,a)}function g_(t){var e=t.get("interval");return null==e?"auto":e}function y_(t){return"category"===t.type&&0===g_(t.getLabelModel())}function v_(t,e){var n={};return E(t.mapDimensionsAll(e),(function(e){n[ux(t,e)]=!0})),G(n)}var m_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var x_={isDimensionStacked:lx,enableDataStack:sx,getStackedDimension:ux};var __=Object.freeze({__proto__:null,createList:function(t){return hx(null,t)},getLayoutRect:Tp,dataStack:x_,createScale:function(t,e){var n=e;e instanceof Sc||(n=new Sc(e));var i=c_(n);return i.setExtent(t[0],t[1]),h_(i,n),i},mixinAxisModelCommonMethods:function(t){R(t,m_)},getECData:Js,createTextStyle:function(t,e){return ec(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:function(t,e){return nx(t,e).dimensions},createSymbol:Vy,enableHoverEmphasis:Wl});function b_(t,e){return Math.abs(t-e)<1e-8}function w_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;on&&(t=r,n=a)}if(t)return function(t){for(var e=0,n=0,i=0,r=t.length,o=t[r-1][0],a=t[r-1][1],s=0;s>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function O_(t,e){return z(B((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;return null==n&&(n=1024),E(e.features,(function(t){var e=t.geometry,i=e.encodeOffsets,r=e.coordinates;if(i)switch(e.type){case"LineString":e.coordinates=P_(r,i,n);break;case"Polygon":case"MultiLineString":L_(r,i,n);break;case"MultiPolygon":E(r,(function(t,e){return L_(t,i[e],n)}))}})),e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];switch(i.type){case"Polygon":var o=i.coordinates;r.push(new C_(o[0],o.slice(1)));break;case"MultiPolygon":E(i.coordinates,(function(t){t[0]&&r.push(new C_(t[0],t.slice(1)))}));break;case"LineString":r.push(new D_([i.coordinates]));break;case"MultiLineString":r.push(new D_(i.coordinates))}var a=new A_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var R_=Object.freeze({__proto__:null,linearMap:Yr,round:Xr,asc:Zr,getPrecision:jr,getPrecisionSafe:qr,getPixelPrecision:Kr,getPercentWithPrecision:function(t,e,n){return t[e]&&$r(t,n)[e]||0},MAX_SAFE_INTEGER:Qr,remRadian:to,isRadianAroundZero:eo,parseDate:io,quantity:ro,quantityExponent:oo,nice:ao,quantile:so,reformIntervals:lo,isNumeric:ho,numericToNumber:uo}),N_=Object.freeze({__proto__:null,parse:io,format:jc}),E_=Object.freeze({__proto__:null,extendShape:Sh,extendPath:Ih,makePath:Dh,makeImage:Ah,mergePath:Lh,resizePath:Ph,createIcon:Wh,updateProps:dh,initProps:fh,getTransform:Nh,clipPointsByRect:Fh,clipRectByRect:Gh,RegistroShape:Th,getShapeClass:Ch,Group:Er,Image:As,Text:Bs,Circle:xu,Ellipse:bu,Sector:Eu,Ring:Vu,Polygon:Gu,Polyline:Hu,Rect:Es,Line:Xu,BezierCurve:Ku,Arc:Ju,IncrementalDisplayable:uh,CompoundPath:Qu,LinearGradient:eh,RadialGradient:nh,BoundingRect:Ee}),z_=Object.freeze({__proto__:null,addCommas:cp,toCamelCase:pp,normalizeCssArray:dp,encodeHTML:ie,formatTpl:vp,getTooltipMarker:mp,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=io(e),r=n?"getUTC":"get",o=i[r+"FullYear"](),a=i[r+"Month"]()+1,s=i[r+"Date"](),l=i[r+"Hours"](),u=i[r+"Minutes"](),h=i[r+"Seconds"](),c=i[r+"Milliseconds"]();return t=t.replace("MM",Uc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",Uc(o%100+"",2)).replace("dd",Uc(s,2)).replace("d",s).replace("hh",Uc(l,2)).replace("h",l).replace("mm",Uc(u,2)).replace("m",u).replace("ss",Uc(h,2)).replace("s",h).replace("SSS",Uc(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:aa,getTextRect:function(t,e,n,i,r,o,a,s){return new Bs({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),V_=Object.freeze({__proto__:null,map:z,each:E,indexOf:P,inherits:O,reduce:V,filter:B,bind:W,curry:H,isArray:Y,isString:X,isObject:q,isFunction:U,extend:A,defaults:k,clone:T,merge:C}),B_=Po();function F_(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=W_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=p_(t);return{labels:z(e,(function(e,i){return{level:e.level,formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function G_(t,e){return"category"===t.type?function(t,e){var n,i,r=H_(t,"ticks"),o=g_(e),a=Y_(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(U(o))n=Z_(t,o,!0);else if("auto"===o){var s=W_(t,t.getLabelModel());i=s.labelCategoryInterval,n=z(s.labels,(function(t){return t.tickValue}))}else n=X_(t,i=o,!0);return U_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:z(t.scale.getTicks(),(function(t){return t.value}))}}function W_(t,e){var n,i,r=H_(t,"labels"),o=g_(e),a=Y_(r,o);return a||(U(o)?n=Z_(t,o):(i="auto"===o?function(t){var e=B_(t).autoInterval;return null!=e?e:B_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=X_(t,i)),U_(r,o,{labels:n,labelCategoryInterval:i}))}function H_(t,e){return B_(t)[e]||(B_(t)[e]=[])}function Y_(t,e){for(var n=0;n1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=y_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function Z_(t,e,n){var i=t.scale,r=p_(t),o=[];return E(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var j_=[0,1],q_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Kr(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&K_(n=n.slice(),i.count()),Yr(t,j_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&K_(n=n.slice(),i.count());var r=Yr(t,n,j_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=z(G_(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;E(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Xr(t),e=Xr(e),h?t>e:t0&&t<100||(t=5),z(this.scale.getMinorTicks(t),(function(t){return z(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return F_(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=p_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=_r(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var x=Math.max(0,Math.floor(Math.min(v,m))),_=B_(t.model),b=t.getExtent(),w=_.lastAutoInterval,S=_.lastTickCount;return null!=w&&null!=S&&Math.abs(w-x)<=1&&Math.abs(S-a)<=1&&w>x&&_.axisExtent0===b[0]&&_.axisExtent1===b[1]?x=w:(_.lastTickCount=a,_.lastAutoInterval=x,_.axisExtent0=b[0],_.axisExtent1=b[1]),x}(this)},t}();function K_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}var $_=2*Math.PI,J_=rs.CMD,Q_=["top","right","bottom","left"];function tb(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function eb(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%$_<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=us(r),r=us(p)}else i=us(i),r=us(r);i>r&&(r+=$_);var d=Math.atan2(s,a);if(d<0&&(d+=$_),d>=i&&d<=r||d+$_>=i&&d+$_<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),x=(y-a)*(y-a)+(v-s)*(v-s);return m0){e=e/180*Math.PI,sb.fromArray(t[0]),lb.fromArray(t[1]),ub.fromArray(t[2]),Ce.sub(hb,sb,lb),Ce.sub(cb,ub,lb);var n=hb.len(),i=cb.len();if(!(n<.001||i<.001)){hb.scale(1/n),cb.scale(1/i);var r=hb.dot(cb);if(Math.cos(e)1&&Ce.copy(fb,ub),fb.toArray(t[1])}}}}function yb(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,sb.fromArray(t[0]),lb.fromArray(t[1]),ub.fromArray(t[2]),Ce.sub(hb,lb,sb),Ce.sub(cb,ub,lb);var i=hb.len(),r=cb.len();if(!(i<.001||r<.001))if(hb.scale(1/i),cb.scale(1/r),hb.dot(e)=a)Ce.copy(fb,ub);else{fb.scaleAndAdd(cb,o/Math.tan(Math.PI/2-s));var l=ub.x!==lb.x?(fb.x-lb.x)/(ub.x-lb.x):(fb.y-lb.y)/(ub.y-lb.y);if(isNaN(l))return;l<0?Ce.copy(fb,lb):l>1&&Ce.copy(fb,ub)}fb.toArray(t[1])}}}function vb(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function mb(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Vt(i[0],i[1]),o=Vt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=Gt([],i[1],i[0],a/r),l=Gt([],i[1],i[2],a/o),u=Gt([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h0&&o&&_(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),x(f,g,1),x(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function x(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){_(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function _(n,i,r){0!==n&&(u=!0);for(var o=i;o0)for(l=0;l0;l--){_(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i0?_(n,0,i+1):_(-n,a-i-1,a),(t-=n)<=0)return}}function Sb(t,e,n,i){return wb(t,"y","height",e,n,i)}function Mb(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Ee(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r=0&&n.attr(d.oldLayoutSelect),P(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),dh(n,s,e,a)}else if(n.attr(s),!lc(n).valueAnimation){var h=rt(n.style.opacity,1);n.style.opacity=0,fh(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};Lb(c,s,Pb),Lb(c,n.states.select,Pb)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};Lb(p,s,Pb),Lb(p,n.states.emphasis,Pb)}hc(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=kb(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),dh(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,fh(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}(),Rb=Po();var Nb=Math.sin,Eb=Math.cos,zb=Math.PI,Vb=2*Math.PI,Bb=180/zb,Fb=function(){function t(){}return t.prototype.reset=function(t){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,t||4)},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=a-o,u=!s,h=Math.abs(l),c=ui(h-Vb)||(u?l>=Vb:-l>=Vb),p=l>0?l%Vb:l%Vb+Vb,d=!1;d=!!c||!ui(h)&&p>=zb==!!u;var f=t+n*Eb(o),g=e+i*Nb(o);this._start&&this._add("M",f,g);var y=Math.round(r*Bb);if(c){var v=1/this._p,m=(u?1:-1)*(Vb-v);this._add("A",n,i,y,1,+u,t+n*Eb(o+m),e+i*Nb(o+m)),v>.01&&this._add("A",n,i,y,0,+u,f,g)}else{var x=t+n*Eb(a),_=e+i*Nb(a);this._add("A",n,i,y,+d,+u,x,_)}},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("l",n,0),this._add("l",0,i),this._add("l",-n,0),this._add("Z")},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){for(var u=[],h=this._p,c=1;c"}(r,e.attrs)+ie(e.text)+(i?""+n+z(i,(function(e){return t(e)})).join(n)+n:"")+("")}(t)}function $b(t){return{zrId:t,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssClassIdx:0,cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function Jb(t,e,n,i){return qb("svg","root",{width:t,height:e,xmlns:Xb,"xmlns:xlink":Zb,version:"1.1",basePerfil:"full",viewBox:!!i&&"0 0 "+t+" "+e},n)}var Qb={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},tw="transform-origin";function ew(t,e,n){var i=A({},t.shape);A(i,e),t.buildPath(n,i);var r=new Fb;return r.reset(xi(t)),n.rebuildPath(r,1),r.generateStr(),r.getStr()}function nw(t,e){var n=e.originX,i=e.originY;(n||i)&&(t[tw]=n+"px "+i+"px")}var iw={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function rw(t,e){var n=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[n]=t,n}function ow(t){return X(t)?Qb[t]?"cubic-bezier("+Qb[t]+")":Ln(t)?t:"":""}function aw(t,e,n,i){var r=t.animators,o=r.length,a=[];if(t instanceof Qu){var s=function(t,e,n){var i,r,o=t.shape.paths,a={};if(E(o,(function(t){var e=$b(n.zrId);e.animation=!0,aw(t,{},e,!0);var o=e.cssAnims,s=e.cssNodes,l=G(o),u=l.length;if(u){var h=o[r=l[u-1]];for(var c in h){var p=h[c];a[c]=a[c]||{d:""},a[c].d+=p.d||""}for(var d in s){var f=s[d].animation;f.indexOf(r)>=0&&(i=f)}}})),i){e.d=!1;var s=rw(a,n);return i.replace(r,s)}}(t,e,n);if(s)a.push(s);else if(!o)return}else if(!o)return;for(var l={},u=0;u0})).length)return rw(h,n)+" "+r[0]+" both"}for(var y in l){(s=g(l[y]))&&a.push(s)}if(a.length){var v=n.zrId+"-cls-"+n.cssClassIdx++;n.cssNodes["."+v]={animation:a.join(",")},e.class=v}}var sw=Math.round;function lw(t){return t&&X(t.src)}function uw(t){return t&&U(t.toDataURL)}function hw(t,e,n,i){Ub((function(r,o){var a="fill"===r||"stroke"===r;a&&vi(o)?_w(e,t,r,i):a&&fi(o)?bw(n,t,r,i):t[r]=o}),e,n,!1),function(t,e,n){var i=t.style;if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(i)){var r=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(t),o=n.shadowCache,a=o[r];if(!a){var s=t.getGlobalScale(),l=s[0],u=s[1];if(!l||!u)return;var h=i.shadowOffsetX||0,c=i.shadowOffsetY||0,p=i.shadowBlur,d=si(i.shadowColor),f=d.opacity,g=d.color,y=p/2/l+" "+p/2/u;a=n.zrId+"-s"+n.shadowIdx++,n.defs[a]=qb("filter",a,{id:a,x:"-100%",y:"-100%",width:"300%",height:"300%"},[qb("feDropShadow","",{dx:h/l,dy:c/u,stdDeviation:y,"flood-color":g,"flood-opacity":f})]),o[r]=a}e.filter=mi(a)}}(n,t,i)}function cw(t){return ui(t[0]-1)&&ui(t[1])&&ui(t[2])&&ui(t[3]-1)}function pw(t,e,n){if(e&&(!function(t){return ui(t[4])&&ui(t[5])}(e)||!cw(e))){var i=n?10:1e4;t.transform=cw(e)?"translate("+sw(e[4]*i)/i+" "+sw(e[5]*i)/i+")":function(t){return"matrix("+hi(t[0])+","+hi(t[1])+","+hi(t[2])+","+hi(t[3])+","+ci(t[4])+","+ci(t[5])+")"}(e)}}function dw(t,e,n){for(var i=t.points,r=[],o=0;ol?Ew(t,null==n[c+1]?null:n[c+1].elm,n,s,c):zw(t,e,a,l))}(n,i,r):Pw(r)?(Pw(t.text)&&Aw(n,""),Ew(n,null,r,0,r.length-1)):Pw(i)?zw(n,i,0,i.length-1):Pw(t.text)&&Aw(n,""):t.text!==e.text&&(Pw(i)&&zw(n,i,0,i.length-1),Aw(n,e.text)))}var Fw=0,Gw=function(){function t(t,e,n){if(this.type="svg",this.refreshHover=Ww("refreshHover"),this.configLayer=Ww("configLayer"),this.storage=e,this._opts=n=A({},n),this.root=t,this._id="zr"+Fw++,this._oldVNode=Jb(n.width,n.height),t&&!n.ssr){var i=this._viewport=document.createElement("div");i.style.cssText="position:relative;overflow:hidden";var r=this._svgDom=this._oldVNode.elm=jb("svg");Vw(null,this._oldVNode),i.appendChild(r),t.appendChild(i)}this.resize(n.width,n.height)}return t.prototype.getType=function(){return this.type},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style="position:absolute;left:0;top:0;user-select:none",function(t,e){if(Rw(t,e))Bw(t,e);else{var n=t.elm,i=Cw(n);Nw(e),null!==i&&(Mw(i,e.elm,Dw(n)),zw(i,[t],0,0))}}(this._oldVNode,t),this._oldVNode=t}},t.prototype.renderOneToVNode=function(t){return xw(t,$b(this._id))},t.prototype.renderToVNode=function(t){t=t||{};var e=this.storage.getDisplayList(!0),n=this._width,i=this._height,r=$b(this._id);r.animation=t.animation,r.willUpdate=t.willUpdate,r.compress=t.compress;var o=[],a=this._bgVNode=function(t,e,n,i){var r;if(n&&"none"!==n)if(r=qb("rect","bg",{width:t,height:e,x:"0",y:"0",id:"0"}),vi(n))_w({fill:n},r.attrs,"fill",i);else if(fi(n))bw({style:{fill:n},dirty:bt,getBoundingRect:function(){return{width:t,height:e}}},r.attrs,"fill",i);else{var o=si(n),a=o.color,s=o.opacity;r.attrs.fill=a,s<1&&(r.attrs["fill-opacity"]=s)}return r}(n,i,this._backgroundColor,r);a&&o.push(a);var s=t.compress?null:this._mainVNode=qb("g","main",{},[]);this._paintList(e,r,s?s.children:o),s&&o.push(s);var l=z(G(r.defs),(function(t){return r.defs[t]}));if(l.length&&o.push(qb("defs","defs",{},l)),t.animation){var u=function(t,e,n){var i=(n=n||{}).newline?"\n":"",r=" {"+i,o=i+"}",a=z(G(t),(function(e){return e+r+z(G(t[e]),(function(n){return n+":"+t[e][n]+";"})).join(i)+o})).join(i),s=z(G(e),(function(t){return"@keyframes "+t+r+z(G(e[t]),(function(n){return n+r+z(G(e[t][n]),(function(i){var r=e[t][n][i];return"d"===i&&(r='path("'+r+'")'),i+":"+r+";"})).join(i)+o})).join(i)+o})).join(i);return a||s?[""].join(i):""}(r.cssNodes,r.cssAnims,{newline:!0});if(u){var h=qb("style","stl",{},[],u);o.push(h)}}return Jb(n,i,o,t.useViewBox)},t.prototype.renderToString=function(t){return t=t||{},Kb(this.renderToVNode({animation:rt(t.cssAnimation,!0),willUpdate:!1,compress:!0,useViewBox:rt(t.useViewBox,!0)}),{newline:!0})},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t},t.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},t.prototype._paintList=function(t,e,n){for(var i,r,o=t.length,a=[],s=0,l=0,u=0;u=0&&(!c||!r||c[f]!==r[f]);f--);for(var g=d-1;g>f;g--)i=a[--s-1];for(var y=f+1;y=a)}}for(var h=this.__startIndex;h15)break}n.prevElClipPaths&&u.restore()};if(p)if(0===p.length)s=l.__endIndex;else for(var _=d.dpr,b=0;b0&&t>i[0]){for(s=0;st);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i0?Zw:0),this._needsManuallyCompositing),u.__builtin__||I("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),1&s.__dirty&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,E(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?C(n[t],e,!0):n[t]=e;for(var i=0;i-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},e}(fg);function Kw(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=df(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a=0&&i.push(e[o])}return i.join(" ")}var Jw=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Vy(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Qw,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Al(this.childAt(0))},e.prototype.downplay=function(){kl(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):dh(p,c,a,n),xh(p)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,fh(p,c,a,n)}}u&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle,h=i.emphasisDisabled),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=v.get("disabled"),c=tc(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0);var x=Fy(t.getItemVisual(e,"symbolOffset"),n);x&&(f.x=x[0],f.y=x[1]),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),b=_.fill;if(f instanceof As){var w=f.style;f.useStyle(A({image:w.image,x:w.x,y:w.y,width:w.width,height:w.height},_))}else f.__isEmptyBrush?f.useStyle(A({},_)):f.useStyle(_),f.style.decal=null,f.setColor(b,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var S=t.getItemVisual(e,"liftZ"),M=this._z2;null!=S?null==M&&(this._z2=f.z2,f.z2+=S):null!=M&&(f.z2=M,this._z2=null);var I=r&&r.useNameLabel;Qh(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return I?t.getName(e):Kw(t,e)},inheritColor:b,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a;var C=null==p||!0===p?Math.max(1.1,3/this._sizeY):isFinite(p)&&p>0?+p:1;T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C,this.setSymbolScale(1),Hl(this,l,u,h)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e,n){var i=this.childAt(0),r=Js(this).dataIndex,o=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var a=i.getTextContent();a&&yh(a,{style:{opacity:0}},e,{dataIndex:r,removeOpt:o,cb:function(){i.removeTextContent()}})}else i.removeTextContent();yh(i,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){return By(t.getItemVisual(e,"symbolSize"))},e}(Er);function Qw(t,e){this.parent.drift(t,e)}function tS(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function eS(t){return null==t||q(t)||(t={isIgnore:t}),t||{}}function nS(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:tc(e),cursorStyle:e.get("cursor")}}var iS=function(){function t(t){this.group=new Er,this._SymbolCtor=t||Jw}return t.prototype.updateData=function(t,e){this._progressiveEls=null,e=eS(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=nS(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(tS(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(tS(t,d,h,e)){var f=t.getItemVisual(h,"symbol")||"circle",g=p&&p.getSymbolType&&p.getSymbolType();if(!p||g&&g!==f)n.remove(p),(p=new o(t,h,s,l)).setPosition(d);else{p.updateData(t,h,s,l);var y={x:d[0],y:d[1]};a?p.attr(y):dh(p,y,i)}n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}),i)})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=nS(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[],n=eS(n);for(var r=t.start;r0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=z(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return lx(e,c[0])&&(p=!0,c[0]=d),lx(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function oS(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var aS=Math.min,sS=Math.max;function lS(t,e){return isNaN(t)||isNaN(e)}function uS(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y=r||g<0)break;if(lS(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var x=v-u,_=m-h;if(x*x+_*_<.5){g+=o;continue}if(a>0){for(var b=g+o,w=e[2*b],S=e[2*b+1];w===v&&S===m&&y=i||lS(w,S))d=v,f=m;else{T=w-u,C=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;if("x"===s){var E=T>0?1:-1;d=v-E*(R=Math.abs(k))*a,f=m,D=v+E*(N=Math.abs(L))*a,A=m}else if("y"===s){var z=C>0?1:-1;d=v,f=m-z*(R=Math.abs(P))*a,D=v,A=m+z*(N=Math.abs(O))*a}else R=Math.sqrt(k*k+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(L*L+O*O))/(N+R))),f=m-C*a*(1-I),A=m+C*a*I,D=aS(D=v+T*a*I,sS(w,v)),A=aS(A,sS(S,m)),D=sS(D,aS(w,v)),f=m-(C=(A=sS(A,aS(S,m)))-m)*R/N,d=aS(d=v-(T=D-v)*R/N,sS(u,v)),f=aS(f,sS(h,m)),D=v+(T=v-(d=sS(d,aS(u,v))))*N/R,A=m+(C=m-(f=sS(f,aS(h,m))))*N/R}t.bezierCurveTo(c,p,d,f,v,m),c=D,p=A}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var hS=function(){this.smooth=0,this.smoothConstraint=!0},cS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new hS},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&lS(n[2*r-2],n[2*r-1]);r--);for(;i=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?xn(n,u,c,d,t,s):xn(i,h,p,f,t,s);if(v>0)for(var m=0;m=0){y=a?vn(i,h,p,f,x):vn(n,u,c,d,x);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(Ms),pS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(hS),dS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new pS},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&lS(n[2*o-2],n[2*o-1]);o--);for(;r=0;a--){var s=t.getDimensionInfo(i[a].dimension);if("x"===(r=s&&s.coordDim)||"y"===r){o=i[a];break}}if(o){var l=e.getAxis(r),u=z(o.stops,(function(t){return{coord:l.toGlobalCoord(l.dataToCoord(t.value)),color:t.color}})),h=u.length,c=o.outerColors.slice();h&&u[0].coord>u[h-1].coord&&(u.reverse(),c.reverse());var p=function(t,e){var n,i,r=[],o=t.length;function a(t,e,n){var i=t.coord;return{coord:n,color:Qn((n-i)/(e.coord-i),[t.color,e.color])}}for(var s=0;se){i?r.push(a(i,l,e)):n&&r.push(a(n,l,0),a(n,l,e));break}n&&(r.push(a(n,l,0)),n=null),r.push(l),i=l}}return r}(u,"x"===r?n.getWidth():n.getHeight()),d=p.length;if(!d&&h)return u[0].coord<0?c[1]?c[1]:u[h-1].color:c[0]?c[0]:u[0].color;var f=p[0].coord-10,g=p[d-1].coord+10,y=g-f;if(y<.001)return"transparent";E(p,(function(t){t.offset=(t.coord-f)/y})),p.push({offset:d?p[d-1].offset:.5,color:c[1]||"transparent"}),p.unshift({offset:d?p[0].offset:.5,color:c[0]||"transparent"});var v=new eh(0,0,0,0,p,!0);return v[r]=f,v[r+"2"]=g,v}}}function MS(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;ai)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return E(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function IS(t,e){return[t[2*e],t[2*e+1]]}function TS(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;e0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=+d.style.lineWidth+1);Js(d).seriesIndex=t.seriesIndex,Hl(d,L,P,O);var R=bS(t.get("smooth")),N=t.get("smoothMonotone");if(d.setShape({smooth:R,smoothMonotone:N,connectNulls:w}),f){var E=a.getCalculationInfo("stackedOnSeries"),z=0;f.useStyle(k(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),E&&(z=bS(E.get("smooth"))),f.setShape({smooth:R,stackedOnSmooth:z,smoothMonotone:N,connectNulls:w}),Zl(f,t,"areaStyle"),Js(f).seriesIndex=t.seriesIndex,Hl(f,L,P,O)}var V=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=V)})),this._polyline.onHoverStateChange=V,this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=u,this._step=T,this._valueOrigin=m,t.get("triggerLineEvent")&&(this.packEventData(t,d),f&&this.packEventData(t,f))},e.prototype.packEventData=function(t,e){Js(e).eventData={componentType:"series",ComponentesubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=Lo(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;var h=t.get("zlevel")||0,c=t.get("z")||0;(s=new Jw(r,o)).x=l,s.y=u,s.setZ(h,c);var p=s.getSymbolPath().getTextContent();p&&(p.zlevel=h,p.z=c,p.z2=this._polyline.z2+1),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Tg.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=Lo(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Tg.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;Ml(this._polyline,t),e&&Ml(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new cS({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new dS({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");U(l)&&(l=l(null));var u=s.get("animationDelay")||0,h=U(u)?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(n)if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var x=U(u)?u(o):l*m+h,_=s.getSymbolPath(),b=_.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:x}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:x}),_.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e,n){var i=t.getModel("endLabel");if(TS(t)){var r=t.getData(),o=this._polyline,a=r.getLayout("points");if(!a)return o.removeTextContent(),void(this._endLabel=null);var s=this._endLabel;s||((s=this._endLabel=new Bs({z2:200})).ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var l=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(a);l>=0&&(Qh(o,tc(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:l,defaultText:function(t,e,n){return null!=n?$w(r,n):Kw(r,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(i,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,x=(g?d:0)*(y?-1:1),_=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=IS(u,S[0]);s.attr({x:T[0]+x,y:T[1]+_}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+x,y:T[1]+_});var C=h.getRawValue(S[0]),D=h.getRawValue(S[1]);r&&(I=Go(n,p,C,D,w.t))}i.lastFrameIndex=S[0]}else{var A=1===t||i.lastFrameIndex>0?S[0]:0;T=IS(u,A);r&&(I=h.getRawValue(A)),s.attr({x:T[0]+x,y:T[1]+_})}r&&lc(s).setLabelText(I)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o,a){var s=this._polyline,l=this._polygon,u=t.hostModel,h=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=rS(r,e,a),v=t.getLayout("points")||[],m=e.getLayout("points")||[],x=0;x3e3||l&&_S(p,f)>3e3)return s.stopAnimation(),s.setShape({points:d}),void(l&&(l.stopAnimation(),l.setShape({points:d,stackedOnPoints:f})));s.shape.__points=h.current,s.shape.points=c;var g={shape:{points:d}};h.current!==c&&(g.shape.__points=h.next),s.stopAnimation(),dh(s,g,u),l&&(l.setShape({points:c,stackedOnPoints:p}),l.stopAnimation(),dh(l,{shape:{stackedOnPoints:f}},u),s.shape.points!==l.shape.points&&(l.shape.points=s.shape.points));for(var y=[],v=h.status,m=0;me&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(isFinite(p)&&p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;X(r)?d=kS[r]:U(r)&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,LS))}}}}}var OS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return hx(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t,e,n){var i=this.coordinateSystem;if(i&&i.clampData){var r=i.dataToPoint(i.clampData(t));if(n)E(i.getAxes(),(function(n,o){if("category"===n.type){var a=n.getTicksCoords(),s=i.clampData(t)[o];!e||"x1"!==e[o]&&"y1"!==e[o]||(s+=1),s>a.length-1&&(s=a.length-1),s<0&&(s=0),a[s]&&(r[o]=n.toGlobalCoord(a[s].coord))}}));else{var o=this.getData(),a=o.getLayout("offset"),s=o.getLayout("size"),l=i.getBaseAxis().isHorizontal()?0:1;r[l]+=a+s/2}return r}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(fg);fg.RegistroClass(OS);var RS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return hx(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=Tc(OS.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(OS),NS=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},ES=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new NS},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=2*Math.PI,p=h?u-lo)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){mh(e,t,Js(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Tg),WS={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=BS(e.x,t.x),s=FS(e.x+e.width,r),l=BS(e.y,t.y),u=FS(e.y+e.height,o),h=sr?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=FS(e.r,t.r),o=BS(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},HS={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Es({shape:A({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=!r&&l?ES:Eu,h=new u({shape:i,z2:1});h.name="item";var c,p,d=KS(r);if(h.calculateTextPosition=(c=d,p=({isRoundCap:u===ES}||{}).isRoundCap,function(t,e,n){var i=e.position;if(!i||i instanceof Array)return Ir(t,e,n);var r=c(i),o=null!=e.distance?e.distance:5,a=this.shape,s=a.cx,l=a.cy,u=a.r,h=a.r0,d=(u+h)/2,f=a.startAngle,g=a.endAngle,y=(f+g)/2,v=p?Math.abs(u-h)/2:0,m=Math.cos,x=Math.sin,_=s+u*m(f),b=l+u*x(f),w="left",S="top";switch(r){case"startArc":_=s+(h-o)*m(y),b=l+(h-o)*x(y),w="center",S="top";break;case"insideStartArc":_=s+(h+o)*m(y),b=l+(h+o)*x(y),w="center",S="bottom";break;case"startAngle":_=s+d*m(f)+zS(f,o+v,!1),b=l+d*x(f)+VS(f,o+v,!1),w="right",S="middle";break;case"insideStartAngle":_=s+d*m(f)+zS(f,-o+v,!1),b=l+d*x(f)+VS(f,-o+v,!1),w="left",S="middle";break;case"middle":_=s+d*m(y),b=l+d*x(y),w="center",S="middle";break;case"endArc":_=s+(u+o)*m(y),b=l+(u+o)*x(y),w="center",S="bottom";break;case"insideEndArc":_=s+(u-o)*m(y),b=l+(u-o)*x(y),w="center",S="top";break;case"endAngle":_=s+d*m(g)+zS(g,o+v,!0),b=l+d*x(g)+VS(g,o+v,!0),w="left",S="middle";break;case"insideEndAngle":_=s+d*m(g)+zS(g,-o+v,!0),b=l+d*x(g)+VS(g,-o+v,!0),w="right",S="middle";break;default:return Ir(t,e,n)}return(t=t||{}).x=_,t.y=b,t.align=w,t.verticalAlign=S,t}),o){var f=r?"r":"endAngle",g={};h.shape[f]=r?0:i.startAngle,g[f]=i[f],(s?dh:fh)(h,{shape:g},o)}return h}};function YS(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?dh:fh)(n,{shape:l},e,r,null),(a?dh:fh)(n,{shape:u},e?t.baseAxis.model:null,r)}function US(t,e){for(var n=0;n0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}}};function KS(t){return function(t){var e=t?"Arc":"Angle";return function(t){switch(t){case"start":case"insideStart":case"end":case"insideEnd":return t+e;default:return t}}}(t)}function $S(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(["itemStyle","borderRadius"])||0),t.useStyle(l);var u=i.getShallow("cursor");u&&t.attr("cursor",u);var h=s?a?r.r>=r.r0?"endArc":"startArc":r.endAngle>=r.startAngle?"endAngle":"startAngle":a?r.height>=0?"bottom":"top":r.width>=0?"right":"left",c=tc(i);Qh(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:Kw(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h});var p=t.getTextContent();if(s&&p){var d=i.get(["label","position"]);t.textConfig.inside="middle"===d||null,function(t,e,n,i){if(j(i))t.setTextConfig({rotation:i});else if(Y(e))t.setTextConfig({rotation:0});else{var r,o=t.shape,a=o.clockwise?o.startAngle:o.endAngle,s=o.clockwise?o.endAngle:o.startAngle,l=(a+s)/2,u=n(e);switch(u){case"startArc":case"insideStartArc":case"middle":case"insideEndArc":case"endArc":r=l;break;case"startAngle":case"insideStartAngle":r=a;break;case"endAngle":case"insideEndAngle":r=s;break;default:return void t.setTextConfig({rotation:0})}var h=1.5*Math.PI-r;"middle"===u&&h>Math.PI/2&&h<1.5*Math.PI&&(h-=Math.PI),t.setTextConfig({rotation:h})}}(t,"outside"===d?h:d,KS(a),i.get(["label","rotate"]))}uc(p,c,o.getRawValue(n),(function(t){return $w(e,t)}));var f=i.getModel(["emphasis"]);Hl(t,f.get("focus"),f.get("blurScope"),f.get("disabled")),Zl(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",E(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var JS=function(){},QS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new JS},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.baseDimIdx,r=1-this.baseDimIdx,o=[],a=[],s=this.barWidth,l=0;l=s[0]&&e<=s[0]+l[0]&&n>=s[1]&&n<=s[1]+l[1])return a[h]}return-1}(this,t.offsetX,t.offsetY);Js(this).dataIndex=e>=0?e:null}),30,!1);function nM(t,e,n){if(vS(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var iM=2*Math.PI,rM=Math.PI/180;function oM(t,e){return Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function aM(t,e){var n=oM(t,e),i=t.get("center"),r=t.get("radius");Y(r)||(r=[0,r]);var o,a,s=Ur(n.width,e.getWidth()),l=Ur(n.height,e.getHeight()),u=Math.min(s,l),h=Ur(r[0],u/2),c=Ur(r[1],u/2),p=t.coordinateSystem;if(p){var d=p.dataToPoint(i);o=d[0]||0,a=d[1]||0}else Y(i)||(i=[i,i]),o=Ur(i[0],s)+n.x,a=Ur(i[1],l)+n.y;return{cx:o,cy:a,r0:h,r:c}}function sM(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=oM(t,n),o=aM(t,n),a=o.cx,s=o.cy,l=o.r,u=o.r0,h=-t.get("startAngle")*rM,c=t.get("minAngle")*rM,p=0;e.each(i,(function(t){!isNaN(t)&&p++}));var d=e.getSum(i),f=Math.PI/(d||p)*2,g=t.get("clockwise"),y=t.get("roseType"),v=t.get("stillShowZeroSum"),m=e.getDataExtent(i);m[0]=0;var x=iM,_=0,b=h,w=g?1:-1;if(e.setLayout({viewRect:r,r:l}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:a,cy:s,r0:u,r:y?NaN:l});else{(i="area"!==y?0===d&&v?f:t*f:iM/p)n?a:o,h=Math.abs(l.label.y-n);if(h>=u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=Math.abs(c)t.unconstrainedWidth?null:d:null;i.setStyle("width",f)}var g=i.getBoundingRect();o.width=g.width;var y=(i.style.margin||0)+2.1;o.height=g.height+y,o.y-=(o.height-c)/2}}}function pM(t){return"center"===t.position}function dM(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*uM,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),x=y.get("alignTo"),_=Ur(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Ur(S,u);var M=w.get("length2");if(M=Ur(M,u),Math.abs(c.endAngle-c.startAngle)0?"right":"left":k>0?"left":"right"}var B=Math.PI,F=0,G=y.get("rotate");if(j(G))F=G*(B/180);else if("center"===v)F=0;else if("radial"===G||!0===G){F=k<0?-A+B:-A}else if("tangential"===G&&"outside"!==v&&"outer"!==v){var W=Math.atan2(k,L);W<0&&(W=2*B+W),L>0&&(W=B+W),F=W-B}if(o=!!F,p.x=I,p.y=T,p.rotation=F,p.setStyle({verticalAlign:"middle"}),P){p.setStyle({align:D});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var Y=p.getBoundingRect().clone();Y.applyTransform(p.getComputedTransform());var U=(p.style.margin||0)+2.1;Y.y-=U/2,Y.height+=U,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new Ce(k,L),linePoints:C,textAlign:D,labelDistance:m,labelAlignTo:x,edgeDistance:_,bleedMargin:b,rect:Y,unconstrainedWidth:Y.width,labelStyleWidth:p.style.width})}s.setTextConfig({inside:P})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u=n.r0}},e.type="pie",e}(Tg);function vM(t,e,n){e=Y(e)&&{coordDimensions:e}||A({encodeDefine:t.getEncode()},e);var i=t.getSource(),r=nx(i,e).dimensions,o=new ex(r,t);return o.initData(i,n),o}var mM=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),xM=Po(),_M=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new mM(W(this.getData,this),W(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return vM(this,{coordDimensions:["value"],encodeDefaulter:H($p,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=xM(n),r=i.seats;if(!r){var o=[];n.each(n.mapDimension("value"),(function(t){o.push(t)})),r=i.seats=$r(o,n.hostModel.get("percentPrecision"))}var a=t.prototype.getDataParams.call(this,e);return a.percent=r[e]||0,a.$vars.push("percent"),a},e.prototype._defaultLabelLine=function(t){bo(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(fg);var bM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return hx(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(fg),wM=function(){},SM=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return n(e,t),e.prototype.getDefaultShape=function(){return new wM},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,e){var n,i=e.points,r=e.size,o=this.symbolProxy,a=o.shape,s=t.getContext?t.getContext():t,l=s&&r[0]<4,u=this.softClipShape;if(l)this._ctx=s;else{for(this._ctx=null,n=this._off;n=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();return t=n[0],e=n[1],i.contain(t,e)?(this.hoverDataIdx=this.findDataIndex(t,e))>=0:(this.hoverDataIdx=-1,!1)},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.points,i=e.size,r=i[0],o=i[1],a=1/0,s=1/0,l=-1/0,u=-1/0,h=0;h=0&&(l.dataIndex=n+(t.startIndex||0))}))},t.prototype.remove=function(){this._clear()},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),IM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var r=AS("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new MM:new iS,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Tg),TM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(Op),CM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponentes("grid",Eo).models[0]},e.type="cartesian2dAxis",e}(Op);R(CM,m_);var DM={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},AM=C({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},DM),kM=C({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},DM),LM={category:AM,value:kM,time:C({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},kM),log:k({logBase:10},kM)},PM={value:1,category:1,time:1,log:1};function OM(t,e,i,r){E(PM,(function(o,a){var s=C(C({},LM[a],!0),r,!0),l=function(t){function i(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e+"Axis."+a,n}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=Dp(this),i=n?kp(t):{};C(t,e.getTheme().get(a+"Axis")),C(t,this.getDefaultOption()),t.type=RM(t),n&&Ap(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=dx.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.RegistroComponentModel(l)})),t.RegistroSubTypeDefaulter(e+"Axis",RM)}function RM(t){return t.type||(t.data?"category":"value")}var NM=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return z(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),B(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),EM=["x","y"];function zM(t){return"interval"===t.type||"time"===t.type}var VM=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=EM,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(zM(t)&&zM(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=Me([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,e){var n=this.dataToPoint(t),i=this.dataToPoint(e),r=this.getArea(),o=new Ee(n[0],n[1],i[0]-n[0],i[1]-n[1]);return r.intersect(o)},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Wt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i,e)),n[1]=a.toGlobalCoord(a.dataToCoord(r,e)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){var n=[];if(this._invTransform)return Wt(n,t,this._invTransform);var i=this.getAxis("x"),r=this.getAxis("y");return n[0]=i.coordToData(i.toLocalCoord(t[0]),e),n[1]=r.coordToData(r.toLocalCoord(t[1]),e),n},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Ee(n,i,r,o)},e}(NM),BM=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(q_);function FM(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),it(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function GM(t){return"cartesian2d"===t.get("coordinateSystem")}function WM(t){var e={xAxisModel:null,yAxisModel:null};return E(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponentes(r,Eo).models[0];e[i]=o})),e}var HM=Math.log;function YM(t,e,n){var i=Tx.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,s=i.getInterval.call(n),l=u_(t,e),u=l.extent,h=l.fixMin,c=l.fixMax;if("log"===t.type){var p=HM(t.base);u=[HM(u[0])/p,HM(u[1])/p]}t.setExtent(u[0],u[1]),t.calcNiceExtent({splitNumber:a,fixMin:h,fixMax:c});var d=i.getExtent.call(t);h&&(u[0]=d[0]),c&&(u[1]=d[1]);var f=i.getInterval.call(t),g=u[0],y=u[1];if(h&&c)f=(y-g)/a;else if(h)for(y=u[0]+f*a;yu[0]&&isFinite(g)&&isFinite(u[0]);)f=vx(f),g=u[1]-f*a;else{t.getTicks().length-1>a&&(f=vx(f));var v=f*a;(g=Xr((y=Math.ceil(u[1]/f)*f)-v))<0&&u[0]>=0?(g=0,y=Xr(v)):y>0&&u[1]<=0&&(y=0,g=-Xr(v))}var m=(r[0].value-o[0].value)/s,x=(r[a].value-o[a].value)/s;i.setExtent.call(t,g+f*m,y+f*x),i.setInterval.call(t,f),(m||x)&&i.setNiceExtent.call(t,g+f,y-f)}var UM=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=EM,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;function i(t){var e,n=G(t),i=n.length;if(i){for(var r=[],o=i-1;o>=0;o--){var a=t[+n[o]],s=a.model,l=a.scale;gx(l)&&s.get("alignTicks")&&null==s.get("interval")?r.push(a):(h_(l,s),gx(l)&&(e=a))}r.length&&(e||h_((e=r.pop()).scale,e.model),E(r,(function(t){YM(t.scale,t.model,e.scale)})))}}this._updateScale(t,this.model),i(n.x),i(n.y);var r={};E(n.x,(function(t){ZM(n,"y",t,r)})),E(n.y,(function(t){ZM(n,"x",t,r)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=Tp(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){E(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(E(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof Mx?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=p_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h0&&i>0||n<0&&i<0)}(t)}var qM=Math.PI,KM=function(){function t(t,e){this.group=new Er,this.opt=e,this.axisModel=t,k(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Er({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!$M[t]},t.prototype.add=function(t){$M[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=to(e-t);return eo(o)?(r=n>0?"top":"bottom",i="center"):eo(o-qM)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),$M={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0],u=s[0]>l[0];a&&(Wt(s,s,a),Wt(l,l,a));var h=A({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),c=new Xu({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:h,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});Oh(c.shape,c.style.lineWidth),c.anid="line",n.add(c);var p=e.get(["axisLine","symbol"]);if(null!=p){var d=e.get(["axisLine","symbolSize"]);X(p)&&(p=[p,p]),(X(d)||j(d))&&(d=[d,d]);var f=Fy(e.get(["axisLine","symbolOffset"])||0,d),g=d[0],y=d[1];E([{rotate:t.rotation+Math.PI/2,offset:f[0],r:0},{rotate:t.rotation-Math.PI/2,offset:f[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==p[i]&&null!=p[i]){var r=Vy(p[i],-g/2,-y/2,g,y,h.stroke,!0),o=e.r+e.offset,a=u?l:s;r.attr({rotation:e.rotate,x:a[0]+o*Math.cos(t.rotation),y:a[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=eI(r.getTicksCoords(),e.transform,l,k(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;hc[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,tI(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*qM/180),tI(s)?o=KM.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=to(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;eo(a-qM/2)?(o=l?"bottom":"top",r="center"):eo(a-1.5*qM)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*qM&&a>qM/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=it(t.nameTruncateMaxWidth,y.maxWidth,a),x=new Bs({x:d[0],y:d[1],rotation:o.rotation,silent:KM.isLabelSilent(e),style:ec(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(Xh({el:x,componentModel:e,itemName:r}),x.__fullText=r,x.anid="name",e.get("triggerEvent")){var _=KM.makeAxisEventDataBase(e);_.targetType="axisName",_.name=r,Js(x).eventData=_}i.add(x),x.updateTransform(),n.add(x),x.decomposeTransform()}}};function JM(t){t&&(t.ignore=!0)}function QM(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=me([]);return we(r,r,-t.rotation),n.applyTransform(_e([],r,t.getLocalTransform())),i.applyTransform(_e([],r,e.getLocalTransform())),n.intersect(i)}}function tI(t){return"middle"===t||"center"===t}function eI(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l=0||t===e}function rI(t){var e=oI(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=aI(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=k({color:c.color},a));var d=C(T(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,showName:s,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(X(l)){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else U(l)&&(d.name=l(d.name,d));var g=new Sc(d,null,this.ecModel);return R(g,m_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:C({lineStyle:{color:"#bbb"}},DI.axisLine),axisLabel:AI(DI.axisLabel,!1),axisTick:AI(DI.axisTick,!1),splitLine:AI(DI.splitLine,!0),splitArea:AI(DI.splitArea,!0),indicator:[]},e}(Op),LI=["axisLine","axisTickLabel","axisName"],PI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem;E(z(e.getIndicatorAxes(),(function(t){var n=t.model.get("showName")?t.name:"";return new KM(t.model,{axisName:n,position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){E(LI,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=Y(h)?h:[h],d=Y(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,x=0;x3?1.4:r>1?1.2:1.1;FI(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);FI(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){zI(this._zr,"globalPan")||FI(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(jt);function FI(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(pe(i.event),GI(t,e,n,i,r))}function GI(t,e,n,i,r){r.isAvailableBehavior=W(WI,null,n,i),t.trigger(e,r)}function WI(t,e,n){var i=n[t];return!t||i&&(!X(i)||e.event[i+"Key"])}function HI(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function YI(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var UI,XI={axisPointer:1,tooltip:1,brush:1};function ZI(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!XI.hasOwnProperty(i.mainType)&&r&&r.model!==n}function jI(t){X(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}var qI={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},KI=G(qI),$I={"alignment-baseline":"textBaseline","stop-color":"stopColor"},JI=G($I),QI=function(){function t(){this._defs={},this._root=null}return t.prototype.parse=function(t,e){e=e||{};var n=jI(t);this._defsUsePending=[];var i=new Er;this._root=i;var r=[],o=n.getAttribute("viewBox")||"",a=parseFloat(n.getAttribute("width")||e.width),s=parseFloat(n.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(s)&&(s=null),oT(n,i,null,!0,!1);for(var l,u,h=n.firstChild;h;)this._parseNode(h,i,r,null,!1,!1),h=h.nextSibling;if(function(t,e){for(var n=0;n=4&&(l={x:parseFloat(c[0]||0),y:parseFloat(c[1]||0),width:parseFloat(c[2]),height:parseFloat(c[3])})}if(l&&null!=a&&null!=s&&(u=fT(l,{x:0,y:0,width:a,height:s}),!e.ignoreViewBox)){var p=i;(i=new Er).add(p),p.scaleX=p.scaleY=u.scale,p.x=u.x,p.y=u.y}return e.ignoreRootClip||null==a||null==s||i.setClipPath(new Es({shape:{x:0,y:0,width:a,height:s}})),{root:i,width:a,height:s,viewBoxRect:l,viewBoxTransform:u,named:r}},t.prototype._parseNode=function(t,e,n,i,r,o){var a,s=t.nodeName.toLowerCase(),l=i;if("defs"===s&&(r=!0),"text"===s&&(o=!0),"defs"===s||"switch"===s)a=e;else{if(!r){var u=UI[s];if(u&&_t(UI,s)){a=u.call(this,t,e);var h=t.getAttribute("name");if(h){var c={name:h,namedFrom:null,svgNodeTagLower:s,el:a};n.push(c),"g"===s&&(l=c)}else i&&n.push({name:i.name,namedFrom:i,svgNodeTagLower:s,el:a});e.add(a)}}var p=tT[s];if(p&&_t(tT,s)){var d=p.call(this,t),f=t.getAttribute("id");f&&(this._defs[f]=d)}}if(a&&a.isGroup)for(var g=t.firstChild;g;)1===g.nodeType?this._parseNode(g,a,n,l,r,o):3===g.nodeType&&o&&this._parseText(g,a),g=g.nextSibling},t.prototype._parseText=function(t,e){var n=new Ts({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});iT(e,n),oT(t,n,this._defsUsePending,!1,!1),function(t,e){var n=e.__selfStyle;if(n){var i=n.textBaseline,r=i;i&&"auto"!==i?"baseline"===i?r="alphabetic":"before-edge"===i||"text-before-edge"===i?r="top":"after-edge"===i||"text-after-edge"===i?r="bottom":"central"!==i&&"mathematical"!==i||(r="middle"):r="alphabetic",t.style.textBaseline=r}var o=e.__inheritedStyle;if(o){var a=o.textAlign,s=a;a&&("middle"===a&&(s="center"),t.style.textAlign=s)}}(n,e);var i=n.style,r=i.fontSize;r&&r<9&&(i.fontSize=9,n.scaleX*=r/9,n.scaleY*=r/9);var o=(i.fontSize||i.fontFamily)&&[i.fontStyle,i.fontWeight,(i.fontSize||12)+"px",i.fontFamily||"sans-serif"].join(" ");i.font=o;var a=n.getBoundingRect();return this._textX+=a.width,e.add(n),n},t.internalField=void(UI={g:function(t,e){var n=new Er;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n},rect:function(t,e){var n=new Es;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,e){var n=new xu;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,e){var n=new Xu;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,e){var n=new bu;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=rT(i));var r=new Gu({shape:{points:n||[]},silent:!0});return iT(e,r),oT(t,r,this._defsUsePending,!1,!1),r},polyline:function(t,e){var n,i=t.getAttribute("points");i&&(n=rT(i));var r=new Hu({shape:{points:n||[]},silent:!0});return iT(e,r),oT(t,r,this._defsUsePending,!1,!1),r},image:function(t,e){var n=new As;return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Er;return iT(e,a),oT(t,a,this._defsUsePending,!1,!0),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",a=new Er;return iT(e,a),oT(t,a,this._defsUsePending,!1,!0),this._textX+=parseFloat(r),this._textY+=parseFloat(o),a},path:function(t,e){var n=yu(t.getAttribute("d")||"");return iT(e,n),oT(t,n,this._defsUsePending,!1,!1),n.silent=!0,n}}),t}(),tT={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new eh(e,n,i,r);return eT(t,o),nT(t,o),o},radialgradient:function(t){var e=parseInt(t.getAttribute("cx")||"0",10),n=parseInt(t.getAttribute("cy")||"0",10),i=parseInt(t.getAttribute("r")||"0",10),r=new nh(e,n,i);return eT(t,r),nT(t,r),r}};function eT(t,e){"UsuariospaceOnUse"===t.getAttribute("gradientUnits")&&(e.global=!0)}function nT(t,e){for(var n=t.firstChild;n;){if(1===n.nodeType&&"stop"===n.nodeName.toLocaleLowerCase()){var i=n.getAttribute("offset"),r=void 0;r=i&&i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o={};dT(n,o,o);var a=o.stopColor||n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:a})}n=n.nextSibling}}function iT(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),k(e.__inheritedStyle,t.__inheritedStyle))}function rT(t){for(var e=uT(t),n=[],i=0;i0;o-=2){var a=i[o],s=i[o-1],l=uT(a);switch(r=r||[1,0,0,1,0,0],s){case"translate":be(r,r,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":Se(r,r,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":we(r,r,-parseFloat(l[0])*cT);break;case"skewX":_e(r,[1,0,Math.tan(parseFloat(l[0])*cT),1,0,0],r);break;case"skewY":_e(r,[1,Math.tan(parseFloat(l[0])*cT),0,1,0,0],r);break;case"matrix":r[0]=parseFloat(l[0]),r[1]=parseFloat(l[1]),r[2]=parseFloat(l[2]),r[3]=parseFloat(l[3]),r[4]=parseFloat(l[4]),r[5]=parseFloat(l[5])}}e.setLocalTransform(r)}}(t,e),dT(t,a,s),i||function(t,e,n){for(var i=0;i0,f={api:n,geo:s,mapOrGeoModel:t,data:a,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:c};"geoJSON"===s.resourceType?this._buildGeoJSON(f):"geoSVG"===s.resourceType&&this._buildSVG(f),this._updateController(t,e,n),this._updateMapSelectHandler(t,l,n,i)},t.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=yt(),n=yt(),i=this._regionsGroup,r=t.transformInfoRaw,o=t.mapOrGeoModel,a=t.data,s=t.geo.projection,l=s&&s.stream;function u(t,e){return e&&(t=e(t)),t&&[t[0]*r.scaleX+r.x,t[1]*r.scaleY+r.y]}function h(t){for(var e=[],n=!l&&s&&s.project,i=0;i=0)&&(p=r);var d=a?{normal:{align:"center",verticalAlign:"middle"}}:null;Qh(e,tc(i),{labelFetcher:p,labelDataIndex:c,defaultText:n},d);var f=e.getTextContent();if(f&&(NT(f).ignore=f.ignore,e.textConfig&&a)){var g=e.getBoundingRect().clone();e.textConfig.layoutRect=g,e.textConfig.position=[(a[0]-g.x)/g.width*100+"%",(a[1]-g.y)/g.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function GT(t,e,n,i,r,o){t.data?t.data.setItemGraphicEl(o,e):Js(e).eventData={componentType:"geo",componentIndex:r.componentIndex,geoIndex:r.componentIndex,name:n,region:i&&i.option||{}}}function WT(t,e,n,i,r){t.data||Xh({el:e,componentModel:r,itemName:n,itemTooltipOption:i.get("tooltip")})}function HT(t,e,n,i,r){e.highDownSilentOnTouch=!!r.get("selectedMode");var o=i.getModel("emphasis"),a=o.get("focus");return Hl(e,a,o.get("blurScope"),o.get("disabled")),t.isGeo&&function(t,e,n){var i=Js(t);i.componentMainType=e.mainType,i.componentIndex=e.componentIndex,i.componentHighDownName=n}(e,r,n),a}function YT(t,e,n){var i,r=[];function o(){i=[]}function a(){i.length&&(r.push(i),i=[])}var s=e({polygonStart:o,polygonEnd:a,lineStart:o,lineEnd:a,point:function(t,e){isFinite(t)&&isFinite(e)&&i.push([t,e])},sphere:function(){}});return!n&&s.polygonStart(),E(t,(function(t){s.lineStart();for(var e=0;e-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(fg);function ZT(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),E(e,(function(t,e){for(var n,i,r,o=(n=z(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},E(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h1?(d.width=p,d.height=p/x):(d.height=p,d.width=p*x),d.y=c[1]-d.height/2,d.x=c[0]-d.width/2;else{var b=t.getBoxLayoutParams();b.aspect=x,d=Tp(b,{width:v,height:m})}this.setViewRect(d.x,d.y,d.width,d.height),this.setCenter(t.get("center"),e),this.setZoom(t.get("zoom"))}R(tC,KT);var iC=function(){function t(){this.dimensions=QT}return t.prototype.create=function(t,e){var n=[];function i(t){return{nameProperty:t.get("nameProperty"),aspectScale:t.get("aspectScale"),projection:t.get("projection")}}t.eachComponent("geo",(function(t,r){var o=t.get("map"),a=new tC(o+r,o,A({nameMap:t.get("nameMap")},i(t)));a.zoomLimit=t.get("scaleLimit"),n.push(a),t.coordinateSystem=a,a.model=t,a.resize=nC,a.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var r={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();r[e]=r[e]||[],r[e].push(t)}})),E(r,(function(t,r){var o=z(t,(function(t){return t.get("nameMap")})),a=new tC(r,r,A({nameMap:D(o)},i(t[0])));a.zoomLimit=it.apply(null,z(t,(function(t){return t.get("scaleLimit")}))),n.push(a),a.resize=nC,a.resize(t[0],e),E(t,(function(t){t.coordinateSystem=a,function(t,e){E(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(a,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n,i){for(var r=(t||[]).slice(),o=yt(),a=0;a=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=gC(s),o=yC(o),s&&o;){r=gC(r),a=yC(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(mC(vC(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!gC(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!yC(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function pC(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function dC(t){return arguments.length?t:xC}function fC(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function gC(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function yC(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function vC(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function mC(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function xC(t,e){return t.parentNode===e.parentNode?1:2}var _C=function(){this.parentPoint=[],this.childPoints=[]},bC=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new _C},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Ur(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;pm.x)||(_-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),I=M.get("rotate"),T=I*(Math.PI/180),C=y.getTextContent();C&&(y.setTextConfig({position:M.get("position")||S,rotation:null==I?-_:T,origin:"center"}),C.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),A="relative"===D?vt(a.getAncestorsIndices(),a.getDescendantIndices()):"ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;A&&(Js(n).focus=A),function(t,e,n,i,r,o,a,s){var l=e.getModel(),u=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),p=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),f=l.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&(g||(g=i.__edge=new Ku({shape:DC(h,c,p,r,r)})),dh(g,{shape:DC(h,c,p,o,a)},t));else if("polyline"===u)if("orthogonal"===h){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,v=[],m=0;me&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,e=0;e=0){var i=n.getData().tree.root,r=t.targetNode;if(X(r)&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function GC(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function WC(t,e){return P(GC(t),e)>=0}function HC(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var YC=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return n(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new Sc(n,this,this.ecModel),r=BC.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n&&n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return Qf("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=HC(i,this),n.collapsed=!i.isExpand,n},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(fg);function UC(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function XC(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=dC((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=dC());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),UC(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=fC(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),UC(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),UC(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function ZC(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();A(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}var jC=["treemapZoomToNode","treemapRender","treemapMove"];function qC(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=ld(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var KC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};$C(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new Sc({itemStyle:r},this,e);i=t.levels=function(t,e){var n,i,r=_o(e.get("color")),o=_o(e.get(["aria","decal","decals"]));if(!r)return;E(t=t||[],(function(t){var e=new Sc(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e);var a=z(i||[],(function(t){return new Sc(t,o,e)}),this),s=BC.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=n?a[n.depth]:null;return t.parentModel=i||o,t}))}));return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return Qf("nameValue",{name:i.getName(t),value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=HC(i,this),n.treePathInfo=n.treeAncestors,n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},A(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=yt(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){qC(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(fg);function $C(t){var e=0;E(t.children,(function(t){$C(t);var n=t.value;Y(n)&&(n=n[0]),e+=n}));var n=t.value;Y(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),Y(t.value)?t.value[0]=n:t.value=n}var JC=function(){function t(t){this.group=new Er,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=r.getModel("emphasis"),l=a.getModel("textStyle"),u=s.getModel(["itemStyle","textStyle"]),h={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,h,l),this._renderContent(t,h,a,s,l,u,i),Cp(o,h.pos,h.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=Do(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r,o,a){for(var s,l,u,h,c,p,d,f,g,y=0,v=e.emptyItemWidth,m=t.get(["breadcrumb","height"]),x=(s=e.pos,l=e.box,h=l.width,c=l.height,p=Ur(s.left,h),d=Ur(s.top,c),f=Ur(s.right,h),g=Ur(s.bottom,c),(isNaN(p)||isNaN(parseFloat(s.left)))&&(p=0),(isNaN(f)||isNaN(parseFloat(s.right)))&&(f=h),(isNaN(d)||isNaN(parseFloat(s.top)))&&(d=0),(isNaN(g)||isNaN(parseFloat(s.bottom)))&&(g=c),u=dp(u||0),{width:Math.max(f-p-u[1]-u[3],0),height:Math.max(g-d-u[0]-u[2],0)}),_=e.totalWidth,b=e.renderList,w=i.getModel("itemStyle").getItemStyle(),S=b.length-1;S>=0;S--){var M=b[S],I=M.node,T=M.width,C=M.text;_>x.width&&(_-=T-v,T=v,C=null);var D=new Gu({shape:{points:QC(y,0,T,m,S===b.length-1,0===S)},style:k(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new Bs({style:ec(r,{text:C})}),textConfig:{position:"inside"},z2:1e5,onclick:H(a,I)});D.disableLabelAnimation=!0,D.getTextContent().ensureState("emphasis").style=ec(o,{text:C}),D.ensureState("emphasis").style=w,Hl(D,i.get("focus"),i.get("blurScope"),i.get("disabled")),this.group.add(D),tD(D,t,I),y+=T+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function QC(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function tD(t,e,n){Js(t).eventData={componentType:"series",ComponentesubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&HC(n,e)}}var eD=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new Ee(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];be(s,s,[-(e-=a.x),-(n-=a.y)]),Se(s,s,[t.scale,t.scale]),be(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&_p(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new JC(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(WC(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(Tg);var hD=E,cD=q,pD=-1,dD=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=T(e);this.type=i,this.mappingMethod=n,this._normalizeData=SD[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(fD(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,E(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(hD(e,(function(t,e){n[t]=e})),!Y(i)){var r=[];q(i)?hD(i,(function(t,e){var i=n[e];r[null!=i?i:pD]=t})):r[-1]=i,i=wD(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):fD(r,!0):(lt("linear"!==n||r.dataExtent),fD(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return W(this._normalizeData,this)},t.listVisualTypes=function(){return G(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){q(t)?E(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=Y(e)?[]:q(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&hD(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(Y(t))t=t.slice();else{if(!cD(t))return[];var e=[];hD(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;ou[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new dD(c);return ID(p).drColorMappingBy=h,p}(0,r,o,0,u,d);E(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=A({},e);if(r){var s=r.type,l="color"===s&&ID(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);CD(t,o,n,i)}}))}else s=DD(u),h.fill=s}}function DD(t){var e=AD(t,"color");if(e){var n=AD(t,"colorAlpha"),i=AD(t,"colorSaturation");return i&&(e=ei(e,null,null,i)),n&&(e=ni(e,n)),e}}function AD(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function kD(t,e){var n=t.get(e);return Y(n)&&n.length?{name:e,range:n}:null}var LD=Math.max,PD=Math.min,OD=it,RD=E,ND=["itemStyle","borderWidth"],ED=["itemStyle","gapWidth"],zD=["upperLabel","show"],VD=["upperLabel","height"],BD={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=Tp(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Ur(OD(s.width,l[0]),r),h=Ur(OD(s.height,l[1]),o),c=i&&i.type,p=FC(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=GC(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;pQr&&(u=Qr),a=o}ua[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*ei&&(i=a));var l=t.area*t.area,u=e*e*n;return l?LD(u*i/l,l/(u*r)):1/0}function WD(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;ci&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a0&&(m[0]=-m[0],m[1]=-m[1]);var _=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0].8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*_+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*_,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=x[0],i.y=x[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*_+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*_,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Er),TA=function(){function t(t){this.group=new Er,this._LineCtor=t||IA}return t.prototype.updateData=function(t){var e=this;this._progressiveEls=null;var n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=CA(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=CA(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[];for(var i=t.start;i=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function zA(t,e){var n=[],i=Cn,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[Tt(l[0]),Tt(l[1])],l[2]&&l.__original.push(Tt(l[2])));var c=l.__original;if(null!=l[2]){if(It(r[0],c[0]),It(r[1],c[2]),It(r[2],c[1]),u&&"none"!==u){var p=aA(t.node1),d=EA(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=aA(t.node2),d=EA(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}It(l[0],r[0]),It(l[1],r[2]),It(l[2],r[1])}else{if(It(o[0],c[0]),It(o[1],c[1]),kt(a,o[1],o[0]),Et(a,a),u&&"none"!==u){p=aA(t.node1);At(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=aA(t.node2);At(o[1],o[1],a,-p*e)}It(l[0],o[0]),It(l[1],o[1])}}))}function VA(t){return"view"===t.type}var BA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new iS,i=new TA,r=this.group;this._controller=new BI(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(VA(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):dh(s,l,t)}zA(t.getGraph(),oA(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p);var d=t.get("layout");u.graph.eachNode((function(e){var n=e.dataIndex,r=e.getGraphicEl(),o=e.getModel();if(r){r.off("drag").off("dragend");var a=o.get("draggable");a&&r.on("drag",(function(o){switch(d){case"force":c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(n),u.setItemLayout(n,[r.x,r.y]);break;case"circular":u.setItemLayout(n,[r.x,r.y]),e.setLayout({fixed:!0},!0),uA(t,"symbolSize",e,[o.offsetX,o.offsetY]),i.updateLayout(t);break;default:u.setItemLayout(n,[r.x,r.y]),iA(t.getGraph(),t),i.updateLayout(t)}})).on("dragend",(function(){c&&c.setUnfixed(n)})),r.setDraggable(a,!!o.get("cursor")),"adjacency"===o.get(["emphasis","focus"])&&(Js(r).focus=e.getAdjacentDataIndices())}})),u.graph.eachEdge((function(t){var e=t.getGraphicEl(),n=t.getModel().get(["emphasis","focus"]);e&&"adjacency"===n&&(Js(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var f="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),g=u.getLayout("cx"),y=u.getLayout("cy");u.graph.eachNode((function(t){cA(t,f,g,y)})),this._firstRender=!1},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,e){var n=this;!function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))}()},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!ZI(e,n,t)})),VA(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){HI(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){YI(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),zA(t.getGraph(),oA(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=oA(t);e.eachItemGraphicEl((function(t,e){t&&t.setSymbolScale(n)}))},e.prototype.updateLayout=function(t){zA(t.getGraph(),oA(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(Tg);function FA(t){return"_EC_"+t}var GA=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[FA(t)]){var i=new WA(t,e);return i.hostGraph=this,this.nodes.push(i),n[FA(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[FA(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if(j(t)&&(t=this.nodes[t]),j(e)&&(e=this.nodes[e]),t instanceof WA||(t=i[FA(t)]),e instanceof WA||(e=i[FA(e)]),t&&e){var o=t.id+"-"+e.id,a=new HA(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof WA&&(t=t.id),e instanceof WA&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof WA||(e=this._nodesMap[FA(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function UA(t,e,n,i,r){for(var o=new GA(i),a=0;a "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=hx(t,n);else{var g=vd.get(f),y=g&&g.dimensions||[];P(y,"value")<0&&y.concat(["value"]);var v=nx(t,{coordDimensions:y,encodeDefine:n.getEncode()}).dimensions;(d=new ex(v,n)).initData(t)}var m=new ex(["value"],n);return m.initData(l,s),r&&r(d,m),kC({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}R(WA,YA("hostGraph","data")),R(HA,YA("hostGraph","edgeData"));var XA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new mM(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),bo(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){KD(n=this)&&(n.__curvenessList=[],n.__edgeMap={},$D(n));var a=UA(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=Sc.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return E(a.edges,(function(t){!function(t,e,n,i){if(KD(n)){var r=JD(t,e,n),o=n.__edgeMap,a=o[QD(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),Qf("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return cg({series:this,dataIndex:t,multipleSeries:e})},e.prototype._updateCategoriesData=function(){var t=z(this.option.categories||[],(function(t){return null!=t.value?t:A({value:0},t)})),e=new ex(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(fg),ZA={type:"graphRoam",event:"graphRoam",update:"none"};var jA=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},qA=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return n(e,t),e.prototype.getDefaultShape=function(){return new jA},e.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},e}(Ms);function KA(t,e){var n=null==t?"":t+"";return e&&(X(e)?n=e.replace("{value}",n):U(e)&&(n=e(t))),n}var $A=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Ur(n[0],e.getWidth()),cy:Ur(n[1],e.getHeight()),r:Ur(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,i,r){var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?ES:Eu,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=[s,l];is(f,!a);for(var g=(l=f[1])-(s=f[0]),y=s,v=[],m=0;c&&m=t&&(0===e?0:i[e-1][0])Math.PI/2&&(V+=Math.PI):"tangential"===z?V=-M-Math.PI/2:j(z)&&(V=z*Math.PI/180),0===V?c.add(new Bs({style:ec(x,{text:O,x:N,y:E,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0})):c.add(new Bs({style:ec(x,{text:O,x:N,y:E,verticalAlign:"middle",align:"center"},{inheritColor:R}),silent:!0,originX:N,originY:E,rotation:V}))}if(m.get("show")&&k!==_){P=(P=m.get("distance"))?P+l:l;for(var B=0;B<=b;B++){u=Math.cos(M),h=Math.sin(M);var F=new Xu({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:D});"auto"===D.stroke&&F.setStyle({stroke:i((k+B/b)/_)}),c.add(F),M+=T}M-=T}else M+=I}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),x=+t.get("max"),_=[m,x],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Ur(o.get("width"),r.r),s=Ur(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Ur(u[0],r.r),c=Ur(u[1],r.r),p=o.get("keepAspect");return(i=l?Vy(l,h-a/2,c-s,a,s,null,p):new qA({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?ES:Eu,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=x-y.get(v,t)%x),c}(g||d)&&(y.diff(h).add((function(e){var n=y.get(v,e);if(d){var i=w(e,o);fh(i,{rotation:-((isNaN(+n)?b[0]:Yr(n,_,b,!0))+Math.PI/2)},t),u.add(i),y.setItemGraphicEl(e,i)}if(g){var r=S(e,o),a=f.get("clip");fh(r,{shape:{endAngle:Yr(n,_,b,a)}},t),u.add(r),Qs(t.seriesIndex,y.dataType,e,r),p[e]=r}})).update((function(e,n){var i=y.get(v,e);if(d){var r=h.getItemGraphicEl(n),a=r?r.rotation:o,s=w(e,a);s.rotation=a,dh(s,{rotation:-((isNaN(+i)?b[0]:Yr(i,_,b,!0))+Math.PI/2)},t),u.add(s),y.setItemGraphicEl(e,s)}if(g){var l=c[n],m=S(e,l?l.shape.endAngle:o),x=f.get("clip");dh(m,{shape:{endAngle:Yr(i,_,b,x)}},t),u.add(m),Qs(t.seriesIndex,y.dataType,e,m),p[e]=m}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis"),r=n.get("focus"),o=n.get("blurScope"),a=n.get("disabled");if(d){var s=y.getItemGraphicEl(t),l=y.getItemVisual(t,"style"),u=l.fill;if(s instanceof As){var h=s.style;s.useStyle(A({image:h.image,x:h.x,y:h.y,width:h.width,height:h.height},l))}else s.useStyle(l),"pointer"!==s.type&&s.setColor(u);s.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===s.style.fill&&s.setStyle("fill",i(Yr(y.get(v,t),_,[0,1],!0))),s.z2EmphasisLift=0,Zl(s,e),Hl(s,r,o,a)}if(g){var c=p[t];c.useStyle(y.getItemVisual(t,"style")),c.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),c.z2EmphasisLift=0,Zl(c,e),Hl(c,r,o,a)}})),this._progressEls=p)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=Vy(r,e.cx-i/2+Ur(o[0],e.r),e.cy-i/2+Ur(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},e.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Er,c=[],p=[],d=t.isAnimationEnabled(),f=t.get(["pointer","showAbove"]);a.diff(this._data).add((function(t){c[t]=new Bs({silent:!0}),p[t]=new Bs({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),g=new Er,y=i(Yr(o,[l,u],[0,1],!0)),v=n.getModel("title");if(v.get("show")){var m=v.get("offsetCenter"),x=r.cx+Ur(m[0],r.r),_=r.cy+Ur(m[1],r.r);(D=c[e]).attr({z2:f?0:2,style:ec(v,{x:x,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:y})}),g.add(D)}var b=n.getModel("detail");if(b.get("show")){var w=b.get("offsetCenter"),S=r.cx+Ur(w[0],r.r),M=r.cy+Ur(w[1],r.r),I=Ur(b.get("width"),r.r),T=Ur(b.get("height"),r.r),C=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:y,D=p[e],A=b.get("formatter");D.attr({z2:f?0:2,style:ec(b,{x:S,y:M,text:KA(o,A),width:isNaN(I)?null:I,height:isNaN(T)?null:T,align:"center",verticalAlign:"middle"},{inheritColor:C})}),uc(D,{normal:b},o,(function(t){return KA(t,A)})),d&&hc(D,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return KA(a?a.interpolatedValue:o,A)}}),g.add(D)}h.add(g)})),this.group.add(h),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(Tg),JA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n}return n(e,t),e.prototype.getInitialData=function(t,e){return vM(this,["value"])},e.type="series.gauge",e.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(fg);var QA=["itemStyle","opacity"],tk=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new Hu,a=new Bs;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return n(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(QA);l=null==l?1:l,n||xh(i),i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,fh(i,{style:{opacity:l}},r,e)):dh(i,{style:{opacity:l},shape:{points:a.points}},r,e),Zl(i,o),this._updateLabel(t,e),Hl(this,s.get("focus"),s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;Qh(r,tc(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new Ce(h[0][0],h[0][1]):null},dh(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),xb(n,_b(a),{stroke:u})},e}(Gu),ek=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new tk(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){mh(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(Tg),nk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new mM(W(this.getData,this),W(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return vM(this,{coordDimensions:["value"],encodeDefaulter:H($p,this)})},e.prototype._defaultLabelLine=function(t){bo(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(fg);function ik(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&yk(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function yk(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var vk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&C(e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){E(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];E(B(this.ecModel.queryComponentes({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(Op),mk=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return n(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(q_);function xk(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=bk(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=bk(s,[0,a]),r=o=bk(s,[r,o]),i=0}e[0]=bk(e[0],n),e[1]=bk(e[1],n);var l=_k(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=bk(e[i],c),u=_k(e,i),null!=r&&(u.sign!==l.sign||u.spano&&(e[1-i]=e[i]+u.sign*o),e}function _k(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function bk(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var wk=E,Sk=Math.min,Mk=Math.max,Ik=Math.floor,Tk=Math.ceil,Ck=Xr,Dk=Math.PI,Ak=function(){function t(t,e,n){this.type="parallel",this._axesMap=yt(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;wk(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new mk(t,c_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();wk(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),h_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=kk(e.get("axisExpandWidth"),l),c=kk(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=kk(d[1]-d[0],l),d[1]=d[0]+t):(t=kk(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||Ik(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[Ik(Ck(d[0]/h,1))+1,Tk(Ck(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),wk(n,(function(e,n){var o=(i.axisExpandable?Pk:Lk)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:Dk/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];we(h,h,u),be(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];E(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;ur*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?xk(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[Mk(0,o[1]*s/p-p/2)])[1]=Sk(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function kk(t,e){return Sk(Mk(t,e[0]),e[1])}function Lk(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function Pk(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t=0;n--)Zr(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i6}(t)||o){if(a&&!o){"single"===s.brushMode&&Qk(t);var l=T(s);l.brushType=yL(l.brushType,a),l.panelId=a===Nk?null:a.panelId,o=t._creatingCover=Uk(t,l),t._covers.push(o)}if(o){var u=xL[yL(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(pL(t,o,t._track)),i&&(Xk(t,o),u.updateCommon(t,o)),Zk(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&$k(t,e,n)&&Qk(t)&&(r={isEnd:i,removeOnClick:!0});return r}function yL(t,e){return"auto"===t?e.defaultBrushType:t}var vL={mousedown:function(t){if(this._dragging)mL(this,t);else if(!t.target||!t.target.draggable){dL(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=$k(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=$k(t,e,n);if(!t._dragging)for(var a=0;a=0&&(o[r[a].depth]=new Sc(r[a],this,e));if(i&&n){var s=UA(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))}));return s.data}},e.prototype.setNodePosition=function(t,e){var n=(this.option.data||this.option.nodes)[t];n.localX=e[0],n.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return Qf("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return Qf("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(fg);function RL(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){E(t,(function(t){var e=YL(t.outEdges,HL),n=YL(t.inEdges,HL),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;mc-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s0;o--)zL(s,l*=.99,a),EL(s,r,n,i,a),UL(s,l,a),EL(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";E(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),E(t,(function(t){var e=0,n=0;E(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),E(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==B(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function NL(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function EL(t,e,n,i,r){var o="vertical"===r?"x":"y";E(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function zL(t,e,n){E(t.slice().reverse(),(function(t){E(t,(function(t){if(t.outEdges.length){var i=YL(t.outEdges,VL,n)/YL(t.outEdges,HL);if(isNaN(i)){var r=t.outEdges.length;i=r?YL(t.outEdges,BL,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-WL(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-WL(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function VL(t,e){return WL(t.node2,e)*t.getValue()}function BL(t,e){return WL(t.node2,e)}function FL(t,e){return WL(t.node1,e)*t.getValue()}function GL(t,e){return WL(t.node1,e)}function WL(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function HL(t){return t.getValue()}function YL(t,e,n){for(var i=0,r=t.length,o=-1;++oo&&(o=e)})),E(n,(function(e){var n=new dD({type:"color",mappingMethod:"linear",dataExtent:[r,o],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),i=e.getModel().get(["itemStyle","color"]);null!=i?(e.setVisual("color",i),e.setVisual("style",{fill:i})):(e.setVisual("color",n),e.setVisual("style",{fill:n}))}))}i.length&&E(i,(function(t){var e=t.getModel().get("lineStyle");t.setVisual("style",e)}))}))}var ZL=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];E(g,(function(t,e){var n;Y(t)?(n=t.slice(),t.unshift(e)):Y(t.value)?((n=A({},t)).value=n.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:Rm(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Rm(f),dimsDef:v.slice()}];return vM(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:H(Kp,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),jL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return n(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(fg);R(jL,ZL,!0);var qL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=JL(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?(xh(n),QL(s,n,i,t)):n=JL(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(Tg),KL=function(){},$L=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return n(e,t),e.prototype.getDefaultShape=function(){return new KL},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();ig){var _=[v,x];i.push(_)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var rP=["color","borderColor"],oP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype.eachRendered=function(t){jh(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&uP(s,a))return;var l=lP(a,n,!0);fh(l,{shape:{points:a.ends}},t,n),hP(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&uP(s,h)?i.remove(u):(u?(dh(u,{shape:{points:h.ends}},t,a),xh(u)):u=lP(h),hP(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),fP(t,this.group);var e=t.get("clip",!0)?yS(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=lP(i.getItemLayout(n));hP(o,i,n,r),o.incremental=!0,this.group.add(o),this._progressiveEls.push(o)}},e.prototype._incrementalRenderLarge=function(t,e){fP(e,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(Tg),aP=function(){},sP=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new aP},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(Ms);function lP(t,e,n){var i=t.ends;return new sP({shape:{points:n?cP(i,t):i},z2:100})}function uP(t,e){for(var n=!0,i=0;i0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]);0===t&&(r=n.get(["itemStyle","borderColorDoji"]));var o=n.getModel("itemStyle").getItemStyle(rP);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var yP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return n(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(fg);function vP(t){t&&Y(t.series)&&E(t.series,(function(t){q(t)&&"k"===t.type&&(t.type="candlestick")}))}R(yP,ZL,!0);var mP=["itemStyle","borderColor"],xP=["itemStyle","borderColor0"],_P=["itemStyle","borderColorDoji"],bP=["itemStyle","color"],wP=["itemStyle","color0"],SP={seriesType:"candlestick",plan:Sg(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?bP:wP)}function i(t,e){return e.get(0===t?_P:t>0?mP:xP)}if(!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,A(e.ensureUniqueItemVisual(r,"style"),s)}}}}},MP={seriesType:"candlestick",plan:Sg(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Ur(rt(t.get("barMaxWidth"),r),r),a=Ur(rt(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Ur(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.getDimensionIndex(n.mapDimension(r[0])),a=z(n.mapDimensionsAll(r[1]),n.getDimensionIndex,n),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(o<0||a.length<4))return{progress:t.pipelineContext.large?function(n,i){var r,a,c=Ax(4*n.count),p=0,d=[],f=[],g=i.getStore(),y=!!t.get(["itemStyle","borderColorDoji"]);for(;null!=(a=n.next());){var v=g.get(o,a),m=g.get(s,a),x=g.get(l,a),_=g.get(u,a),b=g.get(h,a);isNaN(v)||isNaN(_)||isNaN(b)?(c[p++]=NaN,p+=3):(c[p++]=IP(g,a,m,x,l,y),d[0]=v,d[1]=_,r=e.dataToPoint(d,null,f),c[p++]=r?r[0]:NaN,c[p++]=r?r[1]:NaN,d[1]=b,r=e.dataToPoint(d,null,f),c[p++]=r?r[1]:NaN)}i.setLayout("largePoints",c)}:function(t,n){var r,a=n.getStore();for(;null!=(r=t.next());){var c=a.get(o,r),p=a.get(s,r),d=a.get(l,r),f=a.get(u,r),g=a.get(h,r),y=Math.min(p,d),v=Math.max(p,d),m=M(y,c),x=M(v,c),_=M(f,c),b=M(g,c),w=[];I(w,x,0),I(w,m,1),w.push(C(b),C(x),C(_),C(m));var S=!!n.getItemModel(r).get(["itemStyle","borderColorDoji"]);n.setItemLayout(r,{sign:IP(a,r,p,d,l,S),initBaseline:p>d?x[1]:m[1],ends:w,brushRect:T(f,g,c)})}function M(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function I(t,e,n){var r=e.slice(),o=e.slice();r[0]=Rh(r[0]+i/2,1,!1),o[0]=Rh(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function T(t,e,n){var r=M(t,n),o=M(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function C(t){return t[0]=Rh(t[0],1),t}}}}};function IP(t,e,n,i,r,o){return n>i?-1:n0?t.get(r,e-1)<=i?1:-1:1}function TP(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var CP=function(t){function e(e,n){var i=t.call(this)||this,r=new Jw(e,n),o=new Er;return i.add(r),i.add(o),i.updateData(e,n),i}return n(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=t.rippleNumber,r=this.childAt(1),o=0;o0&&(o=this._getLineLength(i)/l*1e3),o!==this._period||a!==this._loop||s!==this._roundTrip){i.stopAnimation();var h=void 0;h=U(u)?u(n):u,i.__t>0&&(h=-o*i.__t),this._animateSymbol(i,o,h,a,s)}this._period=o,this._loop=a,this._roundTrip=s}},e.prototype._animateSymbol=function(t,e,n,i,r){if(e>0){t.__t=0;var o=this,a=t.animate("",i).when(r?2*e:e,{__t:r?2:1}).delay(n).during((function(){o._updateSymbolPosition(t)}));i||a.done((function(){o.remove(t)})),a.start()}},e.prototype._getLineLength=function(t){return Vt(t.__p1,t.__cp1)+Vt(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t<1?t.__t:2-t.__t,o=[t.x,t.y],a=o.slice(),s=Mn,l=In;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=t.__t<1?l(e[0],i[0],n[0],r):l(n[0],i[0],e[0],1-r),h=t.__t<1?l(e[1],i[1],n[1],r):l(n[1],i[1],e[1],1-r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;oe);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+1];t.x=l[0]*(1-s)+s*u[0],t.y=l[1]*(1-s)+s*u[1];var h=t.__t<1?u[0]-l[0]:l[0]-u[0],c=t.__t<1?u[1]-l[1]:l[1]-u[1];t.rotation=-Math.atan2(c,h)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=e,t.ignore=!1}},e}(kP),OP=function(){this.polyline=!1,this.curveness=0,this.segs=[]},RP=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return n(e,t),e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new OP},e.prototype.buildPath=function(t,e){var n,i=e.segs,r=e.curveness;if(e.polyline)for(n=this._off;n0){t.moveTo(i[n++],i[n++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*r,p=(l+h)/2-(u-s)*r;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}this.incremental&&(this._off=n,this.notClear=!0)},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s0)for(var u=i[s++],h=i[s++],c=1;c0){if(ss(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(os(u,h,p,d,o,t,e))return a;a++}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();return t=n[0],e=n[1],i.contain(t,e)?(this.hoverDataIdx=this.findDataIndex(t,e))>=0:(this.hoverDataIdx=-1,!1)},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape.segs,n=1/0,i=1/0,r=-1/0,o=-1/0,a=0;a0&&(o.dataIndex=n+t.__startIndex)}))},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),EP={seriesType:"lines",plan:Sg(),reset:function(t){var e=t.coordinateSystem;if(e){var n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h0&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)})),r.updateData(i);var u=t.get("clip",!0)&&yS(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=EP.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new NP:new TA(r?i?PP:LP:i?kP:IA),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.type="lines",e}(Tg),VP="undefined"==typeof Uint32Array?Array:Uint32Array,BP="undefined"==typeof Float64Array?Array:Float64Array;function FP(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=z(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),D([e,t[0],t[1]])})))}var GP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.init=function(e){e.data=e.data||[],FP(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(FP(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=vt(this._flatCoords,e.flatCoords),this._flatCoordsOffset=vt(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),e=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&e>0?e+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(fg);function WP(t){return t instanceof Array||(t=[t,t]),t}var HP={seriesType:"lines",reset:function(t){var e=WP(t.get("symbol")),n=WP(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=WP(n.getShallow("symbol",!0)),r=WP(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var YP=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=h.createCanvas();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d0){var I=o(v)?s:l;v>0&&(v=v*S+w),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=h.createCanvas()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function UP(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var XP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this._progressiveEls=null,this.group.removeAll();var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):UP(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(UP(r)?this.render(e,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){jh(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem,h=vS(u,"cartesian2d");if(h){var c=u.getAxis("x"),p=u.getAxis("y");0,o=c.getBandWidth()+.5,a=p.getBandWidth()+.5,s=c.scale.getExtent(),l=p.scale.getExtent()}for(var d=this.group,f=t.getData(),g=t.getModel(["emphasis","itemStyle"]).getItemStyle(),y=t.getModel(["blur","itemStyle"]).getItemStyle(),v=t.getModel(["select","itemStyle"]).getItemStyle(),m=t.get(["itemStyle","borderRadius"]),x=tc(t),_=t.getModel("emphasis"),b=_.get("focus"),w=_.get("blurScope"),S=_.get("disabled"),M=h?[f.mapDimension("x"),f.mapDimension("y"),f.mapDimension("value")]:[f.mapDimension("time"),f.mapDimension("value")],I=n;Is[1]||Al[1])continue;var k=u.dataToPoint([D,A]);T=new Es({shape:{x:k[0]-o/2,y:k[1]-a/2,width:o,height:a},style:C})}else{if(isNaN(f.get(M[1],I)))continue;T=new Es({z2:1,shape:u.dataToRect([f.get(M[0],I)]).contentShape,style:C})}if(f.hasItemOption){var L=f.getItemModel(I),P=L.getModel("emphasis");g=P.getModel("itemStyle").getItemStyle(),y=L.getModel(["blur","itemStyle"]).getItemStyle(),v=L.getModel(["select","itemStyle"]).getItemStyle(),m=L.get(["itemStyle","borderRadius"]),b=P.get("focus"),w=P.get("blurScope"),S=P.get("disabled"),x=tc(L)}T.shape.r=m;var O=t.getRawValue(I),R="-";O&&null!=O[2]&&(R=O[2]+""),Qh(T,x,{labelFetcher:t,labelDataIndex:I,defaultOpacity:C.opacity,defaultText:R}),T.ensureState("emphasis").style=g,T.ensureState("blur").style=y,T.ensureState("select").style=v,Hl(T,b,w,S),T.incremental=r,r&&(T.states.emphasis.hoverLayer=!0),d.add(T),f.setItemGraphicEl(I,T),this._progressiveEls&&this._progressiveEls.push(T)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new YP;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),x="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=z(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i0?1:-1}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=Y(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=Ur(h[p.index],d),h[c.index]=Ur(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(jP)||0;o&&(KP.attr({scaleX:e[0],scaleY:e[1],rotation:n}),KP.updateTransform(),o/=KP.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o||0}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=Fy(n.get("symbolOffset"),p);return function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=it(t.get("symbolMargin"),"15%")+"",x=!1;m.lastIndexOf("!")===m.length-1&&(x=!0,m=m.slice(0,m.length-1));var _=Ur(m,e[d.index]),b=Math.max(g+2*_,0),w=x?0:2*_,S=ho(i),M=S?i:fO((v+w)/b);b=g+2*(_=(v-M*g)/2/(x?M:Math.max(M-1,1))),w=x?0:2*_,S||"fixed"===i||(M=u?fO((Math.abs(u)+w)/b):0),y=M*b-w,c.repeatTimes=M,c.symbolMargin=_}var I=f*(y/2),T=c.pathPosition=[];T[p.index]=n[p.wh]/2,T[d.index]="start"===a?I:"end"===a?l-I:l/2,o&&(T[0]+=o[0],T[1]+=o[1]);var C=c.bundlePosition=[];C[p.index]=n[p.xy],C[d.index]=n[d.xy];var D=c.barRectShape=A({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(T[d.index]+I)),D[p.wh]=n[p.wh];var k=c.clipShape={};k[p.xy]=-n[p.xy],k[p.wh]=h.ecSize[p.wh],k[d.xy]=0,k[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function QP(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function tO(t){var e=t.symbolPatternSize,n=Vy(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function eO(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(cO(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function nO(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?pO(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=tO(n),r.add(o),pO(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function iO(t,e,n){var i=A({},e.barRectShape),r=t.__pictorialBarRect;r?pO(r,null,{shape:i},e,n):((r=t.__pictorialBarRect=new Es({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}})).disableMorphing=!0,t.add(r))}function rO(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=A({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)dh(r,{shape:o},s,l);else{o[a.wh]=0,r=new Es({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],qh[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function oO(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=aO,n.isAnimationEnabled=sO,n}function aO(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function sO(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function lO(t,e,n,i){var r=new Er,o=new Er;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?eO(r,e,n):nO(r,0,n),iO(r,n,i),rO(r,e,n,i),r.__pictorialShapeStr=hO(t,n),r.__pictorialSymbolMeta=n,r}function uO(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];cO(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),E(o,(function(t){yh(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function hO(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function cO(t,e,n){E(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function pO(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&qh[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function dO(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");cO(t,(function(t){if(t instanceof As){var e=t.style;t.useStyle(A({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];Qh(t.__pictorialBarRect,tc(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:Kw(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Hl(t,h,c,o.get("disabled"))}function fO(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var gO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return n(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=Tc(OS.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(OS);var yO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new Lm(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;go&&(o=s),i.push(s)}for(var u=0;uo&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;fMath.PI/2?"right":"left"):S&&"center"!==S?"left"===S?(m=r.r0+w,a>Math.PI/2&&(S="right")):"right"===S&&(m=r.r-w,a>Math.PI/2&&(S="left")):(m=o===2*Math.PI&&0===r.r0?0:(r.r+r.r0)/2,S="center"),g.style.align=S,g.style.verticalAlign=f(p,"verticalAlign")||"middle",g.x=m*s+r.cx,g.y=m*l+r.cy;var M=f(p,"rotate"),I=0;"radial"===M?(I=-a)<-Math.PI/2&&(I+=Math.PI):"tangential"===M?(I=Math.PI/2-a)>Math.PI/2?I-=Math.PI:I<-Math.PI/2&&(I+=Math.PI):j(M)&&(I=M*Math.PI/180),g.rotation=I})),h.dirtyStyle()},e}(Eu),bO="sunburstRootToNode",wO="sunburstHighlight";var SO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new _O(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new Lm(r,i,s,s).add(h).update(h).remove(H(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new _O(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)_p(a,o.get("target",!0)||"_blank")}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:bO,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="sunburst",e}(Tg),MO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};IO(n);var i=this._levelModels=z(t.levels||[],(function(t){return new Sc(t,this,e)}),this),r=BC.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=HC(i,this),n},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){qC(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(fg);function IO(t){var e=0;E(t.children,(function(t){IO(t);var n=t.value;Y(n)&&(n=n[0]),e+=n}));var n=t.value;Y(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),Y(t.value)?t.value[0]=n:t.value=n}var TO=Math.PI/180;function CO(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");Y(i)||(i=[0,i]),Y(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Ur(e[0],r),l=Ur(e[1],o),u=Ur(i[0],a/2),h=Ur(i[1],a/2),c=-t.get("startAngle")*TO,p=t.get("minAngle")*TO,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&DO(f,y);var v=0;E(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),x=Math.PI/(m||v)*2,_=f.depth>0,b=f.height-(_?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(e,n){if(e){var i=n;if(e!==d){var r=e.getValue(),o=0===m&&M?x:r*x;o1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&X(o)&&(o=Kn(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),A(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}var kO={color:"fill",borderColor:"stroke"},LO={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},PO=Po(),OO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return hx(null,this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=PO(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(fg);function RO(t,e){return e=e||[0,0],z(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function NO(t,e){return e=e||[0,0],z([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function EO(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function zO(t,e){return e=e||[0,0],z(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function VO(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||_t(t,"text")))}function BO(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},_t(a,"text")&&(o.text=a.text),_t(a,"rich")&&(o.rich=a.rich),_t(a,"textFill")&&(o.fill=a.textFill),_t(a,"textStroke")&&(o.stroke=a.textStroke),_t(a,"fontFamily")&&(o.fontFamily=a.fontFamily),_t(a,"fontSize")&&(o.fontSize=a.fontSize),_t(a,"fontStyle")&&(o.fontStyle=a.fontStyle),_t(a,"fontWeight")&&(o.fontWeight=a.fontWeight),r={type:"text",style:o,silent:!0},i={};var s=_t(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),_t(a,"textPosition")&&(i.position=a.textPosition),_t(a,"textOffset")&&(i.offset=a.textOffset),_t(a,"textRotation")&&(i.rotation=a.textRotation),_t(a,"textDistance")&&(i.distance=a.textDistance)}return FO(o,t),E(o.rich,(function(t){FO(t,t)})),{textConfig:i,textContent:r}}function FO(t,e){e&&(e.font=e.textFont||e.font,_t(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),_t(e,"textAlign")&&(t.align=e.textAlign),_t(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),_t(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),_t(e,"textWidth")&&(t.width=e.textWidth),_t(e,"textHeight")&&(t.height=e.textHeight),_t(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),_t(e,"textPadding")&&(t.padding=e.textPadding),_t(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),_t(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),_t(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),_t(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),_t(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),_t(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),_t(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function GO(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";WO(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=t.fill||n.outsideFill||"#000"),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,E(e.rich,(function(t){WO(t,t)})),i}function WO(t,e){e&&(_t(e,"fill")&&(t.textFill=e.fill),_t(e,"stroke")&&(t.textStroke=e.fill),_t(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),_t(e,"font")&&(t.font=e.font),_t(e,"fontStyle")&&(t.fontStyle=e.fontStyle),_t(e,"fontWeight")&&(t.fontWeight=e.fontWeight),_t(e,"fontSize")&&(t.fontSize=e.fontSize),_t(e,"fontFamily")&&(t.fontFamily=e.fontFamily),_t(e,"align")&&(t.textAlign=e.align),_t(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),_t(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),_t(e,"width")&&(t.textWidth=e.width),_t(e,"height")&&(t.textHeight=e.height),_t(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),_t(e,"padding")&&(t.textPadding=e.padding),_t(e,"borderColor")&&(t.textBorderColor=e.borderColor),_t(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),_t(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),_t(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),_t(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),_t(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),_t(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),_t(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),_t(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),_t(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),_t(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var HO={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},YO=G(HO),UO=(V(gr,(function(t,e){return t[e]=1,t}),{}),gr.join(", "),["","style","shape","extra"]),XO=Po();function ZO(t,e,n,i,r){var o=t+"Animation",a=ch(t,i,r)||{},s=XO(e).userDuring;return a.duration>0&&(a.during=s?W(tR,{el:e,userDuring:s}):null,a.setToFinal=!0,a.scope=t),A(a,n[o]),a}function jO(t,e,n,i){var r=(i=i||{}).dataIndex,o=i.isInit,a=i.clearStyle,s=n.isAnimationEnabled(),l=XO(t),u=e.style;l.userDuring=e.during;var h={},c={};if(function(t,e,n){for(var i=0;i=0)){var c=t.getAnimationStyleProps(),p=c?c.style:null;if(p){!r&&(r=i.style={});var d=G(n);for(u=0;u0&&t.animateFrom(p,d)}else!function(t,e,n,i,r){if(r){var o=ZO("update",t,e,i,n);o.duration>0&&t.animateFrom(r,o)}}(t,e,r||0,n,h);qO(t,e),u?t.dirty():t.markRedraw()}function qO(t,e){for(var n=XO(t).leaveToProps,i=0;i=0){!o&&(o=i[t]={});var p=G(a);for(h=0;hi[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:W(zO,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}};function mR(t){return t instanceof Ms}function xR(t){return t instanceof wa}var _R=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._progressiveEls=null;var r=this._data,o=t.getData(),a=this.group,s=IR(t,o,e,n);r||a.removeAll(),o.diff(r).add((function(e){CR(n,null,e,s(e,i),t,a,o)})).remove((function(e){var n=r.getItemGraphicEl(e);n&&KO(n,PO(n).option,t)})).update((function(e,l){var u=r.getItemGraphicEl(l);CR(n,u,e,s(e,i),t,a,o)})).execute();var l=t.get("clip",!0)?yS(t.coordinateSystem,!1,t):null;l?a.setClipPath(l):a.removeClipPath(),this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},e.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=IR(e,o,n,i),s=this._progressiveEls=[];function l(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var u=t.start;u=0?e.getStore().get(r,n):void 0}var o=e.get(i.name,n),a=i&&i.ordinalMeta;return a?a.categories[o]:o},styleEmphasis:function(n,i){0;null==i&&(i=s);var r=m(i,lR).getItemStyle(),o=x(i,lR),a=ec(o,null,null,!0,!0);a.text=o.getShallow("show")?ot(t.getFormattedLabel(i,lR),t.getFormattedLabel(i,uR),Kw(e,i)):null;var l=nc(o,null,!0);return b(n,r),r=GO(r,a,l),n&&_(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),_t(kO,t)){var i=e.getItemVisual(n,"style");return i?i[kO[t]]:null}if(_t(LO,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type){return function(t){var e=[],n=t.axis,i="axis0";if("category"===n.type){for(var r=n.getBandWidth(),o=0;o=c;f--){var g=e.childAt(f);OR(e,g,r)}}(t,c,n,i,r),a>=0?o.replaceAt(c,a):o.add(c),c}function AR(t,e,n){var i,r=PO(t),o=e.type,a=e.shape,s=e.style;return n.isUniversalTransitionEnabled()||null!=o&&o!==r.customGraphicType||"path"===o&&((i=a)&&(_t(i,"pathData")||_t(i,"d")))&&zR(a)!==r.customPathData||"image"===o&&_t(s,"image")&&s.image!==r.customImagePath}function kR(t,e,n){var i=e?LR(t,e):t,r=e?PR(t,i,lR):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?LR(s,e):s:null;if(r&&(n.isLegacy||VO(r,o,!!a,!!l))){n.isLegacy=!0;var u=BO(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function LR(t,e){return e?t?t[e]:null:t}function PR(t,e,n){var i=e&&e.style;return null==i&&n===lR&&t&&(i=t.styleEmphasis),i}function OR(t,e,n){e&&KO(e,PO(t).option,n)}function RR(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function NR(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;DR(n.api,r,n.dataIndex,i,n.seriesModel,n.group)}function ER(t){var e=this.context,n=e.oldChildren[t];n&&KO(n,PO(n).option,e.seriesModel)}function zR(t){return t&&(t.pathData||t.d)}var VR=Po(),BR=T,FR=W,GR=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=H(WR,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Er,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);XR(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=oI(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=VR(t).pointerEl=new qh[r.type](BR(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=VR(t).labelEl=new Bs(BR(e.label));t.add(r),YR(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=VR(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=VR(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),YR(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Wh(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){pe(t.event)},onmousedown:FR(this._onHandleDragMove,this,0,0),drift:FR(this._onHandleDragMove,this),ondragend:FR(this._onHandleDragEnd,this)}),i.add(r)),XR(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");Y(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Eg(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){WR(this._axisPointerModel,!e&&this._moveAnimation,this._handle,UR(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(UR(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(UR(i)),VR(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),zg(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function WR(t,e,n,i){HR(VR(n).lastProp,i)||(VR(n).lastProp=i,e?dh(n,i,t):(n.stopAnimation(),n.attr(i)))}function HR(t,e){if(q(t)&&q(e)){var n=!0;return E(e,(function(e,i){n=n&&HR(t[i],e)})),!!n}return t===e}function YR(t,e){t[e.get(["label","show"])?"show":"hide"]()}function UR(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function XR(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function ZR(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function jR(t,e,n,i,r){var o=qR(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=dp(a.get("padding")||0),l=a.getFont(),u=_r(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:ec(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function qR(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:d_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};E(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),X(a)?o=a.replace("{value}",o):U(a)&&(o=a(s))}return o}function KR(t,e,n){var i=[1,0,0,1,0,0];return we(i,i,n.rotation),be(i,i,n.position),Eh([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function $R(t,e,n,i,r,o){var a=KM.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),jR(e,i,r,o,{position:KR(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function JR(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function QR(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function tN(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var eN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=nN(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=ZR(i),c=iN[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}$R(e,t,FM(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=FM(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=KR(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=nN(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(GR);function nN(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var iN={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:JR([e,n[0]],[e,n[1]],rN(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:QR([e-i/2,n[0]],[i,r],rN(t))}}};function rN(t){return"x"===t.dim?0:1}var oN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(Op),aN=Po(),sN=E;function lN(t,e,n){if(!r.node){var i=e.getZr();aN(i).records||(aN(i).records={}),function(t,e){if(aN(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);sN(aN(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}aN(t).initialized=!0,n("click",H(hN,"click")),n("mousemove",H(hN,"mousemove")),n("globalout",uN)}(i,e),(aN(i).records[t]||(aN(i).records[t]={})).handler=n}}function uN(t,e,n){t.handler("leave",null,n)}function hN(t,e,n,i){e.handler(t,n,i)}function cN(t,e){if(!r.node){var n=e.getZr();(aN(n).records||{})[t]&&(aN(n).records[t]=null)}}var pN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";lN("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){cN("axisPointer",e)},e.prototype.dispose=function(t,e){cN("axisPointer",e)},e.type="axisPointer",e}(wg);function dN(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Lo(o,t);if(null==a||a<0||Y(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(z(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var fN=Po();function gN(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||W(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){_N(r)&&(r=dN({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=_N(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||_N(r),p={},d={},f={list:[],map:{}},g={showPointer:H(vN,d),showTooltip:H(mN,f)};E(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);E(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&yN(t,a,g,!1,p)}}))}));var y={};return E(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&E(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,xN(e),xN(t)))),y[t.key]=o}}))})),E(y,(function(t,e){yN(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];E(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(_N(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=fN(i)[r]||{},a=fN(i)[r]={};E(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&E(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];E(o,(function(t,e){!a[e]&&l.push(t)})),E(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function yN(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return E(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f=0&&s<0)&&(a=f,s=d,r=u,o.length=0),E(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&A(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function vN(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function mN(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=sI(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function xN(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function _N(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function bN(t){uI.RegistroAxisPointerClass("CartesianAxisPointer",eN),t.RegistroComponentModel(oN),t.RegistroComponentView(pN),t.RegistroPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!Y(e)&&(t.axisPointer.link=[e])}})),t.RegistroProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=nI(t,e)})),t.RegistroAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},gN)}var wN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=ZR(i),c=SN[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];we(p,p,s),be(p,p,[i.cx,i.cy]),l=Eh([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=KM.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));jR(t,n,i,r,p)},e}(GR);var SN={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:JR(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:tN(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:tN(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},MN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(Op),IN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponentes("polar",Eo).models[0]},e.type="polarAxis",e}(Op);R(IN,m_);var TN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="angleAxis",e}(IN),CN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="radiusAxis",e}(IN),DN=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(q_);DN.prototype.dataToRadius=q_.prototype.dataToCoord,DN.prototype.radiusToData=q_.prototype.coordToData;var AN=Po(),kN=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=_r(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=AN(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},e}(q_);kN.prototype.dataToAngle=q_.prototype.dataToCoord,kN.prototype.angleToData=q_.prototype.coordToData;var LN=["radius","angle"],PN=function(){function t(t){this.dimensions=LN,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new DN,this._angleAxis=new kN,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=la;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i-1e-4,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return ON(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return ON(e)===this?this.pointToData(n):null},t}();function ON(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function RN(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();E(v_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),E(v_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),h_(i.scale,i.model),h_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function NN(t,e){if(t.type=e.get("type"),t.scale=c_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var EN={dimensions:LN,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new PN(i+"");r.update=RN;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");NN(o,s),NN(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Ur(i[0],r),t.cy=Ur(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:Y(l)||(l=[0,l]);var u=[Ur(l[0],s),Ur(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponentes("polar",Eo).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},zN=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function VN(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function BN(t){return t.getRadiusAxis().inverse?0:1}function FN(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var GN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=z(n.getViewLabels(),(function(t){t=T(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));FN(s),FN(o),E(zN,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||WN[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(uI),WN={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=BN(n),u=l?0:1;(a=0===o[u]?new xu({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Vu({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[BN(n)],u=z(i,(function(t){return new Xu({shape:VN(n,[l,l+s],t.coord)})}));t.add(Lh(u,{style:k(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[BN(n)],h=[],c=0;cf?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];q(m)&&m.textStyle&&(a=new Sc(m.textStyle,l,l.ecModel))}var x=new Bs({silent:KM.isLabelSilent(e),style:ec(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(x),h){var _=KM.makeAxisEventDataBase(e);_.targetType="axisLabel",_.value=i.rawLabel,Js(x).eventData=_}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h=0?"p":"n",T=_;m&&(i[s][M]||(i[s][M]={p:_,n:_}),T=i[s][M][I]);var C=void 0,D=void 0,A=void 0,k=void 0;if("radius"===c.dim){var L=c.dataToCoord(S)-_,P=o.dataToCoord(M);Math.abs(L)=k})}}}))}var KN={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},$N={splitNumber:5},JN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="polar",e}(wg);function QN(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]];r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),it(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var tE=["axisLine","axisTickLabel","axisName"],eE=["splitArea","splitLine"],nE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="SingleAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new Er;var s=QN(e),l=new KM(e,s);E(tE,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),E(eE,(function(t){e.get([t,"show"])&&iE[t](this,this.group,this._axisGroup,e)}),this),Bh(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},e.prototype.remove=function(){pI(this)},e.type="singleAxis",e}(uI),iE={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=a.get("width"),u=i.coordinateSystem.getRect(),h=r.isHorizontal(),c=[],p=0,d=r.getTicksCoords({tickModel:o}),f=[],g=[],y=0;y=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return lE(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return lE(e)===this?this.pointToData(n):null},t}();function lE(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var uE={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new sE(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponentes("singleAxis",Eo).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:aE},hE=["x","y"],cE=["width","height"],pE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=gE(a,1-fE(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=ZR(i),c=dE[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}$R(e,t,QN(n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=QN(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=KR(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=fE(r),s=gE(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=gE(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(GR),dE={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:JR([e,n[0]],[e,n[1]],fE(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:QR([e-i/2,n[0]],[i,r],fE(t))}}};function fE(t){return t.isHorizontal()?0:1}function gE(t,e){var n=t.getRect();return[n[hE[e]],n[hE[e]]+n[cE[e]]]}var yE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="single",e}(wg);var vE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){var r=kp(e);t.prototype.init.apply(this,arguments),mE(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),mE(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(Op);function mE(t,e){var n,i=t.cellSize;1===(n=Y(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=z([0,1],(function(t){return function(t,e){return null!=t[Sp[e][0]]||null!=t[Sp[e][1]]&&null!=t[Sp[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));Ap(t,e,{type:"box",ignoreSize:r})}var xE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient(),s=e.getLocaleModel();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,s,a,i),this._renderWeekText(t,s,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new Es({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new Hu({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return X(t)&&t?(n=t,E(e,(function(t,e){n=n.replace("{"+e+"}",i?ie(t):t)})),n):U(t)?t(e):e.nameMap;var n,i},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new Bs({z2:30,style:ec(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n,i){var r=t.getModel("monthLabel");if(r.get("show")){var o=r.get("nameMap"),a=r.get("margin"),s=r.get("position"),l=r.get("align"),u=[this._tlpoints,this._blpoints];o&&!X(o)||(o&&(e=Rc(o)||e),o=e.get(["time","monthAbbr"])||[]);var h="start"===s?0:1,c="horizontal"===n?0:1;a="start"===s?-a:a;for(var p="center"===l,d=0;d=i.start.time&&n.timea.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/_E)-Math.floor(n[0].time/_E)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&ei.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function wE(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}function SE(t,e){var n;return E(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var ME=["transition","enterFrom","leaveTo"],IE=ME.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function TE(t,e,n){if(n&&(!t[n]&&e[n]&&(t[n]={}),t=t[n],e=e[n]),t&&e)for(var i=n?ME:IE,r=0;r=0;l--){var p,d,f;if(f=null!=(d=Do((p=n[l]).id,null))?r.get(d):null){var g=f.parent,y=(c=AE(g),{}),v=Cp(f,p,g===i?{width:o,height:a}:{width:c.width,height:c.height},null,{hv:p.hv,boundingMode:p.bounding},y);if(!AE(f).isNew&&v){for(var m=p.transition,x={},_=0;_=0)?x[b]=w:f[b]=w}dh(f,x,t,0)}else f.attr(y)}}},e.prototype._clear=function(){var t=this,e=this._elMap;e.each((function(n){OE(n,AE(n).option,e,t._lastGraphicModel)})),this._elMap=yt()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(wg);function LE(t){var e=_t(DE,t)?DE[t]:Ch(t);var n=new e({});return AE(n).type=t,n}function PE(t,e,n,i){var r=LE(n);return e.add(r),i.set(t,r),AE(r).id=t,AE(r).isNew=!0,r}function OE(t,e,n,i){t&&t.parent&&("group"===t.type&&t.traverse((function(t){OE(t,e,n,i)})),KO(t,e,i),n.removeKey(AE(t).id))}function RE(t,e,n,i){t.isGroup||E([["cursor",wa.prototype.cursor],["zlevel",i||0],["z",n||0],["z2",0]],(function(n){var i=n[0];_t(e,i)?t[i]=rt(e[i],n[1]):null==t[i]&&(t[i]=n[1])})),E(G(e),(function(n){if(0===n.indexOf("on")){var i=e[n];t[n]=U(i)?i:null}})),_t(e,"draggable")&&(t.draggable=e.draggable),null!=e.name&&(t.name=e.name),null!=e.id&&(t.id=e.id)}var NE=["x","y","radius","angle","single"],EE=["cartesian2d","polar","singleAxis"];function zE(t){return t+"Axis"}function VE(t,e){var n,i=yt(),r=[],o=yt();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function BE(t){var e=t.ecModel,n={infoList:[],infoMap:yt()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(zE(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var FE=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),GE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=WE(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=WE(t);C(this.option,t,!0),C(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;E([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=yt();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return E(NE,(function(n){var i=this.getReferringComponentes(zE(n),zo);if(i.specified){e=!0;var r=new FE;E(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponentes({mainType:r+"Axis"}),r)}i&&o(n.findComponentes({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new FE;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponentes("grid",Eo).models[0];a&&E(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponentes("grid",Eo).models[0]&&o.add(t.componentIndex)}))}}}i&&E(NE,(function(e){if(i){var r=n.findComponentes({mainType:zE(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new FE;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");E([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(zE(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){E(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(zE(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;E([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;E(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i=0}(e)){var n=zE(this._dimName),i=e.getReferringComponentes(n,Eo).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return T(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];XE(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Yr(h,o,n))):(e=!0,h=Yr(c=null==c?n[u]:i.parse(c),n,o)),s[u]=null==c||isNaN(c)?n[u]:c,a[u]=null==h||isNaN(h)?o[u]:h})),ZE(s),ZE(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";xk(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Yr(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];XE(n,(function(t){!function(t,e,n){e&&E(v_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=s_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&XE(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);if(i.length){if("weakFilter"===r){var a=e.getStore(),s=z(i,(function(t){return e.getDimensionIndex(t)}),e);e.filterSelf((function(t){for(var e,n,r,l=0;lo[1];if(h&&!c&&!p)return!0;h&&(r=!0),c&&(e=!0),p&&(n=!0)}return r&&e&&n}))}else XE(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}}));XE(i,(function(t){e.setApproximateExtent(o,t)}))}}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;XE(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Yr(n[0]+o,n,[0,100],!0):null!=r&&(o=Yr(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Kr(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var qE={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(zE(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new jE(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=yt();return E(n,(function(t){E(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var KE=!1;function $E(t){KE||(KE=!0,t.RegistroProcessor(t.PRIORITY.PROCESSOR.FILTER,qE),function(t){t.RegistroAction("dataZoom",(function(t,e){E(VE(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.RegistroSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function JE(t){t.RegistroComponentModel(HE),t.RegistroComponentView(UE),$E(t)}var QE=function(){},tz={};function ez(t,e){tz[t]=e}function nz(t){return tz[t]}var iz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;E(this.option.feature,(function(t,n){var i=nz(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),C(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconstyle:{borderColor:"#666",color:"none"},emphasis:{iconstyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(Op);function rz(t,e){var n=dp(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Es({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var oz=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a="vertical"===t.get("orient"),s=t.get("feature")||{},l=this._features||(this._features={}),u=[];E(s,(function(t,e){u.push(e)})),new Lm(this._featureNames||[],u).add(h).update(h).remove(H(h,null)).execute(),this._featureNames=u,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Tp(i,o,r);Ip(e.get("orient"),t,e.get("itemGap"),a.width,a.height),Cp(t,i,o,r)}(r,t,n),r.add(rz(r.getBoundingRect(),t)),a||r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.ensureState("emphasis");if(l&&!U(l)&&e){var u=l.style||(l.style={}),h=_r(e,Bs.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+10;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function h(h,c){var p,d=u[h],f=u[c],g=s[d],y=new Sc(g,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===d&&(g.title=i.newTitle),d&&!f){if(function(t){return 0===t.indexOf("my")}(d))p={onclick:y.option.onclick,featureName:d};else{var v=nz(d);if(!v)return;p=new v}l[d]=p}else if(!(p=l[f]))return;p.uid=Ic("toolbox-feature"),p.model=y,p.ecModel=e,p.api=n;var m=p instanceof QE;d||!f?!y.get("show")||m&&p.unusable?m&&p.remove&&p.remove(e,n):(!function(i,s,l){var u,h,c=i.getModel("iconstyle"),p=i.getModel(["emphasis","iconstyle"]),d=s instanceof QE&&s.geticons?s.geticons():i.get("icon"),f=i.get("title")||{};X(d)?(u={})[l]=d:u=d;X(f)?(h={})[l]=f:h=f;var g=i.iconPaths={};E(u,(function(l,u){var d=Wh(l,{},{x:-o/2,y:-o/2,width:o,height:o});d.setStyle(c.getItemStyle()),d.ensureState("emphasis").style=p.getItemStyle();var f=new Bs({style:{text:h[u],align:p.get("textAlign"),borderRadius:p.get("textBorderRadius"),padding:p.get("textPadding"),fill:null},ignore:!0});d.setTextContent(f),Xh({el:d,componentModel:t,itemName:u,formatterParamsExtra:{title:h[u]}}),d.__title=h[u],d.on("mouseover",(function(){var e=p.getItemStyle(),i=a?null==t.get("right")&&"right"!==t.get("left")?"right":"left":null==t.get("bottom")&&"bottom"!==t.get("top")?"bottom":"top";f.setStyle({fill:p.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:p.get("textBackgroundColor")}),d.setTextConfig({position:p.get("textPosition")||i}),f.ignore=!t.get("showTitle"),n.enterEmphasis(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconstatus",u])&&n.leaveEmphasis(this),f.hide()})),("emphasis"===i.get(["iconstatus",u])?Al:kl)(d),r.add(d),d.on("click",W(s.onclick,s,e,n,u)),g[u]=d}))}(y,p,d),y.seticonstatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconstatus=n.iconstatus||{},n.iconstatus[t]=e,i[t]&&("emphasis"===e?Al:kl)(i[t])},p instanceof QE&&p.render&&p.render(y,e,n,i)):m&&p.dispose&&p.dispose(e,n)}},e.prototype.updateView=function(t,e,n,i){E(this._features,(function(t){t instanceof QE&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){E(this._features,(function(n){n instanceof QE&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){E(this._features,(function(n){n instanceof QE&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(wg);var az=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"eGraficas",o="svg"===e.getZr().painter.getType(),a=o?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponentes:n.get("excludeComponentes"),pixelRatio:n.get("pixelRatio")}),l=r.browser;if(U(MouseEvent)&&(l.newEdge||!l.ie&&!l.edge)){var u=document.createElement("a");u.download=i+"."+a,u.target="_blank",u.href=s;var h=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});u.dispatchEvent(h)}else if(window.navigator.msSaveOrOpenBlob||o){var c=s.split(","),p=c[0].indexOf("base64")>-1,d=o?decodeURIComponent(c[1]):c[1];p&&(d=window.atob(d));var f=i+"."+a;if(window.navigator.msSaveOrOpenBlob){for(var g=d.length,y=new Uint8Array(g);g--;)y[g]=d.charCodeAt(g);var v=new Blob([y]);window.navigator.msSaveOrOpenBlob(v,f)}else{var m=document.createElement("iframe");document.body.appendChild(m);var x=m.contentWindow,_=x.document;_.open("image/svg+xml","replace"),_.write(d),_.close(),x.focus(),_.execCommand("SaveAs",!0,f),document.body.removeChild(m)}}else{var b=n.get("lang"),w='',S=window.open();S.document.write(w),S.document.title=i}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponentes:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])}},e}(QE),sz="__ec_magicType_stack__",lz=[["line","bar"],["stack"]],uz=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.geticons=function(){var t=this.model,e=t.get("icon"),n={};return E(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(hz[n]){var o,a={series:[]};E(lz,(function(t){P(t,n)>=0&&E(t,(function(t){i.seticonstatus(t,"normal")}))})),i.seticonstatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=hz[n](e,r,t,i);o&&(k(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponentes(u,Eo).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}}));var s=n;"stack"===n&&(o=C({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),"emphasis"!==i.get(["iconstatus",n])&&(s="tiled")),e.dispatchAction({type:"changeMagicType",currentType:s,newOption:a,newTitle:o,featureName:"magicType"})}},e}(QE),hz={line:function(t,e,n,i){if("bar"===t)return C({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return C({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===sz;if("line"===t||"bar"===t)return i.seticonstatus("stack",r?"normal":"emphasis"),C({id:e,stack:r?"":sz},i.get(["option","stack"])||{},!0)}};vm({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var cz=new Array(60).join("-"),pz="\t";function dz(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var fz=new RegExp("[\t]+","g");function gz(t,e){var n=t.split(new RegExp("\n*"+cz+"\n*","g")),i={series:[]};return E(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(pz)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=z(dz(e.shift()).split(fz),(function(t){return{name:t,data:[]}})),r=0;r=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=Az[t.brushType](0,n,e);t.__rangeOffset={offset:Lz[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){E(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&E(i.coordSyses,(function(i){var r=Az[t.brushType](1,i,t.range,!0);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){E(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=Az[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?Lz[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=Oz(n),o=Oz(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return z(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:bL(i),isTargetByCursor:SL(i,t,n.coordSysModel),getLinearBrushOtherExtent:wL(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&P(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=Iz(e,t),r=0;rt[1]&&t.reverse(),t}function Iz(t,e){return Ro(t,e,{includeMainTypes:wz})}var Tz={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=yt(),a={},s={};(n||i||r)&&(E(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),E(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),E(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];E(r.getCartesians(),(function(t,e){(P(n,t.getAxis("x").model)>=0||P(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:Dz.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){E(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:Dz.geo})}))}},Cz=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],Dz={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Nh(t)),e}},Az={lineX:H(kz,0),lineY:H(kz,1),rect:function(t,e,n,i){var r=t?e.pointToData([n[0][0],n[1][0]],i):e.dataToPoint([n[0][0],n[1][0]],i),o=t?e.pointToData([n[0][1],n[1][1]],i):e.dataToPoint([n[0][1],n[1][1]],i),a=[Mz([r[0],o[0]]),Mz([r[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,n,i){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:z(n,(function(n){var o=t?e.pointToData(n,i):e.dataToPoint(n,i);return r[0][0]=Math.min(r[0][0],o[0]),r[1][0]=Math.min(r[1][0],o[1]),r[0][1]=Math.max(r[0][1],o[0]),r[1][1]=Math.max(r[1][1],o[1]),o})),xyMinMax:r}}};function kz(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=Mz(z([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t]),!0):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var Lz={lineX:H(Pz,0),lineY:H(Pz,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return z(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function Pz(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function Oz(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var Rz,Nz,Ez=E,zz=xo+"toolbox-dataZoom_",Vz=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this._brushController||(this._brushController=new Yk(n.getZr()),this._brushController.on("brush",W(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n._isZoomActive=o,t.seticonstatus("zoom",o?"emphasis":"normal");var a=new Sz(Fz(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n._brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.seticonstatus("back",function(t){return _z(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){Bz[n].call(this)},e.prototype.remove=function(t,e){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,e){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this._brushController.updateCovers([]),new Sz(Fz(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=_z(t);mz(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponentes({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=xk(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];Ez(t,(function(t,n){e.push(T(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(QE),Bz={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=_z(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return mz(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function Fz(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}Rz="dataZoom",Nz=function(t){var e=t.getComponent("toolbox",0),n=["feature","dataZoom"];if(e&&null!=e.get(n)){var i=e.getModel(n),r=[],o=Ro(t,Fz(i));return Ez(o.xAxisModels,(function(t){return a(t,"xAxis","xAxisIndex")})),Ez(o.yAxisModels,(function(t){return a(t,"yAxis","yAxisIndex")})),r}function a(t,e,n){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:i.get("filterMode",!0)||"filter",id:zz+e+o};a[n]=o,r.push(a)}},lt(null==ed.get(Rz)&&Nz),ed.set(Rz,Nz);var Gz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(Op);function Wz(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function Hz(t){if(r.domSupported)for(var e=document.documentElement.style,n=0,i=t.length;n-1?(u+="top:50%",h+="translateY(-50%) rotate("+(a="left"===s?-225:-45)+"deg)"):(u+="left:50%",h+="translateX(-50%) rotate("+(a="top"===s?225:45)+"deg)");var c=a*Math.PI/180,p=l+r,d=p*Math.abs(Math.cos(c))+p*Math.abs(Math.sin(c)),f=e+" solid "+r+"px;";return'
        '}(n,i,r)),X(t))o.innerHTML=t+a;else if(t){o.innerHTML="",Y(t)||(t=[t]);for(var s=0;s=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api,i=t.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==i&&"click"!==i){var r=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&r.manuallyShowTip(t,e,n,{x:r._lastX,y:r._lastY,dataByCoordSys:r._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!r.node&&n.getDom()){var o=aV(i,n);this._ticket="";var a=i.dataByCoordSys,s=function(t,e,n){var i=No(t).queryOptionMap,r=i.keys()[0];if(!r||"series"===r)return;var o,a=Vo(e,r,i.get(r),{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];if(!a)return;if(n.getViewOfComponentModel(a).group.traverse((function(e){var n=Js(e).tooltipConfig;if(n&&n.name===t.name)return o=e,!0})),o)return{componentMainType:r,componentIndex:a.componentIndex,el:o}}(i,e,n);if(s){var l=s.el.getBoundingRect().clone();l.applyTransform(s.el.transform),this._tryShow({offsetX:l.x+l.width/2,offsetY:l.y+l.height/2,target:s.el,position:i.position,positionDefault:"bottom"},o)}else if(i.tooltip&&null!=i.x&&null!=i.y){var u=iV;u.x=i.x,u.y=i.y,u.update(),Js(u).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:u},o)}else if(a)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:a,tooltipOption:i.tooltipOption},o);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var h=dN(i,e),c=h.point[0],p=h.point[1];null!=c&&null!=p&&this._tryShow({offsetX:c,offsetY:p,target:h.el,position:i.position,positionDefault:"bottom"},o)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},o))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(aV(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===oV([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;if(i&&i.length)this._showAxisTooltip(i,t);else if(n){var r,o;this._lastDataByCoordSys=null,Ty(n,(function(t){return null!=Js(t).dataIndex?(r=t,!0):null!=Js(t).tooltipConfig?(o=t,!0):void 0}),!0),r?this._showSeriesItemTooltip(t,r,e):o?this._showComponentItemTooltip(t,o,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=W(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=oV([e.tooltipOption],i),a=this._renderMode,s=[],l=Qf("section",{blocks:[],noHeader:!0}),u=[],h=new hg;E(t,(function(t){E(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),r=t.value;if(e&&null!=r){var o=qR(r,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),c=Qf("section",{header:o,noHeader:!ut(o),sortBlocks:!0,blocks:[]});l.blocks.push(c),E(t.seriesDataIndices,(function(l){var p=n.getSeriesByIndex(l.seriesIndex),d=l.dataIndexInside,f=p.getDataParams(d);if(!(f.dataIndex<0)){f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=d_(e.axis,{value:r}),f.axisValueLabel=o,f.marker=h.makeTooltipMarker("item",xp(f.color),a);var g=yf(p.formatTooltip(d,!0,null)),y=g.frag;if(y){var v=oV([p],i).get("valueFormatter");c.blocks.push(v?A({valueFormatter:v},y):y)}g.text&&u.push(g.text),s.push(f)}}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=og(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"
        ",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t,s)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=this._ecModel,r=Js(e),o=r.seriesIndex,a=i.getSeriesByIndex(o),s=r.dataModel||a,l=r.dataIndex,u=r.dataType,h=s.getData(u),c=this._renderMode,p=t.positionDefault,d=oV([h.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),f=d.get("trigger");if(null==f||"item"===f){var g=s.getDataParams(l,u),y=new hg;g.marker=y.makeTooltipMarker("item",xp(g.color),c);var v=yf(s.formatTooltip(l,!1,u)),m=d.get("order"),x=d.get("valueFormatter"),_=v.frag,b=_?og(x?A({valueFormatter:x},_):_,y,c,m,i.get("useUTC"),d.get("textStyle")):v.text,w="item_"+s.name+"_"+l;this._showOrMove(d,(function(){this._showTooltipContent(d,b,g,w,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:l,dataIndex:h.getRawIndex(l),seriesIndex:o,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=Js(e),r=i.tooltipConfig.option||{};if(X(r)){r={content:r,formatter:r}}var o=[r],a=this._ecModel.getComponent(i.componentMainType,i.componentIndex);a&&o.push(a),o.push({formatter:r.content});var s=t.positionDefault,l=oV(o,this._tooltipModel,s?{position:s}:null),u=l.get("content"),h=Math.random()+"",c=new hg;this._showOrMove(l,(function(){var n=T(l.get("formatterParams")||{});this._showTooltipContent(l,u,n,h,t.offsetX,t.offsetY,t.position,e,c)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent;u.setEnterable(t.get("enterable"));var h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor")).color;if(h)if(X(h)){var d=t.ecModel.get("useUTC"),f=Y(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=jc(f.axisValue,c,d)),c=vp(c,n,!0)}else if(U(h)){var g=W((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}else c=h;u.setContent(c,l,t,p,a),u.show(t,p),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||Y(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:Y(e)?void 0:{color:i||e.color||e.borderColor}},e.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),U(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),Y(e))n=Ur(e[0],s),i=Ur(e[1],l);else if(q(e)){var d=e;d.width=u[0],d.height=u[1];var f=Tp(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(X(e)&&a){var g=function(t,e,n,i){var r=n[0],o=n[1],a=Math.ceil(Math.SQRT2*i)+8,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-r/2,l=e.y+h/2-o/2;break;case"top":s=e.x+u/2-r/2,l=e.y-o-a;break;case"bottom":s=e.x+u/2-r/2,l=e.y+h+a;break;case"left":s=e.x-r-a,l=e.y+h/2-o/2;break;case"right":s=e.x+u+a,l=e.y+h/2-o/2}return[s,l]}(e,p,u,t.get("borderWidth"));n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getSize(),l=s[0],u=s[1];null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=sV(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=sV(c)?u[1]/2:"bottom"===c?u[1]:0),Wz(t)){g=function(t,e,n,i,r){var o=n.getSize(),a=o[0],s=o[1];return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t,e){var n=this._lastDataByCoordSys,i=this._cbParamsList,r=!!n&&n.length===t.length;return r&&E(n,(function(n,o){var a=n.dataByAxis||[],s=(t[o]||{}).dataByAxis||[];(r=r&&a.length===s.length)&&E(a,(function(t,n){var o=s[n]||{},a=t.seriesDataIndices||[],l=o.seriesDataIndices||[];(r=r&&t.value===o.value&&t.axisType===o.axisType&&t.axisId===o.axisId&&a.length===l.length)&&E(a,(function(t,e){var n=l[e];r=r&&t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})),i&&E(t.seriesDataIndices,(function(t){var n=t.seriesIndex,o=e[n],a=i[n];o&&a&&a.data!==o.data&&(r=!1)}))}))})),this._lastDataByCoordSys=t,this._cbParamsList=e,!!r},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){!r.node&&e.getDom()&&(zg(this,"_updatePosition"),this._tooltipContent.dispose(),cN("itemTooltip",e))},e.type="tooltip",e}(wg);function oV(t,e,n){var i,r=e.ecModel;n?(i=new Sc(n,r,r),i=new Sc(e.option,i,r)):i=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof Sc&&(a=a.get("tooltip",!0)),X(a)&&(a={formatter:a}),a&&(i=new Sc(a,i,r)))}return i}function aV(t,e){return t.dispatchAction||W(e.dispatchAction,e)}function sV(t){return"center"===t||"middle"===t}var lV=["rect","polygon","keep","clear"];function uV(t,e){var n=_o(t?t.brush:[]);if(n.length){var i=[];E(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;Y(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};E(t,(function(t){e[t]=1})),t.length=0,E(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,lV)}}var hV=E;function cV(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function pV(t,e,n){var i={};return hV(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);hV(t[e],(function(t,i){if(dD.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new dD(r),"opacity"===i&&((r=T(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new dD(r))}}))})),i}function dV(t,e,n){var i;E(n,(function(t){e.hasOwnProperty(t)&&cV(e[t])&&(i=!0)})),i&&E(n,(function(n){e.hasOwnProperty(n)&&cV(e[n])?t[n]=T(e[n]):delete t[n]}))}var fV={lineX:gV(0),lineY:gV(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&w_(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(w_(i,r,o)||w_(i,r+a,o)||w_(i,r,o+s)||w_(i,r+a,o+s)||Ee.create(t).contain(l[0],l[1])||Hh(r,o,r+a,o,i)||Hh(r,o,r,o+s,i)||Hh(r+a,o,r+a,o+s,i)||Hh(r,o+s,r+a,o+s,i))||void 0}}};function gV(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return yV(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]e[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&IV(e)}};function IV(t){return new Ee(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var TV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Yk(e.getZr())).on("brush",W(this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){_V(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:T(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:T(n),$from:e})},e.type="brush",e}(wg),CV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return n(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&dV(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=z(t,(function(t){return DV(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=DV(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(Op);function DV(t,e){return C({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Sc(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var AV=["rect","polygon","lineX","lineY","keep","clear"],kV=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,E(t.get("type",!0),(function(e){t.seticonstatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.geticons=function(){var t=this.model,e=t.get("icon",!0),n={};return E(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){return{show:!0,type:AV.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])}},e}(QE);var LV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(Op),PV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=rt(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Bs({style:ec(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Bs({style:ec(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){_p(p,"_"+t.get("target"))})),d&&c.on("click",(function(){_p(d,"_"+t.get("subtarget"))})),Js(l).eventData=Js(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=Tp(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var b=new Es({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(wg);var OV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],E(n,(function(e,n){var i,o=Do(So(e),"");q(e)?(i=T(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new ex([{name:"value",type:o}],this)).initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(Op),RV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline.slider",e.defaultOption=Tc(OV.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(OV);R(RV,gf.prototype);var NV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline",e}(wg),EV=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return n(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(q_),zV=Math.PI,VV=Po(),BV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return Qf("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},E(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return Tp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:zV/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*zV/180;var x=d.get("position",!0),_=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===x||"bottom"===x?(_&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(_&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;be(o,o,[-a,-s]),we(o,o,-zV/2),be(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||X(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Mx({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new Fx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new Tx}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.calcNiceTicks();var a=new EV("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Er;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new Xu({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:A({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new Xu({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:k({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],E(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:W(r._changeTimeline,r,t.value)},p=FV(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),Wl(p);var d=Js(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],E(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new Bs({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:W(r._changeTimeline,r,a),silent:!1,style:ec(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=ec(u),p.ensureState("progress").style=ec(h),e.add(p),Wl(p),VV(p).dataIndex=a,r._tickLabels.push(p)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Mr(rt(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=Wh(t.get(["controlStyle",e]),i||{},new Ee(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{x:t[0],y:t[1],originX:r/2,originY:0,rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),Wl(c)}}h(t.nextBtnPosition,"next",W(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",W(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",W(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=W(s._handlePointerDrag,s),t.ondragend=W(s._handlePointerDragend,s),GV(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){GV(t,s._progressLine,o,n,i)}};this._currentPointer=FV(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=Zr(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var JV={min:H($V,"min"),max:H($V,"max"),average:H($V,"average"),median:H($V,"median")};function QV(t,e){if(e){var n=t.getData(),i=t.coordinateSystem,r=i.dimensions;if(!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!Y(e.coord)&&i){var o=tB(e,n,i,t);if((e=T(e)).type&&JV[e.type]&&o.baseAxis&&o.valueAxis){var a=P(r,o.baseAxis.dim),s=P(r,o.valueAxis.dim),l=JV[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else e.coord=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis]}if(null==e.coord)e.coord=[];else for(var u=e.coord,h=0;h<2;h++)JV[u[h]]&&(u[h]=iB(n,n.mapDimension(r[h]),u[h]));return e}}function tB(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData().getDimensionInfo(e);return n&&n.coordDim}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function eB(t,e){return!(t&&t.containData&&e.coord&&!KV(e))||t.containData(e.coord)}function nB(t,e){return t?function(t,n,i,r){return _f(r<2?t.coord&&t.coord[r]:t.value,e[r])}:function(t,n,i,r){return _f(t.value,e[r])}}function iB(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var rB=Po(),oB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=yt()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){rB(t).keep=!1})),e.eachSeries((function(t){var r=jV.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!rB(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){rB(t).keep=!0},e.prototype.toggleBlurSeries=function(t,e){var n=this;E(t,(function(t){var i=jV.getMarkerModelFromSeries(t,n.type);i&&i.getData().eachItemGraphicEl((function(t){t&&(e?Ll(t):Pl(t))}))}))},e.type="marker",e}(wg);function aB(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Ur(a.get("x"),n.getWidth()),l=Ur(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var sB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=jV.getMarkerModelFromSeries(t,"markPoint");e&&(aB(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new iS),u=function(t,e,n){var i;i=t?z(t&&t.dimensions,(function(t){return A(A({},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{}),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new ex(i,n),o=z(n.get("data"),H(QV,e));t&&(o=B(o,H(eB,t)));var a=nB(!!t,i);return r.initData(o,null,a),r}(r,t,e);e.setData(u),aB(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate"),s=n.getShallow("symbolOffset"),l=n.getShallow("symbolKeepAspect");if(U(i)||U(r)||U(o)||U(s)){var h=e.getRawValue(t),c=e.getDataParams(t);U(i)&&(i=i(h,c)),U(r)&&(r=r(h,c)),U(o)&&(o=o(h,c)),U(s)&&(s=s(h,c))}var p=n.getModel("itemStyle").getItemStyle(),d=wy(a,"color");p.fill||(p.fill=d),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,symbolOffset:s,symbolKeepAspect:l,style:p})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){Js(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(oB);var lB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(jV),uB=Po(),hB=function(t,e,n,i){var r,o=t.getData();if(Y(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=it(i.yAxis,i.xAxis);else{var u=tB(i,o,e,t);s=u.valueAxis,l=iB(o,ux(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=T(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&j(l)&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[QV(t,r[0]),QV(t,r[1]),A({},r[2])];return g[2].type=g[2].type||null,C(g[2],g[0]),C(g[2],g[1]),g};function cB(t){return!isNaN(t)&&!isFinite(t)}function pB(t,e,n,i){var r=1-t,o=i.dimensions[t];return cB(e[r])&&cB(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function dB(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(pB(1,n,i,t)||pB(0,n,i,t)))return!0}return eB(t,e[0])&&eB(t,e[1])}function fB(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Ur(s.get("x"),r.getWidth()),u=Ur(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(vS(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;cB(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):cB(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var gB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=jV.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=uB(e).from,o=uB(e).to;r.each((function(e){fB(r,e,!0,t,n),fB(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new TA);this.group.add(l.group);var u=function(t,e,n){var i;i=t?z(t&&t.dimensions,(function(t){return A(A({},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{}),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new ex(i,n),o=new ex(i,n),a=new ex([],n),s=z(n.get("data"),H(hB,e,t,n));t&&(s=B(s,H(dB,t)));var l=nB(!!t,i);return r.initData(z(s,(function(t){return t[0]})),null,l),o.initData(z(s,(function(t){return t[1]})),null,l),a.initData(z(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;uB(e).from=h,uB(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize"),g=e.get("symbolRotate"),y=e.get("symbolOffset");function v(e,n,r){var o=e.getItemModel(n);fB(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=wy(a,"color")),e.setItemVisual(n,{symbolKeepAspect:o.get("symbolKeepAspect"),symbolOffset:rt(o.get("symbolOffset",!0),y[r?0:1]),symbolRotate:rt(o.get("symbolRotate",!0),g[r?0:1]),symbolSize:rt(o.get("symbolSize"),f[r?0:1]),symbol:rt(o.get("symbol",!0),d[r?0:1]),style:s})}Y(d)||(d=[d,d]),Y(f)||(f=[f,f]),Y(g)||(g=[g,g]),Y(y)||(y=[y,y]),u.from.each((function(t){v(h,t,!0),v(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolKeepAspect:h.getItemVisual(t,"symbolKeepAspect"),fromSymbolOffset:h.getItemVisual(t,"symbolOffset"),fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolKeepAspect:c.getItemVisual(t,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(t,"symbolOffset"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t){Js(t).dataModel=e,t.traverse((function(t){Js(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(oB);var yB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(jV),vB=Po(),mB=function(t,e,n,i){var r=i[0],o=i[1];if(r&&o){var a=QV(t,r),s=QV(t,o),l=a.coord,u=s.coord;l[0]=it(l[0],-1/0),l[1]=it(l[1],-1/0),u[0]=it(u[0],1/0),u[1]=it(u[1],1/0);var h=D([{},a,s]);return h.coord=[a.coord,s.coord],h.x0=a.x,h.y0=a.y,h.x1=s.x,h.y1=s.y,h}};function xB(t){return!isNaN(t)&&!isFinite(t)}function _B(t,e,n,i){var r=1-t;return xB(e[r])&&xB(n[r])}function bB(t,e){var n=e.coord[0],i=e.coord[1],r={coord:n,x:e.x0,y:e.y0},o={coord:i,x:e.x1,y:e.y1};return vS(t,"cartesian2d")?!(!n||!i||!_B(1,n,i)&&!_B(0,n,i))||function(t,e,n){return!(t&&t.containZone&&e.coord&&n.coord&&!KV(e)&&!KV(n))||t.containZone(e.coord,n.coord)}(t,r,o):eB(t,r)||eB(t,o)}function wB(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Ur(s.get(n[0]),r.getWidth()),u=Ur(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition){var h=t.getValues(["x0","y0"],e),c=t.getValues(["x1","y1"],e),p=a.clampData(h),d=a.clampData(c),f=[];"x0"===n[0]?f[0]=p[0]>d[0]?c[0]:h[0]:f[0]=p[0]>d[0]?h[0]:c[0],"y0"===n[1]?f[1]=p[1]>d[1]?c[1]:h[1]:f[1]=p[1]>d[1]?h[1]:c[1],o=i.getMarkerPosition(f,n,!0)}else{var g=[m=t.get(n[0],e),x=t.get(n[1],e)];a.clampData&&a.clampData(g,g),o=a.dataToPoint(g,!0)}if(vS(a,"cartesian2d")){var y=a.getAxis("x"),v=a.getAxis("y"),m=t.get(n[0],e),x=t.get(n[1],e);xB(m)?o[0]=y.toGlobalCoord(y.getExtent()["x0"===n[0]?0:1]):xB(x)&&(o[1]=v.toGlobalCoord(v.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var SB=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],MB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=jV.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=z(SB,(function(r){return wB(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Er});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];if(t){var a=z(t&&t.dimensions,(function(t){var n=e.getData();return A(A({},n.getDimensionInfo(n.mapDimension(t))||{}),{name:t,ordinalMeta:null})}));r=z(o,(function(t,e){return{name:t,type:a[e%2].type}})),i=new ex(r,n)}else i=new ex(r=[{name:"value",type:"float"}],n);var s=z(n.get("data"),H(mB,e,t,n));t&&(s=B(s,H(bB,t)));var l=t?function(t,e,n,i){return _f(t.coord[Math.floor(i/2)][i%2],r[i])}:function(t,e,n,i){return _f(t.value,r[i])};return i.initData(s,null,l),i.hasItemOption=!0,i}(r,t,e);e.setData(u),u.each((function(e){var n=z(SB,(function(n){return wB(u,e,n,t,i)})),o=r.getAxis("x").scale,s=r.getAxis("y").scale,l=o.getExtent(),h=s.getExtent(),c=[o.parse(u.get("x0",e)),o.parse(u.get("x1",e))],p=[s.parse(u.get("y0",e)),s.parse(u.get("y1",e))];Zr(c),Zr(p);var d=!!(l[0]>c[1]||l[1]p[1]||h[1]=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(Op),TB=H,CB=E,DB=Er,AB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new DB),this.group.add(this._selectorGroup=new DB),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=Tp(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=Tp(k({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=rz(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=yt(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),CB(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new DB;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("legendLineStyle")||{},g=d.getVisual("legendIcon"),y=d.getVisual("style");this._createItem(p,a,o,r,e,t,f,y,g,u,i).on("click",TB(kB,a,null,i,h)).on("mouseover",TB(PB,p.name,null,i,h)).on("mouseout",TB(OB,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=s.getItemVisual(c,"legendIcon"),f=jn(p.fill);f&&0===f[3]&&(f[3]=.2,p=A(A({},p),{fill:ii(f,"rgba")})),this._createItem(n,a,o,r,e,t,{},p,d,u,i).on("click",TB(kB,null,a,i,h)).on("mouseover",TB(PB,null,a,i,h)).on("mouseout",TB(OB,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();CB(t,(function(t){var i=t.type,r=new Bs({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),Qh(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Wl(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=t.visualDrawType,p=r.get("itemWidth"),d=r.get("itemHeight"),f=r.isSelected(e),g=i.get("symbolRotate"),y=i.get("symbolKeepAspect"),v=i.get("icon"),m=function(t,e,n,i,r,o,a){function s(t,e){"auto"===t.lineWidth&&(t.lineWidth=e.lineWidth>0?2:0),CB(t,(function(n,i){"inherit"===t[i]&&(t[i]=e[i])}))}var l=e.getModel("itemStyle"),u=l.getItemStyle(),h=0===t.lastIndexOf("empty",0)?"fill":"stroke",c=l.getShallow("decal");u.decal=c&&"inherit"!==c?cv(c,a):i.decal,"inherit"===u.fill&&(u.fill=i[r]);"inherit"===u.stroke&&(u.stroke=i[h]);"inherit"===u.opacity&&(u.opacity=("fill"===r?i:n).opacity);s(u,i);var p=e.getModel("lineStyle"),d=p.getLineStyle();if(s(d,n),"auto"===u.fill&&(u.fill=i.fill),"auto"===u.stroke&&(u.stroke=i.fill),"auto"===d.stroke&&(d.stroke=i.fill),!o){var f=e.get("inactiveBorderWidth"),g=u[h];u.lineWidth="auto"===f?i.lineWidth>0&&g?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),d.stroke=p.get("inactiveColor"),d.lineWidth=p.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}(l=v||l||"roundRect",i,a,s,c,f,h),x=new DB,_=i.getModel("textStyle");if(!U(t.getLegendIcon)||v&&"inherit"!==v){var b="inherit"===v&&t.getData().getVisual("symbol")?"inherit"===g?t.getData().getVisual("symbolRotate"):g:0;x.add(function(t){var e=t.icon||"roundRect",n=Vy(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill,t.symbolKeepAspect);n.setStyle(t.itemStyle),n.rotation=(t.iconRotate||0)*Math.PI/180,n.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2);return n}({itemWidth:p,itemHeight:d,icon:l,iconRotate:b,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y}))}else x.add(t.getLegendIcon({itemWidth:p,itemHeight:d,icon:l,iconRotate:g,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y}));var w="left"===o?p+5:-5,S=o,M=r.get("formatter"),I=e;X(M)&&M?I=M.replace("{name}",null!=e?e:""):U(M)&&(I=M(e));var T=i.get("inactiveColor");x.add(new Bs({style:ec(_,{text:I,x:w,y:d/2,fill:f?_.getTextColor():T,align:S,verticalAlign:"middle"})}));var C=new Es({shape:x.getBoundingRect(),invisible:!0}),D=i.getModel("tooltip");return D.get("show")&&Xh({el:C,componentModel:r,itemName:e,itemTooltipOption:D.option}),x.add(C),x.eachChild((function(t){t.silent=!0})),C.silent=!u,this.getContentGroup().add(x),Wl(x),x.__legendDataIndex=n,x},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();Ip(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){Ip("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(wg);function kB(t,e,n,i){OB(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),PB(t,e,n,i)}function LB(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;in[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=rt(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var x={x:0,y:0};x[r]=Math.max(n[r]-p[r]-v,0),x[o]=m[o],u.setClipPath(new Es({shape:x})),u.__rectSize=x[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var _=this._getPageInfo(t);return null!=_.pageIndex&&dh(l,{x:_.contentPosition[0],y:_.contentPosition[1]},d?t:null),this._updatePageInfoView(t,_),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;E(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",X(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=FB[r],a=GB[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!x(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&x(y,v.s)||!(g.i=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(AB);function HB(t){Dm(EB),t.RegistroComponentModel(zB),t.RegistroComponentView(WB),function(t){t.RegistroAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var YB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=Tc(GE.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(GE),UB=Po();function XB(t,e,n){UB(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function ZB(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function jB(t,e){t.isDisposed()||t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function qB(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function KB(t){t.RegistroProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=UB(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=yt());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){E(BE(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:H(qB,e),dispatchAction:H(jB,t),dataZoomInfoMap:null,controller:null},i=n.controller=new BI(t.getZr());return E(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=yt())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Eg(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else ZB(i,t)}))}))}var $B=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),XB(i,e,{pan:W(JB.pan,this),zoom:W(JB.zoom,this),scrollMove:W(JB.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=UB(t).coordSysRecordMap,i=n.keys(),r=0;r0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return xk(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:QB((function(t,e,n,i,r,o){var a=tF[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:QB((function(t,e,n,i,r,o){return tF[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function QB(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return xk(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var tF={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function eF(t){$E(t),t.RegistroComponentModel(YB),t.RegistroComponentView($B),KB(t)}var nF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=Tc(GE.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(GE),iF=Es,rF="horizontal",oF="vertical",aF=["line","bar","candlestick","scatter"],sF={easing:"cubicOut",duration:100,delay:0},lF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=W(this._onBrush,this),this._onBrushEnd=W(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Eg(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){zg(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Er;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===rF?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=kp(t.option);E(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=Tp(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===oF&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==rF||r?n===rF&&r?{scaleY:a?1:-1,scaleX:-1}:n!==oF||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new iF({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new iF({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:W(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=this._shadowSize||[],i=t.series,r=i.getRawData(),o=i.getShadowDim&&i.getShadowDim(),a=o&&r.getDimensionInfo(o)?i.getShadowDim():t.otherDim;if(null!=a){var s=this._shadowPolygonPts,l=this._shadowPolylinePts;if(r!==this._shadowData||a!==this._shadowDim||e[0]!==n[0]||e[1]!==n[1]){var u=r.getDataExtent(a),h=.3*(u[1]-u[0]);u=[u[0]-h,u[1]+h];var c,p=[0,e[1]],d=[0,e[0]],f=[[e[0],0],[0,0]],g=[],y=d[1]/(r.count()-1),v=0,m=Math.round(r.count()/e[0]);r.each([a],(function(t,e){if(m>0&&e%m)v+=y;else{var n=null==t||isNaN(t)||""===t,i=n?0:Yr(t,u,p,!0);n&&!c&&e?(f.push([f[f.length-1][0],0]),g.push([g[g.length-1][0],0])):!n&&c&&(f.push([v,0]),g.push([v,0])),f.push([v,i]),g.push([v,i]),v+=y,c=n}})),s=this._shadowPolygonPts=f,l=this._shadowPolylinePts=g}this._shadowData=r,this._shadowDim=a,this._shadowSize=[e[0],e[1]];for(var x=this.dataZoomModel,_=0;_<3;_++){var b=w(1===_);this._displayables.sliderGroup.add(b),this._displayables.dataShadowSegs.push(b)}}}function w(t){var e=x.getModel(t?"selectedDataBackground":"dataBackground"),n=new Er,i=new Gu({shape:{points:s},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Hu({shape:{points:l},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){E(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&P(aF,t.get("type"))<0)){var a,s=i.getComponent(zE(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new iF({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new iF({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),E([0,1],(function(e){var o=a.get("handleIcon");!Ny[o]&&o.indexOf("path://")<0&&o.indexOf("image://")<0&&(o="path://"+o);var s=Vy(o,-1,0,2,2,null,!0);s.attr({cursor:uF(this._orient),draggable:!0,drift:W(this._onDragMove,this,e),ondragend:W(this._onDragEnd,this),onmouseover:W(this._showDataInfo,this,!0),onmouseout:W(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Ur(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Wl(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new Bs({silent:!0,invisible:!0,style:ec(c,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()}),z2:10}))}),this);var c=h;if(u){var p=Ur(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Es({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Vy(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new Es({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:uF(this._orient),drift:W(this._onDragMove,this,"all"),ondragstart:W(this._showDataInfo,this,!0),ondragend:W(this._onDragEnd,this),onmouseover:W(this._showDataInfo,this,!0),onmouseout:W(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Yr(t[0],[0,100],e,!0),Yr(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];xk(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Yr(o.minSpan,a,r,!0):null,null!=o.maxSpan?Yr(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Zr([Yr(i[0],r,a,!0),Yr(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Zr(n.slice()),r=this._size;E([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;le[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Ce(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Zr([Yr(n.x,i,r,!0),Yr(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(pe(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new iF({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?sF:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=BE(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(YE);function uF(t){return"vertical"===t?"ns-resize":"ew-resize"}function hF(t){t.RegistroComponentModel(nF),t.RegistroComponentView(lF),$E(t)}var cF=function(t,e,n){var i=T((pF[t]||{})[e]);return n&&Y(i)?i[i.length-1]:i},pF={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},dF=dD.mapVisual,fF=dD.eachVisual,gF=Y,yF=E,vF=Zr,mF=Yr,xF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&dV(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=W(t,this),this.controllerVisuals=pV(this.option.controller,e,t),this.targetVisuals=pV(this.option.target,e,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=_o(t),e},e.prototype.eachTargetSeries=function(t,e){E(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],Y(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return X(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):U(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=vF([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimensionIndex=function(t){var e=this.option.dimension;if(null!=e)return t.getDimensionIndex(e);for(var n=t.dimensions,i=n.length-1;i>=0;i--){var r=n[i],o=t.getDimensionInfo(r);if(!o.isCalculationCoord)return o.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});C(i,n),C(r,n);var o=this.isCategory();function a(n){gF(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},yF(i,(function(t,e){if(dD.isValidType(e)){var n=cF(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor"),r=this.getItemSymbol()||"roundRect";yF(this.stateList,(function(a){var s=this.itemSize,l=t[a];l||(l=t[a]={color:o?i:[i]}),null==l.symbol&&(l.symbol=e&&T(e)||(o?r:[r])),null==l.symbolSize&&(l.symbolSize=n&&T(n)||(o?s[0]:[s[0],s[0]])),l.symbol=dF(l.symbol,(function(t){return"none"===t?r:t}));var u=l.symbolSize;if(null!=u){var h=-1/0;fF(u,(function(t){t>h&&(h=t)})),l.symbolSize=dF(u,(function(t){return mF(t,[0,h],[0,s[0]],!0)}))}}),this)}.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(Op),_F=[20,140],bF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=_F[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=_F[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):Y(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),E(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=Zr((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimensionIndex(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=wF(this,"outOfRange",this.getExtent()),n=wF(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;at[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Er("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();DF([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=CF(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=Eh(n.handleLabelPoints[l],Nh(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=CF(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Eh(l.indicatorLabelPoint,Nh(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var x={x:d,y:p,style:{fill:h}},_={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(x,b),y.animateTo(_,b)}else u.attr(x),y.attr(_);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;Sr[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||OF(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i=0&&(r.dimension=o,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function VF(t,e,n,i){for(var r=e.targetVisuals[i],o=dD.prepareVisualTypes(r),a={color:wy(t.getData(),"color")},s=0,l=o.length;s0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.RegistroAction(NF,EF),E(zF,(function(e){t.RegistroVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.RegistroPreprocessor(FF))}function YF(t){t.RegistroComponentModel(bF),t.RegistroComponentView(LF),HF(t)}var UF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],XF[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=T(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=z(this._pieceList,(function(t){return t=T(t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=dD.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}E(e.pieces,(function(t){E(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),E(n,(function(t,n){var i=!1;E(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&E(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=cF(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,E(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;E(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=T(t)},e.prototype.getValueState=function(t){var e=dD.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimensionIndex(o),(function(e,i){dD.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return E(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=Tc(xF.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(xF),XF={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function ZF(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var jF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=it(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),E(l.viewPieceList,(function(i){var l=i.piece,u=new Er;u.onclick=W(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new Bs({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),Ip(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:TF(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return IF(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Er,a=this.visualMapModel.textStyleModel;o.add(new Bs({style:ec(a,{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e})})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=z(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(Vy(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=n.selectedMode;if(i){var r=T(n.selected),o=e.getSelectedMapKey(t);"single"===i||!0===i?(r[o]=!0,E(r,(function(t,e){r[e]=e===o}))):r[o]=!r[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:r})}},e.type="visualMap.piecewise",e}(SF);function qF(t){t.RegistroComponentModel(UF),t.RegistroComponentView(jF),HF(t)}var KF={label:{enabled:!0},decal:{show:!1}},$F=Po(),JF={};function QF(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=T(KF);C(i.label,t.getLocaleModel().get("aria"),!1),C(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=yt();t.eachSeries((function(t){if(!t.isColorBySeries()){var n=e.get(t.type);n||(n={},e.set(t.type,n)),$F(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if(U(e.enableAriaDecal))e.enableAriaDecal();else{var n=e.getData();if(e.isColorBySeries()){var i=ld(e.ecModel,e.name,JF,t.getSeriesCount()),r=n.getVisual("decal");n.setVisual("decal",u(r,i))}else{var o=e.getRawData(),a={},s=$F(e).scope;n.each((function(t){var e=n.getRawIndex(t);a[e]=t}));var l=o.count();o.each((function(t){var i=a[t],r=o.getName(t)||t+"",h=ld(e.ecModel,r,s,l),c=n.getItemVisual(i,"decal");n.setItemVisual(i,"decal",u(c,h))}))}}function u(t,e){var n=t?A(A({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=k(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(x=e.subType,t.getLocaleModel().get(["series","typeNames"])[x]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=o.get(["data","separator","middle"]),p=o.get(["data","separator","end"]),d=[],g=0;g":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},nG=function(){function t(t){if(null==(this._condVal=X(t)?new RegExp(t):et(t)?t:null)){var e="";0,yo(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return X(e)?this._condVal.test(t):!!j(e)&&this._condVal.test(t+"")},t}(),iG=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),rG=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&l.push(e),e=[t,n]}function f(t,n,i,r){vG(t,i)&&vG(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=nM:C2&&l.push(e),l}function xG(t,e,n,i,r,o,a,s,l,u){if(vG(t,n)&&vG(e,i)&&vG(r,a)&&vG(o,s))l.push(a,s);else{var h=2/u,c=h*h,p=a-t,d=s-e,f=Math.sqrt(p*p+d*d);p/=f,d/=f;var g=n-t,y=i-e,v=r-a,m=o-s,x=g*g+y*y,_=v*v+m*m;if(x=0&&_-w*w=0)l.push(a,s);else{var S=[],M=[];bn(t,n,r,a,.5,S),bn(e,i,o,s,.5,M),xG(S[0],M[0],S[1],M[1],S[2],M[2],S[3],M[3],l,u),xG(S[4],M[4],S[5],M[5],S[6],M[6],S[7],M[7],l,u)}}}}function _G(t,e,n){var i=t[e],r=t[1-e],o=Math.abs(i/r),a=Math.ceil(Math.sqrt(o*n)),s=Math.floor(n/a);0===s&&(s=1,a=n);for(var l=[],u=0;u0)for(u=0;uMath.abs(u),c=_G([l,u],h?0:1,e),p=(h?s:u)/c.length,d=0;d1?null:new Ce(d*l+t,d*u+e)}function MG(t,e,n){var i=new Ce;Ce.sub(i,n,e),i.normalize();var r=new Ce;return Ce.sub(r,t,e),r.dot(i)}function IG(t,e){var n=t[t.length-1];n&&n[0]===e[0]&&n[1]===e[1]||t.push(e)}function TG(t){var e=t.points,n=[],i=[];Oa(e,n,i);var r=new Ee(n[0],n[1],i[0]-n[0],i[1]-n[1]),o=r.width,a=r.height,s=r.x,l=r.y,u=new Ce,h=new Ce;return o>a?(u.x=h.x=s+o/2,u.y=l,h.y=l+a):(u.y=h.y=l+a/2,u.x=s,h.x=s+o),function(t,e,n){for(var i=t.length,r=[],o=0;or,a=_G([i,r],o?0:1,e),s=o?"width":"height",l=o?"height":"width",u=o?"x":"y",h=o?"y":"x",c=t[s]/a.length,p=0;p0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(x=0;x0;l/=2){var u=0,h=0;(t&l)>0&&(u=1),(e&l)>0&&(h=1),s+=l*l*(3*u^h),0===h&&(1===u&&(t=l-1-t,e=l-1-e),a=t,t=e,e=a)}return s}function HG(t){var e=1/0,n=1/0,i=-1/0,r=-1/0,o=z(t,(function(t){var o=t.getBoundingRect(),a=t.getComputedTransform(),s=o.x+o.width/2+(a?a[4]:0),l=o.y+o.height/2+(a?a[5]:0);return e=Math.min(s,e),n=Math.min(l,n),i=Math.max(s,i),r=Math.max(l,r),[s,l]}));return z(o,(function(o,a){return{cp:o,z:WG(o[0],o[1],e,n,i,r),path:t[a]}})).sort((function(t,e){return t.z-e.z})).map((function(t){return t.path}))}function YG(t){return AG(t.path,t.count)}function UG(t){return Y(t[0])}function XG(t,e){for(var n=[],i=t.length,r=0;r=0;r--)if(!n[r].many.length){var l=n[s].many;if(l.length<=1){if(!s)return n;s=0}o=l.length;var u=Math.ceil(o/2);n[r].many=l.slice(u,o),n[s].many=l.slice(0,u),s++}return n}var ZG={clone:function(t){for(var e=[],n=1-Math.pow(1-t.path.style.opacity,1/t.count),i=0;i0){var s,l,u=i.getModel("universalTransition").get("delay"),h=Object.assign({setToFinal:!0},a);UG(t)&&(s=t,l=e),UG(e)&&(s=e,l=t);for(var c=s?s===t:t.length>e.length,p=s?XG(l,s):XG(c?e:t,[c?t:e]),d=0,f=0;f1e4))for(var i=n.getIndices(),r=function(t){for(var e=t.dimensions,n=0;n0&&i.group.traverse((function(t){t instanceof Ms&&!t.animators.length&&t.animateFrom({style:{opacity:0}},r)}))}))}function iW(t){var e=t.getModel("universalTransition").get("seriesKey");return e||t.id}function rW(t){return Y(t)?t.sort().join(","):t}function oW(t){if(t.hostModel)return t.hostModel.getModel("universalTransition").get("divideShape")}function aW(t,e){for(var n=0;n=0&&r.push({dataGroupId:e.oldDataGroupIds[n],data:e.oldData[n],divide:oW(e.oldData[n]),dim:t.dimension})})),E(_o(t.to),(function(t){var i=aW(n.updatedSeries,t);if(i>=0){var r=n.updatedSeries[i].getData();o.push({dataGroupId:e.oldDataGroupIds[i],data:r,divide:oW(r),dim:t.dimension})}})),r.length>0&&o.length>0&&nW(r,o,i)}(t,i,n,e)}));else{var o=function(t,e){var n=yt(),i=yt(),r=yt();return E(t.oldSeries,(function(e,n){var o=t.oldDataGroupIds[n],a=t.oldData[n],s=iW(e),l=rW(s);i.set(l,{dataGroupId:o,data:a}),Y(s)&&E(s,(function(t){r.set(t,{key:l,dataGroupId:o,data:a})}))})),E(e.updatedSeries,(function(t){if(t.isUniversalTransitionEnabled()&&t.isAnimationEnabled()){var e=t.get("dataGroupId"),o=t.getData(),a=iW(t),s=rW(a),l=i.get(s);if(l)n.set(s,{oldSeries:[{dataGroupId:l.dataGroupId,divide:oW(l.data),data:l.data}],newSeries:[{dataGroupId:e,divide:oW(o),data:o}]});else if(Y(a)){var u=[];E(a,(function(t){var e=i.get(t);e.data&&u.push({dataGroupId:e.dataGroupId,divide:oW(e.data),data:e.data})})),u.length&&n.set(s,{oldSeries:u,newSeries:[{dataGroupId:e,data:o,divide:oW(o)}]})}else{var h=r.get(a);if(h){var c=n.get(h.key);c||(c={oldSeries:[{dataGroupId:h.dataGroupId,data:h.data,divide:oW(h.data)}],newSeries:[]},n.set(h.key,c)),c.newSeries.push({dataGroupId:e,data:o,divide:oW(o)})}}}})),n}(i,n);E(o.keys(),(function(t){var n=o.get(t);nW(n.oldSeries,n.newSeries,e)}))}E(n.updatedSeries,(function(t){t.__universalTransitionEnabled&&(t.__universalTransitionEnabled=!1)}))}for(var a=t.getSeries(),s=i.oldSeries=[],l=i.oldDataGroupIds=[],u=i.oldData=[],h=0;h + * + * + * Helper method for preparing data. + * + * @param {Array.} rawData like + * [ + * [12,232,443], (raw data set for the first box) + * [3843,5545,1232], (raw data set for the second box) + * ... + * ] + * @param {Object} [opt] + * + * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier. + * default 1.5, means Q1 - 1.5 * (Q3 - Q1). + * If 'none'/0 passed, min bound will not be used. + * @param {(number|string)} [opt.layout='horizontal'] + * Box plot layout, can be 'horizontal' or 'vertical' + * @return {Object} { + * boxData: Array.> + * outliers: Array.> + * axisData: Array. + * } + */ + + + function prepareBoxplotData (rawData, opt) { + opt = opt || {}; + var boxData = []; + var outliers = []; + var axisData = []; + var boundIQR = opt.boundIQR; + var useExtreme = boundIQR === 'none' || boundIQR === 0; + + for (var i = 0; i < rawData.length; i++) { + axisData.push(i + ''); + var ascList = asc(rawData[i].slice()); + var Q1 = quantile(ascList, 0.25); + var Q2 = quantile(ascList, 0.5); + var Q3 = quantile(ascList, 0.75); + var min = ascList[0]; + var max = ascList[ascList.length - 1]; + var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1); + var low = useExtreme ? min : Math.max(min, Q1 - bound); + var high = useExtreme ? max : Math.min(max, Q3 + bound); + boxData.push([low, Q1, Q2, Q3, high]); + + for (var j = 0; j < ascList.length; j++) { + var dataItem = ascList[j]; + + if (dataItem < low || dataItem > high) { + var outlier = [i, dataItem]; + opt.layout === 'vertical' && outlier.reverse(); + outliers.push(outlier); + } + } + } + + return { + boxData: boxData, + outliers: outliers, + axisData: axisData + }; + } + + var version = '1.0.0'; + // For backward compatibility, where the namespace `dataTool` will + // be mounted on `eGraficas` is the extension `dataTool` is imported. + // But the old version of eGraficas do not have `dataTool` namespace, + // so check it before mounting. + + if (eGraficas.dataTool) { + eGraficas.dataTool.version = version; + eGraficas.dataTool.gexf = gexf; + eGraficas.dataTool.prepareBoxplotData = prepareBoxplotData; // eGraficas.dataTool.boxplotTransform = boxplotTransform; + } + + exports.gexf = gexf; + exports.prepareBoxplotData = prepareBoxplotData; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=dataTool.js.map diff --git a/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.js.map b/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.js.map new file mode 100644 index 0000000..bd9632b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dataTool.js","sources":["../../node_modules/zrender/lib/core/util.js","../../extension/dataTool/gexf.js","../../extension/dataTool/prepareBoxplotData.js","../../extension/dataTool/index.js"],"sourcesContent":["import { platformApi } from './platform.js';\nvar BUILTIN_OBJECT = reduce([\n 'Function',\n 'RegExp',\n 'Date',\n 'Error',\n 'CanvasGradient',\n 'CanvasPattern',\n 'Image',\n 'Canvas'\n], function (obj, val) {\n obj['[object ' + val + ']'] = true;\n return obj;\n}, {});\nvar TYPED_ARRAY = reduce([\n 'Int8',\n 'Uint8',\n 'Uint8Clamped',\n 'Int16',\n 'Uint16',\n 'Int32',\n 'Uint32',\n 'Float32',\n 'Float64'\n], function (obj, val) {\n obj['[object ' + val + 'Array]'] = true;\n return obj;\n}, {});\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar protoKey = '__proto__';\nvar idStart = 0x0907;\nexport function guid() {\n return idStart++;\n}\nexport function logError() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof console !== 'undefined') {\n console.error.apply(console, args);\n }\n}\nexport function clone(source) {\n if (source == null || typeof source !== 'object') {\n return source;\n }\n var result = source;\n var typeStr = objToString.call(source);\n if (typeStr === '[object Array]') {\n if (!isPrimitive(source)) {\n result = [];\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n else if (TYPED_ARRAY[typeStr]) {\n if (!isPrimitive(source)) {\n var Ctor = source.constructor;\n if (Ctor.from) {\n result = Ctor.from(source);\n }\n else {\n result = new Ctor(source.length);\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = source[i];\n }\n }\n }\n }\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n result = {};\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n result[key] = clone(source[key]);\n }\n }\n }\n return result;\n}\nexport function merge(target, source, overwrite) {\n if (!isObject(source) || !isObject(target)) {\n return overwrite ? clone(source) : target;\n }\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n var targetProp = target[key];\n var sourceProp = source[key];\n if (isObject(sourceProp)\n && isObject(targetProp)\n && !isArray(sourceProp)\n && !isArray(targetProp)\n && !isDom(sourceProp)\n && !isDom(targetProp)\n && !isBuiltInObject(sourceProp)\n && !isBuiltInObject(targetProp)\n && !isPrimitive(sourceProp)\n && !isPrimitive(targetProp)) {\n merge(targetProp, sourceProp, overwrite);\n }\n else if (overwrite || !(key in target)) {\n target[key] = clone(source[key]);\n }\n }\n }\n return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n var result = targetAndSources[0];\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\n result = merge(result, targetAndSources[i], overwrite);\n }\n return result;\n}\nexport function extend(target, source) {\n if (Object.assign) {\n Object.assign(target, source);\n }\n else {\n for (var key in source) {\n if (source.hasOwnProperty(key) && key !== protoKey) {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\nexport function defaults(target, source, overlay) {\n var keysArr = keys(source);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if ((overlay ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport var createCanvas = platformApi.createCanvas;\nexport function indexOf(array, value) {\n if (array) {\n if (array.indexOf) {\n return array.indexOf(value);\n }\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n }\n return -1;\n}\nexport function inherits(clazz, baseClazz) {\n var clazzPrototype = clazz.prototype;\n function F() { }\n F.prototype = baseClazz.prototype;\n clazz.prototype = new F();\n for (var prop in clazzPrototype) {\n if (clazzPrototype.hasOwnProperty(prop)) {\n clazz.prototype[prop] = clazzPrototype[prop];\n }\n }\n clazz.prototype.constructor = clazz;\n clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n target = 'prototype' in target ? target.prototype : target;\n source = 'prototype' in source ? source.prototype : source;\n if (Object.getOwnPropertyNames) {\n var keyList = Object.getOwnPropertyNames(source);\n for (var i = 0; i < keyList.length; i++) {\n var key = keyList[i];\n if (key !== 'constructor') {\n if ((override ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n }\n }\n else {\n defaults(target, source, override);\n }\n}\nexport function isArrayLike(data) {\n if (!data) {\n return false;\n }\n if (typeof data === 'string') {\n return false;\n }\n return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n if (arr.forEach && arr.forEach === nativeForEach) {\n arr.forEach(cb, context);\n }\n else if (arr.length === +arr.length) {\n for (var i = 0, len = arr.length; i < len; i++) {\n cb.call(context, arr[i], i, arr);\n }\n }\n else {\n for (var key in arr) {\n if (arr.hasOwnProperty(key)) {\n cb.call(context, arr[key], key, arr);\n }\n }\n }\n}\nexport function map(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.map && arr.map === nativeMap) {\n return arr.map(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n result.push(cb.call(context, arr[i], i, arr));\n }\n return result;\n }\n}\nexport function reduce(arr, cb, memo, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n memo = cb.call(context, memo, arr[i], i, arr);\n }\n return memo;\n}\nexport function filter(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.filter && arr.filter === nativeFilter) {\n return arr.filter(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n result.push(arr[i]);\n }\n }\n return result;\n }\n}\nexport function find(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n return arr[i];\n }\n }\n}\nexport function keys(obj) {\n if (!obj) {\n return [];\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keyList = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keyList.push(key);\n }\n }\n return keyList;\n}\nfunction bindPolyfill(func, context) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n return function () {\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n ? protoFunction.call.bind(protoFunction.bind)\n : bindPolyfill;\nfunction curry(func) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return function () {\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport { curry };\nexport function isArray(value) {\n if (Array.isArray) {\n return Array.isArray(value);\n }\n return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function isObject(value) {\n var type = typeof value;\n return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n return typeof value === 'object'\n && typeof value.nodeType === 'number'\n && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n return value.colorStops != null;\n}\nexport function isImagePatternObject(value) {\n return value.image != null;\n}\nexport function isRegExp(value) {\n return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n return value !== value;\n}\nexport function retrieve() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0, len = args.length; i < len; i++) {\n if (args[i] != null) {\n return args[i];\n }\n }\n}\nexport function retrieve2(value0, value1) {\n return value0 != null\n ? value0\n : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n return value0 != null\n ? value0\n : value1 != null\n ? value1\n : value2;\n}\nexport function slice(arr) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n if (typeof (val) === 'number') {\n return [val, val, val, val];\n }\n var len = val.length;\n if (len === 2) {\n return [val[0], val[1], val[0], val[1]];\n }\n else if (len === 3) {\n return [val[0], val[1], val[2], val[1]];\n }\n return val;\n}\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\nexport function trim(str) {\n if (str == null) {\n return null;\n }\n else if (typeof str.trim === 'function') {\n return str.trim();\n }\n else {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n return obj[primitiveKey];\n}\nvar MapPolyfill = (function () {\n function MapPolyfill() {\n this.data = {};\n }\n MapPolyfill.prototype[\"delete\"] = function (key) {\n var existed = this.has(key);\n if (existed) {\n delete this.data[key];\n }\n return existed;\n };\n MapPolyfill.prototype.has = function (key) {\n return this.data.hasOwnProperty(key);\n };\n MapPolyfill.prototype.get = function (key) {\n return this.data[key];\n };\n MapPolyfill.prototype.set = function (key, value) {\n this.data[key] = value;\n return this;\n };\n MapPolyfill.prototype.keys = function () {\n return keys(this.data);\n };\n MapPolyfill.prototype.forEach = function (callback) {\n var data = this.data;\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n callback(data[key], key);\n }\n }\n };\n return MapPolyfill;\n}());\nvar isNativeMapSupported = typeof Map === 'function';\nfunction maybeNativeMap() {\n return (isNativeMapSupported ? new Map() : new MapPolyfill());\n}\nvar HashMap = (function () {\n function HashMap(obj) {\n var isArr = isArray(obj);\n this.data = maybeNativeMap();\n var thisMap = this;\n (obj instanceof HashMap)\n ? obj.each(visit)\n : (obj && each(obj, visit));\n function visit(value, key) {\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n }\n }\n HashMap.prototype.hasKey = function (key) {\n return this.data.has(key);\n };\n HashMap.prototype.get = function (key) {\n return this.data.get(key);\n };\n HashMap.prototype.set = function (key, value) {\n this.data.set(key, value);\n return value;\n };\n HashMap.prototype.each = function (cb, context) {\n this.data.forEach(function (value, key) {\n cb.call(context, value, key);\n });\n };\n HashMap.prototype.keys = function () {\n var keys = this.data.keys();\n return isNativeMapSupported\n ? Array.from(keys)\n : keys;\n };\n HashMap.prototype.removeKey = function (key) {\n this.data[\"delete\"](key);\n };\n return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n var newArray = new a.constructor(a.length + b.length);\n for (var i = 0; i < a.length; i++) {\n newArray[i] = a[i];\n }\n var offset = a.length;\n for (var i = 0; i < b.length; i++) {\n newArray[i + offset] = b[i];\n }\n return newArray;\n}\nexport function createObject(proto, properties) {\n var obj;\n if (Object.create) {\n obj = Object.create(proto);\n }\n else {\n var StyleCtor = function () { };\n StyleCtor.prototype = proto;\n obj = new StyleCtor();\n }\n if (properties) {\n extend(obj, properties);\n }\n return obj;\n}\nexport function disableUsuarioselect(dom) {\n var domStyle = dom.style;\n domStyle.webkitUsuarioselect = 'none';\n domStyle.Usuarioselect = 'none';\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n domStyle['-webkit-touch-callout'] = 'none';\n}\nexport function hasOwn(own, prop) {\n return own.hasOwnProperty(prop);\n}\nexport function noop() { }\nexport var RADIAN_TO_DEGREE = 180 / Math.PI;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\n\n/**\n * This is a parse of GEXF.\n *\n * The spec of GEXF:\n * https://gephi.org/gexf/1.2draft/gexf-12draft-primer.pdf\n */\nimport * as zrUtil from 'zrender/lib/core/util.js';\nexport function parse(xml) {\n var doc;\n\n if (typeof xml === 'string') {\n var parser = new DOMParser();\n doc = parser.parseFromString(xml, 'text/xml');\n } else {\n doc = xml;\n }\n\n if (!doc || doc.getElementsByTagName('parsererror').length) {\n return null;\n }\n\n var gexfRoot = getChildByTagName(doc, 'gexf');\n\n if (!gexfRoot) {\n return null;\n }\n\n var graphRoot = getChildByTagName(gexfRoot, 'graph');\n var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));\n var attributesMap = {};\n\n for (var i = 0; i < attributes.length; i++) {\n attributesMap[attributes[i].id] = attributes[i];\n }\n\n return {\n nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),\n links: parseEdges(getChildByTagName(graphRoot, 'edges'))\n };\n}\n\nfunction parseAttributes(parent) {\n return parent ? zrUtil.map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {\n return {\n id: getAttr(attribDom, 'id'),\n title: getAttr(attribDom, 'title'),\n type: getAttr(attribDom, 'type')\n };\n }) : [];\n}\n\nfunction parseNodes(parent, attributesMap) {\n return parent ? zrUtil.map(getChildrenByTagName(parent, 'node'), function (nodeDom) {\n var id = getAttr(nodeDom, 'id');\n var label = getAttr(nodeDom, 'label');\n var node = {\n id: id,\n name: label,\n itemStyle: {\n normal: {}\n }\n };\n var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');\n var vizPosDom = getChildByTagName(nodeDom, 'viz:position');\n var vizColorDom = getChildByTagName(nodeDom, 'viz:color'); // let vizShapeDom = getChildByTagName(nodeDom, 'viz:shape');\n\n var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');\n\n if (vizSizeDom) {\n node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));\n }\n\n if (vizPosDom) {\n node.x = parseFloat(getAttr(vizPosDom, 'x'));\n node.y = parseFloat(getAttr(vizPosDom, 'y')); // z\n }\n\n if (vizColorDom) {\n node.itemStyle.normal.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';\n } // if (vizShapeDom) {\n // node.shape = getAttr(vizShapeDom, 'shape');\n // }\n\n\n if (attvaluesDom) {\n var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');\n node.attributes = {};\n\n for (var j = 0; j < attvalueDomList.length; j++) {\n var attvalueDom = attvalueDomList[j];\n var attId = getAttr(attvalueDom, 'for');\n var attValue = getAttr(attvalueDom, 'value');\n var attribute = attributesMap[attId];\n\n if (attribute) {\n switch (attribute.type) {\n case 'integer':\n case 'long':\n attValue = parseInt(attValue, 10);\n break;\n\n case 'float':\n case 'double':\n attValue = parseFloat(attValue);\n break;\n\n case 'boolean':\n attValue = attValue.toLowerCase() === 'true';\n break;\n\n default:\n }\n\n node.attributes[attId] = attValue;\n }\n }\n }\n\n return node;\n }) : [];\n}\n\nfunction parseEdges(parent) {\n return parent ? zrUtil.map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {\n var id = getAttr(edgeDom, 'id');\n var label = getAttr(edgeDom, 'label');\n var sourceId = getAttr(edgeDom, 'source');\n var targetId = getAttr(edgeDom, 'target');\n var edge = {\n id: id,\n name: label,\n source: sourceId,\n target: targetId,\n lineStyle: {\n normal: {}\n }\n };\n var lineStyle = edge.lineStyle.normal;\n var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');\n var vizColorDom = getChildByTagName(edgeDom, 'viz:color'); // let vizShapeDom = getChildByTagName(edgeDom, 'viz:shape');\n\n if (vizThicknessDom) {\n lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));\n }\n\n if (vizColorDom) {\n lineStyle.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';\n } // if (vizShapeDom) {\n // edge.shape = vizShapeDom.getAttribute('shape');\n // }\n\n\n return edge;\n }) : [];\n}\n\nfunction getAttr(el, attrName) {\n return el.getAttribute(attrName);\n}\n\nfunction getChildByTagName(parent, tagName) {\n var node = parent.firstChild;\n\n while (node) {\n if (node.nodeType !== 1 || node.nodeName.toLowerCase() !== tagName.toLowerCase()) {\n node = node.nextSibling;\n } else {\n return node;\n }\n }\n\n return null;\n}\n\nfunction getChildrenByTagName(parent, tagName) {\n var node = parent.firstChild;\n var children = [];\n\n while (node) {\n if (node.nodeName.toLowerCase() === tagName.toLowerCase()) {\n children.push(node);\n }\n\n node = node.nextSibling;\n }\n\n return children;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\n\nfunction quantile(ascArr, p) {\n var H = (ascArr.length - 1) * p + 1;\n var h = Math.floor(H);\n var v = +ascArr[h - 1];\n var e = H - h;\n return e ? v + e * (ascArr[h] - v) : v;\n}\n/**\n * See:\n * \n * \n *\n * Helper method for preparing data.\n *\n * @param {Array.} rawData like\n * [\n * [12,232,443], (raw data set for the first box)\n * [3843,5545,1232], (raw data set for the second box)\n * ...\n * ]\n * @param {Object} [opt]\n *\n * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier.\n * default 1.5, means Q1 - 1.5 * (Q3 - Q1).\n * If 'none'/0 passed, min bound will not be used.\n * @param {(number|string)} [opt.layout='horizontal']\n * Box plot layout, can be 'horizontal' or 'vertical'\n * @return {Object} {\n * boxData: Array.>\n * outliers: Array.>\n * axisData: Array.\n * }\n */\n\n\nexport default function (rawData, opt) {\n opt = opt || {};\n var boxData = [];\n var outliers = [];\n var axisData = [];\n var boundIQR = opt.boundIQR;\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n for (var i = 0; i < rawData.length; i++) {\n axisData.push(i + '');\n var ascList = asc(rawData[i].slice());\n var Q1 = quantile(ascList, 0.25);\n var Q2 = quantile(ascList, 0.5);\n var Q3 = quantile(ascList, 0.75);\n var min = ascList[0];\n var max = ascList[ascList.length - 1];\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n var low = useExtreme ? min : Math.max(min, Q1 - bound);\n var high = useExtreme ? max : Math.min(max, Q3 + bound);\n boxData.push([low, Q1, Q2, Q3, high]);\n\n for (var j = 0; j < ascList.length; j++) {\n var dataItem = ascList[j];\n\n if (dataItem < low || dataItem > high) {\n var outlier = [i, dataItem];\n opt.layout === 'vertical' && outlier.reverse();\n outliers.push(outlier);\n }\n }\n }\n\n return {\n boxData: boxData,\n outliers: outliers,\n axisData: axisData\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// @ts-nocheck\nimport * as eGraficas from 'eGraficas';\nimport * as gexf from './gexf.js';\nimport prepareBoxplotData from './prepareBoxplotData.js'; // import { boxplotTransform } from './boxplotTransform.js';\n\nexport var version = '1.0.0';\nexport { gexf };\nexport { prepareBoxplotData }; // export {boxplotTransform};\n// For backward compatibility, where the namespace `dataTool` will\n// be mounted on `eGraficas` is the extension `dataTool` is imported.\n// But the old version of eGraficas do not have `dataTool` namespace,\n// so check it before mounting.\n\nif (eGraficas.dataTool) {\n eGraficas.dataTool.version = version;\n eGraficas.dataTool.gexf = gexf;\n eGraficas.dataTool.prepareBoxplotData = prepareBoxplotData; // eGraficas.dataTool.boxplotTransform = boxplotTransform;\n}"],"names":["zrUtil.map","eGraficas.dataTool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IACA,IAAI,cAAc,GAAG,MAAM,CAAC;IAC5B,IAAI,UAAU;IACd,IAAI,QAAQ;IACZ,IAAI,MAAM;IACV,IAAI,OAAO;IACX,IAAI,gBAAgB;IACpB,IAAI,eAAe;IACnB,IAAI,OAAO;IACX,IAAI,QAAQ;IACZ,CAAC,EAAE,UAAU,GAAG,EAAE,GAAG,EAAE;IACvB,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,MAAM;IACV,IAAI,OAAO;IACX,IAAI,cAAc;IAClB,IAAI,OAAO;IACX,IAAI,QAAQ;IACZ,IAAI,OAAO;IACX,IAAI,QAAQ;IACZ,IAAI,SAAS;IACb,IAAI,SAAS;IACb,CAAC,EAAE,UAAU,GAAG,EAAE,GAAG,EAAE;IACvB,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;IAGjC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;IACnC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;IAC/B,IAAI,YAAY,GAAG,YAAY,GAAG,CAAC,WAAW,CAAC;IAC/C,IAAI,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;IAwL1D,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE;IACtC,IAAI,IAAI,CAAC,GAAG,EAAE;IACd,QAAQ,OAAO,EAAE,CAAC;IAClB,KAAK;IACL,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE;IAC1C,QAAQ,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;IACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,CAAC;IACM,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/C,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE;IACtB,QAAQ,OAAO;IACf,KAAK;IACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IA8CD,SAAS,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;IACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;IAClD,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,YAAY;IACvB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,CAAC;IACN,CAAC;IACM,IAAI,IAAI,GAAG,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;IAClE,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjD,MAAM,YAAY,CAAC;IAiBZ,SAAS,UAAU,CAAC,KAAK,EAAE;IAClC,IAAI,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;IACvC,CAAC;IA4DM,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;IAClD,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC;;IC/UO,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,EAAE,IAAI,GAAG,CAAC;AACV;IACA,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IAC/B,IAAI,IAAI,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IACjC,IAAI,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClD,GAAG,MAAM;IACT,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,GAAG;AACH;IACA,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;IAC9D,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA,EAAE,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChD;IACA,EAAE,IAAI,CAAC,QAAQ,EAAE;IACjB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA,EAAE,IAAI,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,EAAE,IAAI,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/E,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC;AACzB;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACpD,GAAG;AACH;IACA,EAAE,OAAO;IACT,IAAI,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC;IAC3E,IAAI,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,GAAG,CAAC;IACJ,CAAC;AACD;IACA,SAAS,eAAe,CAAC,MAAM,EAAE;IACjC,EAAE,OAAO,MAAM,GAAGA,GAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,SAAS,EAAE;IAC7F,IAAI,OAAO;IACX,MAAM,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;IAClC,MAAM,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;IACxC,MAAM,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC;IACN,GAAG,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;AACD;IACA,SAAS,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE;IAC3C,EAAE,OAAO,MAAM,GAAGA,GAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,OAAO,EAAE;IACtF,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,IAAI,GAAG;IACf,MAAM,EAAE,EAAE,EAAE;IACZ,MAAM,IAAI,EAAE,KAAK;IACjB,MAAM,SAAS,EAAE;IACjB,QAAQ,MAAM,EAAE,EAAE;IAClB,OAAO;IACP,KAAK,CAAC;IACN,IAAI,IAAI,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,IAAI,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAI,IAAI,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9D;IACA,IAAI,IAAI,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC/D;IACA,IAAI,IAAI,UAAU,EAAE;IACpB,MAAM,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,KAAK;AACL;IACA,IAAI,IAAI,SAAS,EAAE;IACnB,MAAM,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,KAAK;AACL;IACA,IAAI,IAAI,WAAW,EAAE;IACrB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3J,KAAK;IACL;IACA;AACA;AACA;IACA,IAAI,IAAI,YAAY,EAAE;IACtB,MAAM,IAAI,eAAe,GAAG,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC3B;IACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,QAAQ,IAAI,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,IAAI,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChD,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,QAAQ,IAAI,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7C;IACA,QAAQ,IAAI,SAAS,EAAE;IACvB,UAAU,QAAQ,SAAS,CAAC,IAAI;IAChC,YAAY,KAAK,SAAS,CAAC;IAC3B,YAAY,KAAK,MAAM;IACvB,cAAc,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,cAAc,MAAM;AACpB;IACA,YAAY,KAAK,OAAO,CAAC;IACzB,YAAY,KAAK,QAAQ;IACzB,cAAc,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,cAAc,MAAM;AACpB;IACA,YAAY,KAAK,SAAS;IAC1B,cAAc,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAC3D,cAAc,MAAM;IAGpB,WAAW;AACX;IACA,UAAU,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAC5C,SAAS;IACT,OAAO;IACP,KAAK;AACL;IACA,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;AACD;IACA,SAAS,UAAU,CAAC,MAAM,EAAE;IAC5B,EAAE,OAAO,MAAM,GAAGA,GAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,OAAO,EAAE;IACtF,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,GAAG;IACf,MAAM,EAAE,EAAE,EAAE;IACZ,MAAM,IAAI,EAAE,KAAK;IACjB,MAAM,MAAM,EAAE,QAAQ;IACtB,MAAM,MAAM,EAAE,QAAQ;IACtB,MAAM,SAAS,EAAE;IACjB,QAAQ,MAAM,EAAE,EAAE;IAClB,OAAO;IACP,KAAK,CAAC;IACN,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC1C,IAAI,IAAI,eAAe,GAAG,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtE,IAAI,IAAI,WAAW,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC9D;IACA,IAAI,IAAI,eAAe,EAAE;IACzB,MAAM,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,KAAK;AACL;IACA,IAAI,IAAI,WAAW,EAAE;IACrB,MAAM,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC/I,KAAK;IACL;IACA;AACA;AACA;IACA,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;AACD;IACA,SAAS,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE;IAC/B,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;AACD;IACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC5C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B;IACA,EAAE,OAAO,IAAI,EAAE;IACf,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE;IACtF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,KAAK,MAAM;IACX,MAAM,OAAO,IAAI,CAAC;IAClB,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC;AACD;IACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC/C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/B,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB;IACA,EAAE,OAAO,IAAI,EAAE;IACf,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE;IAC/D,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK;AACL;IACA,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5B,GAAG;AACH;IACA,EAAE,OAAO,QAAQ,CAAC;IAClB;;;;;;;ICvOA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,SAAS,GAAG,CAAC,GAAG,EAAE;IAClB,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,CAAC;IACL,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA,SAAS,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;IAC7B,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AACA;IACe,2BAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;IACvC,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IAClB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;IACnB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;IACpB,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;IACpB,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,EAAE,IAAI,UAAU,GAAG,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,CAAC,CAAC;AACzD;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC3C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,GAAG,GAAG,GAAG,QAAQ,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,IAAI,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,IAAI,GAAG,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1C;IACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,MAAM,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC;IACA,MAAM,IAAI,QAAQ,GAAG,GAAG,IAAI,QAAQ,GAAG,IAAI,EAAE;IAC7C,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpC,QAAQ,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACvD,QAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO;IACP,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO;IACT,IAAI,OAAO,EAAE,OAAO;IACpB,IAAI,QAAQ,EAAE,QAAQ;IACtB,IAAI,QAAQ,EAAE,QAAQ;IACtB,GAAG,CAAC;IACJ;;AC1EU,QAAC,OAAO,GAAG,QAAQ;IAG7B;IACA;IACA;IACA;AACA;IACA,IAAIC,gBAAgB,EAAE;IACtB,EAAEA,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,EAAEA,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/B,EAAEA,gBAAgB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC3D;;;;;;;;"} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.min.js b/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.min.js new file mode 100644 index 0000000..9b80e9d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/echarts/extension/dataTool.min.js @@ -0,0 +1,22 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("eGraficas")):"function"==typeof define&&define.amd?define(["exports","eGraficas"],t):t((e=e||self).dataTool={},e.eGraficas)}(this,function(e,t){"use strict";var r=Array.prototype,i=r.slice,l=r.map,o=function(){}.constructor,r=o?o.prototype:null;function a(e,t,r){if(!e)return[];if(!t)return function(e){for(var t=[],r=1;r { + formData.set('recaptcha-response', token); + php_email_form_submit(thisForm, action, formData); + }) + } catch(error) { + displayError(thisForm, error) + } + }); + } else { + displayError(thisForm, 'The reCaptcha javascript API url is not loaded!') + } + } else { + php_email_form_submit(thisForm, action, formData); + } + }); + }); + + function php_email_form_submit(thisForm, action, formData) { + fetch(action, { + method: 'POST', + body: formData, + headers: {'X-Requested-With': 'XMLHttpRequest'} + }) + .then(response => { + return response.text(); + }) + .then(data => { + thisForm.querySelector('.loading').classList.remove('d-block'); + if (data.trim() == 'OK') { + thisForm.querySelector('.sent-message').classList.add('d-block'); + thisForm.reset(); + } else { + throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); + } + }) + .catch((error) => { + displayError(thisForm, error); + }); + } + + function displayError(thisForm, error) { + thisForm.querySelector('.loading').classList.remove('d-block'); + thisForm.querySelector('.error-message').innerHTML = error; + thisForm.querySelector('.error-message').classList.add('d-block'); + } + +})(); diff --git a/Practica-14.5/src/assets/vendor/quill/quill.bubble.css b/Practica-14.5/src/assets/vendor/quill/quill.bubble.css new file mode 100644 index 0000000..e4d4be0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.bubble.css @@ -0,0 +1,952 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} +.ql-bubble.ql-toolbar:after, +.ql-bubble .ql-toolbar:after { + clear: both; + content: ''; + display: table; +} +.ql-bubble.ql-toolbar button, +.ql-bubble .ql-toolbar button { + background: none; + border: none; + cursor: pointer; + display: inline-block; + float: left; + height: 24px; + padding: 3px 5px; + width: 28px; +} +.ql-bubble.ql-toolbar button svg, +.ql-bubble .ql-toolbar button svg { + float: left; + height: 100%; +} +.ql-bubble.ql-toolbar button:active:hover, +.ql-bubble .ql-toolbar button:active:hover { + outline: none; +} +.ql-bubble.ql-toolbar input.ql-image[type=file], +.ql-bubble .ql-toolbar input.ql-image[type=file] { + display: none; +} +.ql-bubble.ql-toolbar button:hover, +.ql-bubble .ql-toolbar button:hover, +.ql-bubble.ql-toolbar button:focus, +.ql-bubble .ql-toolbar button:focus, +.ql-bubble.ql-toolbar button.ql-active, +.ql-bubble .ql-toolbar button.ql-active, +.ql-bubble.ql-toolbar .ql-picker-label:hover, +.ql-bubble .ql-toolbar .ql-picker-label:hover, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active, +.ql-bubble.ql-toolbar .ql-picker-item:hover, +.ql-bubble .ql-toolbar .ql-picker-item:hover, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected { + color: #fff; +} +.ql-bubble.ql-toolbar button:hover .ql-fill, +.ql-bubble .ql-toolbar button:hover .ql-fill, +.ql-bubble.ql-toolbar button:focus .ql-fill, +.ql-bubble .ql-toolbar button:focus .ql-fill, +.ql-bubble.ql-toolbar button.ql-active .ql-fill, +.ql-bubble .ql-toolbar button.ql-active .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { + fill: #fff; +} +.ql-bubble.ql-toolbar button:hover .ql-stroke, +.ql-bubble .ql-toolbar button:hover .ql-stroke, +.ql-bubble.ql-toolbar button:focus .ql-stroke, +.ql-bubble .ql-toolbar button:focus .ql-stroke, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-bubble.ql-toolbar button:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar button:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar button:focus .ql-stroke-miter, +.ql-bubble .ql-toolbar button:focus .ql-stroke-miter, +.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter, +.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, +.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { + stroke: #fff; +} +@media (pointer: coarse) { + .ql-bubble.ql-toolbar button:hover:not(.ql-active), + .ql-bubble .ql-toolbar button:hover:not(.ql-active) { + color: #ccc; + } + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill { + fill: #ccc; + } + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, + .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter { + stroke: #ccc; + } +} +.ql-bubble { + box-sizing: border-box; +} +.ql-bubble * { + box-sizing: border-box; +} +.ql-bubble .ql-hidden { + display: none; +} +.ql-bubble .ql-out-bottom, +.ql-bubble .ql-out-top { + visibility: hidden; +} +.ql-bubble .ql-tooltip { + position: absolute; + transform: translateY(10px); +} +.ql-bubble .ql-tooltip a { + cursor: pointer; + text-decoration: none; +} +.ql-bubble .ql-tooltip.ql-flip { + transform: translateY(-10px); +} +.ql-bubble .ql-formats { + display: inline-block; + vertical-align: middle; +} +.ql-bubble .ql-formats:after { + clear: both; + content: ''; + display: table; +} +.ql-bubble .ql-stroke { + fill: none; + stroke: #ccc; + stroke-linecap: round; + stroke-linejoin: round; + stroke-width: 2; +} +.ql-bubble .ql-stroke-miter { + fill: none; + stroke: #ccc; + stroke-miterlimit: 10; + stroke-width: 2; +} +.ql-bubble .ql-fill, +.ql-bubble .ql-stroke.ql-fill { + fill: #ccc; +} +.ql-bubble .ql-empty { + fill: none; +} +.ql-bubble .ql-even { + fill-rule: evenodd; +} +.ql-bubble .ql-thin, +.ql-bubble .ql-stroke.ql-thin { + stroke-width: 1; +} +.ql-bubble .ql-transparent { + opacity: 0.4; +} +.ql-bubble .ql-direction svg:last-child { + display: none; +} +.ql-bubble .ql-direction.ql-active svg:last-child { + display: inline; +} +.ql-bubble .ql-direction.ql-active svg:first-child { + display: none; +} +.ql-bubble .ql-editor h1 { + font-size: 2em; +} +.ql-bubble .ql-editor h2 { + font-size: 1.5em; +} +.ql-bubble .ql-editor h3 { + font-size: 1.17em; +} +.ql-bubble .ql-editor h4 { + font-size: 1em; +} +.ql-bubble .ql-editor h5 { + font-size: 0.83em; +} +.ql-bubble .ql-editor h6 { + font-size: 0.67em; +} +.ql-bubble .ql-editor a { + text-decoration: underline; +} +.ql-bubble .ql-editor blockquote { + border-left: 4px solid #ccc; + margin-bottom: 5px; + margin-top: 5px; + padding-left: 16px; +} +.ql-bubble .ql-editor code, +.ql-bubble .ql-editor pre { + background-color: #f0f0f0; + border-radius: 3px; +} +.ql-bubble .ql-editor pre { + white-space: pre-wrap; + margin-bottom: 5px; + margin-top: 5px; + padding: 5px 10px; +} +.ql-bubble .ql-editor code { + font-size: 85%; + padding: 2px 4px; +} +.ql-bubble .ql-editor pre.ql-syntax { + background-color: #23241f; + color: #f8f8f2; + overflow: visible; +} +.ql-bubble .ql-editor img { + max-width: 100%; +} +.ql-bubble .ql-picker { + color: #ccc; + display: inline-block; + float: left; + font-size: 14px; + font-weight: 500; + height: 24px; + position: relative; + vertical-align: middle; +} +.ql-bubble .ql-picker-label { + cursor: pointer; + display: inline-block; + height: 100%; + padding-left: 8px; + padding-right: 2px; + position: relative; + width: 100%; +} +.ql-bubble .ql-picker-label::before { + display: inline-block; + line-height: 22px; +} +.ql-bubble .ql-picker-options { + background-color: #444; + display: none; + min-width: 100%; + padding: 4px 8px; + position: absolute; + white-space: nowrap; +} +.ql-bubble .ql-picker-options .ql-picker-item { + cursor: pointer; + display: block; + padding-bottom: 5px; + padding-top: 5px; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label { + color: #777; + z-index: 2; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill { + fill: #777; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke { + stroke: #777; +} +.ql-bubble .ql-picker.ql-expanded .ql-picker-options { + display: block; + margin-top: -1px; + top: 100%; + z-index: 1; +} +.ql-bubble .ql-color-picker, +.ql-bubble .ql-icon-picker { + width: 28px; +} +.ql-bubble .ql-color-picker .ql-picker-label, +.ql-bubble .ql-icon-picker .ql-picker-label { + padding: 2px 4px; +} +.ql-bubble .ql-color-picker .ql-picker-label svg, +.ql-bubble .ql-icon-picker .ql-picker-label svg { + right: 4px; +} +.ql-bubble .ql-icon-picker .ql-picker-options { + padding: 4px 0px; +} +.ql-bubble .ql-icon-picker .ql-picker-item { + height: 24px; + width: 24px; + padding: 2px 4px; +} +.ql-bubble .ql-color-picker .ql-picker-options { + padding: 3px 5px; + width: 152px; +} +.ql-bubble .ql-color-picker .ql-picker-item { + border: 1px solid transparent; + float: left; + height: 16px; + margin: 2px; + padding: 0px; + width: 16px; +} +.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg { + position: absolute; + margin-top: -9px; + right: 0; + top: 50%; + width: 18px; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before { + content: attr(data-label); +} +.ql-bubble .ql-picker.ql-header { + width: 98px; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item::before { + content: 'Normal'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + content: 'Heading 1'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + content: 'Heading 2'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + content: 'Heading 3'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + content: 'Heading 4'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + content: 'Heading 5'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + content: 'Heading 6'; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + font-size: 2em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + font-size: 1.5em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + font-size: 1.17em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + font-size: 1em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + font-size: 0.83em; +} +.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + font-size: 0.67em; +} +.ql-bubble .ql-picker.ql-font { + width: 108px; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item::before { + content: 'Sans Serif'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + content: 'Serif'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + content: 'Monospace'; +} +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + font-family: Georgia, Times New Roman, serif; +} +.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + font-family: Monaco, Courier New, monospace; +} +.ql-bubble .ql-picker.ql-size { + width: 98px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item::before { + content: 'Normal'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + content: 'Small'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + content: 'Large'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + content: 'Huge'; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + font-size: 10px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + font-size: 18px; +} +.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + font-size: 32px; +} +.ql-bubble .ql-color-picker.ql-background .ql-picker-item { + background-color: #fff; +} +.ql-bubble .ql-color-picker.ql-color .ql-picker-item { + background-color: #000; +} +.ql-bubble .ql-toolbar .ql-formats { + margin: 8px 12px 8px 0px; +} +.ql-bubble .ql-toolbar .ql-formats:first-child { + margin-left: 12px; +} +.ql-bubble .ql-color-picker svg { + margin: 1px; +} +.ql-bubble .ql-color-picker .ql-picker-item.ql-selected, +.ql-bubble .ql-color-picker .ql-picker-item:hover { + border-color: #fff; +} +.ql-bubble .ql-tooltip { + background-color: #444; + border-radius: 25px; + color: #fff; +} +.ql-bubble .ql-tooltip-arrow { + border-left: 6px solid transparent; + border-right: 6px solid transparent; + content: " "; + display: block; + left: 50%; + margin-left: -6px; + position: absolute; +} +.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow { + border-bottom: 6px solid #444; + top: -6px; +} +.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow { + border-top: 6px solid #444; + bottom: -6px; +} +.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor { + display: block; +} +.ql-bubble .ql-tooltip.ql-editing .ql-formats { + visibility: hidden; +} +.ql-bubble .ql-tooltip-editor { + display: none; +} +.ql-bubble .ql-tooltip-editor input[type=text] { + background: transparent; + border: none; + color: #fff; + font-size: 13px; + height: 100%; + outline: none; + padding: 10px 20px; + position: absolute; + width: 100%; +} +.ql-bubble .ql-tooltip-editor a { + top: 10px; + position: absolute; + right: 20px; +} +.ql-bubble .ql-tooltip-editor a:before { + color: #ccc; + content: "\D7"; + font-size: 16px; + font-weight: bold; +} +.ql-container.ql-bubble:not(.ql-disabled) a { + position: relative; + white-space: nowrap; +} +.ql-container.ql-bubble:not(.ql-disabled) a::before { + background-color: #444; + border-radius: 15px; + top: -5px; + font-size: 12px; + color: #fff; + content: attr(href); + font-weight: normal; + overflow: hidden; + padding: 5px 15px; + text-decoration: none; + z-index: 1; +} +.ql-container.ql-bubble:not(.ql-disabled) a::after { + border-top: 6px solid #444; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + top: 0; + content: " "; + height: 0; + width: 0; +} +.ql-container.ql-bubble:not(.ql-disabled) a::before, +.ql-container.ql-bubble:not(.ql-disabled) a::after { + left: 0; + margin-left: 50%; + position: absolute; + transform: translate(-50%, -100%); + transition: visibility 0s ease 200ms; + visibility: hidden; +} +.ql-container.ql-bubble:not(.ql-disabled) a:hover::before, +.ql-container.ql-bubble:not(.ql-disabled) a:hover::after { + visibility: visible; +} diff --git a/Practica-14.5/src/assets/vendor/quill/quill.core.css b/Practica-14.5/src/assets/vendor/quill/quill.core.css new file mode 100644 index 0000000..dbcfbad --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.core.css @@ -0,0 +1,397 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} diff --git a/Practica-14.5/src/assets/vendor/quill/quill.core.js b/Practica-14.5/src/assets/vendor/quill/quill.core.js new file mode 100644 index 0000000..def3c17 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.core.js @@ -0,0 +1,8594 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Quill"] = factory(); + else + root["Quill"] = factory(); +})(typeof self !== 'undefined' ? self : this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 110); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var container_1 = __webpack_require__(17); +var format_1 = __webpack_require__(18); +var leaf_1 = __webpack_require__(19); +var scroll_1 = __webpack_require__(45); +var inline_1 = __webpack_require__(46); +var block_1 = __webpack_require__(47); +var embed_1 = __webpack_require__(48); +var text_1 = __webpack_require__(49); +var attributor_1 = __webpack_require__(12); +var class_1 = __webpack_require__(32); +var style_1 = __webpack_require__(33); +var store_1 = __webpack_require__(31); +var Registry = __webpack_require__(1); +var Parchment = { + Scope: Registry.Scope, + create: Registry.create, + find: Registry.find, + query: Registry.query, + Registro: Registry.Registro, + Container: container_1.default, + Format: format_1.default, + Leaf: leaf_1.default, + Embed: embed_1.default, + Scroll: scroll_1.default, + Block: block_1.default, + Inline: inline_1.default, + Text: text_1.default, + Attributor: { + Attribute: attributor_1.default, + Class: class_1.default, + Style: style_1.default, + Store: store_1.default, + }, +}; +exports.default = Parchment; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var ParchmentError = /** @class */ (function (_super) { + __extends(ParchmentError, _super); + function ParchmentError(message) { + var _this = this; + message = '[Parchment] ' + message; + _this = _super.call(this, message) || this; + _this.message = message; + _this.name = _this.constructor.name; + return _this; + } + return ParchmentError; +}(Error)); +exports.ParchmentError = ParchmentError; +var attributes = {}; +var classes = {}; +var tags = {}; +var types = {}; +exports.DATA_KEY = '__blot'; +var Scope; +(function (Scope) { + Scope[Scope["TYPE"] = 3] = "TYPE"; + Scope[Scope["LEVEL"] = 12] = "LEVEL"; + Scope[Scope["ATTRIBUTE"] = 13] = "ATTRIBUTE"; + Scope[Scope["BLOT"] = 14] = "BLOT"; + Scope[Scope["INLINE"] = 7] = "INLINE"; + Scope[Scope["BLOCK"] = 11] = "BLOCK"; + Scope[Scope["BLOCK_BLOT"] = 10] = "BLOCK_BLOT"; + Scope[Scope["INLINE_BLOT"] = 6] = "INLINE_BLOT"; + Scope[Scope["BLOCK_ATTRIBUTE"] = 9] = "BLOCK_ATTRIBUTE"; + Scope[Scope["INLINE_ATTRIBUTE"] = 5] = "INLINE_ATTRIBUTE"; + Scope[Scope["ANY"] = 15] = "ANY"; +})(Scope = exports.Scope || (exports.Scope = {})); +function create(input, value) { + var match = query(input); + if (match == null) { + throw new ParchmentError("Unable to create " + input + " blot"); + } + var BlotClass = match; + var node = + // @ts-ignore + input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value); + return new BlotClass(node, value); +} +exports.create = create; +function find(node, bubble) { + if (bubble === void 0) { bubble = false; } + if (node == null) + return null; + // @ts-ignore + if (node[exports.DATA_KEY] != null) + return node[exports.DATA_KEY].blot; + if (bubble) + return find(node.parentNode, bubble); + return null; +} +exports.find = find; +function query(query, scope) { + if (scope === void 0) { scope = Scope.ANY; } + var match; + if (typeof query === 'string') { + match = types[query] || attributes[query]; + // @ts-ignore + } + else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) { + match = types['text']; + } + else if (typeof query === 'number') { + if (query & Scope.LEVEL & Scope.BLOCK) { + match = types['block']; + } + else if (query & Scope.LEVEL & Scope.INLINE) { + match = types['inline']; + } + } + else if (query instanceof HTMLElement) { + var names = (query.getAttribute('class') || '').split(/\s+/); + for (var i in names) { + match = classes[names[i]]; + if (match) + break; + } + match = match || tags[query.tagName]; + } + if (match == null) + return null; + // @ts-ignore + if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope) + return match; + return null; +} +exports.query = query; +function Registro() { + var Definitions = []; + for (var _i = 0; _i < arguments.length; _i++) { + Definitions[_i] = arguments[_i]; + } + if (Definitions.length > 1) { + return Definitions.map(function (d) { + return Registro(d); + }); + } + var Definition = Definitions[0]; + if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') { + throw new ParchmentError('Invalid definition'); + } + else if (Definition.blotName === 'abstract') { + throw new ParchmentError('Cannot Registro abstract class'); + } + types[Definition.blotName || Definition.attrName] = Definition; + if (typeof Definition.keyName === 'string') { + attributes[Definition.keyName] = Definition; + } + else { + if (Definition.className != null) { + classes[Definition.className] = Definition; + } + if (Definition.tagName != null) { + if (Array.isArray(Definition.tagName)) { + Definition.tagName = Definition.tagName.map(function (tagName) { + return tagName.toUpperCase(); + }); + } + else { + Definition.tagName = Definition.tagName.toUpperCase(); + } + var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName]; + tagNames.forEach(function (tag) { + if (tags[tag] == null || Definition.className == null) { + tags[tag] = Definition; + } + }); + } + } + return Definition; +} +exports.Registro = Registro; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +var diff = __webpack_require__(51); +var equal = __webpack_require__(11); +var extend = __webpack_require__(3); +var op = __webpack_require__(20); + + +var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff() + + +var Delta = function (ops) { + // Assume we are given a well formed ops + if (Array.isArray(ops)) { + this.ops = ops; + } else if (ops != null && Array.isArray(ops.ops)) { + this.ops = ops.ops; + } else { + this.ops = []; + } +}; + + +Delta.prototype.insert = function (text, attributes) { + var newOp = {}; + if (text.length === 0) return this; + newOp.insert = text; + if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) { + newOp.attributes = attributes; + } + return this.push(newOp); +}; + +Delta.prototype['delete'] = function (length) { + if (length <= 0) return this; + return this.push({ 'delete': length }); +}; + +Delta.prototype.retain = function (length, attributes) { + if (length <= 0) return this; + var newOp = { retain: length }; + if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) { + newOp.attributes = attributes; + } + return this.push(newOp); +}; + +Delta.prototype.push = function (newOp) { + var index = this.ops.length; + var lastOp = this.ops[index - 1]; + newOp = extend(true, {}, newOp); + if (typeof lastOp === 'object') { + if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') { + this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] }; + return this; + } + // Since it does not matter if we insert before or after deleting at the same index, + // always prefer to insert first + if (typeof lastOp['delete'] === 'number' && newOp.insert != null) { + index -= 1; + lastOp = this.ops[index - 1]; + if (typeof lastOp !== 'object') { + this.ops.unshift(newOp); + return this; + } + } + if (equal(newOp.attributes, lastOp.attributes)) { + if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') { + this.ops[index - 1] = { insert: lastOp.insert + newOp.insert }; + if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes + return this; + } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') { + this.ops[index - 1] = { retain: lastOp.retain + newOp.retain }; + if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes + return this; + } + } + } + if (index === this.ops.length) { + this.ops.push(newOp); + } else { + this.ops.splice(index, 0, newOp); + } + return this; +}; + +Delta.prototype.chop = function () { + var lastOp = this.ops[this.ops.length - 1]; + if (lastOp && lastOp.retain && !lastOp.attributes) { + this.ops.pop(); + } + return this; +}; + +Delta.prototype.filter = function (predicate) { + return this.ops.filter(predicate); +}; + +Delta.prototype.forEach = function (predicate) { + this.ops.forEach(predicate); +}; + +Delta.prototype.map = function (predicate) { + return this.ops.map(predicate); +}; + +Delta.prototype.partition = function (predicate) { + var passed = [], failed = []; + this.forEach(function(op) { + var target = predicate(op) ? passed : failed; + target.push(op); + }); + return [passed, failed]; +}; + +Delta.prototype.reduce = function (predicate, initial) { + return this.ops.reduce(predicate, initial); +}; + +Delta.prototype.changeLength = function () { + return this.reduce(function (length, elem) { + if (elem.insert) { + return length + op.length(elem); + } else if (elem.delete) { + return length - elem.delete; + } + return length; + }, 0); +}; + +Delta.prototype.length = function () { + return this.reduce(function (length, elem) { + return length + op.length(elem); + }, 0); +}; + +Delta.prototype.slice = function (start, end) { + start = start || 0; + if (typeof end !== 'number') end = Infinity; + var ops = []; + var iter = op.iterator(this.ops); + var index = 0; + while (index < end && iter.hasNext()) { + var nextOp; + if (index < start) { + nextOp = iter.next(start - index); + } else { + nextOp = iter.next(end - index); + ops.push(nextOp); + } + index += op.length(nextOp); + } + return new Delta(ops); +}; + + +Delta.prototype.compose = function (other) { + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + var ops = []; + var firstOther = otherIter.peek(); + if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) { + var firstLeft = firstOther.retain; + while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) { + firstLeft -= thisIter.peekLength(); + ops.push(thisIter.next()); + } + if (firstOther.retain - firstLeft > 0) { + otherIter.next(firstOther.retain - firstLeft); + } + } + var delta = new Delta(ops); + while (thisIter.hasNext() || otherIter.hasNext()) { + if (otherIter.peekType() === 'insert') { + delta.push(otherIter.next()); + } else if (thisIter.peekType() === 'delete') { + delta.push(thisIter.next()); + } else { + var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); + var thisOp = thisIter.next(length); + var otherOp = otherIter.next(length); + if (typeof otherOp.retain === 'number') { + var newOp = {}; + if (typeof thisOp.retain === 'number') { + newOp.retain = length; + } else { + newOp.insert = thisOp.insert; + } + // Preserve null when composing with a retain, otherwise remove it for inserts + var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number'); + if (attributes) newOp.attributes = attributes; + delta.push(newOp); + + // Optimization if rest of other is just retain + if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) { + var rest = new Delta(thisIter.rest()); + return delta.concat(rest).chop(); + } + + // Other op should be delete, we could be an insert or retain + // Insert + delete cancels out + } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') { + delta.push(otherOp); + } + } + } + return delta.chop(); +}; + +Delta.prototype.concat = function (other) { + var delta = new Delta(this.ops.slice()); + if (other.ops.length > 0) { + delta.push(other.ops[0]); + delta.ops = delta.ops.concat(other.ops.slice(1)); + } + return delta; +}; + +Delta.prototype.diff = function (other, index) { + if (this.ops === other.ops) { + return new Delta(); + } + var strings = [this, other].map(function (delta) { + return delta.map(function (op) { + if (op.insert != null) { + return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER; + } + var prep = (delta === other) ? 'on' : 'with'; + throw new Error('diff() called ' + prep + ' non-document'); + }).join(''); + }); + var delta = new Delta(); + var diffResult = diff(strings[0], strings[1], index); + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + diffResult.forEach(function (component) { + var length = component[1].length; + while (length > 0) { + var opLength = 0; + switch (component[0]) { + case diff.INSERT: + opLength = Math.min(otherIter.peekLength(), length); + delta.push(otherIter.next(opLength)); + break; + case diff.DELETE: + opLength = Math.min(length, thisIter.peekLength()); + thisIter.next(opLength); + delta['delete'](opLength); + break; + case diff.EQUAL: + opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length); + var thisOp = thisIter.next(opLength); + var otherOp = otherIter.next(opLength); + if (equal(thisOp.insert, otherOp.insert)) { + delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes)); + } else { + delta.push(otherOp)['delete'](opLength); + } + break; + } + length -= opLength; + } + }); + return delta.chop(); +}; + +Delta.prototype.eachLine = function (predicate, newline) { + newline = newline || '\n'; + var iter = op.iterator(this.ops); + var line = new Delta(); + var i = 0; + while (iter.hasNext()) { + if (iter.peekType() !== 'insert') return; + var thisOp = iter.peek(); + var start = op.length(thisOp) - iter.peekLength(); + var index = typeof thisOp.insert === 'string' ? + thisOp.insert.indexOf(newline, start) - start : -1; + if (index < 0) { + line.push(iter.next()); + } else if (index > 0) { + line.push(iter.next(index)); + } else { + if (predicate(line, iter.next(1).attributes || {}, i) === false) { + return; + } + i += 1; + line = new Delta(); + } + } + if (line.length() > 0) { + predicate(line, {}, i); + } +}; + +Delta.prototype.transform = function (other, priority) { + priority = !!priority; + if (typeof other === 'number') { + return this.transformPosition(other, priority); + } + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + var delta = new Delta(); + while (thisIter.hasNext() || otherIter.hasNext()) { + if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) { + delta.retain(op.length(thisIter.next())); + } else if (otherIter.peekType() === 'insert') { + delta.push(otherIter.next()); + } else { + var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); + var thisOp = thisIter.next(length); + var otherOp = otherIter.next(length); + if (thisOp['delete']) { + // Our delete either makes their delete redundant or removes their retain + continue; + } else if (otherOp['delete']) { + delta.push(otherOp); + } else { + // We retain either their retain or insert + delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority)); + } + } + } + return delta.chop(); +}; + +Delta.prototype.transformPosition = function (index, priority) { + priority = !!priority; + var thisIter = op.iterator(this.ops); + var offset = 0; + while (thisIter.hasNext() && offset <= index) { + var length = thisIter.peekLength(); + var nextType = thisIter.peekType(); + thisIter.next(); + if (nextType === 'delete') { + index -= Math.min(length, index - offset); + continue; + } else if (nextType === 'insert' && (offset < index || !priority)) { + index += length; + } + offset += length; + } + return index; +}; + + +module.exports = Delta; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +'use strict'; + +var hasOwn = Object.prototype.hasOwnProperty; +var toStr = Object.prototype.toString; +var defineProperty = Object.defineProperty; +var gOPD = Object.getOwnPropertyDescriptor; + +var isArray = function isArray(arr) { + if (typeof Array.isArray === 'function') { + return Array.isArray(arr); + } + + return toStr.call(arr) === '[object Array]'; +}; + +var isPlainObject = function isPlainObject(obj) { + if (!obj || toStr.call(obj) !== '[object Object]') { + return false; + } + + var hasOwnConstructor = hasOwn.call(obj, 'constructor'); + var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); + // Not own constructor property must be Object + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + var key; + for (key in obj) { /**/ } + + return typeof key === 'undefined' || hasOwn.call(obj, key); +}; + +// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target +var setProperty = function setProperty(target, options) { + if (defineProperty && options.name === '__proto__') { + defineProperty(target, options.name, { + enumerable: true, + configurable: true, + value: options.newValue, + writable: true + }); + } else { + target[options.name] = options.newValue; + } +}; + +// Return undefined instead of __proto__ if '__proto__' is not an own property +var getProperty = function getProperty(obj, name) { + if (name === '__proto__') { + if (!hasOwn.call(obj, name)) { + return void 0; + } else if (gOPD) { + // In early versions of node, obj['__proto__'] is buggy when obj has + // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. + return gOPD(obj, name).value; + } + } + + return obj[name]; +}; + +module.exports = function extend() { + var options, name, src, copy, copyIsArray, clone; + var target = arguments[0]; + var i = 1; + var length = arguments.length; + var deep = false; + + // Handle a deep copy situation + if (typeof target === 'boolean') { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { + target = {}; + } + + for (; i < length; ++i) { + options = arguments[i]; + // Only deal with non-null/undefined values + if (options != null) { + // Extend the base object + for (name in options) { + src = getProperty(target, name); + copy = getProperty(options, name); + + // Prevent never-ending loop + if (target !== copy) { + // Recurse if we're merging plain objects or arrays + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && isArray(src) ? src : []; + } else { + clone = src && isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); + + // Don't bring in undefined values + } else if (typeof copy !== 'undefined') { + setProperty(target, { name: name, newValue: copy }); + } + } + } + } + } + + // Return the modified object + return target; +}; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.BlockEmbed = exports.bubbleFormats = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var NEWLINE_LENGTH = 1; + +var BlockEmbed = function (_Parchment$Embed) { + _inherits(BlockEmbed, _Parchment$Embed); + + function BlockEmbed() { + _classCallCheck(this, BlockEmbed); + + return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments)); + } + + _createClass(BlockEmbed, [{ + key: 'attach', + value: function attach() { + _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this); + this.attributes = new _parchment2.default.Attributor.Store(this.domNode); + } + }, { + key: 'delta', + value: function delta() { + return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values())); + } + }, { + key: 'format', + value: function format(name, value) { + var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE); + if (attribute != null) { + this.attributes.attribute(attribute, value); + } + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + this.format(name, value); + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (typeof value === 'string' && value.endsWith('\n')) { + var block = _parchment2.default.create(Block.blotName); + this.parent.insertBefore(block, index === 0 ? this : this.next); + block.insertAt(0, value.slice(0, -1)); + } else { + _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def); + } + } + }]); + + return BlockEmbed; +}(_parchment2.default.Embed); + +BlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT; +// It is important for cursor behavior BlockEmbeds use tags that are block level elements + + +var Block = function (_Parchment$Block) { + _inherits(Block, _Parchment$Block); + + function Block(domNode) { + _classCallCheck(this, Block); + + var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode)); + + _this2.cache = {}; + return _this2; + } + + _createClass(Block, [{ + key: 'delta', + value: function delta() { + if (this.cache.delta == null) { + this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) { + if (leaf.length() === 0) { + return delta; + } else { + return delta.insert(leaf.value(), bubbleFormats(leaf)); + } + }, new _quillDelta2.default()).insert('\n', bubbleFormats(this)); + } + return this.cache.delta; + } + }, { + key: 'deleteAt', + value: function deleteAt(index, length) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length); + this.cache = {}; + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (length <= 0) return; + if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { + if (index + length === this.length()) { + this.format(name, value); + } + } else { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value); + } + this.cache = {}; + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def); + if (value.length === 0) return; + var lines = value.split('\n'); + var text = lines.shift(); + if (text.length > 0) { + if (index < this.length() - 1 || this.children.tail == null) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text); + } else { + this.children.tail.insertAt(this.children.tail.length(), text); + } + this.cache = {}; + } + var block = this; + lines.reduce(function (index, line) { + block = block.split(index, true); + block.insertAt(0, line); + return line.length; + }, index + text.length); + } + }, { + key: 'insertBefore', + value: function insertBefore(blot, ref) { + var head = this.children.head; + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref); + if (head instanceof _break2.default) { + head.remove(); + } + this.cache = {}; + } + }, { + key: 'length', + value: function length() { + if (this.cache.length == null) { + this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH; + } + return this.cache.length; + } + }, { + key: 'moveChildren', + value: function moveChildren(target, ref) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref); + this.cache = {}; + } + }, { + key: 'optimize', + value: function optimize(context) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context); + this.cache = {}; + } + }, { + key: 'path', + value: function path(index) { + return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true); + } + }, { + key: 'removeChild', + value: function removeChild(child) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child); + this.cache = {}; + } + }, { + key: 'split', + value: function split(index) { + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) { + var clone = this.clone(); + if (index === 0) { + this.parent.insertBefore(clone, this); + return this; + } else { + this.parent.insertBefore(clone, this.next); + return clone; + } + } else { + var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force); + this.cache = {}; + return next; + } + } + }]); + + return Block; +}(_parchment2.default.Block); + +Block.blotName = 'block'; +Block.tagName = 'P'; +Block.defaultChild = 'break'; +Block.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default]; + +function bubbleFormats(blot) { + var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (blot == null) return formats; + if (typeof blot.formats === 'function') { + formats = (0, _extend2.default)(formats, blot.formats()); + } + if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) { + return formats; + } + return bubbleFormats(blot.parent, formats); +} + +exports.bubbleFormats = bubbleFormats; +exports.BlockEmbed = BlockEmbed; +exports.default = Block; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.overload = exports.expandConfig = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +__webpack_require__(50); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _editor = __webpack_require__(14); + +var _editor2 = _interopRequireDefault(_editor); + +var _emitter3 = __webpack_require__(8); + +var _emitter4 = _interopRequireDefault(_emitter3); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _selection = __webpack_require__(15); + +var _selection2 = _interopRequireDefault(_selection); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _theme = __webpack_require__(34); + +var _theme2 = _interopRequireDefault(_theme); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var debug = (0, _logger2.default)('quill'); + +var Quill = function () { + _createClass(Quill, null, [{ + key: 'debug', + value: function debug(limit) { + if (limit === true) { + limit = 'log'; + } + _logger2.default.level(limit); + } + }, { + key: 'find', + value: function find(node) { + return node.__quill || _parchment2.default.find(node); + } + }, { + key: 'import', + value: function _import(name) { + if (this.imports[name] == null) { + debug.error('Cannot import ' + name + '. Are you sure it was Registroed?'); + } + return this.imports[name]; + } + }, { + key: 'Registro', + value: function Registro(path, target) { + var _this = this; + + var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (typeof path !== 'string') { + var name = path.attrName || path.blotName; + if (typeof name === 'string') { + // Registro(Blot | Attributor, overwrite) + this.Registro('formats/' + name, path, target); + } else { + Object.keys(path).forEach(function (key) { + _this.Registro(key, path[key], target); + }); + } + } else { + if (this.imports[path] != null && !overwrite) { + debug.warn('Overwriting ' + path + ' with', target); + } + this.imports[path] = target; + if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') { + _parchment2.default.Registro(target); + } else if (path.startsWith('modules') && typeof target.Registro === 'function') { + target.Registro(); + } + } + } + }]); + + function Quill(container) { + var _this2 = this; + + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Quill); + + this.options = expandConfig(container, options); + this.container = this.options.container; + if (this.container == null) { + return debug.error('Invalid Quill container', container); + } + if (this.options.debug) { + Quill.debug(this.options.debug); + } + var html = this.container.innerHTML.trim(); + this.container.classList.add('ql-container'); + this.container.innerHTML = ''; + this.container.__quill = this; + this.root = this.addContainer('ql-editor'); + this.root.classList.add('ql-blank'); + this.root.setAttribute('data-gramm', false); + this.scrollingContainer = this.options.scrollingContainer || this.root; + this.emitter = new _emitter4.default(); + this.scroll = _parchment2.default.create(this.root, { + emitter: this.emitter, + whitelist: this.options.formats + }); + this.editor = new _editor2.default(this.scroll); + this.selection = new _selection2.default(this.scroll, this.emitter); + this.theme = new this.options.theme(this, this.options); + this.keyboard = this.theme.addModule('keyboard'); + this.clipboard = this.theme.addModule('clipboard'); + this.history = this.theme.addModule('history'); + this.theme.init(); + this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) { + if (type === _emitter4.default.events.TEXT_CHANGE) { + _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank()); + } + }); + this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) { + var range = _this2.selection.lastRange; + var index = range && range.length === 0 ? range.index : undefined; + modify.call(_this2, function () { + return _this2.editor.update(null, mutations, index); + }, source); + }); + var contents = this.clipboard.convert('
        ' + html + '


        '); + this.setContents(contents); + this.history.clear(); + if (this.options.placeholder) { + this.root.setAttribute('data-placeholder', this.options.placeholder); + } + if (this.options.readOnly) { + this.disable(); + } + } + + _createClass(Quill, [{ + key: 'addContainer', + value: function addContainer(container) { + var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (typeof container === 'string') { + var className = container; + container = document.createElement('div'); + container.classList.add(className); + } + this.container.insertBefore(container, refNode); + return container; + } + }, { + key: 'blur', + value: function blur() { + this.selection.setRange(null); + } + }, { + key: 'deleteText', + value: function deleteText(index, length, source) { + var _this3 = this; + + var _overload = overload(index, length, source); + + var _overload2 = _slicedToArray(_overload, 4); + + index = _overload2[0]; + length = _overload2[1]; + source = _overload2[3]; + + return modify.call(this, function () { + return _this3.editor.deleteText(index, length); + }, source, index, -1 * length); + } + }, { + key: 'disable', + value: function disable() { + this.enable(false); + } + }, { + key: 'enable', + value: function enable() { + var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + this.scroll.enable(enabled); + this.container.classList.toggle('ql-disabled', !enabled); + } + }, { + key: 'focus', + value: function focus() { + var scrollTop = this.scrollingContainer.scrollTop; + this.selection.focus(); + this.scrollingContainer.scrollTop = scrollTop; + this.scrollIntoView(); + } + }, { + key: 'format', + value: function format(name, value) { + var _this4 = this; + + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; + + return modify.call(this, function () { + var range = _this4.getSelection(true); + var change = new _quillDelta2.default(); + if (range == null) { + return change; + } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { + change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value)); + } else if (range.length === 0) { + _this4.selection.format(name, value); + return change; + } else { + change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value)); + } + _this4.setSelection(range, _emitter4.default.sources.SILENT); + return change; + }, source); + } + }, { + key: 'formatLine', + value: function formatLine(index, length, name, value, source) { + var _this5 = this; + + var formats = void 0; + + var _overload3 = overload(index, length, name, value, source); + + var _overload4 = _slicedToArray(_overload3, 4); + + index = _overload4[0]; + length = _overload4[1]; + formats = _overload4[2]; + source = _overload4[3]; + + return modify.call(this, function () { + return _this5.editor.formatLine(index, length, formats); + }, source, index, 0); + } + }, { + key: 'formatText', + value: function formatText(index, length, name, value, source) { + var _this6 = this; + + var formats = void 0; + + var _overload5 = overload(index, length, name, value, source); + + var _overload6 = _slicedToArray(_overload5, 4); + + index = _overload6[0]; + length = _overload6[1]; + formats = _overload6[2]; + source = _overload6[3]; + + return modify.call(this, function () { + return _this6.editor.formatText(index, length, formats); + }, source, index, 0); + } + }, { + key: 'getBounds', + value: function getBounds(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var bounds = void 0; + if (typeof index === 'number') { + bounds = this.selection.getBounds(index, length); + } else { + bounds = this.selection.getBounds(index.index, index.length); + } + var containerBounds = this.container.getBoundingClientRect(); + return { + bottom: bounds.bottom - containerBounds.top, + height: bounds.height, + left: bounds.left - containerBounds.left, + right: bounds.right - containerBounds.left, + top: bounds.top - containerBounds.top, + width: bounds.width + }; + } + }, { + key: 'getContents', + value: function getContents() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; + + var _overload7 = overload(index, length); + + var _overload8 = _slicedToArray(_overload7, 2); + + index = _overload8[0]; + length = _overload8[1]; + + return this.editor.getContents(index, length); + } + }, { + key: 'getFormat', + value: function getFormat() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true); + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + if (typeof index === 'number') { + return this.editor.getFormat(index, length); + } else { + return this.editor.getFormat(index.index, index.length); + } + } + }, { + key: 'getIndex', + value: function getIndex(blot) { + return blot.offset(this.scroll); + } + }, { + key: 'getLength', + value: function getLength() { + return this.scroll.length(); + } + }, { + key: 'getLeaf', + value: function getLeaf(index) { + return this.scroll.leaf(index); + } + }, { + key: 'getLine', + value: function getLine(index) { + return this.scroll.line(index); + } + }, { + key: 'getLines', + value: function getLines() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; + + if (typeof index !== 'number') { + return this.scroll.lines(index.index, index.length); + } else { + return this.scroll.lines(index, length); + } + } + }, { + key: 'getModule', + value: function getModule(name) { + return this.theme.modules[name]; + } + }, { + key: 'getSelection', + value: function getSelection() { + var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (focus) this.focus(); + this.update(); // Make sure we access getRange with editor in consistent state + return this.selection.getRange()[0]; + } + }, { + key: 'getText', + value: function getText() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; + + var _overload9 = overload(index, length); + + var _overload10 = _slicedToArray(_overload9, 2); + + index = _overload10[0]; + length = _overload10[1]; + + return this.editor.getText(index, length); + } + }, { + key: 'hasFocus', + value: function hasFocus() { + return this.selection.hasFocus(); + } + }, { + key: 'insertEmbed', + value: function insertEmbed(index, embed, value) { + var _this7 = this; + + var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API; + + return modify.call(this, function () { + return _this7.editor.insertEmbed(index, embed, value); + }, source, index); + } + }, { + key: 'insertText', + value: function insertText(index, text, name, value, source) { + var _this8 = this; + + var formats = void 0; + + var _overload11 = overload(index, 0, name, value, source); + + var _overload12 = _slicedToArray(_overload11, 4); + + index = _overload12[0]; + formats = _overload12[2]; + source = _overload12[3]; + + return modify.call(this, function () { + return _this8.editor.insertText(index, text, formats); + }, source, index, text.length); + } + }, { + key: 'isEnabled', + value: function isEnabled() { + return !this.container.classList.contains('ql-disabled'); + } + }, { + key: 'off', + value: function off() { + return this.emitter.off.apply(this.emitter, arguments); + } + }, { + key: 'on', + value: function on() { + return this.emitter.on.apply(this.emitter, arguments); + } + }, { + key: 'once', + value: function once() { + return this.emitter.once.apply(this.emitter, arguments); + } + }, { + key: 'pasteHTML', + value: function pasteHTML(index, html, source) { + this.clipboard.dangerouslyPasteHTML(index, html, source); + } + }, { + key: 'removeFormat', + value: function removeFormat(index, length, source) { + var _this9 = this; + + var _overload13 = overload(index, length, source); + + var _overload14 = _slicedToArray(_overload13, 4); + + index = _overload14[0]; + length = _overload14[1]; + source = _overload14[3]; + + return modify.call(this, function () { + return _this9.editor.removeFormat(index, length); + }, source, index); + } + }, { + key: 'scrollIntoView', + value: function scrollIntoView() { + this.selection.scrollIntoView(this.scrollingContainer); + } + }, { + key: 'setContents', + value: function setContents(delta) { + var _this10 = this; + + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + return modify.call(this, function () { + delta = new _quillDelta2.default(delta); + var length = _this10.getLength(); + var deleted = _this10.editor.deleteText(0, length); + var applied = _this10.editor.applyDelta(delta); + var lastOp = applied.ops[applied.ops.length - 1]; + if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\n') { + _this10.editor.deleteText(_this10.getLength() - 1, 1); + applied.delete(1); + } + var ret = deleted.compose(applied); + return ret; + }, source); + } + }, { + key: 'setSelection', + value: function setSelection(index, length, source) { + if (index == null) { + this.selection.setRange(null, length || Quill.sources.API); + } else { + var _overload15 = overload(index, length, source); + + var _overload16 = _slicedToArray(_overload15, 4); + + index = _overload16[0]; + length = _overload16[1]; + source = _overload16[3]; + + this.selection.setRange(new _selection.Range(index, length), source); + if (source !== _emitter4.default.sources.SILENT) { + this.selection.scrollIntoView(this.scrollingContainer); + } + } + } + }, { + key: 'setText', + value: function setText(text) { + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + var delta = new _quillDelta2.default().insert(text); + return this.setContents(delta, source); + } + }, { + key: 'update', + value: function update() { + var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; + + var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes + this.selection.update(source); + return change; + } + }, { + key: 'updateContents', + value: function updateContents(delta) { + var _this11 = this; + + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + return modify.call(this, function () { + delta = new _quillDelta2.default(delta); + return _this11.editor.applyDelta(delta, source); + }, source, true); + } + }]); + + return Quill; +}(); + +Quill.DEFAULTS = { + bounds: null, + formats: null, + modules: {}, + placeholder: '', + readOnly: false, + scrollingContainer: null, + strict: true, + theme: 'default' +}; +Quill.events = _emitter4.default.events; +Quill.sources = _emitter4.default.sources; +// eslint-disable-next-line no-undef +Quill.version = false ? 'dev' : "1.3.7"; + +Quill.imports = { + 'delta': _quillDelta2.default, + 'parchment': _parchment2.default, + 'core/module': _module2.default, + 'core/theme': _theme2.default +}; + +function expandConfig(container, userConfig) { + userConfig = (0, _extend2.default)(true, { + container: container, + modules: { + clipboard: true, + keyboard: true, + history: true + } + }, userConfig); + if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) { + userConfig.theme = _theme2.default; + } else { + userConfig.theme = Quill.import('themes/' + userConfig.theme); + if (userConfig.theme == null) { + throw new Error('Invalid theme ' + userConfig.theme + '. Did you Registro it?'); + } + } + var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS); + [themeConfig, userConfig].forEach(function (config) { + config.modules = config.modules || {}; + Object.keys(config.modules).forEach(function (module) { + if (config.modules[module] === true) { + config.modules[module] = {}; + } + }); + }); + var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules)); + var moduleConfig = moduleNames.reduce(function (config, name) { + var moduleClass = Quill.import('modules/' + name); + if (moduleClass == null) { + debug.error('Cannot load ' + name + ' module. Are you sure you Registroed it?'); + } else { + config[name] = moduleClass.DEFAULTS || {}; + } + return config; + }, {}); + // Special case toolbar shorthand + if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) { + userConfig.modules.toolbar = { + container: userConfig.modules.toolbar + }; + } + userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig); + ['bounds', 'container', 'scrollingContainer'].forEach(function (key) { + if (typeof userConfig[key] === 'string') { + userConfig[key] = document.querySelector(userConfig[key]); + } + }); + userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) { + if (userConfig.modules[name]) { + config[name] = userConfig.modules[name]; + } + return config; + }, {}); + return userConfig; +} + +// Handle selection preservation and TEXT_CHANGE emission +// common to modification APIs +function modify(modifier, source, index, shift) { + if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) { + return new _quillDelta2.default(); + } + var range = index == null ? null : this.getSelection(); + var oldDelta = this.editor.delta; + var change = modifier(); + if (range != null) { + if (index === true) index = range.index; + if (shift == null) { + range = shiftRange(range, change, source); + } else if (shift !== 0) { + range = shiftRange(range, index, shift, source); + } + this.setSelection(range, _emitter4.default.sources.SILENT); + } + if (change.length() > 0) { + var _emitter; + + var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source]; + (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); + if (source !== _emitter4.default.sources.SILENT) { + var _emitter2; + + (_emitter2 = this.emitter).emit.apply(_emitter2, args); + } + } + return change; +} + +function overload(index, length, name, value, source) { + var formats = {}; + if (typeof index.index === 'number' && typeof index.length === 'number') { + // Allow for throwaway end (used by insertText/insertEmbed) + if (typeof length !== 'number') { + source = value, value = name, name = length, length = index.length, index = index.index; + } else { + length = index.length, index = index.index; + } + } else if (typeof length !== 'number') { + source = value, value = name, name = length, length = 0; + } + // Handle format being object, two format name/value strings or excluded + if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { + formats = name; + source = value; + } else if (typeof name === 'string') { + if (value != null) { + formats[name] = value; + } else { + source = name; + } + } + // Handle optional source + source = source || _emitter4.default.sources.API; + return [index, length, formats, source]; +} + +function shiftRange(range, index, length, source) { + if (range == null) return null; + var start = void 0, + end = void 0; + if (index instanceof _quillDelta2.default) { + var _map = [range.index, range.index + range.length].map(function (pos) { + return index.transformPosition(pos, source !== _emitter4.default.sources.USER); + }); + + var _map2 = _slicedToArray(_map, 2); + + start = _map2[0]; + end = _map2[1]; + } else { + var _map3 = [range.index, range.index + range.length].map(function (pos) { + if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos; + if (length >= 0) { + return pos + length; + } else { + return Math.max(index, pos + length); + } + }); + + var _map4 = _slicedToArray(_map3, 2); + + start = _map4[0]; + end = _map4[1]; + } + return new _selection.Range(start, end - start); +} + +exports.expandConfig = expandConfig; +exports.overload = overload; +exports.default = Quill; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Inline = function (_Parchment$Inline) { + _inherits(Inline, _Parchment$Inline); + + function Inline() { + _classCallCheck(this, Inline); + + return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments)); + } + + _createClass(Inline, [{ + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) { + var blot = this.isolate(index, length); + if (value) { + blot.wrap(name, value); + } + } else { + _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value); + } + } + }, { + key: 'optimize', + value: function optimize(context) { + _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context); + if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) { + var parent = this.parent.isolate(this.offset(), this.length()); + this.moveChildren(parent); + parent.wrap(this); + } + } + }], [{ + key: 'compare', + value: function compare(self, other) { + var selfIndex = Inline.order.indexOf(self); + var otherIndex = Inline.order.indexOf(other); + if (selfIndex >= 0 || otherIndex >= 0) { + return selfIndex - otherIndex; + } else if (self === other) { + return 0; + } else if (self < other) { + return -1; + } else { + return 1; + } + } + }]); + + return Inline; +}(_parchment2.default.Inline); + +Inline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default]; +// Lower index means deeper in the DOM tree, since not found (-1) is for embeds +Inline.order = ['cursor', 'inline', // Must be lower +'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher +]; + +exports.default = Inline; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var TextBlot = function (_Parchment$Text) { + _inherits(TextBlot, _Parchment$Text); + + function TextBlot() { + _classCallCheck(this, TextBlot); + + return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments)); + } + + return TextBlot; +}(_parchment2.default.Text); + +exports.default = TextBlot; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _eventemitter = __webpack_require__(54); + +var _eventemitter2 = _interopRequireDefault(_eventemitter); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:events'); + +var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click']; + +EVENTS.forEach(function (eventName) { + document.addEventListener(eventName, function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) { + // TODO use WeakMap + if (node.__quill && node.__quill.emitter) { + var _node$__quill$emitter; + + (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args); + } + }); + }); +}); + +var Emitter = function (_EventEmitter) { + _inherits(Emitter, _EventEmitter); + + function Emitter() { + _classCallCheck(this, Emitter); + + var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this)); + + _this.listeners = {}; + _this.on('error', debug.error); + return _this; + } + + _createClass(Emitter, [{ + key: 'emit', + value: function emit() { + debug.log.apply(debug, arguments); + _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments); + } + }, { + key: 'handleDOM', + value: function handleDOM(event) { + for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + (this.listeners[event.type] || []).forEach(function (_ref) { + var node = _ref.node, + handler = _ref.handler; + + if (event.target === node || node.contains(event.target)) { + handler.apply(undefined, [event].concat(args)); + } + }); + } + }, { + key: 'listenDOM', + value: function listenDOM(eventName, node, handler) { + if (!this.listeners[eventName]) { + this.listeners[eventName] = []; + } + this.listeners[eventName].push({ node: node, handler: handler }); + } + }]); + + return Emitter; +}(_eventemitter2.default); + +Emitter.events = { + EDITOR_CHANGE: 'editor-change', + SCROLL_BEFORE_UPDATE: 'scroll-before-update', + SCROLL_OPTIMIZE: 'scroll-optimize', + SCROLL_UPDATE: 'scroll-update', + SELECTION_CHANGE: 'selection-change', + TEXT_CHANGE: 'text-change' +}; +Emitter.sources = { + API: 'api', + SILENT: 'silent', + USER: 'user' +}; + +exports.default = Emitter; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Module = function Module(quill) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Module); + + this.quill = quill; + this.options = options; +}; + +Module.DEFAULTS = {}; + +exports.default = Module; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var levels = ['error', 'warn', 'log', 'info']; +var level = 'warn'; + +function debug(method) { + if (levels.indexOf(method) <= levels.indexOf(level)) { + var _console; + + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + (_console = console)[method].apply(_console, args); // eslint-disable-line no-console + } +} + +function namespace(ns) { + return levels.reduce(function (logger, method) { + logger[method] = debug.bind(console, method, ns); + return logger; + }, {}); +} + +debug.level = namespace.level = function (newLevel) { + level = newLevel; +}; + +exports.default = namespace; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var pSlice = Array.prototype.slice; +var objectKeys = __webpack_require__(52); +var isArguments = __webpack_require__(53); + +var deepEqual = module.exports = function (actual, expected, opts) { + if (!opts) opts = {}; + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') { + return opts.strict ? actual === expected : actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected, opts); + } +} + +function isUndefinedOrNull(value) { + return value === null || value === undefined; +} + +function isBuffer (x) { + if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false; + if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { + return false; + } + if (x.length > 0 && typeof x[0] !== 'number') return false; + return true; +} + +function objEquiv(a, b, opts) { + var i, key; + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical 'prototype' property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return deepEqual(a, b, opts); + } + if (isBuffer(a)) { + if (!isBuffer(b)) { + return false; + } + if (a.length !== b.length) return false; + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) return false; + } + return true; + } + try { + var ka = objectKeys(a), + kb = objectKeys(b); + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key], opts)) return false; + } + return typeof a === typeof b; +} + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var Registry = __webpack_require__(1); +var Attributor = /** @class */ (function () { + function Attributor(attrName, keyName, options) { + if (options === void 0) { options = {}; } + this.attrName = attrName; + this.keyName = keyName; + var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE; + if (options.scope != null) { + // Ignore type bits, force attribute bit + this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit; + } + else { + this.scope = Registry.Scope.ATTRIBUTE; + } + if (options.whitelist != null) + this.whitelist = options.whitelist; + } + Attributor.keys = function (node) { + return [].map.call(node.attributes, function (item) { + return item.name; + }); + }; + Attributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + node.setAttribute(this.keyName, value); + return true; + }; + Attributor.prototype.canAdd = function (node, value) { + var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE)); + if (match == null) + return false; + if (this.whitelist == null) + return true; + if (typeof value === 'string') { + return this.whitelist.indexOf(value.replace(/["']/g, '')) > -1; + } + else { + return this.whitelist.indexOf(value) > -1; + } + }; + Attributor.prototype.remove = function (node) { + node.removeAttribute(this.keyName); + }; + Attributor.prototype.value = function (node) { + var value = node.getAttribute(this.keyName); + if (this.canAdd(node, value) && value) { + return value; + } + return ''; + }; + return Attributor; +}()); +exports.default = Attributor; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.Code = undefined; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Code = function (_Inline) { + _inherits(Code, _Inline); + + function Code() { + _classCallCheck(this, Code); + + return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments)); + } + + return Code; +}(_inline2.default); + +Code.blotName = 'code'; +Code.tagName = 'CODE'; + +var CodeBlock = function (_Block) { + _inherits(CodeBlock, _Block); + + function CodeBlock() { + _classCallCheck(this, CodeBlock); + + return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments)); + } + + _createClass(CodeBlock, [{ + key: 'delta', + value: function delta() { + var _this3 = this; + + var text = this.domNode.textContent; + if (text.endsWith('\n')) { + // Should always be true + text = text.slice(0, -1); + } + return text.split('\n').reduce(function (delta, frag) { + return delta.insert(frag).insert('\n', _this3.formats()); + }, new _quillDelta2.default()); + } + }, { + key: 'format', + value: function format(name, value) { + if (name === this.statics.blotName && value) return; + + var _descendant = this.descendant(_text2.default, this.length() - 1), + _descendant2 = _slicedToArray(_descendant, 1), + text = _descendant2[0]; + + if (text != null) { + text.deleteAt(text.length() - 1, 1); + } + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value); + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (length === 0) return; + if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) { + return; + } + var nextNewline = this.newlineIndex(index); + if (nextNewline < 0 || nextNewline >= index + length) return; + var prevNewline = this.newlineIndex(index, true) + 1; + var isolateLength = nextNewline - prevNewline + 1; + var blot = this.isolate(prevNewline, isolateLength); + var next = blot.next; + blot.format(name, value); + if (next instanceof CodeBlock) { + next.formatAt(0, index - prevNewline + length - isolateLength, name, value); + } + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null) return; + + var _descendant3 = this.descendant(_text2.default, index), + _descendant4 = _slicedToArray(_descendant3, 2), + text = _descendant4[0], + offset = _descendant4[1]; + + text.insertAt(offset, value); + } + }, { + key: 'length', + value: function length() { + var length = this.domNode.textContent.length; + if (!this.domNode.textContent.endsWith('\n')) { + return length + 1; + } + return length; + } + }, { + key: 'newlineIndex', + value: function newlineIndex(BuscarIndex) { + var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!reverse) { + var offset = this.domNode.textContent.slice(BuscarIndex).indexOf('\n'); + return offset > -1 ? BuscarIndex + offset : -1; + } else { + return this.domNode.textContent.slice(0, BuscarIndex).lastIndexOf('\n'); + } + } + }, { + key: 'optimize', + value: function optimize(context) { + if (!this.domNode.textContent.endsWith('\n')) { + this.appendChild(_parchment2.default.create('text', '\n')); + } + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context); + var next = this.next; + if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) { + next.optimize(context); + next.moveChildren(this); + next.remove(); + } + } + }, { + key: 'replace', + value: function replace(target) { + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target); + [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) { + var blot = _parchment2.default.find(node); + if (blot == null) { + node.parentNode.removeChild(node); + } else if (blot instanceof _parchment2.default.Embed) { + blot.remove(); + } else { + blot.unwrap(); + } + }); + } + }], [{ + key: 'create', + value: function create(value) { + var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value); + domNode.setAttribute('spellcheck', false); + return domNode; + } + }, { + key: 'formats', + value: function formats() { + return true; + } + }]); + + return CodeBlock; +}(_block2.default); + +CodeBlock.blotName = 'code-block'; +CodeBlock.tagName = 'PRE'; +CodeBlock.TAB = ' '; + +exports.Code = Code; +exports.default = CodeBlock; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _op = __webpack_require__(20); + +var _op2 = _interopRequireDefault(_op); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _cursor = __webpack_require__(24); + +var _cursor2 = _interopRequireDefault(_cursor); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ASCII = /^[ -~]*$/; + +var Editor = function () { + function Editor(scroll) { + _classCallCheck(this, Editor); + + this.scroll = scroll; + this.delta = this.getDelta(); + } + + _createClass(Editor, [{ + key: 'applyDelta', + value: function applyDelta(delta) { + var _this = this; + + var consumeNextNewline = false; + this.scroll.update(); + var scrollLength = this.scroll.length(); + this.scroll.batchStart(); + delta = normalizeDelta(delta); + delta.reduce(function (index, op) { + var length = op.retain || op.delete || op.insert.length || 1; + var attributes = op.attributes || {}; + if (op.insert != null) { + if (typeof op.insert === 'string') { + var text = op.insert; + if (text.endsWith('\n') && consumeNextNewline) { + consumeNextNewline = false; + text = text.slice(0, -1); + } + if (index >= scrollLength && !text.endsWith('\n')) { + consumeNextNewline = true; + } + _this.scroll.insertAt(index, text); + + var _scroll$line = _this.scroll.line(index), + _scroll$line2 = _slicedToArray(_scroll$line, 2), + line = _scroll$line2[0], + offset = _scroll$line2[1]; + + var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line)); + if (line instanceof _block2.default) { + var _line$descendant = line.descendant(_parchment2.default.Leaf, offset), + _line$descendant2 = _slicedToArray(_line$descendant, 1), + leaf = _line$descendant2[0]; + + formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf)); + } + attributes = _op2.default.attributes.diff(formats, attributes) || {}; + } else if (_typeof(op.insert) === 'object') { + var key = Object.keys(op.insert)[0]; // There should only be one key + if (key == null) return index; + _this.scroll.insertAt(index, key, op.insert[key]); + } + scrollLength += length; + } + Object.keys(attributes).forEach(function (name) { + _this.scroll.formatAt(index, length, name, attributes[name]); + }); + return index + length; + }, 0); + delta.reduce(function (index, op) { + if (typeof op.delete === 'number') { + _this.scroll.deleteAt(index, op.delete); + return index; + } + return index + (op.retain || op.insert.length || 1); + }, 0); + this.scroll.batchEnd(); + return this.update(delta); + } + }, { + key: 'deleteText', + value: function deleteText(index, length) { + this.scroll.deleteAt(index, length); + return this.update(new _quillDelta2.default().retain(index).delete(length)); + } + }, { + key: 'formatLine', + value: function formatLine(index, length) { + var _this2 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + this.scroll.update(); + Object.keys(formats).forEach(function (format) { + if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return; + var lines = _this2.scroll.lines(index, Math.max(length, 1)); + var lengthRemaining = length; + lines.forEach(function (line) { + var lineLength = line.length(); + if (!(line instanceof _code2.default)) { + line.format(format, formats[format]); + } else { + var codeIndex = index - line.offset(_this2.scroll); + var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1; + line.formatAt(codeIndex, codeLength, format, formats[format]); + } + lengthRemaining -= lineLength; + }); + }); + this.scroll.optimize(); + return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); + } + }, { + key: 'formatText', + value: function formatText(index, length) { + var _this3 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + Object.keys(formats).forEach(function (format) { + _this3.scroll.formatAt(index, length, format, formats[format]); + }); + return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); + } + }, { + key: 'getContents', + value: function getContents(index, length) { + return this.delta.slice(index, index + length); + } + }, { + key: 'getDelta', + value: function getDelta() { + return this.scroll.lines().reduce(function (delta, line) { + return delta.concat(line.delta()); + }, new _quillDelta2.default()); + } + }, { + key: 'getFormat', + value: function getFormat(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var lines = [], + leaves = []; + if (length === 0) { + this.scroll.path(index).forEach(function (path) { + var _path = _slicedToArray(path, 1), + blot = _path[0]; + + if (blot instanceof _block2.default) { + lines.push(blot); + } else if (blot instanceof _parchment2.default.Leaf) { + leaves.push(blot); + } + }); + } else { + lines = this.scroll.lines(index, length); + leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length); + } + var formatsArr = [lines, leaves].map(function (blots) { + if (blots.length === 0) return {}; + var formats = (0, _block.bubbleFormats)(blots.shift()); + while (Object.keys(formats).length > 0) { + var blot = blots.shift(); + if (blot == null) return formats; + formats = combineFormats((0, _block.bubbleFormats)(blot), formats); + } + return formats; + }); + return _extend2.default.apply(_extend2.default, formatsArr); + } + }, { + key: 'getText', + value: function getText(index, length) { + return this.getContents(index, length).filter(function (op) { + return typeof op.insert === 'string'; + }).map(function (op) { + return op.insert; + }).join(''); + } + }, { + key: 'insertEmbed', + value: function insertEmbed(index, embed, value) { + this.scroll.insertAt(index, embed, value); + return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value))); + } + }, { + key: 'insertText', + value: function insertText(index, text) { + var _this4 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + text = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); + this.scroll.insertAt(index, text); + Object.keys(formats).forEach(function (format) { + _this4.scroll.formatAt(index, text.length, format, formats[format]); + }); + return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats))); + } + }, { + key: 'isBlank', + value: function isBlank() { + if (this.scroll.children.length == 0) return true; + if (this.scroll.children.length > 1) return false; + var block = this.scroll.children.head; + if (block.statics.blotName !== _block2.default.blotName) return false; + if (block.children.length > 1) return false; + return block.children.head instanceof _break2.default; + } + }, { + key: 'removeFormat', + value: function removeFormat(index, length) { + var text = this.getText(index, length); + + var _scroll$line3 = this.scroll.line(index + length), + _scroll$line4 = _slicedToArray(_scroll$line3, 2), + line = _scroll$line4[0], + offset = _scroll$line4[1]; + + var suffixLength = 0, + suffix = new _quillDelta2.default(); + if (line != null) { + if (!(line instanceof _code2.default)) { + suffixLength = line.length() - offset; + } else { + suffixLength = line.newlineIndex(offset) - offset + 1; + } + suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\n'); + } + var contents = this.getContents(index, length + suffixLength); + var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix)); + var delta = new _quillDelta2.default().retain(index).concat(diff); + return this.applyDelta(delta); + } + }, { + key: 'update', + value: function update(change) { + var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + + var oldDelta = this.delta; + if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) { + // Optimization for character changes + var textBlot = _parchment2.default.find(mutations[0].target); + var formats = (0, _block.bubbleFormats)(textBlot); + var index = textBlot.offset(this.scroll); + var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, ''); + var oldText = new _quillDelta2.default().insert(oldValue); + var newText = new _quillDelta2.default().insert(textBlot.value()); + var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex)); + change = diffDelta.reduce(function (delta, op) { + if (op.insert) { + return delta.insert(op.insert, formats); + } else { + return delta.push(op); + } + }, new _quillDelta2.default()); + this.delta = oldDelta.compose(change); + } else { + this.delta = this.getDelta(); + if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) { + change = oldDelta.diff(this.delta, cursorIndex); + } + } + return change; + } + }]); + + return Editor; +}(); + +function combineFormats(formats, combined) { + return Object.keys(combined).reduce(function (merged, name) { + if (formats[name] == null) return merged; + if (combined[name] === formats[name]) { + merged[name] = combined[name]; + } else if (Array.isArray(combined[name])) { + if (combined[name].indexOf(formats[name]) < 0) { + merged[name] = combined[name].concat([formats[name]]); + } + } else { + merged[name] = [combined[name], formats[name]]; + } + return merged; + }, {}); +} + +function normalizeDelta(delta) { + return delta.reduce(function (delta, op) { + if (op.insert === 1) { + var attributes = (0, _clone2.default)(op.attributes); + delete attributes['image']; + return delta.insert({ image: op.attributes.image }, attributes); + } + if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) { + op = (0, _clone2.default)(op); + if (op.attributes.list) { + op.attributes.list = 'ordered'; + } else { + op.attributes.list = 'bullet'; + delete op.attributes.bullet; + } + } + if (typeof op.insert === 'string') { + var text = op.insert.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); + return delta.insert(text, op.attributes); + } + return delta.push(op); + }, new _quillDelta2.default()); +} + +exports.default = Editor; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.Range = undefined; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _emitter3 = __webpack_require__(8); + +var _emitter4 = _interopRequireDefault(_emitter3); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var debug = (0, _logger2.default)('quill:selection'); + +var Range = function Range(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + _classCallCheck(this, Range); + + this.index = index; + this.length = length; +}; + +var Selection = function () { + function Selection(scroll, emitter) { + var _this = this; + + _classCallCheck(this, Selection); + + this.emitter = emitter; + this.scroll = scroll; + this.composing = false; + this.mouseDown = false; + this.root = this.scroll.domNode; + this.cursor = _parchment2.default.create('cursor', this); + // savedRange is last non-null range + this.lastRange = this.savedRange = new Range(0, 0); + this.handleComposition(); + this.handleDragging(); + this.emitter.listenDOM('selectionchange', document, function () { + if (!_this.mouseDown) { + setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1); + } + }); + this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) { + if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) { + _this.update(_emitter4.default.sources.SILENT); + } + }); + this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () { + if (!_this.hasFocus()) return; + var native = _this.getNativeRange(); + if (native == null) return; + if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle + // TODO unclear if this has negative side effects + _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () { + try { + _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset); + } catch (ignored) {} + }); + }); + this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) { + if (context.range) { + var _context$range = context.range, + startNode = _context$range.startNode, + startOffset = _context$range.startOffset, + endNode = _context$range.endNode, + endOffset = _context$range.endOffset; + + _this.setNativeRange(startNode, startOffset, endNode, endOffset); + } + }); + this.update(_emitter4.default.sources.SILENT); + } + + _createClass(Selection, [{ + key: 'handleComposition', + value: function handleComposition() { + var _this2 = this; + + this.root.addEventListener('compositionstart', function () { + _this2.composing = true; + }); + this.root.addEventListener('compositionend', function () { + _this2.composing = false; + if (_this2.cursor.parent) { + var range = _this2.cursor.restore(); + if (!range) return; + setTimeout(function () { + _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset); + }, 1); + } + }); + } + }, { + key: 'handleDragging', + value: function handleDragging() { + var _this3 = this; + + this.emitter.listenDOM('mousedown', document.body, function () { + _this3.mouseDown = true; + }); + this.emitter.listenDOM('mouseup', document.body, function () { + _this3.mouseDown = false; + _this3.update(_emitter4.default.sources.USER); + }); + } + }, { + key: 'focus', + value: function focus() { + if (this.hasFocus()) return; + this.root.focus(); + this.setRange(this.savedRange); + } + }, { + key: 'format', + value: function format(_format, value) { + if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return; + this.scroll.update(); + var nativeRange = this.getNativeRange(); + if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return; + if (nativeRange.start.node !== this.cursor.textNode) { + var blot = _parchment2.default.find(nativeRange.start.node, false); + if (blot == null) return; + // TODO Give blot ability to not split + if (blot instanceof _parchment2.default.Leaf) { + var after = blot.split(nativeRange.start.offset); + blot.parent.insertBefore(this.cursor, after); + } else { + blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen + } + this.cursor.attach(); + } + this.cursor.format(_format, value); + this.scroll.optimize(); + this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length); + this.update(); + } + }, { + key: 'getBounds', + value: function getBounds(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var scrollLength = this.scroll.length(); + index = Math.min(index, scrollLength - 1); + length = Math.min(index + length, scrollLength - 1) - index; + var node = void 0, + _scroll$leaf = this.scroll.leaf(index), + _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2), + leaf = _scroll$leaf2[0], + offset = _scroll$leaf2[1]; + if (leaf == null) return null; + + var _leaf$position = leaf.position(offset, true); + + var _leaf$position2 = _slicedToArray(_leaf$position, 2); + + node = _leaf$position2[0]; + offset = _leaf$position2[1]; + + var range = document.createRange(); + if (length > 0) { + range.setStart(node, offset); + + var _scroll$leaf3 = this.scroll.leaf(index + length); + + var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2); + + leaf = _scroll$leaf4[0]; + offset = _scroll$leaf4[1]; + + if (leaf == null) return null; + + var _leaf$position3 = leaf.position(offset, true); + + var _leaf$position4 = _slicedToArray(_leaf$position3, 2); + + node = _leaf$position4[0]; + offset = _leaf$position4[1]; + + range.setEnd(node, offset); + return range.getBoundingClientRect(); + } else { + var side = 'left'; + var rect = void 0; + if (node instanceof Text) { + if (offset < node.data.length) { + range.setStart(node, offset); + range.setEnd(node, offset + 1); + } else { + range.setStart(node, offset - 1); + range.setEnd(node, offset); + side = 'right'; + } + rect = range.getBoundingClientRect(); + } else { + rect = leaf.domNode.getBoundingClientRect(); + if (offset > 0) side = 'right'; + } + return { + bottom: rect.top + rect.height, + height: rect.height, + left: rect[side], + right: rect[side], + top: rect.top, + width: 0 + }; + } + } + }, { + key: 'getNativeRange', + value: function getNativeRange() { + var selection = document.getSelection(); + if (selection == null || selection.rangeCount <= 0) return null; + var nativeRange = selection.getRangeAt(0); + if (nativeRange == null) return null; + var range = this.normalizeNative(nativeRange); + debug.info('getNativeRange', range); + return range; + } + }, { + key: 'getRange', + value: function getRange() { + var normalized = this.getNativeRange(); + if (normalized == null) return [null, null]; + var range = this.normalizedToRange(normalized); + return [range, normalized]; + } + }, { + key: 'hasFocus', + value: function hasFocus() { + return document.activeElement === this.root; + } + }, { + key: 'normalizedToRange', + value: function normalizedToRange(range) { + var _this4 = this; + + var positions = [[range.start.node, range.start.offset]]; + if (!range.native.collapsed) { + positions.push([range.end.node, range.end.offset]); + } + var indexes = positions.map(function (position) { + var _position = _slicedToArray(position, 2), + node = _position[0], + offset = _position[1]; + + var blot = _parchment2.default.find(node, true); + var index = blot.offset(_this4.scroll); + if (offset === 0) { + return index; + } else if (blot instanceof _parchment2.default.Container) { + return index + blot.length(); + } else { + return index + blot.index(node, offset); + } + }); + var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1); + var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes))); + return new Range(start, end - start); + } + }, { + key: 'normalizeNative', + value: function normalizeNative(nativeRange) { + if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) { + return null; + } + var range = { + start: { node: nativeRange.startContainer, offset: nativeRange.startOffset }, + end: { node: nativeRange.endContainer, offset: nativeRange.endOffset }, + native: nativeRange + }; + [range.start, range.end].forEach(function (position) { + var node = position.node, + offset = position.offset; + while (!(node instanceof Text) && node.childNodes.length > 0) { + if (node.childNodes.length > offset) { + node = node.childNodes[offset]; + offset = 0; + } else if (node.childNodes.length === offset) { + node = node.lastChild; + offset = node instanceof Text ? node.data.length : node.childNodes.length + 1; + } else { + break; + } + } + position.node = node, position.offset = offset; + }); + return range; + } + }, { + key: 'rangeToNative', + value: function rangeToNative(range) { + var _this5 = this; + + var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length]; + var args = []; + var scrollLength = this.scroll.length(); + indexes.forEach(function (index, i) { + index = Math.min(scrollLength - 1, index); + var node = void 0, + _scroll$leaf5 = _this5.scroll.leaf(index), + _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2), + leaf = _scroll$leaf6[0], + offset = _scroll$leaf6[1]; + var _leaf$position5 = leaf.position(offset, i !== 0); + + var _leaf$position6 = _slicedToArray(_leaf$position5, 2); + + node = _leaf$position6[0]; + offset = _leaf$position6[1]; + + args.push(node, offset); + }); + if (args.length < 2) { + args = args.concat(args); + } + return args; + } + }, { + key: 'scrollIntoView', + value: function scrollIntoView(scrollingContainer) { + var range = this.lastRange; + if (range == null) return; + var bounds = this.getBounds(range.index, range.length); + if (bounds == null) return; + var limit = this.scroll.length() - 1; + + var _scroll$line = this.scroll.line(Math.min(range.index, limit)), + _scroll$line2 = _slicedToArray(_scroll$line, 1), + first = _scroll$line2[0]; + + var last = first; + if (range.length > 0) { + var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit)); + + var _scroll$line4 = _slicedToArray(_scroll$line3, 1); + + last = _scroll$line4[0]; + } + if (first == null || last == null) return; + var scrollBounds = scrollingContainer.getBoundingClientRect(); + if (bounds.top < scrollBounds.top) { + scrollingContainer.scrollTop -= scrollBounds.top - bounds.top; + } else if (bounds.bottom > scrollBounds.bottom) { + scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom; + } + } + }, { + key: 'setNativeRange', + value: function setNativeRange(startNode, startOffset) { + var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode; + var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset; + var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + debug.info('setNativeRange', startNode, startOffset, endNode, endOffset); + if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) { + return; + } + var selection = document.getSelection(); + if (selection == null) return; + if (startNode != null) { + if (!this.hasFocus()) this.root.focus(); + var native = (this.getNativeRange() || {}).native; + if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) { + + if (startNode.tagName == "BR") { + startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode); + startNode = startNode.parentNode; + } + if (endNode.tagName == "BR") { + endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode); + endNode = endNode.parentNode; + } + var range = document.createRange(); + range.setStart(startNode, startOffset); + range.setEnd(endNode, endOffset); + selection.removeAllRanges(); + selection.addRange(range); + } + } else { + selection.removeAllRanges(); + this.root.blur(); + document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs) + } + } + }, { + key: 'setRange', + value: function setRange(range) { + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; + + if (typeof force === 'string') { + source = force; + force = false; + } + debug.info('setRange', range); + if (range != null) { + var args = this.rangeToNative(range); + this.setNativeRange.apply(this, _toConsumableArray(args).concat([force])); + } else { + this.setNativeRange(null); + } + this.update(source); + } + }, { + key: 'update', + value: function update() { + var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; + + var oldRange = this.lastRange; + + var _getRange = this.getRange(), + _getRange2 = _slicedToArray(_getRange, 2), + lastRange = _getRange2[0], + nativeRange = _getRange2[1]; + + this.lastRange = lastRange; + if (this.lastRange != null) { + this.savedRange = this.lastRange; + } + if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) { + var _emitter; + + if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) { + this.cursor.restore(); + } + var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source]; + (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); + if (source !== _emitter4.default.sources.SILENT) { + var _emitter2; + + (_emitter2 = this.emitter).emit.apply(_emitter2, args); + } + } + } + }]); + + return Selection; +}(); + +function contains(parent, descendant) { + try { + // Firefox inserts inaccessible nodes around video elements + descendant.parentNode; + } catch (e) { + return false; + } + // IE11 has bug with Text nodes + // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect + if (descendant instanceof Text) { + descendant = descendant.parentNode; + } + return parent.contains(descendant); +} + +exports.Range = Range; +exports.default = Selection; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Break = function (_Parchment$Embed) { + _inherits(Break, _Parchment$Embed); + + function Break() { + _classCallCheck(this, Break); + + return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments)); + } + + _createClass(Break, [{ + key: 'insertInto', + value: function insertInto(parent, ref) { + if (parent.children.length === 0) { + _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref); + } else { + this.remove(); + } + } + }, { + key: 'length', + value: function length() { + return 0; + } + }, { + key: 'value', + value: function value() { + return ''; + } + }], [{ + key: 'value', + value: function value() { + return undefined; + } + }]); + + return Break; +}(_parchment2.default.Embed); + +Break.blotName = 'break'; +Break.tagName = 'BR'; + +exports.default = Break; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var linked_list_1 = __webpack_require__(44); +var shadow_1 = __webpack_require__(30); +var Registry = __webpack_require__(1); +var ContainerBlot = /** @class */ (function (_super) { + __extends(ContainerBlot, _super); + function ContainerBlot(domNode) { + var _this = _super.call(this, domNode) || this; + _this.build(); + return _this; + } + ContainerBlot.prototype.appendChild = function (other) { + this.insertBefore(other); + }; + ContainerBlot.prototype.attach = function () { + _super.prototype.attach.call(this); + this.children.forEach(function (child) { + child.attach(); + }); + }; + ContainerBlot.prototype.build = function () { + var _this = this; + this.children = new linked_list_1.default(); + // Need to be reversed for if DOM nodes already in order + [].slice + .call(this.domNode.childNodes) + .reverse() + .forEach(function (node) { + try { + var child = makeBlot(node); + _this.insertBefore(child, _this.children.head || undefined); + } + catch (err) { + if (err instanceof Registry.ParchmentError) + return; + else + throw err; + } + }); + }; + ContainerBlot.prototype.deleteAt = function (index, length) { + if (index === 0 && length === this.length()) { + return this.remove(); + } + this.children.forEachAt(index, length, function (child, offset, length) { + child.deleteAt(offset, length); + }); + }; + ContainerBlot.prototype.descendant = function (criteria, index) { + var _a = this.children.find(index), child = _a[0], offset = _a[1]; + if ((criteria.blotName == null && criteria(child)) || + (criteria.blotName != null && child instanceof criteria)) { + return [child, offset]; + } + else if (child instanceof ContainerBlot) { + return child.descendant(criteria, offset); + } + else { + return [null, -1]; + } + }; + ContainerBlot.prototype.descendants = function (criteria, index, length) { + if (index === void 0) { index = 0; } + if (length === void 0) { length = Number.MAX_VALUE; } + var descendants = []; + var lengthLeft = length; + this.children.forEachAt(index, length, function (child, index, length) { + if ((criteria.blotName == null && criteria(child)) || + (criteria.blotName != null && child instanceof criteria)) { + descendants.push(child); + } + if (child instanceof ContainerBlot) { + descendants = descendants.concat(child.descendants(criteria, index, lengthLeft)); + } + lengthLeft -= length; + }); + return descendants; + }; + ContainerBlot.prototype.detach = function () { + this.children.forEach(function (child) { + child.detach(); + }); + _super.prototype.detach.call(this); + }; + ContainerBlot.prototype.formatAt = function (index, length, name, value) { + this.children.forEachAt(index, length, function (child, offset, length) { + child.formatAt(offset, length, name, value); + }); + }; + ContainerBlot.prototype.insertAt = function (index, value, def) { + var _a = this.children.find(index), child = _a[0], offset = _a[1]; + if (child) { + child.insertAt(offset, value, def); + } + else { + var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); + this.appendChild(blot); + } + }; + ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) { + if (this.statics.allowedChildren != null && + !this.statics.allowedChildren.some(function (child) { + return childBlot instanceof child; + })) { + throw new Registry.ParchmentError("Cannot insert " + childBlot.statics.blotName + " into " + this.statics.blotName); + } + childBlot.insertInto(this, refBlot); + }; + ContainerBlot.prototype.length = function () { + return this.children.reduce(function (memo, child) { + return memo + child.length(); + }, 0); + }; + ContainerBlot.prototype.moveChildren = function (targetParent, refNode) { + this.children.forEach(function (child) { + targetParent.insertBefore(child, refNode); + }); + }; + ContainerBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + if (this.children.length === 0) { + if (this.statics.defaultChild != null) { + var child = Registry.create(this.statics.defaultChild); + this.appendChild(child); + child.optimize(context); + } + else { + this.remove(); + } + } + }; + ContainerBlot.prototype.path = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1]; + var position = [[this, index]]; + if (child instanceof ContainerBlot) { + return position.concat(child.path(offset, inclusive)); + } + else if (child != null) { + position.push([child, offset]); + } + return position; + }; + ContainerBlot.prototype.removeChild = function (child) { + this.children.remove(child); + }; + ContainerBlot.prototype.replace = function (target) { + if (target instanceof ContainerBlot) { + target.moveChildren(this); + } + _super.prototype.replace.call(this, target); + }; + ContainerBlot.prototype.split = function (index, force) { + if (force === void 0) { force = false; } + if (!force) { + if (index === 0) + return this; + if (index === this.length()) + return this.next; + } + var after = this.clone(); + this.parent.insertBefore(after, this.next); + this.children.forEachAt(index, this.length(), function (child, offset, length) { + child = child.split(offset, force); + after.appendChild(child); + }); + return after; + }; + ContainerBlot.prototype.unwrap = function () { + this.moveChildren(this.parent, this.next); + this.remove(); + }; + ContainerBlot.prototype.update = function (mutations, context) { + var _this = this; + var addedNodes = []; + var removedNodes = []; + mutations.forEach(function (mutation) { + if (mutation.target === _this.domNode && mutation.type === 'childList') { + addedNodes.push.apply(addedNodes, mutation.addedNodes); + removedNodes.push.apply(removedNodes, mutation.removedNodes); + } + }); + removedNodes.forEach(function (node) { + // Check node has actually been removed + // One exception is Chrome does not immediately remove IFRAMEs + // from DOM but MutationRecord is correct in its reported removal + if (node.parentNode != null && + // @ts-ignore + node.tagName !== 'IFRAME' && + document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return; + } + var blot = Registry.find(node); + if (blot == null) + return; + if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) { + blot.detach(); + } + }); + addedNodes + .filter(function (node) { + return node.parentNode == _this.domNode; + }) + .sort(function (a, b) { + if (a === b) + return 0; + if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) { + return 1; + } + return -1; + }) + .forEach(function (node) { + var refBlot = null; + if (node.nextSibling != null) { + refBlot = Registry.find(node.nextSibling); + } + var blot = makeBlot(node); + if (blot.next != refBlot || blot.next == null) { + if (blot.parent != null) { + blot.parent.removeChild(_this); + } + _this.insertBefore(blot, refBlot || undefined); + } + }); + }; + return ContainerBlot; +}(shadow_1.default)); +function makeBlot(node) { + var blot = Registry.find(node); + if (blot == null) { + try { + blot = Registry.create(node); + } + catch (e) { + blot = Registry.create(Registry.Scope.INLINE); + [].slice.call(node.childNodes).forEach(function (child) { + // @ts-ignore + blot.domNode.appendChild(child); + }); + if (node.parentNode) { + node.parentNode.replaceChild(blot.domNode, node); + } + blot.attach(); + } + } + return blot; +} +exports.default = ContainerBlot; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +var store_1 = __webpack_require__(31); +var container_1 = __webpack_require__(17); +var Registry = __webpack_require__(1); +var FormatBlot = /** @class */ (function (_super) { + __extends(FormatBlot, _super); + function FormatBlot(domNode) { + var _this = _super.call(this, domNode) || this; + _this.attributes = new store_1.default(_this.domNode); + return _this; + } + FormatBlot.formats = function (domNode) { + if (typeof this.tagName === 'string') { + return true; + } + else if (Array.isArray(this.tagName)) { + return domNode.tagName.toLowerCase(); + } + return undefined; + }; + FormatBlot.prototype.format = function (name, value) { + var format = Registry.query(name); + if (format instanceof attributor_1.default) { + this.attributes.attribute(format, value); + } + else if (value) { + if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) { + this.replaceWith(name, value); + } + } + }; + FormatBlot.prototype.formats = function () { + var formats = this.attributes.values(); + var format = this.statics.formats(this.domNode); + if (format != null) { + formats[this.statics.blotName] = format; + } + return formats; + }; + FormatBlot.prototype.replaceWith = function (name, value) { + var replacement = _super.prototype.replaceWith.call(this, name, value); + this.attributes.copy(replacement); + return replacement; + }; + FormatBlot.prototype.update = function (mutations, context) { + var _this = this; + _super.prototype.update.call(this, mutations, context); + if (mutations.some(function (mutation) { + return mutation.target === _this.domNode && mutation.type === 'attributes'; + })) { + this.attributes.build(); + } + }; + FormatBlot.prototype.wrap = function (name, value) { + var wrapper = _super.prototype.wrap.call(this, name, value); + if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) { + this.attributes.move(wrapper); + } + return wrapper; + }; + return FormatBlot; +}(container_1.default)); +exports.default = FormatBlot; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var shadow_1 = __webpack_require__(30); +var Registry = __webpack_require__(1); +var LeafBlot = /** @class */ (function (_super) { + __extends(LeafBlot, _super); + function LeafBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + LeafBlot.value = function (domNode) { + return true; + }; + LeafBlot.prototype.index = function (node, offset) { + if (this.domNode === node || + this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return Math.min(offset, 1); + } + return -1; + }; + LeafBlot.prototype.position = function (index, inclusive) { + var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode); + if (index > 0) + offset += 1; + return [this.parent.domNode, offset]; + }; + LeafBlot.prototype.value = function () { + var _a; + return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a; + }; + LeafBlot.scope = Registry.Scope.INLINE_BLOT; + return LeafBlot; +}(shadow_1.default)); +exports.default = LeafBlot; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var equal = __webpack_require__(11); +var extend = __webpack_require__(3); + + +var lib = { + attributes: { + compose: function (a, b, keepNull) { + if (typeof a !== 'object') a = {}; + if (typeof b !== 'object') b = {}; + var attributes = extend(true, {}, b); + if (!keepNull) { + attributes = Object.keys(attributes).reduce(function (copy, key) { + if (attributes[key] != null) { + copy[key] = attributes[key]; + } + return copy; + }, {}); + } + for (var key in a) { + if (a[key] !== undefined && b[key] === undefined) { + attributes[key] = a[key]; + } + } + return Object.keys(attributes).length > 0 ? attributes : undefined; + }, + + diff: function(a, b) { + if (typeof a !== 'object') a = {}; + if (typeof b !== 'object') b = {}; + var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) { + if (!equal(a[key], b[key])) { + attributes[key] = b[key] === undefined ? null : b[key]; + } + return attributes; + }, {}); + return Object.keys(attributes).length > 0 ? attributes : undefined; + }, + + transform: function (a, b, priority) { + if (typeof a !== 'object') return b; + if (typeof b !== 'object') return undefined; + if (!priority) return b; // b simply overwrites us without priority + var attributes = Object.keys(b).reduce(function (attributes, key) { + if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value + return attributes; + }, {}); + return Object.keys(attributes).length > 0 ? attributes : undefined; + } + }, + + iterator: function (ops) { + return new Iterator(ops); + }, + + length: function (op) { + if (typeof op['delete'] === 'number') { + return op['delete']; + } else if (typeof op.retain === 'number') { + return op.retain; + } else { + return typeof op.insert === 'string' ? op.insert.length : 1; + } + } +}; + + +function Iterator(ops) { + this.ops = ops; + this.index = 0; + this.offset = 0; +}; + +Iterator.prototype.hasNext = function () { + return this.peekLength() < Infinity; +}; + +Iterator.prototype.next = function (length) { + if (!length) length = Infinity; + var nextOp = this.ops[this.index]; + if (nextOp) { + var offset = this.offset; + var opLength = lib.length(nextOp) + if (length >= opLength - offset) { + length = opLength - offset; + this.index += 1; + this.offset = 0; + } else { + this.offset += length; + } + if (typeof nextOp['delete'] === 'number') { + return { 'delete': length }; + } else { + var retOp = {}; + if (nextOp.attributes) { + retOp.attributes = nextOp.attributes; + } + if (typeof nextOp.retain === 'number') { + retOp.retain = length; + } else if (typeof nextOp.insert === 'string') { + retOp.insert = nextOp.insert.substr(offset, length); + } else { + // offset should === 0, length should === 1 + retOp.insert = nextOp.insert; + } + return retOp; + } + } else { + return { retain: Infinity }; + } +}; + +Iterator.prototype.peek = function () { + return this.ops[this.index]; +}; + +Iterator.prototype.peekLength = function () { + if (this.ops[this.index]) { + // Should never return 0 if our index is being managed correctly + return lib.length(this.ops[this.index]) - this.offset; + } else { + return Infinity; + } +}; + +Iterator.prototype.peekType = function () { + if (this.ops[this.index]) { + if (typeof this.ops[this.index]['delete'] === 'number') { + return 'delete'; + } else if (typeof this.ops[this.index].retain === 'number') { + return 'retain'; + } else { + return 'insert'; + } + } + return 'retain'; +}; + +Iterator.prototype.rest = function () { + if (!this.hasNext()) { + return []; + } else if (this.offset === 0) { + return this.ops.slice(this.index); + } else { + var offset = this.offset; + var index = this.index; + var next = this.next(); + var rest = this.ops.slice(this.index); + this.offset = offset; + this.index = index; + return [next].concat(rest); + } +}; + + +module.exports = lib; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + +var clone = (function() { +'use strict'; + +function _instanceof(obj, type) { + return type != null && obj instanceof type; +} + +var nativeMap; +try { + nativeMap = Map; +} catch(_) { + // maybe a reference error because no `Map`. Give it a dummy value that no + // value will ever be an instanceof. + nativeMap = function() {}; +} + +var nativeSet; +try { + nativeSet = Set; +} catch(_) { + nativeSet = function() {}; +} + +var nativePromise; +try { + nativePromise = Promise; +} catch(_) { + nativePromise = function() {}; +} + +/** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). + * @param `includeNonEnumerable` - set to true if the non-enumerable properties + * should be cloned as well. Non-enumerable properties on the prototype + * chain will be ignored. (optional - false by default) +*/ +function clone(parent, circular, depth, prototype, includeNonEnumerable) { + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + includeNonEnumerable = circular.includeNonEnumerable; + circular = circular.circular; + } + // maintain two arrays for circular references, where corresponding parents + // and children have the same index + var allParents = []; + var allChildren = []; + + var useBuffer = typeof Buffer != 'undefined'; + + if (typeof circular == 'undefined') + circular = true; + + if (typeof depth == 'undefined') + depth = Infinity; + + // recurse this function so we don't reset allParents and allChildren + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) + return null; + + if (depth === 0) + return parent; + + var child; + var proto; + if (typeof parent != 'object') { + return parent; + } + + if (_instanceof(parent, nativeMap)) { + child = new nativeMap(); + } else if (_instanceof(parent, nativeSet)) { + child = new nativeSet(); + } else if (_instanceof(parent, nativePromise)) { + child = new nativePromise(function (resolve, reject) { + parent.then(function(value) { + resolve(_clone(value, depth - 1)); + }, function(err) { + reject(_clone(err, depth - 1)); + }); + }); + } else if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.allocUnsafe) { + // Node.js >= 4.5.0 + child = Buffer.allocUnsafe(parent.length); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + } + parent.copy(child); + return child; + } else if (_instanceof(parent, Error)) { + child = Object.create(parent); + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } + else { + child = Object.create(prototype); + proto = prototype; + } + } + + if (circular) { + var index = allParents.indexOf(parent); + + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent); + allChildren.push(child); + } + + if (_instanceof(parent, nativeMap)) { + parent.forEach(function(value, key) { + var keyChild = _clone(key, depth - 1); + var valueChild = _clone(value, depth - 1); + child.set(keyChild, valueChild); + }); + } + if (_instanceof(parent, nativeSet)) { + parent.forEach(function(value) { + var entryChild = _clone(value, depth - 1); + child.add(entryChild); + }); + } + + for (var i in parent) { + var attrs; + if (proto) { + attrs = Object.getOwnPropertyDescriptor(proto, i); + } + + if (attrs && attrs.set == null) { + continue; + } + child[i] = _clone(parent[i], depth - 1); + } + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(parent); + for (var i = 0; i < symbols.length; i++) { + // Don't need to worry about cloning a symbol because it is a primitive, + // like a number or string. + var symbol = symbols[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); + if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { + continue; + } + child[symbol] = _clone(parent[symbol], depth - 1); + if (!descriptor.enumerable) { + Object.defineProperty(child, symbol, { + enumerable: false + }); + } + } + } + + if (includeNonEnumerable) { + var allPropertyNames = Object.getOwnPropertyNames(parent); + for (var i = 0; i < allPropertyNames.length; i++) { + var propertyName = allPropertyNames[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); + if (descriptor && descriptor.enumerable) { + continue; + } + child[propertyName] = _clone(parent[propertyName], depth - 1); + Object.defineProperty(child, propertyName, { + enumerable: false + }); + } + } + + return child; + } + + return _clone(parent, depth); +} + +/** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ +clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + + var c = function () {}; + c.prototype = parent; + return new c(); +}; + +// private utility functions + +function __objToStr(o) { + return Object.prototype.toString.call(o); +} +clone.__objToStr = __objToStr; + +function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; +} +clone.__isDate = __isDate; + +function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; +} +clone.__isArray = __isArray; + +function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; +} +clone.__isRegExp = __isRegExp; + +function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; +} +clone.__getRegExpFlags = __getRegExpFlags; + +return clone; +})(); + +if (typeof module === 'object' && module.exports) { + module.exports = clone; +} + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _emitter = __webpack_require__(8); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _container = __webpack_require__(25); + +var _container2 = _interopRequireDefault(_container); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function isLine(blot) { + return blot instanceof _block2.default || blot instanceof _block.BlockEmbed; +} + +var Scroll = function (_Parchment$Scroll) { + _inherits(Scroll, _Parchment$Scroll); + + function Scroll(domNode, config) { + _classCallCheck(this, Scroll); + + var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode)); + + _this.emitter = config.emitter; + if (Array.isArray(config.whitelist)) { + _this.whitelist = config.whitelist.reduce(function (whitelist, format) { + whitelist[format] = true; + return whitelist; + }, {}); + } + // Some reason fixes composition issues with character languages in Windows/Chrome, Safari + _this.domNode.addEventListener('DOMNodeInserted', function () {}); + _this.optimize(); + _this.enable(); + return _this; + } + + _createClass(Scroll, [{ + key: 'batchStart', + value: function batchStart() { + this.batch = true; + } + }, { + key: 'batchEnd', + value: function batchEnd() { + this.batch = false; + this.optimize(); + } + }, { + key: 'deleteAt', + value: function deleteAt(index, length) { + var _line = this.line(index), + _line2 = _slicedToArray(_line, 2), + first = _line2[0], + offset = _line2[1]; + + var _line3 = this.line(index + length), + _line4 = _slicedToArray(_line3, 1), + last = _line4[0]; + + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length); + if (last != null && first !== last && offset > 0) { + if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) { + this.optimize(); + return; + } + if (first instanceof _code2.default) { + var newlineIndex = first.newlineIndex(first.length(), true); + if (newlineIndex > -1) { + first = first.split(newlineIndex + 1); + if (first === last) { + this.optimize(); + return; + } + } + } else if (last instanceof _code2.default) { + var _newlineIndex = last.newlineIndex(0); + if (_newlineIndex > -1) { + last.split(_newlineIndex + 1); + } + } + var ref = last.children.head instanceof _break2.default ? null : last.children.head; + first.moveChildren(last, ref); + first.remove(); + } + this.optimize(); + } + }, { + key: 'enable', + value: function enable() { + var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + this.domNode.setAttribute('contenteditable', enabled); + } + }, { + key: 'formatAt', + value: function formatAt(index, length, format, value) { + if (this.whitelist != null && !this.whitelist[format]) return; + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value); + this.optimize(); + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null && this.whitelist != null && !this.whitelist[value]) return; + if (index >= this.length()) { + if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) { + var blot = _parchment2.default.create(this.statics.defaultChild); + this.appendChild(blot); + if (def == null && value.endsWith('\n')) { + value = value.slice(0, -1); + } + blot.insertAt(0, value, def); + } else { + var embed = _parchment2.default.create(value, def); + this.appendChild(embed); + } + } else { + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def); + } + this.optimize(); + } + }, { + key: 'insertBefore', + value: function insertBefore(blot, ref) { + if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) { + var wrapper = _parchment2.default.create(this.statics.defaultChild); + wrapper.appendChild(blot); + blot = wrapper; + } + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref); + } + }, { + key: 'leaf', + value: function leaf(index) { + return this.path(index).pop() || [null, -1]; + } + }, { + key: 'line', + value: function line(index) { + if (index === this.length()) { + return this.line(index - 1); + } + return this.descendant(isLine, index); + } + }, { + key: 'lines', + value: function lines() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; + + var getLines = function getLines(blot, index, length) { + var lines = [], + lengthLeft = length; + blot.children.forEachAt(index, length, function (child, index, length) { + if (isLine(child)) { + lines.push(child); + } else if (child instanceof _parchment2.default.Container) { + lines = lines.concat(getLines(child, index, lengthLeft)); + } + lengthLeft -= length; + }); + return lines; + }; + return getLines(this, index, length); + } + }, { + key: 'optimize', + value: function optimize() { + var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (this.batch === true) return; + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context); + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context); + } + } + }, { + key: 'path', + value: function path(index) { + return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self + } + }, { + key: 'update', + value: function update(mutations) { + if (this.batch === true) return; + var source = _emitter2.default.sources.USER; + if (typeof mutations === 'string') { + source = mutations; + } + if (!Array.isArray(mutations)) { + mutations = this.observer.takeRecords(); + } + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations); + } + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations); + } + } + }]); + + return Scroll; +}(_parchment2.default.Scroll); + +Scroll.blotName = 'scroll'; +Scroll.className = 'ql-editor'; +Scroll.tagName = 'DIV'; +Scroll.defaultChild = 'block'; +Scroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default]; + +exports.default = Scroll; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SHORTKEY = exports.default = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _op = __webpack_require__(20); + +var _op2 = _interopRequireDefault(_op); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:keyboard'); + +var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey'; + +var Keyboard = function (_Module) { + _inherits(Keyboard, _Module); + + _createClass(Keyboard, null, [{ + key: 'match', + value: function match(evt, binding) { + binding = normalize(binding); + if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) { + return !!binding[key] !== evt[key] && binding[key] !== null; + })) { + return false; + } + return binding.key === (evt.which || evt.keyCode); + } + }]); + + function Keyboard(quill, options) { + _classCallCheck(this, Keyboard); + + var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options)); + + _this.bindings = {}; + Object.keys(_this.options.bindings).forEach(function (name) { + if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) { + return; + } + if (_this.options.bindings[name]) { + _this.addBinding(_this.options.bindings[name]); + } + }); + _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter); + _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {}); + if (/Firefox/i.test(navigator.userAgent)) { + // Need to handle delete and backspace for Firefox in the general case #1171 + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete); + } else { + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete); + } + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange); + _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace); + _this.listen(); + return _this; + } + + _createClass(Keyboard, [{ + key: 'addBinding', + value: function addBinding(key) { + var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var binding = normalize(key); + if (binding == null || binding.key == null) { + return debug.warn('Attempted to add invalid keyboard binding', binding); + } + if (typeof context === 'function') { + context = { handler: context }; + } + if (typeof handler === 'function') { + handler = { handler: handler }; + } + binding = (0, _extend2.default)(binding, context, handler); + this.bindings[binding.key] = this.bindings[binding.key] || []; + this.bindings[binding.key].push(binding); + } + }, { + key: 'listen', + value: function listen() { + var _this2 = this; + + this.quill.root.addEventListener('keydown', function (evt) { + if (evt.defaultPrevented) return; + var which = evt.which || evt.keyCode; + var bindings = (_this2.bindings[which] || []).filter(function (binding) { + return Keyboard.match(evt, binding); + }); + if (bindings.length === 0) return; + var range = _this2.quill.getSelection(); + if (range == null || !_this2.quill.hasFocus()) return; + + var _quill$getLine = _this2.quill.getLine(range.index), + _quill$getLine2 = _slicedToArray(_quill$getLine, 2), + line = _quill$getLine2[0], + offset = _quill$getLine2[1]; + + var _quill$getLeaf = _this2.quill.getLeaf(range.index), + _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2), + leafStart = _quill$getLeaf2[0], + offsetStart = _quill$getLeaf2[1]; + + var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length), + _ref2 = _slicedToArray(_ref, 2), + leafEnd = _ref2[0], + offsetEnd = _ref2[1]; + + var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : ''; + var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : ''; + var curContext = { + collapsed: range.length === 0, + empty: range.length === 0 && line.length() <= 1, + format: _this2.quill.getFormat(range), + offset: offset, + prefix: prefixText, + suffix: suffixText + }; + var prevented = bindings.some(function (binding) { + if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false; + if (binding.empty != null && binding.empty !== curContext.empty) return false; + if (binding.offset != null && binding.offset !== curContext.offset) return false; + if (Array.isArray(binding.format)) { + // any format is present + if (binding.format.every(function (name) { + return curContext.format[name] == null; + })) { + return false; + } + } else if (_typeof(binding.format) === 'object') { + // all formats must match + if (!Object.keys(binding.format).every(function (name) { + if (binding.format[name] === true) return curContext.format[name] != null; + if (binding.format[name] === false) return curContext.format[name] == null; + return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]); + })) { + return false; + } + } + if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false; + if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false; + return binding.handler.call(_this2, range, curContext) !== true; + }); + if (prevented) { + evt.preventDefault(); + } + }); + } + }]); + + return Keyboard; +}(_module2.default); + +Keyboard.keys = { + BACKSPACE: 8, + TAB: 9, + ENTER: 13, + ESCAPE: 27, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, + DELETE: 46 +}; + +Keyboard.DEFAULTS = { + bindings: { + 'bold': makeFormatHandler('bold'), + 'italic': makeFormatHandler('italic'), + 'underline': makeFormatHandler('underline'), + 'indent': { + // highlight tab or tab at beginning of list, indent or blockquote + key: Keyboard.keys.TAB, + format: ['blockquote', 'indent', 'list'], + handler: function handler(range, context) { + if (context.collapsed && context.offset !== 0) return true; + this.quill.format('indent', '+1', _quill2.default.sources.USER); + } + }, + 'outdent': { + key: Keyboard.keys.TAB, + shiftKey: true, + format: ['blockquote', 'indent', 'list'], + // highlight tab or tab at beginning of list, indent or blockquote + handler: function handler(range, context) { + if (context.collapsed && context.offset !== 0) return true; + this.quill.format('indent', '-1', _quill2.default.sources.USER); + } + }, + 'outdent backspace': { + key: Keyboard.keys.BACKSPACE, + collapsed: true, + shiftKey: null, + metaKey: null, + ctrlKey: null, + altKey: null, + format: ['indent', 'list'], + offset: 0, + handler: function handler(range, context) { + if (context.format.indent != null) { + this.quill.format('indent', '-1', _quill2.default.sources.USER); + } else if (context.format.list != null) { + this.quill.format('list', false, _quill2.default.sources.USER); + } + } + }, + 'indent code-block': makeCodeBlockHandler(true), + 'outdent code-block': makeCodeBlockHandler(false), + 'remove tab': { + key: Keyboard.keys.TAB, + shiftKey: true, + collapsed: true, + prefix: /\t$/, + handler: function handler(range) { + this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER); + } + }, + 'tab': { + key: Keyboard.keys.TAB, + handler: function handler(range) { + this.quill.history.cutoff(); + var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t'); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.history.cutoff(); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + } + }, + 'list empty enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['list'], + empty: true, + handler: function handler(range, context) { + this.quill.format('list', false, _quill2.default.sources.USER); + if (context.format.indent) { + this.quill.format('indent', false, _quill2.default.sources.USER); + } + } + }, + 'checklist enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: { list: 'checked' }, + handler: function handler(range) { + var _quill$getLine3 = this.quill.getLine(range.index), + _quill$getLine4 = _slicedToArray(_quill$getLine3, 2), + line = _quill$getLine4[0], + offset = _quill$getLine4[1]; + + var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' }); + var delta = new _quillDelta2.default().retain(range.index).insert('\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.scrollIntoView(); + } + }, + 'header enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['header'], + suffix: /^$/, + handler: function handler(range, context) { + var _quill$getLine5 = this.quill.getLine(range.index), + _quill$getLine6 = _slicedToArray(_quill$getLine5, 2), + line = _quill$getLine6[0], + offset = _quill$getLine6[1]; + + var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.scrollIntoView(); + } + }, + 'list autofill': { + key: ' ', + collapsed: true, + format: { list: false }, + prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/, + handler: function handler(range, context) { + var length = context.prefix.length; + + var _quill$getLine7 = this.quill.getLine(range.index), + _quill$getLine8 = _slicedToArray(_quill$getLine7, 2), + line = _quill$getLine8[0], + offset = _quill$getLine8[1]; + + if (offset > length) return true; + var value = void 0; + switch (context.prefix.trim()) { + case '[]':case '[ ]': + value = 'unchecked'; + break; + case '[x]': + value = 'checked'; + break; + case '-':case '*': + value = 'bullet'; + break; + default: + value = 'ordered'; + } + this.quill.insertText(range.index, ' ', _quill2.default.sources.USER); + this.quill.history.cutoff(); + var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.history.cutoff(); + this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT); + } + }, + 'code exit': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['code-block'], + prefix: /\n\n$/, + suffix: /^\s+$/, + handler: function handler(range) { + var _quill$getLine9 = this.quill.getLine(range.index), + _quill$getLine10 = _slicedToArray(_quill$getLine9, 2), + line = _quill$getLine10[0], + offset = _quill$getLine10[1]; + + var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1); + this.quill.updateContents(delta, _quill2.default.sources.USER); + } + }, + 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false), + 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true), + 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false), + 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true) + } +}; + +function makeEmbedArrowHandler(key, shiftKey) { + var _ref3; + + var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix'; + return _ref3 = { + key: key, + shiftKey: shiftKey, + altKey: null + }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) { + var index = range.index; + if (key === Keyboard.keys.RIGHT) { + index += range.length + 1; + } + + var _quill$getLeaf3 = this.quill.getLeaf(index), + _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1), + leaf = _quill$getLeaf4[0]; + + if (!(leaf instanceof _parchment2.default.Embed)) return true; + if (key === Keyboard.keys.LEFT) { + if (shiftKey) { + this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER); + } else { + this.quill.setSelection(range.index - 1, _quill2.default.sources.USER); + } + } else { + if (shiftKey) { + this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER); + } else { + this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER); + } + } + return false; + }), _ref3; +} + +function handleBackspace(range, context) { + if (range.index === 0 || this.quill.getLength() <= 1) return; + + var _quill$getLine11 = this.quill.getLine(range.index), + _quill$getLine12 = _slicedToArray(_quill$getLine11, 1), + line = _quill$getLine12[0]; + + var formats = {}; + if (context.offset === 0) { + var _quill$getLine13 = this.quill.getLine(range.index - 1), + _quill$getLine14 = _slicedToArray(_quill$getLine13, 1), + prev = _quill$getLine14[0]; + + if (prev != null && prev.length() > 1) { + var curFormats = line.formats(); + var prevFormats = this.quill.getFormat(range.index - 1, 1); + formats = _op2.default.attributes.diff(curFormats, prevFormats) || {}; + } + } + // Check for astral symbols + var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1; + this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER); + } + this.quill.focus(); +} + +function handleDelete(range, context) { + // Check for astral symbols + var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1; + if (range.index >= this.quill.getLength() - length) return; + var formats = {}, + nextLength = 0; + + var _quill$getLine15 = this.quill.getLine(range.index), + _quill$getLine16 = _slicedToArray(_quill$getLine15, 1), + line = _quill$getLine16[0]; + + if (context.offset >= line.length() - 1) { + var _quill$getLine17 = this.quill.getLine(range.index + 1), + _quill$getLine18 = _slicedToArray(_quill$getLine17, 1), + next = _quill$getLine18[0]; + + if (next) { + var curFormats = line.formats(); + var nextFormats = this.quill.getFormat(range.index, 1); + formats = _op2.default.attributes.diff(curFormats, nextFormats) || {}; + nextLength = next.length(); + } + } + this.quill.deleteText(range.index, length, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER); + } +} + +function handleDeleteRange(range) { + var lines = this.quill.getLines(range); + var formats = {}; + if (lines.length > 1) { + var firstFormats = lines[0].formats(); + var lastFormats = lines[lines.length - 1].formats(); + formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {}; + } + this.quill.deleteText(range, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER); + } + this.quill.setSelection(range.index, _quill2.default.sources.SILENT); + this.quill.focus(); +} + +function handleEnter(range, context) { + var _this3 = this; + + if (range.length > 0) { + this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change + } + var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) { + if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) { + lineFormats[format] = context.format[format]; + } + return lineFormats; + }, {}); + this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER); + // Earlier scroll.deleteAt might have messed up our selection, + // so insertText's built in selection preservation is not reliable + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.focus(); + Object.keys(context.format).forEach(function (name) { + if (lineFormats[name] != null) return; + if (Array.isArray(context.format[name])) return; + if (name === 'link') return; + _this3.quill.format(name, context.format[name], _quill2.default.sources.USER); + }); +} + +function makeCodeBlockHandler(indent) { + return { + key: Keyboard.keys.TAB, + shiftKey: !indent, + format: { 'code-block': true }, + handler: function handler(range) { + var CodeBlock = _parchment2.default.query('code-block'); + var index = range.index, + length = range.length; + + var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index), + _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2), + block = _quill$scroll$descend2[0], + offset = _quill$scroll$descend2[1]; + + if (block == null) return; + var scrollIndex = this.quill.getIndex(block); + var start = block.newlineIndex(offset, true) + 1; + var end = block.newlineIndex(scrollIndex + offset + length); + var lines = block.domNode.textContent.slice(start, end).split('\n'); + offset = 0; + lines.forEach(function (line, i) { + if (indent) { + block.insertAt(start + offset, CodeBlock.TAB); + offset += CodeBlock.TAB.length; + if (i === 0) { + index += CodeBlock.TAB.length; + } else { + length += CodeBlock.TAB.length; + } + } else if (line.startsWith(CodeBlock.TAB)) { + block.deleteAt(start + offset, CodeBlock.TAB.length); + offset -= CodeBlock.TAB.length; + if (i === 0) { + index -= CodeBlock.TAB.length; + } else { + length -= CodeBlock.TAB.length; + } + } + offset += line.length + 1; + }); + this.quill.update(_quill2.default.sources.USER); + this.quill.setSelection(index, length, _quill2.default.sources.SILENT); + } + }; +} + +function makeFormatHandler(format) { + return { + key: format[0].toUpperCase(), + shortKey: true, + handler: function handler(range, context) { + this.quill.format(format, !context.format[format], _quill2.default.sources.USER); + } + }; +} + +function normalize(binding) { + if (typeof binding === 'string' || typeof binding === 'number') { + return normalize({ key: binding }); + } + if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') { + binding = (0, _clone2.default)(binding, false); + } + if (typeof binding.key === 'string') { + if (Keyboard.keys[binding.key.toUpperCase()] != null) { + binding.key = Keyboard.keys[binding.key.toUpperCase()]; + } else if (binding.key.length === 1) { + binding.key = binding.key.toUpperCase().charCodeAt(0); + } else { + return null; + } + } + if (binding.shortKey) { + binding[SHORTKEY] = binding.shortKey; + delete binding.shortKey; + } + return binding; +} + +exports.default = Keyboard; +exports.SHORTKEY = SHORTKEY; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Cursor = function (_Parchment$Embed) { + _inherits(Cursor, _Parchment$Embed); + + _createClass(Cursor, null, [{ + key: 'value', + value: function value() { + return undefined; + } + }]); + + function Cursor(domNode, selection) { + _classCallCheck(this, Cursor); + + var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode)); + + _this.selection = selection; + _this.textNode = document.createTextNode(Cursor.CONTENTS); + _this.domNode.appendChild(_this.textNode); + _this._length = 0; + return _this; + } + + _createClass(Cursor, [{ + key: 'detach', + value: function detach() { + // super.detach() will also clear domNode.__blot + if (this.parent != null) this.parent.removeChild(this); + } + }, { + key: 'format', + value: function format(name, value) { + if (this._length !== 0) { + return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value); + } + var target = this, + index = 0; + while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) { + index += target.offset(target.parent); + target = target.parent; + } + if (target != null) { + this._length = Cursor.CONTENTS.length; + target.optimize(); + target.formatAt(index, Cursor.CONTENTS.length, name, value); + this._length = 0; + } + } + }, { + key: 'index', + value: function index(node, offset) { + if (node === this.textNode) return 0; + return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset); + } + }, { + key: 'length', + value: function length() { + return this._length; + } + }, { + key: 'position', + value: function position() { + return [this.textNode, this.textNode.data.length]; + } + }, { + key: 'remove', + value: function remove() { + _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this); + this.parent = null; + } + }, { + key: 'restore', + value: function restore() { + if (this.selection.composing || this.parent == null) return; + var textNode = this.textNode; + var range = this.selection.getNativeRange(); + var restoreText = void 0, + start = void 0, + end = void 0; + if (range != null && range.start.node === textNode && range.end.node === textNode) { + var _ref = [textNode, range.start.offset, range.end.offset]; + restoreText = _ref[0]; + start = _ref[1]; + end = _ref[2]; + } + // Link format will insert text outside of anchor tag + while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) { + this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode); + } + if (this.textNode.data !== Cursor.CONTENTS) { + var text = this.textNode.data.split(Cursor.CONTENTS).join(''); + if (this.next instanceof _text2.default) { + restoreText = this.next.domNode; + this.next.insertAt(0, text); + this.textNode.data = Cursor.CONTENTS; + } else { + this.textNode.data = text; + this.parent.insertBefore(_parchment2.default.create(this.textNode), this); + this.textNode = document.createTextNode(Cursor.CONTENTS); + this.domNode.appendChild(this.textNode); + } + } + this.remove(); + if (start != null) { + var _map = [start, end].map(function (offset) { + return Math.max(0, Math.min(restoreText.data.length, offset - 1)); + }); + + var _map2 = _slicedToArray(_map, 2); + + start = _map2[0]; + end = _map2[1]; + + return { + startNode: restoreText, + startOffset: start, + endNode: restoreText, + endOffset: end + }; + } + } + }, { + key: 'update', + value: function update(mutations, context) { + var _this2 = this; + + if (mutations.some(function (mutation) { + return mutation.type === 'characterData' && mutation.target === _this2.textNode; + })) { + var range = this.restore(); + if (range) context.range = range; + } + } + }, { + key: 'value', + value: function value() { + return ''; + } + }]); + + return Cursor; +}(_parchment2.default.Embed); + +Cursor.blotName = 'cursor'; +Cursor.className = 'ql-cursor'; +Cursor.tagName = 'span'; +Cursor.CONTENTS = '\uFEFF'; // Zero width no break space + + +exports.default = Cursor; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Container = function (_Parchment$Container) { + _inherits(Container, _Parchment$Container); + + function Container() { + _classCallCheck(this, Container); + + return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments)); + } + + return Container; +}(_parchment2.default.Container); + +Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container]; + +exports.default = Container; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ColorAttributor = function (_Parchment$Attributor) { + _inherits(ColorAttributor, _Parchment$Attributor); + + function ColorAttributor() { + _classCallCheck(this, ColorAttributor); + + return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments)); + } + + _createClass(ColorAttributor, [{ + key: 'value', + value: function value(domNode) { + var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode); + if (!value.startsWith('rgb(')) return value; + value = value.replace(/^[^\d]+/, '').replace(/[^\d]+$/, ''); + return '#' + value.split(',').map(function (component) { + return ('00' + parseInt(component).toString(16)).slice(-2); + }).join(''); + } + }]); + + return ColorAttributor; +}(_parchment2.default.Attributor.Style); + +var ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', { + scope: _parchment2.default.Scope.INLINE +}); +var ColorStyle = new ColorAttributor('color', 'color', { + scope: _parchment2.default.Scope.INLINE +}); + +exports.ColorAttributor = ColorAttributor; +exports.ColorClass = ColorClass; +exports.ColorStyle = ColorStyle; + +/***/ }), +/* 27 */, +/* 28 */, +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _container = __webpack_require__(25); + +var _container2 = _interopRequireDefault(_container); + +var _cursor = __webpack_require__(24); + +var _cursor2 = _interopRequireDefault(_cursor); + +var _embed = __webpack_require__(35); + +var _embed2 = _interopRequireDefault(_embed); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _scroll = __webpack_require__(22); + +var _scroll2 = _interopRequireDefault(_scroll); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +var _clipboard = __webpack_require__(55); + +var _clipboard2 = _interopRequireDefault(_clipboard); + +var _history = __webpack_require__(42); + +var _history2 = _interopRequireDefault(_history); + +var _keyboard = __webpack_require__(23); + +var _keyboard2 = _interopRequireDefault(_keyboard); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +_quill2.default.Registro({ + 'blots/block': _block2.default, + 'blots/block/embed': _block.BlockEmbed, + 'blots/break': _break2.default, + 'blots/container': _container2.default, + 'blots/cursor': _cursor2.default, + 'blots/embed': _embed2.default, + 'blots/inline': _inline2.default, + 'blots/scroll': _scroll2.default, + 'blots/text': _text2.default, + + 'modules/clipboard': _clipboard2.default, + 'modules/history': _history2.default, + 'modules/keyboard': _keyboard2.default +}); + +_parchment2.default.Registro(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default); + +exports.default = _quill2.default; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var Registry = __webpack_require__(1); +var ShadowBlot = /** @class */ (function () { + function ShadowBlot(domNode) { + this.domNode = domNode; + // @ts-ignore + this.domNode[Registry.DATA_KEY] = { blot: this }; + } + Object.defineProperty(ShadowBlot.prototype, "statics", { + // Hack for accessing inherited static methods + get: function () { + return this.constructor; + }, + enumerable: true, + configurable: true + }); + ShadowBlot.create = function (value) { + if (this.tagName == null) { + throw new Registry.ParchmentError('Blot definition missing tagName'); + } + var node; + if (Array.isArray(this.tagName)) { + if (typeof value === 'string') { + value = value.toUpperCase(); + if (parseInt(value).toString() === value) { + value = parseInt(value); + } + } + if (typeof value === 'number') { + node = document.createElement(this.tagName[value - 1]); + } + else if (this.tagName.indexOf(value) > -1) { + node = document.createElement(value); + } + else { + node = document.createElement(this.tagName[0]); + } + } + else { + node = document.createElement(this.tagName); + } + if (this.className) { + node.classList.add(this.className); + } + return node; + }; + ShadowBlot.prototype.attach = function () { + if (this.parent != null) { + this.scroll = this.parent.scroll; + } + }; + ShadowBlot.prototype.clone = function () { + var domNode = this.domNode.cloneNode(false); + return Registry.create(domNode); + }; + ShadowBlot.prototype.detach = function () { + if (this.parent != null) + this.parent.removeChild(this); + // @ts-ignore + delete this.domNode[Registry.DATA_KEY]; + }; + ShadowBlot.prototype.deleteAt = function (index, length) { + var blot = this.isolate(index, length); + blot.remove(); + }; + ShadowBlot.prototype.formatAt = function (index, length, name, value) { + var blot = this.isolate(index, length); + if (Registry.query(name, Registry.Scope.BLOT) != null && value) { + blot.wrap(name, value); + } + else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) { + var parent = Registry.create(this.statics.scope); + blot.wrap(parent); + parent.format(name, value); + } + }; + ShadowBlot.prototype.insertAt = function (index, value, def) { + var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); + var ref = this.split(index); + this.parent.insertBefore(blot, ref); + }; + ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) { + if (refBlot === void 0) { refBlot = null; } + if (this.parent != null) { + this.parent.children.remove(this); + } + var refDomNode = null; + parentBlot.children.insertBefore(this, refBlot); + if (refBlot != null) { + refDomNode = refBlot.domNode; + } + if (this.domNode.parentNode != parentBlot.domNode || + this.domNode.nextSibling != refDomNode) { + parentBlot.domNode.insertBefore(this.domNode, refDomNode); + } + this.parent = parentBlot; + this.attach(); + }; + ShadowBlot.prototype.isolate = function (index, length) { + var target = this.split(index); + target.split(length); + return target; + }; + ShadowBlot.prototype.length = function () { + return 1; + }; + ShadowBlot.prototype.offset = function (root) { + if (root === void 0) { root = this.parent; } + if (this.parent == null || this == root) + return 0; + return this.parent.children.offset(this) + this.parent.offset(root); + }; + ShadowBlot.prototype.optimize = function (context) { + // TODO clean up once we use WeakMap + // @ts-ignore + if (this.domNode[Registry.DATA_KEY] != null) { + // @ts-ignore + delete this.domNode[Registry.DATA_KEY].mutations; + } + }; + ShadowBlot.prototype.remove = function () { + if (this.domNode.parentNode != null) { + this.domNode.parentNode.removeChild(this.domNode); + } + this.detach(); + }; + ShadowBlot.prototype.replace = function (target) { + if (target.parent == null) + return; + target.parent.insertBefore(this, target.next); + target.remove(); + }; + ShadowBlot.prototype.replaceWith = function (name, value) { + var replacement = typeof name === 'string' ? Registry.create(name, value) : name; + replacement.replace(this); + return replacement; + }; + ShadowBlot.prototype.split = function (index, force) { + return index === 0 ? this : this.next; + }; + ShadowBlot.prototype.update = function (mutations, context) { + // Nothing to do by default + }; + ShadowBlot.prototype.wrap = function (name, value) { + var wrapper = typeof name === 'string' ? Registry.create(name, value) : name; + if (this.parent != null) { + this.parent.insertBefore(wrapper, this.next); + } + wrapper.appendChild(this); + return wrapper; + }; + ShadowBlot.blotName = 'abstract'; + return ShadowBlot; +}()); +exports.default = ShadowBlot; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +var class_1 = __webpack_require__(32); +var style_1 = __webpack_require__(33); +var Registry = __webpack_require__(1); +var AttributorStore = /** @class */ (function () { + function AttributorStore(domNode) { + this.attributes = {}; + this.domNode = domNode; + this.build(); + } + AttributorStore.prototype.attribute = function (attribute, value) { + // verb + if (value) { + if (attribute.add(this.domNode, value)) { + if (attribute.value(this.domNode) != null) { + this.attributes[attribute.attrName] = attribute; + } + else { + delete this.attributes[attribute.attrName]; + } + } + } + else { + attribute.remove(this.domNode); + delete this.attributes[attribute.attrName]; + } + }; + AttributorStore.prototype.build = function () { + var _this = this; + this.attributes = {}; + var attributes = attributor_1.default.keys(this.domNode); + var classes = class_1.default.keys(this.domNode); + var styles = style_1.default.keys(this.domNode); + attributes + .concat(classes) + .concat(styles) + .forEach(function (name) { + var attr = Registry.query(name, Registry.Scope.ATTRIBUTE); + if (attr instanceof attributor_1.default) { + _this.attributes[attr.attrName] = attr; + } + }); + }; + AttributorStore.prototype.copy = function (target) { + var _this = this; + Object.keys(this.attributes).forEach(function (key) { + var value = _this.attributes[key].value(_this.domNode); + target.format(key, value); + }); + }; + AttributorStore.prototype.move = function (target) { + var _this = this; + this.copy(target); + Object.keys(this.attributes).forEach(function (key) { + _this.attributes[key].remove(_this.domNode); + }); + this.attributes = {}; + }; + AttributorStore.prototype.values = function () { + var _this = this; + return Object.keys(this.attributes).reduce(function (attributes, name) { + attributes[name] = _this.attributes[name].value(_this.domNode); + return attributes; + }, {}); + }; + return AttributorStore; +}()); +exports.default = AttributorStore; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +function match(node, prefix) { + var className = node.getAttribute('class') || ''; + return className.split(/\s+/).filter(function (name) { + return name.indexOf(prefix + "-") === 0; + }); +} +var ClassAttributor = /** @class */ (function (_super) { + __extends(ClassAttributor, _super); + function ClassAttributor() { + return _super !== null && _super.apply(this, arguments) || this; + } + ClassAttributor.keys = function (node) { + return (node.getAttribute('class') || '').split(/\s+/).map(function (name) { + return name + .split('-') + .slice(0, -1) + .join('-'); + }); + }; + ClassAttributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + this.remove(node); + node.classList.add(this.keyName + "-" + value); + return true; + }; + ClassAttributor.prototype.remove = function (node) { + var matches = match(node, this.keyName); + matches.forEach(function (name) { + node.classList.remove(name); + }); + if (node.classList.length === 0) { + node.removeAttribute('class'); + } + }; + ClassAttributor.prototype.value = function (node) { + var result = match(node, this.keyName)[0] || ''; + var value = result.slice(this.keyName.length + 1); // +1 for hyphen + return this.canAdd(node, value) ? value : ''; + }; + return ClassAttributor; +}(attributor_1.default)); +exports.default = ClassAttributor; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +function camelize(name) { + var parts = name.split('-'); + var rest = parts + .slice(1) + .map(function (part) { + return part[0].toUpperCase() + part.slice(1); + }) + .join(''); + return parts[0] + rest; +} +var StyleAttributor = /** @class */ (function (_super) { + __extends(StyleAttributor, _super); + function StyleAttributor() { + return _super !== null && _super.apply(this, arguments) || this; + } + StyleAttributor.keys = function (node) { + return (node.getAttribute('style') || '').split(';').map(function (value) { + var arr = value.split(':'); + return arr[0].trim(); + }); + }; + StyleAttributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + // @ts-ignore + node.style[camelize(this.keyName)] = value; + return true; + }; + StyleAttributor.prototype.remove = function (node) { + // @ts-ignore + node.style[camelize(this.keyName)] = ''; + if (!node.getAttribute('style')) { + node.removeAttribute('style'); + } + }; + StyleAttributor.prototype.value = function (node) { + // @ts-ignore + var value = node.style[camelize(this.keyName)]; + return this.canAdd(node, value) ? value : ''; + }; + return StyleAttributor; +}(attributor_1.default)); +exports.default = StyleAttributor; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Theme = function () { + function Theme(quill, options) { + _classCallCheck(this, Theme); + + this.quill = quill; + this.options = options; + this.modules = {}; + } + + _createClass(Theme, [{ + key: 'init', + value: function init() { + var _this = this; + + Object.keys(this.options.modules).forEach(function (name) { + if (_this.modules[name] == null) { + _this.addModule(name); + } + }); + } + }, { + key: 'addModule', + value: function addModule(name) { + var moduleClass = this.quill.constructor.import('modules/' + name); + this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {}); + return this.modules[name]; + } + }]); + + return Theme; +}(); + +Theme.DEFAULTS = { + modules: {} +}; +Theme.themes = { + 'default': Theme +}; + +exports.default = Theme; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var GUARD_TEXT = '\uFEFF'; + +var Embed = function (_Parchment$Embed) { + _inherits(Embed, _Parchment$Embed); + + function Embed(node) { + _classCallCheck(this, Embed); + + var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node)); + + _this.contentNode = document.createElement('span'); + _this.contentNode.setAttribute('contenteditable', false); + [].slice.call(_this.domNode.childNodes).forEach(function (childNode) { + _this.contentNode.appendChild(childNode); + }); + _this.leftGuard = document.createTextNode(GUARD_TEXT); + _this.rightGuard = document.createTextNode(GUARD_TEXT); + _this.domNode.appendChild(_this.leftGuard); + _this.domNode.appendChild(_this.contentNode); + _this.domNode.appendChild(_this.rightGuard); + return _this; + } + + _createClass(Embed, [{ + key: 'index', + value: function index(node, offset) { + if (node === this.leftGuard) return 0; + if (node === this.rightGuard) return 1; + return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset); + } + }, { + key: 'restore', + value: function restore(node) { + var range = void 0, + textNode = void 0; + var text = node.data.split(GUARD_TEXT).join(''); + if (node === this.leftGuard) { + if (this.prev instanceof _text2.default) { + var prevLength = this.prev.length(); + this.prev.insertAt(prevLength, text); + range = { + startNode: this.prev.domNode, + startOffset: prevLength + text.length + }; + } else { + textNode = document.createTextNode(text); + this.parent.insertBefore(_parchment2.default.create(textNode), this); + range = { + startNode: textNode, + startOffset: text.length + }; + } + } else if (node === this.rightGuard) { + if (this.next instanceof _text2.default) { + this.next.insertAt(0, text); + range = { + startNode: this.next.domNode, + startOffset: text.length + }; + } else { + textNode = document.createTextNode(text); + this.parent.insertBefore(_parchment2.default.create(textNode), this.next); + range = { + startNode: textNode, + startOffset: text.length + }; + } + } + node.data = GUARD_TEXT; + return range; + } + }, { + key: 'update', + value: function update(mutations, context) { + var _this2 = this; + + mutations.forEach(function (mutation) { + if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) { + var range = _this2.restore(mutation.target); + if (range) context.range = range; + } + }); + } + }]); + + return Embed; +}(_parchment2.default.Embed); + +exports.default = Embed; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var config = { + scope: _parchment2.default.Scope.BLOCK, + whitelist: ['right', 'center', 'justify'] +}; + +var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config); +var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config); +var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config); + +exports.AlignAttribute = AlignAttribute; +exports.AlignClass = AlignClass; +exports.AlignStyle = AlignStyle; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BackgroundStyle = exports.BackgroundClass = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _color = __webpack_require__(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', { + scope: _parchment2.default.Scope.INLINE +}); +var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', { + scope: _parchment2.default.Scope.INLINE +}); + +exports.BackgroundClass = BackgroundClass; +exports.BackgroundStyle = BackgroundStyle; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var config = { + scope: _parchment2.default.Scope.BLOCK, + whitelist: ['rtl'] +}; + +var DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config); +var DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config); +var DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config); + +exports.DirectionAttribute = DirectionAttribute; +exports.DirectionClass = DirectionClass; +exports.DirectionStyle = DirectionStyle; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FontClass = exports.FontStyle = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var config = { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['serif', 'monospace'] +}; + +var FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config); + +var FontStyleAttributor = function (_Parchment$Attributor) { + _inherits(FontStyleAttributor, _Parchment$Attributor); + + function FontStyleAttributor() { + _classCallCheck(this, FontStyleAttributor); + + return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments)); + } + + _createClass(FontStyleAttributor, [{ + key: 'value', + value: function value(node) { + return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/["']/g, ''); + } + }]); + + return FontStyleAttributor; +}(_parchment2.default.Attributor.Style); + +var FontStyle = new FontStyleAttributor('font', 'font-family', config); + +exports.FontStyle = FontStyle; +exports.FontClass = FontClass; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SizeStyle = exports.SizeClass = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['small', 'large', 'huge'] +}); +var SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['10px', '18px', '32px'] +}); + +exports.SizeClass = SizeClass; +exports.SizeStyle = SizeStyle; + +/***/ }), +/* 41 */, +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getLastChangeIndex = exports.default = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var History = function (_Module) { + _inherits(History, _Module); + + function History(quill, options) { + _classCallCheck(this, History); + + var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options)); + + _this.lastRecorded = 0; + _this.ignoreChange = false; + _this.clear(); + _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) { + if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return; + if (!_this.options.userOnly || source === _quill2.default.sources.USER) { + _this.record(delta, oldDelta); + } else { + _this.transform(delta); + } + }); + _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this)); + _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this)); + if (/Win/i.test(navigator.platform)) { + _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this)); + } + return _this; + } + + _createClass(History, [{ + key: 'change', + value: function change(source, dest) { + if (this.stack[source].length === 0) return; + var delta = this.stack[source].pop(); + this.stack[dest].push(delta); + this.lastRecorded = 0; + this.ignoreChange = true; + this.quill.updateContents(delta[source], _quill2.default.sources.USER); + this.ignoreChange = false; + var index = getLastChangeIndex(delta[source]); + this.quill.setSelection(index); + } + }, { + key: 'clear', + value: function clear() { + this.stack = { undo: [], redo: [] }; + } + }, { + key: 'cutoff', + value: function cutoff() { + this.lastRecorded = 0; + } + }, { + key: 'record', + value: function record(changeDelta, oldDelta) { + if (changeDelta.ops.length === 0) return; + this.stack.redo = []; + var undoDelta = this.quill.getContents().diff(oldDelta); + var timestamp = Date.now(); + if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) { + var delta = this.stack.undo.pop(); + undoDelta = undoDelta.compose(delta.undo); + changeDelta = delta.redo.compose(changeDelta); + } else { + this.lastRecorded = timestamp; + } + this.stack.undo.push({ + redo: changeDelta, + undo: undoDelta + }); + if (this.stack.undo.length > this.options.maxStack) { + this.stack.undo.shift(); + } + } + }, { + key: 'redo', + value: function redo() { + this.change('redo', 'undo'); + } + }, { + key: 'transform', + value: function transform(delta) { + this.stack.undo.forEach(function (change) { + change.undo = delta.transform(change.undo, true); + change.redo = delta.transform(change.redo, true); + }); + this.stack.redo.forEach(function (change) { + change.undo = delta.transform(change.undo, true); + change.redo = delta.transform(change.redo, true); + }); + } + }, { + key: 'undo', + value: function undo() { + this.change('undo', 'redo'); + } + }]); + + return History; +}(_module2.default); + +History.DEFAULTS = { + delay: 1000, + maxStack: 100, + userOnly: false +}; + +function endsWithNewlineChange(delta) { + var lastOp = delta.ops[delta.ops.length - 1]; + if (lastOp == null) return false; + if (lastOp.insert != null) { + return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\n'); + } + if (lastOp.attributes != null) { + return Object.keys(lastOp.attributes).some(function (attr) { + return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null; + }); + } + return false; +} + +function getLastChangeIndex(delta) { + var deleteLength = delta.reduce(function (length, op) { + length += op.delete || 0; + return length; + }, 0); + var changeIndex = delta.length() - deleteLength; + if (endsWithNewlineChange(delta)) { + changeIndex -= 1; + } + return changeIndex; +} + +exports.default = History; +exports.getLastChangeIndex = getLastChangeIndex; + +/***/ }), +/* 43 */, +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var LinkedList = /** @class */ (function () { + function LinkedList() { + this.head = this.tail = null; + this.length = 0; + } + LinkedList.prototype.append = function () { + var nodes = []; + for (var _i = 0; _i < arguments.length; _i++) { + nodes[_i] = arguments[_i]; + } + this.insertBefore(nodes[0], null); + if (nodes.length > 1) { + this.append.apply(this, nodes.slice(1)); + } + }; + LinkedList.prototype.contains = function (node) { + var cur, next = this.iterator(); + while ((cur = next())) { + if (cur === node) + return true; + } + return false; + }; + LinkedList.prototype.insertBefore = function (node, refNode) { + if (!node) + return; + node.next = refNode; + if (refNode != null) { + node.prev = refNode.prev; + if (refNode.prev != null) { + refNode.prev.next = node; + } + refNode.prev = node; + if (refNode === this.head) { + this.head = node; + } + } + else if (this.tail != null) { + this.tail.next = node; + node.prev = this.tail; + this.tail = node; + } + else { + node.prev = null; + this.head = this.tail = node; + } + this.length += 1; + }; + LinkedList.prototype.offset = function (target) { + var index = 0, cur = this.head; + while (cur != null) { + if (cur === target) + return index; + index += cur.length(); + cur = cur.next; + } + return -1; + }; + LinkedList.prototype.remove = function (node) { + if (!this.contains(node)) + return; + if (node.prev != null) + node.prev.next = node.next; + if (node.next != null) + node.next.prev = node.prev; + if (node === this.head) + this.head = node.next; + if (node === this.tail) + this.tail = node.prev; + this.length -= 1; + }; + LinkedList.prototype.iterator = function (curNode) { + if (curNode === void 0) { curNode = this.head; } + // TODO use yield when we can + return function () { + var ret = curNode; + if (curNode != null) + curNode = curNode.next; + return ret; + }; + }; + LinkedList.prototype.find = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + var cur, next = this.iterator(); + while ((cur = next())) { + var length = cur.length(); + if (index < length || + (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) { + return [cur, index]; + } + index -= length; + } + return [null, 0]; + }; + LinkedList.prototype.forEach = function (callback) { + var cur, next = this.iterator(); + while ((cur = next())) { + callback(cur); + } + }; + LinkedList.prototype.forEachAt = function (index, length, callback) { + if (length <= 0) + return; + var _a = this.find(index), startNode = _a[0], offset = _a[1]; + var cur, curIndex = index - offset, next = this.iterator(startNode); + while ((cur = next()) && curIndex < index + length) { + var curLength = cur.length(); + if (index > curIndex) { + callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index)); + } + else { + callback(cur, 0, Math.min(curLength, index + length - curIndex)); + } + curIndex += curLength; + } + }; + LinkedList.prototype.map = function (callback) { + return this.reduce(function (memo, cur) { + memo.push(callback(cur)); + return memo; + }, []); + }; + LinkedList.prototype.reduce = function (callback, memo) { + var cur, next = this.iterator(); + while ((cur = next())) { + memo = callback(memo, cur); + } + return memo; + }; + return LinkedList; +}()); +exports.default = LinkedList; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var container_1 = __webpack_require__(17); +var Registry = __webpack_require__(1); +var OBSERVER_CONFIG = { + attributes: true, + characterData: true, + characterDataOldValue: true, + childList: true, + subtree: true, +}; +var MAX_OPTIMIZE_ITERATIONS = 100; +var ScrollBlot = /** @class */ (function (_super) { + __extends(ScrollBlot, _super); + function ScrollBlot(node) { + var _this = _super.call(this, node) || this; + _this.scroll = _this; + _this.observer = new MutationObserver(function (mutations) { + _this.update(mutations); + }); + _this.observer.observe(_this.domNode, OBSERVER_CONFIG); + _this.attach(); + return _this; + } + ScrollBlot.prototype.detach = function () { + _super.prototype.detach.call(this); + this.observer.disconnect(); + }; + ScrollBlot.prototype.deleteAt = function (index, length) { + this.update(); + if (index === 0 && length === this.length()) { + this.children.forEach(function (child) { + child.remove(); + }); + } + else { + _super.prototype.deleteAt.call(this, index, length); + } + }; + ScrollBlot.prototype.formatAt = function (index, length, name, value) { + this.update(); + _super.prototype.formatAt.call(this, index, length, name, value); + }; + ScrollBlot.prototype.insertAt = function (index, value, def) { + this.update(); + _super.prototype.insertAt.call(this, index, value, def); + }; + ScrollBlot.prototype.optimize = function (mutations, context) { + var _this = this; + if (mutations === void 0) { mutations = []; } + if (context === void 0) { context = {}; } + _super.prototype.optimize.call(this, context); + // We must modify mutations directly, cannot make copy and then modify + var records = [].slice.call(this.observer.takeRecords()); + // Array.push currently seems to be implemented by a non-tail recursive function + // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords()); + while (records.length > 0) + mutations.push(records.pop()); + // TODO use WeakMap + var mark = function (blot, markParent) { + if (markParent === void 0) { markParent = true; } + if (blot == null || blot === _this) + return; + if (blot.domNode.parentNode == null) + return; + // @ts-ignore + if (blot.domNode[Registry.DATA_KEY].mutations == null) { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations = []; + } + if (markParent) + mark(blot.parent); + }; + var optimize = function (blot) { + // Post-order traversal + if ( + // @ts-ignore + blot.domNode[Registry.DATA_KEY] == null || + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations == null) { + return; + } + if (blot instanceof container_1.default) { + blot.children.forEach(optimize); + } + blot.optimize(context); + }; + var remaining = mutations; + for (var i = 0; remaining.length > 0; i += 1) { + if (i >= MAX_OPTIMIZE_ITERATIONS) { + throw new Error('[Parchment] Maximum optimize iterations reached'); + } + remaining.forEach(function (mutation) { + var blot = Registry.find(mutation.target, true); + if (blot == null) + return; + if (blot.domNode === mutation.target) { + if (mutation.type === 'childList') { + mark(Registry.find(mutation.previousSibling, false)); + [].forEach.call(mutation.addedNodes, function (node) { + var child = Registry.find(node, false); + mark(child, false); + if (child instanceof container_1.default) { + child.children.forEach(function (grandChild) { + mark(grandChild, false); + }); + } + }); + } + else if (mutation.type === 'attributes') { + mark(blot.prev); + } + } + mark(blot); + }); + this.children.forEach(optimize); + remaining = [].slice.call(this.observer.takeRecords()); + records = remaining.slice(); + while (records.length > 0) + mutations.push(records.pop()); + } + }; + ScrollBlot.prototype.update = function (mutations, context) { + var _this = this; + if (context === void 0) { context = {}; } + mutations = mutations || this.observer.takeRecords(); + // TODO use WeakMap + mutations + .map(function (mutation) { + var blot = Registry.find(mutation.target, true); + if (blot == null) + return null; + // @ts-ignore + if (blot.domNode[Registry.DATA_KEY].mutations == null) { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations = [mutation]; + return blot; + } + else { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations.push(mutation); + return null; + } + }) + .forEach(function (blot) { + if (blot == null || + blot === _this || + //@ts-ignore + blot.domNode[Registry.DATA_KEY] == null) + return; + // @ts-ignore + blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context); + }); + // @ts-ignore + if (this.domNode[Registry.DATA_KEY].mutations != null) { + // @ts-ignore + _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context); + } + this.optimize(mutations, context); + }; + ScrollBlot.blotName = 'scroll'; + ScrollBlot.defaultChild = 'block'; + ScrollBlot.scope = Registry.Scope.BLOCK_BLOT; + ScrollBlot.tagName = 'DIV'; + return ScrollBlot; +}(container_1.default)); +exports.default = ScrollBlot; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var format_1 = __webpack_require__(18); +var Registry = __webpack_require__(1); +// Shallow object comparison +function isEqual(obj1, obj2) { + if (Object.keys(obj1).length !== Object.keys(obj2).length) + return false; + // @ts-ignore + for (var prop in obj1) { + // @ts-ignore + if (obj1[prop] !== obj2[prop]) + return false; + } + return true; +} +var InlineBlot = /** @class */ (function (_super) { + __extends(InlineBlot, _super); + function InlineBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + InlineBlot.formats = function (domNode) { + if (domNode.tagName === InlineBlot.tagName) + return undefined; + return _super.formats.call(this, domNode); + }; + InlineBlot.prototype.format = function (name, value) { + var _this = this; + if (name === this.statics.blotName && !value) { + this.children.forEach(function (child) { + if (!(child instanceof format_1.default)) { + child = child.wrap(InlineBlot.blotName, true); + } + _this.attributes.copy(child); + }); + this.unwrap(); + } + else { + _super.prototype.format.call(this, name, value); + } + }; + InlineBlot.prototype.formatAt = function (index, length, name, value) { + if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) { + var blot = this.isolate(index, length); + blot.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + InlineBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + var formats = this.formats(); + if (Object.keys(formats).length === 0) { + return this.unwrap(); // unformatted span + } + var next = this.next; + if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) { + next.moveChildren(this); + next.remove(); + } + }; + InlineBlot.blotName = 'inline'; + InlineBlot.scope = Registry.Scope.INLINE_BLOT; + InlineBlot.tagName = 'SPAN'; + return InlineBlot; +}(format_1.default)); +exports.default = InlineBlot; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var format_1 = __webpack_require__(18); +var Registry = __webpack_require__(1); +var BlockBlot = /** @class */ (function (_super) { + __extends(BlockBlot, _super); + function BlockBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + BlockBlot.formats = function (domNode) { + var tagName = Registry.query(BlockBlot.blotName).tagName; + if (domNode.tagName === tagName) + return undefined; + return _super.formats.call(this, domNode); + }; + BlockBlot.prototype.format = function (name, value) { + if (Registry.query(name, Registry.Scope.BLOCK) == null) { + return; + } + else if (name === this.statics.blotName && !value) { + this.replaceWith(BlockBlot.blotName); + } + else { + _super.prototype.format.call(this, name, value); + } + }; + BlockBlot.prototype.formatAt = function (index, length, name, value) { + if (Registry.query(name, Registry.Scope.BLOCK) != null) { + this.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + BlockBlot.prototype.insertAt = function (index, value, def) { + if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) { + // Insert text or inline + _super.prototype.insertAt.call(this, index, value, def); + } + else { + var after = this.split(index); + var blot = Registry.create(value, def); + after.parent.insertBefore(blot, after); + } + }; + BlockBlot.prototype.update = function (mutations, context) { + if (navigator.userAgent.match(/Trident/)) { + this.build(); + } + else { + _super.prototype.update.call(this, mutations, context); + } + }; + BlockBlot.blotName = 'block'; + BlockBlot.scope = Registry.Scope.BLOCK_BLOT; + BlockBlot.tagName = 'P'; + return BlockBlot; +}(format_1.default)); +exports.default = BlockBlot; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var leaf_1 = __webpack_require__(19); +var EmbedBlot = /** @class */ (function (_super) { + __extends(EmbedBlot, _super); + function EmbedBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + EmbedBlot.formats = function (domNode) { + return undefined; + }; + EmbedBlot.prototype.format = function (name, value) { + // super.formatAt wraps, which is what we want in general, + // but this allows subclasses to overwrite for formats + // that just apply to particular embeds + _super.prototype.formatAt.call(this, 0, this.length(), name, value); + }; + EmbedBlot.prototype.formatAt = function (index, length, name, value) { + if (index === 0 && length === this.length()) { + this.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + EmbedBlot.prototype.formats = function () { + return this.statics.formats(this.domNode); + }; + return EmbedBlot; +}(leaf_1.default)); +exports.default = EmbedBlot; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var leaf_1 = __webpack_require__(19); +var Registry = __webpack_require__(1); +var TextBlot = /** @class */ (function (_super) { + __extends(TextBlot, _super); + function TextBlot(node) { + var _this = _super.call(this, node) || this; + _this.text = _this.statics.value(_this.domNode); + return _this; + } + TextBlot.create = function (value) { + return document.createTextNode(value); + }; + TextBlot.value = function (domNode) { + var text = domNode.data; + // @ts-ignore + if (text['normalize']) + text = text['normalize'](); + return text; + }; + TextBlot.prototype.deleteAt = function (index, length) { + this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length); + }; + TextBlot.prototype.index = function (node, offset) { + if (this.domNode === node) { + return offset; + } + return -1; + }; + TextBlot.prototype.insertAt = function (index, value, def) { + if (def == null) { + this.text = this.text.slice(0, index) + value + this.text.slice(index); + this.domNode.data = this.text; + } + else { + _super.prototype.insertAt.call(this, index, value, def); + } + }; + TextBlot.prototype.length = function () { + return this.text.length; + }; + TextBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + this.text = this.statics.value(this.domNode); + if (this.text.length === 0) { + this.remove(); + } + else if (this.next instanceof TextBlot && this.next.prev === this) { + this.insertAt(this.length(), this.next.value()); + this.next.remove(); + } + }; + TextBlot.prototype.position = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + return [this.domNode, index]; + }; + TextBlot.prototype.split = function (index, force) { + if (force === void 0) { force = false; } + if (!force) { + if (index === 0) + return this; + if (index === this.length()) + return this.next; + } + var after = Registry.create(this.domNode.splitText(index)); + this.parent.insertBefore(after, this.next); + this.text = this.statics.value(this.domNode); + return after; + }; + TextBlot.prototype.update = function (mutations, context) { + var _this = this; + if (mutations.some(function (mutation) { + return mutation.type === 'characterData' && mutation.target === _this.domNode; + })) { + this.text = this.statics.value(this.domNode); + } + }; + TextBlot.prototype.value = function () { + return this.text; + }; + TextBlot.blotName = 'text'; + TextBlot.scope = Registry.Scope.INLINE_BLOT; + return TextBlot; +}(leaf_1.default)); +exports.default = TextBlot; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var elem = document.createElement('div'); +elem.classList.toggle('test-class', false); +if (elem.classList.contains('test-class')) { + var _toggle = DOMTokenList.prototype.toggle; + DOMTokenList.prototype.toggle = function (token, force) { + if (arguments.length > 1 && !this.contains(token) === !force) { + return force; + } else { + return _toggle.call(this, token); + } + }; +} + +if (!String.prototype.startsWith) { + String.prototype.startsWith = function (BuscarString, position) { + position = position || 0; + return this.substr(position, BuscarString.length) === BuscarString; + }; +} + +if (!String.prototype.endsWith) { + String.prototype.endsWith = function (BuscarString, position) { + var subjectString = this.toString(); + if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { + position = subjectString.length; + } + position -= BuscarString.length; + var lastIndex = subjectString.indexOf(BuscarString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} + +if (!Array.prototype.find) { + Object.defineProperty(Array.prototype, "find", { + value: function value(predicate) { + if (this === null) { + throw new TypeError('Array.prototype.find called on null or undefined'); + } + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + var list = Object(this); + var length = list.length >>> 0; + var thisArg = arguments[1]; + var value; + + for (var i = 0; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { + return value; + } + } + return undefined; + } + }); +} + +document.addEventListener("DOMContentLoaded", function () { + // Disable resizing in Firefox + document.execCommand("enableObjectResizing", false, false); + // Disable automatic linkifying in IE11 + document.execCommand("autoUrlDetect", false, false); +}); + +/***/ }), +/* 51 */ +/***/ (function(module, exports) { + +/** + * This library modifies the diff-patch-match library by Neil Fraser + * by removing the patch and match functionality and certain advanced + * options in the diff function. The original license is as follows: + * + * === + * + * Diff Match and Patch + * + * Copyright 2006 Google Inc. + * http://code.google.com/p/google-diff-match-patch/ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** + * The data structure representing a diff is an array of tuples: + * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] + * which means: delete 'Hello', add 'Goodbye' and keep ' world.' + */ +var DIFF_DELETE = -1; +var DIFF_INSERT = 1; +var DIFF_EQUAL = 0; + + +/** + * Find the differences between two texts. Simplifies the problem by stripping + * any common prefix or suffix off the texts before diffing. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {Int} cursor_pos Expected edit position in text1 (optional) + * @return {Array} Array of diff tuples. + */ +function diff_main(text1, text2, cursor_pos) { + // Check for equality (speedup). + if (text1 == text2) { + if (text1) { + return [[DIFF_EQUAL, text1]]; + } + return []; + } + + // Check cursor_pos within bounds + if (cursor_pos < 0 || text1.length < cursor_pos) { + cursor_pos = null; + } + + // Trim off common prefix (speedup). + var commonlength = diff_commonPrefix(text1, text2); + var commonprefix = text1.substring(0, commonlength); + text1 = text1.substring(commonlength); + text2 = text2.substring(commonlength); + + // Trim off common suffix (speedup). + commonlength = diff_commonSuffix(text1, text2); + var commonsuffix = text1.substring(text1.length - commonlength); + text1 = text1.substring(0, text1.length - commonlength); + text2 = text2.substring(0, text2.length - commonlength); + + // Compute the diff on the middle block. + var diffs = diff_compute_(text1, text2); + + // Restore the prefix and suffix. + if (commonprefix) { + diffs.unshift([DIFF_EQUAL, commonprefix]); + } + if (commonsuffix) { + diffs.push([DIFF_EQUAL, commonsuffix]); + } + diff_cleanupMerge(diffs); + if (cursor_pos != null) { + diffs = fix_cursor(diffs, cursor_pos); + } + diffs = fix_emoji(diffs); + return diffs; +}; + + +/** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + */ +function diff_compute_(text1, text2) { + var diffs; + + if (!text1) { + // Just add some text (speedup). + return [[DIFF_INSERT, text2]]; + } + + if (!text2) { + // Just delete some text (speedup). + return [[DIFF_DELETE, text1]]; + } + + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + var i = longtext.indexOf(shorttext); + if (i != -1) { + // Shorter text is inside the longer text (speedup). + diffs = [[DIFF_INSERT, longtext.substring(0, i)], + [DIFF_EQUAL, shorttext], + [DIFF_INSERT, longtext.substring(i + shorttext.length)]]; + // Swap insertions for deletions if diff is reversed. + if (text1.length > text2.length) { + diffs[0][0] = diffs[2][0] = DIFF_DELETE; + } + return diffs; + } + + if (shorttext.length == 1) { + // Single character string. + // After the previous speedup, the character can't be an equality. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; + } + + // Check to see if the problem can be split in two. + var hm = diff_halfMatch_(text1, text2); + if (hm) { + // A half-match was found, sort out the return data. + var text1_a = hm[0]; + var text1_b = hm[1]; + var text2_a = hm[2]; + var text2_b = hm[3]; + var mid_common = hm[4]; + // Send both pairs off for separate processing. + var diffs_a = diff_main(text1_a, text2_a); + var diffs_b = diff_main(text1_b, text2_b); + // Merge the results. + return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); + } + + return diff_bisect_(text1, text2); +}; + + +/** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + * @private + */ +function diff_bisect_(text1, text2) { + // Cache the text lengths to prevent multiple calls. + var text1_length = text1.length; + var text2_length = text2.length; + var max_d = Math.ceil((text1_length + text2_length) / 2); + var v_offset = max_d; + var v_length = 2 * max_d; + var v1 = new Array(v_length); + var v2 = new Array(v_length); + // Setting all elements to -1 is faster in Chrome & Firefox than mixing + // integers and undefined. + for (var x = 0; x < v_length; x++) { + v1[x] = -1; + v2[x] = -1; + } + v1[v_offset + 1] = 0; + v2[v_offset + 1] = 0; + var delta = text1_length - text2_length; + // If the total number of characters is odd, then the front path will collide + // with the reverse path. + var front = (delta % 2 != 0); + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + var k1start = 0; + var k1end = 0; + var k2start = 0; + var k2end = 0; + for (var d = 0; d < max_d; d++) { + // Walk the front path one step. + for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { + var k1_offset = v_offset + k1; + var x1; + if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) { + x1 = v1[k1_offset + 1]; + } else { + x1 = v1[k1_offset - 1] + 1; + } + var y1 = x1 - k1; + while (x1 < text1_length && y1 < text2_length && + text1.charAt(x1) == text2.charAt(y1)) { + x1++; + y1++; + } + v1[k1_offset] = x1; + if (x1 > text1_length) { + // Ran off the right of the graph. + k1end += 2; + } else if (y1 > text2_length) { + // Ran off the bottom of the graph. + k1start += 2; + } else if (front) { + var k2_offset = v_offset + delta - k1; + if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) { + // Mirror x2 onto top-left coordinate system. + var x2 = text1_length - v2[k2_offset]; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + + // Walk the reverse path one step. + for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { + var k2_offset = v_offset + k2; + var x2; + if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) { + x2 = v2[k2_offset + 1]; + } else { + x2 = v2[k2_offset - 1] + 1; + } + var y2 = x2 - k2; + while (x2 < text1_length && y2 < text2_length && + text1.charAt(text1_length - x2 - 1) == + text2.charAt(text2_length - y2 - 1)) { + x2++; + y2++; + } + v2[k2_offset] = x2; + if (x2 > text1_length) { + // Ran off the left of the graph. + k2end += 2; + } else if (y2 > text2_length) { + // Ran off the top of the graph. + k2start += 2; + } else if (!front) { + var k1_offset = v_offset + delta - k2; + if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) { + var x1 = v1[k1_offset]; + var y1 = v_offset + x1 - k1_offset; + // Mirror x2 onto top-left coordinate system. + x2 = text1_length - x2; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + } + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; +}; + + +/** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} x Index of split point in text1. + * @param {number} y Index of split point in text2. + * @return {Array} Array of diff tuples. + */ +function diff_bisectSplit_(text1, text2, x, y) { + var text1a = text1.substring(0, x); + var text2a = text2.substring(0, y); + var text1b = text1.substring(x); + var text2b = text2.substring(y); + + // Compute both diffs serially. + var diffs = diff_main(text1a, text2a); + var diffsb = diff_main(text1b, text2b); + + return diffs.concat(diffsb); +}; + + +/** + * Determine the common prefix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the start of each + * string. + */ +function diff_commonPrefix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) { + return 0; + } + // Binary Buscar. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerstart = 0; + while (pointermin < pointermid) { + if (text1.substring(pointerstart, pointermid) == + text2.substring(pointerstart, pointermid)) { + pointermin = pointermid; + pointerstart = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + return pointermid; +}; + + +/** + * Determine the common suffix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the end of each string. + */ +function diff_commonSuffix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || + text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) { + return 0; + } + // Binary Buscar. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerend = 0; + while (pointermin < pointermid) { + if (text1.substring(text1.length - pointermid, text1.length - pointerend) == + text2.substring(text2.length - pointermid, text2.length - pointerend)) { + pointermin = pointermid; + pointerend = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + return pointermid; +}; + + +/** + * Do the two texts share a substring which is at least half the length of the + * longer text? + * This speedup can produce non-minimal diffs. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {Array.} Five element Array, containing the prefix of + * text1, the suffix of text1, the prefix of text2, the suffix of + * text2 and the common middle. Or null if there was no match. + */ +function diff_halfMatch_(text1, text2) { + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { + return null; // Pointless. + } + + /** + * Does a substring of shorttext exist within longtext such that the substring + * is at least half the length of longtext? + * Closure, but does not reference any external variables. + * @param {string} longtext Longer string. + * @param {string} shorttext Shorter string. + * @param {number} i Start index of quarter length substring within longtext. + * @return {Array.} Five element Array, containing the prefix of + * longtext, the suffix of longtext, the prefix of shorttext, the suffix + * of shorttext and the common middle. Or null if there was no match. + * @private + */ + function diff_halfMatchI_(longtext, shorttext, i) { + // Start with a 1/4 length substring at position i as a seed. + var seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); + var j = -1; + var best_common = ''; + var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; + while ((j = shorttext.indexOf(seed, j + 1)) != -1) { + var prefixLength = diff_commonPrefix(longtext.substring(i), + shorttext.substring(j)); + var suffixLength = diff_commonSuffix(longtext.substring(0, i), + shorttext.substring(0, j)); + if (best_common.length < suffixLength + prefixLength) { + best_common = shorttext.substring(j - suffixLength, j) + + shorttext.substring(j, j + prefixLength); + best_longtext_a = longtext.substring(0, i - suffixLength); + best_longtext_b = longtext.substring(i + prefixLength); + best_shorttext_a = shorttext.substring(0, j - suffixLength); + best_shorttext_b = shorttext.substring(j + prefixLength); + } + } + if (best_common.length * 2 >= longtext.length) { + return [best_longtext_a, best_longtext_b, + best_shorttext_a, best_shorttext_b, best_common]; + } else { + return null; + } + } + + // First check if the second quarter is the seed for a half-match. + var hm1 = diff_halfMatchI_(longtext, shorttext, + Math.ceil(longtext.length / 4)); + // Check again based on the third quarter. + var hm2 = diff_halfMatchI_(longtext, shorttext, + Math.ceil(longtext.length / 2)); + var hm; + if (!hm1 && !hm2) { + return null; + } else if (!hm2) { + hm = hm1; + } else if (!hm1) { + hm = hm2; + } else { + // Both matched. Select the longest. + hm = hm1[4].length > hm2[4].length ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + var text1_a, text1_b, text2_a, text2_b; + if (text1.length > text2.length) { + text1_a = hm[0]; + text1_b = hm[1]; + text2_a = hm[2]; + text2_b = hm[3]; + } else { + text2_a = hm[0]; + text2_b = hm[1]; + text1_a = hm[2]; + text1_b = hm[3]; + } + var mid_common = hm[4]; + return [text1_a, text1_b, text2_a, text2_b, mid_common]; +}; + + +/** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param {Array} diffs Array of diff tuples. + */ +function diff_cleanupMerge(diffs) { + diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end. + var pointer = 0; + var count_delete = 0; + var count_insert = 0; + var text_delete = ''; + var text_insert = ''; + var commonlength; + while (pointer < diffs.length) { + switch (diffs[pointer][0]) { + case DIFF_INSERT: + count_insert++; + text_insert += diffs[pointer][1]; + pointer++; + break; + case DIFF_DELETE: + count_delete++; + text_delete += diffs[pointer][1]; + pointer++; + break; + case DIFF_EQUAL: + // Upon reaching an equality, check for prior redundancies. + if (count_delete + count_insert > 1) { + if (count_delete !== 0 && count_insert !== 0) { + // Factor out any common prefixies. + commonlength = diff_commonPrefix(text_insert, text_delete); + if (commonlength !== 0) { + if ((pointer - count_delete - count_insert) > 0 && + diffs[pointer - count_delete - count_insert - 1][0] == + DIFF_EQUAL) { + diffs[pointer - count_delete - count_insert - 1][1] += + text_insert.substring(0, commonlength); + } else { + diffs.splice(0, 0, [DIFF_EQUAL, + text_insert.substring(0, commonlength)]); + pointer++; + } + text_insert = text_insert.substring(commonlength); + text_delete = text_delete.substring(commonlength); + } + // Factor out any common suffixies. + commonlength = diff_commonSuffix(text_insert, text_delete); + if (commonlength !== 0) { + diffs[pointer][1] = text_insert.substring(text_insert.length - + commonlength) + diffs[pointer][1]; + text_insert = text_insert.substring(0, text_insert.length - + commonlength); + text_delete = text_delete.substring(0, text_delete.length - + commonlength); + } + } + // Delete the offending records and add the merged ones. + if (count_delete === 0) { + diffs.splice(pointer - count_insert, + count_delete + count_insert, [DIFF_INSERT, text_insert]); + } else if (count_insert === 0) { + diffs.splice(pointer - count_delete, + count_delete + count_insert, [DIFF_DELETE, text_delete]); + } else { + diffs.splice(pointer - count_delete - count_insert, + count_delete + count_insert, [DIFF_DELETE, text_delete], + [DIFF_INSERT, text_insert]); + } + pointer = pointer - count_delete - count_insert + + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1; + } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) { + // Merge this equality with the previous one. + diffs[pointer - 1][1] += diffs[pointer][1]; + diffs.splice(pointer, 1); + } else { + pointer++; + } + count_insert = 0; + count_delete = 0; + text_delete = ''; + text_insert = ''; + break; + } + } + if (diffs[diffs.length - 1][1] === '') { + diffs.pop(); // Remove the dummy entry at the end. + } + + // Second pass: look for single edits surrounded on both sides by equalities + // which can be shifted sideways to eliminate an equality. + // e.g: ABAC -> ABAC + var changes = false; + pointer = 1; + // Intentionally ignore the first and last element (don't need checking). + while (pointer < diffs.length - 1) { + if (diffs[pointer - 1][0] == DIFF_EQUAL && + diffs[pointer + 1][0] == DIFF_EQUAL) { + // This is a single edit surrounded by equalities. + if (diffs[pointer][1].substring(diffs[pointer][1].length - + diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) { + // Shift the edit over the previous equality. + diffs[pointer][1] = diffs[pointer - 1][1] + + diffs[pointer][1].substring(0, diffs[pointer][1].length - + diffs[pointer - 1][1].length); + diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; + diffs.splice(pointer - 1, 1); + changes = true; + } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == + diffs[pointer + 1][1]) { + // Shift the edit over the next equality. + diffs[pointer - 1][1] += diffs[pointer + 1][1]; + diffs[pointer][1] = + diffs[pointer][1].substring(diffs[pointer + 1][1].length) + + diffs[pointer + 1][1]; + diffs.splice(pointer + 1, 1); + changes = true; + } + } + pointer++; + } + // If shifts were made, the diff needs reordering and another shift sweep. + if (changes) { + diff_cleanupMerge(diffs); + } +}; + + +var diff = diff_main; +diff.INSERT = DIFF_INSERT; +diff.DELETE = DIFF_DELETE; +diff.EQUAL = DIFF_EQUAL; + +module.exports = diff; + +/* + * Modify a diff such that the cursor position points to the start of a change: + * E.g. + * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1) + * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]] + * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2) + * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]] + * + * @param {Array} diffs Array of diff tuples + * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! + * @return {Array} A tuple [cursor location in the modified diff, modified diff] + */ +function cursor_normalize_diff (diffs, cursor_pos) { + if (cursor_pos === 0) { + return [DIFF_EQUAL, diffs]; + } + for (var current_pos = 0, i = 0; i < diffs.length; i++) { + var d = diffs[i]; + if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) { + var next_pos = current_pos + d[1].length; + if (cursor_pos === next_pos) { + return [i + 1, diffs]; + } else if (cursor_pos < next_pos) { + // copy to prevent side effects + diffs = diffs.slice(); + // split d into two diff changes + var split_pos = cursor_pos - current_pos; + var d_left = [d[0], d[1].slice(0, split_pos)]; + var d_right = [d[0], d[1].slice(split_pos)]; + diffs.splice(i, 1, d_left, d_right); + return [i + 1, diffs]; + } else { + current_pos = next_pos; + } + } + } + throw new Error('cursor_pos is out of bounds!') +} + +/* + * Modify a diff such that the edit position is "shifted" to the proposed edit location (cursor_position). + * + * Case 1) + * Check if a naive shift is possible: + * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X) + * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result + * Case 2) + * Check if the following shifts are possible: + * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix'] + * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix'] + * ^ ^ + * d d_next + * + * @param {Array} diffs Array of diff tuples + * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! + * @return {Array} Array of diff tuples + */ +function fix_cursor (diffs, cursor_pos) { + var norm = cursor_normalize_diff(diffs, cursor_pos); + var ndiffs = norm[1]; + var cursor_pointer = norm[0]; + var d = ndiffs[cursor_pointer]; + var d_next = ndiffs[cursor_pointer + 1]; + + if (d == null) { + // Text was deleted from end of original string, + // cursor is now out of bounds in new string + return diffs; + } else if (d[0] !== DIFF_EQUAL) { + // A modification happened at the cursor location. + // This is the expected outcome, so we can return the original diff. + return diffs; + } else { + if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) { + // Case 1) + // It is possible to perform a naive shift + ndiffs.splice(cursor_pointer, 2, d_next, d) + return merge_tuples(ndiffs, cursor_pointer, 2) + } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) { + // Case 2) + // d[1] is a prefix of d_next[1] + // We can assume that d_next[0] !== 0, since d[0] === 0 + // Shift edit locations.. + ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]); + var suffix = d_next[1].slice(d[1].length); + if (suffix.length > 0) { + ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]); + } + return merge_tuples(ndiffs, cursor_pointer, 3) + } else { + // Not possible to perform any modification + return diffs; + } + } +} + +/* + * Check diff did not split surrogate pairs. + * Ex. [0, '\uD83D'], [-1, '\uDC36'], [1, '\uDC2F'] -> [-1, '\uD83D\uDC36'], [1, '\uD83D\uDC2F'] + * '\uD83D\uDC36' === '🐶', '\uD83D\uDC2F' === '🐯' + * + * @param {Array} diffs Array of diff tuples + * @return {Array} Array of diff tuples + */ +function fix_emoji (diffs) { + var compact = false; + var starts_with_pair_end = function(str) { + return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF; + } + var ends_with_pair_start = function(str) { + return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF; + } + for (var i = 2; i < diffs.length; i += 1) { + if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) && + diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) && + diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) { + compact = true; + + diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1]; + diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1]; + + diffs[i-2][1] = diffs[i-2][1].slice(0, -1); + } + } + if (!compact) { + return diffs; + } + var fixed_diffs = []; + for (var i = 0; i < diffs.length; i += 1) { + if (diffs[i][1].length > 0) { + fixed_diffs.push(diffs[i]); + } + } + return fixed_diffs; +} + +/* + * Try to merge tuples with their neigbors in a given range. + * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab'] + * + * @param {Array} diffs Array of diff tuples. + * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]). + * @param {Int} length Number of consecutive elements to check. + * @return {Array} Array of merged diff tuples. + */ +function merge_tuples (diffs, start, length) { + // Check from (start-1) to (start+length). + for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) { + if (i + 1 < diffs.length) { + var left_d = diffs[i]; + var right_d = diffs[i+1]; + if (left_d[0] === right_d[1]) { + diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]); + } + } + } + return diffs; +} + + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + +exports = module.exports = typeof Object.keys === 'function' + ? Object.keys : shim; + +exports.shim = shim; +function shim (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +} + + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +var supportsArgumentsClass = (function(){ + return Object.prototype.toString.call(arguments) +})() == '[object Arguments]'; + +exports = module.exports = supportsArgumentsClass ? supported : unsupported; + +exports.supported = supported; +function supported(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +}; + +exports.unsupported = unsupported; +function unsupported(object){ + return object && + typeof object == 'object' && + typeof object.length == 'number' && + Object.prototype.hasOwnProperty.call(object, 'callee') && + !Object.prototype.propertyIsEnumerable.call(object, 'callee') || + false; +}; + + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +'use strict'; + +var has = Object.prototype.hasOwnProperty + , prefix = '~'; + +/** + * Constructor to create a storage for our `EE` objects. + * An `Events` instance is a plain object whose properties are event names. + * + * @constructor + * @api private + */ +function Events() {} + +// +// We try to not inherit from `Object.prototype`. In some engines creating an +// instance in this way is faster than calling `Object.create(null)` directly. +// If `Object.create(null)` is not supported we prefix the event names with a +// character to make sure that the built-in object properties are not +// overridden or used as an attack vector. +// +if (Object.create) { + Events.prototype = Object.create(null); + + // + // This hack is needed because the `__proto__` property is still inherited in + // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. + // + if (!new Events().__proto__) prefix = false; +} + +/** + * Representation of a single event listener. + * + * @param {Function} fn The listener function. + * @param {Mixed} context The context to invoke the listener with. + * @param {Boolean} [once=false] Specify if the listener is a one-time listener. + * @constructor + * @api private + */ +function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; +} + +/** + * Minimal `EventEmitter` interface that is molded against the Node.js + * `EventEmitter` interface. + * + * @constructor + * @api public + */ +function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; +} + +/** + * Return an array listing the events for which the emitter has Registroed + * listeners. + * + * @returns {Array} + * @api public + */ +EventEmitter.prototype.eventNames = function eventNames() { + var names = [] + , events + , name; + + if (this._eventsCount === 0) return names; + + for (name in (events = this._events)) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + + return names; +}; + +/** + * Return the listeners Registroed for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Boolean} exists Only check if there are listeners. + * @returns {Array|Boolean} + * @api public + */ +EventEmitter.prototype.listeners = function listeners(event, exists) { + var evt = prefix ? prefix + event : event + , available = this._events[evt]; + + if (exists) return !!available; + if (!available) return []; + if (available.fn) return [available.fn]; + + for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) { + ee[i] = available[i].fn; + } + + return ee; +}; + +/** + * Calls each of the listeners Registroed for a given event. + * + * @param {String|Symbol} event The event name. + * @returns {Boolean} `true` if the event had listeners, else `false`. + * @api public + */ +EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return false; + + var listeners = this._events[evt] + , len = arguments.length + , args + , i; + + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); + + switch (len) { + case 1: return listeners.fn.call(listeners.context), true; + case 2: return listeners.fn.call(listeners.context, a1), true; + case 3: return listeners.fn.call(listeners.context, a1, a2), true; + case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + + for (i = 1, args = new Array(len -1); i < len; i++) { + args[i - 1] = arguments[i]; + } + + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length + , j; + + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); + + switch (len) { + case 1: listeners[i].fn.call(listeners[i].context); break; + case 2: listeners[i].fn.call(listeners[i].context, a1); break; + case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; + case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; + default: + if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { + args[j - 1] = arguments[j]; + } + + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + + return true; +}; + +/** + * Add a listener for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn The listener function. + * @param {Mixed} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.on = function on(event, fn, context) { + var listener = new EE(fn, context || this) + , evt = prefix ? prefix + event : event; + + if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++; + else if (!this._events[evt].fn) this._events[evt].push(listener); + else this._events[evt] = [this._events[evt], listener]; + + return this; +}; + +/** + * Add a one-time listener for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn The listener function. + * @param {Mixed} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.once = function once(event, fn, context) { + var listener = new EE(fn, context || this, true) + , evt = prefix ? prefix + event : event; + + if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++; + else if (!this._events[evt].fn) this._events[evt].push(listener); + else this._events[evt] = [this._events[evt], listener]; + + return this; +}; + +/** + * Remove the listeners of a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn Only remove the listeners that match this function. + * @param {Mixed} context Only remove the listeners that have this context. + * @param {Boolean} once Only remove one-time listeners. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return this; + if (!fn) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + return this; + } + + var listeners = this._events[evt]; + + if (listeners.fn) { + if ( + listeners.fn === fn + && (!once || listeners.once) + && (!context || listeners.context === context) + ) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if ( + listeners[i].fn !== fn + || (once && !listeners[i].once) + || (context && listeners[i].context !== context) + ) { + events.push(listeners[i]); + } + } + + // + // Reset the array, or remove it completely if we have no more listeners. + // + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + + return this; +}; + +/** + * Remove all listeners, or those of the specified event. + * + * @param {String|Symbol} [event] The event name. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + } else { + this._events = new Events(); + this._eventsCount = 0; + } + + return this; +}; + +// +// Alias methods names because people roll like that. +// +EventEmitter.prototype.off = EventEmitter.prototype.removeListener; +EventEmitter.prototype.addListener = EventEmitter.prototype.on; + +// +// This function doesn't apply anymore. +// +EventEmitter.prototype.setMaxListeners = function setMaxListeners() { + return this; +}; + +// +// Expose the prefix. +// +EventEmitter.prefixed = prefix; + +// +// Allow `EventEmitter` to be imported as module namespace. +// +EventEmitter.EventEmitter = EventEmitter; + +// +// Expose the module. +// +if ('undefined' !== typeof module) { + module.exports = EventEmitter; +} + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _extend2 = __webpack_require__(3); + +var _extend3 = _interopRequireDefault(_extend2); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +var _align = __webpack_require__(36); + +var _background = __webpack_require__(37); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _color = __webpack_require__(26); + +var _direction = __webpack_require__(38); + +var _font = __webpack_require__(39); + +var _size = __webpack_require__(40); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:clipboard'); + +var DOM_KEY = '__ql-matcher'; + +var CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]]; + +var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) { + memo[attr.keyName] = attr; + return memo; +}, {}); + +var STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) { + memo[attr.keyName] = attr; + return memo; +}, {}); + +var Clipboard = function (_Module) { + _inherits(Clipboard, _Module); + + function Clipboard(quill, options) { + _classCallCheck(this, Clipboard); + + var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options)); + + _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this)); + _this.container = _this.quill.addContainer('ql-clipboard'); + _this.container.setAttribute('contenteditable', true); + _this.container.setAttribute('tabindex', -1); + _this.matchers = []; + CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + selector = _ref2[0], + matcher = _ref2[1]; + + if (!options.matchVisual && matcher === matchSpacing) return; + _this.addMatcher(selector, matcher); + }); + return _this; + } + + _createClass(Clipboard, [{ + key: 'addMatcher', + value: function addMatcher(selector, matcher) { + this.matchers.push([selector, matcher]); + } + }, { + key: 'convert', + value: function convert(html) { + if (typeof html === 'string') { + this.container.innerHTML = html.replace(/\>\r?\n +\<'); // Remove spaces between tags + return this.convert(); + } + var formats = this.quill.getFormat(this.quill.selection.savedRange.index); + if (formats[_code2.default.blotName]) { + var text = this.container.innerText; + this.container.innerHTML = ''; + return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName])); + } + + var _prepareMatching = this.prepareMatching(), + _prepareMatching2 = _slicedToArray(_prepareMatching, 2), + elementMatchers = _prepareMatching2[0], + textMatchers = _prepareMatching2[1]; + + var delta = traverse(this.container, elementMatchers, textMatchers); + // Remove trailing newline + if (deltaEndsWith(delta, '\n') && delta.ops[delta.ops.length - 1].attributes == null) { + delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1)); + } + debug.log('convert', this.container.innerHTML, delta); + this.container.innerHTML = ''; + return delta; + } + }, { + key: 'dangerouslyPasteHTML', + value: function dangerouslyPasteHTML(index, html) { + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API; + + if (typeof index === 'string') { + this.quill.setContents(this.convert(index), html); + this.quill.setSelection(0, _quill2.default.sources.SILENT); + } else { + var paste = this.convert(html); + this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source); + this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT); + } + } + }, { + key: 'onPaste', + value: function onPaste(e) { + var _this2 = this; + + if (e.defaultPrevented || !this.quill.isEnabled()) return; + var range = this.quill.getSelection(); + var delta = new _quillDelta2.default().retain(range.index); + var scrollTop = this.quill.scrollingContainer.scrollTop; + this.container.focus(); + this.quill.selection.update(_quill2.default.sources.SILENT); + setTimeout(function () { + delta = delta.concat(_this2.convert()).delete(range.length); + _this2.quill.updateContents(delta, _quill2.default.sources.USER); + // range.length contributes to delta.length() + _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT); + _this2.quill.scrollingContainer.scrollTop = scrollTop; + _this2.quill.focus(); + }, 1); + } + }, { + key: 'prepareMatching', + value: function prepareMatching() { + var _this3 = this; + + var elementMatchers = [], + textMatchers = []; + this.matchers.forEach(function (pair) { + var _pair = _slicedToArray(pair, 2), + selector = _pair[0], + matcher = _pair[1]; + + switch (selector) { + case Node.TEXT_NODE: + textMatchers.push(matcher); + break; + case Node.ELEMENT_NODE: + elementMatchers.push(matcher); + break; + default: + [].forEach.call(_this3.container.querySelectorAll(selector), function (node) { + // TODO use weakmap + node[DOM_KEY] = node[DOM_KEY] || []; + node[DOM_KEY].push(matcher); + }); + break; + } + }); + return [elementMatchers, textMatchers]; + } + }]); + + return Clipboard; +}(_module2.default); + +Clipboard.DEFAULTS = { + matchers: [], + matchVisual: true +}; + +function applyFormat(delta, format, value) { + if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') { + return Object.keys(format).reduce(function (delta, key) { + return applyFormat(delta, key, format[key]); + }, delta); + } else { + return delta.reduce(function (delta, op) { + if (op.attributes && op.attributes[format]) { + return delta.push(op); + } else { + return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes)); + } + }, new _quillDelta2.default()); + } +} + +function computeStyle(node) { + if (node.nodeType !== Node.ELEMENT_NODE) return {}; + var DOM_KEY = '__ql-computed-style'; + return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node)); +} + +function deltaEndsWith(delta, text) { + var endText = ""; + for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) { + var op = delta.ops[i]; + if (typeof op.insert !== 'string') break; + endText = op.insert + endText; + } + return endText.slice(-1 * text.length) === text; +} + +function isLine(node) { + if (node.childNodes.length === 0) return false; // Exclude embed blocks + var style = computeStyle(node); + return ['block', 'list-item'].indexOf(style.display) > -1; +} + +function traverse(node, elementMatchers, textMatchers) { + // Post-order + if (node.nodeType === node.TEXT_NODE) { + return textMatchers.reduce(function (delta, matcher) { + return matcher(node, delta); + }, new _quillDelta2.default()); + } else if (node.nodeType === node.ELEMENT_NODE) { + return [].reduce.call(node.childNodes || [], function (delta, childNode) { + var childrenDelta = traverse(childNode, elementMatchers, textMatchers); + if (childNode.nodeType === node.ELEMENT_NODE) { + childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) { + return matcher(childNode, childrenDelta); + }, childrenDelta); + childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) { + return matcher(childNode, childrenDelta); + }, childrenDelta); + } + return delta.concat(childrenDelta); + }, new _quillDelta2.default()); + } else { + return new _quillDelta2.default(); + } +} + +function matchAlias(format, node, delta) { + return applyFormat(delta, format, true); +} + +function matchAttributor(node, delta) { + var attributes = _parchment2.default.Attributor.Attribute.keys(node); + var classes = _parchment2.default.Attributor.Class.keys(node); + var styles = _parchment2.default.Attributor.Style.keys(node); + var formats = {}; + attributes.concat(classes).concat(styles).forEach(function (name) { + var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE); + if (attr != null) { + formats[attr.attrName] = attr.value(node); + if (formats[attr.attrName]) return; + } + attr = ATTRIBUTE_ATTRIBUTORS[name]; + if (attr != null && (attr.attrName === name || attr.keyName === name)) { + formats[attr.attrName] = attr.value(node) || undefined; + } + attr = STYLE_ATTRIBUTORS[name]; + if (attr != null && (attr.attrName === name || attr.keyName === name)) { + attr = STYLE_ATTRIBUTORS[name]; + formats[attr.attrName] = attr.value(node) || undefined; + } + }); + if (Object.keys(formats).length > 0) { + delta = applyFormat(delta, formats); + } + return delta; +} + +function matchBlot(node, delta) { + var match = _parchment2.default.query(node); + if (match == null) return delta; + if (match.prototype instanceof _parchment2.default.Embed) { + var embed = {}; + var value = match.value(node); + if (value != null) { + embed[match.blotName] = value; + delta = new _quillDelta2.default().insert(embed, match.formats(node)); + } + } else if (typeof match.formats === 'function') { + delta = applyFormat(delta, match.blotName, match.formats(node)); + } + return delta; +} + +function matchBreak(node, delta) { + if (!deltaEndsWith(delta, '\n')) { + delta.insert('\n'); + } + return delta; +} + +function matchIgnore() { + return new _quillDelta2.default(); +} + +function matchIndent(node, delta) { + var match = _parchment2.default.query(node); + if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\n')) { + return delta; + } + var indent = -1, + parent = node.parentNode; + while (!parent.classList.contains('ql-clipboard')) { + if ((_parchment2.default.query(parent) || {}).blotName === 'list') { + indent += 1; + } + parent = parent.parentNode; + } + if (indent <= 0) return delta; + return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent })); +} + +function matchNewline(node, delta) { + if (!deltaEndsWith(delta, '\n')) { + if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) { + delta.insert('\n'); + } + } + return delta; +} + +function matchSpacing(node, delta) { + if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\n\n')) { + var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom); + if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) { + delta.insert('\n'); + } + } + return delta; +} + +function matchStyles(node, delta) { + var formats = {}; + var style = node.style || {}; + if (style.fontStyle && computeStyle(node).fontStyle === 'italic') { + formats.italic = true; + } + if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) { + formats.bold = true; + } + if (Object.keys(formats).length > 0) { + delta = applyFormat(delta, formats); + } + if (parseFloat(style.textIndent || 0) > 0) { + // Could be 0.5in + delta = new _quillDelta2.default().insert('\t').concat(delta); + } + return delta; +} + +function matchText(node, delta) { + var text = node.data; + // Word represents empty line with   + if (node.parentNode.tagName === 'O:P') { + return delta.insert(text.trim()); + } + if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) { + return delta; + } + if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) { + // eslint-disable-next-line func-style + var replacer = function replacer(collapse, match) { + match = match.replace(/[^\u00a0]/g, ''); // \u00a0 is nbsp; + return match.length < 1 && collapse ? ' ' : match; + }; + text = text.replace(/\r\n/g, ' ').replace(/\n/g, ' '); + text = text.replace(/\s\s+/g, replacer.bind(replacer, true)); // collapse whitespace + if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) { + text = text.replace(/^\s+/, replacer.bind(replacer, false)); + } + if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) { + text = text.replace(/\s+$/, replacer.bind(replacer, false)); + } + } + return delta.insert(text); +} + +exports.default = Clipboard; +exports.matchAttributor = matchAttributor; +exports.matchBlot = matchBlot; +exports.matchNewline = matchNewline; +exports.matchSpacing = matchSpacing; +exports.matchText = matchText; + +/***/ }), +/* 56 */, +/* 57 */, +/* 58 */, +/* 59 */, +/* 60 */, +/* 61 */, +/* 62 */, +/* 63 */, +/* 64 */, +/* 65 */, +/* 66 */, +/* 67 */, +/* 68 */, +/* 69 */, +/* 70 */, +/* 71 */, +/* 72 */, +/* 73 */, +/* 74 */, +/* 75 */, +/* 76 */, +/* 77 */, +/* 78 */, +/* 79 */, +/* 80 */, +/* 81 */, +/* 82 */, +/* 83 */, +/* 84 */, +/* 85 */, +/* 86 */, +/* 87 */, +/* 88 */, +/* 89 */, +/* 90 */, +/* 91 */, +/* 92 */, +/* 93 */, +/* 94 */, +/* 95 */, +/* 96 */, +/* 97 */, +/* 98 */, +/* 99 */, +/* 100 */, +/* 101 */, +/* 102 */, +/* 103 */, +/* 104 */, +/* 105 */, +/* 106 */, +/* 107 */, +/* 108 */, +/* 109 */, +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(29); + + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/quill/quill.js b/Practica-14.5/src/assets/vendor/quill/quill.js new file mode 100644 index 0000000..0dd570f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.js @@ -0,0 +1,11562 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Quill"] = factory(); + else + root["Quill"] = factory(); +})(typeof self !== 'undefined' ? self : this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 109); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var container_1 = __webpack_require__(17); +var format_1 = __webpack_require__(18); +var leaf_1 = __webpack_require__(19); +var scroll_1 = __webpack_require__(45); +var inline_1 = __webpack_require__(46); +var block_1 = __webpack_require__(47); +var embed_1 = __webpack_require__(48); +var text_1 = __webpack_require__(49); +var attributor_1 = __webpack_require__(12); +var class_1 = __webpack_require__(32); +var style_1 = __webpack_require__(33); +var store_1 = __webpack_require__(31); +var Registry = __webpack_require__(1); +var Parchment = { + Scope: Registry.Scope, + create: Registry.create, + find: Registry.find, + query: Registry.query, + Registro: Registry.Registro, + Container: container_1.default, + Format: format_1.default, + Leaf: leaf_1.default, + Embed: embed_1.default, + Scroll: scroll_1.default, + Block: block_1.default, + Inline: inline_1.default, + Text: text_1.default, + Attributor: { + Attribute: attributor_1.default, + Class: class_1.default, + Style: style_1.default, + Store: store_1.default, + }, +}; +exports.default = Parchment; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var ParchmentError = /** @class */ (function (_super) { + __extends(ParchmentError, _super); + function ParchmentError(message) { + var _this = this; + message = '[Parchment] ' + message; + _this = _super.call(this, message) || this; + _this.message = message; + _this.name = _this.constructor.name; + return _this; + } + return ParchmentError; +}(Error)); +exports.ParchmentError = ParchmentError; +var attributes = {}; +var classes = {}; +var tags = {}; +var types = {}; +exports.DATA_KEY = '__blot'; +var Scope; +(function (Scope) { + Scope[Scope["TYPE"] = 3] = "TYPE"; + Scope[Scope["LEVEL"] = 12] = "LEVEL"; + Scope[Scope["ATTRIBUTE"] = 13] = "ATTRIBUTE"; + Scope[Scope["BLOT"] = 14] = "BLOT"; + Scope[Scope["INLINE"] = 7] = "INLINE"; + Scope[Scope["BLOCK"] = 11] = "BLOCK"; + Scope[Scope["BLOCK_BLOT"] = 10] = "BLOCK_BLOT"; + Scope[Scope["INLINE_BLOT"] = 6] = "INLINE_BLOT"; + Scope[Scope["BLOCK_ATTRIBUTE"] = 9] = "BLOCK_ATTRIBUTE"; + Scope[Scope["INLINE_ATTRIBUTE"] = 5] = "INLINE_ATTRIBUTE"; + Scope[Scope["ANY"] = 15] = "ANY"; +})(Scope = exports.Scope || (exports.Scope = {})); +function create(input, value) { + var match = query(input); + if (match == null) { + throw new ParchmentError("Unable to create " + input + " blot"); + } + var BlotClass = match; + var node = + // @ts-ignore + input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value); + return new BlotClass(node, value); +} +exports.create = create; +function find(node, bubble) { + if (bubble === void 0) { bubble = false; } + if (node == null) + return null; + // @ts-ignore + if (node[exports.DATA_KEY] != null) + return node[exports.DATA_KEY].blot; + if (bubble) + return find(node.parentNode, bubble); + return null; +} +exports.find = find; +function query(query, scope) { + if (scope === void 0) { scope = Scope.ANY; } + var match; + if (typeof query === 'string') { + match = types[query] || attributes[query]; + // @ts-ignore + } + else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) { + match = types['text']; + } + else if (typeof query === 'number') { + if (query & Scope.LEVEL & Scope.BLOCK) { + match = types['block']; + } + else if (query & Scope.LEVEL & Scope.INLINE) { + match = types['inline']; + } + } + else if (query instanceof HTMLElement) { + var names = (query.getAttribute('class') || '').split(/\s+/); + for (var i in names) { + match = classes[names[i]]; + if (match) + break; + } + match = match || tags[query.tagName]; + } + if (match == null) + return null; + // @ts-ignore + if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope) + return match; + return null; +} +exports.query = query; +function Registro() { + var Definitions = []; + for (var _i = 0; _i < arguments.length; _i++) { + Definitions[_i] = arguments[_i]; + } + if (Definitions.length > 1) { + return Definitions.map(function (d) { + return Registro(d); + }); + } + var Definition = Definitions[0]; + if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') { + throw new ParchmentError('Invalid definition'); + } + else if (Definition.blotName === 'abstract') { + throw new ParchmentError('Cannot Registro abstract class'); + } + types[Definition.blotName || Definition.attrName] = Definition; + if (typeof Definition.keyName === 'string') { + attributes[Definition.keyName] = Definition; + } + else { + if (Definition.className != null) { + classes[Definition.className] = Definition; + } + if (Definition.tagName != null) { + if (Array.isArray(Definition.tagName)) { + Definition.tagName = Definition.tagName.map(function (tagName) { + return tagName.toUpperCase(); + }); + } + else { + Definition.tagName = Definition.tagName.toUpperCase(); + } + var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName]; + tagNames.forEach(function (tag) { + if (tags[tag] == null || Definition.className == null) { + tags[tag] = Definition; + } + }); + } + } + return Definition; +} +exports.Registro = Registro; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +var diff = __webpack_require__(51); +var equal = __webpack_require__(11); +var extend = __webpack_require__(3); +var op = __webpack_require__(20); + + +var NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff() + + +var Delta = function (ops) { + // Assume we are given a well formed ops + if (Array.isArray(ops)) { + this.ops = ops; + } else if (ops != null && Array.isArray(ops.ops)) { + this.ops = ops.ops; + } else { + this.ops = []; + } +}; + + +Delta.prototype.insert = function (text, attributes) { + var newOp = {}; + if (text.length === 0) return this; + newOp.insert = text; + if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) { + newOp.attributes = attributes; + } + return this.push(newOp); +}; + +Delta.prototype['delete'] = function (length) { + if (length <= 0) return this; + return this.push({ 'delete': length }); +}; + +Delta.prototype.retain = function (length, attributes) { + if (length <= 0) return this; + var newOp = { retain: length }; + if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) { + newOp.attributes = attributes; + } + return this.push(newOp); +}; + +Delta.prototype.push = function (newOp) { + var index = this.ops.length; + var lastOp = this.ops[index - 1]; + newOp = extend(true, {}, newOp); + if (typeof lastOp === 'object') { + if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') { + this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] }; + return this; + } + // Since it does not matter if we insert before or after deleting at the same index, + // always prefer to insert first + if (typeof lastOp['delete'] === 'number' && newOp.insert != null) { + index -= 1; + lastOp = this.ops[index - 1]; + if (typeof lastOp !== 'object') { + this.ops.unshift(newOp); + return this; + } + } + if (equal(newOp.attributes, lastOp.attributes)) { + if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') { + this.ops[index - 1] = { insert: lastOp.insert + newOp.insert }; + if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes + return this; + } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') { + this.ops[index - 1] = { retain: lastOp.retain + newOp.retain }; + if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes + return this; + } + } + } + if (index === this.ops.length) { + this.ops.push(newOp); + } else { + this.ops.splice(index, 0, newOp); + } + return this; +}; + +Delta.prototype.chop = function () { + var lastOp = this.ops[this.ops.length - 1]; + if (lastOp && lastOp.retain && !lastOp.attributes) { + this.ops.pop(); + } + return this; +}; + +Delta.prototype.filter = function (predicate) { + return this.ops.filter(predicate); +}; + +Delta.prototype.forEach = function (predicate) { + this.ops.forEach(predicate); +}; + +Delta.prototype.map = function (predicate) { + return this.ops.map(predicate); +}; + +Delta.prototype.partition = function (predicate) { + var passed = [], failed = []; + this.forEach(function(op) { + var target = predicate(op) ? passed : failed; + target.push(op); + }); + return [passed, failed]; +}; + +Delta.prototype.reduce = function (predicate, initial) { + return this.ops.reduce(predicate, initial); +}; + +Delta.prototype.changeLength = function () { + return this.reduce(function (length, elem) { + if (elem.insert) { + return length + op.length(elem); + } else if (elem.delete) { + return length - elem.delete; + } + return length; + }, 0); +}; + +Delta.prototype.length = function () { + return this.reduce(function (length, elem) { + return length + op.length(elem); + }, 0); +}; + +Delta.prototype.slice = function (start, end) { + start = start || 0; + if (typeof end !== 'number') end = Infinity; + var ops = []; + var iter = op.iterator(this.ops); + var index = 0; + while (index < end && iter.hasNext()) { + var nextOp; + if (index < start) { + nextOp = iter.next(start - index); + } else { + nextOp = iter.next(end - index); + ops.push(nextOp); + } + index += op.length(nextOp); + } + return new Delta(ops); +}; + + +Delta.prototype.compose = function (other) { + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + var ops = []; + var firstOther = otherIter.peek(); + if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) { + var firstLeft = firstOther.retain; + while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) { + firstLeft -= thisIter.peekLength(); + ops.push(thisIter.next()); + } + if (firstOther.retain - firstLeft > 0) { + otherIter.next(firstOther.retain - firstLeft); + } + } + var delta = new Delta(ops); + while (thisIter.hasNext() || otherIter.hasNext()) { + if (otherIter.peekType() === 'insert') { + delta.push(otherIter.next()); + } else if (thisIter.peekType() === 'delete') { + delta.push(thisIter.next()); + } else { + var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); + var thisOp = thisIter.next(length); + var otherOp = otherIter.next(length); + if (typeof otherOp.retain === 'number') { + var newOp = {}; + if (typeof thisOp.retain === 'number') { + newOp.retain = length; + } else { + newOp.insert = thisOp.insert; + } + // Preserve null when composing with a retain, otherwise remove it for inserts + var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number'); + if (attributes) newOp.attributes = attributes; + delta.push(newOp); + + // Optimization if rest of other is just retain + if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) { + var rest = new Delta(thisIter.rest()); + return delta.concat(rest).chop(); + } + + // Other op should be delete, we could be an insert or retain + // Insert + delete cancels out + } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') { + delta.push(otherOp); + } + } + } + return delta.chop(); +}; + +Delta.prototype.concat = function (other) { + var delta = new Delta(this.ops.slice()); + if (other.ops.length > 0) { + delta.push(other.ops[0]); + delta.ops = delta.ops.concat(other.ops.slice(1)); + } + return delta; +}; + +Delta.prototype.diff = function (other, index) { + if (this.ops === other.ops) { + return new Delta(); + } + var strings = [this, other].map(function (delta) { + return delta.map(function (op) { + if (op.insert != null) { + return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER; + } + var prep = (delta === other) ? 'on' : 'with'; + throw new Error('diff() called ' + prep + ' non-document'); + }).join(''); + }); + var delta = new Delta(); + var diffResult = diff(strings[0], strings[1], index); + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + diffResult.forEach(function (component) { + var length = component[1].length; + while (length > 0) { + var opLength = 0; + switch (component[0]) { + case diff.INSERT: + opLength = Math.min(otherIter.peekLength(), length); + delta.push(otherIter.next(opLength)); + break; + case diff.DELETE: + opLength = Math.min(length, thisIter.peekLength()); + thisIter.next(opLength); + delta['delete'](opLength); + break; + case diff.EQUAL: + opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length); + var thisOp = thisIter.next(opLength); + var otherOp = otherIter.next(opLength); + if (equal(thisOp.insert, otherOp.insert)) { + delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes)); + } else { + delta.push(otherOp)['delete'](opLength); + } + break; + } + length -= opLength; + } + }); + return delta.chop(); +}; + +Delta.prototype.eachLine = function (predicate, newline) { + newline = newline || '\n'; + var iter = op.iterator(this.ops); + var line = new Delta(); + var i = 0; + while (iter.hasNext()) { + if (iter.peekType() !== 'insert') return; + var thisOp = iter.peek(); + var start = op.length(thisOp) - iter.peekLength(); + var index = typeof thisOp.insert === 'string' ? + thisOp.insert.indexOf(newline, start) - start : -1; + if (index < 0) { + line.push(iter.next()); + } else if (index > 0) { + line.push(iter.next(index)); + } else { + if (predicate(line, iter.next(1).attributes || {}, i) === false) { + return; + } + i += 1; + line = new Delta(); + } + } + if (line.length() > 0) { + predicate(line, {}, i); + } +}; + +Delta.prototype.transform = function (other, priority) { + priority = !!priority; + if (typeof other === 'number') { + return this.transformPosition(other, priority); + } + var thisIter = op.iterator(this.ops); + var otherIter = op.iterator(other.ops); + var delta = new Delta(); + while (thisIter.hasNext() || otherIter.hasNext()) { + if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) { + delta.retain(op.length(thisIter.next())); + } else if (otherIter.peekType() === 'insert') { + delta.push(otherIter.next()); + } else { + var length = Math.min(thisIter.peekLength(), otherIter.peekLength()); + var thisOp = thisIter.next(length); + var otherOp = otherIter.next(length); + if (thisOp['delete']) { + // Our delete either makes their delete redundant or removes their retain + continue; + } else if (otherOp['delete']) { + delta.push(otherOp); + } else { + // We retain either their retain or insert + delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority)); + } + } + } + return delta.chop(); +}; + +Delta.prototype.transformPosition = function (index, priority) { + priority = !!priority; + var thisIter = op.iterator(this.ops); + var offset = 0; + while (thisIter.hasNext() && offset <= index) { + var length = thisIter.peekLength(); + var nextType = thisIter.peekType(); + thisIter.next(); + if (nextType === 'delete') { + index -= Math.min(length, index - offset); + continue; + } else if (nextType === 'insert' && (offset < index || !priority)) { + index += length; + } + offset += length; + } + return index; +}; + + +module.exports = Delta; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +'use strict'; + +var hasOwn = Object.prototype.hasOwnProperty; +var toStr = Object.prototype.toString; +var defineProperty = Object.defineProperty; +var gOPD = Object.getOwnPropertyDescriptor; + +var isArray = function isArray(arr) { + if (typeof Array.isArray === 'function') { + return Array.isArray(arr); + } + + return toStr.call(arr) === '[object Array]'; +}; + +var isPlainObject = function isPlainObject(obj) { + if (!obj || toStr.call(obj) !== '[object Object]') { + return false; + } + + var hasOwnConstructor = hasOwn.call(obj, 'constructor'); + var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); + // Not own constructor property must be Object + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + var key; + for (key in obj) { /**/ } + + return typeof key === 'undefined' || hasOwn.call(obj, key); +}; + +// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target +var setProperty = function setProperty(target, options) { + if (defineProperty && options.name === '__proto__') { + defineProperty(target, options.name, { + enumerable: true, + configurable: true, + value: options.newValue, + writable: true + }); + } else { + target[options.name] = options.newValue; + } +}; + +// Return undefined instead of __proto__ if '__proto__' is not an own property +var getProperty = function getProperty(obj, name) { + if (name === '__proto__') { + if (!hasOwn.call(obj, name)) { + return void 0; + } else if (gOPD) { + // In early versions of node, obj['__proto__'] is buggy when obj has + // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. + return gOPD(obj, name).value; + } + } + + return obj[name]; +}; + +module.exports = function extend() { + var options, name, src, copy, copyIsArray, clone; + var target = arguments[0]; + var i = 1; + var length = arguments.length; + var deep = false; + + // Handle a deep copy situation + if (typeof target === 'boolean') { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { + target = {}; + } + + for (; i < length; ++i) { + options = arguments[i]; + // Only deal with non-null/undefined values + if (options != null) { + // Extend the base object + for (name in options) { + src = getProperty(target, name); + copy = getProperty(options, name); + + // Prevent never-ending loop + if (target !== copy) { + // Recurse if we're merging plain objects or arrays + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && isArray(src) ? src : []; + } else { + clone = src && isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); + + // Don't bring in undefined values + } else if (typeof copy !== 'undefined') { + setProperty(target, { name: name, newValue: copy }); + } + } + } + } + } + + // Return the modified object + return target; +}; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.BlockEmbed = exports.bubbleFormats = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var NEWLINE_LENGTH = 1; + +var BlockEmbed = function (_Parchment$Embed) { + _inherits(BlockEmbed, _Parchment$Embed); + + function BlockEmbed() { + _classCallCheck(this, BlockEmbed); + + return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments)); + } + + _createClass(BlockEmbed, [{ + key: 'attach', + value: function attach() { + _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this); + this.attributes = new _parchment2.default.Attributor.Store(this.domNode); + } + }, { + key: 'delta', + value: function delta() { + return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values())); + } + }, { + key: 'format', + value: function format(name, value) { + var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE); + if (attribute != null) { + this.attributes.attribute(attribute, value); + } + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + this.format(name, value); + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (typeof value === 'string' && value.endsWith('\n')) { + var block = _parchment2.default.create(Block.blotName); + this.parent.insertBefore(block, index === 0 ? this : this.next); + block.insertAt(0, value.slice(0, -1)); + } else { + _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def); + } + } + }]); + + return BlockEmbed; +}(_parchment2.default.Embed); + +BlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT; +// It is important for cursor behavior BlockEmbeds use tags that are block level elements + + +var Block = function (_Parchment$Block) { + _inherits(Block, _Parchment$Block); + + function Block(domNode) { + _classCallCheck(this, Block); + + var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode)); + + _this2.cache = {}; + return _this2; + } + + _createClass(Block, [{ + key: 'delta', + value: function delta() { + if (this.cache.delta == null) { + this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) { + if (leaf.length() === 0) { + return delta; + } else { + return delta.insert(leaf.value(), bubbleFormats(leaf)); + } + }, new _quillDelta2.default()).insert('\n', bubbleFormats(this)); + } + return this.cache.delta; + } + }, { + key: 'deleteAt', + value: function deleteAt(index, length) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length); + this.cache = {}; + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (length <= 0) return; + if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { + if (index + length === this.length()) { + this.format(name, value); + } + } else { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value); + } + this.cache = {}; + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def); + if (value.length === 0) return; + var lines = value.split('\n'); + var text = lines.shift(); + if (text.length > 0) { + if (index < this.length() - 1 || this.children.tail == null) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text); + } else { + this.children.tail.insertAt(this.children.tail.length(), text); + } + this.cache = {}; + } + var block = this; + lines.reduce(function (index, line) { + block = block.split(index, true); + block.insertAt(0, line); + return line.length; + }, index + text.length); + } + }, { + key: 'insertBefore', + value: function insertBefore(blot, ref) { + var head = this.children.head; + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref); + if (head instanceof _break2.default) { + head.remove(); + } + this.cache = {}; + } + }, { + key: 'length', + value: function length() { + if (this.cache.length == null) { + this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH; + } + return this.cache.length; + } + }, { + key: 'moveChildren', + value: function moveChildren(target, ref) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref); + this.cache = {}; + } + }, { + key: 'optimize', + value: function optimize(context) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context); + this.cache = {}; + } + }, { + key: 'path', + value: function path(index) { + return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true); + } + }, { + key: 'removeChild', + value: function removeChild(child) { + _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child); + this.cache = {}; + } + }, { + key: 'split', + value: function split(index) { + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) { + var clone = this.clone(); + if (index === 0) { + this.parent.insertBefore(clone, this); + return this; + } else { + this.parent.insertBefore(clone, this.next); + return clone; + } + } else { + var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force); + this.cache = {}; + return next; + } + } + }]); + + return Block; +}(_parchment2.default.Block); + +Block.blotName = 'block'; +Block.tagName = 'P'; +Block.defaultChild = 'break'; +Block.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default]; + +function bubbleFormats(blot) { + var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (blot == null) return formats; + if (typeof blot.formats === 'function') { + formats = (0, _extend2.default)(formats, blot.formats()); + } + if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) { + return formats; + } + return bubbleFormats(blot.parent, formats); +} + +exports.bubbleFormats = bubbleFormats; +exports.BlockEmbed = BlockEmbed; +exports.default = Block; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.overload = exports.expandConfig = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +__webpack_require__(50); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _editor = __webpack_require__(14); + +var _editor2 = _interopRequireDefault(_editor); + +var _emitter3 = __webpack_require__(8); + +var _emitter4 = _interopRequireDefault(_emitter3); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _selection = __webpack_require__(15); + +var _selection2 = _interopRequireDefault(_selection); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _theme = __webpack_require__(34); + +var _theme2 = _interopRequireDefault(_theme); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var debug = (0, _logger2.default)('quill'); + +var Quill = function () { + _createClass(Quill, null, [{ + key: 'debug', + value: function debug(limit) { + if (limit === true) { + limit = 'log'; + } + _logger2.default.level(limit); + } + }, { + key: 'find', + value: function find(node) { + return node.__quill || _parchment2.default.find(node); + } + }, { + key: 'import', + value: function _import(name) { + if (this.imports[name] == null) { + debug.error('Cannot import ' + name + '. Are you sure it was Registroed?'); + } + return this.imports[name]; + } + }, { + key: 'Registro', + value: function Registro(path, target) { + var _this = this; + + var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + if (typeof path !== 'string') { + var name = path.attrName || path.blotName; + if (typeof name === 'string') { + // Registro(Blot | Attributor, overwrite) + this.Registro('formats/' + name, path, target); + } else { + Object.keys(path).forEach(function (key) { + _this.Registro(key, path[key], target); + }); + } + } else { + if (this.imports[path] != null && !overwrite) { + debug.warn('Overwriting ' + path + ' with', target); + } + this.imports[path] = target; + if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') { + _parchment2.default.Registro(target); + } else if (path.startsWith('modules') && typeof target.Registro === 'function') { + target.Registro(); + } + } + } + }]); + + function Quill(container) { + var _this2 = this; + + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Quill); + + this.options = expandConfig(container, options); + this.container = this.options.container; + if (this.container == null) { + return debug.error('Invalid Quill container', container); + } + if (this.options.debug) { + Quill.debug(this.options.debug); + } + var html = this.container.innerHTML.trim(); + this.container.classList.add('ql-container'); + this.container.innerHTML = ''; + this.container.__quill = this; + this.root = this.addContainer('ql-editor'); + this.root.classList.add('ql-blank'); + this.root.setAttribute('data-gramm', false); + this.scrollingContainer = this.options.scrollingContainer || this.root; + this.emitter = new _emitter4.default(); + this.scroll = _parchment2.default.create(this.root, { + emitter: this.emitter, + whitelist: this.options.formats + }); + this.editor = new _editor2.default(this.scroll); + this.selection = new _selection2.default(this.scroll, this.emitter); + this.theme = new this.options.theme(this, this.options); + this.keyboard = this.theme.addModule('keyboard'); + this.clipboard = this.theme.addModule('clipboard'); + this.history = this.theme.addModule('history'); + this.theme.init(); + this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) { + if (type === _emitter4.default.events.TEXT_CHANGE) { + _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank()); + } + }); + this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) { + var range = _this2.selection.lastRange; + var index = range && range.length === 0 ? range.index : undefined; + modify.call(_this2, function () { + return _this2.editor.update(null, mutations, index); + }, source); + }); + var contents = this.clipboard.convert('
        ' + html + '


        '); + this.setContents(contents); + this.history.clear(); + if (this.options.placeholder) { + this.root.setAttribute('data-placeholder', this.options.placeholder); + } + if (this.options.readOnly) { + this.disable(); + } + } + + _createClass(Quill, [{ + key: 'addContainer', + value: function addContainer(container) { + var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (typeof container === 'string') { + var className = container; + container = document.createElement('div'); + container.classList.add(className); + } + this.container.insertBefore(container, refNode); + return container; + } + }, { + key: 'blur', + value: function blur() { + this.selection.setRange(null); + } + }, { + key: 'deleteText', + value: function deleteText(index, length, source) { + var _this3 = this; + + var _overload = overload(index, length, source); + + var _overload2 = _slicedToArray(_overload, 4); + + index = _overload2[0]; + length = _overload2[1]; + source = _overload2[3]; + + return modify.call(this, function () { + return _this3.editor.deleteText(index, length); + }, source, index, -1 * length); + } + }, { + key: 'disable', + value: function disable() { + this.enable(false); + } + }, { + key: 'enable', + value: function enable() { + var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + this.scroll.enable(enabled); + this.container.classList.toggle('ql-disabled', !enabled); + } + }, { + key: 'focus', + value: function focus() { + var scrollTop = this.scrollingContainer.scrollTop; + this.selection.focus(); + this.scrollingContainer.scrollTop = scrollTop; + this.scrollIntoView(); + } + }, { + key: 'format', + value: function format(name, value) { + var _this4 = this; + + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; + + return modify.call(this, function () { + var range = _this4.getSelection(true); + var change = new _quillDelta2.default(); + if (range == null) { + return change; + } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) { + change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value)); + } else if (range.length === 0) { + _this4.selection.format(name, value); + return change; + } else { + change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value)); + } + _this4.setSelection(range, _emitter4.default.sources.SILENT); + return change; + }, source); + } + }, { + key: 'formatLine', + value: function formatLine(index, length, name, value, source) { + var _this5 = this; + + var formats = void 0; + + var _overload3 = overload(index, length, name, value, source); + + var _overload4 = _slicedToArray(_overload3, 4); + + index = _overload4[0]; + length = _overload4[1]; + formats = _overload4[2]; + source = _overload4[3]; + + return modify.call(this, function () { + return _this5.editor.formatLine(index, length, formats); + }, source, index, 0); + } + }, { + key: 'formatText', + value: function formatText(index, length, name, value, source) { + var _this6 = this; + + var formats = void 0; + + var _overload5 = overload(index, length, name, value, source); + + var _overload6 = _slicedToArray(_overload5, 4); + + index = _overload6[0]; + length = _overload6[1]; + formats = _overload6[2]; + source = _overload6[3]; + + return modify.call(this, function () { + return _this6.editor.formatText(index, length, formats); + }, source, index, 0); + } + }, { + key: 'getBounds', + value: function getBounds(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var bounds = void 0; + if (typeof index === 'number') { + bounds = this.selection.getBounds(index, length); + } else { + bounds = this.selection.getBounds(index.index, index.length); + } + var containerBounds = this.container.getBoundingClientRect(); + return { + bottom: bounds.bottom - containerBounds.top, + height: bounds.height, + left: bounds.left - containerBounds.left, + right: bounds.right - containerBounds.left, + top: bounds.top - containerBounds.top, + width: bounds.width + }; + } + }, { + key: 'getContents', + value: function getContents() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; + + var _overload7 = overload(index, length); + + var _overload8 = _slicedToArray(_overload7, 2); + + index = _overload8[0]; + length = _overload8[1]; + + return this.editor.getContents(index, length); + } + }, { + key: 'getFormat', + value: function getFormat() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true); + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + if (typeof index === 'number') { + return this.editor.getFormat(index, length); + } else { + return this.editor.getFormat(index.index, index.length); + } + } + }, { + key: 'getIndex', + value: function getIndex(blot) { + return blot.offset(this.scroll); + } + }, { + key: 'getLength', + value: function getLength() { + return this.scroll.length(); + } + }, { + key: 'getLeaf', + value: function getLeaf(index) { + return this.scroll.leaf(index); + } + }, { + key: 'getLine', + value: function getLine(index) { + return this.scroll.line(index); + } + }, { + key: 'getLines', + value: function getLines() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; + + if (typeof index !== 'number') { + return this.scroll.lines(index.index, index.length); + } else { + return this.scroll.lines(index, length); + } + } + }, { + key: 'getModule', + value: function getModule(name) { + return this.theme.modules[name]; + } + }, { + key: 'getSelection', + value: function getSelection() { + var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + if (focus) this.focus(); + this.update(); // Make sure we access getRange with editor in consistent state + return this.selection.getRange()[0]; + } + }, { + key: 'getText', + value: function getText() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index; + + var _overload9 = overload(index, length); + + var _overload10 = _slicedToArray(_overload9, 2); + + index = _overload10[0]; + length = _overload10[1]; + + return this.editor.getText(index, length); + } + }, { + key: 'hasFocus', + value: function hasFocus() { + return this.selection.hasFocus(); + } + }, { + key: 'insertEmbed', + value: function insertEmbed(index, embed, value) { + var _this7 = this; + + var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API; + + return modify.call(this, function () { + return _this7.editor.insertEmbed(index, embed, value); + }, source, index); + } + }, { + key: 'insertText', + value: function insertText(index, text, name, value, source) { + var _this8 = this; + + var formats = void 0; + + var _overload11 = overload(index, 0, name, value, source); + + var _overload12 = _slicedToArray(_overload11, 4); + + index = _overload12[0]; + formats = _overload12[2]; + source = _overload12[3]; + + return modify.call(this, function () { + return _this8.editor.insertText(index, text, formats); + }, source, index, text.length); + } + }, { + key: 'isEnabled', + value: function isEnabled() { + return !this.container.classList.contains('ql-disabled'); + } + }, { + key: 'off', + value: function off() { + return this.emitter.off.apply(this.emitter, arguments); + } + }, { + key: 'on', + value: function on() { + return this.emitter.on.apply(this.emitter, arguments); + } + }, { + key: 'once', + value: function once() { + return this.emitter.once.apply(this.emitter, arguments); + } + }, { + key: 'pasteHTML', + value: function pasteHTML(index, html, source) { + this.clipboard.dangerouslyPasteHTML(index, html, source); + } + }, { + key: 'removeFormat', + value: function removeFormat(index, length, source) { + var _this9 = this; + + var _overload13 = overload(index, length, source); + + var _overload14 = _slicedToArray(_overload13, 4); + + index = _overload14[0]; + length = _overload14[1]; + source = _overload14[3]; + + return modify.call(this, function () { + return _this9.editor.removeFormat(index, length); + }, source, index); + } + }, { + key: 'scrollIntoView', + value: function scrollIntoView() { + this.selection.scrollIntoView(this.scrollingContainer); + } + }, { + key: 'setContents', + value: function setContents(delta) { + var _this10 = this; + + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + return modify.call(this, function () { + delta = new _quillDelta2.default(delta); + var length = _this10.getLength(); + var deleted = _this10.editor.deleteText(0, length); + var applied = _this10.editor.applyDelta(delta); + var lastOp = applied.ops[applied.ops.length - 1]; + if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\n') { + _this10.editor.deleteText(_this10.getLength() - 1, 1); + applied.delete(1); + } + var ret = deleted.compose(applied); + return ret; + }, source); + } + }, { + key: 'setSelection', + value: function setSelection(index, length, source) { + if (index == null) { + this.selection.setRange(null, length || Quill.sources.API); + } else { + var _overload15 = overload(index, length, source); + + var _overload16 = _slicedToArray(_overload15, 4); + + index = _overload16[0]; + length = _overload16[1]; + source = _overload16[3]; + + this.selection.setRange(new _selection.Range(index, length), source); + if (source !== _emitter4.default.sources.SILENT) { + this.selection.scrollIntoView(this.scrollingContainer); + } + } + } + }, { + key: 'setText', + value: function setText(text) { + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + var delta = new _quillDelta2.default().insert(text); + return this.setContents(delta, source); + } + }, { + key: 'update', + value: function update() { + var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; + + var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes + this.selection.update(source); + return change; + } + }, { + key: 'updateContents', + value: function updateContents(delta) { + var _this11 = this; + + var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API; + + return modify.call(this, function () { + delta = new _quillDelta2.default(delta); + return _this11.editor.applyDelta(delta, source); + }, source, true); + } + }]); + + return Quill; +}(); + +Quill.DEFAULTS = { + bounds: null, + formats: null, + modules: {}, + placeholder: '', + readOnly: false, + scrollingContainer: null, + strict: true, + theme: 'default' +}; +Quill.events = _emitter4.default.events; +Quill.sources = _emitter4.default.sources; +// eslint-disable-next-line no-undef +Quill.version = false ? 'dev' : "1.3.7"; + +Quill.imports = { + 'delta': _quillDelta2.default, + 'parchment': _parchment2.default, + 'core/module': _module2.default, + 'core/theme': _theme2.default +}; + +function expandConfig(container, userConfig) { + userConfig = (0, _extend2.default)(true, { + container: container, + modules: { + clipboard: true, + keyboard: true, + history: true + } + }, userConfig); + if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) { + userConfig.theme = _theme2.default; + } else { + userConfig.theme = Quill.import('themes/' + userConfig.theme); + if (userConfig.theme == null) { + throw new Error('Invalid theme ' + userConfig.theme + '. Did you Registro it?'); + } + } + var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS); + [themeConfig, userConfig].forEach(function (config) { + config.modules = config.modules || {}; + Object.keys(config.modules).forEach(function (module) { + if (config.modules[module] === true) { + config.modules[module] = {}; + } + }); + }); + var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules)); + var moduleConfig = moduleNames.reduce(function (config, name) { + var moduleClass = Quill.import('modules/' + name); + if (moduleClass == null) { + debug.error('Cannot load ' + name + ' module. Are you sure you Registroed it?'); + } else { + config[name] = moduleClass.DEFAULTS || {}; + } + return config; + }, {}); + // Special case toolbar shorthand + if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) { + userConfig.modules.toolbar = { + container: userConfig.modules.toolbar + }; + } + userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig); + ['bounds', 'container', 'scrollingContainer'].forEach(function (key) { + if (typeof userConfig[key] === 'string') { + userConfig[key] = document.querySelector(userConfig[key]); + } + }); + userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) { + if (userConfig.modules[name]) { + config[name] = userConfig.modules[name]; + } + return config; + }, {}); + return userConfig; +} + +// Handle selection preservation and TEXT_CHANGE emission +// common to modification APIs +function modify(modifier, source, index, shift) { + if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) { + return new _quillDelta2.default(); + } + var range = index == null ? null : this.getSelection(); + var oldDelta = this.editor.delta; + var change = modifier(); + if (range != null) { + if (index === true) index = range.index; + if (shift == null) { + range = shiftRange(range, change, source); + } else if (shift !== 0) { + range = shiftRange(range, index, shift, source); + } + this.setSelection(range, _emitter4.default.sources.SILENT); + } + if (change.length() > 0) { + var _emitter; + + var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source]; + (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); + if (source !== _emitter4.default.sources.SILENT) { + var _emitter2; + + (_emitter2 = this.emitter).emit.apply(_emitter2, args); + } + } + return change; +} + +function overload(index, length, name, value, source) { + var formats = {}; + if (typeof index.index === 'number' && typeof index.length === 'number') { + // Allow for throwaway end (used by insertText/insertEmbed) + if (typeof length !== 'number') { + source = value, value = name, name = length, length = index.length, index = index.index; + } else { + length = index.length, index = index.index; + } + } else if (typeof length !== 'number') { + source = value, value = name, name = length, length = 0; + } + // Handle format being object, two format name/value strings or excluded + if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { + formats = name; + source = value; + } else if (typeof name === 'string') { + if (value != null) { + formats[name] = value; + } else { + source = name; + } + } + // Handle optional source + source = source || _emitter4.default.sources.API; + return [index, length, formats, source]; +} + +function shiftRange(range, index, length, source) { + if (range == null) return null; + var start = void 0, + end = void 0; + if (index instanceof _quillDelta2.default) { + var _map = [range.index, range.index + range.length].map(function (pos) { + return index.transformPosition(pos, source !== _emitter4.default.sources.USER); + }); + + var _map2 = _slicedToArray(_map, 2); + + start = _map2[0]; + end = _map2[1]; + } else { + var _map3 = [range.index, range.index + range.length].map(function (pos) { + if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos; + if (length >= 0) { + return pos + length; + } else { + return Math.max(index, pos + length); + } + }); + + var _map4 = _slicedToArray(_map3, 2); + + start = _map4[0]; + end = _map4[1]; + } + return new _selection.Range(start, end - start); +} + +exports.expandConfig = expandConfig; +exports.overload = overload; +exports.default = Quill; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Inline = function (_Parchment$Inline) { + _inherits(Inline, _Parchment$Inline); + + function Inline() { + _classCallCheck(this, Inline); + + return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments)); + } + + _createClass(Inline, [{ + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) { + var blot = this.isolate(index, length); + if (value) { + blot.wrap(name, value); + } + } else { + _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value); + } + } + }, { + key: 'optimize', + value: function optimize(context) { + _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context); + if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) { + var parent = this.parent.isolate(this.offset(), this.length()); + this.moveChildren(parent); + parent.wrap(this); + } + } + }], [{ + key: 'compare', + value: function compare(self, other) { + var selfIndex = Inline.order.indexOf(self); + var otherIndex = Inline.order.indexOf(other); + if (selfIndex >= 0 || otherIndex >= 0) { + return selfIndex - otherIndex; + } else if (self === other) { + return 0; + } else if (self < other) { + return -1; + } else { + return 1; + } + } + }]); + + return Inline; +}(_parchment2.default.Inline); + +Inline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default]; +// Lower index means deeper in the DOM tree, since not found (-1) is for embeds +Inline.order = ['cursor', 'inline', // Must be lower +'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher +]; + +exports.default = Inline; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var TextBlot = function (_Parchment$Text) { + _inherits(TextBlot, _Parchment$Text); + + function TextBlot() { + _classCallCheck(this, TextBlot); + + return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments)); + } + + return TextBlot; +}(_parchment2.default.Text); + +exports.default = TextBlot; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _eventemitter = __webpack_require__(54); + +var _eventemitter2 = _interopRequireDefault(_eventemitter); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:events'); + +var EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click']; + +EVENTS.forEach(function (eventName) { + document.addEventListener(eventName, function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) { + // TODO use WeakMap + if (node.__quill && node.__quill.emitter) { + var _node$__quill$emitter; + + (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args); + } + }); + }); +}); + +var Emitter = function (_EventEmitter) { + _inherits(Emitter, _EventEmitter); + + function Emitter() { + _classCallCheck(this, Emitter); + + var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this)); + + _this.listeners = {}; + _this.on('error', debug.error); + return _this; + } + + _createClass(Emitter, [{ + key: 'emit', + value: function emit() { + debug.log.apply(debug, arguments); + _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments); + } + }, { + key: 'handleDOM', + value: function handleDOM(event) { + for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + (this.listeners[event.type] || []).forEach(function (_ref) { + var node = _ref.node, + handler = _ref.handler; + + if (event.target === node || node.contains(event.target)) { + handler.apply(undefined, [event].concat(args)); + } + }); + } + }, { + key: 'listenDOM', + value: function listenDOM(eventName, node, handler) { + if (!this.listeners[eventName]) { + this.listeners[eventName] = []; + } + this.listeners[eventName].push({ node: node, handler: handler }); + } + }]); + + return Emitter; +}(_eventemitter2.default); + +Emitter.events = { + EDITOR_CHANGE: 'editor-change', + SCROLL_BEFORE_UPDATE: 'scroll-before-update', + SCROLL_OPTIMIZE: 'scroll-optimize', + SCROLL_UPDATE: 'scroll-update', + SELECTION_CHANGE: 'selection-change', + TEXT_CHANGE: 'text-change' +}; +Emitter.sources = { + API: 'api', + SILENT: 'silent', + USER: 'user' +}; + +exports.default = Emitter; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Module = function Module(quill) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, Module); + + this.quill = quill; + this.options = options; +}; + +Module.DEFAULTS = {}; + +exports.default = Module; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var levels = ['error', 'warn', 'log', 'info']; +var level = 'warn'; + +function debug(method) { + if (levels.indexOf(method) <= levels.indexOf(level)) { + var _console; + + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + (_console = console)[method].apply(_console, args); // eslint-disable-line no-console + } +} + +function namespace(ns) { + return levels.reduce(function (logger, method) { + logger[method] = debug.bind(console, method, ns); + return logger; + }, {}); +} + +debug.level = namespace.level = function (newLevel) { + level = newLevel; +}; + +exports.default = namespace; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var pSlice = Array.prototype.slice; +var objectKeys = __webpack_require__(52); +var isArguments = __webpack_require__(53); + +var deepEqual = module.exports = function (actual, expected, opts) { + if (!opts) opts = {}; + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + // 7.3. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') { + return opts.strict ? actual === expected : actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected, opts); + } +} + +function isUndefinedOrNull(value) { + return value === null || value === undefined; +} + +function isBuffer (x) { + if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false; + if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { + return false; + } + if (x.length > 0 && typeof x[0] !== 'number') return false; + return true; +} + +function objEquiv(a, b, opts) { + var i, key; + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + // an identical 'prototype' property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return deepEqual(a, b, opts); + } + if (isBuffer(a)) { + if (!isBuffer(b)) { + return false; + } + if (a.length !== b.length) return false; + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) return false; + } + return true; + } + try { + var ka = objectKeys(a), + kb = objectKeys(b); + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key], opts)) return false; + } + return typeof a === typeof b; +} + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var Registry = __webpack_require__(1); +var Attributor = /** @class */ (function () { + function Attributor(attrName, keyName, options) { + if (options === void 0) { options = {}; } + this.attrName = attrName; + this.keyName = keyName; + var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE; + if (options.scope != null) { + // Ignore type bits, force attribute bit + this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit; + } + else { + this.scope = Registry.Scope.ATTRIBUTE; + } + if (options.whitelist != null) + this.whitelist = options.whitelist; + } + Attributor.keys = function (node) { + return [].map.call(node.attributes, function (item) { + return item.name; + }); + }; + Attributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + node.setAttribute(this.keyName, value); + return true; + }; + Attributor.prototype.canAdd = function (node, value) { + var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE)); + if (match == null) + return false; + if (this.whitelist == null) + return true; + if (typeof value === 'string') { + return this.whitelist.indexOf(value.replace(/["']/g, '')) > -1; + } + else { + return this.whitelist.indexOf(value) > -1; + } + }; + Attributor.prototype.remove = function (node) { + node.removeAttribute(this.keyName); + }; + Attributor.prototype.value = function (node) { + var value = node.getAttribute(this.keyName); + if (this.canAdd(node, value) && value) { + return value; + } + return ''; + }; + return Attributor; +}()); +exports.default = Attributor; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.Code = undefined; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Code = function (_Inline) { + _inherits(Code, _Inline); + + function Code() { + _classCallCheck(this, Code); + + return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments)); + } + + return Code; +}(_inline2.default); + +Code.blotName = 'code'; +Code.tagName = 'CODE'; + +var CodeBlock = function (_Block) { + _inherits(CodeBlock, _Block); + + function CodeBlock() { + _classCallCheck(this, CodeBlock); + + return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments)); + } + + _createClass(CodeBlock, [{ + key: 'delta', + value: function delta() { + var _this3 = this; + + var text = this.domNode.textContent; + if (text.endsWith('\n')) { + // Should always be true + text = text.slice(0, -1); + } + return text.split('\n').reduce(function (delta, frag) { + return delta.insert(frag).insert('\n', _this3.formats()); + }, new _quillDelta2.default()); + } + }, { + key: 'format', + value: function format(name, value) { + if (name === this.statics.blotName && value) return; + + var _descendant = this.descendant(_text2.default, this.length() - 1), + _descendant2 = _slicedToArray(_descendant, 1), + text = _descendant2[0]; + + if (text != null) { + text.deleteAt(text.length() - 1, 1); + } + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value); + } + }, { + key: 'formatAt', + value: function formatAt(index, length, name, value) { + if (length === 0) return; + if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) { + return; + } + var nextNewline = this.newlineIndex(index); + if (nextNewline < 0 || nextNewline >= index + length) return; + var prevNewline = this.newlineIndex(index, true) + 1; + var isolateLength = nextNewline - prevNewline + 1; + var blot = this.isolate(prevNewline, isolateLength); + var next = blot.next; + blot.format(name, value); + if (next instanceof CodeBlock) { + next.formatAt(0, index - prevNewline + length - isolateLength, name, value); + } + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null) return; + + var _descendant3 = this.descendant(_text2.default, index), + _descendant4 = _slicedToArray(_descendant3, 2), + text = _descendant4[0], + offset = _descendant4[1]; + + text.insertAt(offset, value); + } + }, { + key: 'length', + value: function length() { + var length = this.domNode.textContent.length; + if (!this.domNode.textContent.endsWith('\n')) { + return length + 1; + } + return length; + } + }, { + key: 'newlineIndex', + value: function newlineIndex(BuscarIndex) { + var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (!reverse) { + var offset = this.domNode.textContent.slice(BuscarIndex).indexOf('\n'); + return offset > -1 ? BuscarIndex + offset : -1; + } else { + return this.domNode.textContent.slice(0, BuscarIndex).lastIndexOf('\n'); + } + } + }, { + key: 'optimize', + value: function optimize(context) { + if (!this.domNode.textContent.endsWith('\n')) { + this.appendChild(_parchment2.default.create('text', '\n')); + } + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context); + var next = this.next; + if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) { + next.optimize(context); + next.moveChildren(this); + next.remove(); + } + } + }, { + key: 'replace', + value: function replace(target) { + _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target); + [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) { + var blot = _parchment2.default.find(node); + if (blot == null) { + node.parentNode.removeChild(node); + } else if (blot instanceof _parchment2.default.Embed) { + blot.remove(); + } else { + blot.unwrap(); + } + }); + } + }], [{ + key: 'create', + value: function create(value) { + var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value); + domNode.setAttribute('spellcheck', false); + return domNode; + } + }, { + key: 'formats', + value: function formats() { + return true; + } + }]); + + return CodeBlock; +}(_block2.default); + +CodeBlock.blotName = 'code-block'; +CodeBlock.tagName = 'PRE'; +CodeBlock.TAB = ' '; + +exports.Code = Code; +exports.default = CodeBlock; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _op = __webpack_require__(20); + +var _op2 = _interopRequireDefault(_op); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _cursor = __webpack_require__(24); + +var _cursor2 = _interopRequireDefault(_cursor); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ASCII = /^[ -~]*$/; + +var Editor = function () { + function Editor(scroll) { + _classCallCheck(this, Editor); + + this.scroll = scroll; + this.delta = this.getDelta(); + } + + _createClass(Editor, [{ + key: 'applyDelta', + value: function applyDelta(delta) { + var _this = this; + + var consumeNextNewline = false; + this.scroll.update(); + var scrollLength = this.scroll.length(); + this.scroll.batchStart(); + delta = normalizeDelta(delta); + delta.reduce(function (index, op) { + var length = op.retain || op.delete || op.insert.length || 1; + var attributes = op.attributes || {}; + if (op.insert != null) { + if (typeof op.insert === 'string') { + var text = op.insert; + if (text.endsWith('\n') && consumeNextNewline) { + consumeNextNewline = false; + text = text.slice(0, -1); + } + if (index >= scrollLength && !text.endsWith('\n')) { + consumeNextNewline = true; + } + _this.scroll.insertAt(index, text); + + var _scroll$line = _this.scroll.line(index), + _scroll$line2 = _slicedToArray(_scroll$line, 2), + line = _scroll$line2[0], + offset = _scroll$line2[1]; + + var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line)); + if (line instanceof _block2.default) { + var _line$descendant = line.descendant(_parchment2.default.Leaf, offset), + _line$descendant2 = _slicedToArray(_line$descendant, 1), + leaf = _line$descendant2[0]; + + formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf)); + } + attributes = _op2.default.attributes.diff(formats, attributes) || {}; + } else if (_typeof(op.insert) === 'object') { + var key = Object.keys(op.insert)[0]; // There should only be one key + if (key == null) return index; + _this.scroll.insertAt(index, key, op.insert[key]); + } + scrollLength += length; + } + Object.keys(attributes).forEach(function (name) { + _this.scroll.formatAt(index, length, name, attributes[name]); + }); + return index + length; + }, 0); + delta.reduce(function (index, op) { + if (typeof op.delete === 'number') { + _this.scroll.deleteAt(index, op.delete); + return index; + } + return index + (op.retain || op.insert.length || 1); + }, 0); + this.scroll.batchEnd(); + return this.update(delta); + } + }, { + key: 'deleteText', + value: function deleteText(index, length) { + this.scroll.deleteAt(index, length); + return this.update(new _quillDelta2.default().retain(index).delete(length)); + } + }, { + key: 'formatLine', + value: function formatLine(index, length) { + var _this2 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + this.scroll.update(); + Object.keys(formats).forEach(function (format) { + if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return; + var lines = _this2.scroll.lines(index, Math.max(length, 1)); + var lengthRemaining = length; + lines.forEach(function (line) { + var lineLength = line.length(); + if (!(line instanceof _code2.default)) { + line.format(format, formats[format]); + } else { + var codeIndex = index - line.offset(_this2.scroll); + var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1; + line.formatAt(codeIndex, codeLength, format, formats[format]); + } + lengthRemaining -= lineLength; + }); + }); + this.scroll.optimize(); + return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); + } + }, { + key: 'formatText', + value: function formatText(index, length) { + var _this3 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + Object.keys(formats).forEach(function (format) { + _this3.scroll.formatAt(index, length, format, formats[format]); + }); + return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats))); + } + }, { + key: 'getContents', + value: function getContents(index, length) { + return this.delta.slice(index, index + length); + } + }, { + key: 'getDelta', + value: function getDelta() { + return this.scroll.lines().reduce(function (delta, line) { + return delta.concat(line.delta()); + }, new _quillDelta2.default()); + } + }, { + key: 'getFormat', + value: function getFormat(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var lines = [], + leaves = []; + if (length === 0) { + this.scroll.path(index).forEach(function (path) { + var _path = _slicedToArray(path, 1), + blot = _path[0]; + + if (blot instanceof _block2.default) { + lines.push(blot); + } else if (blot instanceof _parchment2.default.Leaf) { + leaves.push(blot); + } + }); + } else { + lines = this.scroll.lines(index, length); + leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length); + } + var formatsArr = [lines, leaves].map(function (blots) { + if (blots.length === 0) return {}; + var formats = (0, _block.bubbleFormats)(blots.shift()); + while (Object.keys(formats).length > 0) { + var blot = blots.shift(); + if (blot == null) return formats; + formats = combineFormats((0, _block.bubbleFormats)(blot), formats); + } + return formats; + }); + return _extend2.default.apply(_extend2.default, formatsArr); + } + }, { + key: 'getText', + value: function getText(index, length) { + return this.getContents(index, length).filter(function (op) { + return typeof op.insert === 'string'; + }).map(function (op) { + return op.insert; + }).join(''); + } + }, { + key: 'insertEmbed', + value: function insertEmbed(index, embed, value) { + this.scroll.insertAt(index, embed, value); + return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value))); + } + }, { + key: 'insertText', + value: function insertText(index, text) { + var _this4 = this; + + var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + text = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); + this.scroll.insertAt(index, text); + Object.keys(formats).forEach(function (format) { + _this4.scroll.formatAt(index, text.length, format, formats[format]); + }); + return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats))); + } + }, { + key: 'isBlank', + value: function isBlank() { + if (this.scroll.children.length == 0) return true; + if (this.scroll.children.length > 1) return false; + var block = this.scroll.children.head; + if (block.statics.blotName !== _block2.default.blotName) return false; + if (block.children.length > 1) return false; + return block.children.head instanceof _break2.default; + } + }, { + key: 'removeFormat', + value: function removeFormat(index, length) { + var text = this.getText(index, length); + + var _scroll$line3 = this.scroll.line(index + length), + _scroll$line4 = _slicedToArray(_scroll$line3, 2), + line = _scroll$line4[0], + offset = _scroll$line4[1]; + + var suffixLength = 0, + suffix = new _quillDelta2.default(); + if (line != null) { + if (!(line instanceof _code2.default)) { + suffixLength = line.length() - offset; + } else { + suffixLength = line.newlineIndex(offset) - offset + 1; + } + suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\n'); + } + var contents = this.getContents(index, length + suffixLength); + var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix)); + var delta = new _quillDelta2.default().retain(index).concat(diff); + return this.applyDelta(delta); + } + }, { + key: 'update', + value: function update(change) { + var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; + + var oldDelta = this.delta; + if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) { + // Optimization for character changes + var textBlot = _parchment2.default.find(mutations[0].target); + var formats = (0, _block.bubbleFormats)(textBlot); + var index = textBlot.offset(this.scroll); + var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, ''); + var oldText = new _quillDelta2.default().insert(oldValue); + var newText = new _quillDelta2.default().insert(textBlot.value()); + var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex)); + change = diffDelta.reduce(function (delta, op) { + if (op.insert) { + return delta.insert(op.insert, formats); + } else { + return delta.push(op); + } + }, new _quillDelta2.default()); + this.delta = oldDelta.compose(change); + } else { + this.delta = this.getDelta(); + if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) { + change = oldDelta.diff(this.delta, cursorIndex); + } + } + return change; + } + }]); + + return Editor; +}(); + +function combineFormats(formats, combined) { + return Object.keys(combined).reduce(function (merged, name) { + if (formats[name] == null) return merged; + if (combined[name] === formats[name]) { + merged[name] = combined[name]; + } else if (Array.isArray(combined[name])) { + if (combined[name].indexOf(formats[name]) < 0) { + merged[name] = combined[name].concat([formats[name]]); + } + } else { + merged[name] = [combined[name], formats[name]]; + } + return merged; + }, {}); +} + +function normalizeDelta(delta) { + return delta.reduce(function (delta, op) { + if (op.insert === 1) { + var attributes = (0, _clone2.default)(op.attributes); + delete attributes['image']; + return delta.insert({ image: op.attributes.image }, attributes); + } + if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) { + op = (0, _clone2.default)(op); + if (op.attributes.list) { + op.attributes.list = 'ordered'; + } else { + op.attributes.list = 'bullet'; + delete op.attributes.bullet; + } + } + if (typeof op.insert === 'string') { + var text = op.insert.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); + return delta.insert(text, op.attributes); + } + return delta.push(op); + }, new _quillDelta2.default()); +} + +exports.default = Editor; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.Range = undefined; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _emitter3 = __webpack_require__(8); + +var _emitter4 = _interopRequireDefault(_emitter3); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var debug = (0, _logger2.default)('quill:selection'); + +var Range = function Range(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + _classCallCheck(this, Range); + + this.index = index; + this.length = length; +}; + +var Selection = function () { + function Selection(scroll, emitter) { + var _this = this; + + _classCallCheck(this, Selection); + + this.emitter = emitter; + this.scroll = scroll; + this.composing = false; + this.mouseDown = false; + this.root = this.scroll.domNode; + this.cursor = _parchment2.default.create('cursor', this); + // savedRange is last non-null range + this.lastRange = this.savedRange = new Range(0, 0); + this.handleComposition(); + this.handleDragging(); + this.emitter.listenDOM('selectionchange', document, function () { + if (!_this.mouseDown) { + setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1); + } + }); + this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) { + if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) { + _this.update(_emitter4.default.sources.SILENT); + } + }); + this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () { + if (!_this.hasFocus()) return; + var native = _this.getNativeRange(); + if (native == null) return; + if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle + // TODO unclear if this has negative side effects + _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () { + try { + _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset); + } catch (ignored) {} + }); + }); + this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) { + if (context.range) { + var _context$range = context.range, + startNode = _context$range.startNode, + startOffset = _context$range.startOffset, + endNode = _context$range.endNode, + endOffset = _context$range.endOffset; + + _this.setNativeRange(startNode, startOffset, endNode, endOffset); + } + }); + this.update(_emitter4.default.sources.SILENT); + } + + _createClass(Selection, [{ + key: 'handleComposition', + value: function handleComposition() { + var _this2 = this; + + this.root.addEventListener('compositionstart', function () { + _this2.composing = true; + }); + this.root.addEventListener('compositionend', function () { + _this2.composing = false; + if (_this2.cursor.parent) { + var range = _this2.cursor.restore(); + if (!range) return; + setTimeout(function () { + _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset); + }, 1); + } + }); + } + }, { + key: 'handleDragging', + value: function handleDragging() { + var _this3 = this; + + this.emitter.listenDOM('mousedown', document.body, function () { + _this3.mouseDown = true; + }); + this.emitter.listenDOM('mouseup', document.body, function () { + _this3.mouseDown = false; + _this3.update(_emitter4.default.sources.USER); + }); + } + }, { + key: 'focus', + value: function focus() { + if (this.hasFocus()) return; + this.root.focus(); + this.setRange(this.savedRange); + } + }, { + key: 'format', + value: function format(_format, value) { + if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return; + this.scroll.update(); + var nativeRange = this.getNativeRange(); + if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return; + if (nativeRange.start.node !== this.cursor.textNode) { + var blot = _parchment2.default.find(nativeRange.start.node, false); + if (blot == null) return; + // TODO Give blot ability to not split + if (blot instanceof _parchment2.default.Leaf) { + var after = blot.split(nativeRange.start.offset); + blot.parent.insertBefore(this.cursor, after); + } else { + blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen + } + this.cursor.attach(); + } + this.cursor.format(_format, value); + this.scroll.optimize(); + this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length); + this.update(); + } + }, { + key: 'getBounds', + value: function getBounds(index) { + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var scrollLength = this.scroll.length(); + index = Math.min(index, scrollLength - 1); + length = Math.min(index + length, scrollLength - 1) - index; + var node = void 0, + _scroll$leaf = this.scroll.leaf(index), + _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2), + leaf = _scroll$leaf2[0], + offset = _scroll$leaf2[1]; + if (leaf == null) return null; + + var _leaf$position = leaf.position(offset, true); + + var _leaf$position2 = _slicedToArray(_leaf$position, 2); + + node = _leaf$position2[0]; + offset = _leaf$position2[1]; + + var range = document.createRange(); + if (length > 0) { + range.setStart(node, offset); + + var _scroll$leaf3 = this.scroll.leaf(index + length); + + var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2); + + leaf = _scroll$leaf4[0]; + offset = _scroll$leaf4[1]; + + if (leaf == null) return null; + + var _leaf$position3 = leaf.position(offset, true); + + var _leaf$position4 = _slicedToArray(_leaf$position3, 2); + + node = _leaf$position4[0]; + offset = _leaf$position4[1]; + + range.setEnd(node, offset); + return range.getBoundingClientRect(); + } else { + var side = 'left'; + var rect = void 0; + if (node instanceof Text) { + if (offset < node.data.length) { + range.setStart(node, offset); + range.setEnd(node, offset + 1); + } else { + range.setStart(node, offset - 1); + range.setEnd(node, offset); + side = 'right'; + } + rect = range.getBoundingClientRect(); + } else { + rect = leaf.domNode.getBoundingClientRect(); + if (offset > 0) side = 'right'; + } + return { + bottom: rect.top + rect.height, + height: rect.height, + left: rect[side], + right: rect[side], + top: rect.top, + width: 0 + }; + } + } + }, { + key: 'getNativeRange', + value: function getNativeRange() { + var selection = document.getSelection(); + if (selection == null || selection.rangeCount <= 0) return null; + var nativeRange = selection.getRangeAt(0); + if (nativeRange == null) return null; + var range = this.normalizeNative(nativeRange); + debug.info('getNativeRange', range); + return range; + } + }, { + key: 'getRange', + value: function getRange() { + var normalized = this.getNativeRange(); + if (normalized == null) return [null, null]; + var range = this.normalizedToRange(normalized); + return [range, normalized]; + } + }, { + key: 'hasFocus', + value: function hasFocus() { + return document.activeElement === this.root; + } + }, { + key: 'normalizedToRange', + value: function normalizedToRange(range) { + var _this4 = this; + + var positions = [[range.start.node, range.start.offset]]; + if (!range.native.collapsed) { + positions.push([range.end.node, range.end.offset]); + } + var indexes = positions.map(function (position) { + var _position = _slicedToArray(position, 2), + node = _position[0], + offset = _position[1]; + + var blot = _parchment2.default.find(node, true); + var index = blot.offset(_this4.scroll); + if (offset === 0) { + return index; + } else if (blot instanceof _parchment2.default.Container) { + return index + blot.length(); + } else { + return index + blot.index(node, offset); + } + }); + var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1); + var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes))); + return new Range(start, end - start); + } + }, { + key: 'normalizeNative', + value: function normalizeNative(nativeRange) { + if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) { + return null; + } + var range = { + start: { node: nativeRange.startContainer, offset: nativeRange.startOffset }, + end: { node: nativeRange.endContainer, offset: nativeRange.endOffset }, + native: nativeRange + }; + [range.start, range.end].forEach(function (position) { + var node = position.node, + offset = position.offset; + while (!(node instanceof Text) && node.childNodes.length > 0) { + if (node.childNodes.length > offset) { + node = node.childNodes[offset]; + offset = 0; + } else if (node.childNodes.length === offset) { + node = node.lastChild; + offset = node instanceof Text ? node.data.length : node.childNodes.length + 1; + } else { + break; + } + } + position.node = node, position.offset = offset; + }); + return range; + } + }, { + key: 'rangeToNative', + value: function rangeToNative(range) { + var _this5 = this; + + var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length]; + var args = []; + var scrollLength = this.scroll.length(); + indexes.forEach(function (index, i) { + index = Math.min(scrollLength - 1, index); + var node = void 0, + _scroll$leaf5 = _this5.scroll.leaf(index), + _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2), + leaf = _scroll$leaf6[0], + offset = _scroll$leaf6[1]; + var _leaf$position5 = leaf.position(offset, i !== 0); + + var _leaf$position6 = _slicedToArray(_leaf$position5, 2); + + node = _leaf$position6[0]; + offset = _leaf$position6[1]; + + args.push(node, offset); + }); + if (args.length < 2) { + args = args.concat(args); + } + return args; + } + }, { + key: 'scrollIntoView', + value: function scrollIntoView(scrollingContainer) { + var range = this.lastRange; + if (range == null) return; + var bounds = this.getBounds(range.index, range.length); + if (bounds == null) return; + var limit = this.scroll.length() - 1; + + var _scroll$line = this.scroll.line(Math.min(range.index, limit)), + _scroll$line2 = _slicedToArray(_scroll$line, 1), + first = _scroll$line2[0]; + + var last = first; + if (range.length > 0) { + var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit)); + + var _scroll$line4 = _slicedToArray(_scroll$line3, 1); + + last = _scroll$line4[0]; + } + if (first == null || last == null) return; + var scrollBounds = scrollingContainer.getBoundingClientRect(); + if (bounds.top < scrollBounds.top) { + scrollingContainer.scrollTop -= scrollBounds.top - bounds.top; + } else if (bounds.bottom > scrollBounds.bottom) { + scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom; + } + } + }, { + key: 'setNativeRange', + value: function setNativeRange(startNode, startOffset) { + var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode; + var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset; + var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + debug.info('setNativeRange', startNode, startOffset, endNode, endOffset); + if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) { + return; + } + var selection = document.getSelection(); + if (selection == null) return; + if (startNode != null) { + if (!this.hasFocus()) this.root.focus(); + var native = (this.getNativeRange() || {}).native; + if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) { + + if (startNode.tagName == "BR") { + startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode); + startNode = startNode.parentNode; + } + if (endNode.tagName == "BR") { + endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode); + endNode = endNode.parentNode; + } + var range = document.createRange(); + range.setStart(startNode, startOffset); + range.setEnd(endNode, endOffset); + selection.removeAllRanges(); + selection.addRange(range); + } + } else { + selection.removeAllRanges(); + this.root.blur(); + document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs) + } + } + }, { + key: 'setRange', + value: function setRange(range) { + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API; + + if (typeof force === 'string') { + source = force; + force = false; + } + debug.info('setRange', range); + if (range != null) { + var args = this.rangeToNative(range); + this.setNativeRange.apply(this, _toConsumableArray(args).concat([force])); + } else { + this.setNativeRange(null); + } + this.update(source); + } + }, { + key: 'update', + value: function update() { + var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER; + + var oldRange = this.lastRange; + + var _getRange = this.getRange(), + _getRange2 = _slicedToArray(_getRange, 2), + lastRange = _getRange2[0], + nativeRange = _getRange2[1]; + + this.lastRange = lastRange; + if (this.lastRange != null) { + this.savedRange = this.lastRange; + } + if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) { + var _emitter; + + if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) { + this.cursor.restore(); + } + var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source]; + (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args)); + if (source !== _emitter4.default.sources.SILENT) { + var _emitter2; + + (_emitter2 = this.emitter).emit.apply(_emitter2, args); + } + } + } + }]); + + return Selection; +}(); + +function contains(parent, descendant) { + try { + // Firefox inserts inaccessible nodes around video elements + descendant.parentNode; + } catch (e) { + return false; + } + // IE11 has bug with Text nodes + // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect + if (descendant instanceof Text) { + descendant = descendant.parentNode; + } + return parent.contains(descendant); +} + +exports.Range = Range; +exports.default = Selection; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Break = function (_Parchment$Embed) { + _inherits(Break, _Parchment$Embed); + + function Break() { + _classCallCheck(this, Break); + + return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments)); + } + + _createClass(Break, [{ + key: 'insertInto', + value: function insertInto(parent, ref) { + if (parent.children.length === 0) { + _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref); + } else { + this.remove(); + } + } + }, { + key: 'length', + value: function length() { + return 0; + } + }, { + key: 'value', + value: function value() { + return ''; + } + }], [{ + key: 'value', + value: function value() { + return undefined; + } + }]); + + return Break; +}(_parchment2.default.Embed); + +Break.blotName = 'break'; +Break.tagName = 'BR'; + +exports.default = Break; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var linked_list_1 = __webpack_require__(44); +var shadow_1 = __webpack_require__(30); +var Registry = __webpack_require__(1); +var ContainerBlot = /** @class */ (function (_super) { + __extends(ContainerBlot, _super); + function ContainerBlot(domNode) { + var _this = _super.call(this, domNode) || this; + _this.build(); + return _this; + } + ContainerBlot.prototype.appendChild = function (other) { + this.insertBefore(other); + }; + ContainerBlot.prototype.attach = function () { + _super.prototype.attach.call(this); + this.children.forEach(function (child) { + child.attach(); + }); + }; + ContainerBlot.prototype.build = function () { + var _this = this; + this.children = new linked_list_1.default(); + // Need to be reversed for if DOM nodes already in order + [].slice + .call(this.domNode.childNodes) + .reverse() + .forEach(function (node) { + try { + var child = makeBlot(node); + _this.insertBefore(child, _this.children.head || undefined); + } + catch (err) { + if (err instanceof Registry.ParchmentError) + return; + else + throw err; + } + }); + }; + ContainerBlot.prototype.deleteAt = function (index, length) { + if (index === 0 && length === this.length()) { + return this.remove(); + } + this.children.forEachAt(index, length, function (child, offset, length) { + child.deleteAt(offset, length); + }); + }; + ContainerBlot.prototype.descendant = function (criteria, index) { + var _a = this.children.find(index), child = _a[0], offset = _a[1]; + if ((criteria.blotName == null && criteria(child)) || + (criteria.blotName != null && child instanceof criteria)) { + return [child, offset]; + } + else if (child instanceof ContainerBlot) { + return child.descendant(criteria, offset); + } + else { + return [null, -1]; + } + }; + ContainerBlot.prototype.descendants = function (criteria, index, length) { + if (index === void 0) { index = 0; } + if (length === void 0) { length = Number.MAX_VALUE; } + var descendants = []; + var lengthLeft = length; + this.children.forEachAt(index, length, function (child, index, length) { + if ((criteria.blotName == null && criteria(child)) || + (criteria.blotName != null && child instanceof criteria)) { + descendants.push(child); + } + if (child instanceof ContainerBlot) { + descendants = descendants.concat(child.descendants(criteria, index, lengthLeft)); + } + lengthLeft -= length; + }); + return descendants; + }; + ContainerBlot.prototype.detach = function () { + this.children.forEach(function (child) { + child.detach(); + }); + _super.prototype.detach.call(this); + }; + ContainerBlot.prototype.formatAt = function (index, length, name, value) { + this.children.forEachAt(index, length, function (child, offset, length) { + child.formatAt(offset, length, name, value); + }); + }; + ContainerBlot.prototype.insertAt = function (index, value, def) { + var _a = this.children.find(index), child = _a[0], offset = _a[1]; + if (child) { + child.insertAt(offset, value, def); + } + else { + var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); + this.appendChild(blot); + } + }; + ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) { + if (this.statics.allowedChildren != null && + !this.statics.allowedChildren.some(function (child) { + return childBlot instanceof child; + })) { + throw new Registry.ParchmentError("Cannot insert " + childBlot.statics.blotName + " into " + this.statics.blotName); + } + childBlot.insertInto(this, refBlot); + }; + ContainerBlot.prototype.length = function () { + return this.children.reduce(function (memo, child) { + return memo + child.length(); + }, 0); + }; + ContainerBlot.prototype.moveChildren = function (targetParent, refNode) { + this.children.forEach(function (child) { + targetParent.insertBefore(child, refNode); + }); + }; + ContainerBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + if (this.children.length === 0) { + if (this.statics.defaultChild != null) { + var child = Registry.create(this.statics.defaultChild); + this.appendChild(child); + child.optimize(context); + } + else { + this.remove(); + } + } + }; + ContainerBlot.prototype.path = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1]; + var position = [[this, index]]; + if (child instanceof ContainerBlot) { + return position.concat(child.path(offset, inclusive)); + } + else if (child != null) { + position.push([child, offset]); + } + return position; + }; + ContainerBlot.prototype.removeChild = function (child) { + this.children.remove(child); + }; + ContainerBlot.prototype.replace = function (target) { + if (target instanceof ContainerBlot) { + target.moveChildren(this); + } + _super.prototype.replace.call(this, target); + }; + ContainerBlot.prototype.split = function (index, force) { + if (force === void 0) { force = false; } + if (!force) { + if (index === 0) + return this; + if (index === this.length()) + return this.next; + } + var after = this.clone(); + this.parent.insertBefore(after, this.next); + this.children.forEachAt(index, this.length(), function (child, offset, length) { + child = child.split(offset, force); + after.appendChild(child); + }); + return after; + }; + ContainerBlot.prototype.unwrap = function () { + this.moveChildren(this.parent, this.next); + this.remove(); + }; + ContainerBlot.prototype.update = function (mutations, context) { + var _this = this; + var addedNodes = []; + var removedNodes = []; + mutations.forEach(function (mutation) { + if (mutation.target === _this.domNode && mutation.type === 'childList') { + addedNodes.push.apply(addedNodes, mutation.addedNodes); + removedNodes.push.apply(removedNodes, mutation.removedNodes); + } + }); + removedNodes.forEach(function (node) { + // Check node has actually been removed + // One exception is Chrome does not immediately remove IFRAMEs + // from DOM but MutationRecord is correct in its reported removal + if (node.parentNode != null && + // @ts-ignore + node.tagName !== 'IFRAME' && + document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return; + } + var blot = Registry.find(node); + if (blot == null) + return; + if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) { + blot.detach(); + } + }); + addedNodes + .filter(function (node) { + return node.parentNode == _this.domNode; + }) + .sort(function (a, b) { + if (a === b) + return 0; + if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) { + return 1; + } + return -1; + }) + .forEach(function (node) { + var refBlot = null; + if (node.nextSibling != null) { + refBlot = Registry.find(node.nextSibling); + } + var blot = makeBlot(node); + if (blot.next != refBlot || blot.next == null) { + if (blot.parent != null) { + blot.parent.removeChild(_this); + } + _this.insertBefore(blot, refBlot || undefined); + } + }); + }; + return ContainerBlot; +}(shadow_1.default)); +function makeBlot(node) { + var blot = Registry.find(node); + if (blot == null) { + try { + blot = Registry.create(node); + } + catch (e) { + blot = Registry.create(Registry.Scope.INLINE); + [].slice.call(node.childNodes).forEach(function (child) { + // @ts-ignore + blot.domNode.appendChild(child); + }); + if (node.parentNode) { + node.parentNode.replaceChild(blot.domNode, node); + } + blot.attach(); + } + } + return blot; +} +exports.default = ContainerBlot; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +var store_1 = __webpack_require__(31); +var container_1 = __webpack_require__(17); +var Registry = __webpack_require__(1); +var FormatBlot = /** @class */ (function (_super) { + __extends(FormatBlot, _super); + function FormatBlot(domNode) { + var _this = _super.call(this, domNode) || this; + _this.attributes = new store_1.default(_this.domNode); + return _this; + } + FormatBlot.formats = function (domNode) { + if (typeof this.tagName === 'string') { + return true; + } + else if (Array.isArray(this.tagName)) { + return domNode.tagName.toLowerCase(); + } + return undefined; + }; + FormatBlot.prototype.format = function (name, value) { + var format = Registry.query(name); + if (format instanceof attributor_1.default) { + this.attributes.attribute(format, value); + } + else if (value) { + if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) { + this.replaceWith(name, value); + } + } + }; + FormatBlot.prototype.formats = function () { + var formats = this.attributes.values(); + var format = this.statics.formats(this.domNode); + if (format != null) { + formats[this.statics.blotName] = format; + } + return formats; + }; + FormatBlot.prototype.replaceWith = function (name, value) { + var replacement = _super.prototype.replaceWith.call(this, name, value); + this.attributes.copy(replacement); + return replacement; + }; + FormatBlot.prototype.update = function (mutations, context) { + var _this = this; + _super.prototype.update.call(this, mutations, context); + if (mutations.some(function (mutation) { + return mutation.target === _this.domNode && mutation.type === 'attributes'; + })) { + this.attributes.build(); + } + }; + FormatBlot.prototype.wrap = function (name, value) { + var wrapper = _super.prototype.wrap.call(this, name, value); + if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) { + this.attributes.move(wrapper); + } + return wrapper; + }; + return FormatBlot; +}(container_1.default)); +exports.default = FormatBlot; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var shadow_1 = __webpack_require__(30); +var Registry = __webpack_require__(1); +var LeafBlot = /** @class */ (function (_super) { + __extends(LeafBlot, _super); + function LeafBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + LeafBlot.value = function (domNode) { + return true; + }; + LeafBlot.prototype.index = function (node, offset) { + if (this.domNode === node || + this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return Math.min(offset, 1); + } + return -1; + }; + LeafBlot.prototype.position = function (index, inclusive) { + var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode); + if (index > 0) + offset += 1; + return [this.parent.domNode, offset]; + }; + LeafBlot.prototype.value = function () { + var _a; + return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a; + }; + LeafBlot.scope = Registry.Scope.INLINE_BLOT; + return LeafBlot; +}(shadow_1.default)); +exports.default = LeafBlot; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var equal = __webpack_require__(11); +var extend = __webpack_require__(3); + + +var lib = { + attributes: { + compose: function (a, b, keepNull) { + if (typeof a !== 'object') a = {}; + if (typeof b !== 'object') b = {}; + var attributes = extend(true, {}, b); + if (!keepNull) { + attributes = Object.keys(attributes).reduce(function (copy, key) { + if (attributes[key] != null) { + copy[key] = attributes[key]; + } + return copy; + }, {}); + } + for (var key in a) { + if (a[key] !== undefined && b[key] === undefined) { + attributes[key] = a[key]; + } + } + return Object.keys(attributes).length > 0 ? attributes : undefined; + }, + + diff: function(a, b) { + if (typeof a !== 'object') a = {}; + if (typeof b !== 'object') b = {}; + var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) { + if (!equal(a[key], b[key])) { + attributes[key] = b[key] === undefined ? null : b[key]; + } + return attributes; + }, {}); + return Object.keys(attributes).length > 0 ? attributes : undefined; + }, + + transform: function (a, b, priority) { + if (typeof a !== 'object') return b; + if (typeof b !== 'object') return undefined; + if (!priority) return b; // b simply overwrites us without priority + var attributes = Object.keys(b).reduce(function (attributes, key) { + if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value + return attributes; + }, {}); + return Object.keys(attributes).length > 0 ? attributes : undefined; + } + }, + + iterator: function (ops) { + return new Iterator(ops); + }, + + length: function (op) { + if (typeof op['delete'] === 'number') { + return op['delete']; + } else if (typeof op.retain === 'number') { + return op.retain; + } else { + return typeof op.insert === 'string' ? op.insert.length : 1; + } + } +}; + + +function Iterator(ops) { + this.ops = ops; + this.index = 0; + this.offset = 0; +}; + +Iterator.prototype.hasNext = function () { + return this.peekLength() < Infinity; +}; + +Iterator.prototype.next = function (length) { + if (!length) length = Infinity; + var nextOp = this.ops[this.index]; + if (nextOp) { + var offset = this.offset; + var opLength = lib.length(nextOp) + if (length >= opLength - offset) { + length = opLength - offset; + this.index += 1; + this.offset = 0; + } else { + this.offset += length; + } + if (typeof nextOp['delete'] === 'number') { + return { 'delete': length }; + } else { + var retOp = {}; + if (nextOp.attributes) { + retOp.attributes = nextOp.attributes; + } + if (typeof nextOp.retain === 'number') { + retOp.retain = length; + } else if (typeof nextOp.insert === 'string') { + retOp.insert = nextOp.insert.substr(offset, length); + } else { + // offset should === 0, length should === 1 + retOp.insert = nextOp.insert; + } + return retOp; + } + } else { + return { retain: Infinity }; + } +}; + +Iterator.prototype.peek = function () { + return this.ops[this.index]; +}; + +Iterator.prototype.peekLength = function () { + if (this.ops[this.index]) { + // Should never return 0 if our index is being managed correctly + return lib.length(this.ops[this.index]) - this.offset; + } else { + return Infinity; + } +}; + +Iterator.prototype.peekType = function () { + if (this.ops[this.index]) { + if (typeof this.ops[this.index]['delete'] === 'number') { + return 'delete'; + } else if (typeof this.ops[this.index].retain === 'number') { + return 'retain'; + } else { + return 'insert'; + } + } + return 'retain'; +}; + +Iterator.prototype.rest = function () { + if (!this.hasNext()) { + return []; + } else if (this.offset === 0) { + return this.ops.slice(this.index); + } else { + var offset = this.offset; + var index = this.index; + var next = this.next(); + var rest = this.ops.slice(this.index); + this.offset = offset; + this.index = index; + return [next].concat(rest); + } +}; + + +module.exports = lib; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + +var clone = (function() { +'use strict'; + +function _instanceof(obj, type) { + return type != null && obj instanceof type; +} + +var nativeMap; +try { + nativeMap = Map; +} catch(_) { + // maybe a reference error because no `Map`. Give it a dummy value that no + // value will ever be an instanceof. + nativeMap = function() {}; +} + +var nativeSet; +try { + nativeSet = Set; +} catch(_) { + nativeSet = function() {}; +} + +var nativePromise; +try { + nativePromise = Promise; +} catch(_) { + nativePromise = function() {}; +} + +/** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). + * @param `includeNonEnumerable` - set to true if the non-enumerable properties + * should be cloned as well. Non-enumerable properties on the prototype + * chain will be ignored. (optional - false by default) +*/ +function clone(parent, circular, depth, prototype, includeNonEnumerable) { + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + includeNonEnumerable = circular.includeNonEnumerable; + circular = circular.circular; + } + // maintain two arrays for circular references, where corresponding parents + // and children have the same index + var allParents = []; + var allChildren = []; + + var useBuffer = typeof Buffer != 'undefined'; + + if (typeof circular == 'undefined') + circular = true; + + if (typeof depth == 'undefined') + depth = Infinity; + + // recurse this function so we don't reset allParents and allChildren + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) + return null; + + if (depth === 0) + return parent; + + var child; + var proto; + if (typeof parent != 'object') { + return parent; + } + + if (_instanceof(parent, nativeMap)) { + child = new nativeMap(); + } else if (_instanceof(parent, nativeSet)) { + child = new nativeSet(); + } else if (_instanceof(parent, nativePromise)) { + child = new nativePromise(function (resolve, reject) { + parent.then(function(value) { + resolve(_clone(value, depth - 1)); + }, function(err) { + reject(_clone(err, depth - 1)); + }); + }); + } else if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.allocUnsafe) { + // Node.js >= 4.5.0 + child = Buffer.allocUnsafe(parent.length); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + } + parent.copy(child); + return child; + } else if (_instanceof(parent, Error)) { + child = Object.create(parent); + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } + else { + child = Object.create(prototype); + proto = prototype; + } + } + + if (circular) { + var index = allParents.indexOf(parent); + + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent); + allChildren.push(child); + } + + if (_instanceof(parent, nativeMap)) { + parent.forEach(function(value, key) { + var keyChild = _clone(key, depth - 1); + var valueChild = _clone(value, depth - 1); + child.set(keyChild, valueChild); + }); + } + if (_instanceof(parent, nativeSet)) { + parent.forEach(function(value) { + var entryChild = _clone(value, depth - 1); + child.add(entryChild); + }); + } + + for (var i in parent) { + var attrs; + if (proto) { + attrs = Object.getOwnPropertyDescriptor(proto, i); + } + + if (attrs && attrs.set == null) { + continue; + } + child[i] = _clone(parent[i], depth - 1); + } + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(parent); + for (var i = 0; i < symbols.length; i++) { + // Don't need to worry about cloning a symbol because it is a primitive, + // like a number or string. + var symbol = symbols[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); + if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { + continue; + } + child[symbol] = _clone(parent[symbol], depth - 1); + if (!descriptor.enumerable) { + Object.defineProperty(child, symbol, { + enumerable: false + }); + } + } + } + + if (includeNonEnumerable) { + var allPropertyNames = Object.getOwnPropertyNames(parent); + for (var i = 0; i < allPropertyNames.length; i++) { + var propertyName = allPropertyNames[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); + if (descriptor && descriptor.enumerable) { + continue; + } + child[propertyName] = _clone(parent[propertyName], depth - 1); + Object.defineProperty(child, propertyName, { + enumerable: false + }); + } + } + + return child; + } + + return _clone(parent, depth); +} + +/** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ +clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + + var c = function () {}; + c.prototype = parent; + return new c(); +}; + +// private utility functions + +function __objToStr(o) { + return Object.prototype.toString.call(o); +} +clone.__objToStr = __objToStr; + +function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; +} +clone.__isDate = __isDate; + +function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; +} +clone.__isArray = __isArray; + +function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; +} +clone.__isRegExp = __isRegExp; + +function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; +} +clone.__getRegExpFlags = __getRegExpFlags; + +return clone; +})(); + +if (typeof module === 'object' && module.exports) { + module.exports = clone; +} + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _emitter = __webpack_require__(8); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _container = __webpack_require__(25); + +var _container2 = _interopRequireDefault(_container); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +function isLine(blot) { + return blot instanceof _block2.default || blot instanceof _block.BlockEmbed; +} + +var Scroll = function (_Parchment$Scroll) { + _inherits(Scroll, _Parchment$Scroll); + + function Scroll(domNode, config) { + _classCallCheck(this, Scroll); + + var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode)); + + _this.emitter = config.emitter; + if (Array.isArray(config.whitelist)) { + _this.whitelist = config.whitelist.reduce(function (whitelist, format) { + whitelist[format] = true; + return whitelist; + }, {}); + } + // Some reason fixes composition issues with character languages in Windows/Chrome, Safari + _this.domNode.addEventListener('DOMNodeInserted', function () {}); + _this.optimize(); + _this.enable(); + return _this; + } + + _createClass(Scroll, [{ + key: 'batchStart', + value: function batchStart() { + this.batch = true; + } + }, { + key: 'batchEnd', + value: function batchEnd() { + this.batch = false; + this.optimize(); + } + }, { + key: 'deleteAt', + value: function deleteAt(index, length) { + var _line = this.line(index), + _line2 = _slicedToArray(_line, 2), + first = _line2[0], + offset = _line2[1]; + + var _line3 = this.line(index + length), + _line4 = _slicedToArray(_line3, 1), + last = _line4[0]; + + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length); + if (last != null && first !== last && offset > 0) { + if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) { + this.optimize(); + return; + } + if (first instanceof _code2.default) { + var newlineIndex = first.newlineIndex(first.length(), true); + if (newlineIndex > -1) { + first = first.split(newlineIndex + 1); + if (first === last) { + this.optimize(); + return; + } + } + } else if (last instanceof _code2.default) { + var _newlineIndex = last.newlineIndex(0); + if (_newlineIndex > -1) { + last.split(_newlineIndex + 1); + } + } + var ref = last.children.head instanceof _break2.default ? null : last.children.head; + first.moveChildren(last, ref); + first.remove(); + } + this.optimize(); + } + }, { + key: 'enable', + value: function enable() { + var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + + this.domNode.setAttribute('contenteditable', enabled); + } + }, { + key: 'formatAt', + value: function formatAt(index, length, format, value) { + if (this.whitelist != null && !this.whitelist[format]) return; + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value); + this.optimize(); + } + }, { + key: 'insertAt', + value: function insertAt(index, value, def) { + if (def != null && this.whitelist != null && !this.whitelist[value]) return; + if (index >= this.length()) { + if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) { + var blot = _parchment2.default.create(this.statics.defaultChild); + this.appendChild(blot); + if (def == null && value.endsWith('\n')) { + value = value.slice(0, -1); + } + blot.insertAt(0, value, def); + } else { + var embed = _parchment2.default.create(value, def); + this.appendChild(embed); + } + } else { + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def); + } + this.optimize(); + } + }, { + key: 'insertBefore', + value: function insertBefore(blot, ref) { + if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) { + var wrapper = _parchment2.default.create(this.statics.defaultChild); + wrapper.appendChild(blot); + blot = wrapper; + } + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref); + } + }, { + key: 'leaf', + value: function leaf(index) { + return this.path(index).pop() || [null, -1]; + } + }, { + key: 'line', + value: function line(index) { + if (index === this.length()) { + return this.line(index - 1); + } + return this.descendant(isLine, index); + } + }, { + key: 'lines', + value: function lines() { + var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE; + + var getLines = function getLines(blot, index, length) { + var lines = [], + lengthLeft = length; + blot.children.forEachAt(index, length, function (child, index, length) { + if (isLine(child)) { + lines.push(child); + } else if (child instanceof _parchment2.default.Container) { + lines = lines.concat(getLines(child, index, lengthLeft)); + } + lengthLeft -= length; + }); + return lines; + }; + return getLines(this, index, length); + } + }, { + key: 'optimize', + value: function optimize() { + var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (this.batch === true) return; + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context); + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context); + } + } + }, { + key: 'path', + value: function path(index) { + return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self + } + }, { + key: 'update', + value: function update(mutations) { + if (this.batch === true) return; + var source = _emitter2.default.sources.USER; + if (typeof mutations === 'string') { + source = mutations; + } + if (!Array.isArray(mutations)) { + mutations = this.observer.takeRecords(); + } + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations); + } + _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy + if (mutations.length > 0) { + this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations); + } + } + }]); + + return Scroll; +}(_parchment2.default.Scroll); + +Scroll.blotName = 'scroll'; +Scroll.className = 'ql-editor'; +Scroll.tagName = 'DIV'; +Scroll.defaultChild = 'block'; +Scroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default]; + +exports.default = Scroll; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SHORTKEY = exports.default = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _clone = __webpack_require__(21); + +var _clone2 = _interopRequireDefault(_clone); + +var _deepEqual = __webpack_require__(11); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _op = __webpack_require__(20); + +var _op2 = _interopRequireDefault(_op); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:keyboard'); + +var SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey'; + +var Keyboard = function (_Module) { + _inherits(Keyboard, _Module); + + _createClass(Keyboard, null, [{ + key: 'match', + value: function match(evt, binding) { + binding = normalize(binding); + if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) { + return !!binding[key] !== evt[key] && binding[key] !== null; + })) { + return false; + } + return binding.key === (evt.which || evt.keyCode); + } + }]); + + function Keyboard(quill, options) { + _classCallCheck(this, Keyboard); + + var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options)); + + _this.bindings = {}; + Object.keys(_this.options.bindings).forEach(function (name) { + if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) { + return; + } + if (_this.options.bindings[name]) { + _this.addBinding(_this.options.bindings[name]); + } + }); + _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter); + _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {}); + if (/Firefox/i.test(navigator.userAgent)) { + // Need to handle delete and backspace for Firefox in the general case #1171 + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete); + } else { + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete); + } + _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange); + _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange); + _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace); + _this.listen(); + return _this; + } + + _createClass(Keyboard, [{ + key: 'addBinding', + value: function addBinding(key) { + var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var binding = normalize(key); + if (binding == null || binding.key == null) { + return debug.warn('Attempted to add invalid keyboard binding', binding); + } + if (typeof context === 'function') { + context = { handler: context }; + } + if (typeof handler === 'function') { + handler = { handler: handler }; + } + binding = (0, _extend2.default)(binding, context, handler); + this.bindings[binding.key] = this.bindings[binding.key] || []; + this.bindings[binding.key].push(binding); + } + }, { + key: 'listen', + value: function listen() { + var _this2 = this; + + this.quill.root.addEventListener('keydown', function (evt) { + if (evt.defaultPrevented) return; + var which = evt.which || evt.keyCode; + var bindings = (_this2.bindings[which] || []).filter(function (binding) { + return Keyboard.match(evt, binding); + }); + if (bindings.length === 0) return; + var range = _this2.quill.getSelection(); + if (range == null || !_this2.quill.hasFocus()) return; + + var _quill$getLine = _this2.quill.getLine(range.index), + _quill$getLine2 = _slicedToArray(_quill$getLine, 2), + line = _quill$getLine2[0], + offset = _quill$getLine2[1]; + + var _quill$getLeaf = _this2.quill.getLeaf(range.index), + _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2), + leafStart = _quill$getLeaf2[0], + offsetStart = _quill$getLeaf2[1]; + + var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length), + _ref2 = _slicedToArray(_ref, 2), + leafEnd = _ref2[0], + offsetEnd = _ref2[1]; + + var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : ''; + var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : ''; + var curContext = { + collapsed: range.length === 0, + empty: range.length === 0 && line.length() <= 1, + format: _this2.quill.getFormat(range), + offset: offset, + prefix: prefixText, + suffix: suffixText + }; + var prevented = bindings.some(function (binding) { + if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false; + if (binding.empty != null && binding.empty !== curContext.empty) return false; + if (binding.offset != null && binding.offset !== curContext.offset) return false; + if (Array.isArray(binding.format)) { + // any format is present + if (binding.format.every(function (name) { + return curContext.format[name] == null; + })) { + return false; + } + } else if (_typeof(binding.format) === 'object') { + // all formats must match + if (!Object.keys(binding.format).every(function (name) { + if (binding.format[name] === true) return curContext.format[name] != null; + if (binding.format[name] === false) return curContext.format[name] == null; + return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]); + })) { + return false; + } + } + if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false; + if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false; + return binding.handler.call(_this2, range, curContext) !== true; + }); + if (prevented) { + evt.preventDefault(); + } + }); + } + }]); + + return Keyboard; +}(_module2.default); + +Keyboard.keys = { + BACKSPACE: 8, + TAB: 9, + ENTER: 13, + ESCAPE: 27, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, + DELETE: 46 +}; + +Keyboard.DEFAULTS = { + bindings: { + 'bold': makeFormatHandler('bold'), + 'italic': makeFormatHandler('italic'), + 'underline': makeFormatHandler('underline'), + 'indent': { + // highlight tab or tab at beginning of list, indent or blockquote + key: Keyboard.keys.TAB, + format: ['blockquote', 'indent', 'list'], + handler: function handler(range, context) { + if (context.collapsed && context.offset !== 0) return true; + this.quill.format('indent', '+1', _quill2.default.sources.USER); + } + }, + 'outdent': { + key: Keyboard.keys.TAB, + shiftKey: true, + format: ['blockquote', 'indent', 'list'], + // highlight tab or tab at beginning of list, indent or blockquote + handler: function handler(range, context) { + if (context.collapsed && context.offset !== 0) return true; + this.quill.format('indent', '-1', _quill2.default.sources.USER); + } + }, + 'outdent backspace': { + key: Keyboard.keys.BACKSPACE, + collapsed: true, + shiftKey: null, + metaKey: null, + ctrlKey: null, + altKey: null, + format: ['indent', 'list'], + offset: 0, + handler: function handler(range, context) { + if (context.format.indent != null) { + this.quill.format('indent', '-1', _quill2.default.sources.USER); + } else if (context.format.list != null) { + this.quill.format('list', false, _quill2.default.sources.USER); + } + } + }, + 'indent code-block': makeCodeBlockHandler(true), + 'outdent code-block': makeCodeBlockHandler(false), + 'remove tab': { + key: Keyboard.keys.TAB, + shiftKey: true, + collapsed: true, + prefix: /\t$/, + handler: function handler(range) { + this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER); + } + }, + 'tab': { + key: Keyboard.keys.TAB, + handler: function handler(range) { + this.quill.history.cutoff(); + var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\t'); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.history.cutoff(); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + } + }, + 'list empty enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['list'], + empty: true, + handler: function handler(range, context) { + this.quill.format('list', false, _quill2.default.sources.USER); + if (context.format.indent) { + this.quill.format('indent', false, _quill2.default.sources.USER); + } + } + }, + 'checklist enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: { list: 'checked' }, + handler: function handler(range) { + var _quill$getLine3 = this.quill.getLine(range.index), + _quill$getLine4 = _slicedToArray(_quill$getLine3, 2), + line = _quill$getLine4[0], + offset = _quill$getLine4[1]; + + var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' }); + var delta = new _quillDelta2.default().retain(range.index).insert('\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.scrollIntoView(); + } + }, + 'header enter': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['header'], + suffix: /^$/, + handler: function handler(range, context) { + var _quill$getLine5 = this.quill.getLine(range.index), + _quill$getLine6 = _slicedToArray(_quill$getLine5, 2), + line = _quill$getLine6[0], + offset = _quill$getLine6[1]; + + var delta = new _quillDelta2.default().retain(range.index).insert('\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.scrollIntoView(); + } + }, + 'list autofill': { + key: ' ', + collapsed: true, + format: { list: false }, + prefix: /^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/, + handler: function handler(range, context) { + var length = context.prefix.length; + + var _quill$getLine7 = this.quill.getLine(range.index), + _quill$getLine8 = _slicedToArray(_quill$getLine7, 2), + line = _quill$getLine8[0], + offset = _quill$getLine8[1]; + + if (offset > length) return true; + var value = void 0; + switch (context.prefix.trim()) { + case '[]':case '[ ]': + value = 'unchecked'; + break; + case '[x]': + value = 'checked'; + break; + case '-':case '*': + value = 'bullet'; + break; + default: + value = 'ordered'; + } + this.quill.insertText(range.index, ' ', _quill2.default.sources.USER); + this.quill.history.cutoff(); + var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value }); + this.quill.updateContents(delta, _quill2.default.sources.USER); + this.quill.history.cutoff(); + this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT); + } + }, + 'code exit': { + key: Keyboard.keys.ENTER, + collapsed: true, + format: ['code-block'], + prefix: /\n\n$/, + suffix: /^\s+$/, + handler: function handler(range) { + var _quill$getLine9 = this.quill.getLine(range.index), + _quill$getLine10 = _slicedToArray(_quill$getLine9, 2), + line = _quill$getLine10[0], + offset = _quill$getLine10[1]; + + var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1); + this.quill.updateContents(delta, _quill2.default.sources.USER); + } + }, + 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false), + 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true), + 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false), + 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true) + } +}; + +function makeEmbedArrowHandler(key, shiftKey) { + var _ref3; + + var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix'; + return _ref3 = { + key: key, + shiftKey: shiftKey, + altKey: null + }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) { + var index = range.index; + if (key === Keyboard.keys.RIGHT) { + index += range.length + 1; + } + + var _quill$getLeaf3 = this.quill.getLeaf(index), + _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1), + leaf = _quill$getLeaf4[0]; + + if (!(leaf instanceof _parchment2.default.Embed)) return true; + if (key === Keyboard.keys.LEFT) { + if (shiftKey) { + this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER); + } else { + this.quill.setSelection(range.index - 1, _quill2.default.sources.USER); + } + } else { + if (shiftKey) { + this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER); + } else { + this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER); + } + } + return false; + }), _ref3; +} + +function handleBackspace(range, context) { + if (range.index === 0 || this.quill.getLength() <= 1) return; + + var _quill$getLine11 = this.quill.getLine(range.index), + _quill$getLine12 = _slicedToArray(_quill$getLine11, 1), + line = _quill$getLine12[0]; + + var formats = {}; + if (context.offset === 0) { + var _quill$getLine13 = this.quill.getLine(range.index - 1), + _quill$getLine14 = _slicedToArray(_quill$getLine13, 1), + prev = _quill$getLine14[0]; + + if (prev != null && prev.length() > 1) { + var curFormats = line.formats(); + var prevFormats = this.quill.getFormat(range.index - 1, 1); + formats = _op2.default.attributes.diff(curFormats, prevFormats) || {}; + } + } + // Check for astral symbols + var length = /[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(context.prefix) ? 2 : 1; + this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER); + } + this.quill.focus(); +} + +function handleDelete(range, context) { + // Check for astral symbols + var length = /^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(context.suffix) ? 2 : 1; + if (range.index >= this.quill.getLength() - length) return; + var formats = {}, + nextLength = 0; + + var _quill$getLine15 = this.quill.getLine(range.index), + _quill$getLine16 = _slicedToArray(_quill$getLine15, 1), + line = _quill$getLine16[0]; + + if (context.offset >= line.length() - 1) { + var _quill$getLine17 = this.quill.getLine(range.index + 1), + _quill$getLine18 = _slicedToArray(_quill$getLine17, 1), + next = _quill$getLine18[0]; + + if (next) { + var curFormats = line.formats(); + var nextFormats = this.quill.getFormat(range.index, 1); + formats = _op2.default.attributes.diff(curFormats, nextFormats) || {}; + nextLength = next.length(); + } + } + this.quill.deleteText(range.index, length, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER); + } +} + +function handleDeleteRange(range) { + var lines = this.quill.getLines(range); + var formats = {}; + if (lines.length > 1) { + var firstFormats = lines[0].formats(); + var lastFormats = lines[lines.length - 1].formats(); + formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {}; + } + this.quill.deleteText(range, _quill2.default.sources.USER); + if (Object.keys(formats).length > 0) { + this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER); + } + this.quill.setSelection(range.index, _quill2.default.sources.SILENT); + this.quill.focus(); +} + +function handleEnter(range, context) { + var _this3 = this; + + if (range.length > 0) { + this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change + } + var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) { + if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) { + lineFormats[format] = context.format[format]; + } + return lineFormats; + }, {}); + this.quill.insertText(range.index, '\n', lineFormats, _quill2.default.sources.USER); + // Earlier scroll.deleteAt might have messed up our selection, + // so insertText's built in selection preservation is not reliable + this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT); + this.quill.focus(); + Object.keys(context.format).forEach(function (name) { + if (lineFormats[name] != null) return; + if (Array.isArray(context.format[name])) return; + if (name === 'link') return; + _this3.quill.format(name, context.format[name], _quill2.default.sources.USER); + }); +} + +function makeCodeBlockHandler(indent) { + return { + key: Keyboard.keys.TAB, + shiftKey: !indent, + format: { 'code-block': true }, + handler: function handler(range) { + var CodeBlock = _parchment2.default.query('code-block'); + var index = range.index, + length = range.length; + + var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index), + _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2), + block = _quill$scroll$descend2[0], + offset = _quill$scroll$descend2[1]; + + if (block == null) return; + var scrollIndex = this.quill.getIndex(block); + var start = block.newlineIndex(offset, true) + 1; + var end = block.newlineIndex(scrollIndex + offset + length); + var lines = block.domNode.textContent.slice(start, end).split('\n'); + offset = 0; + lines.forEach(function (line, i) { + if (indent) { + block.insertAt(start + offset, CodeBlock.TAB); + offset += CodeBlock.TAB.length; + if (i === 0) { + index += CodeBlock.TAB.length; + } else { + length += CodeBlock.TAB.length; + } + } else if (line.startsWith(CodeBlock.TAB)) { + block.deleteAt(start + offset, CodeBlock.TAB.length); + offset -= CodeBlock.TAB.length; + if (i === 0) { + index -= CodeBlock.TAB.length; + } else { + length -= CodeBlock.TAB.length; + } + } + offset += line.length + 1; + }); + this.quill.update(_quill2.default.sources.USER); + this.quill.setSelection(index, length, _quill2.default.sources.SILENT); + } + }; +} + +function makeFormatHandler(format) { + return { + key: format[0].toUpperCase(), + shortKey: true, + handler: function handler(range, context) { + this.quill.format(format, !context.format[format], _quill2.default.sources.USER); + } + }; +} + +function normalize(binding) { + if (typeof binding === 'string' || typeof binding === 'number') { + return normalize({ key: binding }); + } + if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') { + binding = (0, _clone2.default)(binding, false); + } + if (typeof binding.key === 'string') { + if (Keyboard.keys[binding.key.toUpperCase()] != null) { + binding.key = Keyboard.keys[binding.key.toUpperCase()]; + } else if (binding.key.length === 1) { + binding.key = binding.key.toUpperCase().charCodeAt(0); + } else { + return null; + } + } + if (binding.shortKey) { + binding[SHORTKEY] = binding.shortKey; + delete binding.shortKey; + } + return binding; +} + +exports.default = Keyboard; +exports.SHORTKEY = SHORTKEY; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Cursor = function (_Parchment$Embed) { + _inherits(Cursor, _Parchment$Embed); + + _createClass(Cursor, null, [{ + key: 'value', + value: function value() { + return undefined; + } + }]); + + function Cursor(domNode, selection) { + _classCallCheck(this, Cursor); + + var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode)); + + _this.selection = selection; + _this.textNode = document.createTextNode(Cursor.CONTENTS); + _this.domNode.appendChild(_this.textNode); + _this._length = 0; + return _this; + } + + _createClass(Cursor, [{ + key: 'detach', + value: function detach() { + // super.detach() will also clear domNode.__blot + if (this.parent != null) this.parent.removeChild(this); + } + }, { + key: 'format', + value: function format(name, value) { + if (this._length !== 0) { + return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value); + } + var target = this, + index = 0; + while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) { + index += target.offset(target.parent); + target = target.parent; + } + if (target != null) { + this._length = Cursor.CONTENTS.length; + target.optimize(); + target.formatAt(index, Cursor.CONTENTS.length, name, value); + this._length = 0; + } + } + }, { + key: 'index', + value: function index(node, offset) { + if (node === this.textNode) return 0; + return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset); + } + }, { + key: 'length', + value: function length() { + return this._length; + } + }, { + key: 'position', + value: function position() { + return [this.textNode, this.textNode.data.length]; + } + }, { + key: 'remove', + value: function remove() { + _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this); + this.parent = null; + } + }, { + key: 'restore', + value: function restore() { + if (this.selection.composing || this.parent == null) return; + var textNode = this.textNode; + var range = this.selection.getNativeRange(); + var restoreText = void 0, + start = void 0, + end = void 0; + if (range != null && range.start.node === textNode && range.end.node === textNode) { + var _ref = [textNode, range.start.offset, range.end.offset]; + restoreText = _ref[0]; + start = _ref[1]; + end = _ref[2]; + } + // Link format will insert text outside of anchor tag + while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) { + this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode); + } + if (this.textNode.data !== Cursor.CONTENTS) { + var text = this.textNode.data.split(Cursor.CONTENTS).join(''); + if (this.next instanceof _text2.default) { + restoreText = this.next.domNode; + this.next.insertAt(0, text); + this.textNode.data = Cursor.CONTENTS; + } else { + this.textNode.data = text; + this.parent.insertBefore(_parchment2.default.create(this.textNode), this); + this.textNode = document.createTextNode(Cursor.CONTENTS); + this.domNode.appendChild(this.textNode); + } + } + this.remove(); + if (start != null) { + var _map = [start, end].map(function (offset) { + return Math.max(0, Math.min(restoreText.data.length, offset - 1)); + }); + + var _map2 = _slicedToArray(_map, 2); + + start = _map2[0]; + end = _map2[1]; + + return { + startNode: restoreText, + startOffset: start, + endNode: restoreText, + endOffset: end + }; + } + } + }, { + key: 'update', + value: function update(mutations, context) { + var _this2 = this; + + if (mutations.some(function (mutation) { + return mutation.type === 'characterData' && mutation.target === _this2.textNode; + })) { + var range = this.restore(); + if (range) context.range = range; + } + } + }, { + key: 'value', + value: function value() { + return ''; + } + }]); + + return Cursor; +}(_parchment2.default.Embed); + +Cursor.blotName = 'cursor'; +Cursor.className = 'ql-cursor'; +Cursor.tagName = 'span'; +Cursor.CONTENTS = '\uFEFF'; // Zero width no break space + + +exports.default = Cursor; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Container = function (_Parchment$Container) { + _inherits(Container, _Parchment$Container); + + function Container() { + _classCallCheck(this, Container); + + return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments)); + } + + return Container; +}(_parchment2.default.Container); + +Container.allowedChildren = [_block2.default, _block.BlockEmbed, Container]; + +exports.default = Container; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ColorAttributor = function (_Parchment$Attributor) { + _inherits(ColorAttributor, _Parchment$Attributor); + + function ColorAttributor() { + _classCallCheck(this, ColorAttributor); + + return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments)); + } + + _createClass(ColorAttributor, [{ + key: 'value', + value: function value(domNode) { + var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode); + if (!value.startsWith('rgb(')) return value; + value = value.replace(/^[^\d]+/, '').replace(/[^\d]+$/, ''); + return '#' + value.split(',').map(function (component) { + return ('00' + parseInt(component).toString(16)).slice(-2); + }).join(''); + } + }]); + + return ColorAttributor; +}(_parchment2.default.Attributor.Style); + +var ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', { + scope: _parchment2.default.Scope.INLINE +}); +var ColorStyle = new ColorAttributor('color', 'color', { + scope: _parchment2.default.Scope.INLINE +}); + +exports.ColorAttributor = ColorAttributor; +exports.ColorClass = ColorClass; +exports.ColorStyle = ColorStyle; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.sanitize = exports.default = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Link = function (_Inline) { + _inherits(Link, _Inline); + + function Link() { + _classCallCheck(this, Link); + + return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments)); + } + + _createClass(Link, [{ + key: 'format', + value: function format(name, value) { + if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value); + value = this.constructor.sanitize(value); + this.domNode.setAttribute('href', value); + } + }], [{ + key: 'create', + value: function create(value) { + var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value); + value = this.sanitize(value); + node.setAttribute('href', value); + node.setAttribute('rel', 'noopener noreferrer'); + node.setAttribute('target', '_blank'); + return node; + } + }, { + key: 'formats', + value: function formats(domNode) { + return domNode.getAttribute('href'); + } + }, { + key: 'sanitize', + value: function sanitize(url) { + return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL; + } + }]); + + return Link; +}(_inline2.default); + +Link.blotName = 'link'; +Link.tagName = 'A'; +Link.SANITIZED_URL = 'about:blank'; +Link.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel']; + +function _sanitize(url, protocols) { + var anchor = document.createElement('a'); + anchor.href = url; + var protocol = anchor.href.slice(0, anchor.href.indexOf(':')); + return protocols.indexOf(protocol) > -1; +} + +exports.default = Link; +exports.sanitize = _sanitize; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _keyboard = __webpack_require__(23); + +var _keyboard2 = _interopRequireDefault(_keyboard); + +var _dropdown = __webpack_require__(107); + +var _dropdown2 = _interopRequireDefault(_dropdown); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var optionsCounter = 0; + +function toggleAriaAttribute(element, attribute) { + element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true')); +} + +var Picker = function () { + function Picker(select) { + var _this = this; + + _classCallCheck(this, Picker); + + this.select = select; + this.container = document.createElement('span'); + this.buildPicker(); + this.select.style.display = 'none'; + this.select.parentNode.insertBefore(this.container, this.select); + + this.label.addEventListener('mousedown', function () { + _this.togglePicker(); + }); + this.label.addEventListener('keydown', function (event) { + switch (event.keyCode) { + // Allows the "Enter" key to open the picker + case _keyboard2.default.keys.ENTER: + _this.togglePicker(); + break; + + // Allows the "Escape" key to close the picker + case _keyboard2.default.keys.ESCAPE: + _this.escape(); + event.preventDefault(); + break; + default: + } + }); + this.select.addEventListener('change', this.update.bind(this)); + } + + _createClass(Picker, [{ + key: 'togglePicker', + value: function togglePicker() { + this.container.classList.toggle('ql-expanded'); + // Toggle aria-expanded and aria-hidden to make the picker accessible + toggleAriaAttribute(this.label, 'aria-expanded'); + toggleAriaAttribute(this.options, 'aria-hidden'); + } + }, { + key: 'buildItem', + value: function buildItem(option) { + var _this2 = this; + + var item = document.createElement('span'); + item.tabIndex = '0'; + item.setAttribute('role', 'button'); + + item.classList.add('ql-picker-item'); + if (option.hasAttribute('value')) { + item.setAttribute('data-value', option.getAttribute('value')); + } + if (option.textContent) { + item.setAttribute('data-label', option.textContent); + } + item.addEventListener('click', function () { + _this2.selectItem(item, true); + }); + item.addEventListener('keydown', function (event) { + switch (event.keyCode) { + // Allows the "Enter" key to select an item + case _keyboard2.default.keys.ENTER: + _this2.selectItem(item, true); + event.preventDefault(); + break; + + // Allows the "Escape" key to close the picker + case _keyboard2.default.keys.ESCAPE: + _this2.escape(); + event.preventDefault(); + break; + default: + } + }); + + return item; + } + }, { + key: 'buildLabel', + value: function buildLabel() { + var label = document.createElement('span'); + label.classList.add('ql-picker-label'); + label.innerHTML = _dropdown2.default; + label.tabIndex = '0'; + label.setAttribute('role', 'button'); + label.setAttribute('aria-expanded', 'false'); + this.container.appendChild(label); + return label; + } + }, { + key: 'buildOptions', + value: function buildOptions() { + var _this3 = this; + + var options = document.createElement('span'); + options.classList.add('ql-picker-options'); + + // Don't want screen readers to read this until options are visible + options.setAttribute('aria-hidden', 'true'); + options.tabIndex = '-1'; + + // Need a unique id for aria-controls + options.id = 'ql-picker-options-' + optionsCounter; + optionsCounter += 1; + this.label.setAttribute('aria-controls', options.id); + + this.options = options; + + [].slice.call(this.select.options).forEach(function (option) { + var item = _this3.buildItem(option); + options.appendChild(item); + if (option.selected === true) { + _this3.selectItem(item); + } + }); + this.container.appendChild(options); + } + }, { + key: 'buildPicker', + value: function buildPicker() { + var _this4 = this; + + [].slice.call(this.select.attributes).forEach(function (item) { + _this4.container.setAttribute(item.name, item.value); + }); + this.container.classList.add('ql-picker'); + this.label = this.buildLabel(); + this.buildOptions(); + } + }, { + key: 'escape', + value: function escape() { + var _this5 = this; + + // Close menu and return focus to trigger label + this.close(); + // Need setTimeout for accessibility to ensure that the browser executes + // focus on the next process thread and after any DOM content changes + setTimeout(function () { + return _this5.label.focus(); + }, 1); + } + }, { + key: 'close', + value: function close() { + this.container.classList.remove('ql-expanded'); + this.label.setAttribute('aria-expanded', 'false'); + this.options.setAttribute('aria-hidden', 'true'); + } + }, { + key: 'selectItem', + value: function selectItem(item) { + var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var selected = this.container.querySelector('.ql-selected'); + if (item === selected) return; + if (selected != null) { + selected.classList.remove('ql-selected'); + } + if (item == null) return; + item.classList.add('ql-selected'); + this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item); + if (item.hasAttribute('data-value')) { + this.label.setAttribute('data-value', item.getAttribute('data-value')); + } else { + this.label.removeAttribute('data-value'); + } + if (item.hasAttribute('data-label')) { + this.label.setAttribute('data-label', item.getAttribute('data-label')); + } else { + this.label.removeAttribute('data-label'); + } + if (trigger) { + if (typeof Event === 'function') { + this.select.dispatchEvent(new Event('change')); + } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') { + // IE11 + var event = document.createEvent('Event'); + event.initEvent('change', true, true); + this.select.dispatchEvent(event); + } + this.close(); + } + } + }, { + key: 'update', + value: function update() { + var option = void 0; + if (this.select.selectedIndex > -1) { + var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex]; + option = this.select.options[this.select.selectedIndex]; + this.selectItem(item); + } else { + this.selectItem(null); + } + var isActive = option != null && option !== this.select.querySelector('option[selected]'); + this.label.classList.toggle('ql-active', isActive); + } + }]); + + return Picker; +}(); + +exports.default = Picker; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _break = __webpack_require__(16); + +var _break2 = _interopRequireDefault(_break); + +var _container = __webpack_require__(25); + +var _container2 = _interopRequireDefault(_container); + +var _cursor = __webpack_require__(24); + +var _cursor2 = _interopRequireDefault(_cursor); + +var _embed = __webpack_require__(35); + +var _embed2 = _interopRequireDefault(_embed); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +var _scroll = __webpack_require__(22); + +var _scroll2 = _interopRequireDefault(_scroll); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +var _clipboard = __webpack_require__(55); + +var _clipboard2 = _interopRequireDefault(_clipboard); + +var _history = __webpack_require__(42); + +var _history2 = _interopRequireDefault(_history); + +var _keyboard = __webpack_require__(23); + +var _keyboard2 = _interopRequireDefault(_keyboard); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +_quill2.default.Registro({ + 'blots/block': _block2.default, + 'blots/block/embed': _block.BlockEmbed, + 'blots/break': _break2.default, + 'blots/container': _container2.default, + 'blots/cursor': _cursor2.default, + 'blots/embed': _embed2.default, + 'blots/inline': _inline2.default, + 'blots/scroll': _scroll2.default, + 'blots/text': _text2.default, + + 'modules/clipboard': _clipboard2.default, + 'modules/history': _history2.default, + 'modules/keyboard': _keyboard2.default +}); + +_parchment2.default.Registro(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default); + +exports.default = _quill2.default; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var Registry = __webpack_require__(1); +var ShadowBlot = /** @class */ (function () { + function ShadowBlot(domNode) { + this.domNode = domNode; + // @ts-ignore + this.domNode[Registry.DATA_KEY] = { blot: this }; + } + Object.defineProperty(ShadowBlot.prototype, "statics", { + // Hack for accessing inherited static methods + get: function () { + return this.constructor; + }, + enumerable: true, + configurable: true + }); + ShadowBlot.create = function (value) { + if (this.tagName == null) { + throw new Registry.ParchmentError('Blot definition missing tagName'); + } + var node; + if (Array.isArray(this.tagName)) { + if (typeof value === 'string') { + value = value.toUpperCase(); + if (parseInt(value).toString() === value) { + value = parseInt(value); + } + } + if (typeof value === 'number') { + node = document.createElement(this.tagName[value - 1]); + } + else if (this.tagName.indexOf(value) > -1) { + node = document.createElement(value); + } + else { + node = document.createElement(this.tagName[0]); + } + } + else { + node = document.createElement(this.tagName); + } + if (this.className) { + node.classList.add(this.className); + } + return node; + }; + ShadowBlot.prototype.attach = function () { + if (this.parent != null) { + this.scroll = this.parent.scroll; + } + }; + ShadowBlot.prototype.clone = function () { + var domNode = this.domNode.cloneNode(false); + return Registry.create(domNode); + }; + ShadowBlot.prototype.detach = function () { + if (this.parent != null) + this.parent.removeChild(this); + // @ts-ignore + delete this.domNode[Registry.DATA_KEY]; + }; + ShadowBlot.prototype.deleteAt = function (index, length) { + var blot = this.isolate(index, length); + blot.remove(); + }; + ShadowBlot.prototype.formatAt = function (index, length, name, value) { + var blot = this.isolate(index, length); + if (Registry.query(name, Registry.Scope.BLOT) != null && value) { + blot.wrap(name, value); + } + else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) { + var parent = Registry.create(this.statics.scope); + blot.wrap(parent); + parent.format(name, value); + } + }; + ShadowBlot.prototype.insertAt = function (index, value, def) { + var blot = def == null ? Registry.create('text', value) : Registry.create(value, def); + var ref = this.split(index); + this.parent.insertBefore(blot, ref); + }; + ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) { + if (refBlot === void 0) { refBlot = null; } + if (this.parent != null) { + this.parent.children.remove(this); + } + var refDomNode = null; + parentBlot.children.insertBefore(this, refBlot); + if (refBlot != null) { + refDomNode = refBlot.domNode; + } + if (this.domNode.parentNode != parentBlot.domNode || + this.domNode.nextSibling != refDomNode) { + parentBlot.domNode.insertBefore(this.domNode, refDomNode); + } + this.parent = parentBlot; + this.attach(); + }; + ShadowBlot.prototype.isolate = function (index, length) { + var target = this.split(index); + target.split(length); + return target; + }; + ShadowBlot.prototype.length = function () { + return 1; + }; + ShadowBlot.prototype.offset = function (root) { + if (root === void 0) { root = this.parent; } + if (this.parent == null || this == root) + return 0; + return this.parent.children.offset(this) + this.parent.offset(root); + }; + ShadowBlot.prototype.optimize = function (context) { + // TODO clean up once we use WeakMap + // @ts-ignore + if (this.domNode[Registry.DATA_KEY] != null) { + // @ts-ignore + delete this.domNode[Registry.DATA_KEY].mutations; + } + }; + ShadowBlot.prototype.remove = function () { + if (this.domNode.parentNode != null) { + this.domNode.parentNode.removeChild(this.domNode); + } + this.detach(); + }; + ShadowBlot.prototype.replace = function (target) { + if (target.parent == null) + return; + target.parent.insertBefore(this, target.next); + target.remove(); + }; + ShadowBlot.prototype.replaceWith = function (name, value) { + var replacement = typeof name === 'string' ? Registry.create(name, value) : name; + replacement.replace(this); + return replacement; + }; + ShadowBlot.prototype.split = function (index, force) { + return index === 0 ? this : this.next; + }; + ShadowBlot.prototype.update = function (mutations, context) { + // Nothing to do by default + }; + ShadowBlot.prototype.wrap = function (name, value) { + var wrapper = typeof name === 'string' ? Registry.create(name, value) : name; + if (this.parent != null) { + this.parent.insertBefore(wrapper, this.next); + } + wrapper.appendChild(this); + return wrapper; + }; + ShadowBlot.blotName = 'abstract'; + return ShadowBlot; +}()); +exports.default = ShadowBlot; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +var class_1 = __webpack_require__(32); +var style_1 = __webpack_require__(33); +var Registry = __webpack_require__(1); +var AttributorStore = /** @class */ (function () { + function AttributorStore(domNode) { + this.attributes = {}; + this.domNode = domNode; + this.build(); + } + AttributorStore.prototype.attribute = function (attribute, value) { + // verb + if (value) { + if (attribute.add(this.domNode, value)) { + if (attribute.value(this.domNode) != null) { + this.attributes[attribute.attrName] = attribute; + } + else { + delete this.attributes[attribute.attrName]; + } + } + } + else { + attribute.remove(this.domNode); + delete this.attributes[attribute.attrName]; + } + }; + AttributorStore.prototype.build = function () { + var _this = this; + this.attributes = {}; + var attributes = attributor_1.default.keys(this.domNode); + var classes = class_1.default.keys(this.domNode); + var styles = style_1.default.keys(this.domNode); + attributes + .concat(classes) + .concat(styles) + .forEach(function (name) { + var attr = Registry.query(name, Registry.Scope.ATTRIBUTE); + if (attr instanceof attributor_1.default) { + _this.attributes[attr.attrName] = attr; + } + }); + }; + AttributorStore.prototype.copy = function (target) { + var _this = this; + Object.keys(this.attributes).forEach(function (key) { + var value = _this.attributes[key].value(_this.domNode); + target.format(key, value); + }); + }; + AttributorStore.prototype.move = function (target) { + var _this = this; + this.copy(target); + Object.keys(this.attributes).forEach(function (key) { + _this.attributes[key].remove(_this.domNode); + }); + this.attributes = {}; + }; + AttributorStore.prototype.values = function () { + var _this = this; + return Object.keys(this.attributes).reduce(function (attributes, name) { + attributes[name] = _this.attributes[name].value(_this.domNode); + return attributes; + }, {}); + }; + return AttributorStore; +}()); +exports.default = AttributorStore; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +function match(node, prefix) { + var className = node.getAttribute('class') || ''; + return className.split(/\s+/).filter(function (name) { + return name.indexOf(prefix + "-") === 0; + }); +} +var ClassAttributor = /** @class */ (function (_super) { + __extends(ClassAttributor, _super); + function ClassAttributor() { + return _super !== null && _super.apply(this, arguments) || this; + } + ClassAttributor.keys = function (node) { + return (node.getAttribute('class') || '').split(/\s+/).map(function (name) { + return name + .split('-') + .slice(0, -1) + .join('-'); + }); + }; + ClassAttributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + this.remove(node); + node.classList.add(this.keyName + "-" + value); + return true; + }; + ClassAttributor.prototype.remove = function (node) { + var matches = match(node, this.keyName); + matches.forEach(function (name) { + node.classList.remove(name); + }); + if (node.classList.length === 0) { + node.removeAttribute('class'); + } + }; + ClassAttributor.prototype.value = function (node) { + var result = match(node, this.keyName)[0] || ''; + var value = result.slice(this.keyName.length + 1); // +1 for hyphen + return this.canAdd(node, value) ? value : ''; + }; + return ClassAttributor; +}(attributor_1.default)); +exports.default = ClassAttributor; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var attributor_1 = __webpack_require__(12); +function camelize(name) { + var parts = name.split('-'); + var rest = parts + .slice(1) + .map(function (part) { + return part[0].toUpperCase() + part.slice(1); + }) + .join(''); + return parts[0] + rest; +} +var StyleAttributor = /** @class */ (function (_super) { + __extends(StyleAttributor, _super); + function StyleAttributor() { + return _super !== null && _super.apply(this, arguments) || this; + } + StyleAttributor.keys = function (node) { + return (node.getAttribute('style') || '').split(';').map(function (value) { + var arr = value.split(':'); + return arr[0].trim(); + }); + }; + StyleAttributor.prototype.add = function (node, value) { + if (!this.canAdd(node, value)) + return false; + // @ts-ignore + node.style[camelize(this.keyName)] = value; + return true; + }; + StyleAttributor.prototype.remove = function (node) { + // @ts-ignore + node.style[camelize(this.keyName)] = ''; + if (!node.getAttribute('style')) { + node.removeAttribute('style'); + } + }; + StyleAttributor.prototype.value = function (node) { + // @ts-ignore + var value = node.style[camelize(this.keyName)]; + return this.canAdd(node, value) ? value : ''; + }; + return StyleAttributor; +}(attributor_1.default)); +exports.default = StyleAttributor; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Theme = function () { + function Theme(quill, options) { + _classCallCheck(this, Theme); + + this.quill = quill; + this.options = options; + this.modules = {}; + } + + _createClass(Theme, [{ + key: 'init', + value: function init() { + var _this = this; + + Object.keys(this.options.modules).forEach(function (name) { + if (_this.modules[name] == null) { + _this.addModule(name); + } + }); + } + }, { + key: 'addModule', + value: function addModule(name) { + var moduleClass = this.quill.constructor.import('modules/' + name); + this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {}); + return this.modules[name]; + } + }]); + + return Theme; +}(); + +Theme.DEFAULTS = { + modules: {} +}; +Theme.themes = { + 'default': Theme +}; + +exports.default = Theme; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _text = __webpack_require__(7); + +var _text2 = _interopRequireDefault(_text); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var GUARD_TEXT = '\uFEFF'; + +var Embed = function (_Parchment$Embed) { + _inherits(Embed, _Parchment$Embed); + + function Embed(node) { + _classCallCheck(this, Embed); + + var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node)); + + _this.contentNode = document.createElement('span'); + _this.contentNode.setAttribute('contenteditable', false); + [].slice.call(_this.domNode.childNodes).forEach(function (childNode) { + _this.contentNode.appendChild(childNode); + }); + _this.leftGuard = document.createTextNode(GUARD_TEXT); + _this.rightGuard = document.createTextNode(GUARD_TEXT); + _this.domNode.appendChild(_this.leftGuard); + _this.domNode.appendChild(_this.contentNode); + _this.domNode.appendChild(_this.rightGuard); + return _this; + } + + _createClass(Embed, [{ + key: 'index', + value: function index(node, offset) { + if (node === this.leftGuard) return 0; + if (node === this.rightGuard) return 1; + return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset); + } + }, { + key: 'restore', + value: function restore(node) { + var range = void 0, + textNode = void 0; + var text = node.data.split(GUARD_TEXT).join(''); + if (node === this.leftGuard) { + if (this.prev instanceof _text2.default) { + var prevLength = this.prev.length(); + this.prev.insertAt(prevLength, text); + range = { + startNode: this.prev.domNode, + startOffset: prevLength + text.length + }; + } else { + textNode = document.createTextNode(text); + this.parent.insertBefore(_parchment2.default.create(textNode), this); + range = { + startNode: textNode, + startOffset: text.length + }; + } + } else if (node === this.rightGuard) { + if (this.next instanceof _text2.default) { + this.next.insertAt(0, text); + range = { + startNode: this.next.domNode, + startOffset: text.length + }; + } else { + textNode = document.createTextNode(text); + this.parent.insertBefore(_parchment2.default.create(textNode), this.next); + range = { + startNode: textNode, + startOffset: text.length + }; + } + } + node.data = GUARD_TEXT; + return range; + } + }, { + key: 'update', + value: function update(mutations, context) { + var _this2 = this; + + mutations.forEach(function (mutation) { + if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) { + var range = _this2.restore(mutation.target); + if (range) context.range = range; + } + }); + } + }]); + + return Embed; +}(_parchment2.default.Embed); + +exports.default = Embed; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var config = { + scope: _parchment2.default.Scope.BLOCK, + whitelist: ['right', 'center', 'justify'] +}; + +var AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config); +var AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config); +var AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config); + +exports.AlignAttribute = AlignAttribute; +exports.AlignClass = AlignClass; +exports.AlignStyle = AlignStyle; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BackgroundStyle = exports.BackgroundClass = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _color = __webpack_require__(26); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', { + scope: _parchment2.default.Scope.INLINE +}); +var BackgroundStyle = new _color.ColorAttributor('background', 'background-color', { + scope: _parchment2.default.Scope.INLINE +}); + +exports.BackgroundClass = BackgroundClass; +exports.BackgroundStyle = BackgroundStyle; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var config = { + scope: _parchment2.default.Scope.BLOCK, + whitelist: ['rtl'] +}; + +var DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config); +var DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config); +var DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config); + +exports.DirectionAttribute = DirectionAttribute; +exports.DirectionClass = DirectionClass; +exports.DirectionStyle = DirectionStyle; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.FontClass = exports.FontStyle = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var config = { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['serif', 'monospace'] +}; + +var FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config); + +var FontStyleAttributor = function (_Parchment$Attributor) { + _inherits(FontStyleAttributor, _Parchment$Attributor); + + function FontStyleAttributor() { + _classCallCheck(this, FontStyleAttributor); + + return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments)); + } + + _createClass(FontStyleAttributor, [{ + key: 'value', + value: function value(node) { + return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/["']/g, ''); + } + }]); + + return FontStyleAttributor; +}(_parchment2.default.Attributor.Style); + +var FontStyle = new FontStyleAttributor('font', 'font-family', config); + +exports.FontStyle = FontStyle; +exports.FontClass = FontClass; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SizeStyle = exports.SizeClass = undefined; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['small', 'large', 'huge'] +}); +var SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', { + scope: _parchment2.default.Scope.INLINE, + whitelist: ['10px', '18px', '32px'] +}); + +exports.SizeClass = SizeClass; +exports.SizeStyle = SizeStyle; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = { + 'align': { + '': __webpack_require__(76), + 'center': __webpack_require__(77), + 'right': __webpack_require__(78), + 'justify': __webpack_require__(79) + }, + 'background': __webpack_require__(80), + 'blockquote': __webpack_require__(81), + 'bold': __webpack_require__(82), + 'clean': __webpack_require__(83), + 'code': __webpack_require__(58), + 'code-block': __webpack_require__(58), + 'color': __webpack_require__(84), + 'direction': { + '': __webpack_require__(85), + 'rtl': __webpack_require__(86) + }, + 'float': { + 'center': __webpack_require__(87), + 'full': __webpack_require__(88), + 'left': __webpack_require__(89), + 'right': __webpack_require__(90) + }, + 'formula': __webpack_require__(91), + 'header': { + '1': __webpack_require__(92), + '2': __webpack_require__(93) + }, + 'italic': __webpack_require__(94), + 'image': __webpack_require__(95), + 'indent': { + '+1': __webpack_require__(96), + '-1': __webpack_require__(97) + }, + 'link': __webpack_require__(98), + 'list': { + 'ordered': __webpack_require__(99), + 'bullet': __webpack_require__(100), + 'check': __webpack_require__(101) + }, + 'script': { + 'sub': __webpack_require__(102), + 'super': __webpack_require__(103) + }, + 'strike': __webpack_require__(104), + 'underline': __webpack_require__(105), + 'video': __webpack_require__(106) +}; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getLastChangeIndex = exports.default = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var History = function (_Module) { + _inherits(History, _Module); + + function History(quill, options) { + _classCallCheck(this, History); + + var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options)); + + _this.lastRecorded = 0; + _this.ignoreChange = false; + _this.clear(); + _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) { + if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return; + if (!_this.options.userOnly || source === _quill2.default.sources.USER) { + _this.record(delta, oldDelta); + } else { + _this.transform(delta); + } + }); + _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this)); + _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this)); + if (/Win/i.test(navigator.platform)) { + _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this)); + } + return _this; + } + + _createClass(History, [{ + key: 'change', + value: function change(source, dest) { + if (this.stack[source].length === 0) return; + var delta = this.stack[source].pop(); + this.stack[dest].push(delta); + this.lastRecorded = 0; + this.ignoreChange = true; + this.quill.updateContents(delta[source], _quill2.default.sources.USER); + this.ignoreChange = false; + var index = getLastChangeIndex(delta[source]); + this.quill.setSelection(index); + } + }, { + key: 'clear', + value: function clear() { + this.stack = { undo: [], redo: [] }; + } + }, { + key: 'cutoff', + value: function cutoff() { + this.lastRecorded = 0; + } + }, { + key: 'record', + value: function record(changeDelta, oldDelta) { + if (changeDelta.ops.length === 0) return; + this.stack.redo = []; + var undoDelta = this.quill.getContents().diff(oldDelta); + var timestamp = Date.now(); + if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) { + var delta = this.stack.undo.pop(); + undoDelta = undoDelta.compose(delta.undo); + changeDelta = delta.redo.compose(changeDelta); + } else { + this.lastRecorded = timestamp; + } + this.stack.undo.push({ + redo: changeDelta, + undo: undoDelta + }); + if (this.stack.undo.length > this.options.maxStack) { + this.stack.undo.shift(); + } + } + }, { + key: 'redo', + value: function redo() { + this.change('redo', 'undo'); + } + }, { + key: 'transform', + value: function transform(delta) { + this.stack.undo.forEach(function (change) { + change.undo = delta.transform(change.undo, true); + change.redo = delta.transform(change.redo, true); + }); + this.stack.redo.forEach(function (change) { + change.undo = delta.transform(change.undo, true); + change.redo = delta.transform(change.redo, true); + }); + } + }, { + key: 'undo', + value: function undo() { + this.change('undo', 'redo'); + } + }]); + + return History; +}(_module2.default); + +History.DEFAULTS = { + delay: 1000, + maxStack: 100, + userOnly: false +}; + +function endsWithNewlineChange(delta) { + var lastOp = delta.ops[delta.ops.length - 1]; + if (lastOp == null) return false; + if (lastOp.insert != null) { + return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\n'); + } + if (lastOp.attributes != null) { + return Object.keys(lastOp.attributes).some(function (attr) { + return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null; + }); + } + return false; +} + +function getLastChangeIndex(delta) { + var deleteLength = delta.reduce(function (length, op) { + length += op.delete || 0; + return length; + }, 0); + var changeIndex = delta.length() - deleteLength; + if (endsWithNewlineChange(delta)) { + changeIndex -= 1; + } + return changeIndex; +} + +exports.default = History; +exports.getLastChangeIndex = getLastChangeIndex; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.BaseTooltip = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _emitter = __webpack_require__(8); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _keyboard = __webpack_require__(23); + +var _keyboard2 = _interopRequireDefault(_keyboard); + +var _theme = __webpack_require__(34); + +var _theme2 = _interopRequireDefault(_theme); + +var _colorPicker = __webpack_require__(59); + +var _colorPicker2 = _interopRequireDefault(_colorPicker); + +var _iconPicker = __webpack_require__(60); + +var _iconPicker2 = _interopRequireDefault(_iconPicker); + +var _picker = __webpack_require__(28); + +var _picker2 = _interopRequireDefault(_picker); + +var _tooltip = __webpack_require__(61); + +var _tooltip2 = _interopRequireDefault(_tooltip); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ALIGNS = [false, 'center', 'right', 'justify']; + +var COLORS = ["#000000", "#e60000", "#ff9900", "#ffff00", "#008a00", "#0066cc", "#9933ff", "#ffffff", "#facccc", "#ffebcc", "#ffffcc", "#cce8cc", "#cce0f5", "#ebd6ff", "#bbbbbb", "#f06666", "#ffc266", "#ffff66", "#66b966", "#66a3e0", "#c285ff", "#888888", "#a10000", "#b26b00", "#b2b200", "#006100", "#0047b2", "#6b24b2", "#444444", "#5c0000", "#663d00", "#666600", "#003700", "#002966", "#3d1466"]; + +var FONTS = [false, 'serif', 'monospace']; + +var HEADERS = ['1', '2', '3', false]; + +var SIZES = ['small', false, 'large', 'huge']; + +var BaseTheme = function (_Theme) { + _inherits(BaseTheme, _Theme); + + function BaseTheme(quill, options) { + _classCallCheck(this, BaseTheme); + + var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options)); + + var listener = function listener(e) { + if (!document.body.contains(quill.root)) { + return document.body.removeEventListener('click', listener); + } + if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) { + _this.tooltip.hide(); + } + if (_this.pickers != null) { + _this.pickers.forEach(function (picker) { + if (!picker.container.contains(e.target)) { + picker.close(); + } + }); + } + }; + quill.emitter.listenDOM('click', document.body, listener); + return _this; + } + + _createClass(BaseTheme, [{ + key: 'addModule', + value: function addModule(name) { + var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name); + if (name === 'toolbar') { + this.extendToolbar(module); + } + return module; + } + }, { + key: 'buildButtons', + value: function buildButtons(buttons, icons) { + buttons.forEach(function (button) { + var className = button.getAttribute('class') || ''; + className.split(/\s+/).forEach(function (name) { + if (!name.startsWith('ql-')) return; + name = name.slice('ql-'.length); + if (icons[name] == null) return; + if (name === 'direction') { + button.innerHTML = icons[name][''] + icons[name]['rtl']; + } else if (typeof icons[name] === 'string') { + button.innerHTML = icons[name]; + } else { + var value = button.value || ''; + if (value != null && icons[name][value]) { + button.innerHTML = icons[name][value]; + } + } + }); + }); + } + }, { + key: 'buildPickers', + value: function buildPickers(selects, icons) { + var _this2 = this; + + this.pickers = selects.map(function (select) { + if (select.classList.contains('ql-align')) { + if (select.querySelector('option') == null) { + fillSelect(select, ALIGNS); + } + return new _iconPicker2.default(select, icons.align); + } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) { + var format = select.classList.contains('ql-background') ? 'background' : 'color'; + if (select.querySelector('option') == null) { + fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000'); + } + return new _colorPicker2.default(select, icons[format]); + } else { + if (select.querySelector('option') == null) { + if (select.classList.contains('ql-font')) { + fillSelect(select, FONTS); + } else if (select.classList.contains('ql-header')) { + fillSelect(select, HEADERS); + } else if (select.classList.contains('ql-size')) { + fillSelect(select, SIZES); + } + } + return new _picker2.default(select); + } + }); + var update = function update() { + _this2.pickers.forEach(function (picker) { + picker.update(); + }); + }; + this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update); + } + }]); + + return BaseTheme; +}(_theme2.default); + +BaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, { + modules: { + toolbar: { + handlers: { + formula: function formula() { + this.quill.theme.tooltip.edit('formula'); + }, + image: function image() { + var _this3 = this; + + var fileInput = this.container.querySelector('input.ql-image[type=file]'); + if (fileInput == null) { + fileInput = document.createElement('input'); + fileInput.setAttribute('type', 'file'); + fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'); + fileInput.classList.add('ql-image'); + fileInput.addEventListener('change', function () { + if (fileInput.files != null && fileInput.files[0] != null) { + var reader = new FileReader(); + reader.onload = function (e) { + var range = _this3.quill.getSelection(true); + _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER); + _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT); + fileInput.value = ""; + }; + reader.readAsDataURL(fileInput.files[0]); + } + }); + this.container.appendChild(fileInput); + } + fileInput.click(); + }, + video: function video() { + this.quill.theme.tooltip.edit('video'); + } + } + } + } +}); + +var BaseTooltip = function (_Tooltip) { + _inherits(BaseTooltip, _Tooltip); + + function BaseTooltip(quill, boundsContainer) { + _classCallCheck(this, BaseTooltip); + + var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer)); + + _this4.textbox = _this4.root.querySelector('input[type="text"]'); + _this4.listen(); + return _this4; + } + + _createClass(BaseTooltip, [{ + key: 'listen', + value: function listen() { + var _this5 = this; + + this.textbox.addEventListener('keydown', function (event) { + if (_keyboard2.default.match(event, 'enter')) { + _this5.save(); + event.preventDefault(); + } else if (_keyboard2.default.match(event, 'escape')) { + _this5.cancel(); + event.preventDefault(); + } + }); + } + }, { + key: 'cancel', + value: function cancel() { + this.hide(); + } + }, { + key: 'edit', + value: function edit() { + var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link'; + var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + this.root.classList.remove('ql-hidden'); + this.root.classList.add('ql-editing'); + if (preview != null) { + this.textbox.value = preview; + } else if (mode !== this.root.getAttribute('data-mode')) { + this.textbox.value = ''; + } + this.position(this.quill.getBounds(this.quill.selection.savedRange)); + this.textbox.select(); + this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || ''); + this.root.setAttribute('data-mode', mode); + } + }, { + key: 'restoreFocus', + value: function restoreFocus() { + var scrollTop = this.quill.scrollingContainer.scrollTop; + this.quill.focus(); + this.quill.scrollingContainer.scrollTop = scrollTop; + } + }, { + key: 'save', + value: function save() { + var value = this.textbox.value; + switch (this.root.getAttribute('data-mode')) { + case 'link': + { + var scrollTop = this.quill.root.scrollTop; + if (this.linkRange) { + this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER); + delete this.linkRange; + } else { + this.restoreFocus(); + this.quill.format('link', value, _emitter2.default.sources.USER); + } + this.quill.root.scrollTop = scrollTop; + break; + } + case 'video': + { + value = extractVideoUrl(value); + } // eslint-disable-next-line no-fallthrough + case 'formula': + { + if (!value) break; + var range = this.quill.getSelection(true); + if (range != null) { + var index = range.index + range.length; + this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER); + if (this.root.getAttribute('data-mode') === 'formula') { + this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER); + } + this.quill.setSelection(index + 2, _emitter2.default.sources.USER); + } + break; + } + default: + } + this.textbox.value = ''; + this.hide(); + } + }]); + + return BaseTooltip; +}(_tooltip2.default); + +function extractVideoUrl(url) { + var match = url.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/); + if (match) { + return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0'; + } + if (match = url.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/)) { + // eslint-disable-line no-cond-assign + return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/'; + } + return url; +} + +function fillSelect(select, values) { + var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + values.forEach(function (value) { + var option = document.createElement('option'); + if (value === defaultValue) { + option.setAttribute('selected', 'selected'); + } else { + option.setAttribute('value', value); + } + select.appendChild(option); + }); +} + +exports.BaseTooltip = BaseTooltip; +exports.default = BaseTheme; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var LinkedList = /** @class */ (function () { + function LinkedList() { + this.head = this.tail = null; + this.length = 0; + } + LinkedList.prototype.append = function () { + var nodes = []; + for (var _i = 0; _i < arguments.length; _i++) { + nodes[_i] = arguments[_i]; + } + this.insertBefore(nodes[0], null); + if (nodes.length > 1) { + this.append.apply(this, nodes.slice(1)); + } + }; + LinkedList.prototype.contains = function (node) { + var cur, next = this.iterator(); + while ((cur = next())) { + if (cur === node) + return true; + } + return false; + }; + LinkedList.prototype.insertBefore = function (node, refNode) { + if (!node) + return; + node.next = refNode; + if (refNode != null) { + node.prev = refNode.prev; + if (refNode.prev != null) { + refNode.prev.next = node; + } + refNode.prev = node; + if (refNode === this.head) { + this.head = node; + } + } + else if (this.tail != null) { + this.tail.next = node; + node.prev = this.tail; + this.tail = node; + } + else { + node.prev = null; + this.head = this.tail = node; + } + this.length += 1; + }; + LinkedList.prototype.offset = function (target) { + var index = 0, cur = this.head; + while (cur != null) { + if (cur === target) + return index; + index += cur.length(); + cur = cur.next; + } + return -1; + }; + LinkedList.prototype.remove = function (node) { + if (!this.contains(node)) + return; + if (node.prev != null) + node.prev.next = node.next; + if (node.next != null) + node.next.prev = node.prev; + if (node === this.head) + this.head = node.next; + if (node === this.tail) + this.tail = node.prev; + this.length -= 1; + }; + LinkedList.prototype.iterator = function (curNode) { + if (curNode === void 0) { curNode = this.head; } + // TODO use yield when we can + return function () { + var ret = curNode; + if (curNode != null) + curNode = curNode.next; + return ret; + }; + }; + LinkedList.prototype.find = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + var cur, next = this.iterator(); + while ((cur = next())) { + var length = cur.length(); + if (index < length || + (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) { + return [cur, index]; + } + index -= length; + } + return [null, 0]; + }; + LinkedList.prototype.forEach = function (callback) { + var cur, next = this.iterator(); + while ((cur = next())) { + callback(cur); + } + }; + LinkedList.prototype.forEachAt = function (index, length, callback) { + if (length <= 0) + return; + var _a = this.find(index), startNode = _a[0], offset = _a[1]; + var cur, curIndex = index - offset, next = this.iterator(startNode); + while ((cur = next()) && curIndex < index + length) { + var curLength = cur.length(); + if (index > curIndex) { + callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index)); + } + else { + callback(cur, 0, Math.min(curLength, index + length - curIndex)); + } + curIndex += curLength; + } + }; + LinkedList.prototype.map = function (callback) { + return this.reduce(function (memo, cur) { + memo.push(callback(cur)); + return memo; + }, []); + }; + LinkedList.prototype.reduce = function (callback, memo) { + var cur, next = this.iterator(); + while ((cur = next())) { + memo = callback(memo, cur); + } + return memo; + }; + return LinkedList; +}()); +exports.default = LinkedList; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var container_1 = __webpack_require__(17); +var Registry = __webpack_require__(1); +var OBSERVER_CONFIG = { + attributes: true, + characterData: true, + characterDataOldValue: true, + childList: true, + subtree: true, +}; +var MAX_OPTIMIZE_ITERATIONS = 100; +var ScrollBlot = /** @class */ (function (_super) { + __extends(ScrollBlot, _super); + function ScrollBlot(node) { + var _this = _super.call(this, node) || this; + _this.scroll = _this; + _this.observer = new MutationObserver(function (mutations) { + _this.update(mutations); + }); + _this.observer.observe(_this.domNode, OBSERVER_CONFIG); + _this.attach(); + return _this; + } + ScrollBlot.prototype.detach = function () { + _super.prototype.detach.call(this); + this.observer.disconnect(); + }; + ScrollBlot.prototype.deleteAt = function (index, length) { + this.update(); + if (index === 0 && length === this.length()) { + this.children.forEach(function (child) { + child.remove(); + }); + } + else { + _super.prototype.deleteAt.call(this, index, length); + } + }; + ScrollBlot.prototype.formatAt = function (index, length, name, value) { + this.update(); + _super.prototype.formatAt.call(this, index, length, name, value); + }; + ScrollBlot.prototype.insertAt = function (index, value, def) { + this.update(); + _super.prototype.insertAt.call(this, index, value, def); + }; + ScrollBlot.prototype.optimize = function (mutations, context) { + var _this = this; + if (mutations === void 0) { mutations = []; } + if (context === void 0) { context = {}; } + _super.prototype.optimize.call(this, context); + // We must modify mutations directly, cannot make copy and then modify + var records = [].slice.call(this.observer.takeRecords()); + // Array.push currently seems to be implemented by a non-tail recursive function + // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords()); + while (records.length > 0) + mutations.push(records.pop()); + // TODO use WeakMap + var mark = function (blot, markParent) { + if (markParent === void 0) { markParent = true; } + if (blot == null || blot === _this) + return; + if (blot.domNode.parentNode == null) + return; + // @ts-ignore + if (blot.domNode[Registry.DATA_KEY].mutations == null) { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations = []; + } + if (markParent) + mark(blot.parent); + }; + var optimize = function (blot) { + // Post-order traversal + if ( + // @ts-ignore + blot.domNode[Registry.DATA_KEY] == null || + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations == null) { + return; + } + if (blot instanceof container_1.default) { + blot.children.forEach(optimize); + } + blot.optimize(context); + }; + var remaining = mutations; + for (var i = 0; remaining.length > 0; i += 1) { + if (i >= MAX_OPTIMIZE_ITERATIONS) { + throw new Error('[Parchment] Maximum optimize iterations reached'); + } + remaining.forEach(function (mutation) { + var blot = Registry.find(mutation.target, true); + if (blot == null) + return; + if (blot.domNode === mutation.target) { + if (mutation.type === 'childList') { + mark(Registry.find(mutation.previousSibling, false)); + [].forEach.call(mutation.addedNodes, function (node) { + var child = Registry.find(node, false); + mark(child, false); + if (child instanceof container_1.default) { + child.children.forEach(function (grandChild) { + mark(grandChild, false); + }); + } + }); + } + else if (mutation.type === 'attributes') { + mark(blot.prev); + } + } + mark(blot); + }); + this.children.forEach(optimize); + remaining = [].slice.call(this.observer.takeRecords()); + records = remaining.slice(); + while (records.length > 0) + mutations.push(records.pop()); + } + }; + ScrollBlot.prototype.update = function (mutations, context) { + var _this = this; + if (context === void 0) { context = {}; } + mutations = mutations || this.observer.takeRecords(); + // TODO use WeakMap + mutations + .map(function (mutation) { + var blot = Registry.find(mutation.target, true); + if (blot == null) + return null; + // @ts-ignore + if (blot.domNode[Registry.DATA_KEY].mutations == null) { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations = [mutation]; + return blot; + } + else { + // @ts-ignore + blot.domNode[Registry.DATA_KEY].mutations.push(mutation); + return null; + } + }) + .forEach(function (blot) { + if (blot == null || + blot === _this || + //@ts-ignore + blot.domNode[Registry.DATA_KEY] == null) + return; + // @ts-ignore + blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context); + }); + // @ts-ignore + if (this.domNode[Registry.DATA_KEY].mutations != null) { + // @ts-ignore + _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context); + } + this.optimize(mutations, context); + }; + ScrollBlot.blotName = 'scroll'; + ScrollBlot.defaultChild = 'block'; + ScrollBlot.scope = Registry.Scope.BLOCK_BLOT; + ScrollBlot.tagName = 'DIV'; + return ScrollBlot; +}(container_1.default)); +exports.default = ScrollBlot; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var format_1 = __webpack_require__(18); +var Registry = __webpack_require__(1); +// Shallow object comparison +function isEqual(obj1, obj2) { + if (Object.keys(obj1).length !== Object.keys(obj2).length) + return false; + // @ts-ignore + for (var prop in obj1) { + // @ts-ignore + if (obj1[prop] !== obj2[prop]) + return false; + } + return true; +} +var InlineBlot = /** @class */ (function (_super) { + __extends(InlineBlot, _super); + function InlineBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + InlineBlot.formats = function (domNode) { + if (domNode.tagName === InlineBlot.tagName) + return undefined; + return _super.formats.call(this, domNode); + }; + InlineBlot.prototype.format = function (name, value) { + var _this = this; + if (name === this.statics.blotName && !value) { + this.children.forEach(function (child) { + if (!(child instanceof format_1.default)) { + child = child.wrap(InlineBlot.blotName, true); + } + _this.attributes.copy(child); + }); + this.unwrap(); + } + else { + _super.prototype.format.call(this, name, value); + } + }; + InlineBlot.prototype.formatAt = function (index, length, name, value) { + if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) { + var blot = this.isolate(index, length); + blot.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + InlineBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + var formats = this.formats(); + if (Object.keys(formats).length === 0) { + return this.unwrap(); // unformatted span + } + var next = this.next; + if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) { + next.moveChildren(this); + next.remove(); + } + }; + InlineBlot.blotName = 'inline'; + InlineBlot.scope = Registry.Scope.INLINE_BLOT; + InlineBlot.tagName = 'SPAN'; + return InlineBlot; +}(format_1.default)); +exports.default = InlineBlot; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var format_1 = __webpack_require__(18); +var Registry = __webpack_require__(1); +var BlockBlot = /** @class */ (function (_super) { + __extends(BlockBlot, _super); + function BlockBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + BlockBlot.formats = function (domNode) { + var tagName = Registry.query(BlockBlot.blotName).tagName; + if (domNode.tagName === tagName) + return undefined; + return _super.formats.call(this, domNode); + }; + BlockBlot.prototype.format = function (name, value) { + if (Registry.query(name, Registry.Scope.BLOCK) == null) { + return; + } + else if (name === this.statics.blotName && !value) { + this.replaceWith(BlockBlot.blotName); + } + else { + _super.prototype.format.call(this, name, value); + } + }; + BlockBlot.prototype.formatAt = function (index, length, name, value) { + if (Registry.query(name, Registry.Scope.BLOCK) != null) { + this.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + BlockBlot.prototype.insertAt = function (index, value, def) { + if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) { + // Insert text or inline + _super.prototype.insertAt.call(this, index, value, def); + } + else { + var after = this.split(index); + var blot = Registry.create(value, def); + after.parent.insertBefore(blot, after); + } + }; + BlockBlot.prototype.update = function (mutations, context) { + if (navigator.userAgent.match(/Trident/)) { + this.build(); + } + else { + _super.prototype.update.call(this, mutations, context); + } + }; + BlockBlot.blotName = 'block'; + BlockBlot.scope = Registry.Scope.BLOCK_BLOT; + BlockBlot.tagName = 'P'; + return BlockBlot; +}(format_1.default)); +exports.default = BlockBlot; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var leaf_1 = __webpack_require__(19); +var EmbedBlot = /** @class */ (function (_super) { + __extends(EmbedBlot, _super); + function EmbedBlot() { + return _super !== null && _super.apply(this, arguments) || this; + } + EmbedBlot.formats = function (domNode) { + return undefined; + }; + EmbedBlot.prototype.format = function (name, value) { + // super.formatAt wraps, which is what we want in general, + // but this allows subclasses to overwrite for formats + // that just apply to particular embeds + _super.prototype.formatAt.call(this, 0, this.length(), name, value); + }; + EmbedBlot.prototype.formatAt = function (index, length, name, value) { + if (index === 0 && length === this.length()) { + this.format(name, value); + } + else { + _super.prototype.formatAt.call(this, index, length, name, value); + } + }; + EmbedBlot.prototype.formats = function () { + return this.statics.formats(this.domNode); + }; + return EmbedBlot; +}(leaf_1.default)); +exports.default = EmbedBlot; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var leaf_1 = __webpack_require__(19); +var Registry = __webpack_require__(1); +var TextBlot = /** @class */ (function (_super) { + __extends(TextBlot, _super); + function TextBlot(node) { + var _this = _super.call(this, node) || this; + _this.text = _this.statics.value(_this.domNode); + return _this; + } + TextBlot.create = function (value) { + return document.createTextNode(value); + }; + TextBlot.value = function (domNode) { + var text = domNode.data; + // @ts-ignore + if (text['normalize']) + text = text['normalize'](); + return text; + }; + TextBlot.prototype.deleteAt = function (index, length) { + this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length); + }; + TextBlot.prototype.index = function (node, offset) { + if (this.domNode === node) { + return offset; + } + return -1; + }; + TextBlot.prototype.insertAt = function (index, value, def) { + if (def == null) { + this.text = this.text.slice(0, index) + value + this.text.slice(index); + this.domNode.data = this.text; + } + else { + _super.prototype.insertAt.call(this, index, value, def); + } + }; + TextBlot.prototype.length = function () { + return this.text.length; + }; + TextBlot.prototype.optimize = function (context) { + _super.prototype.optimize.call(this, context); + this.text = this.statics.value(this.domNode); + if (this.text.length === 0) { + this.remove(); + } + else if (this.next instanceof TextBlot && this.next.prev === this) { + this.insertAt(this.length(), this.next.value()); + this.next.remove(); + } + }; + TextBlot.prototype.position = function (index, inclusive) { + if (inclusive === void 0) { inclusive = false; } + return [this.domNode, index]; + }; + TextBlot.prototype.split = function (index, force) { + if (force === void 0) { force = false; } + if (!force) { + if (index === 0) + return this; + if (index === this.length()) + return this.next; + } + var after = Registry.create(this.domNode.splitText(index)); + this.parent.insertBefore(after, this.next); + this.text = this.statics.value(this.domNode); + return after; + }; + TextBlot.prototype.update = function (mutations, context) { + var _this = this; + if (mutations.some(function (mutation) { + return mutation.type === 'characterData' && mutation.target === _this.domNode; + })) { + this.text = this.statics.value(this.domNode); + } + }; + TextBlot.prototype.value = function () { + return this.text; + }; + TextBlot.blotName = 'text'; + TextBlot.scope = Registry.Scope.INLINE_BLOT; + return TextBlot; +}(leaf_1.default)); +exports.default = TextBlot; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var elem = document.createElement('div'); +elem.classList.toggle('test-class', false); +if (elem.classList.contains('test-class')) { + var _toggle = DOMTokenList.prototype.toggle; + DOMTokenList.prototype.toggle = function (token, force) { + if (arguments.length > 1 && !this.contains(token) === !force) { + return force; + } else { + return _toggle.call(this, token); + } + }; +} + +if (!String.prototype.startsWith) { + String.prototype.startsWith = function (BuscarString, position) { + position = position || 0; + return this.substr(position, BuscarString.length) === BuscarString; + }; +} + +if (!String.prototype.endsWith) { + String.prototype.endsWith = function (BuscarString, position) { + var subjectString = this.toString(); + if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { + position = subjectString.length; + } + position -= BuscarString.length; + var lastIndex = subjectString.indexOf(BuscarString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} + +if (!Array.prototype.find) { + Object.defineProperty(Array.prototype, "find", { + value: function value(predicate) { + if (this === null) { + throw new TypeError('Array.prototype.find called on null or undefined'); + } + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + var list = Object(this); + var length = list.length >>> 0; + var thisArg = arguments[1]; + var value; + + for (var i = 0; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { + return value; + } + } + return undefined; + } + }); +} + +document.addEventListener("DOMContentLoaded", function () { + // Disable resizing in Firefox + document.execCommand("enableObjectResizing", false, false); + // Disable automatic linkifying in IE11 + document.execCommand("autoUrlDetect", false, false); +}); + +/***/ }), +/* 51 */ +/***/ (function(module, exports) { + +/** + * This library modifies the diff-patch-match library by Neil Fraser + * by removing the patch and match functionality and certain advanced + * options in the diff function. The original license is as follows: + * + * === + * + * Diff Match and Patch + * + * Copyright 2006 Google Inc. + * http://code.google.com/p/google-diff-match-patch/ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/** + * The data structure representing a diff is an array of tuples: + * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] + * which means: delete 'Hello', add 'Goodbye' and keep ' world.' + */ +var DIFF_DELETE = -1; +var DIFF_INSERT = 1; +var DIFF_EQUAL = 0; + + +/** + * Find the differences between two texts. Simplifies the problem by stripping + * any common prefix or suffix off the texts before diffing. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {Int} cursor_pos Expected edit position in text1 (optional) + * @return {Array} Array of diff tuples. + */ +function diff_main(text1, text2, cursor_pos) { + // Check for equality (speedup). + if (text1 == text2) { + if (text1) { + return [[DIFF_EQUAL, text1]]; + } + return []; + } + + // Check cursor_pos within bounds + if (cursor_pos < 0 || text1.length < cursor_pos) { + cursor_pos = null; + } + + // Trim off common prefix (speedup). + var commonlength = diff_commonPrefix(text1, text2); + var commonprefix = text1.substring(0, commonlength); + text1 = text1.substring(commonlength); + text2 = text2.substring(commonlength); + + // Trim off common suffix (speedup). + commonlength = diff_commonSuffix(text1, text2); + var commonsuffix = text1.substring(text1.length - commonlength); + text1 = text1.substring(0, text1.length - commonlength); + text2 = text2.substring(0, text2.length - commonlength); + + // Compute the diff on the middle block. + var diffs = diff_compute_(text1, text2); + + // Restore the prefix and suffix. + if (commonprefix) { + diffs.unshift([DIFF_EQUAL, commonprefix]); + } + if (commonsuffix) { + diffs.push([DIFF_EQUAL, commonsuffix]); + } + diff_cleanupMerge(diffs); + if (cursor_pos != null) { + diffs = fix_cursor(diffs, cursor_pos); + } + diffs = fix_emoji(diffs); + return diffs; +}; + + +/** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + */ +function diff_compute_(text1, text2) { + var diffs; + + if (!text1) { + // Just add some text (speedup). + return [[DIFF_INSERT, text2]]; + } + + if (!text2) { + // Just delete some text (speedup). + return [[DIFF_DELETE, text1]]; + } + + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + var i = longtext.indexOf(shorttext); + if (i != -1) { + // Shorter text is inside the longer text (speedup). + diffs = [[DIFF_INSERT, longtext.substring(0, i)], + [DIFF_EQUAL, shorttext], + [DIFF_INSERT, longtext.substring(i + shorttext.length)]]; + // Swap insertions for deletions if diff is reversed. + if (text1.length > text2.length) { + diffs[0][0] = diffs[2][0] = DIFF_DELETE; + } + return diffs; + } + + if (shorttext.length == 1) { + // Single character string. + // After the previous speedup, the character can't be an equality. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; + } + + // Check to see if the problem can be split in two. + var hm = diff_halfMatch_(text1, text2); + if (hm) { + // A half-match was found, sort out the return data. + var text1_a = hm[0]; + var text1_b = hm[1]; + var text2_a = hm[2]; + var text2_b = hm[3]; + var mid_common = hm[4]; + // Send both pairs off for separate processing. + var diffs_a = diff_main(text1_a, text2_a); + var diffs_b = diff_main(text1_b, text2_b); + // Merge the results. + return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); + } + + return diff_bisect_(text1, text2); +}; + + +/** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @return {Array} Array of diff tuples. + * @private + */ +function diff_bisect_(text1, text2) { + // Cache the text lengths to prevent multiple calls. + var text1_length = text1.length; + var text2_length = text2.length; + var max_d = Math.ceil((text1_length + text2_length) / 2); + var v_offset = max_d; + var v_length = 2 * max_d; + var v1 = new Array(v_length); + var v2 = new Array(v_length); + // Setting all elements to -1 is faster in Chrome & Firefox than mixing + // integers and undefined. + for (var x = 0; x < v_length; x++) { + v1[x] = -1; + v2[x] = -1; + } + v1[v_offset + 1] = 0; + v2[v_offset + 1] = 0; + var delta = text1_length - text2_length; + // If the total number of characters is odd, then the front path will collide + // with the reverse path. + var front = (delta % 2 != 0); + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + var k1start = 0; + var k1end = 0; + var k2start = 0; + var k2end = 0; + for (var d = 0; d < max_d; d++) { + // Walk the front path one step. + for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { + var k1_offset = v_offset + k1; + var x1; + if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) { + x1 = v1[k1_offset + 1]; + } else { + x1 = v1[k1_offset - 1] + 1; + } + var y1 = x1 - k1; + while (x1 < text1_length && y1 < text2_length && + text1.charAt(x1) == text2.charAt(y1)) { + x1++; + y1++; + } + v1[k1_offset] = x1; + if (x1 > text1_length) { + // Ran off the right of the graph. + k1end += 2; + } else if (y1 > text2_length) { + // Ran off the bottom of the graph. + k1start += 2; + } else if (front) { + var k2_offset = v_offset + delta - k1; + if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) { + // Mirror x2 onto top-left coordinate system. + var x2 = text1_length - v2[k2_offset]; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + + // Walk the reverse path one step. + for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { + var k2_offset = v_offset + k2; + var x2; + if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) { + x2 = v2[k2_offset + 1]; + } else { + x2 = v2[k2_offset - 1] + 1; + } + var y2 = x2 - k2; + while (x2 < text1_length && y2 < text2_length && + text1.charAt(text1_length - x2 - 1) == + text2.charAt(text2_length - y2 - 1)) { + x2++; + y2++; + } + v2[k2_offset] = x2; + if (x2 > text1_length) { + // Ran off the left of the graph. + k2end += 2; + } else if (y2 > text2_length) { + // Ran off the top of the graph. + k2start += 2; + } else if (!front) { + var k1_offset = v_offset + delta - k2; + if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) { + var x1 = v1[k1_offset]; + var y1 = v_offset + x1 - k1_offset; + // Mirror x2 onto top-left coordinate system. + x2 = text1_length - x2; + if (x1 >= x2) { + // Overlap detected. + return diff_bisectSplit_(text1, text2, x1, y1); + } + } + } + } + } + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]]; +}; + + +/** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} x Index of split point in text1. + * @param {number} y Index of split point in text2. + * @return {Array} Array of diff tuples. + */ +function diff_bisectSplit_(text1, text2, x, y) { + var text1a = text1.substring(0, x); + var text2a = text2.substring(0, y); + var text1b = text1.substring(x); + var text2b = text2.substring(y); + + // Compute both diffs serially. + var diffs = diff_main(text1a, text2a); + var diffsb = diff_main(text1b, text2b); + + return diffs.concat(diffsb); +}; + + +/** + * Determine the common prefix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the start of each + * string. + */ +function diff_commonPrefix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) { + return 0; + } + // Binary Buscar. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerstart = 0; + while (pointermin < pointermid) { + if (text1.substring(pointerstart, pointermid) == + text2.substring(pointerstart, pointermid)) { + pointermin = pointermid; + pointerstart = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + return pointermid; +}; + + +/** + * Determine the common suffix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the end of each string. + */ +function diff_commonSuffix(text1, text2) { + // Quick check for common null cases. + if (!text1 || !text2 || + text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) { + return 0; + } + // Binary Buscar. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + var pointermin = 0; + var pointermax = Math.min(text1.length, text2.length); + var pointermid = pointermax; + var pointerend = 0; + while (pointermin < pointermid) { + if (text1.substring(text1.length - pointermid, text1.length - pointerend) == + text2.substring(text2.length - pointermid, text2.length - pointerend)) { + pointermin = pointermid; + pointerend = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); + } + return pointermid; +}; + + +/** + * Do the two texts share a substring which is at least half the length of the + * longer text? + * This speedup can produce non-minimal diffs. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {Array.} Five element Array, containing the prefix of + * text1, the suffix of text1, the prefix of text2, the suffix of + * text2 and the common middle. Or null if there was no match. + */ +function diff_halfMatch_(text1, text2) { + var longtext = text1.length > text2.length ? text1 : text2; + var shorttext = text1.length > text2.length ? text2 : text1; + if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { + return null; // Pointless. + } + + /** + * Does a substring of shorttext exist within longtext such that the substring + * is at least half the length of longtext? + * Closure, but does not reference any external variables. + * @param {string} longtext Longer string. + * @param {string} shorttext Shorter string. + * @param {number} i Start index of quarter length substring within longtext. + * @return {Array.} Five element Array, containing the prefix of + * longtext, the suffix of longtext, the prefix of shorttext, the suffix + * of shorttext and the common middle. Or null if there was no match. + * @private + */ + function diff_halfMatchI_(longtext, shorttext, i) { + // Start with a 1/4 length substring at position i as a seed. + var seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); + var j = -1; + var best_common = ''; + var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; + while ((j = shorttext.indexOf(seed, j + 1)) != -1) { + var prefixLength = diff_commonPrefix(longtext.substring(i), + shorttext.substring(j)); + var suffixLength = diff_commonSuffix(longtext.substring(0, i), + shorttext.substring(0, j)); + if (best_common.length < suffixLength + prefixLength) { + best_common = shorttext.substring(j - suffixLength, j) + + shorttext.substring(j, j + prefixLength); + best_longtext_a = longtext.substring(0, i - suffixLength); + best_longtext_b = longtext.substring(i + prefixLength); + best_shorttext_a = shorttext.substring(0, j - suffixLength); + best_shorttext_b = shorttext.substring(j + prefixLength); + } + } + if (best_common.length * 2 >= longtext.length) { + return [best_longtext_a, best_longtext_b, + best_shorttext_a, best_shorttext_b, best_common]; + } else { + return null; + } + } + + // First check if the second quarter is the seed for a half-match. + var hm1 = diff_halfMatchI_(longtext, shorttext, + Math.ceil(longtext.length / 4)); + // Check again based on the third quarter. + var hm2 = diff_halfMatchI_(longtext, shorttext, + Math.ceil(longtext.length / 2)); + var hm; + if (!hm1 && !hm2) { + return null; + } else if (!hm2) { + hm = hm1; + } else if (!hm1) { + hm = hm2; + } else { + // Both matched. Select the longest. + hm = hm1[4].length > hm2[4].length ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + var text1_a, text1_b, text2_a, text2_b; + if (text1.length > text2.length) { + text1_a = hm[0]; + text1_b = hm[1]; + text2_a = hm[2]; + text2_b = hm[3]; + } else { + text2_a = hm[0]; + text2_b = hm[1]; + text1_a = hm[2]; + text1_b = hm[3]; + } + var mid_common = hm[4]; + return [text1_a, text1_b, text2_a, text2_b, mid_common]; +}; + + +/** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param {Array} diffs Array of diff tuples. + */ +function diff_cleanupMerge(diffs) { + diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end. + var pointer = 0; + var count_delete = 0; + var count_insert = 0; + var text_delete = ''; + var text_insert = ''; + var commonlength; + while (pointer < diffs.length) { + switch (diffs[pointer][0]) { + case DIFF_INSERT: + count_insert++; + text_insert += diffs[pointer][1]; + pointer++; + break; + case DIFF_DELETE: + count_delete++; + text_delete += diffs[pointer][1]; + pointer++; + break; + case DIFF_EQUAL: + // Upon reaching an equality, check for prior redundancies. + if (count_delete + count_insert > 1) { + if (count_delete !== 0 && count_insert !== 0) { + // Factor out any common prefixies. + commonlength = diff_commonPrefix(text_insert, text_delete); + if (commonlength !== 0) { + if ((pointer - count_delete - count_insert) > 0 && + diffs[pointer - count_delete - count_insert - 1][0] == + DIFF_EQUAL) { + diffs[pointer - count_delete - count_insert - 1][1] += + text_insert.substring(0, commonlength); + } else { + diffs.splice(0, 0, [DIFF_EQUAL, + text_insert.substring(0, commonlength)]); + pointer++; + } + text_insert = text_insert.substring(commonlength); + text_delete = text_delete.substring(commonlength); + } + // Factor out any common suffixies. + commonlength = diff_commonSuffix(text_insert, text_delete); + if (commonlength !== 0) { + diffs[pointer][1] = text_insert.substring(text_insert.length - + commonlength) + diffs[pointer][1]; + text_insert = text_insert.substring(0, text_insert.length - + commonlength); + text_delete = text_delete.substring(0, text_delete.length - + commonlength); + } + } + // Delete the offending records and add the merged ones. + if (count_delete === 0) { + diffs.splice(pointer - count_insert, + count_delete + count_insert, [DIFF_INSERT, text_insert]); + } else if (count_insert === 0) { + diffs.splice(pointer - count_delete, + count_delete + count_insert, [DIFF_DELETE, text_delete]); + } else { + diffs.splice(pointer - count_delete - count_insert, + count_delete + count_insert, [DIFF_DELETE, text_delete], + [DIFF_INSERT, text_insert]); + } + pointer = pointer - count_delete - count_insert + + (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1; + } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) { + // Merge this equality with the previous one. + diffs[pointer - 1][1] += diffs[pointer][1]; + diffs.splice(pointer, 1); + } else { + pointer++; + } + count_insert = 0; + count_delete = 0; + text_delete = ''; + text_insert = ''; + break; + } + } + if (diffs[diffs.length - 1][1] === '') { + diffs.pop(); // Remove the dummy entry at the end. + } + + // Second pass: look for single edits surrounded on both sides by equalities + // which can be shifted sideways to eliminate an equality. + // e.g: ABAC -> ABAC + var changes = false; + pointer = 1; + // Intentionally ignore the first and last element (don't need checking). + while (pointer < diffs.length - 1) { + if (diffs[pointer - 1][0] == DIFF_EQUAL && + diffs[pointer + 1][0] == DIFF_EQUAL) { + // This is a single edit surrounded by equalities. + if (diffs[pointer][1].substring(diffs[pointer][1].length - + diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) { + // Shift the edit over the previous equality. + diffs[pointer][1] = diffs[pointer - 1][1] + + diffs[pointer][1].substring(0, diffs[pointer][1].length - + diffs[pointer - 1][1].length); + diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; + diffs.splice(pointer - 1, 1); + changes = true; + } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == + diffs[pointer + 1][1]) { + // Shift the edit over the next equality. + diffs[pointer - 1][1] += diffs[pointer + 1][1]; + diffs[pointer][1] = + diffs[pointer][1].substring(diffs[pointer + 1][1].length) + + diffs[pointer + 1][1]; + diffs.splice(pointer + 1, 1); + changes = true; + } + } + pointer++; + } + // If shifts were made, the diff needs reordering and another shift sweep. + if (changes) { + diff_cleanupMerge(diffs); + } +}; + + +var diff = diff_main; +diff.INSERT = DIFF_INSERT; +diff.DELETE = DIFF_DELETE; +diff.EQUAL = DIFF_EQUAL; + +module.exports = diff; + +/* + * Modify a diff such that the cursor position points to the start of a change: + * E.g. + * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1) + * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]] + * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2) + * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]] + * + * @param {Array} diffs Array of diff tuples + * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! + * @return {Array} A tuple [cursor location in the modified diff, modified diff] + */ +function cursor_normalize_diff (diffs, cursor_pos) { + if (cursor_pos === 0) { + return [DIFF_EQUAL, diffs]; + } + for (var current_pos = 0, i = 0; i < diffs.length; i++) { + var d = diffs[i]; + if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) { + var next_pos = current_pos + d[1].length; + if (cursor_pos === next_pos) { + return [i + 1, diffs]; + } else if (cursor_pos < next_pos) { + // copy to prevent side effects + diffs = diffs.slice(); + // split d into two diff changes + var split_pos = cursor_pos - current_pos; + var d_left = [d[0], d[1].slice(0, split_pos)]; + var d_right = [d[0], d[1].slice(split_pos)]; + diffs.splice(i, 1, d_left, d_right); + return [i + 1, diffs]; + } else { + current_pos = next_pos; + } + } + } + throw new Error('cursor_pos is out of bounds!') +} + +/* + * Modify a diff such that the edit position is "shifted" to the proposed edit location (cursor_position). + * + * Case 1) + * Check if a naive shift is possible: + * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X) + * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result + * Case 2) + * Check if the following shifts are possible: + * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix'] + * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix'] + * ^ ^ + * d d_next + * + * @param {Array} diffs Array of diff tuples + * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds! + * @return {Array} Array of diff tuples + */ +function fix_cursor (diffs, cursor_pos) { + var norm = cursor_normalize_diff(diffs, cursor_pos); + var ndiffs = norm[1]; + var cursor_pointer = norm[0]; + var d = ndiffs[cursor_pointer]; + var d_next = ndiffs[cursor_pointer + 1]; + + if (d == null) { + // Text was deleted from end of original string, + // cursor is now out of bounds in new string + return diffs; + } else if (d[0] !== DIFF_EQUAL) { + // A modification happened at the cursor location. + // This is the expected outcome, so we can return the original diff. + return diffs; + } else { + if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) { + // Case 1) + // It is possible to perform a naive shift + ndiffs.splice(cursor_pointer, 2, d_next, d) + return merge_tuples(ndiffs, cursor_pointer, 2) + } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) { + // Case 2) + // d[1] is a prefix of d_next[1] + // We can assume that d_next[0] !== 0, since d[0] === 0 + // Shift edit locations.. + ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]); + var suffix = d_next[1].slice(d[1].length); + if (suffix.length > 0) { + ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]); + } + return merge_tuples(ndiffs, cursor_pointer, 3) + } else { + // Not possible to perform any modification + return diffs; + } + } +} + +/* + * Check diff did not split surrogate pairs. + * Ex. [0, '\uD83D'], [-1, '\uDC36'], [1, '\uDC2F'] -> [-1, '\uD83D\uDC36'], [1, '\uD83D\uDC2F'] + * '\uD83D\uDC36' === '🐶', '\uD83D\uDC2F' === '🐯' + * + * @param {Array} diffs Array of diff tuples + * @return {Array} Array of diff tuples + */ +function fix_emoji (diffs) { + var compact = false; + var starts_with_pair_end = function(str) { + return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF; + } + var ends_with_pair_start = function(str) { + return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF; + } + for (var i = 2; i < diffs.length; i += 1) { + if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) && + diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) && + diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) { + compact = true; + + diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1]; + diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1]; + + diffs[i-2][1] = diffs[i-2][1].slice(0, -1); + } + } + if (!compact) { + return diffs; + } + var fixed_diffs = []; + for (var i = 0; i < diffs.length; i += 1) { + if (diffs[i][1].length > 0) { + fixed_diffs.push(diffs[i]); + } + } + return fixed_diffs; +} + +/* + * Try to merge tuples with their neigbors in a given range. + * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab'] + * + * @param {Array} diffs Array of diff tuples. + * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]). + * @param {Int} length Number of consecutive elements to check. + * @return {Array} Array of merged diff tuples. + */ +function merge_tuples (diffs, start, length) { + // Check from (start-1) to (start+length). + for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) { + if (i + 1 < diffs.length) { + var left_d = diffs[i]; + var right_d = diffs[i+1]; + if (left_d[0] === right_d[1]) { + diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]); + } + } + } + return diffs; +} + + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + +exports = module.exports = typeof Object.keys === 'function' + ? Object.keys : shim; + +exports.shim = shim; +function shim (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; +} + + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +var supportsArgumentsClass = (function(){ + return Object.prototype.toString.call(arguments) +})() == '[object Arguments]'; + +exports = module.exports = supportsArgumentsClass ? supported : unsupported; + +exports.supported = supported; +function supported(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +}; + +exports.unsupported = unsupported; +function unsupported(object){ + return object && + typeof object == 'object' && + typeof object.length == 'number' && + Object.prototype.hasOwnProperty.call(object, 'callee') && + !Object.prototype.propertyIsEnumerable.call(object, 'callee') || + false; +}; + + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +'use strict'; + +var has = Object.prototype.hasOwnProperty + , prefix = '~'; + +/** + * Constructor to create a storage for our `EE` objects. + * An `Events` instance is a plain object whose properties are event names. + * + * @constructor + * @api private + */ +function Events() {} + +// +// We try to not inherit from `Object.prototype`. In some engines creating an +// instance in this way is faster than calling `Object.create(null)` directly. +// If `Object.create(null)` is not supported we prefix the event names with a +// character to make sure that the built-in object properties are not +// overridden or used as an attack vector. +// +if (Object.create) { + Events.prototype = Object.create(null); + + // + // This hack is needed because the `__proto__` property is still inherited in + // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. + // + if (!new Events().__proto__) prefix = false; +} + +/** + * Representation of a single event listener. + * + * @param {Function} fn The listener function. + * @param {Mixed} context The context to invoke the listener with. + * @param {Boolean} [once=false] Specify if the listener is a one-time listener. + * @constructor + * @api private + */ +function EE(fn, context, once) { + this.fn = fn; + this.context = context; + this.once = once || false; +} + +/** + * Minimal `EventEmitter` interface that is molded against the Node.js + * `EventEmitter` interface. + * + * @constructor + * @api public + */ +function EventEmitter() { + this._events = new Events(); + this._eventsCount = 0; +} + +/** + * Return an array listing the events for which the emitter has Registroed + * listeners. + * + * @returns {Array} + * @api public + */ +EventEmitter.prototype.eventNames = function eventNames() { + var names = [] + , events + , name; + + if (this._eventsCount === 0) return names; + + for (name in (events = this._events)) { + if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); + } + + if (Object.getOwnPropertySymbols) { + return names.concat(Object.getOwnPropertySymbols(events)); + } + + return names; +}; + +/** + * Return the listeners Registroed for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Boolean} exists Only check if there are listeners. + * @returns {Array|Boolean} + * @api public + */ +EventEmitter.prototype.listeners = function listeners(event, exists) { + var evt = prefix ? prefix + event : event + , available = this._events[evt]; + + if (exists) return !!available; + if (!available) return []; + if (available.fn) return [available.fn]; + + for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) { + ee[i] = available[i].fn; + } + + return ee; +}; + +/** + * Calls each of the listeners Registroed for a given event. + * + * @param {String|Symbol} event The event name. + * @returns {Boolean} `true` if the event had listeners, else `false`. + * @api public + */ +EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return false; + + var listeners = this._events[evt] + , len = arguments.length + , args + , i; + + if (listeners.fn) { + if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); + + switch (len) { + case 1: return listeners.fn.call(listeners.context), true; + case 2: return listeners.fn.call(listeners.context, a1), true; + case 3: return listeners.fn.call(listeners.context, a1, a2), true; + case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; + case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; + case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; + } + + for (i = 1, args = new Array(len -1); i < len; i++) { + args[i - 1] = arguments[i]; + } + + listeners.fn.apply(listeners.context, args); + } else { + var length = listeners.length + , j; + + for (i = 0; i < length; i++) { + if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); + + switch (len) { + case 1: listeners[i].fn.call(listeners[i].context); break; + case 2: listeners[i].fn.call(listeners[i].context, a1); break; + case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; + case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; + default: + if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { + args[j - 1] = arguments[j]; + } + + listeners[i].fn.apply(listeners[i].context, args); + } + } + } + + return true; +}; + +/** + * Add a listener for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn The listener function. + * @param {Mixed} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.on = function on(event, fn, context) { + var listener = new EE(fn, context || this) + , evt = prefix ? prefix + event : event; + + if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++; + else if (!this._events[evt].fn) this._events[evt].push(listener); + else this._events[evt] = [this._events[evt], listener]; + + return this; +}; + +/** + * Add a one-time listener for a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn The listener function. + * @param {Mixed} [context=this] The context to invoke the listener with. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.once = function once(event, fn, context) { + var listener = new EE(fn, context || this, true) + , evt = prefix ? prefix + event : event; + + if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++; + else if (!this._events[evt].fn) this._events[evt].push(listener); + else this._events[evt] = [this._events[evt], listener]; + + return this; +}; + +/** + * Remove the listeners of a given event. + * + * @param {String|Symbol} event The event name. + * @param {Function} fn Only remove the listeners that match this function. + * @param {Mixed} context Only remove the listeners that have this context. + * @param {Boolean} once Only remove one-time listeners. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { + var evt = prefix ? prefix + event : event; + + if (!this._events[evt]) return this; + if (!fn) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + return this; + } + + var listeners = this._events[evt]; + + if (listeners.fn) { + if ( + listeners.fn === fn + && (!once || listeners.once) + && (!context || listeners.context === context) + ) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + } else { + for (var i = 0, events = [], length = listeners.length; i < length; i++) { + if ( + listeners[i].fn !== fn + || (once && !listeners[i].once) + || (context && listeners[i].context !== context) + ) { + events.push(listeners[i]); + } + } + + // + // Reset the array, or remove it completely if we have no more listeners. + // + if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; + else if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + + return this; +}; + +/** + * Remove all listeners, or those of the specified event. + * + * @param {String|Symbol} [event] The event name. + * @returns {EventEmitter} `this`. + * @api public + */ +EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { + var evt; + + if (event) { + evt = prefix ? prefix + event : event; + if (this._events[evt]) { + if (--this._eventsCount === 0) this._events = new Events(); + else delete this._events[evt]; + } + } else { + this._events = new Events(); + this._eventsCount = 0; + } + + return this; +}; + +// +// Alias methods names because people roll like that. +// +EventEmitter.prototype.off = EventEmitter.prototype.removeListener; +EventEmitter.prototype.addListener = EventEmitter.prototype.on; + +// +// This function doesn't apply anymore. +// +EventEmitter.prototype.setMaxListeners = function setMaxListeners() { + return this; +}; + +// +// Expose the prefix. +// +EventEmitter.prefixed = prefix; + +// +// Allow `EventEmitter` to be imported as module namespace. +// +EventEmitter.EventEmitter = EventEmitter; + +// +// Expose the module. +// +if ('undefined' !== typeof module) { + module.exports = EventEmitter; +} + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _extend2 = __webpack_require__(3); + +var _extend3 = _interopRequireDefault(_extend2); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +var _align = __webpack_require__(36); + +var _background = __webpack_require__(37); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _color = __webpack_require__(26); + +var _direction = __webpack_require__(38); + +var _font = __webpack_require__(39); + +var _size = __webpack_require__(40); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:clipboard'); + +var DOM_KEY = '__ql-matcher'; + +var CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]]; + +var ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) { + memo[attr.keyName] = attr; + return memo; +}, {}); + +var STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) { + memo[attr.keyName] = attr; + return memo; +}, {}); + +var Clipboard = function (_Module) { + _inherits(Clipboard, _Module); + + function Clipboard(quill, options) { + _classCallCheck(this, Clipboard); + + var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options)); + + _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this)); + _this.container = _this.quill.addContainer('ql-clipboard'); + _this.container.setAttribute('contenteditable', true); + _this.container.setAttribute('tabindex', -1); + _this.matchers = []; + CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + selector = _ref2[0], + matcher = _ref2[1]; + + if (!options.matchVisual && matcher === matchSpacing) return; + _this.addMatcher(selector, matcher); + }); + return _this; + } + + _createClass(Clipboard, [{ + key: 'addMatcher', + value: function addMatcher(selector, matcher) { + this.matchers.push([selector, matcher]); + } + }, { + key: 'convert', + value: function convert(html) { + if (typeof html === 'string') { + this.container.innerHTML = html.replace(/\>\r?\n +\<'); // Remove spaces between tags + return this.convert(); + } + var formats = this.quill.getFormat(this.quill.selection.savedRange.index); + if (formats[_code2.default.blotName]) { + var text = this.container.innerText; + this.container.innerHTML = ''; + return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName])); + } + + var _prepareMatching = this.prepareMatching(), + _prepareMatching2 = _slicedToArray(_prepareMatching, 2), + elementMatchers = _prepareMatching2[0], + textMatchers = _prepareMatching2[1]; + + var delta = traverse(this.container, elementMatchers, textMatchers); + // Remove trailing newline + if (deltaEndsWith(delta, '\n') && delta.ops[delta.ops.length - 1].attributes == null) { + delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1)); + } + debug.log('convert', this.container.innerHTML, delta); + this.container.innerHTML = ''; + return delta; + } + }, { + key: 'dangerouslyPasteHTML', + value: function dangerouslyPasteHTML(index, html) { + var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API; + + if (typeof index === 'string') { + this.quill.setContents(this.convert(index), html); + this.quill.setSelection(0, _quill2.default.sources.SILENT); + } else { + var paste = this.convert(html); + this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source); + this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT); + } + } + }, { + key: 'onPaste', + value: function onPaste(e) { + var _this2 = this; + + if (e.defaultPrevented || !this.quill.isEnabled()) return; + var range = this.quill.getSelection(); + var delta = new _quillDelta2.default().retain(range.index); + var scrollTop = this.quill.scrollingContainer.scrollTop; + this.container.focus(); + this.quill.selection.update(_quill2.default.sources.SILENT); + setTimeout(function () { + delta = delta.concat(_this2.convert()).delete(range.length); + _this2.quill.updateContents(delta, _quill2.default.sources.USER); + // range.length contributes to delta.length() + _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT); + _this2.quill.scrollingContainer.scrollTop = scrollTop; + _this2.quill.focus(); + }, 1); + } + }, { + key: 'prepareMatching', + value: function prepareMatching() { + var _this3 = this; + + var elementMatchers = [], + textMatchers = []; + this.matchers.forEach(function (pair) { + var _pair = _slicedToArray(pair, 2), + selector = _pair[0], + matcher = _pair[1]; + + switch (selector) { + case Node.TEXT_NODE: + textMatchers.push(matcher); + break; + case Node.ELEMENT_NODE: + elementMatchers.push(matcher); + break; + default: + [].forEach.call(_this3.container.querySelectorAll(selector), function (node) { + // TODO use weakmap + node[DOM_KEY] = node[DOM_KEY] || []; + node[DOM_KEY].push(matcher); + }); + break; + } + }); + return [elementMatchers, textMatchers]; + } + }]); + + return Clipboard; +}(_module2.default); + +Clipboard.DEFAULTS = { + matchers: [], + matchVisual: true +}; + +function applyFormat(delta, format, value) { + if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') { + return Object.keys(format).reduce(function (delta, key) { + return applyFormat(delta, key, format[key]); + }, delta); + } else { + return delta.reduce(function (delta, op) { + if (op.attributes && op.attributes[format]) { + return delta.push(op); + } else { + return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes)); + } + }, new _quillDelta2.default()); + } +} + +function computeStyle(node) { + if (node.nodeType !== Node.ELEMENT_NODE) return {}; + var DOM_KEY = '__ql-computed-style'; + return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node)); +} + +function deltaEndsWith(delta, text) { + var endText = ""; + for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) { + var op = delta.ops[i]; + if (typeof op.insert !== 'string') break; + endText = op.insert + endText; + } + return endText.slice(-1 * text.length) === text; +} + +function isLine(node) { + if (node.childNodes.length === 0) return false; // Exclude embed blocks + var style = computeStyle(node); + return ['block', 'list-item'].indexOf(style.display) > -1; +} + +function traverse(node, elementMatchers, textMatchers) { + // Post-order + if (node.nodeType === node.TEXT_NODE) { + return textMatchers.reduce(function (delta, matcher) { + return matcher(node, delta); + }, new _quillDelta2.default()); + } else if (node.nodeType === node.ELEMENT_NODE) { + return [].reduce.call(node.childNodes || [], function (delta, childNode) { + var childrenDelta = traverse(childNode, elementMatchers, textMatchers); + if (childNode.nodeType === node.ELEMENT_NODE) { + childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) { + return matcher(childNode, childrenDelta); + }, childrenDelta); + childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) { + return matcher(childNode, childrenDelta); + }, childrenDelta); + } + return delta.concat(childrenDelta); + }, new _quillDelta2.default()); + } else { + return new _quillDelta2.default(); + } +} + +function matchAlias(format, node, delta) { + return applyFormat(delta, format, true); +} + +function matchAttributor(node, delta) { + var attributes = _parchment2.default.Attributor.Attribute.keys(node); + var classes = _parchment2.default.Attributor.Class.keys(node); + var styles = _parchment2.default.Attributor.Style.keys(node); + var formats = {}; + attributes.concat(classes).concat(styles).forEach(function (name) { + var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE); + if (attr != null) { + formats[attr.attrName] = attr.value(node); + if (formats[attr.attrName]) return; + } + attr = ATTRIBUTE_ATTRIBUTORS[name]; + if (attr != null && (attr.attrName === name || attr.keyName === name)) { + formats[attr.attrName] = attr.value(node) || undefined; + } + attr = STYLE_ATTRIBUTORS[name]; + if (attr != null && (attr.attrName === name || attr.keyName === name)) { + attr = STYLE_ATTRIBUTORS[name]; + formats[attr.attrName] = attr.value(node) || undefined; + } + }); + if (Object.keys(formats).length > 0) { + delta = applyFormat(delta, formats); + } + return delta; +} + +function matchBlot(node, delta) { + var match = _parchment2.default.query(node); + if (match == null) return delta; + if (match.prototype instanceof _parchment2.default.Embed) { + var embed = {}; + var value = match.value(node); + if (value != null) { + embed[match.blotName] = value; + delta = new _quillDelta2.default().insert(embed, match.formats(node)); + } + } else if (typeof match.formats === 'function') { + delta = applyFormat(delta, match.blotName, match.formats(node)); + } + return delta; +} + +function matchBreak(node, delta) { + if (!deltaEndsWith(delta, '\n')) { + delta.insert('\n'); + } + return delta; +} + +function matchIgnore() { + return new _quillDelta2.default(); +} + +function matchIndent(node, delta) { + var match = _parchment2.default.query(node); + if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\n')) { + return delta; + } + var indent = -1, + parent = node.parentNode; + while (!parent.classList.contains('ql-clipboard')) { + if ((_parchment2.default.query(parent) || {}).blotName === 'list') { + indent += 1; + } + parent = parent.parentNode; + } + if (indent <= 0) return delta; + return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent })); +} + +function matchNewline(node, delta) { + if (!deltaEndsWith(delta, '\n')) { + if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) { + delta.insert('\n'); + } + } + return delta; +} + +function matchSpacing(node, delta) { + if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\n\n')) { + var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom); + if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) { + delta.insert('\n'); + } + } + return delta; +} + +function matchStyles(node, delta) { + var formats = {}; + var style = node.style || {}; + if (style.fontStyle && computeStyle(node).fontStyle === 'italic') { + formats.italic = true; + } + if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) { + formats.bold = true; + } + if (Object.keys(formats).length > 0) { + delta = applyFormat(delta, formats); + } + if (parseFloat(style.textIndent || 0) > 0) { + // Could be 0.5in + delta = new _quillDelta2.default().insert('\t').concat(delta); + } + return delta; +} + +function matchText(node, delta) { + var text = node.data; + // Word represents empty line with   + if (node.parentNode.tagName === 'O:P') { + return delta.insert(text.trim()); + } + if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) { + return delta; + } + if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) { + // eslint-disable-next-line func-style + var replacer = function replacer(collapse, match) { + match = match.replace(/[^\u00a0]/g, ''); // \u00a0 is nbsp; + return match.length < 1 && collapse ? ' ' : match; + }; + text = text.replace(/\r\n/g, ' ').replace(/\n/g, ' '); + text = text.replace(/\s\s+/g, replacer.bind(replacer, true)); // collapse whitespace + if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) { + text = text.replace(/^\s+/, replacer.bind(replacer, false)); + } + if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) { + text = text.replace(/\s+$/, replacer.bind(replacer, false)); + } + } + return delta.insert(text); +} + +exports.default = Clipboard; +exports.matchAttributor = matchAttributor; +exports.matchBlot = matchBlot; +exports.matchNewline = matchNewline; +exports.matchSpacing = matchSpacing; +exports.matchText = matchText; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Bold = function (_Inline) { + _inherits(Bold, _Inline); + + function Bold() { + _classCallCheck(this, Bold); + + return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments)); + } + + _createClass(Bold, [{ + key: 'optimize', + value: function optimize(context) { + _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context); + if (this.domNode.tagName !== this.statics.tagName[0]) { + this.replaceWith(this.statics.blotName); + } + } + }], [{ + key: 'create', + value: function create() { + return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this); + } + }, { + key: 'formats', + value: function formats() { + return true; + } + }]); + + return Bold; +}(_inline2.default); + +Bold.blotName = 'bold'; +Bold.tagName = ['STRONG', 'B']; + +exports.default = Bold; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.addControls = exports.default = undefined; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _quillDelta = __webpack_require__(2); + +var _quillDelta2 = _interopRequireDefault(_quillDelta); + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _logger = __webpack_require__(10); + +var _logger2 = _interopRequireDefault(_logger); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var debug = (0, _logger2.default)('quill:toolbar'); + +var Toolbar = function (_Module) { + _inherits(Toolbar, _Module); + + function Toolbar(quill, options) { + _classCallCheck(this, Toolbar); + + var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options)); + + if (Array.isArray(_this.options.container)) { + var container = document.createElement('div'); + addControls(container, _this.options.container); + quill.container.parentNode.insertBefore(container, quill.container); + _this.container = container; + } else if (typeof _this.options.container === 'string') { + _this.container = document.querySelector(_this.options.container); + } else { + _this.container = _this.options.container; + } + if (!(_this.container instanceof HTMLElement)) { + var _ret; + + return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret); + } + _this.container.classList.add('ql-toolbar'); + _this.controls = []; + _this.handlers = {}; + Object.keys(_this.options.handlers).forEach(function (format) { + _this.addHandler(format, _this.options.handlers[format]); + }); + [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) { + _this.attach(input); + }); + _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) { + if (type === _quill2.default.events.SELECTION_CHANGE) { + _this.update(range); + } + }); + _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () { + var _this$quill$selection = _this.quill.selection.getRange(), + _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1), + range = _this$quill$selection2[0]; // quill.getSelection triggers update + + + _this.update(range); + }); + return _this; + } + + _createClass(Toolbar, [{ + key: 'addHandler', + value: function addHandler(format, handler) { + this.handlers[format] = handler; + } + }, { + key: 'attach', + value: function attach(input) { + var _this2 = this; + + var format = [].find.call(input.classList, function (className) { + return className.indexOf('ql-') === 0; + }); + if (!format) return; + format = format.slice('ql-'.length); + if (input.tagName === 'BUTTON') { + input.setAttribute('type', 'button'); + } + if (this.handlers[format] == null) { + if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) { + debug.warn('ignoring attaching to disabled format', format, input); + return; + } + if (_parchment2.default.query(format) == null) { + debug.warn('ignoring attaching to nonexistent format', format, input); + return; + } + } + var eventName = input.tagName === 'SELECT' ? 'change' : 'click'; + input.addEventListener(eventName, function (e) { + var value = void 0; + if (input.tagName === 'SELECT') { + if (input.selectedIndex < 0) return; + var selected = input.options[input.selectedIndex]; + if (selected.hasAttribute('selected')) { + value = false; + } else { + value = selected.value || false; + } + } else { + if (input.classList.contains('ql-active')) { + value = false; + } else { + value = input.value || !input.hasAttribute('value'); + } + e.preventDefault(); + } + _this2.quill.focus(); + + var _quill$selection$getR = _this2.quill.selection.getRange(), + _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1), + range = _quill$selection$getR2[0]; + + if (_this2.handlers[format] != null) { + _this2.handlers[format].call(_this2, value); + } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) { + value = prompt('Enter ' + format); + if (!value) return; + _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER); + } else { + _this2.quill.format(format, value, _quill2.default.sources.USER); + } + _this2.update(range); + }); + // TODO use weakmap + this.controls.push([format, input]); + } + }, { + key: 'update', + value: function update(range) { + var formats = range == null ? {} : this.quill.getFormat(range); + this.controls.forEach(function (pair) { + var _pair = _slicedToArray(pair, 2), + format = _pair[0], + input = _pair[1]; + + if (input.tagName === 'SELECT') { + var option = void 0; + if (range == null) { + option = null; + } else if (formats[format] == null) { + option = input.querySelector('option[selected]'); + } else if (!Array.isArray(formats[format])) { + var value = formats[format]; + if (typeof value === 'string') { + value = value.replace(/\"/g, '\\"'); + } + option = input.querySelector('option[value="' + value + '"]'); + } + if (option == null) { + input.value = ''; // TODO make configurable? + input.selectedIndex = -1; + } else { + option.selected = true; + } + } else { + if (range == null) { + input.classList.remove('ql-active'); + } else if (input.hasAttribute('value')) { + // both being null should match (default values) + // '1' should match with 1 (headers) + var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value'); + input.classList.toggle('ql-active', isActive); + } else { + input.classList.toggle('ql-active', formats[format] != null); + } + } + }); + } + }]); + + return Toolbar; +}(_module2.default); + +Toolbar.DEFAULTS = {}; + +function addButton(container, format, value) { + var input = document.createElement('button'); + input.setAttribute('type', 'button'); + input.classList.add('ql-' + format); + if (value != null) { + input.value = value; + } + container.appendChild(input); +} + +function addControls(container, groups) { + if (!Array.isArray(groups[0])) { + groups = [groups]; + } + groups.forEach(function (controls) { + var group = document.createElement('span'); + group.classList.add('ql-formats'); + controls.forEach(function (control) { + if (typeof control === 'string') { + addButton(group, control); + } else { + var format = Object.keys(control)[0]; + var value = control[format]; + if (Array.isArray(value)) { + addSelect(group, format, value); + } else { + addButton(group, format, value); + } + } + }); + container.appendChild(group); + }); +} + +function addSelect(container, format, values) { + var input = document.createElement('select'); + input.classList.add('ql-' + format); + values.forEach(function (value) { + var option = document.createElement('option'); + if (value !== false) { + option.setAttribute('value', value); + } else { + option.setAttribute('selected', 'selected'); + } + input.appendChild(option); + }); + container.appendChild(input); +} + +Toolbar.DEFAULTS = { + container: null, + handlers: { + clean: function clean() { + var _this3 = this; + + var range = this.quill.getSelection(); + if (range == null) return; + if (range.length == 0) { + var formats = this.quill.getFormat(); + Object.keys(formats).forEach(function (name) { + // Clean functionality in existing apps only clean inline formats + if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) { + _this3.quill.format(name, false); + } + }); + } else { + this.quill.removeFormat(range, _quill2.default.sources.USER); + } + }, + direction: function direction(value) { + var align = this.quill.getFormat()['align']; + if (value === 'rtl' && align == null) { + this.quill.format('align', 'right', _quill2.default.sources.USER); + } else if (!value && align === 'right') { + this.quill.format('align', false, _quill2.default.sources.USER); + } + this.quill.format('direction', value, _quill2.default.sources.USER); + }, + indent: function indent(value) { + var range = this.quill.getSelection(); + var formats = this.quill.getFormat(range); + var indent = parseInt(formats.indent || 0); + if (value === '+1' || value === '-1') { + var modifier = value === '+1' ? 1 : -1; + if (formats.direction === 'rtl') modifier *= -1; + this.quill.format('indent', indent + modifier, _quill2.default.sources.USER); + } + }, + link: function link(value) { + if (value === true) { + value = prompt('Enter link URL:'); + } + this.quill.format('link', value, _quill2.default.sources.USER); + }, + list: function list(value) { + var range = this.quill.getSelection(); + var formats = this.quill.getFormat(range); + if (value === 'check') { + if (formats['list'] === 'checked' || formats['list'] === 'unchecked') { + this.quill.format('list', false, _quill2.default.sources.USER); + } else { + this.quill.format('list', 'unchecked', _quill2.default.sources.USER); + } + } else { + this.quill.format('list', value, _quill2.default.sources.USER); + } + } + } +}; + +exports.default = Toolbar; +exports.addControls = addControls; + +/***/ }), +/* 58 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _picker = __webpack_require__(28); + +var _picker2 = _interopRequireDefault(_picker); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ColorPicker = function (_Picker) { + _inherits(ColorPicker, _Picker); + + function ColorPicker(select, label) { + _classCallCheck(this, ColorPicker); + + var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select)); + + _this.label.innerHTML = label; + _this.container.classList.add('ql-color-picker'); + [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) { + item.classList.add('ql-primary'); + }); + return _this; + } + + _createClass(ColorPicker, [{ + key: 'buildItem', + value: function buildItem(option) { + var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option); + item.style.backgroundColor = option.getAttribute('value') || ''; + return item; + } + }, { + key: 'selectItem', + value: function selectItem(item, trigger) { + _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger); + var colorLabel = this.label.querySelector('.ql-color-label'); + var value = item ? item.getAttribute('data-value') || '' : ''; + if (colorLabel) { + if (colorLabel.tagName === 'line') { + colorLabel.style.stroke = value; + } else { + colorLabel.style.fill = value; + } + } + } + }]); + + return ColorPicker; +}(_picker2.default); + +exports.default = ColorPicker; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _picker = __webpack_require__(28); + +var _picker2 = _interopRequireDefault(_picker); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var IconPicker = function (_Picker) { + _inherits(IconPicker, _Picker); + + function IconPicker(select, icons) { + _classCallCheck(this, IconPicker); + + var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select)); + + _this.container.classList.add('ql-icon-picker'); + [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) { + item.innerHTML = icons[item.getAttribute('data-value') || '']; + }); + _this.defaultItem = _this.container.querySelector('.ql-selected'); + _this.selectItem(_this.defaultItem); + return _this; + } + + _createClass(IconPicker, [{ + key: 'selectItem', + value: function selectItem(item, trigger) { + _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger); + item = item || this.defaultItem; + this.label.innerHTML = item.innerHTML; + } + }]); + + return IconPicker; +}(_picker2.default); + +exports.default = IconPicker; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Tooltip = function () { + function Tooltip(quill, boundsContainer) { + var _this = this; + + _classCallCheck(this, Tooltip); + + this.quill = quill; + this.boundsContainer = boundsContainer || document.body; + this.root = quill.addContainer('ql-tooltip'); + this.root.innerHTML = this.constructor.TEMPLATE; + if (this.quill.root === this.quill.scrollingContainer) { + this.quill.root.addEventListener('scroll', function () { + _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px'; + }); + } + this.hide(); + } + + _createClass(Tooltip, [{ + key: 'hide', + value: function hide() { + this.root.classList.add('ql-hidden'); + } + }, { + key: 'position', + value: function position(reference) { + var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2; + // root.scrollTop should be 0 if scrollContainer !== root + var top = reference.bottom + this.quill.root.scrollTop; + this.root.style.left = left + 'px'; + this.root.style.top = top + 'px'; + this.root.classList.remove('ql-flip'); + var containerBounds = this.boundsContainer.getBoundingClientRect(); + var rootBounds = this.root.getBoundingClientRect(); + var shift = 0; + if (rootBounds.right > containerBounds.right) { + shift = containerBounds.right - rootBounds.right; + this.root.style.left = left + shift + 'px'; + } + if (rootBounds.left < containerBounds.left) { + shift = containerBounds.left - rootBounds.left; + this.root.style.left = left + shift + 'px'; + } + if (rootBounds.bottom > containerBounds.bottom) { + var height = rootBounds.bottom - rootBounds.top; + var verticalShift = reference.bottom - reference.top + height; + this.root.style.top = top - verticalShift + 'px'; + this.root.classList.add('ql-flip'); + } + return shift; + } + }, { + key: 'show', + value: function show() { + this.root.classList.remove('ql-editing'); + this.root.classList.remove('ql-hidden'); + } + }]); + + return Tooltip; +}(); + +exports.default = Tooltip; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _emitter = __webpack_require__(8); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _base = __webpack_require__(43); + +var _base2 = _interopRequireDefault(_base); + +var _link = __webpack_require__(27); + +var _link2 = _interopRequireDefault(_link); + +var _selection = __webpack_require__(15); + +var _icons = __webpack_require__(41); + +var _icons2 = _interopRequireDefault(_icons); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']]; + +var SnowTheme = function (_BaseTheme) { + _inherits(SnowTheme, _BaseTheme); + + function SnowTheme(quill, options) { + _classCallCheck(this, SnowTheme); + + if (options.modules.toolbar != null && options.modules.toolbar.container == null) { + options.modules.toolbar.container = TOOLBAR_CONFIG; + } + + var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options)); + + _this.quill.container.classList.add('ql-snow'); + return _this; + } + + _createClass(SnowTheme, [{ + key: 'extendToolbar', + value: function extendToolbar(toolbar) { + toolbar.container.classList.add('ql-snow'); + this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default); + this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default); + this.tooltip = new SnowTooltip(this.quill, this.options.bounds); + if (toolbar.container.querySelector('.ql-link')) { + this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) { + toolbar.handlers['link'].call(toolbar, !context.format.link); + }); + } + } + }]); + + return SnowTheme; +}(_base2.default); + +SnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, { + modules: { + toolbar: { + handlers: { + link: function link(value) { + if (value) { + var range = this.quill.getSelection(); + if (range == null || range.length == 0) return; + var preview = this.quill.getText(range); + if (/^\S+@\S+\.\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) { + preview = 'mailto:' + preview; + } + var tooltip = this.quill.theme.tooltip; + tooltip.edit('link', preview); + } else { + this.quill.format('link', false); + } + } + } + } + } +}); + +var SnowTooltip = function (_BaseTooltip) { + _inherits(SnowTooltip, _BaseTooltip); + + function SnowTooltip(quill, bounds) { + _classCallCheck(this, SnowTooltip); + + var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds)); + + _this2.preview = _this2.root.querySelector('a.ql-preview'); + return _this2; + } + + _createClass(SnowTooltip, [{ + key: 'listen', + value: function listen() { + var _this3 = this; + + _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this); + this.root.querySelector('a.ql-action').addEventListener('click', function (event) { + if (_this3.root.classList.contains('ql-editing')) { + _this3.save(); + } else { + _this3.edit('link', _this3.preview.textContent); + } + event.preventDefault(); + }); + this.root.querySelector('a.ql-remove').addEventListener('click', function (event) { + if (_this3.linkRange != null) { + var range = _this3.linkRange; + _this3.restoreFocus(); + _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER); + delete _this3.linkRange; + } + event.preventDefault(); + _this3.hide(); + }); + this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) { + if (range == null) return; + if (range.length === 0 && source === _emitter2.default.sources.USER) { + var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index), + _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2), + link = _quill$scroll$descend2[0], + offset = _quill$scroll$descend2[1]; + + if (link != null) { + _this3.linkRange = new _selection.Range(range.index - offset, link.length()); + var preview = _link2.default.formats(link.domNode); + _this3.preview.textContent = preview; + _this3.preview.setAttribute('href', preview); + _this3.show(); + _this3.position(_this3.quill.getBounds(_this3.linkRange)); + return; + } + } else { + delete _this3.linkRange; + } + _this3.hide(); + }); + } + }, { + key: 'show', + value: function show() { + _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this); + this.root.removeAttribute('data-mode'); + } + }]); + + return SnowTooltip; +}(_base.BaseTooltip); + +SnowTooltip.TEMPLATE = ['', '', '', ''].join(''); + +exports.default = SnowTheme; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _core = __webpack_require__(29); + +var _core2 = _interopRequireDefault(_core); + +var _align = __webpack_require__(36); + +var _direction = __webpack_require__(38); + +var _indent = __webpack_require__(64); + +var _blockquote = __webpack_require__(65); + +var _blockquote2 = _interopRequireDefault(_blockquote); + +var _header = __webpack_require__(66); + +var _header2 = _interopRequireDefault(_header); + +var _list = __webpack_require__(67); + +var _list2 = _interopRequireDefault(_list); + +var _background = __webpack_require__(37); + +var _color = __webpack_require__(26); + +var _font = __webpack_require__(39); + +var _size = __webpack_require__(40); + +var _bold = __webpack_require__(56); + +var _bold2 = _interopRequireDefault(_bold); + +var _italic = __webpack_require__(68); + +var _italic2 = _interopRequireDefault(_italic); + +var _link = __webpack_require__(27); + +var _link2 = _interopRequireDefault(_link); + +var _script = __webpack_require__(69); + +var _script2 = _interopRequireDefault(_script); + +var _strike = __webpack_require__(70); + +var _strike2 = _interopRequireDefault(_strike); + +var _underline = __webpack_require__(71); + +var _underline2 = _interopRequireDefault(_underline); + +var _image = __webpack_require__(72); + +var _image2 = _interopRequireDefault(_image); + +var _video = __webpack_require__(73); + +var _video2 = _interopRequireDefault(_video); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +var _formula = __webpack_require__(74); + +var _formula2 = _interopRequireDefault(_formula); + +var _syntax = __webpack_require__(75); + +var _syntax2 = _interopRequireDefault(_syntax); + +var _toolbar = __webpack_require__(57); + +var _toolbar2 = _interopRequireDefault(_toolbar); + +var _icons = __webpack_require__(41); + +var _icons2 = _interopRequireDefault(_icons); + +var _picker = __webpack_require__(28); + +var _picker2 = _interopRequireDefault(_picker); + +var _colorPicker = __webpack_require__(59); + +var _colorPicker2 = _interopRequireDefault(_colorPicker); + +var _iconPicker = __webpack_require__(60); + +var _iconPicker2 = _interopRequireDefault(_iconPicker); + +var _tooltip = __webpack_require__(61); + +var _tooltip2 = _interopRequireDefault(_tooltip); + +var _bubble = __webpack_require__(108); + +var _bubble2 = _interopRequireDefault(_bubble); + +var _snow = __webpack_require__(62); + +var _snow2 = _interopRequireDefault(_snow); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +_core2.default.Registro({ + 'attributors/attribute/direction': _direction.DirectionAttribute, + + 'attributors/class/align': _align.AlignClass, + 'attributors/class/background': _background.BackgroundClass, + 'attributors/class/color': _color.ColorClass, + 'attributors/class/direction': _direction.DirectionClass, + 'attributors/class/font': _font.FontClass, + 'attributors/class/size': _size.SizeClass, + + 'attributors/style/align': _align.AlignStyle, + 'attributors/style/background': _background.BackgroundStyle, + 'attributors/style/color': _color.ColorStyle, + 'attributors/style/direction': _direction.DirectionStyle, + 'attributors/style/font': _font.FontStyle, + 'attributors/style/size': _size.SizeStyle +}, true); + +_core2.default.Registro({ + 'formats/align': _align.AlignClass, + 'formats/direction': _direction.DirectionClass, + 'formats/indent': _indent.IndentClass, + + 'formats/background': _background.BackgroundStyle, + 'formats/color': _color.ColorStyle, + 'formats/font': _font.FontClass, + 'formats/size': _size.SizeClass, + + 'formats/blockquote': _blockquote2.default, + 'formats/code-block': _code2.default, + 'formats/header': _header2.default, + 'formats/list': _list2.default, + + 'formats/bold': _bold2.default, + 'formats/code': _code.Code, + 'formats/italic': _italic2.default, + 'formats/link': _link2.default, + 'formats/script': _script2.default, + 'formats/strike': _strike2.default, + 'formats/underline': _underline2.default, + + 'formats/image': _image2.default, + 'formats/video': _video2.default, + + 'formats/list/item': _list.ListItem, + + 'modules/formula': _formula2.default, + 'modules/syntax': _syntax2.default, + 'modules/toolbar': _toolbar2.default, + + 'themes/bubble': _bubble2.default, + 'themes/snow': _snow2.default, + + 'ui/icons': _icons2.default, + 'ui/picker': _picker2.default, + 'ui/icon-picker': _iconPicker2.default, + 'ui/color-picker': _colorPicker2.default, + 'ui/tooltip': _tooltip2.default +}, true); + +exports.default = _core2.default; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.IndentClass = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var IdentAttributor = function (_Parchment$Attributor) { + _inherits(IdentAttributor, _Parchment$Attributor); + + function IdentAttributor() { + _classCallCheck(this, IdentAttributor); + + return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments)); + } + + _createClass(IdentAttributor, [{ + key: 'add', + value: function add(node, value) { + if (value === '+1' || value === '-1') { + var indent = this.value(node) || 0; + value = value === '+1' ? indent + 1 : indent - 1; + } + if (value === 0) { + this.remove(node); + return true; + } else { + return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value); + } + } + }, { + key: 'canAdd', + value: function canAdd(node, value) { + return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value)); + } + }, { + key: 'value', + value: function value(node) { + return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN + } + }]); + + return IdentAttributor; +}(_parchment2.default.Attributor.Class); + +var IndentClass = new IdentAttributor('indent', 'ql-indent', { + scope: _parchment2.default.Scope.BLOCK, + whitelist: [1, 2, 3, 4, 5, 6, 7, 8] +}); + +exports.IndentClass = IndentClass; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Blockquote = function (_Block) { + _inherits(Blockquote, _Block); + + function Blockquote() { + _classCallCheck(this, Blockquote); + + return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments)); + } + + return Blockquote; +}(_block2.default); + +Blockquote.blotName = 'blockquote'; +Blockquote.tagName = 'blockquote'; + +exports.default = Blockquote; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Header = function (_Block) { + _inherits(Header, _Block); + + function Header() { + _classCallCheck(this, Header); + + return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments)); + } + + _createClass(Header, null, [{ + key: 'formats', + value: function formats(domNode) { + return this.tagName.indexOf(domNode.tagName) + 1; + } + }]); + + return Header; +}(_block2.default); + +Header.blotName = 'header'; +Header.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']; + +exports.default = Header; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.ListItem = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _block = __webpack_require__(4); + +var _block2 = _interopRequireDefault(_block); + +var _container = __webpack_require__(25); + +var _container2 = _interopRequireDefault(_container); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ListItem = function (_Block) { + _inherits(ListItem, _Block); + + function ListItem() { + _classCallCheck(this, ListItem); + + return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments)); + } + + _createClass(ListItem, [{ + key: 'format', + value: function format(name, value) { + if (name === List.blotName && !value) { + this.replaceWith(_parchment2.default.create(this.statics.scope)); + } else { + _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value); + } + } + }, { + key: 'remove', + value: function remove() { + if (this.prev == null && this.next == null) { + this.parent.remove(); + } else { + _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this); + } + } + }, { + key: 'replaceWith', + value: function replaceWith(name, value) { + this.parent.isolate(this.offset(this.parent), this.length()); + if (name === this.parent.statics.blotName) { + this.parent.replaceWith(name, value); + return this; + } else { + this.parent.unwrap(); + return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value); + } + } + }], [{ + key: 'formats', + value: function formats(domNode) { + return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode); + } + }]); + + return ListItem; +}(_block2.default); + +ListItem.blotName = 'list-item'; +ListItem.tagName = 'LI'; + +var List = function (_Container) { + _inherits(List, _Container); + + _createClass(List, null, [{ + key: 'create', + value: function create(value) { + var tagName = value === 'ordered' ? 'OL' : 'UL'; + var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName); + if (value === 'checked' || value === 'unchecked') { + node.setAttribute('data-checked', value === 'checked'); + } + return node; + } + }, { + key: 'formats', + value: function formats(domNode) { + if (domNode.tagName === 'OL') return 'ordered'; + if (domNode.tagName === 'UL') { + if (domNode.hasAttribute('data-checked')) { + return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked'; + } else { + return 'bullet'; + } + } + return undefined; + } + }]); + + function List(domNode) { + _classCallCheck(this, List); + + var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode)); + + var listEventHandler = function listEventHandler(e) { + if (e.target.parentNode !== domNode) return; + var format = _this2.statics.formats(domNode); + var blot = _parchment2.default.find(e.target); + if (format === 'checked') { + blot.format('list', 'unchecked'); + } else if (format === 'unchecked') { + blot.format('list', 'checked'); + } + }; + + domNode.addEventListener('touchstart', listEventHandler); + domNode.addEventListener('mousedown', listEventHandler); + return _this2; + } + + _createClass(List, [{ + key: 'format', + value: function format(name, value) { + if (this.children.length > 0) { + this.children.tail.format(name, value); + } + } + }, { + key: 'formats', + value: function formats() { + // We don't inherit from FormatBlot + return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode)); + } + }, { + key: 'insertBefore', + value: function insertBefore(blot, ref) { + if (blot instanceof ListItem) { + _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref); + } else { + var index = ref == null ? this.length() : ref.offset(this); + var after = this.split(index); + after.parent.insertBefore(blot, after); + } + } + }, { + key: 'optimize', + value: function optimize(context) { + _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context); + var next = this.next; + if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) { + next.moveChildren(this); + next.remove(); + } + } + }, { + key: 'replace', + value: function replace(target) { + if (target.statics.blotName !== this.statics.blotName) { + var item = _parchment2.default.create(this.statics.defaultChild); + target.moveChildren(item); + this.appendChild(item); + } + _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target); + } + }]); + + return List; +}(_container2.default); + +List.blotName = 'list'; +List.scope = _parchment2.default.Scope.BLOCK_BLOT; +List.tagName = ['OL', 'UL']; +List.defaultChild = 'list-item'; +List.allowedChildren = [ListItem]; + +exports.ListItem = ListItem; +exports.default = List; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _bold = __webpack_require__(56); + +var _bold2 = _interopRequireDefault(_bold); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Italic = function (_Bold) { + _inherits(Italic, _Bold); + + function Italic() { + _classCallCheck(this, Italic); + + return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments)); + } + + return Italic; +}(_bold2.default); + +Italic.blotName = 'italic'; +Italic.tagName = ['EM', 'I']; + +exports.default = Italic; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Script = function (_Inline) { + _inherits(Script, _Inline); + + function Script() { + _classCallCheck(this, Script); + + return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments)); + } + + _createClass(Script, null, [{ + key: 'create', + value: function create(value) { + if (value === 'super') { + return document.createElement('sup'); + } else if (value === 'sub') { + return document.createElement('sub'); + } else { + return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value); + } + } + }, { + key: 'formats', + value: function formats(domNode) { + if (domNode.tagName === 'SUB') return 'sub'; + if (domNode.tagName === 'SUP') return 'super'; + return undefined; + } + }]); + + return Script; +}(_inline2.default); + +Script.blotName = 'script'; +Script.tagName = ['SUB', 'SUP']; + +exports.default = Script; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Strike = function (_Inline) { + _inherits(Strike, _Inline); + + function Strike() { + _classCallCheck(this, Strike); + + return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments)); + } + + return Strike; +}(_inline2.default); + +Strike.blotName = 'strike'; +Strike.tagName = 'S'; + +exports.default = Strike; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inline = __webpack_require__(6); + +var _inline2 = _interopRequireDefault(_inline); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Underline = function (_Inline) { + _inherits(Underline, _Inline); + + function Underline() { + _classCallCheck(this, Underline); + + return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments)); + } + + return Underline; +}(_inline2.default); + +Underline.blotName = 'underline'; +Underline.tagName = 'U'; + +exports.default = Underline; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _link = __webpack_require__(27); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ATTRIBUTES = ['alt', 'height', 'width']; + +var Image = function (_Parchment$Embed) { + _inherits(Image, _Parchment$Embed); + + function Image() { + _classCallCheck(this, Image); + + return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments)); + } + + _createClass(Image, [{ + key: 'format', + value: function format(name, value) { + if (ATTRIBUTES.indexOf(name) > -1) { + if (value) { + this.domNode.setAttribute(name, value); + } else { + this.domNode.removeAttribute(name); + } + } else { + _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value); + } + } + }], [{ + key: 'create', + value: function create(value) { + var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value); + if (typeof value === 'string') { + node.setAttribute('src', this.sanitize(value)); + } + return node; + } + }, { + key: 'formats', + value: function formats(domNode) { + return ATTRIBUTES.reduce(function (formats, attribute) { + if (domNode.hasAttribute(attribute)) { + formats[attribute] = domNode.getAttribute(attribute); + } + return formats; + }, {}); + } + }, { + key: 'match', + value: function match(url) { + return (/\.(jpe?g|gif|png)$/.test(url) || /^data:image\/.+;base64/.test(url) + ); + } + }, { + key: 'sanitize', + value: function sanitize(url) { + return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0'; + } + }, { + key: 'value', + value: function value(domNode) { + return domNode.getAttribute('src'); + } + }]); + + return Image; +}(_parchment2.default.Embed); + +Image.blotName = 'image'; +Image.tagName = 'IMG'; + +exports.default = Image; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _block = __webpack_require__(4); + +var _link = __webpack_require__(27); + +var _link2 = _interopRequireDefault(_link); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ATTRIBUTES = ['height', 'width']; + +var Video = function (_BlockEmbed) { + _inherits(Video, _BlockEmbed); + + function Video() { + _classCallCheck(this, Video); + + return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments)); + } + + _createClass(Video, [{ + key: 'format', + value: function format(name, value) { + if (ATTRIBUTES.indexOf(name) > -1) { + if (value) { + this.domNode.setAttribute(name, value); + } else { + this.domNode.removeAttribute(name); + } + } else { + _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value); + } + } + }], [{ + key: 'create', + value: function create(value) { + var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value); + node.setAttribute('frameborder', '0'); + node.setAttribute('allowfullscreen', true); + node.setAttribute('src', this.sanitize(value)); + return node; + } + }, { + key: 'formats', + value: function formats(domNode) { + return ATTRIBUTES.reduce(function (formats, attribute) { + if (domNode.hasAttribute(attribute)) { + formats[attribute] = domNode.getAttribute(attribute); + } + return formats; + }, {}); + } + }, { + key: 'sanitize', + value: function sanitize(url) { + return _link2.default.sanitize(url); + } + }, { + key: 'value', + value: function value(domNode) { + return domNode.getAttribute('src'); + } + }]); + + return Video; +}(_block.BlockEmbed); + +Video.blotName = 'video'; +Video.className = 'ql-video'; +Video.tagName = 'IFRAME'; + +exports.default = Video; + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.FormulaBlot = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _embed = __webpack_require__(35); + +var _embed2 = _interopRequireDefault(_embed); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var FormulaBlot = function (_Embed) { + _inherits(FormulaBlot, _Embed); + + function FormulaBlot() { + _classCallCheck(this, FormulaBlot); + + return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments)); + } + + _createClass(FormulaBlot, null, [{ + key: 'create', + value: function create(value) { + var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value); + if (typeof value === 'string') { + window.katex.render(value, node, { + throwOnError: false, + errorColor: '#f00' + }); + node.setAttribute('data-value', value); + } + return node; + } + }, { + key: 'value', + value: function value(domNode) { + return domNode.getAttribute('data-value'); + } + }]); + + return FormulaBlot; +}(_embed2.default); + +FormulaBlot.blotName = 'formula'; +FormulaBlot.className = 'ql-formula'; +FormulaBlot.tagName = 'SPAN'; + +var Formula = function (_Module) { + _inherits(Formula, _Module); + + _createClass(Formula, null, [{ + key: 'Registro', + value: function Registro() { + _quill2.default.Registro(FormulaBlot, true); + } + }]); + + function Formula() { + _classCallCheck(this, Formula); + + var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this)); + + if (window.katex == null) { + throw new Error('Formula module requires KaTeX.'); + } + return _this2; + } + + return Formula; +}(_module2.default); + +exports.FormulaBlot = FormulaBlot; +exports.default = Formula; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.CodeToken = exports.CodeBlock = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _parchment = __webpack_require__(0); + +var _parchment2 = _interopRequireDefault(_parchment); + +var _quill = __webpack_require__(5); + +var _quill2 = _interopRequireDefault(_quill); + +var _module = __webpack_require__(9); + +var _module2 = _interopRequireDefault(_module); + +var _code = __webpack_require__(13); + +var _code2 = _interopRequireDefault(_code); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SyntaxCodeBlock = function (_CodeBlock) { + _inherits(SyntaxCodeBlock, _CodeBlock); + + function SyntaxCodeBlock() { + _classCallCheck(this, SyntaxCodeBlock); + + return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments)); + } + + _createClass(SyntaxCodeBlock, [{ + key: 'replaceWith', + value: function replaceWith(block) { + this.domNode.textContent = this.domNode.textContent; + this.attach(); + _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block); + } + }, { + key: 'highlight', + value: function highlight(_highlight) { + var text = this.domNode.textContent; + if (this.cachedText !== text) { + if (text.trim().length > 0 || this.cachedText == null) { + this.domNode.innerHTML = _highlight(text); + this.domNode.normalize(); + this.attach(); + } + this.cachedText = text; + } + } + }]); + + return SyntaxCodeBlock; +}(_code2.default); + +SyntaxCodeBlock.className = 'ql-syntax'; + +var CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', { + scope: _parchment2.default.Scope.INLINE +}); + +var Syntax = function (_Module) { + _inherits(Syntax, _Module); + + _createClass(Syntax, null, [{ + key: 'Registro', + value: function Registro() { + _quill2.default.Registro(CodeToken, true); + _quill2.default.Registro(SyntaxCodeBlock, true); + } + }]); + + function Syntax(quill, options) { + _classCallCheck(this, Syntax); + + var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options)); + + if (typeof _this2.options.highlight !== 'function') { + throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.'); + } + var timer = null; + _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () { + clearTimeout(timer); + timer = setTimeout(function () { + _this2.highlight(); + timer = null; + }, _this2.options.interval); + }); + _this2.highlight(); + return _this2; + } + + _createClass(Syntax, [{ + key: 'highlight', + value: function highlight() { + var _this3 = this; + + if (this.quill.selection.composing) return; + this.quill.update(_quill2.default.sources.USER); + var range = this.quill.getSelection(); + this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) { + code.highlight(_this3.options.highlight); + }); + this.quill.update(_quill2.default.sources.SILENT); + if (range != null) { + this.quill.setSelection(range, _quill2.default.sources.SILENT); + } + } + }]); + + return Syntax; +}(_module2.default); + +Syntax.DEFAULTS = { + highlight: function () { + if (window.hljs == null) return null; + return function (text) { + var result = window.hljs.highlightAuto(text); + return result.value; + }; + }(), + interval: 1000 +}; + +exports.CodeBlock = SyntaxCodeBlock; +exports.CodeToken = CodeToken; +exports.default = Syntax; + +/***/ }), +/* 76 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 77 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 79 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 82 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 83 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 84 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 85 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 86 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 87 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 88 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 89 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 90 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 91 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 92 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 93 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 94 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 95 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 96 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 97 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 98 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 99 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 100 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 101 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 102 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 103 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 104 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 105 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 106 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 107 */ +/***/ (function(module, exports) { + +module.exports = " "; + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = exports.BubbleTooltip = undefined; + +var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _extend = __webpack_require__(3); + +var _extend2 = _interopRequireDefault(_extend); + +var _emitter = __webpack_require__(8); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _base = __webpack_require__(43); + +var _base2 = _interopRequireDefault(_base); + +var _selection = __webpack_require__(15); + +var _icons = __webpack_require__(41); + +var _icons2 = _interopRequireDefault(_icons); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']]; + +var BubbleTheme = function (_BaseTheme) { + _inherits(BubbleTheme, _BaseTheme); + + function BubbleTheme(quill, options) { + _classCallCheck(this, BubbleTheme); + + if (options.modules.toolbar != null && options.modules.toolbar.container == null) { + options.modules.toolbar.container = TOOLBAR_CONFIG; + } + + var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options)); + + _this.quill.container.classList.add('ql-bubble'); + return _this; + } + + _createClass(BubbleTheme, [{ + key: 'extendToolbar', + value: function extendToolbar(toolbar) { + this.tooltip = new BubbleTooltip(this.quill, this.options.bounds); + this.tooltip.root.appendChild(toolbar.container); + this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default); + this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default); + } + }]); + + return BubbleTheme; +}(_base2.default); + +BubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, { + modules: { + toolbar: { + handlers: { + link: function link(value) { + if (!value) { + this.quill.format('link', false); + } else { + this.quill.theme.tooltip.edit(); + } + } + } + } + } +}); + +var BubbleTooltip = function (_BaseTooltip) { + _inherits(BubbleTooltip, _BaseTooltip); + + function BubbleTooltip(quill, bounds) { + _classCallCheck(this, BubbleTooltip); + + var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds)); + + _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) { + if (type !== _emitter2.default.events.SELECTION_CHANGE) return; + if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) { + _this2.show(); + // Lock our width so we will expand beyond our offsetParent boundaries + _this2.root.style.left = '0px'; + _this2.root.style.width = ''; + _this2.root.style.width = _this2.root.offsetWidth + 'px'; + var lines = _this2.quill.getLines(range.index, range.length); + if (lines.length === 1) { + _this2.position(_this2.quill.getBounds(range)); + } else { + var lastLine = lines[lines.length - 1]; + var index = _this2.quill.getIndex(lastLine); + var length = Math.min(lastLine.length() - 1, range.index + range.length - index); + var _bounds = _this2.quill.getBounds(new _selection.Range(index, length)); + _this2.position(_bounds); + } + } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) { + _this2.hide(); + } + }); + return _this2; + } + + _createClass(BubbleTooltip, [{ + key: 'listen', + value: function listen() { + var _this3 = this; + + _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this); + this.root.querySelector('.ql-close').addEventListener('click', function () { + _this3.root.classList.remove('ql-editing'); + }); + this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () { + // Let selection be restored by toolbar handlers before repositioning + setTimeout(function () { + if (_this3.root.classList.contains('ql-hidden')) return; + var range = _this3.quill.getSelection(); + if (range != null) { + _this3.position(_this3.quill.getBounds(range)); + } + }, 1); + }); + } + }, { + key: 'cancel', + value: function cancel() { + this.show(); + } + }, { + key: 'position', + value: function position(reference) { + var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference); + var arrow = this.root.querySelector('.ql-tooltip-arrow'); + arrow.style.marginLeft = ''; + if (shift === 0) return shift; + arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px'; + } + }]); + + return BubbleTooltip; +}(_base.BaseTooltip); + +BubbleTooltip.TEMPLATE = ['', '
        ', '', '', '
        '].join(''); + +exports.BubbleTooltip = BubbleTooltip; +exports.default = BubbleTheme; + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(63); + + +/***/ }) +/******/ ])["default"]; +}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/quill/quill.min.js b/Practica-14.5/src/assets/vendor/quill/quill.min.js new file mode 100644 index 0000000..f1d2d34 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.min.js @@ -0,0 +1,8 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Quill=e():t.Quill=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=45)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),o=n(18),i=n(19),l=n(48),a=n(49),s=n(50),u=n(51),c=n(52),f=n(11),h=n(29),p=n(30),d=n(28),y=n(1),v={Scope:y.Scope,create:y.create,find:y.find,query:y.query,Registro:y.Registro,Container:r.default,Format:o.default,Leaf:i.default,Embed:u.default,Scroll:l.default,Block:s.default,Inline:a.default,Text:c.default,Attributor:{Attribute:f.default,Class:h.default,Style:p.default,Store:d.default}};e.default=v},function(t,e,n){"use strict";function r(t,e){var n=i(t);if(null==n)throw new s("Unable to create "+t+" blot");var r=n;return new r(t instanceof Node||t.nodeType===Node.TEXT_NODE?t:r.create(e),e)}function o(t,n){return void 0===n&&(n=!1),null==t?null:null!=t[e.DATA_KEY]?t[e.DATA_KEY].blot:n?o(t.parentNode,n):null}function i(t,e){void 0===e&&(e=p.ANY);var n;if("string"==typeof t)n=h[t]||u[t];else if(t instanceof Text||t.nodeType===Node.TEXT_NODE)n=h.text;else if("number"==typeof t)t&p.LEVEL&p.BLOCK?n=h.block:t&p.LEVEL&p.INLINE&&(n=h.inline);else if(t instanceof HTMLElement){var r=(t.getAttribute("class")||"").split(/\s+/);for(var o in r)if(n=c[r[o]])break;n=n||f[t.tagName]}return null==n?null:e&p.LEVEL&n.scope&&e&p.TYPE&n.scope?n:null}function l(){for(var t=[],e=0;e1)return t.map(function(t){return l(t)});var n=t[0];if("string"!=typeof n.blotName&&"string"!=typeof n.attrName)throw new s("Invalid definition");if("abstract"===n.blotName)throw new s("Cannot Registro abstract class");if(h[n.blotName||n.attrName]=n,"string"==typeof n.keyName)u[n.keyName]=n;else if(null!=n.className&&(c[n.className]=n),null!=n.tagName){Array.isArray(n.tagName)?n.tagName=n.tagName.map(function(t){return t.toUpperCase()}):n.tagName=n.tagName.toUpperCase();var r=Array.isArray(n.tagName)?n.tagName:[n.tagName];r.forEach(function(t){null!=f[t]&&null!=n.className||(f[t]=n)})}return n}var a=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(e){var n=this;return e="[Parchment] "+e,n=t.call(this,e)||this,n.message=e,n.name=n.constructor.name,n}return a(e,t),e}(Error);e.ParchmentError=s;var u={},c={},f={},h={};e.DATA_KEY="__blot";var p;!function(t){t[t.TYPE=3]="TYPE",t[t.LEVEL=12]="LEVEL",t[t.ATTRIBUTE=13]="ATTRIBUTE",t[t.BLOT=14]="BLOT",t[t.INLINE=7]="INLINE",t[t.BLOCK=11]="BLOCK",t[t.BLOCK_BLOT=10]="BLOCK_BLOT",t[t.INLINE_BLOT=6]="INLINE_BLOT",t[t.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",t[t.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",t[t.ANY=15]="ANY"}(p=e.Scope||(e.Scope={})),e.create=r,e.find=o,e.query=i,e.Registro=l},function(t,e){"use strict";var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===r.call(t)},a=function(t){if(!t||"[object Object]"!==r.call(t))return!1;var e=n.call(t,"constructor"),o=t.constructor&&t.constructor.prototype&&n.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!e&&!o)return!1;var i;for(i in t);return void 0===i||n.call(t,i)},s=function(t,e){o&&"__proto__"===e.name?o(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},u=function(t,e){if("__proto__"===e){if(!n.call(t,e))return;if(i)return i(t,e).value}return t[e]};t.exports=function t(){var e,n,r,o,i,c,f=arguments[0],h=1,p=arguments.length,d=!1;for("boolean"==typeof f&&(d=f,f=arguments[1]||{},h=2),(null==f||"object"!=typeof f&&"function"!=typeof f)&&(f={});h1&&void 0!==arguments[1]?arguments[1]:{};return null==t?e:("function"==typeof t.formats&&(e=(0,f.default)(e,t.formats())),null==t.parent||"scroll"==t.parent.blotName||t.parent.statics.scope!==t.statics.scope?e:a(t.parent,e))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BlockEmbed=e.bubbleFormats=void 0;var s=function(){function t(t,e){for(var n=0;n0&&(t1&&void 0!==arguments[1]&&arguments[1];if(n&&(0===t||t>=this.length()-1)){var r=this.clone();return 0===t?(this.parent.insertBefore(r,this),this):(this.parent.insertBefore(r,this.next),r)}var o=u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"split",this).call(this,t,n);return this.cache={},o}}]),e}(y.default.Block);x.blotName="block",x.tagName="P",x.defaultChild="break",x.allowedChildren=[m.default,y.default.Embed,O.default],e.bubbleFormats=a,e.BlockEmbed=w,e.default=x},function(t,e,n){var r=n(54),o=n(12),i=n(2),l=n(20),a=String.fromCharCode(0),s=function(t){Array.isArray(t)?this.ops=t:null!=t&&Array.isArray(t.ops)?this.ops=t.ops:this.ops=[]};s.prototype.insert=function(t,e){var n={};return 0===t.length?this:(n.insert=t,null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n))},s.prototype.delete=function(t){return t<=0?this:this.push({delete:t})},s.prototype.retain=function(t,e){if(t<=0)return this;var n={retain:t};return null!=e&&"object"==typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n)},s.prototype.push=function(t){var e=this.ops.length,n=this.ops[e-1];if(t=i(!0,{},t),"object"==typeof n){if("number"==typeof t.delete&&"number"==typeof n.delete)return this.ops[e-1]={delete:n.delete+t.delete},this;if("number"==typeof n.delete&&null!=t.insert&&(e-=1,"object"!=typeof(n=this.ops[e-1])))return this.ops.unshift(t),this;if(o(t.attributes,n.attributes)){if("string"==typeof t.insert&&"string"==typeof n.insert)return this.ops[e-1]={insert:n.insert+t.insert},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this;if("number"==typeof t.retain&&"number"==typeof n.retain)return this.ops[e-1]={retain:n.retain+t.retain},"object"==typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this}}return e===this.ops.length?this.ops.push(t):this.ops.splice(e,0,t),this},s.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},s.prototype.filter=function(t){return this.ops.filter(t)},s.prototype.forEach=function(t){this.ops.forEach(t)},s.prototype.map=function(t){return this.ops.map(t)},s.prototype.partition=function(t){var e=[],n=[];return this.forEach(function(r){(t(r)?e:n).push(r)}),[e,n]},s.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},s.prototype.changeLength=function(){return this.reduce(function(t,e){return e.insert?t+l.length(e):e.delete?t-e.delete:t},0)},s.prototype.length=function(){return this.reduce(function(t,e){return t+l.length(e)},0)},s.prototype.slice=function(t,e){t=t||0,"number"!=typeof e&&(e=1/0);for(var n=[],r=l.iterator(this.ops),o=0;o0&&n.next(i.retain-a)}for(var u=new s(r);e.hasNext()||n.hasNext();)if("insert"===n.peekType())u.push(n.next());else if("delete"===e.peekType())u.push(e.next());else{var c=Math.min(e.peekLength(),n.peekLength()),f=e.next(c),h=n.next(c);if("number"==typeof h.retain){var p={};"number"==typeof f.retain?p.retain=c:p.insert=f.insert;var d=l.attributes.compose(f.attributes,h.attributes,"number"==typeof f.retain);if(d&&(p.attributes=d),u.push(p),!n.hasNext()&&o(u.ops[u.ops.length-1],p)){var y=new s(e.rest());return u.concat(y).chop()}}else"number"==typeof h.delete&&"number"==typeof f.retain&&u.push(h)}return u.chop()},s.prototype.concat=function(t){var e=new s(this.ops.slice());return t.ops.length>0&&(e.push(t.ops[0]),e.ops=e.ops.concat(t.ops.slice(1))),e},s.prototype.diff=function(t,e){if(this.ops===t.ops)return new s;var n=[this,t].map(function(e){return e.map(function(n){if(null!=n.insert)return"string"==typeof n.insert?n.insert:a;var r=e===t?"on":"with";throw new Error("diff() called "+r+" non-document")}).join("")}),i=new s,u=r(n[0],n[1],e),c=l.iterator(this.ops),f=l.iterator(t.ops);return u.forEach(function(t){for(var e=t[1].length;e>0;){var n=0;switch(t[0]){case r.INSERT:n=Math.min(f.peekLength(),e),i.push(f.next(n));break;case r.DELETE:n=Math.min(e,c.peekLength()),c.next(n),i.delete(n);break;case r.EQUAL:n=Math.min(c.peekLength(),f.peekLength(),e);var a=c.next(n),s=f.next(n);o(a.insert,s.insert)?i.retain(n,l.attributes.diff(a.attributes,s.attributes)):i.push(s).delete(n)}e-=n}}),i.chop()},s.prototype.eachLine=function(t,e){e=e||"\n";for(var n=l.iterator(this.ops),r=new s,o=0;n.hasNext();){if("insert"!==n.peekType())return;var i=n.peek(),a=l.length(i)-n.peekLength(),u="string"==typeof i.insert?i.insert.indexOf(e,a)-a:-1;if(u<0)r.push(n.next());else if(u>0)r.push(n.next(u));else{if(!1===t(r,n.next(1).attributes||{},o))return;o+=1,r=new s}}r.length()>0&&t(r,{},o)},s.prototype.transform=function(t,e){if(e=!!e,"number"==typeof t)return this.transformPosition(t,e);for(var n=l.iterator(this.ops),r=l.iterator(t.ops),o=new s;n.hasNext()||r.hasNext();)if("insert"!==n.peekType()||!e&&"insert"===r.peekType())if("insert"===r.peekType())o.push(r.next());else{var i=Math.min(n.peekLength(),r.peekLength()),a=n.next(i),u=r.next(i);if(a.delete)continue;u.delete?o.push(u):o.retain(i,l.attributes.transform(a.attributes,u.attributes,e))}else o.retain(l.length(n.next()));return o.chop()},s.prototype.transformPosition=function(t,e){e=!!e;for(var n=l.iterator(this.ops),r=0;n.hasNext()&&r<=t;){var o=n.peekLength(),i=n.peekType();n.next(),"delete"!==i?("insert"===i&&(r0){var n=this.parent.isolate(this.offset(),this.length());this.moveChildren(n),n.wrap(this)}}}],[{key:"compare",value:function(t,n){var r=e.order.indexOf(t),o=e.order.indexOf(n);return r>=0||o>=0?r-o:t===n?0:t0){var a,s=[g.default.events.TEXT_CHANGE,l,i,e];if((a=this.emitter).emit.apply(a,[g.default.events.EDITOR_CHANGE].concat(s)),e!==g.default.sources.SILENT){var c;(c=this.emitter).emit.apply(c,s)}}return l}function s(t,e,n,r,o){var i={};return"number"==typeof t.index&&"number"==typeof t.length?"number"!=typeof e?(o=r,r=n,n=e,e=t.length,t=t.index):(e=t.length,t=t.index):"number"!=typeof e&&(o=r,r=n,n=e,e=0),"object"===(void 0===n?"undefined":c(n))?(i=n,o=r):"string"==typeof n&&(null!=r?i[n]=r:o=n),o=o||g.default.sources.API,[t,e,i,o]}function u(t,e,n,r){if(null==t)return null;var o=void 0,i=void 0;if(e instanceof d.default){var l=[t.index,t.index+t.length].map(function(t){return e.transformPosition(t,r!==g.default.sources.USER)}),a=f(l,2);o=a[0],i=a[1]}else{var s=[t.index,t.index+t.length].map(function(t){return t=0?t+n:Math.max(e,t+n)}),u=f(s,2);o=u[0],i=u[1]}return new x.Range(o,i-o)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.overload=e.expandConfig=void 0;var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(i(this,t),this.options=l(e,r),this.container=this.options.container,null==this.container)return P.error("Invalid Quill container",e);this.options.debug&&t.debug(this.options.debug);var o=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",this.container.__quill=this,this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.root.setAttribute("data-gramm",!1),this.scrollingContainer=this.options.scrollingContainer||this.root,this.emitter=new g.default,this.scroll=w.default.create(this.root,{emitter:this.emitter,whitelist:this.options.formats}),this.editor=new v.default(this.scroll),this.selection=new k.default(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.theme.init(),this.emitter.on(g.default.events.EDITOR_CHANGE,function(t){t===g.default.events.TEXT_CHANGE&&n.root.classList.toggle("ql-blank",n.editor.isBlank())}),this.emitter.on(g.default.events.SCROLL_UPDATE,function(t,e){var r=n.selection.lastRange,o=r&&0===r.length?r.index:void 0;a.call(n,function(){return n.editor.update(null,e,o)},t)});var s=this.clipboard.convert("
        "+o+"


        ");this.setContents(s),this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable()}return h(t,null,[{key:"debug",value:function(t){!0===t&&(t="log"),A.default.level(t)}},{key:"find",value:function(t){return t.__quill||w.default.find(t)}},{key:"import",value:function(t){return null==this.imports[t]&&P.error("Cannot import "+t+". Are you sure it was Registroed?"),this.imports[t]}},{key:"Registro",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!=typeof t){var o=t.attrName||t.blotName;"string"==typeof o?this.Registro("formats/"+o,t,e):Object.keys(t).forEach(function(r){n.Registro(r,t[r],e)})}else null==this.imports[t]||r||P.warn("Overwriting "+t+" with",e),this.imports[t]=e,(t.startsWith("blots/")||t.startsWith("formats/"))&&"abstract"!==e.blotName?w.default.Registro(e):t.startsWith("modules")&&"function"==typeof e.Registro&&e.Registro()}}]),h(t,[{key:"addContainer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof t){var n=t;t=document.createElement("div"),t.classList.add(n)}return this.container.insertBefore(t,e),t}},{key:"blur",value:function(){this.selection.setRange(null)}},{key:"deleteText",value:function(t,e,n){var r=this,o=s(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],a.call(this,function(){return r.editor.deleteText(t,e)},n,t,-1*e)}},{key:"disable",value:function(){this.enable(!1)}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.scroll.enable(t),this.container.classList.toggle("ql-disabled",!t)}},{key:"focus",value:function(){var t=this.scrollingContainer.scrollTop;this.selection.focus(),this.scrollingContainer.scrollTop=t,this.scrollIntoView()}},{key:"format",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.default.sources.API;return a.call(this,function(){var r=n.getSelection(!0),i=new d.default;if(null==r)return i;if(w.default.query(t,w.default.Scope.BLOCK))i=n.editor.formatLine(r.index,r.length,o({},t,e));else{if(0===r.length)return n.selection.format(t,e),i;i=n.editor.formatText(r.index,r.length,o({},t,e))}return n.setSelection(r,g.default.sources.SILENT),i},r)}},{key:"formatLine",value:function(t,e,n,r,o){var i=this,l=void 0,u=s(t,e,n,r,o),c=f(u,4);return t=c[0],e=c[1],l=c[2],o=c[3],a.call(this,function(){return i.editor.formatLine(t,e,l)},o,t,0)}},{key:"formatText",value:function(t,e,n,r,o){var i=this,l=void 0,u=s(t,e,n,r,o),c=f(u,4);return t=c[0],e=c[1],l=c[2],o=c[3],a.call(this,function(){return i.editor.formatText(t,e,l)},o,t,0)}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=void 0;n="number"==typeof t?this.selection.getBounds(t,e):this.selection.getBounds(t.index,t.length);var r=this.container.getBoundingClientRect();return{bottom:n.bottom-r.top,height:n.height,left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,width:n.width}}},{key:"getContents",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=s(t,e),r=f(n,2);return t=r[0],e=r[1],this.editor.getContents(t,e)}},{key:"getFormat",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getSelection(!0),e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"number"==typeof t?this.editor.getFormat(t,e):this.editor.getFormat(t.index,t.length)}},{key:"getIndex",value:function(t){return t.offset(this.scroll)}},{key:"getLength",value:function(){return this.scroll.length()}},{key:"getLeaf",value:function(t){return this.scroll.leaf(t)}},{key:"getLine",value:function(t){return this.scroll.line(t)}},{key:"getLines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return"number"!=typeof t?this.scroll.lines(t.index,t.length):this.scroll.lines(t,e)}},{key:"getModule",value:function(t){return this.theme.modules[t]}},{key:"getSelection",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.focus(),this.update(),this.selection.getRange()[0]}},{key:"getText",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=s(t,e),r=f(n,2);return t=r[0],e=r[1],this.editor.getText(t,e)}},{key:"hasFocus",value:function(){return this.selection.hasFocus()}},{key:"insertEmbed",value:function(e,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.sources.API;return a.call(this,function(){return o.editor.insertEmbed(e,n,r)},i,e)}},{key:"insertText",value:function(t,e,n,r,o){var i=this,l=void 0,u=s(t,0,n,r,o),c=f(u,4);return t=c[0],l=c[2],o=c[3],a.call(this,function(){return i.editor.insertText(t,e,l)},o,t,e.length)}},{key:"isEnabled",value:function(){return!this.container.classList.contains("ql-disabled")}},{key:"off",value:function(){return this.emitter.off.apply(this.emitter,arguments)}},{key:"on",value:function(){return this.emitter.on.apply(this.emitter,arguments)}},{key:"once",value:function(){return this.emitter.once.apply(this.emitter,arguments)}},{key:"pasteHTML",value:function(t,e,n){this.clipboard.dangerouslyPasteHTML(t,e,n)}},{key:"removeFormat",value:function(t,e,n){var r=this,o=s(t,e,n),i=f(o,4);return t=i[0],e=i[1],n=i[3],a.call(this,function(){return r.editor.removeFormat(t,e)},n,t)}},{key:"scrollIntoView",value:function(){this.selection.scrollIntoView(this.scrollingContainer)}},{key:"setContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API;return a.call(this,function(){t=new d.default(t);var n=e.getLength(),r=e.editor.deleteText(0,n),o=e.editor.applyDelta(t),i=o.ops[o.ops.length-1];return null!=i&&"string"==typeof i.insert&&"\n"===i.insert[i.insert.length-1]&&(e.editor.deleteText(e.getLength()-1,1),o.delete(1)),r.compose(o)},n)}},{key:"setSelection",value:function(e,n,r){if(null==e)this.selection.setRange(null,n||t.sources.API);else{var o=s(e,n,r),i=f(o,4);e=i[0],n=i[1],r=i[3],this.selection.setRange(new x.Range(e,n),r),r!==g.default.sources.SILENT&&this.selection.scrollIntoView(this.scrollingContainer)}}},{key:"setText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API,n=(new d.default).insert(t);return this.setContents(n,e)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g.default.sources.USER,e=this.scroll.update(t);return this.selection.update(t),e}},{key:"updateContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g.default.sources.API;return a.call(this,function(){return t=new d.default(t),e.editor.applyDelta(t,n)},n,!0)}}]),t}();S.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,scrollingContainer:null,strict:!0,theme:"default"},S.events=g.default.events,S.sources=g.default.sources,S.version="1.3.7",S.imports={delta:d.default,parchment:w.default,"core/module":_.default,"core/theme":T.default},e.expandConfig=l,e.overload=s,e.default=S},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(this,t),this.quill=e,this.options=n};o.DEFAULTS={},e.default=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(l),s=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),e}(a.default.Text);e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n1?e-1:0),r=1;r1?n-1:0),o=1;o-1:this.whitelist.indexOf(e)>-1))},t.prototype.remove=function(t){t.removeAttribute(this.keyName)},t.prototype.value=function(t){var e=t.getAttribute(this.keyName);return this.canAdd(t,e)&&e?e:""},t}();e.default=o},function(t,e,n){function r(t){return null===t||void 0===t}function o(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}function i(t,e,n){var i,c;if(r(t)||r(e))return!1;if(t.prototype!==e.prototype)return!1;if(s(t))return!!s(e)&&(t=l.call(t),e=l.call(e),u(t,e,n));if(o(t)){if(!o(e))return!1;if(t.length!==e.length)return!1;for(i=0;i=0;i--)if(f[i]!=h[i])return!1;for(i=f.length-1;i>=0;i--)if(c=f[i],!u(t[c],e[c],n))return!1;return typeof t==typeof e}var l=Array.prototype.slice,a=n(55),s=n(56),u=t.exports=function(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?n.strict?t===e:t==e:i(t,e,n))}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Code=void 0;var a=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var n=0;n=t+n)){var l=this.newlineIndex(t,!0)+1,a=i-l+1,s=this.isolate(l,a),u=s.next;s.format(r,o),u instanceof e&&u.formatAt(0,t-l+n-a,r,o)}}}},{key:"insertAt",value:function(t,e,n){if(null==n){var r=this.descendant(m.default,t),o=a(r,2),i=o[0],l=o[1];i.insertAt(l,e)}}},{key:"length",value:function(){var t=this.domNode.textContent.length;return this.domNode.textContent.endsWith("\n")?t:t+1}},{key:"newlineIndex",value:function(t){if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])return this.domNode.textContent.slice(0,t).lastIndexOf("\n");var e=this.domNode.textContent.slice(t).indexOf("\n");return e>-1?t+e:-1}},{key:"optimize",value:function(t){this.domNode.textContent.endsWith("\n")||this.appendChild(p.default.create("text","\n")),u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===n.statics.formats(n.domNode)&&(n.optimize(t),n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t),[].slice.call(this.domNode.querySelectorAll("*")).forEach(function(t){var e=p.default.find(t);null==e?t.parentNode.removeChild(t):e instanceof p.default.Embed?e.remove():e.unwrap()})}}],[{key:"create",value:function(t){var n=u(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("spellcheck",!1),n}},{key:"formats",value:function(){return!0}}]),e}(y.default);O.blotName="code-block",O.tagName="PRE",O.TAB=" ",e.Code=_,e.default=O},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;n-1}Object.defineProperty(e,"__esModule",{value:!0}),e.sanitize=e.default=void 0;var a=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1],n=this.container.querySelector(".ql-selected");if(t!==n&&(null!=n&&n.classList.remove("ql-selected"),null!=t&&(t.classList.add("ql-selected"),this.select.selectedIndex=[].indexOf.call(t.parentNode.children,t),t.hasAttribute("data-value")?this.label.setAttribute("data-value",t.getAttribute("data-value")):this.label.removeAttribute("data-value"),t.hasAttribute("data-label")?this.label.setAttribute("data-label",t.getAttribute("data-label")):this.label.removeAttribute("data-label"),e))){if("function"==typeof Event)this.select.dispatchEvent(new Event("change"));else if("object"===("undefined"==typeof Event?"undefined":l(Event))){var r=document.createEvent("Event");r.initEvent("change",!0,!0),this.select.dispatchEvent(r)}this.close()}}},{key:"update",value:function(){var t=void 0;if(this.select.selectedIndex>-1){var e=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];t=this.select.options[this.select.selectedIndex],this.selectItem(e)}else this.selectItem(null);var n=null!=t&&t!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",n)}}]),t}();e.default=p},function(t,e,n){"use strict";function r(t){var e=a.find(t);if(null==e)try{e=a.create(t)}catch(n){e=a.create(a.Scope.INLINE),[].slice.call(t.childNodes).forEach(function(t){e.domNode.appendChild(t)}),t.parentNode&&t.parentNode.replaceChild(e.domNode,t),e.attach()}return e}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(47),l=n(27),a=n(1),s=function(t){function e(e){var n=t.call(this,e)||this;return n.build(),n}return o(e,t),e.prototype.appendChild=function(t){this.insertBefore(t)},e.prototype.attach=function(){t.prototype.attach.call(this),this.children.forEach(function(t){t.attach()})},e.prototype.build=function(){var t=this;this.children=new i.default,[].slice.call(this.domNode.childNodes).reverse().forEach(function(e){try{var n=r(e);t.insertBefore(n,t.children.head||void 0)}catch(t){if(t instanceof a.ParchmentError)return;throw t}})},e.prototype.deleteAt=function(t,e){if(0===t&&e===this.length())return this.remove();this.children.forEachAt(t,e,function(t,e,n){t.deleteAt(e,n)})},e.prototype.descendant=function(t,n){var r=this.children.find(n),o=r[0],i=r[1];return null==t.blotName&&t(o)||null!=t.blotName&&o instanceof t?[o,i]:o instanceof e?o.descendant(t,i):[null,-1]},e.prototype.descendants=function(t,n,r){void 0===n&&(n=0),void 0===r&&(r=Number.MAX_VALUE);var o=[],i=r;return this.children.forEachAt(n,r,function(n,r,l){(null==t.blotName&&t(n)||null!=t.blotName&&n instanceof t)&&o.push(n),n instanceof e&&(o=o.concat(n.descendants(t,r,i))),i-=l}),o},e.prototype.detach=function(){this.children.forEach(function(t){t.detach()}),t.prototype.detach.call(this)},e.prototype.formatAt=function(t,e,n,r){this.children.forEachAt(t,e,function(t,e,o){t.formatAt(e,o,n,r)})},e.prototype.insertAt=function(t,e,n){var r=this.children.find(t),o=r[0],i=r[1];if(o)o.insertAt(i,e,n);else{var l=null==n?a.create("text",e):a.create(e,n);this.appendChild(l)}},e.prototype.insertBefore=function(t,e){if(null!=this.statics.allowedChildren&&!this.statics.allowedChildren.some(function(e){return t instanceof e}))throw new a.ParchmentError("Cannot insert "+t.statics.blotName+" into "+this.statics.blotName);t.insertInto(this,e)},e.prototype.length=function(){return this.children.reduce(function(t,e){return t+e.length()},0)},e.prototype.moveChildren=function(t,e){this.children.forEach(function(n){t.insertBefore(n,e)})},e.prototype.optimize=function(e){if(t.prototype.optimize.call(this,e),0===this.children.length)if(null!=this.statics.defaultChild){var n=a.create(this.statics.defaultChild);this.appendChild(n),n.optimize(e)}else this.remove()},e.prototype.path=function(t,n){void 0===n&&(n=!1);var r=this.children.find(t,n),o=r[0],i=r[1],l=[[this,t]];return o instanceof e?l.concat(o.path(i,n)):(null!=o&&l.push([o,i]),l)},e.prototype.removeChild=function(t){this.children.remove(t)},e.prototype.replace=function(n){n instanceof e&&n.moveChildren(this),t.prototype.replace.call(this,n)},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=this.clone();return this.parent.insertBefore(n,this.next),this.children.forEachAt(t,this.length(),function(t,r,o){t=t.split(r,e),n.appendChild(t)}),n},e.prototype.unwrap=function(){this.moveChildren(this.parent,this.next),this.remove()},e.prototype.update=function(t,e){var n=this,o=[],i=[];t.forEach(function(t){t.target===n.domNode&&"childList"===t.type&&(o.push.apply(o,t.addedNodes),i.push.apply(i,t.removedNodes))}),i.forEach(function(t){if(!(null!=t.parentNode&&"IFRAME"!==t.tagName&&document.body.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)){var e=a.find(t);null!=e&&(null!=e.domNode.parentNode&&e.domNode.parentNode!==n.domNode||e.detach())}}),o.filter(function(t){return t.parentNode==n.domNode}).sort(function(t,e){return t===e?0:t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1}).forEach(function(t){var e=null;null!=t.nextSibling&&(e=a.find(t.nextSibling));var o=r(t);o.next==e&&null!=o.next||(null!=o.parent&&o.parent.removeChild(n),n.insertBefore(o,e||void 0))})},e}(l.default);e.default=s},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(11),i=n(28),l=n(17),a=n(1),s=function(t){function e(e){var n=t.call(this,e)||this;return n.attributes=new i.default(n.domNode),n}return r(e,t),e.formats=function(t){return"string"==typeof this.tagName||(Array.isArray(this.tagName)?t.tagName.toLowerCase():void 0)},e.prototype.format=function(t,e){var n=a.query(t);n instanceof o.default?this.attributes.attribute(n,e):e&&(null==n||t===this.statics.blotName&&this.formats()[t]===e||this.replaceWith(t,e))},e.prototype.formats=function(){var t=this.attributes.values(),e=this.statics.formats(this.domNode);return null!=e&&(t[this.statics.blotName]=e),t},e.prototype.replaceWith=function(e,n){var r=t.prototype.replaceWith.call(this,e,n);return this.attributes.copy(r),r},e.prototype.update=function(e,n){var r=this;t.prototype.update.call(this,e,n),e.some(function(t){return t.target===r.domNode&&"attributes"===t.type})&&this.attributes.build()},e.prototype.wrap=function(n,r){var o=t.prototype.wrap.call(this,n,r);return o instanceof e&&o.statics.scope===this.statics.scope&&this.attributes.move(o),o},e}(l.default);e.default=s},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(27),i=n(1),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.value=function(t){return!0},e.prototype.index=function(t,e){return this.domNode===t||this.domNode.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(e,1):-1},e.prototype.position=function(t,e){var n=[].indexOf.call(this.parent.domNode.childNodes,this.domNode);return t>0&&(n+=1),[this.parent.domNode,n]},e.prototype.value=function(){var t;return t={},t[this.statics.blotName]=this.statics.value(this.domNode)||!0,t},e.scope=i.Scope.INLINE_BLOT,e}(o.default);e.default=l},function(t,e,n){function r(t){this.ops=t,this.index=0,this.offset=0}var o=n(12),i=n(2),l={attributes:{compose:function(t,e,n){"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var r=i(!0,{},e);n||(r=Object.keys(r).reduce(function(t,e){return null!=r[e]&&(t[e]=r[e]),t},{}));for(var o in t)void 0!==t[o]&&void 0===e[o]&&(r[o]=t[o]);return Object.keys(r).length>0?r:void 0},diff:function(t,e){"object"!=typeof t&&(t={}),"object"!=typeof e&&(e={});var n=Object.keys(t).concat(Object.keys(e)).reduce(function(n,r){return o(t[r],e[r])||(n[r]=void 0===e[r]?null:e[r]),n},{});return Object.keys(n).length>0?n:void 0},transform:function(t,e,n){if("object"!=typeof t)return e;if("object"==typeof e){if(!n)return e;var r=Object.keys(e).reduce(function(n,r){return void 0===t[r]&&(n[r]=e[r]),n},{});return Object.keys(r).length>0?r:void 0}}},iterator:function(t){return new r(t)},length:function(t){return"number"==typeof t.delete?t.delete:"number"==typeof t.retain?t.retain:"string"==typeof t.insert?t.insert.length:1}};r.prototype.hasNext=function(){return this.peekLength()<1/0},r.prototype.next=function(t){t||(t=1/0);var e=this.ops[this.index];if(e){var n=this.offset,r=l.length(e);if(t>=r-n?(t=r-n,this.index+=1,this.offset=0):this.offset+=t,"number"==typeof e.delete)return{delete:t};var o={};return e.attributes&&(o.attributes=e.attributes),"number"==typeof e.retain?o.retain=t:"string"==typeof e.insert?o.insert=e.insert.substr(n,t):o.insert=e.insert,o}return{retain:1/0}},r.prototype.peek=function(){return this.ops[this.index]},r.prototype.peekLength=function(){return this.ops[this.index]?l.length(this.ops[this.index])-this.offset:1/0},r.prototype.peekType=function(){return this.ops[this.index]?"number"==typeof this.ops[this.index].delete?"delete":"number"==typeof this.ops[this.index].retain?"retain":"insert":"retain"},r.prototype.rest=function(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(this.index);var t=this.offset,e=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=t,this.index=e,[n].concat(r)}return[]},t.exports=l},function(t,e){var n=function(){"use strict";function t(t,e){return null!=e&&t instanceof e}function e(n,r,o,i,c){function f(n,o){if(null===n)return null;if(0===o)return n;var y,v;if("object"!=typeof n)return n;if(t(n,a))y=new a;else if(t(n,s))y=new s;else if(t(n,u))y=new u(function(t,e){n.then(function(e){t(f(e,o-1))},function(t){e(f(t,o-1))})});else if(e.__isArray(n))y=[];else if(e.__isRegExp(n))y=new RegExp(n.source,l(n)),n.lastIndex&&(y.lastIndex=n.lastIndex);else if(e.__isDate(n))y=new Date(n.getTime());else{if(d&&Buffer.isBuffer(n))return y=Buffer.allocUnsafe?Buffer.allocUnsafe(n.length):new Buffer(n.length),n.copy(y),y;t(n,Error)?y=Object.create(n):void 0===i?(v=Object.getPrototypeOf(n),y=Object.create(v)):(y=Object.create(i),v=i)}if(r){var b=h.indexOf(n);if(-1!=b)return p[b];h.push(n),p.push(y)}t(n,a)&&n.forEach(function(t,e){var n=f(e,o-1),r=f(t,o-1);y.set(n,r)}),t(n,s)&&n.forEach(function(t){var e=f(t,o-1);y.add(e)});for(var g in n){var m;v&&(m=Object.getOwnPropertyDescriptor(v,g)),m&&null==m.set||(y[g]=f(n[g],o-1))}if(Object.getOwnPropertySymbols)for(var _=Object.getOwnPropertySymbols(n),g=0;g<_.length;g++){var O=_[g],w=Object.getOwnPropertyDescriptor(n,O);(!w||w.enumerable||c)&&(y[O]=f(n[O],o-1),w.enumerable||Object.defineProperty(y,O,{enumerable:!1}))}if(c)for(var x=Object.getOwnPropertyNames(n),g=0;g1&&void 0!==arguments[1]?arguments[1]:0;i(this,t),this.index=e,this.length=n},O=function(){function t(e,n){var r=this;i(this,t),this.emitter=n,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=c.default.create("cursor",this),this.lastRange=this.savedRange=new _(0,0),this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,function(){r.mouseDown||setTimeout(r.update.bind(r,v.default.sources.USER),1)}),this.emitter.on(v.default.events.EDITOR_CHANGE,function(t,e){t===v.default.events.TEXT_CHANGE&&e.length()>0&&r.update(v.default.sources.SILENT)}),this.emitter.on(v.default.events.SCROLL_BEFORE_UPDATE,function(){if(r.hasFocus()){var t=r.getNativeRange();null!=t&&t.start.node!==r.cursor.textNode&&r.emitter.once(v.default.events.SCROLL_UPDATE,function(){try{r.setNativeRange(t.start.node,t.start.offset,t.end.node,t.end.offset)}catch(t){}})}}),this.emitter.on(v.default.events.SCROLL_OPTIMIZE,function(t,e){if(e.range){var n=e.range,o=n.startNode,i=n.startOffset,l=n.endNode,a=n.endOffset;r.setNativeRange(o,i,l,a)}}),this.update(v.default.sources.SILENT)}return s(t,[{key:"handleComposition",value:function(){var t=this;this.root.addEventListener("compositionstart",function(){t.composing=!0}),this.root.addEventListener("compositionend",function(){if(t.composing=!1,t.cursor.parent){var e=t.cursor.restore();if(!e)return;setTimeout(function(){t.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)},1)}})}},{key:"handleDragging",value:function(){var t=this;this.emitter.listenDOM("mousedown",document.body,function(){t.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,function(){t.mouseDown=!1,t.update(v.default.sources.USER)})}},{key:"focus",value:function(){this.hasFocus()||(this.root.focus(),this.setRange(this.savedRange))}},{key:"format",value:function(t,e){if(null==this.scroll.whitelist||this.scroll.whitelist[t]){this.scroll.update();var n=this.getNativeRange();if(null!=n&&n.native.collapsed&&!c.default.query(t,c.default.Scope.BLOCK)){if(n.start.node!==this.cursor.textNode){var r=c.default.find(n.start.node,!1);if(null==r)return;if(r instanceof c.default.Leaf){var o=r.split(n.start.offset);r.parent.insertBefore(this.cursor,o)}else r.insertBefore(this.cursor,n.start.node);this.cursor.attach()}this.cursor.format(t,e),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.scroll.length();t=Math.min(t,n-1),e=Math.min(t+e,n-1)-t;var r=void 0,o=this.scroll.leaf(t),i=a(o,2),l=i[0],s=i[1];if(null==l)return null;var u=l.position(s,!0),c=a(u,2);r=c[0],s=c[1];var f=document.createRange();if(e>0){f.setStart(r,s);var h=this.scroll.leaf(t+e),p=a(h,2);if(l=p[0],s=p[1],null==l)return null;var d=l.position(s,!0),y=a(d,2);return r=y[0],s=y[1],f.setEnd(r,s),f.getBoundingClientRect()}var v="left",b=void 0;return r instanceof Text?(s0&&(v="right")),{bottom:b.top+b.height,height:b.height,left:b[v],right:b[v],top:b.top,width:0}}},{key:"getNativeRange",value:function(){var t=document.getSelection();if(null==t||t.rangeCount<=0)return null;var e=t.getRangeAt(0);if(null==e)return null;var n=this.normalizeNative(e);return m.info("getNativeRange",n),n}},{key:"getRange",value:function(){var t=this.getNativeRange();return null==t?[null,null]:[this.normalizedToRange(t),t]}},{key:"hasFocus",value:function(){return document.activeElement===this.root}},{key:"normalizedToRange",value:function(t){var e=this,n=[[t.start.node,t.start.offset]];t.native.collapsed||n.push([t.end.node,t.end.offset]);var r=n.map(function(t){var n=a(t,2),r=n[0],o=n[1],i=c.default.find(r,!0),l=i.offset(e.scroll);return 0===o?l:i instanceof c.default.Container?l+i.length():l+i.index(r,o)}),i=Math.min(Math.max.apply(Math,o(r)),this.scroll.length()-1),l=Math.min.apply(Math,[i].concat(o(r)));return new _(l,i-l)}},{key:"normalizeNative",value:function(t){if(!l(this.root,t.startContainer)||!t.collapsed&&!l(this.root,t.endContainer))return null;var e={start:{node:t.startContainer,offset:t.startOffset},end:{node:t.endContainer,offset:t.endOffset},native:t};return[e.start,e.end].forEach(function(t){for(var e=t.node,n=t.offset;!(e instanceof Text)&&e.childNodes.length>0;)if(e.childNodes.length>n)e=e.childNodes[n],n=0;else{if(e.childNodes.length!==n)break;e=e.lastChild,n=e instanceof Text?e.data.length:e.childNodes.length+1}t.node=e,t.offset=n}),e}},{key:"rangeToNative",value:function(t){var e=this,n=t.collapsed?[t.index]:[t.index,t.index+t.length],r=[],o=this.scroll.length();return n.forEach(function(t,n){t=Math.min(o-1,t);var i=void 0,l=e.scroll.leaf(t),s=a(l,2),u=s[0],c=s[1],f=u.position(c,0!==n),h=a(f,2);i=h[0],c=h[1],r.push(i,c)}),r.length<2&&(r=r.concat(r)),r}},{key:"scrollIntoView",value:function(t){var e=this.lastRange;if(null!=e){var n=this.getBounds(e.index,e.length);if(null!=n){var r=this.scroll.length()-1,o=this.scroll.line(Math.min(e.index,r)),i=a(o,1),l=i[0],s=l;if(e.length>0){var u=this.scroll.line(Math.min(e.index+e.length,r));s=a(u,1)[0]}if(null!=l&&null!=s){var c=t.getBoundingClientRect();n.topc.bottom&&(t.scrollTop+=n.bottom-c.bottom)}}}}},{key:"setNativeRange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e,o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(m.info("setNativeRange",t,e,n,r),null==t||null!=this.root.parentNode&&null!=t.parentNode&&null!=n.parentNode){var i=document.getSelection();if(null!=i)if(null!=t){this.hasFocus()||this.root.focus();var l=(this.getNativeRange()||{}).native;if(null==l||o||t!==l.startContainer||e!==l.startOffset||n!==l.endContainer||r!==l.endOffset){"BR"==t.tagName&&(e=[].indexOf.call(t.parentNode.childNodes,t),t=t.parentNode),"BR"==n.tagName&&(r=[].indexOf.call(n.parentNode.childNodes,n),n=n.parentNode);var a=document.createRange();a.setStart(t,e),a.setEnd(n,r),i.removeAllRanges(),i.addRange(a)}}else i.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v.default.sources.API;if("string"==typeof e&&(n=e,e=!1),m.info("setRange",t),null!=t){var r=this.rangeToNative(t);this.setNativeRange.apply(this,o(r).concat([e]))}else this.setNativeRange(null);this.update(n)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v.default.sources.USER,e=this.lastRange,n=this.getRange(),r=a(n,2),o=r[0],i=r[1];if(this.lastRange=o,null!=this.lastRange&&(this.savedRange=this.lastRange),!(0,d.default)(e,this.lastRange)){var l;!this.composing&&null!=i&&i.native.collapsed&&i.start.node!==this.cursor.textNode&&this.cursor.restore();var s=[v.default.events.SELECTION_CHANGE,(0,h.default)(this.lastRange),(0,h.default)(e),t];if((l=this.emitter).emit.apply(l,[v.default.events.EDITOR_CHANGE].concat(s)),t!==v.default.sources.SILENT){var u;(u=this.emitter).emit.apply(u,s)}}}}]),t}();e.Range=_,e.default=O},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=n(0),s=r(a),u=n(3),c=r(u),f=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(s.default.Container);f.allowedChildren=[c.default,u.BlockEmbed,f],e.default=f},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.ColorStyle=e.ColorClass=e.ColorAttributor=void 0;var l=function(){function t(t,e){for(var n=0;n1){var u=o.formats(),c=this.quill.getFormat(t.index-1,1);i=A.default.attributes.diff(u,c)||{}}}var f=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(e.prefix)?2:1;this.quill.deleteText(t.index-f,f,S.default.sources.USER),Object.keys(i).length>0&&this.quill.formatLine(t.index-f,f,i,S.default.sources.USER),this.quill.focus()}}function c(t,e){var n=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(e.suffix)?2:1;if(!(t.index>=this.quill.getLength()-n)){var r={},o=0,i=this.quill.getLine(t.index),l=b(i,1),a=l[0];if(e.offset>=a.length()-1){var s=this.quill.getLine(t.index+1),u=b(s,1),c=u[0];if(c){var f=a.formats(),h=this.quill.getFormat(t.index,1);r=A.default.attributes.diff(f,h)||{},o=c.length()}}this.quill.deleteText(t.index,n,S.default.sources.USER),Object.keys(r).length>0&&this.quill.formatLine(t.index+o-1,n,r,S.default.sources.USER)}}function f(t){var e=this.quill.getLines(t),n={};if(e.length>1){var r=e[0].formats(),o=e[e.length-1].formats();n=A.default.attributes.diff(o,r)||{}}this.quill.deleteText(t,S.default.sources.USER),Object.keys(n).length>0&&this.quill.formatLine(t.index,1,n,S.default.sources.USER),this.quill.setSelection(t.index,S.default.sources.SILENT),this.quill.focus()}function h(t,e){var n=this;t.length>0&&this.quill.scroll.deleteAt(t.index,t.length);var r=Object.keys(e.format).reduce(function(t,n){return T.default.query(n,T.default.Scope.BLOCK)&&!Array.isArray(e.format[n])&&(t[n]=e.format[n]),t},{});this.quill.insertText(t.index,"\n",r,S.default.sources.USER),this.quill.setSelection(t.index+1,S.default.sources.SILENT),this.quill.focus(),Object.keys(e.format).forEach(function(t){null==r[t]&&(Array.isArray(e.format[t])||"link"!==t&&n.quill.format(t,e.format[t],S.default.sources.USER))})}function p(t){return{key:D.keys.TAB,shiftKey:!t,format:{"code-block":!0},handler:function(e){var n=T.default.query("code-block"),r=e.index,o=e.length,i=this.quill.scroll.descendant(n,r),l=b(i,2),a=l[0],s=l[1];if(null!=a){var u=this.quill.getIndex(a),c=a.newlineIndex(s,!0)+1,f=a.newlineIndex(u+s+o),h=a.domNode.textContent.slice(c,f).split("\n");s=0,h.forEach(function(e,i){t?(a.insertAt(c+s,n.TAB),s+=n.TAB.length,0===i?r+=n.TAB.length:o+=n.TAB.length):e.startsWith(n.TAB)&&(a.deleteAt(c+s,n.TAB.length),s-=n.TAB.length,0===i?r-=n.TAB.length:o-=n.TAB.length),s+=e.length+1}),this.quill.update(S.default.sources.USER),this.quill.setSelection(r,o,S.default.sources.SILENT)}}}}function d(t){return{key:t[0].toUpperCase(),shortKey:!0,handler:function(e,n){this.quill.format(t,!n.format[t],S.default.sources.USER)}}}function y(t){if("string"==typeof t||"number"==typeof t)return y({key:t});if("object"===(void 0===t?"undefined":v(t))&&(t=(0,_.default)(t,!1)),"string"==typeof t.key)if(null!=D.keys[t.key.toUpperCase()])t.key=D.keys[t.key.toUpperCase()];else{if(1!==t.key.length)return null;t.key=t.key.toUpperCase().charCodeAt(0)}return t.shortKey&&(t[B]=t.shortKey,delete t.shortKey),t}Object.defineProperty(e,"__esModule",{value:!0}),e.SHORTKEY=e.default=void 0;var v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),g=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=y(t);if(null==r||null==r.key)return I.warn("Attempted to add invalid keyboard binding",r);"function"==typeof e&&(e={handler:e}),"function"==typeof n&&(n={handler:n}),r=(0,k.default)(r,e,n),this.bindings[r.key]=this.bindings[r.key]||[],this.bindings[r.key].push(r)}},{key:"listen",value:function(){var t=this;this.quill.root.addEventListener("keydown",function(n){if(!n.defaultPrevented){var r=n.which||n.keyCode,o=(t.bindings[r]||[]).filter(function(t){return e.match(n,t)});if(0!==o.length){var i=t.quill.getSelection();if(null!=i&&t.quill.hasFocus()){var l=t.quill.getLine(i.index),a=b(l,2),s=a[0],u=a[1],c=t.quill.getLeaf(i.index),f=b(c,2),h=f[0],p=f[1],d=0===i.length?[h,p]:t.quill.getLeaf(i.index+i.length),y=b(d,2),g=y[0],m=y[1],_=h instanceof T.default.Text?h.value().slice(0,p):"",O=g instanceof T.default.Text?g.value().slice(m):"",x={collapsed:0===i.length,empty:0===i.length&&s.length()<=1,format:t.quill.getFormat(i),offset:u,prefix:_,suffix:O};o.some(function(e){if(null!=e.collapsed&&e.collapsed!==x.collapsed)return!1;if(null!=e.empty&&e.empty!==x.empty)return!1;if(null!=e.offset&&e.offset!==x.offset)return!1;if(Array.isArray(e.format)){if(e.format.every(function(t){return null==x.format[t]}))return!1}else if("object"===v(e.format)&&!Object.keys(e.format).every(function(t){return!0===e.format[t]?null!=x.format[t]:!1===e.format[t]?null==x.format[t]:(0,w.default)(e.format[t],x.format[t])}))return!1;return!(null!=e.prefix&&!e.prefix.test(x.prefix))&&(!(null!=e.suffix&&!e.suffix.test(x.suffix))&&!0!==e.handler.call(t,i,x))})&&n.preventDefault()}}}})}}]),e}(R.default);D.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},D.DEFAULTS={bindings:{bold:d("bold"),italic:d("italic"),underline:d("underline"),indent:{key:D.keys.TAB,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","+1",S.default.sources.USER)}},outdent:{key:D.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","-1",S.default.sources.USER)}},"outdent backspace":{key:D.keys.BACKSPACE,collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler:function(t,e){null!=e.format.indent?this.quill.format("indent","-1",S.default.sources.USER):null!=e.format.list&&this.quill.format("list",!1,S.default.sources.USER)}},"indent code-block":p(!0),"outdent code-block":p(!1),"remove tab":{key:D.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(t){this.quill.deleteText(t.index-1,1,S.default.sources.USER)}},tab:{key:D.keys.TAB,handler:function(t){this.quill.history.cutoff();var e=(new N.default).retain(t.index).delete(t.length).insert("\t");this.quill.updateContents(e,S.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index+1,S.default.sources.SILENT)}},"list empty enter":{key:D.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(t,e){this.quill.format("list",!1,S.default.sources.USER),e.format.indent&&this.quill.format("indent",!1,S.default.sources.USER)}},"checklist enter":{key:D.keys.ENTER,collapsed:!0,format:{list:"checked"},handler:function(t){var e=this.quill.getLine(t.index),n=b(e,2),r=n[0],o=n[1],i=(0,k.default)({},r.formats(),{list:"checked"}),l=(new N.default).retain(t.index).insert("\n",i).retain(r.length()-o-1).retain(1,{list:"unchecked"});this.quill.updateContents(l,S.default.sources.USER),this.quill.setSelection(t.index+1,S.default.sources.SILENT),this.quill.scrollIntoView()}},"header enter":{key:D.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(t,e){var n=this.quill.getLine(t.index),r=b(n,2),o=r[0],i=r[1],l=(new N.default).retain(t.index).insert("\n",e.format).retain(o.length()-i-1).retain(1,{header:null});this.quill.updateContents(l,S.default.sources.USER),this.quill.setSelection(t.index+1,S.default.sources.SILENT),this.quill.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler:function(t,e){var n=e.prefix.length,r=this.quill.getLine(t.index),o=b(r,2),i=o[0],l=o[1];if(l>n)return!0;var a=void 0;switch(e.prefix.trim()){case"[]":case"[ ]":a="unchecked";break;case"[x]":a="checked";break;case"-":case"*":a="bullet";break;default:a="ordered"}this.quill.insertText(t.index," ",S.default.sources.USER),this.quill.history.cutoff();var s=(new N.default).retain(t.index-l).delete(n+1).retain(i.length()-2-l).retain(1,{list:a});this.quill.updateContents(s,S.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index-n,S.default.sources.SILENT)}},"code exit":{key:D.keys.ENTER,collapsed:!0,format:["code-block"],prefix:/\n\n$/,suffix:/^\s+$/,handler:function(t){var e=this.quill.getLine(t.index),n=b(e,2),r=n[0],o=n[1],i=(new N.default).retain(t.index+r.length()-o-2).retain(1,{"code-block":null}).delete(1);this.quill.updateContents(i,S.default.sources.USER)}},"embed left":s(D.keys.LEFT,!1),"embed left shift":s(D.keys.LEFT,!0),"embed right":s(D.keys.RIGHT,!1),"embed right shift":s(D.keys.RIGHT,!0)}},e.default=D,e.SHORTKEY=B},function(t,e,n){"use strict";t.exports={align:{"":n(75),center:n(76),right:n(77),justify:n(78)},background:n(79),blockquote:n(80),bold:n(81),clean:n(82),code:n(40),"code-block":n(40),color:n(83),direction:{"":n(84),rtl:n(85)},float:{center:n(86),full:n(87),left:n(88),right:n(89)},formula:n(90),header:{1:n(91),2:n(92)},italic:n(93),image:n(94),indent:{"+1":n(95),"-1":n(96)},link:n(97),list:{ordered:n(98),bullet:n(99),check:n(100)},script:{sub:n(101),super:n(102)},strike:n(103),underline:n(104),video:n(105)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=function(){function t(t){this.domNode=t,this.domNode[r.DATA_KEY]={blot:this}}return Object.defineProperty(t.prototype,"statics",{get:function(){return this.constructor},enumerable:!0,configurable:!0}),t.create=function(t){if(null==this.tagName)throw new r.ParchmentError("Blot definition missing tagName");var e;return Array.isArray(this.tagName)?("string"==typeof t&&(t=t.toUpperCase(),parseInt(t).toString()===t&&(t=parseInt(t))),e="number"==typeof t?document.createElement(this.tagName[t-1]):this.tagName.indexOf(t)>-1?document.createElement(t):document.createElement(this.tagName[0])):e=document.createElement(this.tagName),this.className&&e.classList.add(this.className),e},t.prototype.attach=function(){null!=this.parent&&(this.scroll=this.parent.scroll)},t.prototype.clone=function(){var t=this.domNode.cloneNode(!1);return r.create(t)},t.prototype.detach=function(){null!=this.parent&&this.parent.removeChild(this),delete this.domNode[r.DATA_KEY]},t.prototype.deleteAt=function(t,e){this.isolate(t,e).remove()},t.prototype.formatAt=function(t,e,n,o){var i=this.isolate(t,e);if(null!=r.query(n,r.Scope.BLOT)&&o)i.wrap(n,o);else if(null!=r.query(n,r.Scope.ATTRIBUTE)){var l=r.create(this.statics.scope);i.wrap(l),l.format(n,o)}},t.prototype.insertAt=function(t,e,n){var o=null==n?r.create("text",e):r.create(e,n),i=this.split(t);this.parent.insertBefore(o,i)},t.prototype.insertInto=function(t,e){void 0===e&&(e=null),null!=this.parent&&this.parent.children.remove(this);var n=null;t.children.insertBefore(this,e),null!=e&&(n=e.domNode),this.domNode.parentNode==t.domNode&&this.domNode.nextSibling==n||t.domNode.insertBefore(this.domNode,n),this.parent=t,this.attach()},t.prototype.isolate=function(t,e){var n=this.split(t);return n.split(e),n},t.prototype.length=function(){return 1},t.prototype.offset=function(t){return void 0===t&&(t=this.parent),null==this.parent||this==t?0:this.parent.children.offset(this)+this.parent.offset(t)},t.prototype.optimize=function(t){null!=this.domNode[r.DATA_KEY]&&delete this.domNode[r.DATA_KEY].mutations},t.prototype.remove=function(){null!=this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.detach()},t.prototype.replace=function(t){null!=t.parent&&(t.parent.insertBefore(this,t.next),t.remove())},t.prototype.replaceWith=function(t,e){var n="string"==typeof t?r.create(t,e):t;return n.replace(this),n},t.prototype.split=function(t,e){return 0===t?this:this.next},t.prototype.update=function(t,e){},t.prototype.wrap=function(t,e){var n="string"==typeof t?r.create(t,e):t;return null!=this.parent&&this.parent.insertBefore(n,this.next),n.appendChild(this),n},t.blotName="abstract",t}();e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(11),o=n(29),i=n(30),l=n(1),a=function(){function t(t){this.attributes={},this.domNode=t,this.build()}return t.prototype.attribute=function(t,e){e?t.add(this.domNode,e)&&(null!=t.value(this.domNode)?this.attributes[t.attrName]=t:delete this.attributes[t.attrName]):(t.remove(this.domNode),delete this.attributes[t.attrName])},t.prototype.build=function(){var t=this;this.attributes={};var e=r.default.keys(this.domNode),n=o.default.keys(this.domNode),a=i.default.keys(this.domNode);e.concat(n).concat(a).forEach(function(e){var n=l.query(e,l.Scope.ATTRIBUTE);n instanceof r.default&&(t.attributes[n.attrName]=n)})},t.prototype.copy=function(t){var e=this;Object.keys(this.attributes).forEach(function(n){var r=e.attributes[n].value(e.domNode);t.format(n,r)})},t.prototype.move=function(t){var e=this;this.copy(t),Object.keys(this.attributes).forEach(function(t){e.attributes[t].remove(e.domNode)}),this.attributes={}},t.prototype.values=function(){var t=this;return Object.keys(this.attributes).reduce(function(e,n){return e[n]=t.attributes[n].value(t.domNode),e},{})},t}();e.default=a},function(t,e,n){"use strict";function r(t,e){return(t.getAttribute("class")||"").split(/\s+/).filter(function(t){return 0===t.indexOf(e+"-")})}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(11),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("class")||"").split(/\s+/).map(function(t){return t.split("-").slice(0,-1).join("-")})},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(this.remove(t),t.classList.add(this.keyName+"-"+e),!0)},e.prototype.remove=function(t){r(t,this.keyName).forEach(function(e){t.classList.remove(e)}),0===t.classList.length&&t.removeAttribute("class")},e.prototype.value=function(t){var e=r(t,this.keyName)[0]||"",n=e.slice(this.keyName.length+1);return this.canAdd(t,n)?n:""},e}(i.default);e.default=l},function(t,e,n){"use strict";function r(t){var e=t.split("-"),n=e.slice(1).map(function(t){return t[0].toUpperCase()+t.slice(1)}).join("");return e[0]+n}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(11),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.keys=function(t){return(t.getAttribute("style")||"").split(";").map(function(t){return t.split(":")[0].trim()})},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.style[r(this.keyName)]=e,!0)},e.prototype.remove=function(t){t.style[r(this.keyName)]="",t.getAttribute("style")||t.removeAttribute("style")},e.prototype.value=function(t){var e=t.style[r(this.keyName)];return this.canAdd(t,e)?e:""},e}(i.default);e.default=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var l=o.get;if(void 0!==l)return l.call(r)},u=function(){function t(t,e){for(var n=0;n '},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;nr.right&&(i=r.right-o.right,this.root.style.left=e+i+"px"),o.leftr.bottom){var l=o.bottom-o.top,a=t.bottom-t.top+l;this.root.style.top=n-a+"px",this.root.classList.add("ql-flip")}return i}},{key:"show",value:function(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}}]),t}();e.default=i},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){var e=t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return e?(e[1]||"https")+"://www.youtube.com/embed/"+e[2]+"?showinfo=0":(e=t.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?(e[1]||"https")+"://player.vimeo.com/video/"+e[2]+"/":t}function s(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e.forEach(function(e){var r=document.createElement("option");e===n?r.setAttribute("selected","selected"):r.setAttribute("value",e),t.appendChild(r)})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BaseTooltip=void 0;var u=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:"link",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),null!=e?this.textbox.value=e:t!==this.root.getAttribute("data-mode")&&(this.textbox.value=""),this.position(this.quill.getBounds(this.quill.selection.savedRange)),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute("data-"+t)||""),this.root.setAttribute("data-mode",t)}},{key:"restoreFocus",value:function(){var t=this.quill.scrollingContainer.scrollTop;this.quill.focus(),this.quill.scrollingContainer.scrollTop=t}},{key:"save",value:function(){var t=this.textbox.value;switch(this.root.getAttribute("data-mode")){case"link":var e=this.quill.root.scrollTop;this.linkRange?(this.quill.formatText(this.linkRange,"link",t,v.default.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",t,v.default.sources.USER)),this.quill.root.scrollTop=e;break;case"video":t=a(t);case"formula":if(!t)break;var n=this.quill.getSelection(!0);if(null!=n){var r=n.index+n.length;this.quill.insertEmbed(r,this.root.getAttribute("data-mode"),t,v.default.sources.USER),"formula"===this.root.getAttribute("data-mode")&&this.quill.insertText(r+1," ",v.default.sources.USER),this.quill.setSelection(r+2,v.default.sources.USER)}}this.textbox.value="",this.hide()}}]),e}(A.default);e.BaseTooltip=M,e.default=L},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(46),i=r(o),l=n(34),a=n(36),s=n(62),u=n(63),c=r(u),f=n(64),h=r(f),p=n(65),d=r(p),y=n(35),v=n(24),b=n(37),g=n(38),m=n(39),_=r(m),O=n(66),w=r(O),x=n(15),k=r(x),E=n(67),N=r(E),j=n(68),A=r(j),q=n(69),T=r(q),P=n(70),S=r(P),C=n(71),L=r(C),M=n(13),R=r(M),I=n(72),B=r(I),D=n(73),U=r(D),F=n(74),H=r(F),K=n(26),z=r(K),V=n(16),Z=r(V),W=n(41),G=r(W),Y=n(42),X=r(Y),$=n(43),Q=r($),J=n(107),tt=r(J),et=n(108),nt=r(et);i.default.Registro({"attributors/attribute/direction":a.DirectionAttribute,"attributors/class/align":l.AlignClass,"attributors/class/background":y.BackgroundClass,"attributors/class/color":v.ColorClass,"attributors/class/direction":a.DirectionClass,"attributors/class/font":b.FontClass,"attributors/class/size":g.SizeClass,"attributors/style/align":l.AlignStyle,"attributors/style/background":y.BackgroundStyle,"attributors/style/color":v.ColorStyle,"attributors/style/direction":a.DirectionStyle,"attributors/style/font":b.FontStyle,"attributors/style/size":g.SizeStyle},!0),i.default.Registro({"formats/align":l.AlignClass,"formats/direction":a.DirectionClass,"formats/indent":s.IndentClass,"formats/background":y.BackgroundStyle,"formats/color":v.ColorStyle,"formats/font":b.FontClass,"formats/size":g.SizeClass,"formats/blockquote":c.default,"formats/code-block":R.default,"formats/header":h.default,"formats/list":d.default,"formats/bold":_.default,"formats/code":M.Code,"formats/italic":w.default,"formats/link":k.default,"formats/script":N.default,"formats/strike":A.default,"formats/underline":T.default,"formats/image":S.default,"formats/video":L.default,"formats/list/item":p.ListItem,"modules/formula":B.default,"modules/syntax":U.default,"modules/toolbar":H.default,"themes/bubble":tt.default,"themes/snow":nt.default,"ui/icons":z.default,"ui/picker":Z.default,"ui/icon-picker":X.default,"ui/color-picker":G.default,"ui/tooltip":Q.default},!0),e.default=i.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),i=r(o),l=n(6),a=r(l),s=n(3),u=r(s),c=n(14),f=r(c),h=n(23),p=r(h),d=n(31),y=r(d),v=n(33),b=r(v),g=n(5),m=r(g),_=n(59),O=r(_),w=n(8),x=r(w),k=n(60),E=r(k),N=n(61),j=r(N),A=n(25),q=r(A);a.default.Registro({"blots/block":u.default,"blots/block/embed":s.BlockEmbed,"blots/break":f.default,"blots/container":p.default,"blots/cursor":y.default,"blots/embed":b.default,"blots/inline":m.default,"blots/scroll":O.default,"blots/text":x.default,"modules/clipboard":E.default,"modules/history":j.default,"modules/keyboard":q.default}),i.default.Registro(u.default,f.default,y.default,m.default,O.default,x.default),e.default=a.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(){this.head=this.tail=null,this.length=0}return t.prototype.append=function(){for(var t=[],e=0;e1&&this.append.apply(this,t.slice(1))},t.prototype.contains=function(t){for(var e,n=this.iterator();e=n();)if(e===t)return!0;return!1},t.prototype.insertBefore=function(t,e){t&&(t.next=e,null!=e?(t.prev=e.prev,null!=e.prev&&(e.prev.next=t),e.prev=t,e===this.head&&(this.head=t)):null!=this.tail?(this.tail.next=t,t.prev=this.tail,this.tail=t):(t.prev=null,this.head=this.tail=t),this.length+=1)},t.prototype.offset=function(t){for(var e=0,n=this.head;null!=n;){if(n===t)return e;e+=n.length(),n=n.next}return-1},t.prototype.remove=function(t){this.contains(t)&&(null!=t.prev&&(t.prev.next=t.next),null!=t.next&&(t.next.prev=t.prev),t===this.head&&(this.head=t.next),t===this.tail&&(this.tail=t.prev),this.length-=1)},t.prototype.iterator=function(t){return void 0===t&&(t=this.head),function(){var e=t;return null!=t&&(t=t.next),e}},t.prototype.find=function(t,e){void 0===e&&(e=!1);for(var n,r=this.iterator();n=r();){var o=n.length();if(ta?n(r,t-a,Math.min(e,a+u-t)):n(r,0,Math.min(u,t+e-a)),a+=u}},t.prototype.map=function(t){return this.reduce(function(e,n){return e.push(t(n)),e},[])},t.prototype.reduce=function(t,e){for(var n,r=this.iterator();n=r();)e=t(e,n);return e},t}();e.default=r},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(17),i=n(1),l={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},a=function(t){function e(e){var n=t.call(this,e)||this;return n.scroll=n,n.observer=new MutationObserver(function(t){n.update(t)}),n.observer.observe(n.domNode,l),n.attach(),n}return r(e,t),e.prototype.detach=function(){t.prototype.detach.call(this),this.observer.disconnect()},e.prototype.deleteAt=function(e,n){this.update(),0===e&&n===this.length()?this.children.forEach(function(t){t.remove()}):t.prototype.deleteAt.call(this,e,n)},e.prototype.formatAt=function(e,n,r,o){this.update(),t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){this.update(),t.prototype.insertAt.call(this,e,n,r)},e.prototype.optimize=function(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.prototype.optimize.call(this,n);for(var l=[].slice.call(this.observer.takeRecords());l.length>0;)e.push(l.pop());for(var a=function(t,e){void 0===e&&(e=!0),null!=t&&t!==r&&null!=t.domNode.parentNode&&(null==t.domNode[i.DATA_KEY].mutations&&(t.domNode[i.DATA_KEY].mutations=[]),e&&a(t.parent))},s=function(t){null!=t.domNode[i.DATA_KEY]&&null!=t.domNode[i.DATA_KEY].mutations&&(t instanceof o.default&&t.children.forEach(s),t.optimize(n))},u=e,c=0;u.length>0;c+=1){if(c>=100)throw new Error("[Parchment] Maximum optimize iterations reached");for(u.forEach(function(t){var e=i.find(t.target,!0);null!=e&&(e.domNode===t.target&&("childList"===t.type?(a(i.find(t.previousSibling,!1)),[].forEach.call(t.addedNodes,function(t){var e=i.find(t,!1);a(e,!1),e instanceof o.default&&e.children.forEach(function(t){a(t,!1)})})):"attributes"===t.type&&a(e.prev)),a(e))}),this.children.forEach(s),u=[].slice.call(this.observer.takeRecords()),l=u.slice();l.length>0;)e.push(l.pop())}},e.prototype.update=function(e,n){var r=this;void 0===n&&(n={}),e=e||this.observer.takeRecords(),e.map(function(t){var e=i.find(t.target,!0);return null==e?null:null==e.domNode[i.DATA_KEY].mutations?(e.domNode[i.DATA_KEY].mutations=[t],e):(e.domNode[i.DATA_KEY].mutations.push(t),null)}).forEach(function(t){null!=t&&t!==r&&null!=t.domNode[i.DATA_KEY]&&t.update(t.domNode[i.DATA_KEY].mutations||[],n)}),null!=this.domNode[i.DATA_KEY].mutations&&t.prototype.update.call(this,this.domNode[i.DATA_KEY].mutations,n),this.optimize(e,n)},e.blotName="scroll",e.defaultChild="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="DIV",e}(o.default);e.default=a},function(t,e,n){"use strict";function r(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var n in t)if(t[n]!==e[n])return!1;return!0}var o=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(18),l=n(1),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.formats=function(n){if(n.tagName!==e.tagName)return t.formats.call(this,n)},e.prototype.format=function(n,r){var o=this;n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):(this.children.forEach(function(t){t instanceof i.default||(t=t.wrap(e.blotName,!0)),o.attributes.copy(t)}),this.unwrap())},e.prototype.formatAt=function(e,n,r,o){if(null!=this.formats()[r]||l.query(r,l.Scope.ATTRIBUTE)){this.isolate(e,n).format(r,o)}else t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n);var o=this.formats();if(0===Object.keys(o).length)return this.unwrap();var i=this.next;i instanceof e&&i.prev===this&&r(o,i.formats())&&(i.moveChildren(this),i.remove())},e.blotName="inline",e.scope=l.Scope.INLINE_BLOT,e.tagName="SPAN",e}(i.default);e.default=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(18),i=n(1),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(n){var r=i.query(e.blotName).tagName;if(n.tagName!==r)return t.formats.call(this,n)},e.prototype.format=function(n,r){null!=i.query(n,i.Scope.BLOCK)&&(n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):this.replaceWith(e.blotName))},e.prototype.formatAt=function(e,n,r,o){null!=i.query(r,i.Scope.BLOCK)?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.insertAt=function(e,n,r){if(null==r||null!=i.query(n,i.Scope.INLINE))t.prototype.insertAt.call(this,e,n,r);else{var o=this.split(e),l=i.create(n,r);o.parent.insertBefore(l,o)}},e.prototype.update=function(e,n){navigator.userAgent.match(/Trident/)?this.build():t.prototype.update.call(this,e,n)},e.blotName="block",e.scope=i.Scope.BLOCK_BLOT,e.tagName="P",e}(o.default);e.default=l},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(19),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(t){},e.prototype.format=function(e,n){t.prototype.formatAt.call(this,0,this.length(),e,n)},e.prototype.formatAt=function(e,n,r,o){0===e&&n===this.length()?this.format(r,o):t.prototype.formatAt.call(this,e,n,r,o)},e.prototype.formats=function(){return this.statics.formats(this.domNode)},e}(o.default);e.default=i},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=n(19),i=n(1),l=function(t){function e(e){var n=t.call(this,e)||this;return n.text=n.statics.value(n.domNode),n}return r(e,t),e.create=function(t){return document.createTextNode(t)},e.value=function(t){var e=t.data;return e.normalize&&(e=e.normalize()),e},e.prototype.deleteAt=function(t,e){this.domNode.data=this.text=this.text.slice(0,t)+this.text.slice(t+e)},e.prototype.index=function(t,e){return this.domNode===t?e:-1},e.prototype.insertAt=function(e,n,r){null==r?(this.text=this.text.slice(0,e)+n+this.text.slice(e),this.domNode.data=this.text):t.prototype.insertAt.call(this,e,n,r)},e.prototype.length=function(){return this.text.length},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n),this.text=this.statics.value(this.domNode),0===this.text.length?this.remove():this.next instanceof e&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())},e.prototype.position=function(t,e){return void 0===e&&(e=!1),[this.domNode,t]},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=i.create(this.domNode.splitText(t));return this.parent.insertBefore(n,this.next),this.text=this.statics.value(this.domNode),n},e.prototype.update=function(t,e){var n=this;t.some(function(t){return"characterData"===t.type&&t.target===n.domNode})&&(this.text=this.statics.value(this.domNode))},e.prototype.value=function(){return this.text},e.blotName="text",e.scope=i.Scope.INLINE_BLOT,e}(o.default);e.default=l},function(t,e,n){"use strict";var r=document.createElement("div");if(r.classList.toggle("test-class",!1),r.classList.contains("test-class")){var o=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return arguments.length>1&&!this.contains(t)==!e?e:o.call(this,t)}}String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return e=e||0,this.substr(e,t.length)===t}),String.prototype.endsWith||(String.prototype.endsWith=function(t,e){var n=this.toString();("number"!=typeof e||!isFinite(e)||Math.floor(e)!==e||e>n.length)&&(e=n.length),e-=t.length;var r=n.indexOf(t,e);return-1!==r&&r===e}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var e,n=Object(this),r=n.length>>>0,o=arguments[1],i=0;ie.length?t:e,l=t.length>e.length?e:t,a=i.indexOf(l);if(-1!=a)return r=[[y,i.substring(0,a)],[v,l],[y,i.substring(a+l.length)]],t.length>e.length&&(r[0][0]=r[2][0]=d),r;if(1==l.length)return[[d,t],[y,e]];var u=s(t,e);if(u){var c=u[0],f=u[1],h=u[2],p=u[3],b=u[4],g=n(c,h),m=n(f,p);return g.concat([[v,b]],m)}return o(t,e)}function o(t,e){for(var n=t.length,r=e.length,o=Math.ceil((n+r)/2),l=o,a=2*o,s=new Array(a),u=new Array(a),c=0;cn)v+=2;else if(x>r)p+=2;else if(h){var k=l+f-_;if(k>=0&&k=E)return i(t,e,O,x)}}}for(var N=-m+b;N<=m-g;N+=2){var E,k=l+N;E=N==-m||N!=m&&u[k-1]n)g+=2;else if(j>r)b+=2;else if(!h){var w=l+f-N;if(w>=0&&w=E)return i(t,e,O,x)}}}}return[[d,t],[y,e]]}function i(t,e,r,o){var i=t.substring(0,r),l=e.substring(0,o),a=t.substring(r),s=e.substring(o),u=n(i,l),c=n(a,s);return u.concat(c)}function l(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;for(var n=0,r=Math.min(t.length,e.length),o=r,i=0;n=t.length?[r,o,i,s,f]:null}var r=t.length>e.length?t:e,o=t.length>e.length?e:t;if(r.length<4||2*o.lengthu[4].length?s:u:s;var c,f,h,p;return t.length>e.length?(c=i[0],f=i[1],h=i[2],p=i[3]):(h=i[0],p=i[1],c=i[2],f=i[3]),[c,f,h,p,i[4]]}function u(t){t.push([v,""]);for(var e,n=0,r=0,o=0,i="",s="";n1?(0!==r&&0!==o&&(e=l(s,i),0!==e&&(n-r-o>0&&t[n-r-o-1][0]==v?t[n-r-o-1][1]+=s.substring(0,e):(t.splice(0,0,[v,s.substring(0,e)]),n++),s=s.substring(e),i=i.substring(e)),0!==(e=a(s,i))&&(t[n][1]=s.substring(s.length-e)+t[n][1],s=s.substring(0,s.length-e),i=i.substring(0,i.length-e))),0===r?t.splice(n-o,r+o,[y,s]):0===o?t.splice(n-r,r+o,[d,i]):t.splice(n-r-o,r+o,[d,i],[y,s]),n=n-r-o+(r?1:0)+(o?1:0)+1):0!==n&&t[n-1][0]==v?(t[n-1][1]+=t[n][1],t.splice(n,1)):n++,o=0,r=0,i="",s=""}""===t[t.length-1][1]&&t.pop();var c=!1;for(n=1;n0&&r.splice(o+2,0,[l[0],a]),p(r,o,3)}return t}function h(t){for(var e=!1,n=function(t){return t.charCodeAt(0)>=56320&&t.charCodeAt(0)<=57343},r=2;r=55296&&t.charCodeAt(t.length-1)<=56319}(t[r-2][1])&&t[r-1][0]===d&&n(t[r-1][1])&&t[r][0]===y&&n(t[r][1])&&(e=!0,t[r-1][1]=t[r-2][1].slice(-1)+t[r-1][1],t[r][1]=t[r-2][1].slice(-1)+t[r][1],t[r-2][1]=t[r-2][1].slice(0,-1));if(!e)return t;for(var o=[],r=0;r0&&o.push(t[r]);return o}function p(t,e,n){for(var r=e+n-1;r>=0&&r>=e-1;r--)if(r+1=r&&!a.endsWith("\n")&&(n=!0),e.scroll.insertAt(t,a);var c=e.scroll.line(t),f=u(c,2),h=f[0],p=f[1],y=(0,T.default)({},(0,O.bubbleFormats)(h));if(h instanceof w.default){var b=h.descendant(v.default.Leaf,p),g=u(b,1),m=g[0];y=(0,T.default)(y,(0,O.bubbleFormats)(m))}l=d.default.attributes.diff(y,l)||{}}else if("object"===s(o.insert)){var _=Object.keys(o.insert)[0];if(null==_)return t;e.scroll.insertAt(t,_,o.insert[_])}r+=i}return Object.keys(l).forEach(function(n){e.scroll.formatAt(t,i,n,l[n])}),t+i},0),t.reduce(function(t,n){return"number"==typeof n.delete?(e.scroll.deleteAt(t,n.delete),t):t+(n.retain||n.insert.length||1)},0),this.scroll.batchEnd(),this.update(t)}},{key:"deleteText",value:function(t,e){return this.scroll.deleteAt(t,e),this.update((new h.default).retain(t).delete(e))}},{key:"formatLine",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.scroll.update(),Object.keys(r).forEach(function(o){if(null==n.scroll.whitelist||n.scroll.whitelist[o]){var i=n.scroll.lines(t,Math.max(e,1)),l=e;i.forEach(function(e){var i=e.length();if(e instanceof g.default){var a=t-e.offset(n.scroll),s=e.newlineIndex(a+l)-a+1;e.formatAt(a,s,o,r[o])}else e.format(o,r[o]);l-=i})}}),this.scroll.optimize(),this.update((new h.default).retain(t).retain(e,(0,N.default)(r)))}},{key:"formatText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(r).forEach(function(o){n.scroll.formatAt(t,e,o,r[o])}),this.update((new h.default).retain(t).retain(e,(0,N.default)(r)))}},{key:"getContents",value:function(t,e){return this.delta.slice(t,t+e)}},{key:"getDelta",value:function(){return this.scroll.lines().reduce(function(t,e){return t.concat(e.delta())},new h.default)}},{key:"getFormat",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[],r=[];0===e?this.scroll.path(t).forEach(function(t){var e=u(t,1),o=e[0];o instanceof w.default?n.push(o):o instanceof v.default.Leaf&&r.push(o)}):(n=this.scroll.lines(t,e),r=this.scroll.descendants(v.default.Leaf,t,e));var o=[n,r].map(function(t){if(0===t.length)return{};for(var e=(0,O.bubbleFormats)(t.shift());Object.keys(e).length>0;){var n=t.shift();if(null==n)return e;e=l((0,O.bubbleFormats)(n),e)}return e});return T.default.apply(T.default,o)}},{key:"getText",value:function(t,e){return this.getContents(t,e).filter(function(t){return"string"==typeof t.insert}).map(function(t){return t.insert}).join("")}},{key:"insertEmbed",value:function(t,e,n){return this.scroll.insertAt(t,e,n),this.update((new h.default).retain(t).insert(o({},e,n)))}},{key:"insertText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),this.scroll.insertAt(t,e),Object.keys(r).forEach(function(o){n.scroll.formatAt(t,e.length,o,r[o])}),this.update((new h.default).retain(t).insert(e,(0,N.default)(r)))}},{key:"isBlank",value:function(){if(0==this.scroll.children.length)return!0;if(this.scroll.children.length>1)return!1;var t=this.scroll.children.head;return t.statics.blotName===w.default.blotName&&(!(t.children.length>1)&&t.children.head instanceof k.default)}},{key:"removeFormat",value:function(t,e){var n=this.getText(t,e),r=this.scroll.line(t+e),o=u(r,2),i=o[0],l=o[1],a=0,s=new h.default;null!=i&&(a=i instanceof g.default?i.newlineIndex(l)-l+1:i.length()-l,s=i.delta().slice(l,l+a-1).insert("\n"));var c=this.getContents(t,e+a),f=c.diff((new h.default).insert(n).concat(s)),p=(new h.default).retain(t).concat(f);return this.applyDelta(p)}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=this.delta;if(1===e.length&&"characterData"===e[0].type&&e[0].target.data.match(P)&&v.default.find(e[0].target)){var o=v.default.find(e[0].target),i=(0,O.bubbleFormats)(o),l=o.offset(this.scroll),a=e[0].oldValue.replace(_.default.CONTENTS,""),s=(new h.default).insert(a),u=(new h.default).insert(o.value());t=(new h.default).retain(l).concat(s.diff(u,n)).reduce(function(t,e){return e.insert?t.insert(e.insert,i):t.push(e)},new h.default),this.delta=r.compose(t)}else this.delta=this.getDelta(),t&&(0,A.default)(r.compose(t),this.delta)||(t=r.diff(this.delta,n));return t}}]),t}();e.default=S},function(t,e){"use strict";function n(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(){this._events=new n,this._eventsCount=0}var i=Object.prototype.hasOwnProperty,l="~";Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(l=!1)),o.prototype.eventNames=function(){var t,e,n=[];if(0===this._eventsCount)return n;for(e in t=this._events)i.call(t,e)&&n.push(l?e.slice(1):e);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},o.prototype.listeners=function(t,e){var n=l?l+t:t,r=this._events[n];if(e)return!!r;if(!r)return[];if(r.fn)return[r.fn];for(var o=0,i=r.length,a=new Array(i);o0){if(i instanceof y.BlockEmbed||f instanceof y.BlockEmbed)return void this.optimize();if(i instanceof _.default){var h=i.newlineIndex(i.length(),!0);if(h>-1&&(i=i.split(h+1))===f)return void this.optimize()}else if(f instanceof _.default){var p=f.newlineIndex(0);p>-1&&f.split(p+1)}var d=f.children.head instanceof g.default?null:f.children.head;i.moveChildren(f,d),i.remove()}this.optimize()}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.domNode.setAttribute("contenteditable",t)}},{key:"formatAt",value:function(t,n,r,o){(null==this.whitelist||this.whitelist[r])&&(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"formatAt",this).call(this,t,n,r,o),this.optimize())}},{key:"insertAt",value:function(t,n,r){if(null==r||null==this.whitelist||this.whitelist[n]){if(t>=this.length())if(null==r||null==h.default.query(n,h.default.Scope.BLOCK)){var o=h.default.create(this.statics.defaultChild);this.appendChild(o),null==r&&n.endsWith("\n")&&(n=n.slice(0,-1)),o.insertAt(0,n,r)}else{var i=h.default.create(n,r);this.appendChild(i)}else c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,t,n,r);this.optimize()}}},{key:"insertBefore",value:function(t,n){if(t.statics.scope===h.default.Scope.INLINE_BLOT){var r=h.default.create(this.statics.defaultChild);r.appendChild(t),t=r}c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n)}},{key:"leaf",value:function(t){return this.path(t).pop()||[null,-1]}},{key:"line",value:function(t){return t===this.length()?this.line(t-1):this.descendant(a,t)}},{key:"lines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return function t(e,n,r){var o=[],i=r;return e.children.forEachAt(n,r,function(e,n,r){a(e)?o.push(e):e instanceof h.default.Container&&(o=o.concat(t(e,n,i))),i-=r}),o}(this,t,e)}},{key:"optimize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!0!==this.batch&&(c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t,n),t.length>0&&this.emitter.emit(d.default.events.SCROLL_OPTIMIZE,t,n))}},{key:"path",value:function(t){return c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"path",this).call(this,t).slice(1)}},{key:"update",value:function(t){if(!0!==this.batch){var n=d.default.sources.USER;"string"==typeof t&&(n=t),Array.isArray(t)||(t=this.observer.takeRecords()),t.length>0&&this.emitter.emit(d.default.events.SCROLL_BEFORE_UPDATE,n,t),c(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"update",this).call(this,t.concat([])),t.length>0&&this.emitter.emit(d.default.events.SCROLL_UPDATE,n,t)}}}]),e}(h.default.Scroll);x.blotName="scroll",x.className="ql-editor",x.tagName="DIV",x.defaultChild="block",x.allowedChildren=[v.default,y.BlockEmbed,w.default],e.default=x},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e,n){return"object"===(void 0===e?"undefined":x(e))?Object.keys(e).reduce(function(t,n){return s(t,n,e[n])},t):t.reduce(function(t,r){return r.attributes&&r.attributes[e]?t.push(r):t.insert(r.insert,(0,j.default)({},o({},e,n),r.attributes))},new q.default)}function u(t){if(t.nodeType!==Node.ELEMENT_NODE)return{};return t["__ql-computed-style"]||(t["__ql-computed-style"]=window.getComputedStyle(t))}function c(t,e){for(var n="",r=t.ops.length-1;r>=0&&n.length-1}function h(t,e,n){return t.nodeType===t.TEXT_NODE?n.reduce(function(e,n){return n(t,e)},new q.default):t.nodeType===t.ELEMENT_NODE?[].reduce.call(t.childNodes||[],function(r,o){var i=h(o,e,n);return o.nodeType===t.ELEMENT_NODE&&(i=e.reduce(function(t,e){return e(o,t)},i),i=(o[W]||[]).reduce(function(t,e){return e(o,t)},i)),r.concat(i)},new q.default):new q.default}function p(t,e,n){return s(n,t,!0)}function d(t,e){var n=P.default.Attributor.Attribute.keys(t),r=P.default.Attributor.Class.keys(t),o=P.default.Attributor.Style.keys(t),i={};return n.concat(r).concat(o).forEach(function(e){var n=P.default.query(e,P.default.Scope.ATTRIBUTE);null!=n&&(i[n.attrName]=n.value(t),i[n.attrName])||(n=Y[e],null==n||n.attrName!==e&&n.keyName!==e||(i[n.attrName]=n.value(t)||void 0),null==(n=X[e])||n.attrName!==e&&n.keyName!==e||(n=X[e],i[n.attrName]=n.value(t)||void 0))}),Object.keys(i).length>0&&(e=s(e,i)),e}function y(t,e){var n=P.default.query(t);if(null==n)return e;if(n.prototype instanceof P.default.Embed){var r={},o=n.value(t);null!=o&&(r[n.blotName]=o,e=(new q.default).insert(r,n.formats(t)))}else"function"==typeof n.formats&&(e=s(e,n.blotName,n.formats(t)));return e}function v(t,e){return c(e,"\n")||e.insert("\n"),e}function b(){return new q.default}function g(t,e){var n=P.default.query(t);if(null==n||"list-item"!==n.blotName||!c(e,"\n"))return e;for(var r=-1,o=t.parentNode;!o.classList.contains("ql-clipboard");)"list"===(P.default.query(o)||{}).blotName&&(r+=1),o=o.parentNode;return r<=0?e:e.compose((new q.default).retain(e.length()-1).retain(1,{indent:r}))}function m(t,e){return c(e,"\n")||(f(t)||e.length()>0&&t.nextSibling&&f(t.nextSibling))&&e.insert("\n"),e}function _(t,e){if(f(t)&&null!=t.nextElementSibling&&!c(e,"\n\n")){var n=t.offsetHeight+parseFloat(u(t).marginTop)+parseFloat(u(t).marginBottom);t.nextElementSibling.offsetTop>t.offsetTop+1.5*n&&e.insert("\n")}return e}function O(t,e){var n={},r=t.style||{};return r.fontStyle&&"italic"===u(t).fontStyle&&(n.italic=!0),r.fontWeight&&(u(t).fontWeight.startsWith("bold")||parseInt(u(t).fontWeight)>=700)&&(n.bold=!0),Object.keys(n).length>0&&(e=s(e,n)),parseFloat(r.textIndent||0)>0&&(e=(new q.default).insert("\t").concat(e)),e}function w(t,e){var n=t.data;if("O:P"===t.parentNode.tagName)return e.insert(n.trim());if(0===n.trim().length&&t.parentNode.classList.contains("ql-clipboard"))return e;if(!u(t.parentNode).whiteSpace.startsWith("pre")){var r=function(t,e){return e=e.replace(/[^\u00a0]/g,""),e.length<1&&t?" ":e};n=n.replace(/\r\n/g," ").replace(/\n/g," "),n=n.replace(/\s\s+/g,r.bind(r,!0)),(null==t.previousSibling&&f(t.parentNode)||null!=t.previousSibling&&f(t.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(null==t.nextSibling&&f(t.parentNode)||null!=t.nextSibling&&f(t.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return e.insert(n)}Object.defineProperty(e,"__esModule",{value:!0}),e.matchText=e.matchSpacing=e.matchNewline=e.matchBlot=e.matchAttributor=e.default=void 0;var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),E=function(){function t(t,e){for(var n=0;n\r?\n +\<"),this.convert();var e=this.quill.getFormat(this.quill.selection.savedRange.index);if(e[F.default.blotName]){var n=this.container.innerText;return this.container.innerHTML="",(new q.default).insert(n,o({},F.default.blotName,e[F.default.blotName]))}var r=this.prepareMatching(),i=k(r,2),l=i[0],a=i[1],s=h(this.container,l,a);return c(s,"\n")&&null==s.ops[s.ops.length-1].attributes&&(s=s.compose((new q.default).retain(s.length()-1).delete(1))),Z.log("convert",this.container.innerHTML,s),this.container.innerHTML="",s}},{key:"dangerouslyPasteHTML",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:C.default.sources.API;if("string"==typeof t)this.quill.setContents(this.convert(t),e),this.quill.setSelection(0,C.default.sources.SILENT);else{var r=this.convert(e);this.quill.updateContents((new q.default).retain(t).concat(r),n),this.quill.setSelection(t+r.length(),C.default.sources.SILENT)}}},{key:"onPaste",value:function(t){var e=this;if(!t.defaultPrevented&&this.quill.isEnabled()){var n=this.quill.getSelection(),r=(new q.default).retain(n.index),o=this.quill.scrollingContainer.scrollTop;this.container.focus(),this.quill.selection.update(C.default.sources.SILENT),setTimeout(function(){r=r.concat(e.convert()).delete(n.length),e.quill.updateContents(r,C.default.sources.USER),e.quill.setSelection(r.length()-n.length,C.default.sources.SILENT),e.quill.scrollingContainer.scrollTop=o,e.quill.focus()},1)}}},{key:"prepareMatching",value:function(){var t=this,e=[],n=[];return this.matchers.forEach(function(r){var o=k(r,2),i=o[0],l=o[1];switch(i){case Node.TEXT_NODE:n.push(l);break;case Node.ELEMENT_NODE:e.push(l);break;default:[].forEach.call(t.container.querySelectorAll(i),function(t){t[W]=t[W]||[],t[W].push(l)})}}),[e,n]}}]),e}(I.default);$.DEFAULTS={matchers:[],matchVisual:!0},e.default=$,e.matchAttributor=d,e.matchBlot=y,e.matchNewline=m,e.matchSpacing=_,e.matchText=w},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){var e=t.ops[t.ops.length-1];return null!=e&&(null!=e.insert?"string"==typeof e.insert&&e.insert.endsWith("\n"):null!=e.attributes&&Object.keys(e.attributes).some(function(t){return null!=f.default.query(t,f.default.Scope.BLOCK)}))}function s(t){var e=t.reduce(function(t,e){return t+=e.delete||0},0),n=t.length()-e;return a(t)&&(n-=1),n}Object.defineProperty(e,"__esModule",{value:!0}),e.getLastChangeIndex=e.default=void 0;var u=function(){function t(t,e){for(var n=0;nr&&this.stack.undo.length>0){var o=this.stack.undo.pop();n=n.compose(o.undo),t=o.redo.compose(t)}else this.lastRecorded=r;this.stack.undo.push({redo:t,undo:n}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift()}}},{key:"redo",value:function(){this.change("redo","undo")}},{key:"transform",value:function(t){this.stack.undo.forEach(function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)}),this.stack.redo.forEach(function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)})}},{key:"undo",value:function(){this.change("undo","redo")}}]),e}(y.default);v.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1},e.default=v,e.getLastChangeIndex=s},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.IndentClass=void 0;var l=function(){function t(t,e){for(var n=0;n0&&this.children.tail.format(t,e)}},{key:"formats",value:function(){return o({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:"insertBefore",value:function(t,n){if(t instanceof v)u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n);else{var r=null==n?this.length():n.offset(this),o=this.split(r);o.parent.insertBefore(t,o)}}},{key:"optimize",value:function(t){u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&n.domNode.tagName===this.domNode.tagName&&n.domNode.getAttribute("data-checked")===this.domNode.getAttribute("data-checked")&&(n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){if(t.statics.blotName!==this.statics.blotName){var n=f.default.create(this.statics.defaultChild);t.moveChildren(n),this.appendChild(n)}u(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t)}}]),e}(y.default);b.blotName="list",b.scope=f.default.Scope.BLOCK_BLOT,b.tagName=["OL","UL"],b.defaultChild="list-item",b.allowedChildren=[v],e.ListItem=v,e.default=b},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=n(39),a=function(t){return t&&t.__esModule?t:{default:t}}(l),s=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),e}(a.default);s.blotName="italic",s.tagName=["EM","I"],e.default=s},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=a(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return"string"==typeof t&&n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return f.reduce(function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e},{})}},{key:"match",value:function(t){return/\.(jpe?g|gif|png)$/.test(t)||/^data:image\/.+;base64/.test(t)}},{key:"sanitize",value:function(t){return(0,c.sanitize)(t,["http","https","data"])?t:"//:0"}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(u.default.Embed);h.blotName="image",h.tagName="IMG",e.default=h},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=a(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("frameborder","0"),n.setAttribute("allowfullscreen",!0),n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return f.reduce(function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e},{})}},{key:"sanitize",value:function(t){return c.default.sanitize(t)}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(s.BlockEmbed);h.blotName="video",h.className="ql-video",h.tagName="IFRAME",e.default=h},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.FormulaBlot=void 0;var a=function(){function t(t,e){for(var n=0;n0||null==this.cachedText)&&(this.domNode.innerHTML=t(e),this.domNode.normalize(),this.attach()),this.cachedText=e)}}]),e}(v.default);b.className="ql-syntax";var g=new c.default.Attributor.Class("token","hljs",{scope:c.default.Scope.INLINE}),m=function(t){function e(t,n){o(this,e);var r=i(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));if("function"!=typeof r.options.highlight)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");var l=null;return r.quill.on(h.default.events.SCROLL_OPTIMIZE,function(){clearTimeout(l),l=setTimeout(function(){r.highlight(),l=null},r.options.interval)}),r.highlight(),r}return l(e,t),a(e,null,[{key:"Registro",value:function(){h.default.Registro(g,!0),h.default.Registro(b,!0)}}]),a(e,[{key:"highlight",value:function(){var t=this;if(!this.quill.selection.composing){this.quill.update(h.default.sources.USER);var e=this.quill.getSelection();this.quill.scroll.descendants(b).forEach(function(e){e.highlight(t.options.highlight)}),this.quill.update(h.default.sources.SILENT),null!=e&&this.quill.setSelection(e,h.default.sources.SILENT)}}}]),e}(d.default);m.DEFAULTS={highlight:function(){return null==window.hljs?null:function(t){return window.hljs.highlightAuto(t).value}}(),interval:1e3},e.CodeBlock=b,e.CodeToken=g,e.default=m},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function s(t,e,n){var r=document.createElement("button");r.setAttribute("type","button"),r.classList.add("ql-"+e),null!=n&&(r.value=n),t.appendChild(r)}function u(t,e){Array.isArray(e[0])||(e=[e]),e.forEach(function(e){var n=document.createElement("span");n.classList.add("ql-formats"),e.forEach(function(t){if("string"==typeof t)s(n,t);else{var e=Object.keys(t)[0],r=t[e];Array.isArray(r)?c(n,e,r):s(n,e,r)}}),t.appendChild(n)})}function c(t,e,n){var r=document.createElement("select");r.classList.add("ql-"+e),n.forEach(function(t){var e=document.createElement("option");!1!==t?e.setAttribute("value",t):e.setAttribute("selected","selected"),r.appendChild(e)}),t.appendChild(r)}Object.defineProperty(e,"__esModule",{value:!0}),e.addControls=e.default=void 0;var f=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function t(t,e){for(var n=0;n '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BubbleTooltip=void 0;var a=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var l=o.get;if(void 0!==l)return l.call(r)},s=function(){function t(t,e){for(var n=0;n0&&o===h.default.sources.USER){r.show(),r.root.style.left="0px",r.root.style.width="",r.root.style.width=r.root.offsetWidth+"px";var i=r.quill.getLines(e.index,e.length);if(1===i.length)r.position(r.quill.getBounds(e));else{var l=i[i.length-1],a=r.quill.getIndex(l),s=Math.min(l.length()-1,e.index+e.length-a),u=r.quill.getBounds(new y.Range(a,s));r.position(u)}}else document.activeElement!==r.textbox&&r.quill.hasFocus()&&r.hide()}),r}return l(e,t),s(e,[{key:"listen",value:function(){var t=this;a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"listen",this).call(this),this.root.querySelector(".ql-close").addEventListener("click",function(){t.root.classList.remove("ql-editing")}),this.quill.on(h.default.events.SCROLL_OPTIMIZE,function(){setTimeout(function(){if(!t.root.classList.contains("ql-hidden")){var e=t.quill.getSelection();null!=e&&t.position(t.quill.getBounds(e))}},1)})}},{key:"cancel",value:function(){this.show()}},{key:"position",value:function(t){var n=a(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"position",this).call(this,t),r=this.root.querySelector(".ql-tooltip-arrow");if(r.style.marginLeft="",0===n)return n;r.style.marginLeft=-1*n-r.offsetWidth/2+"px"}}]),e}(p.BaseTooltip);_.TEMPLATE=['','
        ','','',"
        "].join(""),e.BubbleTooltip=_,e.default=m},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var l,a=t[Symbol.iterator]();!(r=(l=a.next()).done)&&(n.push(l.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var l=o.get;if(void 0!==l)return l.call(r)},u=function(){function t(t,e){for(var n=0;n','','',''].join(""),e.default=w}]).default}); +//# sourceMappingURL=quill.min.js.map \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/quill/quill.min.js.map b/Practica-14.5/src/assets/vendor/quill/quill.min.js.map new file mode 100644 index 0000000..7b937c5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap af25b46823d4aa280f97","webpack:///quill.min.js","webpack:///./node_modules/parchment/src/parchment.ts","webpack:///./node_modules/parchment/src/registry.ts","webpack:///./node_modules/extend/index.js","webpack:///./blots/block.js","webpack:///./node_modules/quill-delta/lib/delta.js","webpack:///./blots/inline.js","webpack:///./core/quill.js","webpack:///./core/module.js","webpack:///./blots/text.js","webpack:///./core/emitter.js","webpack:///./core/logger.js","webpack:///./node_modules/parchment/src/attributor/attributor.ts","webpack:///./node_modules/deep-equal/index.js","webpack:///./formats/code.js","webpack:///./blots/break.js","webpack:///./formats/link.js","webpack:///./ui/picker.js","webpack:///./node_modules/parchment/src/blot/abstract/container.ts","webpack:///./node_modules/parchment/src/blot/abstract/format.ts","webpack:///./node_modules/parchment/src/blot/abstract/leaf.ts","webpack:///./node_modules/quill-delta/lib/op.js","webpack:///./node_modules/clone/clone.js","webpack:///./core/selection.js","webpack:///./blots/container.js","webpack:///./formats/color.js","webpack:///./modules/keyboard.js","webpack:///./ui/icons.js","webpack:///./node_modules/parchment/src/blot/abstract/shadow.ts","webpack:///./node_modules/parchment/src/attributor/store.ts","webpack:///./node_modules/parchment/src/attributor/class.ts","webpack:///./node_modules/parchment/src/attributor/style.ts","webpack:///./blots/cursor.js","webpack:///./core/theme.js","webpack:///./blots/embed.js","webpack:///./formats/align.js","webpack:///./formats/background.js","webpack:///./formats/direction.js","webpack:///./formats/font.js","webpack:///./formats/size.js","webpack:///./formats/bold.js","webpack:///./assets/icons/code.svg","webpack:///./ui/color-picker.js","webpack:///./ui/icon-picker.js","webpack:///./ui/tooltip.js","webpack:///./themes/base.js","webpack:///./quill.js","webpack:///./core.js","webpack:///./node_modules/parchment/src/collection/linked-list.ts","webpack:///./node_modules/parchment/src/blot/scroll.ts","webpack:///./node_modules/parchment/src/blot/inline.ts","webpack:///./node_modules/parchment/src/blot/block.ts","webpack:///./node_modules/parchment/src/blot/embed.ts","webpack:///./node_modules/parchment/src/blot/text.ts","webpack:///./core/polyfill.js","webpack:///./node_modules/fast-diff/diff.js","webpack:///./node_modules/deep-equal/lib/keys.js","webpack:///./node_modules/deep-equal/lib/is_arguments.js","webpack:///./core/editor.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./blots/scroll.js","webpack:///./modules/clipboard.js","webpack:///./modules/history.js","webpack:///./formats/indent.js","webpack:///./formats/blockquote.js","webpack:///./formats/header.js","webpack:///./formats/list.js","webpack:///./formats/italic.js","webpack:///./formats/script.js","webpack:///./formats/strike.js","webpack:///./formats/underline.js","webpack:///./formats/image.js","webpack:///./formats/video.js","webpack:///./modules/formula.js","webpack:///./modules/syntax.js","webpack:///./modules/toolbar.js","webpack:///./assets/icons/align-left.svg","webpack:///./assets/icons/align-center.svg","webpack:///./assets/icons/align-right.svg","webpack:///./assets/icons/align-justify.svg","webpack:///./assets/icons/background.svg","webpack:///./assets/icons/blockquote.svg","webpack:///./assets/icons/bold.svg","webpack:///./assets/icons/clean.svg","webpack:///./assets/icons/color.svg","webpack:///./assets/icons/direction-ltr.svg","webpack:///./assets/icons/direction-rtl.svg","webpack:///./assets/icons/float-center.svg","webpack:///./assets/icons/float-full.svg","webpack:///./assets/icons/float-left.svg","webpack:///./assets/icons/float-right.svg","webpack:///./assets/icons/formula.svg","webpack:///./assets/icons/header.svg","webpack:///./assets/icons/header-2.svg","webpack:///./assets/icons/italic.svg","webpack:///./assets/icons/image.svg","webpack:///./assets/icons/indent.svg","webpack:///./assets/icons/outdent.svg","webpack:///./assets/icons/link.svg","webpack:///./assets/icons/list-ordered.svg","webpack:///./assets/icons/list-bullet.svg","webpack:///./assets/icons/list-check.svg","webpack:///./assets/icons/subscript.svg","webpack:///./assets/icons/superscript.svg","webpack:///./assets/icons/strike.svg","webpack:///./assets/icons/underline.svg","webpack:///./assets/icons/video.svg","webpack:///./assets/icons/dropdown.svg","webpack:///./themes/bubble.js","webpack:///./themes/snow.js"],"names":["root","factory","exports","module","define","amd","self","this","__webpack_require__","moduleId","installedModules","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","create","find","query","Registro","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","input","match","ParchmentError","BlotClass","Node","TEXT_NODE","node","bubble","DATA_KEY","blot","parentNode","scope","ANY","types","attributes","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","split","classes","tags","tagName","TYPE","Definitions","_i","arguments","length","map","Definition","blotName","attrName","keyName","className","Array","isArray","toUpperCase","tagNames","forEach","tag","__extends","extendStatics","setPrototypeOf","__proto__","b","__","constructor","_super","message","_this","Error","hasOwn","toStr","toString","gOPD","getOwnPropertyDescriptor","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","key","setProperty","target","options","newValue","writable","getProperty","extend","src","copy","copyIsArray","clone","deep","_interopRequireDefault","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","bubbleFormats","formats","parent","statics","BlockEmbed","undefined","_createClass","defineProperties","props","descriptor","protoProps","staticProps","_get","receiver","Function","desc","getPrototypeOf","_extend2","_extend","_quillDelta2","_quillDelta","_parchment2","_parchment","_break2","_break","_inline2","_inline","_text2","_text","apply","_Parchment$Embed","domNode","Delta","insert","values","attribute","BLOCK_ATTRIBUTE","index","format","def","endsWith","block","insertBefore","next","insertAt","slice","BLOCK_BLOT","cache","_Parchment$Block","delta","descendants","reduce","leaf","Math","min","lines","text","shift","children","tail","line","ref","head","Break","remove","context","child","force","defaultChild","allowedChildren","TextBlot","diff","equal","op","NULL_CHARACTER","String","fromCharCode","ops","newOp","keys","push","retain","lastOp","unshift","splice","chop","pop","filter","predicate","partition","passed","failed","initial","changeLength","elem","delete","start","end","Infinity","iter","iterator","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","concat","strings","prep","join","diffResult","component","opLength","INSERT","DELETE","EQUAL","eachLine","newline","indexOf","transform","priority","transformPosition","offset","nextType","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","_defineProperty","expandConfig","container","userConfig","clipboard","keyboard","history","theme","Quill","DEFAULTS","import","Theme","themeConfig","config","moduleNames","moduleConfig","moduleClass","debug","error","toolbar","document","querySelector","modify","modifier","source","strict","isEnabled","Emitter","sources","USER","range","getSelection","oldDelta","editor","change","shiftRange","setSelection","SILENT","args","events","TEXT_CHANGE","emitter","emit","EDITOR_CHANGE","overload","API","pos","max","Range","_typeof","Symbol","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","done","err","_editor2","_editor","_emitter4","_emitter3","_module2","_module","_selection2","_selection","_logger2","_logger","_theme2","_theme","html","innerHTML","trim","classList","add","__quill","addContainer","setAttribute","scrollingContainer","scroll","whitelist","Editor","selection","Selection","addModule","init","on","type","toggle","isBlank","SCROLL_UPDATE","mutations","lastRange","update","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","logger","level","imports","path","overwrite","warn","startsWith","refNode","createElement","setRange","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","formatLine","formatText","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","getContents","getFormat","Number","MAX_VALUE","getRange","getText","hasFocus","embed","insertEmbed","insertText","contains","off","once","dangerouslyPasteHTML","removeFormat","deleted","applied","applyDelta","version","QUILL_VERSION","Module","quill","_Parchment$Text","_eventemitter2","_eventemitter","eventName","addEventListener","querySelectorAll","handleDOM","listeners","_EventEmitter","log","event","handler","EventEmitter","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","method","levels","console","namespace","ns","bind","newLevel","attributeBit","ATTRIBUTE","item","canAdd","replace","removeAttribute","isUndefinedOrNull","isBuffer","x","objEquiv","a","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","e","sort","actual","expected","Date","getTime","Code","_block2","_block","_Inline","CodeBlock","_Block","textContent","frag","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","BuscarIndex","lastIndexOf","appendChild","prev","optimize","removeChild","unwrap","TAB","sanitize","url","protocols","anchor","href","protocol","Link","PROTOCOL_WHITELIST","SANITIZED_URL","toggleAriaAttribute","element","_keyboard2","_keyboard","_dropdown2","_dropdown","optionsCounter","Picker","select","buildPicker","style","display","label","togglePicker","keyCode","Keyboard","ENTER","ESCAPE","escape","preventDefault","option","tabIndex","hasAttribute","selectItem","DropdownIcon","id","buildItem","selected","buildLabel","buildOptions","close","setTimeout","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","makeBlot","childNodes","replaceChild","attach","linked_list_1","shadow_1","ContainerBlot","build","reverse","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","position","after","addedNodes","removedNodes","mutation","body","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","FormatBlot","toLowerCase","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","Iterator","lib","keepNull","retOp","substr","_instanceof","circular","depth","includeNonEnumerable","_clone","proto","nativeMap","nativeSet","nativePromise","resolve","reject","then","__isArray","__isRegExp","RegExp","__getRegExpFlags","lastIndex","__isDate","useBuffer","Buffer","allocUnsafe","allParents","allChildren","keyChild","valueChild","set","entryChild","attrs","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","__objToStr","re","flags","global","ignoreCase","multiline","Map","_","Set","Promise","clonePrototype","_toConsumableArray","arr2","from","_clone2","_deepEqual2","_deepEqual","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","startNode","startOffset","endNode","endOffset","restore","nativeRange","collapsed","data","scrollLength","createRange","setStart","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","startContainer","endContainer","lastChild","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","makeEmbedArrowHandler","shiftKey","where","LEFT","altKey","RIGHT","getLeaf","handleBackspace","getLine","curFormats","prevFormats","DeltaOp","test","prefix","handleDelete","suffix","nextLength","nextFormats","handleDeleteRange","getLines","firstFormats","lastFormats","handleEnter","lineFormats","makeCodeBlockHandler","indent","scrollIndex","getIndex","makeFormatHandler","shortKey","normalize","binding","charCodeAt","SHORTKEY","_op2","_op","_quill2","_quill","navigator","platform","bindings","addBinding","metaKey","ctrlKey","userAgent","BACKSPACE","listen","_Module","evt","which","defaultPrevented","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","UP","DOWN","list","cutoff","updateContents","header","require","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","result","camelize","parts","part","StyleAttributor","Cursor","createTextNode","CONTENTS","_length","restoreText","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","Bold","_picker2","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","icons","defaultItem","Tooltip","boundsContainer","TEMPLATE","marginTop","hide","reference","offsetWidth","rootBounds","verticalShift","extractVideoUrl","fillSelect","defaultValue","BaseTooltip","_emitter2","_emitter","_colorPicker2","_colorPicker","_iconPicker2","_iconPicker","_tooltip2","_tooltip","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","listener","removeEventListener","tooltip","textbox","pickers","picker","_Theme","extendToolbar","buttons","button","selects","align","handlers","formula","edit","image","fileInput","files","reader","FileReader","onload","readAsDataURL","click","video","_Tooltip","save","cancel","mode","preview","linkRange","restoreFocus","_core2","_core","_blockquote2","_blockquote","_header2","_header","_list2","_list","_bold2","_bold","_italic2","_italic","_link2","_link","_script2","_script","_strike2","_strike","_underline2","_underline","_image2","_image","_video2","_video","_code2","_code","_formula2","_formula","_syntax2","_syntax","_toolbar2","_toolbar","_icons2","_icons","_bubble2","_bubble","_snow2","_snow","Indent","Blockquote","Header","List","InlineCode","Italic","Script","Strike","Underline","Image","Video","ListItem","Formula","Syntax","Toolbar","BubbleTheme","SnowTheme","icons","_container2","_container","_cursor2","_cursor","_embed2","_embed","_scroll2","_scroll","_clipboard2","_clipboard","_history2","_history","Clipboard","History","LinkedList","append","nodes","cur","curNode","ret","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","observer","MutationObserver","observe","disconnect","records","takeRecords","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj1","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","BuscarString","subjectString","isFinite","floor","thisArg","execCommand","diff_main","text1","text2","cursor_pos","DIFF_EQUAL","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","DIFF_INSERT","DIFF_DELETE","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","ceil","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","x1","k1_offset","y1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","j","best_common","prefixLength","suffixLength","hm1","hm2","pointer","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","str","fixed_diffs","left_d","right_d","shim","supported","unsupported","propertyIsEnumerable","supportsArgumentsClass","combineFormats","combined","merged","normalizeDelta","bullet","ASCII","getDelta","consumeNextNewline","batchStart","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","cursorIndex","textBlot","oldValue","CursorBlot","oldText","newText","Events","EE","fn","_events","_eventsCount","has","eventNames","exists","available","ee","a1","a2","a3","a4","a5","len","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","isLine","_Parchment$Scroll","batch","applyFormat","computeStyle","nodeType","ELEMENT_NODE","window","getComputedStyle","deltaEndsWith","endText","traverse","elementMatchers","textMatchers","matcher","childrenDelta","DOM_KEY","matchAlias","matchAttributor","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","matchBlot","matchBreak","matchIgnore","matchIndent","matchNewline","matchSpacing","nextElementSibling","nodeHeight","offsetHeight","parseFloat","marginBottom","offsetTop","matchStyles","fontStyle","italic","fontWeight","bold","textIndent","matchText","whiteSpace","replacer","collapse","_extend3","CLIPBOARD_CONFIG","onPaste","matchers","selector","matchVisual","addMatcher","innerText","prepareMatching","paste","pair","endsWithNewlineChange","getLastChangeIndex","deleteLength","changeIndex","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","stack","changeDelta","undoDelta","timestamp","now","delay","maxStack","IndentClass","IdentAttributor","listEventHandler","_Container","_Bold","ATTRIBUTES","_BlockEmbed","FormulaBlot","_Embed","katex","render","throwOnError","errorColor","CodeToken","SyntaxCodeBlock","_CodeBlock","highlight","cachedText","timer","clearTimeout","interval","code","hljs","highlightAuto","addButton","addControls","groups","controls","group","control","addSelect","addHandler","prompt","clean","direction","link","BubbleTooltip","_base2","_base","TOOLBAR_CONFIG","_BaseTheme","buildButtons","buildPickers","show","lastLine","_BaseTooltip","arrow","marginLeft","SnowTooltip","LinkBlot"],"mappings":";;;;;;CAAA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAe,MAAID,IAEnBD,EAAY,MAAIC,KACC,mBAATK,MAAuBA,KAAOC,KAAM,WAC9C,M,aCNE,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BE,EAAGF,EACHG,GAAG,EACHV,WAUD,OANAW,GAAQJ,GAAUK,KAAKX,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,GAAI,EAGJT,EAAOD,QAvBf,GAAIQ,KA4DJ,OAhCAF,GAAoBO,EAAIF,EAGxBL,EAAoBQ,EAAIN,EAGxBF,EAAoBS,EAAI,SAASf,EAASgB,EAAMC,GAC3CX,EAAoBY,EAAElB,EAASgB,IAClCG,OAAOC,eAAepB,EAASgB,GAC9BK,cAAc,EACdC,YAAY,EACZC,IAAKN,KAMRX,EAAoBkB,EAAI,SAASvB,GAChC,GAAIgB,GAAShB,GAAUA,EAAOwB,WAC7B,WAAwB,MAAOxB,GAAgB,SAC/C,WAA8B,MAAOA,GAEtC,OADAK,GAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASQ,EAAQC,GAAY,MAAOR,QAAOS,UAAUC,eAAejB,KAAKc,EAAQC,IAGzGrB,EAAoBwB,EAAI,GAGjBxB,EAAoBA,EAAoByB,EAAI,MCsB/C,SAAU9B,EAAQD,EAASM,GAEjC,YCpFAa,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIC,GAAc,EAAQ,IACtBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAW,EAAQ,IACnBC,EAAW,EAAQ,IACnBC,EAAU,EAAQ,IAClBC,EAAU,EAAQ,IAClBC,EAAS,EAAQ,IACjBC,EAAe,EAAQ,IACvBC,EAAU,EAAQ,IAClBC,EAAU,EAAQ,IAClBC,EAAU,EAAQ,IAClBC,EAAW,EAAQ,GACnBC,GACAC,MAAOF,EAASE,MAChBC,OAAQH,EAASG,OACjBC,KAAMJ,EAASI,KACfC,MAAOL,EAASK,MAChBC,SAAUN,EAASM,SACnBC,UAAWnB,EAAYoB,QACvBC,OAAQpB,EAASmB,QACjBE,KAAMpB,EAAOkB,QACbG,MAAOjB,EAAQc,QACfI,OAAQrB,EAASiB,QACjBK,MAAOpB,EAAQe,QACfM,OAAQtB,EAASgB,QACjBO,KAAMpB,EAAOa,QACbQ,YACIC,UAAWrB,EAAaY,QACxBU,MAAOrB,EAAQW,QACfW,MAAOrB,EAAQU,QACfY,MAAOrB,EAAQS,SAGvBrD,GAAQqD,QAAUP,GD2FZ,SAAU7C,EAAQD,EAASM,GAEjC,YErFA,SAAS0C,GAAOkB,EAAOlC,GACnB,GAAImC,GAAQjB,EAAMgB,EAClB,IAAa,MAATC,EACA,KAAM,IAAIC,GAAe,oBAAsBF,EAAQ,QAE3D,IAAIG,GAAYF,CAIhB,OAAO,IAAIE,GADXH,YAAiBI,OAAQJ,EAAgB,WAAMI,KAAKC,UAAYL,EAAQG,EAAUrB,OAAOhB,GAC9DA,GAG/B,QAASiB,GAAKuB,EAAMC,GAEhB,WADe,KAAXA,IAAqBA,GAAS,GACtB,MAARD,EACO,KAEmB,MAA1BA,EAAKxE,EAAQ0E,UACNF,EAAKxE,EAAQ0E,UAAUC,KAC9BF,EACOxB,EAAKuB,EAAKI,WAAYH,GAC1B,KAGX,QAASvB,GAAMA,EAAO2B,OACJ,KAAVA,IAAoBA,EAAQ9B,EAAM+B,IACtC,IAAIX,EACJ,IAAqB,gBAAVjB,GACPiB,EAAQY,EAAM7B,IAAU8B,EAAW9B,OAGlC,IAAIA,YAAiBU,OAAQV,EAAgB,WAAMoB,KAAKC,UACzDJ,EAAQY,EAAY,SAEnB,IAAqB,gBAAV7B,GACRA,EAAQH,EAAMkC,MAAQlC,EAAMmC,MAC5Bf,EAAQY,EAAa,MAEhB7B,EAAQH,EAAMkC,MAAQlC,EAAMoC,SACjChB,EAAQY,EAAc,YAGzB,IAAI7B,YAAiBkC,aAAa,CACnC,GAAIC,IAASnC,EAAMoC,aAAa,UAAY,IAAIC,MAAM,MACtD,KAAK,GAAI9E,KAAK4E,GAEV,GADAlB,EAAQqB,EAAQH,EAAM5E,IAElB,KAER0D,GAAQA,GAASsB,EAAKvC,EAAMwC,SAEhC,MAAa,OAATvB,EACO,KAEPU,EAAQ9B,EAAMkC,MAAQd,EAAMU,OAASA,EAAQ9B,EAAM4C,KAAOxB,EAAMU,MACzDV,EACJ,KAGX,QAAShB,KAEL,IAAK,GADDyC,MACKC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAYC,GAAMC,UAAUD,EAEhC,IAAID,EAAYG,OAAS,EACrB,MAAOH,GAAYI,IAAI,SAAUjF,GAC7B,MAAOoC,GAASpC,IAGxB,IAAIkF,GAAaL,EAAY,EAC7B,IAAmC,gBAAxBK,GAAWC,UAAwD,gBAAxBD,GAAWE,SAC7D,KAAM,IAAI/B,GAAe,qBAExB,IAA4B,aAAxB6B,EAAWC,SAChB,KAAM,IAAI9B,GAAe,iCAG7B,IADAW,EAAMkB,EAAWC,UAAYD,EAAWE,UAAYF,EAClB,gBAAvBA,GAAWG,QAClBpB,EAAWiB,EAAWG,SAAWH,MAMjC,IAH4B,MAAxBA,EAAWI,YACXb,EAAQS,EAAWI,WAAaJ,GAEV,MAAtBA,EAAWP,QAAiB,CACxBY,MAAMC,QAAQN,EAAWP,SACzBO,EAAWP,QAAUO,EAAWP,QAAQM,IAAI,SAAUN,GAClD,MAAOA,GAAQc,gBAInBP,EAAWP,QAAUO,EAAWP,QAAQc,aAE5C,IAAIC,GAAWH,MAAMC,QAAQN,EAAWP,SAAWO,EAAWP,SAAWO,EAAWP,QACpFe,GAASC,QAAQ,SAAUC,GACN,MAAblB,EAAKkB,IAAwC,MAAxBV,EAAWI,YAChCZ,EAAKkB,GAAOV,KAK5B,MAAOA,GAhJX,GAAIW,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIoC,GAAgC,SAAU+C,GAE1C,QAAS/C,GAAegD,GACpB,GAAIC,GAAQhH,IAKZ,OAJA+G,GAAU,eAAiBA,EAC3BC,EAAQF,EAAOvG,KAAKP,KAAM+G,IAAY/G,KACtCgH,EAAMD,QAAUA,EAChBC,EAAMrG,KAAOqG,EAAMH,YAAYlG,KACxBqG,EAEX,MATAT,GAAUxC,EAAgB+C,GASnB/C,GACTkD,MACFtH,GAAQoE,eAAiBA,CACzB,IAAIY,MACAQ,KACAC,KACAV,IACJ/E,GAAQ0E,SAAW,QACnB,IAAI3B,IACJ,SAAWA,GACPA,EAAMA,EAAY,KAAI,GAAK,OAC3BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAiB,UAAI,IAAM,YACjCA,EAAMA,EAAY,KAAI,IAAM,OAC5BA,EAAMA,EAAc,OAAI,GAAK,SAC7BA,EAAMA,EAAa,MAAI,IAAM,QAC7BA,EAAMA,EAAkB,WAAI,IAAM,aAClCA,EAAMA,EAAmB,YAAI,GAAK,cAClCA,EAAMA,EAAuB,gBAAI,GAAK,kBACtCA,EAAMA,EAAwB,iBAAI,GAAK,mBACvCA,EAAMA,EAAW,IAAI,IAAM,OAC5BA,EAAQ/C,EAAQ+C,QAAU/C,EAAQ+C,WAYrC/C,EAAQgD,OAASA,EAYjBhD,EAAQiD,KAAOA,EAmCfjD,EAAQkD,MAAQA,EA6ChBlD,EAAQmD,SAAWA,GFuIb,SAAUlD,EAAQD,GG1RxB,YAEA,IAAIuH,GAASpG,OAAOS,UAAUC,eAC1B2F,EAAQrG,OAAOS,UAAU6F,SACzBrG,EAAiBD,OAAOC,eACxBsG,EAAOvG,OAAOwG,yBAEdpB,EAAU,SAAiBqB,GAC9B,MAA6B,kBAAlBtB,OAAMC,QACTD,MAAMC,QAAQqB,GAGK,mBAApBJ,EAAM5G,KAAKgH,IAGfC,EAAgB,SAAuBC,GAC1C,IAAKA,GAA2B,oBAApBN,EAAM5G,KAAKkH,GACtB,OAAO,CAGR,IAAIC,GAAoBR,EAAO3G,KAAKkH,EAAK,eACrCE,EAAmBF,EAAIZ,aAAeY,EAAIZ,YAAYtF,WAAa2F,EAAO3G,KAAKkH,EAAIZ,YAAYtF,UAAW,gBAE9G,IAAIkG,EAAIZ,cAAgBa,IAAsBC,EAC7C,OAAO,CAKR,IAAIC,EACJ,KAAKA,IAAOH,IAEZ,WAAsB,KAARG,GAAuBV,EAAO3G,KAAKkH,EAAKG,IAInDC,EAAc,SAAqBC,EAAQC,GAC1ChH,GAAmC,cAAjBgH,EAAQpH,KAC7BI,EAAe+G,EAAQC,EAAQpH,MAC9BM,YAAY,EACZD,cAAc,EACdW,MAAOoG,EAAQC,SACfC,UAAU,IAGXH,EAAOC,EAAQpH,MAAQoH,EAAQC,UAK7BE,EAAc,SAAqBT,EAAK9G,GAC3C,GAAa,cAATA,EAAsB,CACzB,IAAKuG,EAAO3G,KAAKkH,EAAK9G,GACrB,MACM,IAAI0G,EAGV,MAAOA,GAAKI,EAAK9G,GAAMgB,MAIzB,MAAO8F,GAAI9G,GAGZf,GAAOD,QAAU,QAASwI,KACzB,GAAIJ,GAASpH,EAAMyH,EAAKC,EAAMC,EAAaC,EACvCT,EAASrC,UAAU,GACnBrF,EAAI,EACJsF,EAASD,UAAUC,OACnB8C,GAAO,CAaX,KAVsB,iBAAXV,KACVU,EAAOV,EACPA,EAASrC,UAAU,OAEnBrF,EAAI,IAES,MAAV0H,GAAqC,gBAAXA,IAAyC,kBAAXA,MAC3DA,MAGM1H,EAAIsF,IAAUtF,EAGpB,GAAe,OAFf2H,EAAUtC,UAAUrF,IAInB,IAAKO,IAAQoH,GACZK,EAAMF,EAAYJ,EAAQnH,GAC1B0H,EAAOH,EAAYH,EAASpH,GAGxBmH,IAAWO,IAEVG,GAAQH,IAASb,EAAca,KAAUC,EAAcpC,EAAQmC,MAC9DC,GACHA,GAAc,EACdC,EAAQH,GAAOlC,EAAQkC,GAAOA,MAE9BG,EAAQH,GAAOZ,EAAcY,GAAOA,KAIrCP,EAAYC,GAAUnH,KAAMA,EAAMqH,SAAUG,EAAOK,EAAMD,EAAOF,UAGtC,KAATA,GACjBR,EAAYC,GAAUnH,KAAMA,EAAMqH,SAAUK,IAQjD,OAAOP,KHkSF,SAAUlI,EAAQD,EAASM,GAEjC,YAoCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GIhSje,QAASC,GAAc7E,GAAoB,GAAd8E,GAAc,yDACzC,OAAY,OAAR9E,EAAqB8E,GACG,kBAAjB9E,GAAK8E,UACdA,GAAU,aAAOA,EAAS9E,EAAK8E,YAEd,MAAf9E,EAAK+E,QAA0C,UAAxB/E,EAAK+E,OAAOxD,UAAwBvB,EAAK+E,OAAOC,QAAQ9E,QAAUF,EAAKgF,QAAQ9E,MACjG4E,EAEFD,EAAc7E,EAAK+E,OAAQD,IJiPpCtI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQ4J,WAAa5J,EAAQwJ,kBAAgBK,EAE/D,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IIja5d,OJqaII,EAAW3B,EAAuB4B,GIpatC,OJwaIC,EAAe7B,EAAuB8B,GIva1C,OJ2aIC,EAAc/B,EAAuBgC,GI1azC,QJ8aIC,EAAUjC,EAAuBkC,GI7arC,OJibIC,EAAWnC,EAAuBoC,GIhbtC,OJobIC,EAASrC,EAAuBsC,GI9a9BxB,E,YJ6bJ,QAASA,KAGP,MAFAb,GAAgB1I,KAAMuJ,GAEfT,EAA2B9I,MAAOuJ,EAAW7C,WAAa5F,OAAOqJ,eAAeZ,IAAayB,MAAMhL,KAAMyF,YAwClH,MA7CAuD,GAAUO,EAAY0B,GAQtBxB,EAAaF,IACX3B,IAAK,SACLjG,MAAO,WIncP,sFACA3B,KAAK2E,WAAa,GAAIlC,WAAUe,WAAWI,MAAM5D,KAAKkL,YJuctDtD,IAAK,QACLjG,MAAO,WIpcP,OAAO,GAAIwJ,YAAQC,OAAOpL,KAAK2B,SAAS,aAAO3B,KAAKoJ,UAAWpJ,KAAK2E,WAAW0G,cJwc/EzD,IAAK,SACLjG,MAAO,SItcFhB,EAAMgB,GACX,GAAI2J,GAAY7I,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAM6I,gBACrC,OAAbD,GACFtL,KAAK2E,WAAW2G,UAAUA,EAAW3J,MJ0cvCiG,IAAK,WACLjG,MAAO,SIvcA6J,EAAO9F,EAAQ/E,EAAMgB,GAC5B3B,KAAKyL,OAAO9K,EAAMgB,MJ0clBiG,IAAK,WACLjG,MAAO,SIxcA6J,EAAO7J,EAAO+J,GACrB,GAAqB,gBAAV/J,IAAsBA,EAAMgK,SAAS,MAAO,CACrD,GAAIC,GAAQnJ,UAAUE,OAAOU,EAAMwC,SACnC7F,MAAKqJ,OAAOwC,aAAaD,EAAiB,IAAVJ,EAAcxL,KAAOA,KAAK8L,MAC1DF,EAAMG,SAAS,EAAGpK,EAAMqK,MAAM,GAAI,QAElC,wFAAeR,EAAO7J,EAAO+J,OJ6c1BnC,GIxegB9G,UAAUU,MA+BnCoG,GAAW/E,MAAQ/B,UAAUC,MAAMuJ,UJgdnC,II5cM5I,G,YACJ,WAAY6H,GAAS,yEACbA,GADa,OAEnB,GAAKgB,SAFc,EJ6kBrB,MAjIAlD,GAAU3F,EAAO8I,GAWjB1C,EAAapG,IACXuE,IAAK,QACLjG,MAAO,WI1cP,MATwB,OAApB3B,KAAKkM,MAAME,QACbpM,KAAKkM,MAAME,MAAQpM,KAAKqM,YAAY5J,UAAUS,MAAMoJ,OAAO,SAACF,EAAOG,GACjE,MAAsB,KAAlBA,EAAK7G,SACA0G,EAEAA,EAAMhB,OAAOmB,EAAK5K,QAASwH,EAAcoD,KAEjD,GAAIpB,YAASC,OAAO,KAAMjC,EAAcnJ,QAEtCA,KAAKkM,MAAME,SJudlBxE,IAAK,WACLjG,MAAO,SIrdA6J,EAAO9F,GACd,uFAAe8F,EAAO9F,GACtB1F,KAAKkM,YJwdLtE,IAAK,WACLjG,MAAO,SItdA6J,EAAO9F,EAAQ/E,EAAMgB,GACxB+D,GAAU,IACVjD,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAMmC,OACpC2G,EAAQ9F,IAAW1F,KAAK0F,UAC1B1F,KAAKyL,OAAO9K,EAAMgB,GAGpB,uFAAe6J,EAAOgB,KAAKC,IAAI/G,EAAQ1F,KAAK0F,SAAW8F,EAAQ,GAAI7K,EAAMgB,GAE3E3B,KAAKkM,aJydLtE,IAAK,WACLjG,MAAO,SIvdA6J,EAAO7J,EAAO+J,GACrB,GAAW,MAAPA,EAAa,MAAO,GAAP,qFAAsBF,EAAO7J,EAAO+J,EACrD,IAAqB,IAAjB/J,EAAM+D,OAAV,CACA,GAAIgH,GAAQ/K,EAAMuD,MAAM,MACpByH,EAAOD,EAAME,OACbD,GAAKjH,OAAS,IACZ8F,EAAQxL,KAAK0F,SAAW,GAA2B,MAAtB1F,KAAK6M,SAASC,KAC7C,uFAAeN,KAAKC,IAAIjB,EAAOxL,KAAK0F,SAAW,GAAIiH,GAEnD3M,KAAK6M,SAASC,KAAKf,SAAS/L,KAAK6M,SAASC,KAAKpH,SAAUiH,GAE3D3M,KAAKkM,SAEP,IAAIN,GAAQ5L,IACZ0M,GAAMJ,OAAO,SAASd,EAAOuB,GAG3B,MAFAnB,GAAQA,EAAM1G,MAAMsG,GAAO,GAC3BI,EAAMG,SAAS,EAAGgB,GACXA,EAAKrH,QACX8F,EAAQmB,EAAKjH,YJ0dhBkC,IAAK,eACLjG,MAAO,SIxdI2C,EAAM0I,GACjB,GAAIC,GAAOjN,KAAK6M,SAASI,IACzB,4FAAmB3I,EAAM0I,GACrBC,YAAgBC,YAClBD,EAAKE,SAEPnN,KAAKkM,YJ2dLtE,IAAK,SACLjG,MAAO,WIrdP,MAHyB,OAArB3B,KAAKkM,MAAMxG,SACb1F,KAAKkM,MAAMxG,OAAS,sFA1GH,GA4GZ1F,KAAKkM,MAAMxG,UJ4dlBkC,IAAK,eACLjG,MAAO,SI1dImG,EAAQkF,GACnB,2FAAmBlF,EAAQkF,GAC3BhN,KAAKkM,YJ6dLtE,IAAK,WACLjG,MAAO,SI3dAyL,GACP,uFAAeA,GACfpN,KAAKkM,YJ8dLtE,IAAK,OACLjG,MAAO,SI5dJ6J,GACH,0FAAkBA,GAAO,MJ+dzB5D,IAAK,cACLjG,MAAO,SI7dG0L,GACV,0FAAkBA,GAClBrN,KAAKkM,YJgeLtE,IAAK,QACLjG,MAAO,SI9dH6J,GAAsB,GAAf8B,GAAe,uDAC1B,IAAIA,IAAoB,IAAV9B,GAAeA,GAASxL,KAAK0F,SAnIxB,GAmIoD,CACrE,GAAI6C,GAAQvI,KAAKuI,OACjB,OAAc,KAAViD,GACFxL,KAAKqJ,OAAOwC,aAAatD,EAAOvI,MACzBA,OAEPA,KAAKqJ,OAAOwC,aAAatD,EAAOvI,KAAK8L,MAC9BvD,GAGT,GAAIuD,GAAOA,EAAPA,kFAAmBN,EAAO8B,EAE9B,OADAtN,MAAKkM,SACEJ,MJqeJzI,GI9kBWZ,UAAUY,MA6G9BA,GAAMwC,SAAW,QACjBxC,EAAMgC,QAAU,IAChBhC,EAAMkK,aAAe,QACrBlK,EAAMmK,iBAAmBlK,UAAQb,UAAUU,MAAOsK,WJmflD9N,EIpeSwJ,gBJqeTxJ,EIrewB4J,aJsexB5J,EIte6CqD,QAATK,GJ0e9B,SAAUzD,EAAQD,EAASM,GKvpBjC,GAAIyN,GAAO,EAAQ,IACfC,EAAQ,EAAQ,IAChBxF,EAAS,EAAQ,GACjByF,EAAK,EAAQ,IAGbC,EAAiBC,OAAOC,aAAa,GAGrC5C,EAAQ,SAAU6C,GAEhB/H,MAAMC,QAAQ8H,GAChBhO,KAAKgO,IAAMA,EACK,MAAPA,GAAe/H,MAAMC,QAAQ8H,EAAIA,KAC1ChO,KAAKgO,IAAMA,EAAIA,IAEfhO,KAAKgO,OAKT7C,GAAM5J,UAAU6J,OAAS,SAAUuB,EAAMhI,GACvC,GAAIsJ,KACJ,OAAoB,KAAhBtB,EAAKjH,OAAqB1F,MAC9BiO,EAAM7C,OAASuB,EACG,MAAdhI,GAA4C,gBAAfA,IAA2B7D,OAAOoN,KAAKvJ,GAAYe,OAAS,IAC3FuI,EAAMtJ,WAAaA,GAEd3E,KAAKmO,KAAKF,KAGnB9C,EAAM5J,UAAkB,OAAI,SAAUmE,GACpC,MAAIA,IAAU,EAAU1F,KACjBA,KAAKmO,MAAO,OAAUzI,KAG/ByF,EAAM5J,UAAU6M,OAAS,SAAU1I,EAAQf,GACzC,GAAIe,GAAU,EAAG,MAAO1F,KACxB,IAAIiO,IAAUG,OAAQ1I,EAItB,OAHkB,OAAdf,GAA4C,gBAAfA,IAA2B7D,OAAOoN,KAAKvJ,GAAYe,OAAS,IAC3FuI,EAAMtJ,WAAaA,GAEd3E,KAAKmO,KAAKF,IAGnB9C,EAAM5J,UAAU4M,KAAO,SAAUF,GAC/B,GAAIzC,GAAQxL,KAAKgO,IAAItI,OACjB2I,EAASrO,KAAKgO,IAAIxC,EAAQ,EAE9B,IADAyC,EAAQ9F,GAAO,KAAU8F,GACH,gBAAXI,GAAqB,CAC9B,GAA+B,gBAApBJ,GAAc,QAA8C,gBAArBI,GAAe,OAE/D,MADArO,MAAKgO,IAAIxC,EAAQ,IAAO,OAAU6C,EAAe,OAAIJ,EAAc,QAC5DjO,IAIT,IAAgC,gBAArBqO,GAAe,QAAkC,MAAhBJ,EAAM7C,SAChDI,GAAS,EAEa,iBADtB6C,EAASrO,KAAKgO,IAAIxC,EAAQ,KAGxB,MADAxL,MAAKgO,IAAIM,QAAQL,GACVjO,IAGX,IAAI2N,EAAMM,EAAMtJ,WAAY0J,EAAO1J,YAAa,CAC9C,GAA4B,gBAAjBsJ,GAAM7C,QAAgD,gBAAlBiD,GAAOjD,OAGpD,MAFApL,MAAKgO,IAAIxC,EAAQ,IAAOJ,OAAQiD,EAAOjD,OAAS6C,EAAM7C,QACtB,gBAArB6C,GAAMtJ,aAAyB3E,KAAKgO,IAAIxC,EAAQ,GAAG7G,WAAasJ,EAAMtJ,YAC1E3E,IACF,IAA4B,gBAAjBiO,GAAMG,QAAgD,gBAAlBC,GAAOD,OAG3D,MAFApO,MAAKgO,IAAIxC,EAAQ,IAAO4C,OAAQC,EAAOD,OAASH,EAAMG,QACtB,gBAArBH,GAAMtJ,aAAyB3E,KAAKgO,IAAIxC,EAAQ,GAAG7G,WAAasJ,EAAMtJ,YAC1E3E,MASb,MALIwL,KAAUxL,KAAKgO,IAAItI,OACrB1F,KAAKgO,IAAIG,KAAKF,GAEdjO,KAAKgO,IAAIO,OAAO/C,EAAO,EAAGyC,GAErBjO,MAGTmL,EAAM5J,UAAUiN,KAAO,WACrB,GAAIH,GAASrO,KAAKgO,IAAIhO,KAAKgO,IAAItI,OAAS,EAIxC,OAHI2I,IAAUA,EAAOD,SAAWC,EAAO1J,YACrC3E,KAAKgO,IAAIS,MAEJzO,MAGTmL,EAAM5J,UAAUmN,OAAS,SAAUC,GACjC,MAAO3O,MAAKgO,IAAIU,OAAOC,IAGzBxD,EAAM5J,UAAU8E,QAAU,SAAUsI,GAClC3O,KAAKgO,IAAI3H,QAAQsI,IAGnBxD,EAAM5J,UAAUoE,IAAM,SAAUgJ,GAC9B,MAAO3O,MAAKgO,IAAIrI,IAAIgJ,IAGtBxD,EAAM5J,UAAUqN,UAAY,SAAUD,GACpC,GAAIE,MAAaC,IAKjB,OAJA9O,MAAKqG,QAAQ,SAASuH,IACPe,EAAUf,GAAMiB,EAASC,GAC/BX,KAAKP,MAENiB,EAAQC,IAGlB3D,EAAM5J,UAAU+K,OAAS,SAAUqC,EAAWI,GAC5C,MAAO/O,MAAKgO,IAAI1B,OAAOqC,EAAWI,IAGpC5D,EAAM5J,UAAUyN,aAAe,WAC7B,MAAOhP,MAAKsM,OAAO,SAAU5G,EAAQuJ,GACnC,MAAIA,GAAK7D,OACA1F,EAASkI,EAAGlI,OAAOuJ,GACjBA,EAAKC,OACPxJ,EAASuJ,EAAKC,OAEhBxJ,GACN,IAGLyF,EAAM5J,UAAUmE,OAAS,WACvB,MAAO1F,MAAKsM,OAAO,SAAU5G,EAAQuJ,GACnC,MAAOvJ,GAASkI,EAAGlI,OAAOuJ,IACzB,IAGL9D,EAAM5J,UAAUyK,MAAQ,SAAUmD,EAAOC,GACvCD,EAAQA,GAAS,EACE,gBAARC,KAAkBA,EAAMC,IAInC,KAHA,GAAIrB,MACAsB,EAAO1B,EAAG2B,SAASvP,KAAKgO,KACxBxC,EAAQ,EACLA,EAAQ4D,GAAOE,EAAKE,WAAW,CACpC,GAAIC,EACAjE,GAAQ2D,EACVM,EAASH,EAAKxD,KAAKqD,EAAQ3D,IAE3BiE,EAASH,EAAKxD,KAAKsD,EAAM5D,GACzBwC,EAAIG,KAAKsB,IAEXjE,GAASoC,EAAGlI,OAAO+J,GAErB,MAAO,IAAItE,GAAM6C,IAInB7C,EAAM5J,UAAUmO,QAAU,SAAUC,GAClC,GAAIC,GAAWhC,EAAG2B,SAASvP,KAAKgO,KAC5B6B,EAAYjC,EAAG2B,SAASI,EAAM3B,KAC9BA,KACA8B,EAAaD,EAAUE,MAC3B,IAAkB,MAAdD,GAAmD,gBAAtBA,GAAW1B,QAAgD,MAAzB0B,EAAWnL,WAAoB,CAEhG,IADA,GAAIqL,GAAYF,EAAW1B,OACI,WAAxBwB,EAASK,YAA2BL,EAASM,cAAgBF,GAClEA,GAAaJ,EAASM,aACtBlC,EAAIG,KAAKyB,EAAS9D,OAEhBgE,GAAW1B,OAAS4B,EAAY,GAClCH,EAAU/D,KAAKgE,EAAW1B,OAAS4B,GAIvC,IADA,GAAI5D,GAAQ,GAAIjB,GAAM6C,GACf4B,EAASJ,WAAaK,EAAUL,WACrC,GAA6B,WAAzBK,EAAUI,WACZ7D,EAAM+B,KAAK0B,EAAU/D,YAChB,IAA4B,WAAxB8D,EAASK,WAClB7D,EAAM+B,KAAKyB,EAAS9D,YACf,CACL,GAAIpG,GAAS8G,KAAKC,IAAImD,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAAS9D,KAAKpG,GACvB0K,EAAUP,EAAU/D,KAAKpG,EAC7B,IAA8B,gBAAnB0K,GAAQhC,OAAqB,CACtC,GAAIH,KACyB,iBAAlBkC,GAAO/B,OAChBH,EAAMG,OAAS1I,EAEfuI,EAAM7C,OAAS+E,EAAO/E,MAGxB,IAAIzG,GAAaiJ,EAAGjJ,WAAW+K,QAAQS,EAAOxL,WAAYyL,EAAQzL,WAAqC,gBAAlBwL,GAAO/B,OAK5F,IAJIzJ,IAAYsJ,EAAMtJ,WAAaA,GACnCyH,EAAM+B,KAAKF,IAGN4B,EAAUL,WAAa7B,EAAMvB,EAAM4B,IAAI5B,EAAM4B,IAAItI,OAAS,GAAIuI,GAAQ,CACzE,GAAIoC,GAAO,GAAIlF,GAAMyE,EAASS,OAC9B,OAAOjE,GAAMkE,OAAOD,GAAM7B,YAKU,gBAAtB4B,GAAgB,QAA2C,gBAAlBD,GAAO/B,QAChEhC,EAAM+B,KAAKiC,GAIjB,MAAOhE,GAAMoC,QAGfrD,EAAM5J,UAAU+O,OAAS,SAAUX,GACjC,GAAIvD,GAAQ,GAAIjB,GAAMnL,KAAKgO,IAAIhC,QAK/B,OAJI2D,GAAM3B,IAAItI,OAAS,IACrB0G,EAAM+B,KAAKwB,EAAM3B,IAAI,IACrB5B,EAAM4B,IAAM5B,EAAM4B,IAAIsC,OAAOX,EAAM3B,IAAIhC,MAAM,KAExCI,GAGTjB,EAAM5J,UAAUmM,KAAO,SAAUiC,EAAOnE,GACtC,GAAIxL,KAAKgO,MAAQ2B,EAAM3B,IACrB,MAAO,IAAI7C,EAEb,IAAIoF,IAAWvQ,KAAM2P,GAAOhK,IAAI,SAAUyG,GACxC,MAAOA,GAAMzG,IAAI,SAAUiI,GACzB,GAAiB,MAAbA,EAAGxC,OACL,MAA4B,gBAAdwC,GAAGxC,OAAsBwC,EAAGxC,OAASyC,CAErD,IAAI2C,GAAQpE,IAAUuD,EAAS,KAAO,MACtC,MAAM,IAAI1I,OAAM,iBAAmBuJ,EAAO,mBACzCC,KAAK,MAENrE,EAAQ,GAAIjB,GACZuF,EAAahD,EAAK6C,EAAQ,GAAIA,EAAQ,GAAI/E,GAC1CoE,EAAWhC,EAAG2B,SAASvP,KAAKgO,KAC5B6B,EAAYjC,EAAG2B,SAASI,EAAM3B,IA6BlC,OA5BA0C,GAAWrK,QAAQ,SAAUsK,GAE3B,IADA,GAAIjL,GAASiL,EAAU,GAAGjL,OACnBA,EAAS,GAAG,CACjB,GAAIkL,GAAW,CACf,QAAQD,EAAU,IAChB,IAAKjD,GAAKmD,OACRD,EAAWpE,KAAKC,IAAIoD,EAAUK,aAAcxK,GAC5C0G,EAAM+B,KAAK0B,EAAU/D,KAAK8E,GAC1B,MACF,KAAKlD,GAAKoD,OACRF,EAAWpE,KAAKC,IAAI/G,EAAQkK,EAASM,cACrCN,EAAS9D,KAAK8E,GACdxE,EAAc,OAAEwE,EAChB,MACF,KAAKlD,GAAKqD,MACRH,EAAWpE,KAAKC,IAAImD,EAASM,aAAcL,EAAUK,aAAcxK,EACnE,IAAIyK,GAASP,EAAS9D,KAAK8E,GACvBR,EAAUP,EAAU/D,KAAK8E,EACzBjD,GAAMwC,EAAO/E,OAAQgF,EAAQhF,QAC/BgB,EAAMgC,OAAOwC,EAAUhD,EAAGjJ,WAAW+I,KAAKyC,EAAOxL,WAAYyL,EAAQzL,aAErEyH,EAAM+B,KAAKiC,GAAiB,OAAEQ,GAIpClL,GAAUkL,KAGPxE,EAAMoC,QAGfrD,EAAM5J,UAAUyP,SAAW,SAAUrC,EAAWsC,GAC9CA,EAAUA,GAAW,IAIrB,KAHA,GAAI3B,GAAO1B,EAAG2B,SAASvP,KAAKgO,KACxBjB,EAAO,GAAI5B,GACX/K,EAAI,EACDkP,EAAKE,WAAW,CACrB,GAAwB,WAApBF,EAAKW,WAAyB,MAClC,IAAIE,GAASb,EAAKS,OACdZ,EAAQvB,EAAGlI,OAAOyK,GAAUb,EAAKY,aACjC1E,EAAiC,gBAAlB2E,GAAO/E,OACxB+E,EAAO/E,OAAO8F,QAAQD,EAAS9B,GAASA,GAAS,CACnD,IAAI3D,EAAQ,EACVuB,EAAKoB,KAAKmB,EAAKxD,YACV,IAAIN,EAAQ,EACjBuB,EAAKoB,KAAKmB,EAAKxD,KAAKN,QACf,CACL,IAA0D,IAAtDmD,EAAU5B,EAAMuC,EAAKxD,KAAK,GAAGnH,eAAkBvE,GACjD,MAEFA,IAAK,EACL2M,EAAO,GAAI5B,IAGX4B,EAAKrH,SAAW,GAClBiJ,EAAU5B,KAAU3M,IAIxB+K,EAAM5J,UAAU4P,UAAY,SAAUxB,EAAOyB,GAE3C,GADAA,IAAaA,EACQ,gBAAVzB,GACT,MAAO3P,MAAKqR,kBAAkB1B,EAAOyB,EAKvC,KAHA,GAAIxB,GAAWhC,EAAG2B,SAASvP,KAAKgO,KAC5B6B,EAAYjC,EAAG2B,SAASI,EAAM3B,KAC9B5B,EAAQ,GAAIjB,GACTyE,EAASJ,WAAaK,EAAUL,WACrC,GAA4B,WAAxBI,EAASK,aAA4BmB,GAAqC,WAAzBvB,EAAUI,WAExD,GAA6B,WAAzBJ,EAAUI,WACnB7D,EAAM+B,KAAK0B,EAAU/D,YAChB,CACL,GAAIpG,GAAS8G,KAAKC,IAAImD,EAASM,aAAcL,EAAUK,cACnDC,EAASP,EAAS9D,KAAKpG,GACvB0K,EAAUP,EAAU/D,KAAKpG,EAC7B,IAAIyK,EAAe,OAEjB,QACSC,GAAgB,OACzBhE,EAAM+B,KAAKiC,GAGXhE,EAAMgC,OAAO1I,EAAQkI,EAAGjJ,WAAWwM,UAAUhB,EAAOxL,WAAYyL,EAAQzL,WAAYyM,QAdtFhF,GAAMgC,OAAOR,EAAGlI,OAAOkK,EAAS9D,QAkBpC,OAAOM,GAAMoC,QAGfrD,EAAM5J,UAAU8P,kBAAoB,SAAU7F,EAAO4F,GACnDA,IAAaA,CAGb,KAFA,GAAIxB,GAAWhC,EAAG2B,SAASvP,KAAKgO,KAC5BsD,EAAS,EACN1B,EAASJ,WAAa8B,GAAU9F,GAAO,CAC5C,GAAI9F,GAASkK,EAASM,aAClBqB,EAAW3B,EAASK,UACxBL,GAAS9D,OACQ,WAAbyF,GAGoB,WAAbA,IAA0BD,EAAS9F,IAAU4F,KACtD5F,GAAS9F,GAEX4L,GAAU5L,GALR8F,GAASgB,KAAKC,IAAI/G,EAAQ8F,EAAQ8F,GAOtC,MAAO9F,IAIT5L,EAAOD,QAAUwL,GL8pBX,SAAUvL,EAAQD,EAASM,GAEjC,YAmBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAtBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IMhgC5d,ONogCIc,EAASrC,EAAuBsC,GMngCpC,ONugCIP,EAAc/B,EAAuBgC,GMpgCnCnH,E,YNihCJ,QAASA,KAGP,MAFAoF,GAAgB1I,KAAMsD,GAEfwF,EAA2B9I,MAAOsD,EAAOoD,WAAa5F,OAAOqJ,eAAe7G,IAAS0H,MAAMhL,KAAMyF,YA0C1G,MA/CAuD,GAAU1F,EAAQkO,GAQlB/H,EAAanG,IACXsE,IAAK,WACLjG,MAAO,SM1gCA6J,EAAO9F,EAAQ/E,EAAMgB,GAC5B,GAAI2B,EAAOmO,QAAQzR,KAAKsJ,QAAQzD,SAAUlF,GAAQ,GAAK8B,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAMgP,MAAO,CAClG,GAAIpN,GAAOtE,KAAK2R,QAAQnG,EAAO9F,EAC3B/D,IACF2C,EAAKsN,KAAKjR,EAAMgB,OAGlB,wFAAe6J,EAAO9F,EAAQ/E,EAAMgB,MN8gCtCiG,IAAK,WACLjG,MAAO,SM3gCAyL,GAEP,GADA,uFAAeA,GACXpN,KAAKqJ,iBAAkB/F,IACvBA,EAAOmO,QAAQzR,KAAKsJ,QAAQzD,SAAU7F,KAAKqJ,OAAOC,QAAQzD,UAAY,EAAG,CAC3E,GAAIwD,GAASrJ,KAAKqJ,OAAOsI,QAAQ3R,KAAKsR,SAAUtR,KAAK0F,SACrD1F,MAAK6R,aAAaxI,GAClBA,EAAOuI,KAAK5R,YN8gCd4H,IAAK,UACLjG,MAAO,SM9iCM5B,EAAM4P,GACnB,GAAImC,GAAYxO,EAAOyO,MAAMb,QAAQnR,GACjCiS,EAAa1O,EAAOyO,MAAMb,QAAQvB,EACtC,OAAImC,IAAa,GAAKE,GAAc,EAC3BF,EAAYE,EACVjS,IAAS4P,EACX,EACE5P,EAAO4P,GACR,EAED,MNmjCJrM,GM9jCYb,UAAUa,OAoC/BA,GAAOkK,iBAAmBlK,EAAQb,UAAUU,MAAOI,WAEnDD,EAAOyO,OACL,SAAU,SACV,YAAa,SAAU,SAAU,OAAQ,SACzC,OAAQ,QN8hCVpS,EAAQqD,QM1hCOM,GN8hCT,SAAU1D,EAAQD,EAASM,GAEjC,YAoDA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCOvxBhH,QAASqJ,GAAaC,EAAWC,GAS/B,GARAA,GAAa,cAAO,GAClBD,UAAWA,EACX7R,SACE+R,WAAW,EACXC,UAAU,EACVC,SAAS,IAEVH,GACEA,EAAWI,OAASJ,EAAWI,QAAUC,EAAMC,SAASF,OAI3D,GADAJ,EAAWI,MAAQC,EAAME,OAAN,UAAuBP,EAAWI,OAC7B,MAApBJ,EAAWI,MACb,KAAM,IAAIvL,OAAJ,iBAA2BmL,EAAWI,MAAtC,8BAJRJ,GAAWI,MAAQI,SAOrB,IAAIC,IAAc,cAAO,KAAUT,EAAWI,MAAME,WACnDG,EAAaT,GAAY/L,QAAQ,SAASyM,GACzCA,EAAOxS,QAAUwS,EAAOxS,YACxBQ,OAAOoN,KAAK4E,EAAOxS,SAAS+F,QAAQ,SAASzG,IACZ,IAA3BkT,EAAOxS,QAAQV,KACjBkT,EAAOxS,QAAQV,UAIrB,IAAImT,GAAcjS,OAAOoN,KAAK2E,EAAYvS,SAASgQ,OAAOxP,OAAOoN,KAAKkE,EAAW9R,UAC7E0S,EAAeD,EAAYzG,OAAO,SAASwG,EAAQnS,GACrD,GAAIsS,GAAcR,EAAME,OAAN,WAAwBhS,EAM1C,OALmB,OAAfsS,EACFC,EAAMC,MAAN,eAA2BxS,EAA3B,4CAEAmS,EAAOnS,GAAQsS,EAAYP,aAEtBI,MAqBT,OAlB0B,OAAtBV,EAAW9R,SAAmB8R,EAAW9R,QAAQ8S,SACjDhB,EAAW9R,QAAQ8S,QAAQvM,cAAgB/F,SAC7CsR,EAAW9R,QAAQ8S,SACjBjB,UAAWC,EAAW9R,QAAQ8S,UAGlChB,GAAa,cAAO,KAAUK,EAAMC,UAAYpS,QAAS0S,GAAgBH,EAAaT,IACrF,SAAU,YAAa,sBAAsB/L,QAAQ,SAASuB,GAC9B,gBAApBwK,GAAWxK,KACpBwK,EAAWxK,GAAOyL,SAASC,cAAclB,EAAWxK,OAGxDwK,EAAW9R,QAAUQ,OAAOoN,KAAKkE,EAAW9R,SAASgM,OAAO,SAASwG,EAAQnS,GAI3E,MAHIyR,GAAW9R,QAAQK,KACrBmS,EAAOnS,GAAQyR,EAAW9R,QAAQK,IAE7BmS,OAEFV,EAKT,QAASmB,GAAOC,EAAUC,EAAQjI,EAAOoB,GACvC,GAAI5M,KAAK+H,QAAQ2L,SAAW1T,KAAK2T,aAAeF,IAAWG,UAAQC,QAAQC,KACzE,MAAO,IAAI3I,UAEb,IAAI4I,GAAiB,MAATvI,EAAgB,KAAOxL,KAAKgU,eACpCC,EAAWjU,KAAKkU,OAAO9H,MACvB+H,EAASX,GAUb,IATa,MAATO,KACY,IAAVvI,IAAgBA,EAAQuI,EAAMvI,OACrB,MAAToB,EACFmH,EAAQK,EAAWL,EAAOI,EAAQV,GACf,IAAV7G,IACTmH,EAAQK,EAAWL,EAAOvI,EAAOoB,EAAO6G,IAE1CzT,KAAKqU,aAAaN,EAAOH,UAAQC,QAAQS,SAEvCH,EAAOzO,SAAW,EAAG,OACnB6O,GAAQX,UAAQY,OAAOC,YAAaN,EAAQF,EAAUR,EAE1D,KADA,EAAAzT,KAAK0U,SAAQC,KAAb,SAAkBf,UAAQY,OAAOI,eAAjC,OAAmDL,IAC/Cd,IAAWG,UAAQC,QAAQS,OAAQ,QACrC,EAAAtU,KAAK0U,SAAQC,KAAb,QAAqBJ,IAGzB,MAAOJ,GAGT,QAASU,GAASrJ,EAAO9F,EAAQ/E,EAAMgB,EAAO8R,GAC5C,GAAIrK,KAwBJ,OAvB2B,gBAAhBoC,GAAMA,OAA8C,gBAAjBA,GAAM9F,OAE5B,gBAAXA,IACT+N,EAAS9R,EAAOA,EAAQhB,EAAMA,EAAO+E,EAAQA,EAAS8F,EAAM9F,OAAQ8F,EAAQA,EAAMA,QAElF9F,EAAS8F,EAAM9F,OAAQ8F,EAAQA,EAAMA,OAEZ,gBAAX9F,KAChB+N,EAAS9R,EAAOA,EAAQhB,EAAMA,EAAO+E,EAAQA,EAAS,GAGpC,gBAAhB,KAAO/E,EAAP,cAAOA,KACTyI,EAAUzI,EACV8S,EAAS9R,GACgB,gBAAThB,KACH,MAATgB,EACFyH,EAAQzI,GAAQgB,EAEhB8R,EAAS9S,GAIb8S,EAASA,GAAUG,UAAQC,QAAQiB,KAC3BtJ,EAAO9F,EAAQ0D,EAASqK,GAGlC,QAASW,GAAWL,EAAOvI,EAAO9F,EAAQ+N,GACxC,GAAa,MAATM,EAAe,MAAO,KAC1B,IAAI5E,UAAOC,QACX,IAAI5D,YAAiBL,WAAO,QACV4I,EAAMvI,MAAOuI,EAAMvI,MAAQuI,EAAMrO,QAAQC,IAAI,SAASoP,GACpE,MAAOvJ,GAAM6F,kBAAkB0D,EAAKtB,IAAWG,UAAQC,QAAQC,QAFvC,QACzB3E,GADyB,KAClBC,EADkB,SAIrB,QACW2E,EAAMvI,MAAOuI,EAAMvI,MAAQuI,EAAMrO,QAAQC,IAAI,SAASoP,GACpE,MAAIA,GAAMvJ,GAAUuJ,IAAQvJ,GAASiI,IAAWG,UAAQC,QAAQC,KAAciB,EAC1ErP,GAAU,EACLqP,EAAMrP,EAEN8G,KAAKwI,IAAIxJ,EAAOuJ,EAAMrP,KAN5B,QACJyJ,GADI,KACGC,EADH,KAUP,MAAO,IAAI6F,SAAM9F,EAAOC,EAAMD,GP+lBhCrO,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQkV,SAAWlV,EAAQuS,iBAAe1I,EAE5D,IAAI0L,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAO5F,SAAwB,SAAU9H,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX0N,SAAyB1N,EAAIZ,cAAgBsO,QAAU1N,IAAQ0N,OAAO5T,UAAY,eAAkBkG,IAElQ2N,EAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,KO7lChiB,MACA,YPkmCI0B,EAAe7B,EAAuB8B,GOjmC1C,QPqmCIsL,EAAWpN,EAAuBqN,GOpmCtC,OPwmCIC,EAAYtN,EAAuBuN,GOvmCvC,OP2mCIC,EAAWxN,EAAuByN,GO1mCtC,OP8mCI1L,EAAc/B,EAAuBgC,GO7mCzC,QPinCI0L,EAAc1N,EAAuB2N,GOhnCzC,OPonCIhM,EAAW3B,EAAuB4B,GOnnCtC,QPunCIgM,EAAW5N,EAAuB6N,GOtnCtC,QP0nCIC,EAAU9N,EAAuB+N,GOxnCjCtD,GAAQ,aAAO,SAGbT,E,WA4CJ,WAAYN,GAAyB,WAAdpK,EAAc,yDAGnC,IAHmC,UACnC/H,KAAK+H,QAAUmK,EAAaC,EAAWpK,GACvC/H,KAAKmS,UAAYnS,KAAK+H,QAAQoK,UACR,MAAlBnS,KAAKmS,UACP,MAAOe,GAAMC,MAAM,0BAA2BhB,EAE5CnS,MAAK+H,QAAQmL,OACfT,EAAMS,MAAMlT,KAAK+H,QAAQmL,MAE3B,IAAIuD,GAAOzW,KAAKmS,UAAUuE,UAAUC,MACpC3W,MAAKmS,UAAUyE,UAAUC,IAAI,gBAC7B7W,KAAKmS,UAAUuE,UAAY,GAC3B1W,KAAKmS,UAAU2E,QAAU9W,KACzBA,KAAKP,KAAOO,KAAK+W,aAAa,aAC9B/W,KAAKP,KAAKmX,UAAUC,IAAI,YACxB7W,KAAKP,KAAKuX,aAAa,cAAc,GACrChX,KAAKiX,mBAAqBjX,KAAK+H,QAAQkP,oBAAsBjX,KAAKP,KAClEO,KAAK0U,QAAU,GAAId,WACnB5T,KAAKkX,OAASzU,UAAUE,OAAO3C,KAAKP,MAClCiV,QAAS1U,KAAK0U,QACdyC,UAAWnX,KAAK+H,QAAQqB,UAE1BpJ,KAAKkU,OAAS,GAAIkD,WAAOpX,KAAKkX,QAC9BlX,KAAKqX,UAAY,GAAIC,WAAUtX,KAAKkX,OAAQlX,KAAK0U,SACjD1U,KAAKwS,MAAQ,GAAIxS,MAAK+H,QAAQyK,MAAMxS,KAAMA,KAAK+H,SAC/C/H,KAAKsS,SAAWtS,KAAKwS,MAAM+E,UAAU,YACrCvX,KAAKqS,UAAYrS,KAAKwS,MAAM+E,UAAU,aACtCvX,KAAKuS,QAAUvS,KAAKwS,MAAM+E,UAAU,WACpCvX,KAAKwS,MAAMgF,OACXxX,KAAK0U,QAAQ+C,GAAG7D,UAAQY,OAAOI,cAAe,SAAC8C,GACzCA,IAAS9D,UAAQY,OAAOC,aAC1B,EAAKhV,KAAKmX,UAAUe,OAAO,WAAY,EAAKzD,OAAO0D,aAGvD5X,KAAK0U,QAAQ+C,GAAG7D,UAAQY,OAAOqD,cAAe,SAACpE,EAAQqE,GACrD,GAAI/D,GAAQ,EAAKsD,UAAUU,UACvBvM,EAAQuI,GAA0B,IAAjBA,EAAMrO,OAAeqO,EAAMvI,UAAQhC,EACxD+J,GAAOhT,KAAK,EAAM,WAChB,MAAO,GAAK2T,OAAO8D,OAAO,KAAMF,EAAWtM,IAC1CiI,IAEL,IAAIwE,GAAWjY,KAAKqS,UAAU6F,QAAf,yDAA8EzB,EAA9E,oBACfzW,MAAKmY,YAAYF,GACjBjY,KAAKuS,QAAQ6F,QACTpY,KAAK+H,QAAQsQ,aACfrY,KAAKP,KAAKuX,aAAa,mBAAoBhX,KAAK+H,QAAQsQ,aAEtDrY,KAAK+H,QAAQuQ,UACftY,KAAKuY,UPihDT,MA7eA9O,GAAagJ,EAAO,OAClB7K,IAAK,QACLjG,MAAO,SOjoCI6W,IACG,IAAVA,IACFA,EAAQ,OAEVC,UAAOC,MAAMF,MPooCb5Q,IAAK,OACLjG,MAAO,SOloCGwC,GACV,MAAOA,GAAK2S,SAAWrU,UAAUG,KAAKuB,MPqoCtCyD,IAAK,SACLjG,MAAO,SOnoCKhB,GAIZ,MAH0B,OAAtBX,KAAK2Y,QAAQhY,IACfuS,EAAMC,MAAN,iBAA6BxS,EAA7B,qCAEKX,KAAK2Y,QAAQhY,MPsoCpBiH,IAAK,WACLjG,MAAO,SOpoCOiX,EAAM9Q,GAA2B,WAAnB+Q,EAAmB,uDAC/C,IAAoB,gBAATD,GAAmB,CAC5B,GAAIjY,GAAOiY,EAAK9S,UAAY8S,EAAK/S,QACb,iBAATlF,GAETX,KAAK8C,SAAS,WAAanC,EAAMiY,EAAM9Q,GAEvChH,OAAOoN,KAAK0K,GAAMvS,QAAQ,SAACuB,GACzB,EAAK9E,SAAS8E,EAAKgR,EAAKhR,GAAME,SAIR,OAAtB9H,KAAK2Y,QAAQC,IAAkBC,GACjC3F,EAAM4F,KAAN,eAA0BF,EAA1B,QAAuC9Q,GAEzC9H,KAAK2Y,QAAQC,GAAQ9Q,GAChB8Q,EAAKG,WAAW,WAAaH,EAAKG,WAAW,cAC1B,aAApBjR,EAAOjC,SACTpD,UAAUK,SAASgF,GACV8Q,EAAKG,WAAW,YAAyC,kBAApBjR,GAAOhF,UACrDgF,EAAOhF,ePusCb2G,EAAagJ,IACX7K,IAAK,eACLjG,MAAO,SOhpCIwQ,GAA2B,GAAhB6G,GAAgB,uDAAN,IAChC,IAAyB,gBAAd7G,GAAwB,CACjC,GAAInM,GAAYmM,CAChBA,GAAYkB,SAAS4F,cAAc,OACnC9G,EAAUyE,UAAUC,IAAI7Q,GAG1B,MADAhG,MAAKmS,UAAUtG,aAAasG,EAAW6G,GAChC7G,KPqpCPvK,IAAK,OACLjG,MAAO,WOlpCP3B,KAAKqX,UAAU6B,SAAS,SPspCxBtR,IAAK,aACLjG,MAAO,SOppCE6J,EAAO9F,EAAQ+N,GAAQ,aACJoB,EAASrJ,EAAO9F,EAAQ+N,GADpB,QAEhC,OADCjI,GAD+B,KACxB9F,EADwB,KACd+N,EADc,KAEzBF,EAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAOiF,WAAW3N,EAAO9F,IACpC+N,EAAQjI,GAAQ,EAAE9F,MPgqCrBkC,IAAK,UACLjG,MAAO,WO7pCP3B,KAAKoZ,QAAO,MPiqCZxR,IAAK,SACLjG,MAAO,WO/pCc,GAAhB0X,KAAgB,wDACrBrZ,MAAKkX,OAAOkC,OAAOC,GACnBrZ,KAAKmS,UAAUyE,UAAUe,OAAO,eAAgB0B,MPoqChDzR,IAAK,QACLjG,MAAO,WOjqCP,GAAI2X,GAAYtZ,KAAKiX,mBAAmBqC,SACxCtZ,MAAKqX,UAAUkC,QACfvZ,KAAKiX,mBAAmBqC,UAAYA,EACpCtZ,KAAKwZ,oBPqqCL5R,IAAK,SACLjG,MAAO,SOnqCFhB,EAAMgB,GAAqC,WAA9B8R,EAA8B,uDAArBG,UAAQC,QAAQiB,GAC3C,OAAOvB,GAAOhT,KAAKP,KAAM,WACvB,GAAI+T,GAAQ,EAAKC,cAAa,GAC1BG,EAAS,GAAIhJ,UACjB,IAAa,MAAT4I,EACF,MAAOI,EACF,IAAI1R,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAMmC,OAC/CsP,EAAS,EAAKD,OAAOuF,WAAW1F,EAAMvI,MAAOuI,EAAMrO,OAA1C,KAAqD/E,EAAOgB,QAChE,IAAqB,IAAjBoS,EAAMrO,OAEf,MADA,GAAK2R,UAAU5L,OAAO9K,EAAMgB,GACrBwS,CAEPA,GAAS,EAAKD,OAAOwF,WAAW3F,EAAMvI,MAAOuI,EAAMrO,OAA1C,KAAqD/E,EAAOgB,IAGvE,MADA,GAAK0S,aAAaN,EAAOH,UAAQC,QAAQS,QAClCH,GACNV,MP0qCH7L,IAAK,aACLjG,MAAO,SOxqCE6J,EAAO9F,EAAQ/E,EAAMgB,EAAO8R,GAAQ,WACzCrK,SADyC,EAEVyL,EAASrJ,EAAO9F,EAAQ/E,EAAMgB,EAAO8R,GAF3B,QAG7C,OADCjI,GAF4C,KAErC9F,EAFqC,KAE7B0D,EAF6B,KAEpBqK,EAFoB,KAGtCF,EAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAOuF,WAAWjO,EAAO9F,EAAQ0D,IAC5CqK,EAAQjI,EAAO,MPsrClB5D,IAAK,aACLjG,MAAO,SOprCE6J,EAAO9F,EAAQ/E,EAAMgB,EAAO8R,GAAQ,WACzCrK,SADyC,EAEVyL,EAASrJ,EAAO9F,EAAQ/E,EAAMgB,EAAO8R,GAF3B,QAG7C,OADCjI,GAF4C,KAErC9F,EAFqC,KAE7B0D,EAF6B,KAEpBqK,EAFoB,KAGtCF,EAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAOwF,WAAWlO,EAAO9F,EAAQ0D,IAC5CqK,EAAQjI,EAAO,MPksClB5D,IAAK,YACLjG,MAAO,SOhsCC6J,GAAmB,GAAZ9F,GAAY,uDAAH,EACpBiU,QAEFA,GADmB,gBAAVnO,GACAxL,KAAKqX,UAAUuC,UAAUpO,EAAO9F,GAEhC1F,KAAKqX,UAAUuC,UAAUpO,EAAMA,MAAOA,EAAM9F,OAEvD,IAAImU,GAAkB7Z,KAAKmS,UAAU2H,uBACrC,QACEC,OAAQJ,EAAOI,OAASF,EAAgBG,IACxCC,OAAQN,EAAOM,OACfC,KAAMP,EAAOO,KAAOL,EAAgBK,KACpCC,MAAOR,EAAOQ,MAAQN,EAAgBK,KACtCF,IAAKL,EAAOK,IAAMH,EAAgBG,IAClCI,MAAOT,EAAOS,UPssChBxS,IAAK,cACLjG,MAAO,WOnsCiD,GAA9C6J,GAA8C,uDAAtC,EAAG9F,EAAmC,uDAA1B1F,KAAKqa,YAAc7O,EAAO,EACtCqJ,EAASrJ,EAAO9F,GADsB,QAExD,OADC8F,GADuD,KAChD9F,EADgD,KAEjD1F,KAAKkU,OAAOoG,YAAY9O,EAAO9F,MP+sCtCkC,IAAK,YACLjG,MAAO,WO7sC8C,GAA7C6J,GAA6C,uDAArCxL,KAAKgU,cAAa,GAAOtO,EAAY,uDAAH,CAClD,OAAqB,gBAAV8F,GACFxL,KAAKkU,OAAOqG,UAAU/O,EAAO9F,GAE7B1F,KAAKkU,OAAOqG,UAAU/O,EAAMA,MAAOA,EAAM9F,WPotClDkC,IAAK,WACLjG,MAAO,SOjtCA2C,GACP,MAAOA,GAAKgN,OAAOtR,KAAKkX,WPotCxBtP,IAAK,YACLjG,MAAO,WOjtCP,MAAO3B,MAAKkX,OAAOxR,YPqtCnBkC,IAAK,UACLjG,MAAO,SOntCD6J,GACN,MAAOxL,MAAKkX,OAAO3K,KAAKf,MPstCxB5D,IAAK,UACLjG,MAAO,SOptCD6J,GACN,MAAOxL,MAAKkX,OAAOnK,KAAKvB,MPutCxB5D,IAAK,WACLjG,MAAO,WOrtCsC,GAAtC6J,GAAsC,uDAA9B,EAAG9F,EAA2B,uDAAlB8U,OAAOC,SAClC,OAAqB,gBAAVjP,GACFxL,KAAKkX,OAAOxK,MAAMlB,EAAMA,MAAOA,EAAM9F,QAErC1F,KAAKkX,OAAOxK,MAAMlB,EAAO9F,MP4tClCkC,IAAK,YACLjG,MAAO,SOztCChB,GACR,MAAOX,MAAKwS,MAAMlS,QAAQK,MP4tC1BiH,IAAK,eACLjG,MAAO,WOvtCP,MAH0B,0DACf3B,KAAKuZ,QAChBvZ,KAAKgY,SACEhY,KAAKqX,UAAUqD,WAAW,MP+tCjC9S,IAAK,UACLjG,MAAO,WO7tC6C,GAA9C6J,GAA8C,uDAAtC,EAAG9F,EAAmC,uDAA1B1F,KAAKqa,YAAc7O,EAAO,EAClCqJ,EAASrJ,EAAO9F,GADkB,QAEpD,OADC8F,GADmD,KAC5C9F,EAD4C,KAE7C1F,KAAKkU,OAAOyG,QAAQnP,EAAO9F,MPyuClCkC,IAAK,WACLjG,MAAO,WOtuCP,MAAO3B,MAAKqX,UAAUuD,cP0uCtBhT,IAAK,cACLjG,MAAO,SOxuCG6J,EAAOqP,EAAOlZ,GAAmC,WAA5B8R,EAA4B,uDAAnBhB,EAAMoB,QAAQiB,GACtD,OAAOvB,GAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAO4G,YAAYtP,EAAOqP,EAAOlZ,IAC5C8R,EAAQjI,MP+uCX5D,IAAK,aACLjG,MAAO,SO7uCE6J,EAAOmB,EAAMhM,EAAMgB,EAAO8R,GAAQ,WACvCrK,SADuC,EAEdyL,EAASrJ,EAAO,EAAG7K,EAAMgB,EAAO8R,GAFlB,QAG3C,OADCjI,GAF0C,KAEjCpC,EAFiC,KAExBqK,EAFwB,KAGpCF,EAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAO6G,WAAWvP,EAAOmB,EAAMvD,IAC1CqK,EAAQjI,EAAOmB,EAAKjH,WP0vCvBkC,IAAK,YACLjG,MAAO,WOvvCP,OAAQ3B,KAAKmS,UAAUyE,UAAUoE,SAAS,kBP2vC1CpT,IAAK,MACLjG,MAAO,WOxvCP,MAAO3B,MAAK0U,QAAQuG,IAAIjQ,MAAMhL,KAAK0U,QAASjP,cP4vC5CmC,IAAK,KACLjG,MAAO,WOzvCP,MAAO3B,MAAK0U,QAAQ+C,GAAGzM,MAAMhL,KAAK0U,QAASjP,cP6vC3CmC,IAAK,OACLjG,MAAO,WO1vCP,MAAO3B,MAAK0U,QAAQwG,KAAKlQ,MAAMhL,KAAK0U,QAASjP,cP8vC7CmC,IAAK,YACLjG,MAAO,SO5vCC6J,EAAOiL,EAAMhD,GACrBzT,KAAKqS,UAAU8I,qBAAqB3P,EAAOiL,EAAMhD,MP+vCjD7L,IAAK,eACLjG,MAAO,SO7vCI6J,EAAO9F,EAAQ+N,GAAQ,aACNoB,EAASrJ,EAAO9F,EAAQ+N,GADlB,QAElC,OADCjI,GADiC,KAC1B9F,EAD0B,KAChB+N,EADgB,KAE3BF,EAAOhT,KAAKP,KAAM,WACvB,MAAO,GAAKkU,OAAOkH,aAAa5P,EAAO9F,IACtC+N,EAAQjI,MPywCX5D,IAAK,iBACLjG,MAAO,WOtwCP3B,KAAKqX,UAAUmC,eAAexZ,KAAKiX,uBP0wCnCrP,IAAK,cACLjG,MAAO,SOxwCGyK,GAAqC,WAA9BqH,EAA8B,uDAArBG,UAAQC,QAAQiB,GAC1C,OAAOvB,GAAOhT,KAAKP,KAAM,WACvBoM,EAAQ,GAAIjB,WAAMiB,EAClB,IAAI1G,GAAS,EAAK2U,YACdgB,EAAU,EAAKnH,OAAOiF,WAAW,EAAGzT,GACpC4V,EAAU,EAAKpH,OAAOqH,WAAWnP,GACjCiC,EAASiN,EAAQtN,IAAIsN,EAAQtN,IAAItI,OAAS,EAM9C,OALc,OAAV2I,GAA4C,gBAAnBA,GAAOjD,QAAkE,OAA1CiD,EAAOjD,OAAOiD,EAAOjD,OAAO1F,OAAO,KAC7F,EAAKwO,OAAOiF,WAAW,EAAKkB,YAAc,EAAG,GAC7CiB,EAAQpM,OAAO,IAEPmM,EAAQ3L,QAAQ4L,IAEzB7H,MP+wCH7L,IAAK,eACLjG,MAAO,SO7wCI6J,EAAO9F,EAAQ+N,GAC1B,GAAa,MAATjI,EACFxL,KAAKqX,UAAU6B,SAAS,KAAMxT,GAAU+M,EAAMoB,QAAQiB,SACjD,OACuBD,EAASrJ,EAAO9F,EAAQ+N,GAD/C,QACJjI,GADI,KACG9F,EADH,KACa+N,EADb,KAELzT,KAAKqX,UAAU6B,SAAS,GAAIjE,SAAMzJ,EAAO9F,GAAS+N,GAC9CA,IAAWG,UAAQC,QAAQS,QAC7BtU,KAAKqX,UAAUmC,eAAexZ,KAAKiX,wBPyxCvCrP,IAAK,UACLjG,MAAO,SOrxCDgL,GAAoC,GAA9B8G,GAA8B,uDAArBG,UAAQC,QAAQiB,IACjC1I,GAAQ,GAAIjB,YAAQC,OAAOuB,EAC/B,OAAO3M,MAAKmY,YAAY/L,EAAOqH,MP0xC/B7L,IAAK,SACLjG,MAAO,WOxxC6B,GAA/B8R,GAA+B,uDAAtBG,UAAQC,QAAQC,KAC1BK,EAASnU,KAAKkX,OAAOc,OAAOvE,EAEhC,OADAzT,MAAKqX,UAAUW,OAAOvE,GACfU,KP6xCPvM,IAAK,iBACLjG,MAAO,SO3xCMyK,GAAqC,WAA9BqH,EAA8B,uDAArBG,UAAQC,QAAQiB,GAC7C,OAAOvB,GAAOhT,KAAKP,KAAM,WAEvB,MADAoM,GAAQ,GAAIjB,WAAMiB,GACX,EAAK8H,OAAOqH,WAAWnP,EAAOqH,IACpCA,GAAQ,OPmyCNhB,IOhyCTA,GAAMC,UACJiH,OAAQ,KACRvQ,QAAS,KACT9I,WACA+X,YAAa,GACbC,UAAU,EACVrB,mBAAoB,KACpBvD,QAAQ,EACRlB,MAAO,WAETC,EAAM+B,OAASZ,UAAQY,OACvB/B,EAAMoB,QAAUD,UAAQC,QAExBpB,EAAM+I,QAA0DC,QAEhEhJ,EAAMkG,SACJ,MAAgBxN,UAChB,UAAgB1I,UAChB,cAAgBiZ,UAChB,aAAgB9I,WP07ClBjT,EO/yCSuS,ePgzCTvS,EOhzCuBkV,WPizCvBlV,EOjzC0CqD,QAATyP,GPqzC3B,SAAU7S,EAAQD,EAASM,GAEjC,YAOA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhH/H,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAKT,IQzzDM+Z,GACJ,WAAYC,GAAqB,GAAd5T,GAAc,oEAC/B/H,KAAK2b,MAAQA,EACb3b,KAAK+H,QAAUA,EAGnB2T,GAAOhJ,YR8zDP/S,EAAQqD,QQ3zDO0Y,GR+zDT,SAAU9b,EAAQD,EAASM,GAEjC,YAaA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAdjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GS90DT,YTm1DI6I,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GSj1DnCgD,E,YT81DJ,QAASA,KAGP,MAFA/E,GAAgB1I,KAAMyN,GAEf3E,EAA2B9I,MAAOyN,EAAS/G,WAAa5F,OAAOqJ,eAAesD,IAAWzC,MAAMhL,KAAMyF,YAG9G,MARAuD,GAAUyE,EAAUmO,GAQbnO,GSp2DchL,UAAUc,KTu2DjC5D,GAAQqD,QSr2DOyK,GTy2DT,SAAU7N,EAAQD,EAASM,GAEjC,YAmBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAtBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IUx3D5d,QV43DI6R,EAAiBpT,EAAuBqT,GU33D5C,QV+3DIzF,EAAW5N,EAAuB6N,GU73DlCpD,GAAQ,aAAO,iBAEH,kBAAmB,YAAa,UAAW,SAEpD7M,QAAQ,SAAS0V,GACtB1I,SAAS2I,iBAAiBD,EAAW,WAAa,2BAATxH,EAAS,qBAATA,EAAS,mBAC7CvI,MAAMzL,KAAK8S,SAAS4I,iBAAiB,kBAAkB5V,QAAQ,SAAClC,GAEjE,GAAIA,EAAK2S,SAAW3S,EAAK2S,QAAQpC,QAAS,QACxC,EAAAvQ,EAAK2S,QAAQpC,SAAQwH,UAArB,QAAkC3H,SVm5D1C,IU54DMX,G,YACJ,aAAc,iFAEZ,GAAKuI,aACL,EAAK1E,GAAG,QAASvE,EAAMC,OAHX,EVw7Dd,MA5CAnK,GAAU4K,EAASwI,GAYnB3S,EAAamK,IACXhM,IAAK,OACLjG,MAAO,WUn5DPuR,EAAMmJ,IAAIrR,MAAMkI,EAAOzN,WACvB,yEAAWuF,MAAMhL,KAAMyF,cVu5DvBmC,IAAK,YACLjG,MAAO,SUr5DC2a,GAAgB,2BAAN/H,EAAM,6BAANA,EAAM,mBACvBvU,KAAKmc,UAAUG,EAAM5E,WAAarR,QAAQ,YAA4B,GAAjBlC,GAAiB,EAAjBA,KAAMoY,EAAW,EAAXA,SACtDD,EAAMxU,SAAW3D,GAAQA,EAAK6W,SAASsB,EAAMxU,UAC/CyU,gBAAQD,GAAR,OAAkB/H,SVi6DtB3M,IAAK,YACLjG,MAAO,SU75DCoa,EAAW5X,EAAMoY,GACpBvc,KAAKmc,UAAUJ,KAClB/b,KAAKmc,UAAUJ,OAEjB/b,KAAKmc,UAAUJ,GAAW5N,MAAOhK,OAAMoY,gBVi6DlC3I,GUz7Da4I,UA4BtB5I,GAAQY,QACNI,cAAuB,gBACvB6H,qBAAuB,uBACvBC,gBAAuB,kBACvB7E,cAAuB,gBACvB8E,iBAAuB,mBACvBlI,YAAuB,eAEzBb,EAAQC,SACNiB,IAAS,MACTR,OAAS,SACTR,KAAS,QVm6DXnU,EAAQqD,QU/5DO4Q,GVm6DT,SAAUhU,EAAQD,EAASM,GAEjC,YWh+DA,SAASiT,GAAM0J,GACb,GAAIC,EAAO3L,QAAQ0L,IAAWC,EAAO3L,QAAQwH,GAAQ,8BAD7BnE,EAC6B,6BAD7BA,EAC6B,mBACnD,EAAAuI,SAAQF,GAAR,QAAmBrI,IAIvB,QAASwI,GAAUC,GACjB,MAAOH,GAAOvQ,OAAO,SAASmM,EAAQmE,GAEpC,MADAnE,GAAOmE,GAAU1J,EAAM+J,KAAKH,QAASF,EAAQI,GACtCvE,OX09DX3X,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GWv+DT,IAAIkb,IAAU,QAAS,OAAQ,MAAO,QAClCnE,EAAQ,MAeZxF,GAAMwF,MAAQqE,EAAUrE,MAAQ,SAASwE,GACvCxE,EAAQwE,GXk/DVvd,EAAQqD,QW9+DO+Z,GXk/DT,SAAUnd,EAAQD,EAASM,GAEjC,YYxgEAa,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIa,GAAW,EAAQ,GACnBgB,EAA4B,WAC5B,QAASA,GAAWsC,EAAUC,EAASgC,OACnB,KAAZA,IAAsBA,MAC1B/H,KAAK8F,SAAWA,EAChB9F,KAAK+F,QAAUA,CACf,IAAIoX,GAAe3a,EAASE,MAAM4C,KAAO9C,EAASE,MAAM0a,SACnC,OAAjBrV,EAAQvD,MAERxE,KAAKwE,MAASuD,EAAQvD,MAAQhC,EAASE,MAAMkC,MAASuY,EAGtDnd,KAAKwE,MAAQhC,EAASE,MAAM0a,UAEP,MAArBrV,EAAQoP,YACRnX,KAAKmX,UAAYpP,EAAQoP,WAoCjC,MAlCA3T,GAAW0K,KAAO,SAAU/J,GACxB,SAAUwB,IAAIpF,KAAK4D,EAAKQ,WAAY,SAAU0Y,GAC1C,MAAOA,GAAK1c,QAGpB6C,EAAWjC,UAAUsV,IAAM,SAAU1S,EAAMxC,GACvC,QAAK3B,KAAKsd,OAAOnZ,EAAMxC,KAEvBwC,EAAK6S,aAAahX,KAAK+F,QAASpE,IACzB,IAEX6B,EAAWjC,UAAU+b,OAAS,SAAUnZ,EAAMxC,GAE1C,MAAa,OADDa,EAASK,MAAMsB,EAAM3B,EAASE,MAAMgP,MAAQ1R,KAAKwE,MAAQhC,EAASE,MAAM4C,SAG9D,MAAlBtF,KAAKmX,YAEY,gBAAVxV,GACA3B,KAAKmX,UAAUjG,QAAQvP,EAAM4b,QAAQ,QAAS,MAAQ,EAGtDvd,KAAKmX,UAAUjG,QAAQvP,IAAU,KAGhD6B,EAAWjC,UAAU4L,OAAS,SAAUhJ,GACpCA,EAAKqZ,gBAAgBxd,KAAK+F,UAE9BvC,EAAWjC,UAAUI,MAAQ,SAAUwC,GACnC,GAAIxC,GAAQwC,EAAKc,aAAajF,KAAK+F,QACnC,OAAI/F,MAAKsd,OAAOnZ,EAAMxC,IAAUA,EACrBA,EAEJ,IAEJ6B,IAEX7D,GAAQqD,QAAUQ,GZ+gEZ,SAAU5D,EAAQD,EAASM,GaziEjC,QAASwd,GAAkB9b,GACzB,MAAiB,QAAVA,OAA4B6H,KAAV7H,EAG3B,QAAS+b,GAAUC,GACjB,SAAKA,GAAkB,gBAANA,IAAsC,gBAAbA,GAAEjY,UACtB,kBAAXiY,GAAEtV,MAA0C,kBAAZsV,GAAE3R,SAGzC2R,EAAEjY,OAAS,GAAqB,gBAATiY,GAAE,KAI/B,QAASC,GAASC,EAAGlX,EAAGmX,GACtB,GAAI1d,GAAGwH,CACP,IAAI6V,EAAkBI,IAAMJ,EAAkB9W,GAC5C,OAAO,CAET,IAAIkX,EAAEtc,YAAcoF,EAAEpF,UAAW,OAAO,CAGxC,IAAIwc,EAAYF,GACd,QAAKE,EAAYpX,KAGjBkX,EAAIG,EAAOzd,KAAKsd,GAChBlX,EAAIqX,EAAOzd,KAAKoG,GACTsX,EAAUJ,EAAGlX,EAAGmX,GAEzB,IAAIJ,EAASG,GAAI,CACf,IAAKH,EAAS/W,GACZ,OAAO,CAET,IAAIkX,EAAEnY,SAAWiB,EAAEjB,OAAQ,OAAO,CAClC,KAAKtF,EAAI,EAAGA,EAAIyd,EAAEnY,OAAQtF,IACxB,GAAIyd,EAAEzd,KAAOuG,EAAEvG,GAAI,OAAO,CAE5B,QAAO,EAET,IACE,GAAI8d,GAAKC,EAAWN,GAChBO,EAAKD,EAAWxX,GACpB,MAAO0X,GACP,OAAO,EAIT,GAAIH,EAAGxY,QAAU0Y,EAAG1Y,OAClB,OAAO,CAKT,KAHAwY,EAAGI,OACHF,EAAGE,OAEEle,EAAI8d,EAAGxY,OAAS,EAAGtF,GAAK,EAAGA,IAC9B,GAAI8d,EAAG9d,IAAMge,EAAGhe,GACd,OAAO,CAIX,KAAKA,EAAI8d,EAAGxY,OAAS,EAAGtF,GAAK,EAAGA,IAE9B,GADAwH,EAAMsW,EAAG9d,IACJ6d,EAAUJ,EAAEjW,GAAMjB,EAAEiB,GAAMkW,GAAO,OAAO,CAE/C,cAAcD,UAAalX,GA5F7B,GAAIqX,GAAS/X,MAAM1E,UAAUyK,MACzBmS,EAAa,EAAQ,IACrBJ,EAAc,EAAQ,IAEtBE,EAAYre,EAAOD,QAAU,SAAU4e,EAAQC,EAAUV,GAG3D,MAFKA,KAAMA,MAEPS,IAAWC,IAGJD,YAAkBE,OAAQD,YAAoBC,MAChDF,EAAOG,YAAcF,EAASE,WAI3BH,IAAWC,GAA6B,gBAAVD,IAAyC,gBAAZC,GAC9DV,EAAKpK,OAAS6K,IAAWC,EAAWD,GAAUC,EAS9CZ,EAASW,EAAQC,EAAUV,MbipEhC,SAAUle,EAAQD,EAASM,GAEjC,YAkCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GArCjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQgf,SAAOnV,EAEjC,IAAI4L,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IcxrE5d,Od4rEIM,EAAe7B,EAAuB8B,Gc3rE1C,Od+rEIC,EAAc/B,EAAuBgC,Gc9rEzC,OdksEImU,EAAUnW,EAAuBoW,GcjsErC,OdqsEIjU,EAAWnC,EAAuBoC,GcpsEtC,OdwsEIC,EAASrC,EAAuBsC,GcrsE9B4T,E,YdktEJ,QAASA,KAGP,MAFAjW,GAAgB1I,KAAM2e,GAEf7V,EAA2B9I,MAAO2e,EAAKjY,WAAa5F,OAAOqJ,eAAewU,IAAO3T,MAAMhL,KAAMyF,YAGtG,MARAuD,GAAU2V,EAAMG,GAQTH,GcxtEUrb,UACnBqb,GAAK9Y,SAAW,OAChB8Y,EAAKtZ,QAAU,Md4tEf,IcztEM0Z,G,Yd4tEJ,QAASA,KAGP,MAFArW,GAAgB1I,KAAM+e,GAEfjW,EAA2B9I,MAAO+e,EAAUrY,WAAa5F,OAAOqJ,eAAe4U,IAAY/T,MAAMhL,KAAMyF,YA6HhH,MAlIAuD,GAAU+V,EAAWC,GAQrBvV,EAAasV,IACXnX,IAAK,QACLjG,MAAO,WcztED,WACFgL,EAAO3M,KAAKkL,QAAQ+T,WAIxB,OAHItS,GAAKhB,SAAS,QAChBgB,EAAOA,EAAKX,MAAM,GAAI,IAEjBW,EAAKzH,MAAM,MAAMoH,OAAO,SAACF,EAAO8S,GACrC,MAAO9S,GAAMhB,OAAO8T,GAAM9T,OAAO,KAAM,EAAKhC,YAC3C,GAAI+B,ed+tEPvD,IAAK,SACLjG,MAAO,Sc7tEFhB,EAAMgB,GACX,GAAIhB,IAASX,KAAKsJ,QAAQzD,WAAYlE,EAAtC,CADkB,MAEH3B,KAAKmf,WAAW1R,UAAUzN,KAAK0F,SAAW,GAFvC,SAEbiH,EAFa,IAGN,OAARA,GACFA,EAAKyS,SAASzS,EAAKjH,SAAW,EAAG,GAEnC,qFAAa/E,EAAMgB,OdouEnBiG,IAAK,WACLjG,MAAO,ScluEA6J,EAAO9F,EAAQ/E,EAAMgB,GAC5B,GAAe,IAAX+D,GACgD,MAAhDjD,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAMmC,SACrClE,IAASX,KAAKsJ,QAAQzD,UAAYlE,IAAU3B,KAAKsJ,QAAQF,QAAQpJ,KAAKkL,UAD3E,CAIA,GAAImU,GAAcrf,KAAKsf,aAAa9T,EACpC,MAAI6T,EAAc,GAAKA,GAAe7T,EAAQ9F,GAA9C,CACA,GAAI6Z,GAAcvf,KAAKsf,aAAa9T,GAAO,GAAQ,EAC/CgU,EAAgBH,EAAcE,EAAc,EAC5Cjb,EAAOtE,KAAK2R,QAAQ4N,EAAaC,GACjC1T,EAAOxH,EAAKwH,IAChBxH,GAAKmH,OAAO9K,EAAMgB,GACdmK,YAAgBiT,IAClBjT,EAAK2T,SAAS,EAAGjU,EAAQ+T,EAAc7Z,EAAS8Z,EAAe7e,EAAMgB,QdquEvEiG,IAAK,WACLjG,MAAO,ScluEA6J,EAAO7J,EAAO+J,GACrB,GAAW,MAAPA,EAAJ,CAD0B,MAEL1L,KAAKmf,WAAW1R,UAAUjC,GAFrB,SAErBmB,EAFqB,KAEf2E,EAFe,IAG1B3E,GAAKZ,SAASuF,EAAQ3P,Od0uEtBiG,IAAK,SACLjG,MAAO,WcvuEP,GAAI+D,GAAS1F,KAAKkL,QAAQ+T,YAAYvZ,MACtC,OAAK1F,MAAKkL,QAAQ+T,YAAYtT,SAAS,MAGhCjG,EAFEA,EAAS,Kd6uElBkC,IAAK,eACLjG,MAAO,SczuEI+d,GACX,GADyC,wDAKvC,MAAO1f,MAAKkL,QAAQ+T,YAAYjT,MAAM,EAAG0T,GAAaC,YAAY,KAHlE,IAAIrO,GAAStR,KAAKkL,QAAQ+T,YAAYjT,MAAM0T,GAAaxO,QAAQ,KACjE,OAAOI,IAAU,EAAIoO,EAAcpO,GAAU,KdivE/C1J,IAAK,WACLjG,MAAO,Sc5uEAyL,GACFpN,KAAKkL,QAAQ+T,YAAYtT,SAAS,OACrC3L,KAAK4f,YAAYnd,UAAUE,OAAO,OAAQ,OAE5C,uFAAeyK,EACf,IAAItB,GAAO9L,KAAK8L,IACJ,OAARA,GAAgBA,EAAK+T,OAAS7f,MAC9B8L,EAAKxC,QAAQzD,WAAa7F,KAAKsJ,QAAQzD,UACvC7F,KAAKsJ,QAAQF,QAAQpJ,KAAKkL,WAAaY,EAAKxC,QAAQF,QAAQ0C,EAAKZ,WACnEY,EAAKgU,SAAS1S,GACdtB,EAAK+F,aAAa7R,MAClB8L,EAAKqB,ad8uEPvF,IAAK,UACLjG,MAAO,Sc3uEDmG,GACN,sFAAcA,MACXkE,MAAMzL,KAAKP,KAAKkL,QAAQ+Q,iBAAiB,MAAM5V,QAAQ,SAASlC,GACjE,GAAIG,GAAO7B,UAAUG,KAAKuB,EACd,OAARG,EACFH,EAAKI,WAAWwb,YAAY5b,GACnBG,YAAgB7B,WAAUU,MACnCmB,EAAK6I,SAEL7I,EAAK0b,gBdgvETpY,IAAK,SACLjG,MAAO,Sc/0EKA,GACZ,GAAIuJ,GAAUA,EAAVA,+DAAuBvJ,EAE3B,OADAuJ,GAAQ8L,aAAa,cAAc,GAC5B9L,Kdk1EPtD,IAAK,UACLjG,MAAO,Wc/0EP,OAAO,Mdo1EFod,Gc51Ee1b,UAoGxB0b,GAAUlZ,SAAW,aACrBkZ,EAAU1Z,QAAU,MACpB0Z,EAAUkB,IAAM,Kd6vEhBtgB,Ec1vESgf,Od2vEThf,Ec3vE4BqD,QAAb+b,Gd+vET,SAAUnf,EAAQD,EAASM,GAEjC,YAiBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,Ie/3E5d,Ofm4EIQ,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,Geh4EnCyC,E,Yf64EJ,QAASA,KAGP,MAFAxE,GAAgB1I,KAAMkN,GAEfpE,EAA2B9I,MAAOkN,EAAMxG,WAAa5F,OAAOqJ,eAAe+C,IAAQlC,MAAMhL,KAAMyF,YA6BxG,MAlCAuD,GAAUkE,EAAOjC,GAQjBxB,EAAayD,IACXtF,IAAK,aACLjG,MAAO,Seh5EE0H,EAAQ2D,GACc,IAA3B3D,EAAOwD,SAASnH,OAClB,yFAAiB2D,EAAQ2D,GAEzBhN,KAAKmN,Yfo5EPvF,IAAK,SACLjG,MAAO,Weh5EP,MAAO,Mfo5EPiG,IAAK,QACLjG,MAAO,Wej5EP,MAAO,Qfq5EPiG,IAAK,QACLjG,MAAO,gBAKFuL,Ge76EWzK,UAAUU,MAqB9B+J,GAAMrH,SAAW,QACjBqH,EAAM7H,QAAU,Kf65EhB1F,EAAQqD,Qe15EOkK,Gf85ET,SAAUtN,EAAQD,EAASM,GAEjC,YAkBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GgBj7Eje,QAASgX,GAASC,EAAKC,GACrB,GAAIC,GAAShN,SAAS4F,cAAc,IACpCoH,GAAOC,KAAOH,CACd,IAAII,GAAWF,EAAOC,KAAKtU,MAAM,EAAGqU,EAAOC,KAAKpP,QAAQ,KACxD,OAAOkP,GAAUlP,QAAQqP,IAAa,EhB05ExCzf,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQugB,SAAWvgB,EAAQqD,YAAUwG,EAErC,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IgBt8E5d,OhB08EIY,EAEJ,SAAgCnD,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDoD,GgBv8EhC2V,E,YhBo9EJ,QAASA,KAGP,MAFA9X,GAAgB1I,KAAMwgB,GAEf1X,EAA2B9I,MAAOwgB,EAAK9Z,WAAa5F,OAAOqJ,eAAeqW,IAAOxV,MAAMhL,KAAMyF,YAgCtG,MArCAuD,GAAUwX,EAAM1B,GAQhBrV,EAAa+W,IACX5Y,IAAK,SACLjG,MAAO,SgB18EFhB,EAAMgB,GACX,GAAIhB,IAASX,KAAKsJ,QAAQzD,WAAalE,EAAO,MAAO,GAAP,mFAAoBhB,EAAMgB,EACxEA,GAAQ3B,KAAK6G,YAAYqZ,SAASve,GAClC3B,KAAKkL,QAAQ8L,aAAa,OAAQrV,QhB68ElCiG,IAAK,SACLjG,MAAO,SgBl+EKA,GACZ,GAAIwC,GAAOA,EAAPA,+DAAoBxC,EAKxB,OAJAA,GAAQ3B,KAAKkgB,SAASve,GACtBwC,EAAK6S,aAAa,OAAQrV,GAC1BwC,EAAK6S,aAAa,MAAO,uBACzB7S,EAAK6S,aAAa,SAAU,UACrB7S,KhBq+EPyD,IAAK,UACLjG,MAAO,SgBn+EMuJ,GACb,MAAOA,GAAQjG,aAAa,WhBs+E5B2C,IAAK,WACLjG,MAAO,SgBp+EOwe,GACd,MAAOD,GAASC,EAAKngB,KAAKygB,oBAAsBN,EAAMngB,KAAK0gB,kBhBw+EtDF,GgBv/EUld,UAwBnBkd,GAAK3a,SAAW,OAChB2a,EAAKnb,QAAU,IACfmb,EAAKE,cAAgB,cACrBF,EAAKC,oBAAsB,OAAQ,QAAS,SAAU,OhB2+EtD9gB,EgBh+EiBqD,QAARwd,EhBi+ET7gB,EgBj+E0BugB,YhBq+EpB,SAAUtgB,EAAQD,EAASM,GAEjC,YAmBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCiBhiFhH,QAAS8X,GAAoBC,EAAStV,GACpCsV,EAAQ5J,aAAa1L,IAAiD,SAApCsV,EAAQ3b,aAAaqG,KjB6gFzDxK,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAIuT,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAO5F,SAAwB,SAAU9H,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX0N,SAAyB1N,EAAIZ,cAAgBsO,QAAU1N,IAAQ0N,OAAO5T,UAAY,eAAkBkG,IAElQgC,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MiBzhFhiB,QjB6hFIiY,EAAapY,EAAuBqY,GiB5hFxC,SjBgiFIC,EAAatY,EAAuBuY,GiB9hFpCC,EAAiB,EAMfC,E,WACJ,WAAYC,GAAQ,qBAClBnhB,KAAKmhB,OAASA,EACdnhB,KAAKmS,UAAYkB,SAAS4F,cAAc,QACxCjZ,KAAKohB,cACLphB,KAAKmhB,OAAOE,MAAMC,QAAU,OAC5BthB,KAAKmhB,OAAO5c,WAAWsH,aAAa7L,KAAKmS,UAAWnS,KAAKmhB,QAEzDnhB,KAAKuhB,MAAMvF,iBAAiB,YAAa,WACvC,EAAKwF,iBAEPxhB,KAAKuhB,MAAMvF,iBAAiB,UAAW,SAACM,GACtC,OAAOA,EAAMmF,SAEX,IAAKC,WAASxT,KAAKyT,MACjB,EAAKH,cACL,MAGF,KAAKE,WAASxT,KAAK0T,OACjB,EAAKC,SACLvF,EAAMwF,oBAKZ9hB,KAAKmhB,OAAOnF,iBAAiB,SAAUhc,KAAKgY,OAAOiF,KAAKjd,OjBotF1D,MAzKAyJ,GAAayX,IACXtZ,IAAK,eACLjG,MAAO,WiBziFP3B,KAAKmS,UAAUyE,UAAUe,OAAO,eAEhCgJ,EAAoB3gB,KAAKuhB,MAAO,iBAChCZ,EAAoB3gB,KAAK+H,QAAS,kBjB6iFlCH,IAAK,YACLjG,MAAO,SiB3iFCogB,GAAQ,WACZ1E,EAAOhK,SAAS4F,cAAc,OA+BlC,OA9BAoE,GAAK2E,SAAW,IAChB3E,EAAKrG,aAAa,OAAQ,UAE1BqG,EAAKzG,UAAUC,IAAI,kBACfkL,EAAOE,aAAa,UACtB5E,EAAKrG,aAAa,aAAc+K,EAAO9c,aAAa,UAElD8c,EAAO9C,aACT5B,EAAKrG,aAAa,aAAc+K,EAAO9C,aAEzC5B,EAAKrB,iBAAiB,QAAS,WAC7B,EAAKkG,WAAW7E,GAAM,KAExBA,EAAKrB,iBAAiB,UAAW,SAACM,GAChC,OAAOA,EAAMmF,SAEX,IAAKC,WAASxT,KAAKyT,MACjB,EAAKO,WAAW7E,GAAM,GACtBf,EAAMwF,gBACN,MAGF,KAAKJ,WAASxT,KAAK0T,OACjB,EAAKC,SACLvF,EAAMwF,oBAMLzE,KjBgjFPzV,IAAK,aACLjG,MAAO,WiB7iFP,GAAI4f,GAAQlO,SAAS4F,cAAc,OAOnC,OANAsI,GAAM3K,UAAUC,IAAI,mBACpB0K,EAAM7K,UAAYyL,UAClBZ,EAAMS,SAAW,IACjBT,EAAMvK,aAAa,OAAQ,UAC3BuK,EAAMvK,aAAa,gBAAiB,SACpChX,KAAKmS,UAAUyN,YAAY2B,GACpBA,KjBijFP3Z,IAAK,eACLjG,MAAO,WiB/iFM,WACToG,EAAUsL,SAAS4F,cAAc,OACrClR,GAAQ6O,UAAUC,IAAI,qBAGtB9O,EAAQiP,aAAa,cAAe,QACpCjP,EAAQia,SAAW,KAGnBja,EAAQqa,GAAR,qBAAkCnB,EAClCA,GAAkB,EAClBjhB,KAAKuhB,MAAMvK,aAAa,gBAAiBjP,EAAQqa,IAEjDpiB,KAAK+H,QAAUA,KAEZiE,MAAMzL,KAAKP,KAAKmhB,OAAOpZ,SAAS1B,QAAQ,SAAC0b,GAC1C,GAAI1E,GAAO,EAAKgF,UAAUN,EAC1Bha,GAAQ6X,YAAYvC,IACI,IAApB0E,EAAOO,UACT,EAAKJ,WAAW7E,KAGpBrd,KAAKmS,UAAUyN,YAAY7X,MjBojF3BH,IAAK,cACLjG,MAAO,WiBljFK,cACTqK,MAAMzL,KAAKP,KAAKmhB,OAAOxc,YAAY0B,QAAQ,SAACgX,GAC7C,EAAKlL,UAAU6E,aAAaqG,EAAK1c,KAAM0c,EAAK1b,SAE9C3B,KAAKmS,UAAUyE,UAAUC,IAAI,aAC7B7W,KAAKuhB,MAAQvhB,KAAKuiB,aAClBviB,KAAKwiB,kBjBujFL5a,IAAK,SACLjG,MAAO,WiBrjFA,UAEP3B,MAAKyiB,QAGLC,WAAW,iBAAM,GAAKnB,MAAMhI,SAAS,MjB4jFrC3R,IAAK,QACLjG,MAAO,WiBzjFP3B,KAAKmS,UAAUyE,UAAUzJ,OAAO,eAChCnN,KAAKuhB,MAAMvK,aAAa,gBAAiB,SACzChX,KAAK+H,QAAQiP,aAAa,cAAe,WjB6jFzCpP,IAAK,aACLjG,MAAO,SiB3jFE0b,GAAuB,GAAjBsF,GAAiB,wDAC5BL,EAAWtiB,KAAKmS,UAAUmB,cAAc,eAC5C,IAAI+J,IAASiF,IACG,MAAZA,GACFA,EAAS1L,UAAUzJ,OAAO,eAEhB,MAARkQ,IACJA,EAAKzG,UAAUC,IAAI,eACnB7W,KAAKmhB,OAAOyB,iBAAmB1R,QAAQ3Q,KAAK8c,EAAK9Y,WAAWsI,SAAUwQ,GAClEA,EAAK4E,aAAa,cACpBjiB,KAAKuhB,MAAMvK,aAAa,aAAcqG,EAAKpY,aAAa,eAExDjF,KAAKuhB,MAAM/D,gBAAgB,cAEzBH,EAAK4E,aAAa,cACpBjiB,KAAKuhB,MAAMvK,aAAa,aAAcqG,EAAKpY,aAAa,eAExDjF,KAAKuhB,MAAM/D,gBAAgB,cAEzBmF,IAAS,CACX,GAAqB,kBAAVE,OACT7iB,KAAKmhB,OAAO2B,cAAc,GAAID,OAAM,eAC/B,IAAqB,YAAjB,mBAAOA,OAAP,cAAOA,QAAoB,CACpC,GAAIvG,GAAQjJ,SAAS0P,YAAY,QACjCzG,GAAM0G,UAAU,UAAU,GAAM,GAChChjB,KAAKmhB,OAAO2B,cAAcxG,GAE5Btc,KAAKyiB,YjBkkFP7a,IAAK,SACLjG,MAAO,WiB9jFP,GAAIogB,SACJ,IAAI/hB,KAAKmhB,OAAOyB,eAAiB,EAAG,CAClC,GAAIvF,GAAOrd,KAAKmS,UAAUmB,cAAc,sBAAsBzG,SAAS7M,KAAKmhB,OAAOyB,cACnFb,GAAS/hB,KAAKmhB,OAAOpZ,QAAQ/H,KAAKmhB,OAAOyB,eACzC5iB,KAAKkiB,WAAW7E,OAEhBrd,MAAKkiB,WAAW,KAElB,IAAIe,GAAqB,MAAVlB,GAAkBA,IAAW/hB,KAAKmhB,OAAO7N,cAAc,mBACtEtT,MAAKuhB,MAAM3K,UAAUe,OAAO,YAAasL,OjBmkFpC/B,IAGTvhB,GAAQqD,QiBjkFOke,GjBqkFT,SAAUthB,EAAQD,EAASM,GAEjC,YkBlhFA,SAASijB,GAAS/e,GACd,GAAIG,GAAO9B,EAASI,KAAKuB,EACzB,IAAY,MAARG,EACA,IACIA,EAAO9B,EAASG,OAAOwB,GAE3B,MAAOka,GACH/Z,EAAO9B,EAASG,OAAOH,EAASE,MAAMoC,WACnCkH,MAAMzL,KAAK4D,EAAKgf,YAAY9c,QAAQ,SAAUgH,GAE7C/I,EAAK4G,QAAQ0U,YAAYvS,KAEzBlJ,EAAKI,YACLJ,EAAKI,WAAW6e,aAAa9e,EAAK4G,QAAS/G,GAE/CG,EAAK+e,SAGb,MAAO/e,GA/PX,GAAIiC,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAI2hB,GAAgB,EAAQ,IACxBC,EAAW,EAAQ,IACnB/gB,EAAW,EAAQ,GACnBghB,EAA+B,SAAU1c,GAEzC,QAAS0c,GAActY,GACnB,GAAIlE,GAAQF,EAAOvG,KAAKP,KAAMkL,IAAYlL,IAE1C,OADAgH,GAAMyc,QACCzc,EAwNX,MA5NAT,GAAUid,EAAe1c,GAMzB0c,EAAcjiB,UAAUqe,YAAc,SAAUjQ,GAC5C3P,KAAK6L,aAAa8D,IAEtB6T,EAAcjiB,UAAU8hB,OAAS,WAC7Bvc,EAAOvF,UAAU8hB,OAAO9iB,KAAKP,MAC7BA,KAAK6M,SAASxG,QAAQ,SAAUgH,GAC5BA,EAAMgW,YAGdG,EAAcjiB,UAAUkiB,MAAQ,WAC5B,GAAIzc,GAAQhH,IACZA,MAAK6M,SAAW,GAAIyW,GAActgB,WAE/BgJ,MACEzL,KAAKP,KAAKkL,QAAQiY,YAClBO,UACArd,QAAQ,SAAUlC,GACnB,IACI,GAAIkJ,GAAQ6V,EAAS/e,EACrB6C,GAAM6E,aAAawB,EAAOrG,EAAM6F,SAASI,UAAQzD,IAErD,MAAOoM,GACH,GAAIA,YAAepT,GAASuB,eACxB,MAEA,MAAM6R,OAItB4N,EAAcjiB,UAAU6d,SAAW,SAAU5T,EAAO9F,GAChD,GAAc,IAAV8F,GAAe9F,IAAW1F,KAAK0F,SAC/B,MAAO1F,MAAKmN,QAEhBnN,MAAK6M,SAAS8W,UAAUnY,EAAO9F,EAAQ,SAAU2H,EAAOiE,EAAQ5L,GAC5D2H,EAAM+R,SAAS9N,EAAQ5L,MAG/B8d,EAAcjiB,UAAU4d,WAAa,SAAUyE,EAAUpY,GACrD,GAAIqY,GAAK7jB,KAAK6M,SAASjK,KAAK4I,GAAQ6B,EAAQwW,EAAG,GAAIvS,EAASuS,EAAG,EAC/D,OAA0B,OAArBD,EAAS/d,UAAoB+d,EAASvW,IACjB,MAArBuW,EAAS/d,UAAoBwH,YAAiBuW,IACvCvW,EAAOiE,GAEVjE,YAAiBmW,GACfnW,EAAM8R,WAAWyE,EAAUtS,IAG1B,MAAO,IAGvBkS,EAAcjiB,UAAU8K,YAAc,SAAUuX,EAAUpY,EAAO9F,OAC/C,KAAV8F,IAAoBA,EAAQ,OACjB,KAAX9F,IAAqBA,EAAS8U,OAAOC,UACzC,IAAIpO,MACAyX,EAAape,CAWjB,OAVA1F,MAAK6M,SAAS8W,UAAUnY,EAAO9F,EAAQ,SAAU2H,EAAO7B,EAAO9F,IACjC,MAArBke,EAAS/d,UAAoB+d,EAASvW,IACjB,MAArBuW,EAAS/d,UAAoBwH,YAAiBuW,KAC/CvX,EAAY8B,KAAKd,GAEjBA,YAAiBmW,KACjBnX,EAAcA,EAAYiE,OAAOjD,EAAMhB,YAAYuX,EAAUpY,EAAOsY,KAExEA,GAAcpe,IAEX2G,GAEXmX,EAAcjiB,UAAUwiB,OAAS,WAC7B/jB,KAAK6M,SAASxG,QAAQ,SAAUgH,GAC5BA,EAAM0W,WAEVjd,EAAOvF,UAAUwiB,OAAOxjB,KAAKP,OAEjCwjB,EAAcjiB,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GAC9D3B,KAAK6M,SAAS8W,UAAUnY,EAAO9F,EAAQ,SAAU2H,EAAOiE,EAAQ5L,GAC5D2H,EAAMoS,SAASnO,EAAQ5L,EAAQ/E,EAAMgB,MAG7C6hB,EAAcjiB,UAAUwK,SAAW,SAAUP,EAAO7J,EAAO+J,GACvD,GAAImY,GAAK7jB,KAAK6M,SAASjK,KAAK4I,GAAQ6B,EAAQwW,EAAG,GAAIvS,EAASuS,EAAG,EAC/D,IAAIxW,EACAA,EAAMtB,SAASuF,EAAQ3P,EAAO+J,OAE7B,CACD,GAAIpH,GAAc,MAAPoH,EAAclJ,EAASG,OAAO,OAAQhB,GAASa,EAASG,OAAOhB,EAAO+J,EACjF1L,MAAK4f,YAAYtb,KAGzBkf,EAAcjiB,UAAUsK,aAAe,SAAUmY,EAAWC,GACxD,GAAoC,MAAhCjkB,KAAKsJ,QAAQkE,kBACZxN,KAAKsJ,QAAQkE,gBAAgB0W,KAAK,SAAU7W,GACzC,MAAO2W,aAAqB3W,KAEhC,KAAM,IAAI7K,GAASuB,eAAe,iBAAmBigB,EAAU1a,QAAQzD,SAAW,SAAW7F,KAAKsJ,QAAQzD,SAE9Gme,GAAUG,WAAWnkB,KAAMikB,IAE/BT,EAAcjiB,UAAUmE,OAAS,WAC7B,MAAO1F,MAAK6M,SAASP,OAAO,SAAU8X,EAAM/W,GACxC,MAAO+W,GAAO/W,EAAM3H,UACrB,IAEP8d,EAAcjiB,UAAUsQ,aAAe,SAAUwS,EAAcrL,GAC3DhZ,KAAK6M,SAASxG,QAAQ,SAAUgH,GAC5BgX,EAAaxY,aAAawB,EAAO2L,MAGzCwK,EAAcjiB,UAAUue,SAAW,SAAU1S,GAEzC,GADAtG,EAAOvF,UAAUue,SAASvf,KAAKP,KAAMoN,GACR,IAAzBpN,KAAK6M,SAASnH,OACd,GAAiC,MAA7B1F,KAAKsJ,QAAQiE,aAAsB,CACnC,GAAIF,GAAQ7K,EAASG,OAAO3C,KAAKsJ,QAAQiE,aACzCvN,MAAK4f,YAAYvS,GACjBA,EAAMyS,SAAS1S,OAGfpN,MAAKmN,UAIjBqW,EAAcjiB,UAAUqX,KAAO,SAAUpN,EAAO8Y,OAC1B,KAAdA,IAAwBA,GAAY,EACxC,IAAIT,GAAK7jB,KAAK6M,SAASjK,KAAK4I,EAAO8Y,GAAYjX,EAAQwW,EAAG,GAAIvS,EAASuS,EAAG,GACtEU,IAAavkB,KAAMwL,GACvB,OAAI6B,aAAiBmW,GACVe,EAASjU,OAAOjD,EAAMuL,KAAKtH,EAAQgT,KAE5B,MAATjX,GACLkX,EAASpW,MAAMd,EAAOiE,IAEnBiT,IAEXf,EAAcjiB,UAAUwe,YAAc,SAAU1S,GAC5CrN,KAAK6M,SAASM,OAAOE,IAEzBmW,EAAcjiB,UAAUgc,QAAU,SAAUzV,GACpCA,YAAkB0b,IAClB1b,EAAO+J,aAAa7R,MAExB8G,EAAOvF,UAAUgc,QAAQhd,KAAKP,KAAM8H,IAExC0b,EAAcjiB,UAAU2D,MAAQ,SAAUsG,EAAO8B,GAE7C,OADc,KAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAV9B,EACA,MAAOxL,KACX,IAAIwL,IAAUxL,KAAK0F,SACf,MAAO1F,MAAK8L,KAEpB,GAAI0Y,GAAQxkB,KAAKuI,OAMjB,OALAvI,MAAKqJ,OAAOwC,aAAa2Y,EAAOxkB,KAAK8L,MACrC9L,KAAK6M,SAAS8W,UAAUnY,EAAOxL,KAAK0F,SAAU,SAAU2H,EAAOiE,EAAQ5L,GACnE2H,EAAQA,EAAMnI,MAAMoM,EAAQhE,GAC5BkX,EAAM5E,YAAYvS,KAEfmX,GAEXhB,EAAcjiB,UAAUye,OAAS,WAC7BhgB,KAAK6R,aAAa7R,KAAKqJ,OAAQrJ,KAAK8L,MACpC9L,KAAKmN,UAETqW,EAAcjiB,UAAUyW,OAAS,SAAUF,EAAW1K,GAClD,GAAIpG,GAAQhH,KACRykB,KACAC,IACJ5M,GAAUzR,QAAQ,SAAUse,GACpBA,EAAS7c,SAAWd,EAAMkE,SAA6B,cAAlByZ,EAASjN,OAC9C+M,EAAWtW,KAAKnD,MAAMyZ,EAAYE,EAASF,YAC3CC,EAAavW,KAAKnD,MAAM0Z,EAAcC,EAASD,iBAGvDA,EAAare,QAAQ,SAAUlC,GAI3B,KAAuB,MAAnBA,EAAKI,YAEY,WAAjBJ,EAAKkB,SACLgO,SAASuR,KAAKC,wBAAwB1gB,GAAQF,KAAK6gB,gCAHvD,CAMA,GAAIxgB,GAAO9B,EAASI,KAAKuB,EACb,OAARG,IAE2B,MAA3BA,EAAK4G,QAAQ3G,YAAsBD,EAAK4G,QAAQ3G,aAAeyC,EAAMkE,SACrE5G,EAAKyf,aAGbU,EACK/V,OAAO,SAAUvK,GAClB,MAAOA,GAAKI,YAAcyC,EAAMkE,UAE/BoT,KAAK,SAAUT,EAAGlX,GACnB,MAAIkX,KAAMlX,EACC,EACPkX,EAAEgH,wBAAwBle,GAAK1C,KAAK8gB,4BAC7B,GAEH,IAEP1e,QAAQ,SAAUlC,GACnB,GAAI8f,GAAU,IACU,OAApB9f,EAAK6gB,cACLf,EAAUzhB,EAASI,KAAKuB,EAAK6gB,aAEjC,IAAI1gB,GAAO4e,EAAS/e,EAChBG,GAAKwH,MAAQmY,GAAwB,MAAb3f,EAAKwH,OACV,MAAfxH,EAAK+E,QACL/E,EAAK+E,OAAO0W,YAAY/Y,GAE5BA,EAAM6E,aAAavH,EAAM2f,OAAWza,QAIzCga,GACTD,EAASvgB,QAqBXrD,GAAQqD,QAAUwgB,GlBswFZ,SAAU5jB,EAAQD,EAASM,GAEjC,YmBzgGA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIS,GAAe,EAAQ,IACvBG,EAAU,EAAQ,IAClBX,EAAc,EAAQ,IACtBY,EAAW,EAAQ,GACnByiB,EAA4B,SAAUne,GAEtC,QAASme,GAAW/Z,GAChB,GAAIlE,GAAQF,EAAOvG,KAAKP,KAAMkL,IAAYlL,IAE1C,OADAgH,GAAMrC,WAAa,GAAIpC,GAAQS,QAAQgE,EAAMkE,SACtClE,EAmDX,MAvDAT,GAAU0e,EAAYne,GAMtBme,EAAW7b,QAAU,SAAU8B,GAC3B,MAA4B,gBAAjBlL,MAAKqF,UAGPY,MAAMC,QAAQlG,KAAKqF,SACjB6F,EAAQ7F,QAAQ6f,kBADtB,KAKTD,EAAW1jB,UAAUkK,OAAS,SAAU9K,EAAMgB,GAC1C,GAAI8J,GAASjJ,EAASK,MAAMlC,EACxB8K,aAAkBrJ,GAAaY,QAC/BhD,KAAK2E,WAAW2G,UAAUG,EAAQ9J,GAE7BA,IACS,MAAV8J,GAAmB9K,IAASX,KAAKsJ,QAAQzD,UAAY7F,KAAKoJ,UAAUzI,KAAUgB,GAC9E3B,KAAKmlB,YAAYxkB,EAAMgB,KAInCsjB,EAAW1jB,UAAU6H,QAAU,WAC3B,GAAIA,GAAUpJ,KAAK2E,WAAW0G,SAC1BI,EAASzL,KAAKsJ,QAAQF,QAAQpJ,KAAKkL,QAIvC,OAHc,OAAVO,IACArC,EAAQpJ,KAAKsJ,QAAQzD,UAAY4F,GAE9BrC,GAEX6b,EAAW1jB,UAAU4jB,YAAc,SAAUxkB,EAAMgB,GAC/C,GAAIyjB,GAActe,EAAOvF,UAAU4jB,YAAY5kB,KAAKP,KAAMW,EAAMgB,EAEhE,OADA3B,MAAK2E,WAAW0D,KAAK+c,GACdA,GAEXH,EAAW1jB,UAAUyW,OAAS,SAAUF,EAAW1K,GAC/C,GAAIpG,GAAQhH,IACZ8G,GAAOvF,UAAUyW,OAAOzX,KAAKP,KAAM8X,EAAW1K,GAC1C0K,EAAUoM,KAAK,SAAUS,GACzB,MAAOA,GAAS7c,SAAWd,EAAMkE,SAA6B,eAAlByZ,EAASjN,QAErD1X,KAAK2E,WAAW8e,SAGxBwB,EAAW1jB,UAAUqQ,KAAO,SAAUjR,EAAMgB,GACxC,GAAI0jB,GAAUve,EAAOvF,UAAUqQ,KAAKrR,KAAKP,KAAMW,EAAMgB,EAIrD,OAHI0jB,aAAmBJ,IAAcI,EAAQ/b,QAAQ9E,QAAUxE,KAAKsJ,QAAQ9E,OACxExE,KAAK2E,WAAW2gB,KAAKD,GAElBA,GAEJJ,GACTrjB,EAAYoB,QACdrD,GAAQqD,QAAUiiB,GnBghGZ,SAAUrlB,EAAQD,EAASM,GAEjC,YoB3lGA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAI4hB,GAAW,EAAQ,IACnB/gB,EAAW,EAAQ,GACnB+iB,EAA0B,SAAUze,GAEpC,QAASye,KACL,MAAkB,QAAXze,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KAuB/D,MAzBAuG,GAAUgf,EAAUze,GAIpBye,EAAS5jB,MAAQ,SAAUuJ,GACvB,OAAO,GAEXqa,EAAShkB,UAAUiK,MAAQ,SAAUrH,EAAMmN,GACvC,MAAItR,MAAKkL,UAAY/G,GACjBnE,KAAKkL,QAAQ2Z,wBAAwB1gB,GAAQF,KAAK6gB,+BAC3CtY,KAAKC,IAAI6E,EAAQ,IAEpB,GAEZiU,EAAShkB,UAAUgjB,SAAW,SAAU/Y,EAAO8Y,GAC3C,GAAIhT,MAAYJ,QAAQ3Q,KAAKP,KAAKqJ,OAAO6B,QAAQiY,WAAYnjB,KAAKkL,QAGlE,OAFIM,GAAQ,IACR8F,GAAU,IACNtR,KAAKqJ,OAAO6B,QAASoG,IAEjCiU,EAAShkB,UAAUI,MAAQ,WACvB,GAAIkiB,EACJ,OAAOA,MAASA,EAAG7jB,KAAKsJ,QAAQzD,UAAY7F,KAAKsJ,QAAQ3H,MAAM3B,KAAKkL,WAAY,EAAM2Y,GAE1F0B,EAAS/gB,MAAQhC,EAASE,MAAM8iB,YACzBD,GACThC,EAASvgB,QACXrD,GAAQqD,QAAUuiB,GpBkmGZ,SAAU3lB,EAAQD,EAASM,GqB1kGjC,QAASwlB,GAASzX,GAChBhO,KAAKgO,IAAMA,EACXhO,KAAKwL,MAAQ,EACbxL,KAAKsR,OAAS,EArEhB,GAAI3D,GAAQ,EAAQ,IAChBxF,EAAS,EAAQ,GAGjBud,GACF/gB,YACE+K,QAAS,SAAUmO,EAAGlX,EAAGgf,GACN,gBAAN9H,KAAgBA,MACV,gBAANlX,KAAgBA,KAC3B,IAAIhC,GAAawD,GAAO,KAAUxB,EAC7Bgf,KACHhhB,EAAa7D,OAAOoN,KAAKvJ,GAAY2H,OAAO,SAAUjE,EAAMT,GAI1D,MAHuB,OAAnBjD,EAAWiD,KACbS,EAAKT,GAAOjD,EAAWiD,IAElBS,OAGX,KAAK,GAAIT,KAAOiW,OACCrU,KAAXqU,EAAEjW,QAAiC4B,KAAX7C,EAAEiB,KAC5BjD,EAAWiD,GAAOiW,EAAEjW,GAGxB,OAAO9G,QAAOoN,KAAKvJ,GAAYe,OAAS,EAAIf,MAAa6E,IAG3DkE,KAAM,SAASmQ,EAAGlX,GACC,gBAANkX,KAAgBA,MACV,gBAANlX,KAAgBA,KAC3B,IAAIhC,GAAa7D,OAAOoN,KAAK2P,GAAGvN,OAAOxP,OAAOoN,KAAKvH,IAAI2F,OAAO,SAAU3H,EAAYiD,GAIlF,MAHK+F,GAAMkQ,EAAEjW,GAAMjB,EAAEiB,MACnBjD,EAAWiD,OAAkB4B,KAAX7C,EAAEiB,GAAqB,KAAOjB,EAAEiB,IAE7CjD,MAET,OAAO7D,QAAOoN,KAAKvJ,GAAYe,OAAS,EAAIf,MAAa6E,IAG3D2H,UAAW,SAAU0M,EAAGlX,EAAGyK,GACzB,GAAiB,gBAANyM,GAAgB,MAAOlX,EAClC,IAAiB,gBAANA,GAAX,CACA,IAAKyK,EAAU,MAAOzK,EACtB,IAAIhC,GAAa7D,OAAOoN,KAAKvH,GAAG2F,OAAO,SAAU3H,EAAYiD,GAE3D,WADe4B,KAAXqU,EAAEjW,KAAoBjD,EAAWiD,GAAOjB,EAAEiB,IACvCjD,MAET,OAAO7D,QAAOoN,KAAKvJ,GAAYe,OAAS,EAAIf,MAAa6E,MAI7D+F,SAAU,SAAUvB,GAClB,MAAO,IAAIyX,GAASzX,IAGtBtI,OAAQ,SAAUkI,GAChB,MAA4B,gBAAjBA,GAAW,OACbA,EAAW,OACY,gBAAdA,GAAGQ,OACZR,EAAGQ,OAEkB,gBAAdR,GAAGxC,OAAsBwC,EAAGxC,OAAO1F,OAAS,GAYhE+f,GAASlkB,UAAUiO,QAAU,WAC3B,MAAOxP,MAAKkQ,aAAeb,KAG7BoW,EAASlkB,UAAUuK,KAAO,SAAUpG,GAC7BA,IAAQA,EAAS2J,IACtB,IAAII,GAASzP,KAAKgO,IAAIhO,KAAKwL,MAC3B,IAAIiE,EAAQ,CACV,GAAI6B,GAAStR,KAAKsR,OACdV,EAAW8U,EAAIhgB,OAAO+J,EAQ1B,IAPI/J,GAAUkL,EAAWU,GACvB5L,EAASkL,EAAWU,EACpBtR,KAAKwL,OAAS,EACdxL,KAAKsR,OAAS,GAEdtR,KAAKsR,QAAU5L,EAEe,gBAArB+J,GAAe,OACxB,OAAS,OAAU/J,EAEnB,IAAIkgB,KAYJ,OAXInW,GAAO9K,aACTihB,EAAMjhB,WAAa8K,EAAO9K,YAEC,gBAAlB8K,GAAOrB,OAChBwX,EAAMxX,OAAS1I,EACmB,gBAAlB+J,GAAOrE,OACvBwa,EAAMxa,OAASqE,EAAOrE,OAAOya,OAAOvU,EAAQ5L,GAG5CkgB,EAAMxa,OAASqE,EAAOrE,OAEjBwa,EAGT,OAASxX,OAAQiB,MAIrBoW,EAASlkB,UAAUwO,KAAO,WACxB,MAAO/P,MAAKgO,IAAIhO,KAAKwL,QAGvBia,EAASlkB,UAAU2O,WAAa,WAC9B,MAAIlQ,MAAKgO,IAAIhO,KAAKwL,OAETka,EAAIhgB,OAAO1F,KAAKgO,IAAIhO,KAAKwL,QAAUxL,KAAKsR,OAExCjC,KAIXoW,EAASlkB,UAAU0O,SAAW,WAC5B,MAAIjQ,MAAKgO,IAAIhO,KAAKwL,OAC8B,gBAAnCxL,MAAKgO,IAAIhO,KAAKwL,OAAe,OAC/B,SACyC,gBAAhCxL,MAAKgO,IAAIhO,KAAKwL,OAAO4C,OAC9B,SAEA,SAGJ,UAGTqX,EAASlkB,UAAU8O,KAAO,WACxB,GAAKrQ,KAAKwP,UAEH,IAAoB,IAAhBxP,KAAKsR,OACd,MAAOtR,MAAKgO,IAAIhC,MAAMhM,KAAKwL,MAE3B,IAAI8F,GAAStR,KAAKsR,OACd9F,EAAQxL,KAAKwL,MACbM,EAAO9L,KAAK8L,OACZuE,EAAOrQ,KAAKgO,IAAIhC,MAAMhM,KAAKwL,MAG/B,OAFAxL,MAAKsR,OAASA,EACdtR,KAAKwL,MAAQA,GACLM,GAAMwE,OAAOD,GAVrB,UAeJzQ,EAAOD,QAAU+lB,GrBmpGX,SAAU9lB,EAAQD,GsB7yGxB,GAAI4I,GAAQ,WACZ,YAEA,SAASud,GAAYre,EAAKiQ,GACxB,MAAe,OAARA,GAAgBjQ,YAAeiQ,GA+CxC,QAASnP,GAAMc,EAAQ0c,EAAUC,EAAOzkB,EAAW0kB,GAqBjD,QAASC,GAAO7c,EAAQ2c,GAEtB,GAAe,OAAX3c,EACF,MAAO,KAET,IAAc,IAAV2c,EACF,MAAO3c,EAET,IAAIgE,GACA8Y,CACJ,IAAqB,gBAAV9c,GACT,MAAOA,EAGT,IAAIyc,EAAYzc,EAAQ+c,GACtB/Y,EAAQ,GAAI+Y,OACP,IAAIN,EAAYzc,EAAQgd,GAC7BhZ,EAAQ,GAAIgZ,OACP,IAAIP,EAAYzc,EAAQid,GAC7BjZ,EAAQ,GAAIiZ,GAAc,SAAUC,EAASC,GAC3Cnd,EAAOod,KAAK,SAAS9kB,GACnB4kB,EAAQL,EAAOvkB,EAAOqkB,EAAQ,KAC7B,SAASpQ,GACV4Q,EAAON,EAAOtQ,EAAKoQ,EAAQ,YAG1B,IAAIzd,EAAMme,UAAUrd,GACzBgE,SACK,IAAI9E,EAAMoe,WAAWtd,GAC1BgE,EAAQ,GAAIuZ,QAAOvd,EAAOoK,OAAQoT,EAAiBxd,IAC/CA,EAAOyd,YAAWzZ,EAAMyZ,UAAYzd,EAAOyd,eAC1C,IAAIve,EAAMwe,SAAS1d,GACxBgE,EAAQ,GAAIoR,MAAKpV,EAAOqV,eACnB,IAAIsI,GAAaC,OAAOvJ,SAASrU,GAStC,MANEgE,GAFE4Z,OAAOC,YAEDD,OAAOC,YAAY7d,EAAO3D,QAG1B,GAAIuhB,QAAO5d,EAAO3D,QAE5B2D,EAAOhB,KAAKgF,GACLA,CACEyY,GAAYzc,EAAQpC,OAC7BoG,EAAQvM,OAAO6B,OAAO0G,OAEE,KAAb9H,GACT4kB,EAAQrlB,OAAOqJ,eAAed,GAC9BgE,EAAQvM,OAAO6B,OAAOwjB,KAGtB9Y,EAAQvM,OAAO6B,OAAOpB,GACtB4kB,EAAQ5kB,GAIZ,GAAIwkB,EAAU,CACZ,GAAIva,GAAQ2b,EAAWjW,QAAQ7H,EAE/B,KAAc,GAAVmC,EACF,MAAO4b,GAAY5b,EAErB2b,GAAWhZ,KAAK9E,GAChB+d,EAAYjZ,KAAKd,GAGfyY,EAAYzc,EAAQ+c,IACtB/c,EAAOhD,QAAQ,SAAS1E,EAAOiG,GAC7B,GAAIyf,GAAWnB,EAAOte,EAAKoe,EAAQ,GAC/BsB,EAAapB,EAAOvkB,EAAOqkB,EAAQ,EACvC3Y,GAAMka,IAAIF,EAAUC,KAGpBxB,EAAYzc,EAAQgd,IACtBhd,EAAOhD,QAAQ,SAAS1E,GACtB,GAAI6lB,GAAatB,EAAOvkB,EAAOqkB,EAAQ,EACvC3Y,GAAMwJ,IAAI2Q,IAId,KAAK,GAAIpnB,KAAKiJ,GAAQ,CACpB,GAAIoe,EACAtB,KACFsB,EAAQ3mB,OAAOwG,yBAAyB6e,EAAO/lB,IAG7CqnB,GAAsB,MAAbA,EAAMF,MAGnBla,EAAMjN,GAAK8lB,EAAO7c,EAAOjJ,GAAI4lB,EAAQ,IAGvC,GAAIllB,OAAO4mB,sBAET,IAAK,GADDC,GAAU7mB,OAAO4mB,sBAAsBre,GAClCjJ,EAAI,EAAGA,EAAIunB,EAAQjiB,OAAQtF,IAAK,CAGvC,GAAIwnB,GAASD,EAAQvnB,GACjBwJ,EAAa9I,OAAOwG,yBAAyB+B,EAAQue,KACrDhe,GAAeA,EAAW3I,YAAeglB,KAG7C5Y,EAAMua,GAAU1B,EAAO7c,EAAOue,GAAS5B,EAAQ,GAC1Cpc,EAAW3I,YACdH,OAAOC,eAAesM,EAAOua,GAC3B3mB,YAAY,KAMpB,GAAIglB,EAEF,IAAK,GADD4B,GAAmB/mB,OAAOgnB,oBAAoBze,GACzCjJ,EAAI,EAAGA,EAAIynB,EAAiBniB,OAAQtF,IAAK,CAChD,GAAI2nB,GAAeF,EAAiBznB,GAChCwJ,EAAa9I,OAAOwG,yBAAyB+B,EAAQ0e,EACrDne,IAAcA,EAAW3I,aAG7BoM,EAAM0a,GAAgB7B,EAAO7c,EAAO0e,GAAe/B,EAAQ,GAC3DllB,OAAOC,eAAesM,EAAO0a,GAC3B9mB,YAAY,KAKlB,MAAOoM,GAlJe,gBAAb0Y,KACTC,EAAQD,EAASC,MACjBzkB,EAAYwkB,EAASxkB,UACrB0kB,EAAuBF,EAASE,qBAChCF,EAAWA,EAASA,SAItB,IAAIoB,MACAC,KAEAJ,EAA6B,mBAAVC,OA0IvB,YAxIuB,KAAZlB,IACTA,GAAW,OAEO,KAATC,IACTA,EAAQ3W,KAoIH6W,EAAO7c,EAAQ2c,GAqBxB,QAASgC,GAAWnnB,GAClB,MAAOC,QAAOS,UAAU6F,SAAS7G,KAAKM,GAIxC,QAASkmB,GAASlmB,GAChB,MAAoB,gBAANA,IAAoC,kBAAlBmnB,EAAWnnB,GAI7C,QAAS6lB,GAAU7lB,GACjB,MAAoB,gBAANA,IAAoC,mBAAlBmnB,EAAWnnB,GAI7C,QAAS8lB,GAAW9lB,GAClB,MAAoB,gBAANA,IAAoC,oBAAlBmnB,EAAWnnB,GAI7C,QAASgmB,GAAiBoB,GACxB,GAAIC,GAAQ,EAIZ,OAHID,GAAGE,SAAQD,GAAS,KACpBD,EAAGG,aAAYF,GAAS,KACxBD,EAAGI,YAAWH,GAAS,KACpBA,EAhPT,GAAI9B,EACJ,KACEA,EAAYkC,IACZ,MAAMC,GAGNnC,EAAY,aAGd,GAAIC,EACJ,KACEA,EAAYmC,IACZ,MAAMD,GACNlC,EAAY,aAGd,GAAIC,EACJ,KACEA,EAAgBmC,QAChB,MAAMF,GACNjC,EAAgB,aAgOlB,MAxCA/d,GAAMmgB,eAAiB,SAAwBrf,GAC7C,GAAe,OAAXA,EACF,MAAO,KAET,IAAI5I,GAAI,YAER,OADAA,GAAEc,UAAY8H,EACP,GAAI5I,IAQb8H,EAAMyf,WAAaA,EAKnBzf,EAAMwe,SAAWA,EAKjBxe,EAAMme,UAAYA,EAKlBne,EAAMoe,WAAaA,EASnBpe,EAAMse,iBAAmBA,EAElBte,IAGe,iBAAX3I,IAAuBA,EAAOD,UACvCC,EAAOD,QAAU4I,ItBqzGb,SAAU3I,EAAQD,EAASM,GAEjC,YAgCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASkhB,GAAmBphB,GAAO,GAAItB,MAAMC,QAAQqB,GAAM,CAAE,IAAK,GAAInH,GAAI,EAAGwoB,EAAO3iB,MAAMsB,EAAI7B,QAAStF,EAAImH,EAAI7B,OAAQtF,IAAOwoB,EAAKxoB,GAAKmH,EAAInH,EAAM,OAAOwoB,GAAe,MAAO3iB,OAAM4iB,KAAKthB,GAE1L,QAASmB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCuBxwGhH,QAASmS,GAAS3R,EAAQ8V,GACxB,IAEEA,EAAW5a,WACX,MAAO8Z,GACP,OAAO,EAOT,MAHIc,aAAsB5b,QACxB4b,EAAaA,EAAW5a,YAEnB8E,EAAO2R,SAASmE,GvB2tGzBre,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQsV,UAAQzL,EAElC,IAAI4L,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MuBhkHhiB,OvBokHI4B,EAAc/B,EAAuBgC,GuBnkHzC,QvBukHIqe,EAAUrgB,EAAuByd,GuBtkHrC,QvB0kHI6C,EAActgB,EAAuBugB,GuBzkHzC,OvB6kHIjT,EAAYtN,EAAuBuN,GuB5kHvC,QvBglHIK,EAAW5N,EAAuB6N,GuB9kHlCpD,GAAQ,aAAO,mBAGb+B,EACJ,WAAYzJ,GAAmB,GAAZ9F,GAAY,uDAAH,CAAG,WAC7B1F,KAAKwL,MAAQA,EACbxL,KAAK0F,OAASA,GAKZ4R,E,WACJ,WAAYJ,EAAQxC,GAAS,qBAC3B1U,KAAK0U,QAAUA,EACf1U,KAAKkX,OAASA,EACdlX,KAAKipB,WAAY,EACjBjpB,KAAKkpB,WAAY,EACjBlpB,KAAKP,KAAOO,KAAKkX,OAAOhM,QACxBlL,KAAKmpB,OAAS1mB,UAAUE,OAAO,SAAU3C,MAEzCA,KAAK+X,UAAY/X,KAAKopB,WAAa,GAAInU,GAAM,EAAG,GAChDjV,KAAKqpB,oBACLrpB,KAAKspB,iBACLtpB,KAAK0U,QAAQ6U,UAAU,kBAAmBlW,SAAU,WAC7C,EAAK6V,WACRxG,WAAW,EAAK1K,OAAOiF,KAAK,EAAMrJ,UAAQC,QAAQC,MAAO,KAG7D9T,KAAK0U,QAAQ+C,GAAG7D,UAAQY,OAAOI,cAAe,SAAC8C,EAAMtL,GAC/CsL,IAAS9D,UAAQY,OAAOC,aAAerI,EAAM1G,SAAW,GAC1D,EAAKsS,OAAOpE,UAAQC,QAAQS,UAGhCtU,KAAK0U,QAAQ+C,GAAG7D,UAAQY,OAAOiI,qBAAsB,WACnD,GAAK,EAAK7B,WAAV,CACA,GAAI4O,GAAS,EAAKC,gBACJ,OAAVD,GACAA,EAAOra,MAAMhL,OAAS,EAAKglB,OAAOO,UAEtC,EAAKhV,QAAQwG,KAAKtH,UAAQY,OAAOqD,cAAe,WAC9C,IACE,EAAK8R,eAAeH,EAAOra,MAAMhL,KAAMqlB,EAAOra,MAAMmC,OAAQkY,EAAOpa,IAAIjL,KAAMqlB,EAAOpa,IAAIkC,QACxF,MAAOsY,UAGb5pB,KAAK0U,QAAQ+C,GAAG7D,UAAQY,OAAOkI,gBAAiB,SAAC5E,EAAW1K,GAC1D,GAAIA,EAAQ2G,MAAO,OACsC3G,EAAQ2G,MAAvD8V,EADS,EACTA,UAAWC,EADF,EACEA,YAAaC,EADf,EACeA,QAASC,EADxB,EACwBA,SACzC,GAAKL,eAAeE,EAAWC,EAAaC,EAASC,MAGzDhqB,KAAKgY,OAAOpE,UAAQC,QAAQS,QvB68H9B,MA3WA7K,GAAa6N,IACX1P,IAAK,oBACLjG,MAAO,WuBjmHW,UAClB3B,MAAKP,KAAKuc,iBAAiB,mBAAoB,WAC7C,EAAKiN,WAAY,IAEnBjpB,KAAKP,KAAKuc,iBAAiB,iBAAkB,WAE3C,GADA,EAAKiN,WAAY,EACb,EAAKE,OAAO9f,OAAQ,CACtB,GAAM0K,GAAQ,EAAKoV,OAAOc,SAC1B,KAAKlW,EAAO,MACZ2O,YAAW,WACT,EAAKiH,eAAe5V,EAAM8V,UAAW9V,EAAM+V,YAAa/V,EAAMgW,QAAShW,EAAMiW,YAC5E,SvBwmHPpiB,IAAK,iBACLjG,MAAO,WuBpmHQ,UACf3B,MAAK0U,QAAQ6U,UAAU,YAAalW,SAASuR,KAAM,WACjD,EAAKsE,WAAY,IAEnBlpB,KAAK0U,QAAQ6U,UAAU,UAAWlW,SAASuR,KAAM,WAC/C,EAAKsE,WAAY,EACjB,EAAKlR,OAAOpE,UAAQC,QAAQC,WvB0mH9BlM,IAAK,QACLjG,MAAO,WuBtmHH3B,KAAK4a,aACT5a,KAAKP,KAAK8Z,QACVvZ,KAAKkZ,SAASlZ,KAAKopB,gBvB0mHnBxhB,IAAK,SACLjG,MAAO,SuBxmHF8J,EAAQ9J,GACb,GAA6B,MAAzB3B,KAAKkX,OAAOC,WAAsBnX,KAAKkX,OAAOC,UAAU1L,GAA5D,CACAzL,KAAKkX,OAAOc,QACZ,IAAIkS,GAAclqB,KAAKypB,gBACvB,IAAmB,MAAfS,GAAwBA,EAAYV,OAAOW,YAAa1nB,UAAUI,MAAM4I,EAAQhJ,UAAUC,MAAMmC,OAApG,CACA,GAAIqlB,EAAY/a,MAAMhL,OAASnE,KAAKmpB,OAAOO,SAAU,CACnD,GAAIplB,GAAO7B,UAAUG,KAAKsnB,EAAY/a,MAAMhL,MAAM,EAClD,IAAY,MAARG,EAAc,MAElB,IAAIA,YAAgB7B,WAAUS,KAAM,CAClC,GAAIshB,GAAQlgB,EAAKY,MAAMglB,EAAY/a,MAAMmC,OACzChN,GAAK+E,OAAOwC,aAAa7L,KAAKmpB,OAAQ3E,OAEtClgB,GAAKuH,aAAa7L,KAAKmpB,OAAQe,EAAY/a,MAAMhL,KAEnDnE,MAAKmpB,OAAO9F,SAEdrjB,KAAKmpB,OAAO1d,OAAOA,EAAQ9J,GAC3B3B,KAAKkX,OAAO4I,WACZ9f,KAAK2pB,eAAe3pB,KAAKmpB,OAAOO,SAAU1pB,KAAKmpB,OAAOO,SAASU,KAAK1kB,QACpE1F,KAAKgY,cvB2mHLpQ,IAAK,YACLjG,MAAO,SuBzmHC6J,GAAmB,GAAZ9F,GAAY,uDAAH,EACpB2kB,EAAerqB,KAAKkX,OAAOxR,QAC/B8F,GAAQgB,KAAKC,IAAIjB,EAAO6e,EAAe,GACvC3kB,EAAS8G,KAAKC,IAAIjB,EAAQ9F,EAAQ2kB,EAAe,GAAK7e,CAClD,IAAArH,OAAA,KAAuBnE,KAAKkX,OAAO3K,KAAKf,GAAxC,SAAOe,EAAP,KAAa+E,EAAb,IACJ,IAAY,MAAR/E,EAAc,MAAO,KALE,OAMVA,EAAKgY,SAASjT,GAAQ,GANZ,QAM1BnN,GAN0B,KAMpBmN,EANoB,IAO3B,IAAIyC,GAAQV,SAASiX,aACrB,IAAI5kB,EAAS,EAAG,CACdqO,EAAMwW,SAASpmB,EAAMmN,EADP,OAEGtR,KAAKkX,OAAO3K,KAAKf,EAAQ9F,GAF5B,QAGd,IADC6G,EAFa,KAEP+E,EAFO,KAGF,MAAR/E,EAAc,MAAO,KAHX,OAIGA,EAAKgY,SAASjT,GAAQ,GAJzB,QAMd,OAFCnN,GAJa,KAIPmN,EAJO,KAKdyC,EAAMyW,OAAOrmB,EAAMmN,GACZyC,EAAM+F,wBAEb,GAAI2Q,GAAO,OACPC,QAeJ,OAdIvmB,aAAgBZ,OACd+N,EAASnN,EAAKimB,KAAK1kB,QACrBqO,EAAMwW,SAASpmB,EAAMmN,GACrByC,EAAMyW,OAAOrmB,EAAMmN,EAAS,KAE5ByC,EAAMwW,SAASpmB,EAAMmN,EAAS,GAC9ByC,EAAMyW,OAAOrmB,EAAMmN,GACnBmZ,EAAO,SAETC,EAAO3W,EAAM+F,0BAEb4Q,EAAOne,EAAKrB,QAAQ4O,wBAChBxI,EAAS,IAAGmZ,EAAO,WAGvB1Q,OAAQ2Q,EAAK1Q,IAAM0Q,EAAKzQ,OACxBA,OAAQyQ,EAAKzQ,OACbC,KAAMwQ,EAAKD,GACXtQ,MAAOuQ,EAAKD,GACZzQ,IAAK0Q,EAAK1Q,IACVI,MAAO,MvByoHXxS,IAAK,iBACLjG,MAAO,WuBpoHP,GAAI0V,GAAYhE,SAASW,cACzB,IAAiB,MAAbqD,GAAqBA,EAAUsT,YAAc,EAAG,MAAO,KAC3D,IAAIT,GAAc7S,EAAUuT,WAAW,EACvC,IAAmB,MAAfV,EAAqB,MAAO,KAChC,IAAInW,GAAQ/T,KAAK6qB,gBAAgBX,EAEjC,OADAhX,GAAM4X,KAAK,iBAAkB/W,GACtBA,KvBwoHPnM,IAAK,WACLjG,MAAO,WuBroHP,GAAIopB,GAAa/qB,KAAKypB,gBACtB,OAAkB,OAAdsB,GAA4B,KAAM,OAC1B/qB,KAAKgrB,kBAAkBD,GACpBA,MvByoHfnjB,IAAK,WACLjG,MAAO,WuBtoHP,MAAO0R,UAAS4X,gBAAkBjrB,KAAKP,QvB0oHvCmI,IAAK,oBACLjG,MAAO,SuBxoHSoS,GAAO,WACnBmX,IAAcnX,EAAM5E,MAAMhL,KAAM4P,EAAM5E,MAAMmC,QAC3CyC,GAAMyV,OAAOW,WAChBe,EAAU/c,MAAM4F,EAAM3E,IAAIjL,KAAM4P,EAAM3E,IAAIkC,QAE5C,IAAI6Z,GAAUD,EAAUvlB,IAAI,SAAC4e,GAAa,QACnBA,EADmB,GACnCpgB,EADmC,KAC7BmN,EAD6B,KAEpChN,EAAO7B,UAAUG,KAAKuB,GAAM,GAC5BqH,EAAQlH,EAAKgN,OAAO,EAAK4F,OAC7B,OAAe,KAAX5F,EACK9F,EACElH,YAAgB7B,WAAUM,UAC5ByI,EAAQlH,EAAKoB,SAEb8F,EAAQlH,EAAKkH,MAAMrH,EAAMmN,KAGhClC,EAAM5C,KAAKC,IAAID,KAAKwI,IAAL,MAAAxI,KAAA,EAAY2e,IAAUnrB,KAAKkX,OAAOxR,SAAW,GAC5DyJ,EAAQ3C,KAAKC,IAAL,MAAAD,MAAS4C,GAAT,SAAiB+b,IAC7B,OAAO,IAAIlW,GAAM9F,EAAOC,EAAID,MvBgpH5BvH,IAAK,kBACLjG,MAAO,SuB9oHOuoB,GACd,IAAKlP,EAAShb,KAAKP,KAAMyqB,EAAYkB,kBAC/BlB,EAAYC,YAAcnP,EAAShb,KAAKP,KAAMyqB,EAAYmB,cAC9D,MAAO,KAET,IAAItX,IACF5E,OAAShL,KAAM+lB,EAAYkB,eAAgB9Z,OAAQ4Y,EAAYJ,aAC/D1a,KAAOjL,KAAM+lB,EAAYmB,aAAc/Z,OAAQ4Y,EAAYF,WAC3DR,OAAQU,EAiBV,QAfCnW,EAAM5E,MAAO4E,EAAM3E,KAAK/I,QAAQ,SAASke,GAExC,IADA,GAAIpgB,GAAOogB,EAASpgB,KAAMmN,EAASiT,EAASjT,SACnCnN,YAAgBZ,QAASY,EAAKgf,WAAWzd,OAAS,GACzD,GAAIvB,EAAKgf,WAAWzd,OAAS4L,EAC3BnN,EAAOA,EAAKgf,WAAW7R,GACvBA,EAAS,MACJ,IAAInN,EAAKgf,WAAWzd,SAAW4L,EAIpC,KAHAnN,GAAOA,EAAKmnB,UACZha,EAASnN,YAAgBZ,MAAOY,EAAKimB,KAAK1kB,OAASvB,EAAKgf,WAAWzd,OAAS,EAKhF6e,EAASpgB,KAAOA,EAAMogB,EAASjT,OAASA,IAEnCyC,KvBipHPnM,IAAK,gBACLjG,MAAO,SuB/oHKoS,GAAO,WACfoX,EAAUpX,EAAMoW,WAAapW,EAAMvI,QAAUuI,EAAMvI,MAAOuI,EAAMvI,MAAQuI,EAAMrO,QAC9E6O,KACA8V,EAAerqB,KAAKkX,OAAOxR,QAU/B,OATAylB,GAAQ9kB,QAAQ,SAACmF,EAAOpL,GACtBoL,EAAQgB,KAAKC,IAAI4d,EAAe,EAAG7e,EAC/B,IAAArH,OAAA,KAAuB,EAAK+S,OAAO3K,KAAKf,GAAxC,SAAOe,EAAP,KAAa+E,EAAb,KAFwB,EAGX/E,EAAKgY,SAASjT,EAAc,IAANlR,GAHX,QAG3B+D,GAH2B,KAGrBmN,EAHqB,KAI5BiD,EAAKpG,KAAKhK,EAAMmN,KAEdiD,EAAK7O,OAAS,IAChB6O,EAAOA,EAAKjE,OAAOiE,IAEdA,KvB8pHP3M,IAAK,iBACLjG,MAAO,SuB5pHMsV,GACb,GAAIlD,GAAQ/T,KAAK+X,SACjB,IAAa,MAAThE,EAAJ,CACA,GAAI4F,GAAS3Z,KAAK4Z,UAAU7F,EAAMvI,MAAOuI,EAAMrO,OAC/C,IAAc,MAAViU,EAAJ,CACA,GAAInB,GAAQxY,KAAKkX,OAAOxR,SAAS,EALA,EAMjB1F,KAAKkX,OAAOnK,KAAKP,KAAKC,IAAIsH,EAAMvI,MAAOgN,IANtB,SAM5B+S,EAN4B,KAO7BC,EAAOD,CACX,IAAIxX,EAAMrO,OAAS,EAAG,OACT1F,KAAKkX,OAAOnK,KAAKP,KAAKC,IAAIsH,EAAMvI,MAAQuI,EAAMrO,OAAQ8S,GAAhEgT,GADmB,UAGtB,GAAa,MAATD,GAAyB,MAARC,EAArB,CACA,GAAIC,GAAexU,EAAmB6C,uBAClCH,GAAOK,IAAMyR,EAAazR,IAC5B/C,EAAmBqC,WAAcmS,EAAazR,IAAML,EAAOK,IAClDL,EAAOI,OAAS0R,EAAa1R,SACtC9C,EAAmBqC,WAAcK,EAAOI,OAAS0R,EAAa1R,cvBwqHhEnS,IAAK,iBACLjG,MAAO,SuBrqHMkoB,EAAWC,GAA0E,GAA7DC,GAA6D,uDAAnDF,EAAWG,EAAwC,uDAA5BF,EAAaxc,EAAe,uDAElG,IADA4F,EAAM4X,KAAK,iBAAkBjB,EAAWC,EAAaC,EAASC,GAC7C,MAAbH,GAA8C,MAAxB7pB,KAAKP,KAAK8E,YAA8C,MAAxBslB,EAAUtlB,YAA4C,MAAtBwlB,EAAQxlB,WAAlG,CAGA,GAAI8S,GAAYhE,SAASW,cACzB,IAAiB,MAAbqD,EACJ,GAAiB,MAAbwS,EAAmB,CAChB7pB,KAAK4a,YAAY5a,KAAKP,KAAK8Z,OAChC,IAAIiQ,IAAUxpB,KAAKypB,sBAAwBD,MAC3C,IAAc,MAAVA,GAAkBlc,GAClBuc,IAAcL,EAAO4B,gBACrBtB,IAAgBN,EAAOM,aACvBC,IAAYP,EAAO6B,cACnBrB,IAAcR,EAAOQ,UAAW,CAET,MAArBH,EAAUxkB,UACZykB,KAAiB5Y,QAAQ3Q,KAAKspB,EAAUtlB,WAAW4e,WAAY0G,GAC/DA,EAAYA,EAAUtlB,YAED,MAAnBwlB,EAAQ1kB,UACV2kB,KAAe9Y,QAAQ3Q,KAAKwpB,EAAQxlB,WAAW4e,WAAY4G,GAC3DA,EAAUA,EAAQxlB,WAEpB,IAAIwP,GAAQV,SAASiX,aACrBvW,GAAMwW,SAASV,EAAWC,GAC1B/V,EAAMyW,OAAOT,EAASC,GACtB3S,EAAUqU,kBACVrU,EAAUsU,SAAS5X,QAGrBsD,GAAUqU,kBACV1rB,KAAKP,KAAKmsB,OACVvY,SAASuR,KAAKrL,YvByqHhB3R,IAAK,WACLjG,MAAO,SuBtqHAoS,GAAoD,GAA7CzG,GAA6C,wDAA9BmG,EAA8B,uDAArBG,UAAQC,QAAQiB,GAMtD,IALqB,gBAAVxH,KACTmG,EAASnG,EACTA,GAAQ,GAEV4F,EAAM4X,KAAK,WAAY/W,GACV,MAATA,EAAe,CACjB,GAAIQ,GAAOvU,KAAK6rB,cAAc9X,EAC9B/T,MAAK2pB,eAAL,MAAA3pB,KAAA,EAAuBuU,GAAvB,QAA6BjH,SAE7BtN,MAAK2pB,eAAe,KAEtB3pB,MAAKgY,OAAOvE,MvB4qHZ7L,IAAK,SACLjG,MAAO,WuB1qH6B,GAA/B8R,GAA+B,uDAAtBG,UAAQC,QAAQC,KAC1BgY,EAAW9rB,KAAK+X,UADgB,EAEL/X,KAAK0a,WAFA,SAE/B3C,EAF+B,KAEpBmS,EAFoB,IAOpC,IAJAlqB,KAAK+X,UAAYA,EACK,MAAlB/X,KAAK+X,YACP/X,KAAKopB,WAAappB,KAAK+X,aAEpB,aAAM+T,EAAU9rB,KAAK+X,WAAY,QAC/B/X,KAAKipB,WAA4B,MAAfiB,GAAuBA,EAAYV,OAAOW,WAAaD,EAAY/a,MAAMhL,OAASnE,KAAKmpB,OAAOO,UACnH1pB,KAAKmpB,OAAOc,SAEd,IAAI1V,IAAQX,UAAQY,OAAOmI,kBAAkB,aAAM3c,KAAK+X,YAAY,aAAM+T,GAAWrY,EAErF,KADA,EAAAzT,KAAK0U,SAAQC,KAAb,SAAkBf,UAAQY,OAAOI,eAAjC,OAAmDL,IAC/Cd,IAAWG,UAAQC,QAAQS,OAAQ,QACrC,EAAAtU,KAAK0U,SAAQC,KAAb,QAAqBJ,SvB2rHpB+C,IAkBT3X,GuBtrHSsV,QvBurHTtV,EuBvrH6BqD,QAAbsU,GvB2rHV,SAAU1X,EAAQD,EAASM,GAEjC,YAeA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GwBniIT,YxBwiII6I,EAAc/B,EAAuBgC,GwBviIzC,OxB2iIImU,EAAUnW,EAAuBoW,GwBxiI/B9b,E,YxBqjIJ,QAASA,KAGP,MAFA2F,GAAgB1I,KAAM+C,GAEf+F,EAA2B9I,MAAO+C,EAAU2D,WAAa5F,OAAOqJ,eAAepH,IAAYiI,MAAMhL,KAAMyF,YAGhH,MARAuD,GAAUjG,EAAWgpB,GAQdhpB,GwB3jIeN,UAAUM,UAClCA,GAAUyK,iBAAmBnK,UAAOkG,aAAYxG,GxB+jIhDpD,EAAQqD,QwB5jIOD,GxBgkIT,SAAUnD,EAAQD,EAASM,GAEjC,YAkBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAnBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqsB,WAAarsB,EAAQssB,WAAatsB,EAAQusB,oBAAkB1iB,EAEpE,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IyBplI5d,OzBwlIIQ,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GyBtlInCyhB,E,YzBmmIJ,QAASA,KAGP,MAFAxjB,GAAgB1I,KAAMksB,GAEfpjB,EAA2B9I,MAAOksB,EAAgBxlB,WAAa5F,OAAOqJ,eAAe+hB,IAAkBlhB,MAAMhL,KAAMyF,YAe5H,MApBAuD,GAAUkjB,EAAiBC,GAQ3B1iB,EAAayiB,IACXtkB,IAAK,QACLjG,MAAO,SyB1mIHuJ,GACJ,GAAIvJ,GAAQA,EAARA,kFAAoBuJ,EACxB,OAAKvJ,GAAMoX,WAAW,SACtBpX,EAAQA,EAAM4b,QAAQ,UAAW,IAAIA,QAAQ,UAAW,IACjD,IAAM5b,EAAMuD,MAAM,KAAKS,IAAI,SAASgL,GACzC,OAAQ,KAAOyb,SAASzb,GAAWvJ,SAAS,KAAK4E,OAAO,KACvDyE,KAAK,KAJ8B9O,MzBknIjCuqB,GyBrnIqBzpB,UAAUe,WAAWG,OAW/CsoB,EAAa,GAAIxpB,WAAUe,WAAWE,MAAM,QAAS,YACvDc,MAAO/B,UAAUC,MAAMoC,SAErBknB,EAAa,GAAIE,GAAgB,QAAS,SAC5C1nB,MAAO/B,UAAUC,MAAMoC,QzBgnIzBnF,GyB7mISusB,kBzB8mITvsB,EyB9mI0BssB,azB+mI1BtsB,EyB/mIsCqsB,czBmnIhC,SAAUpsB,EAAQD,EAASM,GAEjC,YAkDA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G0Bn5Hje,QAASmjB,GAAsBzkB,EAAK0kB,GAAU,MACtCC,EAAQ3kB,IAAQ8Z,EAASxT,KAAKse,KAAO,SAAW,QACtD,WACE5kB,MACA0kB,WACAG,OAAQ,MAHV,IAIGF,EAAQ,MAJX,cAKW,SAASxY,GAChB,GAAIvI,GAAQuI,EAAMvI,KACd5D,KAAQ8Z,EAASxT,KAAKwe,QACxBlhB,GAAUuI,EAAMrO,OAAS,EAHJ,OAKN1F,KAAK2b,MAAMgR,QAAQnhB,EACpC,SANuB,mBAMD/I,WAAUU,SAC5ByE,IAAQ8Z,EAASxT,KAAKse,KACpBF,EACFtsB,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGuI,EAAMrO,OAAS,EAAG+M,UAAMoB,QAAQC,MAEzE9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGiH,UAAMoB,QAAQC,MAGrDwY,EACFtsB,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAOuI,EAAMrO,OAAS,EAAG+M,UAAMoB,QAAQC,MAErE9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQuI,EAAMrO,OAAS,EAAG+M,UAAMoB,QAAQC,OAGnE,KAzBX,EA+BF,QAAS8Y,GAAgB7Y,EAAO3G,GAC9B,KAAoB,IAAhB2G,EAAMvI,OAAexL,KAAK2b,MAAMtB,aAAe,GAAnD,CADuC,MAExBra,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OAFD,SAElCuB,EAFkC,KAGnC3D,IACJ,IAAuB,IAAnBgE,EAAQkE,OAAc,OACTtR,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,MAAQ,GADxB,SACnBqU,EADmB,IAExB,IAAY,MAARA,GAAgBA,EAAKna,SAAW,EAAG,CACrC,GAAIonB,GAAa/f,EAAK3D,UAClB2jB,EAAc/sB,KAAK2b,MAAMpB,UAAUxG,EAAMvI,MAAM,EAAG,EACtDpC,GAAU4jB,UAAQroB,WAAW+I,KAAKof,EAAYC,QAIlD,GAAIrnB,GAAS,kCAAkCunB,KAAK7f,EAAQ8f,QAAU,EAAI,CAC1EltB,MAAK2b,MAAMxC,WAAWpF,EAAMvI,MAAM9F,EAAQA,EAAQ+M,UAAMoB,QAAQC,MAC5DhT,OAAOoN,KAAK9E,GAAS1D,OAAS,GAChC1F,KAAK2b,MAAMlC,WAAW1F,EAAMvI,MAAM9F,EAAQA,EAAQ0D,EAASqJ,UAAMoB,QAAQC,MAE3E9T,KAAK2b,MAAMpC,SAGb,QAAS4T,GAAapZ,EAAO3G,GAE3B,GAAI1H,GAAS,kCAAkCunB,KAAK7f,EAAQggB,QAAU,EAAI,CAC1E,MAAIrZ,EAAMvI,OAASxL,KAAK2b,MAAMtB,YAAc3U,GAA5C,CACA,GAAI0D,MAAcikB,EAAa,EAJK,EAKrBrtB,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OALJ,SAK/BuB,EAL+B,IAMpC,IAAIK,EAAQkE,QAAUvE,EAAKrH,SAAW,EAAG,OACxB1F,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,MAAQ,GADT,SAClCM,EADkC,IAEvC,IAAIA,EAAM,CACR,GAAIghB,GAAa/f,EAAK3D,UAClBkkB,EAActtB,KAAK2b,MAAMpB,UAAUxG,EAAMvI,MAAO,EACpDpC,GAAU4jB,UAAQroB,WAAW+I,KAAKof,EAAYQ,OAC9CD,EAAavhB,EAAKpG,UAGtB1F,KAAK2b,MAAMxC,WAAWpF,EAAMvI,MAAO9F,EAAQ+M,UAAMoB,QAAQC,MACrDhT,OAAOoN,KAAK9E,GAAS1D,OAAS,GAChC1F,KAAK2b,MAAMlC,WAAW1F,EAAMvI,MAAQ6hB,EAAa,EAAG3nB,EAAQ0D,EAASqJ,UAAMoB,QAAQC,OAIvF,QAASyZ,GAAkBxZ,GACzB,GAAIrH,GAAQ1M,KAAK2b,MAAM6R,SAASzZ,GAC5B3K,IACJ,IAAIsD,EAAMhH,OAAS,EAAG,CACpB,GAAI+nB,GAAe/gB,EAAM,GAAGtD,UACxBskB,EAAchhB,EAAMA,EAAMhH,OAAS,GAAG0D,SAC1CA,GAAU4jB,UAAQroB,WAAW+I,KAAKggB,EAAaD,OAEjDztB,KAAK2b,MAAMxC,WAAWpF,EAAOtB,UAAMoB,QAAQC,MACvChT,OAAOoN,KAAK9E,GAAS1D,OAAS,GAChC1F,KAAK2b,MAAMlC,WAAW1F,EAAMvI,MAAO,EAAGpC,EAASqJ,UAAMoB,QAAQC,MAE/D9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAOiH,UAAMoB,QAAQS,QACnDtU,KAAK2b,MAAMpC,QAGb,QAASoU,GAAY5Z,EAAO3G,GAAS,UAC/B2G,GAAMrO,OAAS,GACjB1F,KAAK2b,MAAMzE,OAAOkI,SAASrL,EAAMvI,MAAOuI,EAAMrO,OAEhD,IAAIkoB,GAAc9sB,OAAOoN,KAAKd,EAAQ3B,QAAQa,OAAO,SAASshB,EAAaniB,GAIzE,MAHIhJ,WAAUI,MAAM4I,EAAQhJ,UAAUC,MAAMmC,SAAWoB,MAAMC,QAAQkH,EAAQ3B,OAAOA,MAClFmiB,EAAYniB,GAAU2B,EAAQ3B,OAAOA,IAEhCmiB,MAET5tB,MAAK2b,MAAMZ,WAAWhH,EAAMvI,MAAO,KAAMoiB,EAAanb,UAAMoB,QAAQC,MAGpE9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGiH,UAAMoB,QAAQS,QACvDtU,KAAK2b,MAAMpC,QACXzY,OAAOoN,KAAKd,EAAQ3B,QAAQpF,QAAQ,SAAC1F,GACV,MAArBitB,EAAYjtB,KACZsF,MAAMC,QAAQkH,EAAQ3B,OAAO9K,KACpB,SAATA,GACJ,EAAKgb,MAAMlQ,OAAO9K,EAAMyM,EAAQ3B,OAAO9K,GAAO8R,UAAMoB,QAAQC,SAIhE,QAAS+Z,GAAqBC,GAC5B,OACElmB,IAAK8Z,EAASxT,KAAK+R,IACnBqM,UAAWwB,EACXriB,QAAS,cAAc,GACvB8Q,QAAS,SAASxI,GAChB,GAAIgL,GAAYtc,UAAUI,MAAM,cAC5B2I,EAAQuI,EAAMvI,MAAO9F,EAASqO,EAAMrO,OAFjB,EAGD1F,KAAK2b,MAAMzE,OAAOiI,WAAWJ,EAAWvT,GAHvC,SAGlBI,EAHkB,KAGX0F,EAHW,IAIvB,IAAa,MAAT1F,EAAJ,CACA,GAAImiB,GAAc/tB,KAAK2b,MAAMqS,SAASpiB,GAClCuD,EAAQvD,EAAM0T,aAAahO,GAAQ,GAAQ,EAC3ClC,EAAMxD,EAAM0T,aAAayO,EAAczc,EAAS5L,GAChDgH,EAAQd,EAAMV,QAAQ+T,YAAYjT,MAAMmD,EAAOC,GAAKlK,MAAM,KAC9DoM,GAAS,EACT5E,EAAMrG,QAAQ,SAAC0G,EAAM3M,GACf0tB,GACFliB,EAAMG,SAASoD,EAAQmC,EAAQyN,EAAUkB,KACzC3O,GAAUyN,EAAUkB,IAAIva,OACd,IAANtF,EACFoL,GAASuT,EAAUkB,IAAIva,OAEvBA,GAAUqZ,EAAUkB,IAAIva,QAEjBqH,EAAKgM,WAAWgG,EAAUkB,OACnCrU,EAAMwT,SAASjQ,EAAQmC,EAAQyN,EAAUkB,IAAIva,QAC7C4L,GAAUyN,EAAUkB,IAAIva,OACd,IAANtF,EACFoL,GAASuT,EAAUkB,IAAIva,OAEvBA,GAAUqZ,EAAUkB,IAAIva,QAG5B4L,GAAUvE,EAAKrH,OAAS,IAE1B1F,KAAK2b,MAAM3D,OAAOvF,UAAMoB,QAAQC,MAChC9T,KAAK2b,MAAMtH,aAAa7I,EAAO9F,EAAQ+M,UAAMoB,QAAQS,WAK3D,QAAS2Z,GAAkBxiB,GACzB,OACE7D,IAAK6D,EAAO,GAAGtF,cACf+nB,UAAU,EACV3R,QAAS,SAASxI,EAAO3G,GACvBpN,KAAK2b,MAAMlQ,OAAOA,GAAS2B,EAAQ3B,OAAOA,GAASgH,UAAMoB,QAAQC,QAKvE,QAASqa,GAAUC,GACjB,GAAuB,gBAAZA,IAA2C,gBAAZA,GACxC,MAAOD,IAAYvmB,IAAKwmB,GAK1B,IAHuB,gBAAnB,KAAOA,EAAP,cAAOA,MACTA,GAAU,aAAMA,GAAS,IAEA,gBAAhBA,GAAQxmB,IACjB,GAAgD,MAA5C8Z,EAASxT,KAAKkgB,EAAQxmB,IAAIzB,eAC5BioB,EAAQxmB,IAAM8Z,EAASxT,KAAKkgB,EAAQxmB,IAAIzB,mBACnC,IAA2B,IAAvBioB,EAAQxmB,IAAIlC,OAGrB,MAAO,KAFP0oB,GAAQxmB,IAAMwmB,EAAQxmB,IAAIzB,cAAckoB,WAAW,GASvD,MAJID,GAAQF,WACVE,EAAQE,GAAYF,EAAQF,eACrBE,GAAQF,UAEVE,E1BmqHTttB,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQ2uB,SAAW3uB,EAAQqD,YAAUwG,EAErC,IAAI0L,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAO5F,SAAwB,SAAU9H,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX0N,SAAyB1N,EAAIZ,cAAgBsO,QAAU1N,IAAQ0N,OAAO5T,UAAY,eAAkBkG,IAElQ2N,EAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M0BrpIhiB,Q1BypIIkgB,EAAUrgB,EAAuByd,G0BxpIrC,Q1B4pII6C,EAActgB,EAAuBugB,G0B3pIzC,O1B+pII5e,EAAW3B,EAAuB4B,G0B9pItC,O1BkqIIC,EAAe7B,EAAuB8B,G0BjqI1C,Q1BqqIIgkB,EAAO9lB,EAAuB+lB,G0BpqIlC,O1BwqIIhkB,EAAc/B,EAAuBgC,G0BvqIzC,O1B2qIIgkB,EAAUhmB,EAAuBimB,G0B1qIrC,Q1B8qIIrY,EAAW5N,EAAuB6N,G0B7qItC,O1BirIIL,EAAWxN,EAAuByN,G0B/qIlChD,GAAQ,aAAO,kBAEbob,EAAW,OAAOrB,KAAK0B,UAAUC,UAAY,UAAY,UAGzDlN,E,YAWJ,WAAY/F,EAAO5T,GAAS,yEACpB4T,EAAO5T,GADa,OAE1B,GAAK8mB,YACL/tB,OAAOoN,KAAK,EAAKnG,QAAQ8mB,UAAUxoB,QAAQ,SAAC1F,IAC7B,kBAATA,GAC0B,MAA1Bgb,EAAMzE,OAAOC,WACZwE,EAAMzE,OAAOC,UAAb,OAGD,EAAKpP,QAAQ8mB,SAASluB,IACxB,EAAKmuB,WAAW,EAAK/mB,QAAQ8mB,SAASluB,MAG1C,EAAKmuB,YAAalnB,IAAK8Z,EAASxT,KAAKyT,MAAO2K,SAAU,MAAQqB,GAC9D,EAAKmB,YAAalnB,IAAK8Z,EAASxT,KAAKyT,MAAOoN,QAAS,KAAMC,QAAS,KAAMvC,OAAQ,MAAQ,cACtF,WAAWQ,KAAK0B,UAAUM,YAE5B,EAAKH,YAAalnB,IAAK8Z,EAASxT,KAAKghB,YAAe/E,WAAW,GAAQyC,GACvE,EAAKkC,YAAalnB,IAAK8Z,EAASxT,KAAK4C,SAAYqZ,WAAW,GAAQgD,KAEpE,EAAK2B,YAAalnB,IAAK8Z,EAASxT,KAAKghB,YAAe/E,WAAW,EAAM+C,OAAQ,QAAUN,GACvF,EAAKkC,YAAalnB,IAAK8Z,EAASxT,KAAK4C,SAAYqZ,WAAW,EAAMiD,OAAQ,QAAUD,IAEtF,EAAK2B,YAAalnB,IAAK8Z,EAASxT,KAAKghB,YAAe/E,WAAW,GAASoD,GACxE,EAAKuB,YAAalnB,IAAK8Z,EAASxT,KAAK4C,SAAYqZ,WAAW,GAASoD,GACrE,EAAKuB,YAAalnB,IAAK8Z,EAASxT,KAAKghB,UAAWzC,OAAQ,KAAMuC,QAAS,KAAMD,QAAS,KAAMzC,SAAU,OACpFnC,WAAW,EAAM7Y,OAAQ,GAC3Bsb,GAChB,EAAKuC,SA5BqB,E1B0zI5B,MA1IAnmB,GAAU0Y,EAAU0N,GAEpB3lB,EAAaiY,EAAU,OACrB9Z,IAAK,QACLjG,MAAO,S0B9rII0tB,EAAKjB,GAEhB,MADAA,GAAUD,EAAUC,KACf,SAAU,UAAW,UAAW,YAAYlK,KAAK,SAAStc,GAC7D,QAAUwmB,EAAQxmB,KAASynB,EAAIznB,IAAyB,OAAjBwmB,EAAQxmB,MAI1CwmB,EAAQxmB,OAASynB,EAAIC,OAASD,EAAI5N,a1BiuI3ChY,EAAaiY,IACX9Z,IAAK,aACLjG,MAAO,S0BjsIEiG,GAAiC,GAA5BwF,GAA4B,0DAAdmP,EAAc,0DACtC6R,EAAUD,EAAUvmB,EACxB,IAAe,MAAXwmB,GAAkC,MAAfA,EAAQxmB,IAC7B,MAAOsL,GAAM4F,KAAK,4CAA6CsV,EAE1C,mBAAZhhB,KACTA,GAAYmP,QAASnP,IAEA,kBAAZmP,KACTA,GAAYA,QAASA,IAEvB6R,GAAU,aAAOA,EAAShhB,EAASmP,GACnCvc,KAAK6uB,SAAST,EAAQxmB,KAAO5H,KAAK6uB,SAAST,EAAQxmB,SACnD5H,KAAK6uB,SAAST,EAAQxmB,KAAKuG,KAAKigB,M1BusIhCxmB,IAAK,SACLjG,MAAO,W0BrsIA,UACP3B,MAAK2b,MAAMlc,KAAKuc,iBAAiB,UAAW,SAACqT,GAC3C,IAAIA,EAAIE,iBAAR,CACA,GAAID,GAAQD,EAAIC,OAASD,EAAI5N,QACzBoN,GAAY,EAAKA,SAASS,QAAc5gB,OAAO,SAAS0f,GAC1D,MAAO1M,GAAS5d,MAAMurB,EAAKjB,IAE7B,IAAwB,IAApBS,EAASnpB,OAAb,CACA,GAAIqO,GAAQ,EAAK4H,MAAM3H,cACvB,IAAa,MAATD,GAAkB,EAAK4H,MAAMf,WAAjC,CARmD,MAS9B,EAAKe,MAAMkR,QAAQ9Y,EAAMvI,OATK,SAS9CuB,EAT8C,KASxCuE,EATwC,OAUpB,EAAKqK,MAAMgR,QAAQ5Y,EAAMvI,OAVL,SAU9CgkB,EAV8C,KAUnCC,EAVmC,OAWP,IAAjB1b,EAAMrO,QAAgB8pB,EAAWC,GAAe,EAAK9T,MAAMgR,QAAQ5Y,EAAMvI,MAAQuI,EAAMrO,QAX/D,SAW9CgqB,EAX8C,KAWrCC,EAXqC,KAY/CC,EAAaJ,YAAqB/sB,WAAUc,KAAOisB,EAAU7tB,QAAQqK,MAAM,EAAGyjB,GAAe,GAC7FI,EAAaH,YAAmBjtB,WAAUc,KAAOmsB,EAAQ/tB,QAAQqK,MAAM2jB,GAAa,GACpFG,GACF3F,UAA4B,IAAjBpW,EAAMrO,OACjBqqB,MAAwB,IAAjBhc,EAAMrO,QAAgBqH,EAAKrH,UAAY,EAC9C+F,OAAQ,EAAKkQ,MAAMpB,UAAUxG,GAC7BzC,OAAQA,EACR4b,OAAQ0C,EACRxC,OAAQyC,EAEMhB,GAAS3K,KAAK,SAACkK,GAC7B,GAAyB,MAArBA,EAAQjE,WAAqBiE,EAAQjE,YAAc2F,EAAW3F,UAAW,OAAO,CACpF,IAAqB,MAAjBiE,EAAQ2B,OAAiB3B,EAAQ2B,QAAUD,EAAWC,MAAO,OAAO,CACxE,IAAsB,MAAlB3B,EAAQ9c,QAAkB8c,EAAQ9c,SAAWwe,EAAWxe,OAAQ,OAAO,CAC3E,IAAIrL,MAAMC,QAAQkoB,EAAQ3iB,SAExB,GAAI2iB,EAAQ3iB,OAAOukB,MAAM,SAASrvB,GAChC,MAAkC,OAA3BmvB,EAAWrkB,OAAO9K,KAEzB,OAAO,MAEJ,IAA8B,WAA1B,EAAOytB,EAAQ3iB,UAEnB3K,OAAOoN,KAAKkgB,EAAQ3iB,QAAQukB,MAAM,SAASrvB,GAC9C,OAA6B,IAAzBytB,EAAQ3iB,OAAO9K,GAAkD,MAA3BmvB,EAAWrkB,OAAO9K,IAC/B,IAAzBytB,EAAQ3iB,OAAO9K,GAAmD,MAA3BmvB,EAAWrkB,OAAO9K,IACtD,aAAMytB,EAAQ3iB,OAAO9K,GAAOmvB,EAAWrkB,OAAO9K,MAErD,OAAO,CAGX,SAAsB,MAAlBytB,EAAQlB,SAAmBkB,EAAQlB,OAAOD,KAAK6C,EAAW5C,aACxC,MAAlBkB,EAAQhB,SAAmBgB,EAAQhB,OAAOH,KAAK6C,EAAW1C,WACL,IAAlDgB,EAAQ7R,QAAQhc,KAAK,EAAMwT,EAAO+b,OAGzCT,EAAIvN,0B1B0tIHJ,G0Br0IchG,UAiHvBgG,GAASxT,MACPghB,UAAW,EACXjP,IAAK,EACL0B,MAAO,GACPC,OAAQ,GACR4K,KAAM,GACNyD,GAAI,GACJvD,MAAO,GACPwD,KAAM,GACNpf,OAAQ,IAGV4Q,EAAShP,UACPmc,UACE,KAAcZ,EAAkB,QAChC,OAAcA,EAAkB,UAChC,UAAcA,EAAkB,aAChC,QAEErmB,IAAK8Z,EAASxT,KAAK+R,IACnBxU,QAAS,aAAc,SAAU,QACjC8Q,QAAS,SAASxI,EAAO3G,GACvB,GAAIA,EAAQ+c,WAAgC,IAAnB/c,EAAQkE,OAAc,OAAO,CACtDtR,MAAK2b,MAAMlQ,OAAO,SAAU,KAAMgH,UAAMoB,QAAQC,QAGpD,SACElM,IAAK8Z,EAASxT,KAAK+R,IACnBqM,UAAU,EACV7gB,QAAS,aAAc,SAAU,QAEjC8Q,QAAS,SAASxI,EAAO3G,GACvB,GAAIA,EAAQ+c,WAAgC,IAAnB/c,EAAQkE,OAAc,OAAO,CACtDtR,MAAK2b,MAAMlQ,OAAO,SAAU,KAAMgH,UAAMoB,QAAQC,QAGpD,qBACElM,IAAK8Z,EAASxT,KAAKghB,UACnB/E,WAAW,EACXmC,SAAU,KACVyC,QAAS,KACTC,QAAS,KACTvC,OAAQ,KACRhhB,QAAS,SAAU,QACnB6F,OAAQ,EACRiL,QAAS,SAASxI,EAAO3G,GACM,MAAzBA,EAAQ3B,OAAOqiB,OACjB9tB,KAAK2b,MAAMlQ,OAAO,SAAU,KAAMgH,UAAMoB,QAAQC,MAChB,MAAvB1G,EAAQ3B,OAAO0kB,MACxBnwB,KAAK2b,MAAMlQ,OAAO,QAAQ,EAAOgH,UAAMoB,QAAQC,QAIrD,oBAAqB+Z,GAAqB,GAC1C,qBAAsBA,GAAqB,GAC3C,cACEjmB,IAAK8Z,EAASxT,KAAK+R,IACnBqM,UAAU,EACVnC,WAAW,EACX+C,OAAQ,MACR3Q,QAAS,SAASxI,GAChB/T,KAAK2b,MAAMxC,WAAWpF,EAAMvI,MAAQ,EAAG,EAAGiH,UAAMoB,QAAQC,QAG5D,KACElM,IAAK8Z,EAASxT,KAAK+R,IACnB1D,QAAS,SAASxI,GAChB/T,KAAK2b,MAAMpJ,QAAQ6d,QACnB,IAAIhkB,IAAQ,GAAIjB,YAAQiD,OAAO2F,EAAMvI,OACb0D,OAAO6E,EAAMrO,QACb0F,OAAO,KAC/BpL,MAAK2b,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,MAC/C9T,KAAK2b,MAAMpJ,QAAQ6d,SACnBpwB,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGiH,UAAMoB,QAAQS,UAG3D,oBACE1M,IAAK8Z,EAASxT,KAAKyT,MACnBwI,WAAW,EACX1e,QAAS,QACTskB,OAAO,EACPxT,QAAS,SAASxI,EAAO3G,GACvBpN,KAAK2b,MAAMlQ,OAAO,QAAQ,EAAOgH,UAAMoB,QAAQC,MAC3C1G,EAAQ3B,OAAOqiB,QACjB9tB,KAAK2b,MAAMlQ,OAAO,UAAU,EAAOgH,UAAMoB,QAAQC,QAIvD,mBACElM,IAAK8Z,EAASxT,KAAKyT,MACnBwI,WAAW,EACX1e,QAAU0kB,KAAM,WAChB5T,QAAS,SAASxI,GAAO,MACF/T,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OADvB,SAClBuB,EADkB,KACZuE,EADY,KAEnBlI,GAAU,gBAAW2D,EAAK3D,WAAa+mB,KAAM,YAC7C/jB,GAAQ,GAAIjB,YAAQiD,OAAO2F,EAAMvI,OACbJ,OAAO,KAAMhC,GACbgF,OAAOrB,EAAKrH,SAAW4L,EAAS,GAChClD,OAAO,GAAK+hB,KAAM,aAC1CnwB,MAAK2b,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,MAC/C9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGiH,UAAMoB,QAAQS,QACvDtU,KAAK2b,MAAMnC,mBAGf,gBACE5R,IAAK8Z,EAASxT,KAAKyT,MACnBwI,WAAW,EACX1e,QAAS,UACT2hB,OAAQ,KACR7Q,QAAS,SAASxI,EAAO3G,GAAS,MACXpN,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OADd,SAC3BuB,EAD2B,KACrBuE,EADqB,KAE5BlF,GAAQ,GAAIjB,YAAQiD,OAAO2F,EAAMvI,OACbJ,OAAO,KAAMgC,EAAQ3B,QACrB2C,OAAOrB,EAAKrH,SAAW4L,EAAS,GAChClD,OAAO,GAAKkiB,OAAQ,MAC5CtwB,MAAK2b,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,MAC/C9T,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGiH,UAAMoB,QAAQS,QACvDtU,KAAK2b,MAAMnC,mBAGf,iBACE5R,IAAK,IACLuiB,WAAW,EACX1e,QAAU0kB,MAAM,GAChBjD,OAAQ,kCACR3Q,QAAS,SAASxI,EAAO3G,GACvB,GAAI1H,GAAS0H,EAAQ8f,OAAOxnB,OADI,EAEX1F,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OAFd,SAE3BuB,EAF2B,KAErBuE,EAFqB,IAGhC,IAAIA,EAAS5L,EAAQ,OAAO,CAC5B,IAAI/D,SACJ,QAAQyL,EAAQ8f,OAAOvW,QACrB,IAAK,KAAM,IAAK,MACdhV,EAAQ,WACR,MACF,KAAK,MACHA,EAAQ,SACR,MACF,KAAK,IAAK,IAAK,IACbA,EAAQ,QACR,MACF,SACEA,EAAQ,UAEZ3B,KAAK2b,MAAMZ,WAAWhH,EAAMvI,MAAO,IAAKiH,UAAMoB,QAAQC,MACtD9T,KAAK2b,MAAMpJ,QAAQ6d,QACnB,IAAIhkB,IAAQ,GAAIjB,YAAQiD,OAAO2F,EAAMvI,MAAQ8F,GACrBpC,OAAOxJ,EAAS,GAChB0I,OAAOrB,EAAKrH,SAAW,EAAI4L,GAC3BlD,OAAO,GAAK+hB,KAAMxuB,GAC1C3B,MAAK2b,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,MAC/C9T,KAAK2b,MAAMpJ,QAAQ6d,SACnBpwB,KAAK2b,MAAMtH,aAAaN,EAAMvI,MAAQ9F,EAAQ+M,UAAMoB,QAAQS,UAGhE,aACE1M,IAAK8Z,EAASxT,KAAKyT,MACnBwI,WAAW,EACX1e,QAAS,cACTyhB,OAAQ,QACRE,OAAQ,QACR7Q,QAAS,SAASxI,GAAO,MACA/T,KAAK2b,MAAMkR,QAAQ9Y,EAAMvI,OADzB,SAChBuB,EADgB,KACVuE,EADU,KAEjBlF,GAAQ,GAAIjB,YACfiD,OAAO2F,EAAMvI,MAAQuB,EAAKrH,SAAW4L,EAAS,GAC9ClD,OAAO,GAAK,aAAc,OAC1Bc,OAAO,EACVlP,MAAK2b,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,QAGnD,aAAcuY,EAAsB3K,EAASxT,KAAKse,MAAM,GACxD,mBAAoBH,EAAsB3K,EAASxT,KAAKse,MAAM,GAC9D,cAAeH,EAAsB3K,EAASxT,KAAKwe,OAAO,GAC1D,oBAAqBL,EAAsB3K,EAASxT,KAAKwe,OAAO,K1Bo7IpE/sB,E0BnvIqBqD,QAAZ0e,E1BovIT/hB,E0BpvI8B2uB,Y1BwvIxB,SAAU1uB,EAAQD,EAASM,GAEjC,Y2BvuJAL,GAAOD,SACL,OACE,GAAY4wB,EAAQ,IACpB,OAAYA,EAAQ,IACpB,MAAYA,EAAQ,IACpB,QAAYA,EAAQ,KAEtB,WAAcA,EAAQ,IACtB,WAAcA,EAAQ,IACtB,KAAcA,EAAQ,IACtB,MAAcA,EAAQ,IACtB,KAAcA,EAAQ,IACtB,aAAcA,EAAQ,IACtB,MAAcA,EAAQ,IACtB,WACE,GAAYA,EAAQ,IACpB,IAAYA,EAAQ,KAEtB,OACE,OAAYA,EAAQ,IACpB,KAAYA,EAAQ,IACpB,KAAYA,EAAQ,IACpB,MAAYA,EAAQ,KAEtB,QAAcA,EAAQ,IACtB,QACE,EAAYA,EAAQ,IACpB,EAAYA,EAAQ,KAEtB,OAAcA,EAAQ,IACtB,MAAcA,EAAQ,IACtB,QACE,KAAYA,EAAQ,IACpB,KAAYA,EAAQ,KAEtB,KAAcA,EAAQ,IACtB,MACE,QAAYA,EAAQ,IACpB,OAAYA,EAAQ,IACpB,MAAYA,EAAQ,MAEtB,QACE,IAAYA,EAAQ,KACpB,MAAYA,EAAQ,MAEtB,OAAcA,EAAQ,KACtB,UAAcA,EAAQ,KACtB,MAAcA,EAAQ,O3B+uJlB,SAAU3wB,EAAQD,EAASM,GAEjC,Y4B/xJAa,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIa,GAAW,EAAQ,GACnBguB,EAA4B,WAC5B,QAASA,GAAWtlB,GAChBlL,KAAKkL,QAAUA,EAEflL,KAAKkL,QAAQ1I,EAAS6B,WAAcC,KAAMtE,MAkJ9C,MAhJAc,QAAOC,eAAeyvB,EAAWjvB,UAAW,WAExCL,IAAK,WACD,MAAOlB,MAAK6G,aAEhB5F,YAAY,EACZD,cAAc,IAElBwvB,EAAW7tB,OAAS,SAAUhB,GAC1B,GAAoB,MAAhB3B,KAAKqF,QACL,KAAM,IAAI7C,GAASuB,eAAe,kCAEtC,IAAII,EAwBJ,OAvBI8B,OAAMC,QAAQlG,KAAKqF,UACE,gBAAV1D,KACPA,EAAQA,EAAMwE,cACVimB,SAASzqB,GAAOyF,aAAezF,IAC/BA,EAAQyqB,SAASzqB,KAIrBwC,EADiB,gBAAVxC,GACA0R,SAAS4F,cAAcjZ,KAAKqF,QAAQ1D,EAAQ,IAE9C3B,KAAKqF,QAAQ6L,QAAQvP,IAAU,EAC7B0R,SAAS4F,cAActX,GAGvB0R,SAAS4F,cAAcjZ,KAAKqF,QAAQ,KAI/ClB,EAAOkP,SAAS4F,cAAcjZ,KAAKqF,SAEnCrF,KAAKgG,WACL7B,EAAKyS,UAAUC,IAAI7W,KAAKgG,WAErB7B,GAEXqsB,EAAWjvB,UAAU8hB,OAAS,WACP,MAAfrjB,KAAKqJ,SACLrJ,KAAKkX,OAASlX,KAAKqJ,OAAO6N,SAGlCsZ,EAAWjvB,UAAUgH,MAAQ,WACzB,GAAI2C,GAAUlL,KAAKkL,QAAQulB,WAAU,EACrC,OAAOjuB,GAASG,OAAOuI,IAE3BslB,EAAWjvB,UAAUwiB,OAAS,WACP,MAAf/jB,KAAKqJ,QACLrJ,KAAKqJ,OAAO0W,YAAY/f,YAErBA,MAAKkL,QAAQ1I,EAAS6B,WAEjCmsB,EAAWjvB,UAAU6d,SAAW,SAAU5T,EAAO9F,GAClC1F,KAAK2R,QAAQnG,EAAO9F,GAC1ByH,UAETqjB,EAAWjvB,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GAC3D,GAAI2C,GAAOtE,KAAK2R,QAAQnG,EAAO9F,EAC/B,IAAiD,MAA7ClD,EAASK,MAAMlC,EAAM6B,EAASE,MAAMgP,OAAiB/P,EACrD2C,EAAKsN,KAAKjR,EAAMgB,OAEf,IAAsD,MAAlDa,EAASK,MAAMlC,EAAM6B,EAASE,MAAM0a,WAAoB,CAC7D,GAAI/T,GAAS7G,EAASG,OAAO3C,KAAKsJ,QAAQ9E,MAC1CF,GAAKsN,KAAKvI,GACVA,EAAOoC,OAAO9K,EAAMgB,KAG5B6uB,EAAWjvB,UAAUwK,SAAW,SAAUP,EAAO7J,EAAO+J,GACpD,GAAIpH,GAAc,MAAPoH,EAAclJ,EAASG,OAAO,OAAQhB,GAASa,EAASG,OAAOhB,EAAO+J,GAC7EsB,EAAMhN,KAAKkF,MAAMsG,EACrBxL,MAAKqJ,OAAOwC,aAAavH,EAAM0I,IAEnCwjB,EAAWjvB,UAAU4iB,WAAa,SAAUuM,EAAYzM,OACpC,KAAZA,IAAsBA,EAAU,MACjB,MAAfjkB,KAAKqJ,QACLrJ,KAAKqJ,OAAOwD,SAASM,OAAOnN,KAEhC,IAAI2wB,GAAa,IACjBD,GAAW7jB,SAAShB,aAAa7L,KAAMikB,GACxB,MAAXA,IACA0M,EAAa1M,EAAQ/Y,SAErBlL,KAAKkL,QAAQ3G,YAAcmsB,EAAWxlB,SACtClL,KAAKkL,QAAQ8Z,aAAe2L,GAC5BD,EAAWxlB,QAAQW,aAAa7L,KAAKkL,QAASylB,GAElD3wB,KAAKqJ,OAASqnB,EACd1wB,KAAKqjB,UAETmN,EAAWjvB,UAAUoQ,QAAU,SAAUnG,EAAO9F,GAC5C,GAAIoC,GAAS9H,KAAKkF,MAAMsG,EAExB,OADA1D,GAAO5C,MAAMQ,GACNoC,GAEX0oB,EAAWjvB,UAAUmE,OAAS,WAC1B,MAAO,IAEX8qB,EAAWjvB,UAAU+P,OAAS,SAAU7R,GAEpC,WADa,KAATA,IAAmBA,EAAOO,KAAKqJ,QAChB,MAAfrJ,KAAKqJ,QAAkBrJ,MAAQP,EACxB,EACJO,KAAKqJ,OAAOwD,SAASyE,OAAOtR,MAAQA,KAAKqJ,OAAOiI,OAAO7R,IAElE+wB,EAAWjvB,UAAUue,SAAW,SAAU1S,GAGC,MAAnCpN,KAAKkL,QAAQ1I,EAAS6B,iBAEfrE,MAAKkL,QAAQ1I,EAAS6B,UAAUyT,WAG/C0Y,EAAWjvB,UAAU4L,OAAS,WACK,MAA3BnN,KAAKkL,QAAQ3G,YACbvE,KAAKkL,QAAQ3G,WAAWwb,YAAY/f,KAAKkL,SAE7ClL,KAAK+jB,UAETyM,EAAWjvB,UAAUgc,QAAU,SAAUzV,GAChB,MAAjBA,EAAOuB,SAEXvB,EAAOuB,OAAOwC,aAAa7L,KAAM8H,EAAOgE,MACxChE,EAAOqF,WAEXqjB,EAAWjvB,UAAU4jB,YAAc,SAAUxkB,EAAMgB,GAC/C,GAAIyjB,GAA8B,gBAATzkB,GAAoB6B,EAASG,OAAOhC,EAAMgB,GAAShB,CAE5E,OADAykB,GAAY7H,QAAQvd,MACbolB,GAEXoL,EAAWjvB,UAAU2D,MAAQ,SAAUsG,EAAO8B,GAC1C,MAAiB,KAAV9B,EAAcxL,KAAOA,KAAK8L,MAErC0kB,EAAWjvB,UAAUyW,OAAS,SAAUF,EAAW1K,KAGnDojB,EAAWjvB,UAAUqQ,KAAO,SAAUjR,EAAMgB,GACxC,GAAI0jB,GAA0B,gBAAT1kB,GAAoB6B,EAASG,OAAOhC,EAAMgB,GAAShB,CAKxE,OAJmB,OAAfX,KAAKqJ,QACLrJ,KAAKqJ,OAAOwC,aAAawZ,EAASrlB,KAAK8L,MAE3CuZ,EAAQzF,YAAY5f,MACbqlB,GAEXmL,EAAW3qB,SAAW,WACf2qB,IAEX7wB,GAAQqD,QAAUwtB,G5BsyJZ,SAAU5wB,EAAQD,EAASM,GAEjC,Y6Bl8JAa,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIS,GAAe,EAAQ,IACvBC,EAAU,EAAQ,IAClBC,EAAU,EAAQ,IAClBE,EAAW,EAAQ,GACnBouB,EAAiC,WACjC,QAASA,GAAgB1lB,GACrBlL,KAAK2E,cACL3E,KAAKkL,QAAUA,EACflL,KAAKyjB,QAyDT,MAvDAmN,GAAgBrvB,UAAU+J,UAAY,SAAUA,EAAW3J,GAEnDA,EACI2J,EAAUuL,IAAI7W,KAAKkL,QAASvJ,KACS,MAAjC2J,EAAU3J,MAAM3B,KAAKkL,SACrBlL,KAAK2E,WAAW2G,EAAUxF,UAAYwF,QAG/BtL,MAAK2E,WAAW2G,EAAUxF,YAKzCwF,EAAU6B,OAAOnN,KAAKkL,eACflL,MAAK2E,WAAW2G,EAAUxF,YAGzC8qB,EAAgBrvB,UAAUkiB,MAAQ,WAC9B,GAAIzc,GAAQhH,IACZA,MAAK2E,aACL,IAAIA,GAAavC,EAAaY,QAAQkL,KAAKlO,KAAKkL,SAC5C/F,EAAU9C,EAAQW,QAAQkL,KAAKlO,KAAKkL,SACpC2lB,EAASvuB,EAAQU,QAAQkL,KAAKlO,KAAKkL,QACvCvG,GACK2L,OAAOnL,GACPmL,OAAOugB,GACPxqB,QAAQ,SAAU1F,GACnB,GAAImwB,GAAOtuB,EAASK,MAAMlC,EAAM6B,EAASE,MAAM0a,UAC3C0T,aAAgB1uB,GAAaY,UAC7BgE,EAAMrC,WAAWmsB,EAAKhrB,UAAYgrB,MAI9CF,EAAgBrvB,UAAU8G,KAAO,SAAUP,GACvC,GAAId,GAAQhH,IACZc,QAAOoN,KAAKlO,KAAK2E,YAAY0B,QAAQ,SAAUuB,GAC3C,GAAIjG,GAAQqF,EAAMrC,WAAWiD,GAAKjG,MAAMqF,EAAMkE,QAC9CpD,GAAO2D,OAAO7D,EAAKjG,MAG3BivB,EAAgBrvB,UAAU+jB,KAAO,SAAUxd,GACvC,GAAId,GAAQhH,IACZA,MAAKqI,KAAKP,GACVhH,OAAOoN,KAAKlO,KAAK2E,YAAY0B,QAAQ,SAAUuB,GAC3CZ,EAAMrC,WAAWiD,GAAKuF,OAAOnG,EAAMkE,WAEvClL,KAAK2E,eAETisB,EAAgBrvB,UAAU8J,OAAS,WAC/B,GAAIrE,GAAQhH,IACZ,OAAOc,QAAOoN,KAAKlO,KAAK2E,YAAY2H,OAAO,SAAU3H,EAAYhE,GAE7D,MADAgE,GAAWhE,GAAQqG,EAAMrC,WAAWhE,GAAMgB,MAAMqF,EAAMkE,SAC/CvG,QAGRisB,IAEXjxB,GAAQqD,QAAU4tB,G7By8JZ,SAAUhxB,EAAQD,EAASM,GAEjC,Y8BngKA,SAAS6D,GAAMK,EAAM+oB,GAEjB,OADgB/oB,EAAKc,aAAa,UAAY,IAC7BC,MAAM,OAAOwJ,OAAO,SAAU/N,GAC3C,MAAsC,KAA/BA,EAAKuQ,QAAQgc,EAAS,OAfrC,GAAI3mB,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIS,GAAe,EAAQ,IAOvB2uB,EAAiC,SAAUjqB,GAE3C,QAASiqB,KACL,MAAkB,QAAXjqB,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KA+B/D,MAjCAuG,GAAUwqB,EAAiBjqB,GAI3BiqB,EAAgB7iB,KAAO,SAAU/J,GAC7B,OAAQA,EAAKc,aAAa,UAAY,IAAIC,MAAM,OAAOS,IAAI,SAAUhF,GACjE,MAAOA,GACFuE,MAAM,KACN8G,MAAM,GAAI,GACVyE,KAAK,QAGlBsgB,EAAgBxvB,UAAUsV,IAAM,SAAU1S,EAAMxC,GAC5C,QAAK3B,KAAKsd,OAAOnZ,EAAMxC,KAEvB3B,KAAKmN,OAAOhJ,GACZA,EAAKyS,UAAUC,IAAI7W,KAAK+F,QAAU,IAAMpE,IACjC,IAEXovB,EAAgBxvB,UAAU4L,OAAS,SAAUhJ,GAC3BL,EAAMK,EAAMnE,KAAK+F,SACvBM,QAAQ,SAAU1F,GACtBwD,EAAKyS,UAAUzJ,OAAOxM,KAEI,IAA1BwD,EAAKyS,UAAUlR,QACfvB,EAAKqZ,gBAAgB,UAG7BuT,EAAgBxvB,UAAUI,MAAQ,SAAUwC,GACxC,GAAI6sB,GAASltB,EAAMK,EAAMnE,KAAK+F,SAAS,IAAM,GACzCpE,EAAQqvB,EAAOhlB,MAAMhM,KAAK+F,QAAQL,OAAS,EAC/C,OAAO1F,MAAKsd,OAAOnZ,EAAMxC,GAASA,EAAQ,IAEvCovB,GACT3uB,EAAaY,QACfrD,GAAQqD,QAAU+tB,G9BshKZ,SAAUnxB,EAAQD,EAASM,GAEjC,Y+BlkKA,SAASgxB,GAAStwB,GACd,GAAIuwB,GAAQvwB,EAAKuE,MAAM,KACnBmL,EAAO6gB,EACNllB,MAAM,GACNrG,IAAI,SAAUwrB,GACf,MAAOA,GAAK,GAAGhrB,cAAgBgrB,EAAKnlB,MAAM,KAEzCyE,KAAK,GACV,OAAOygB,GAAM,GAAK7gB,EApBtB,GAAI9J,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIS,GAAe,EAAQ,IAWvBgvB,EAAiC,SAAUtqB,GAE3C,QAASsqB,KACL,MAAkB,QAAXtqB,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KA2B/D,MA7BAuG,GAAU6qB,EAAiBtqB,GAI3BsqB,EAAgBljB,KAAO,SAAU/J,GAC7B,OAAQA,EAAKc,aAAa,UAAY,IAAIC,MAAM,KAAKS,IAAI,SAAUhE,GAE/D,MADUA,GAAMuD,MAAM,KACX,GAAGyR,UAGtBya,EAAgB7vB,UAAUsV,IAAM,SAAU1S,EAAMxC,GAC5C,QAAK3B,KAAKsd,OAAOnZ,EAAMxC,KAGvBwC,EAAKkd,MAAM4P,EAASjxB,KAAK+F,UAAYpE,GAC9B,IAEXyvB,EAAgB7vB,UAAU4L,OAAS,SAAUhJ,GAEzCA,EAAKkd,MAAM4P,EAASjxB,KAAK+F,UAAY,GAChC5B,EAAKc,aAAa,UACnBd,EAAKqZ,gBAAgB,UAG7B4T,EAAgB7vB,UAAUI,MAAQ,SAAUwC,GAExC,GAAIxC,GAAQwC,EAAKkd,MAAM4P,EAASjxB,KAAK+F,SACrC,OAAO/F,MAAKsd,OAAOnZ,EAAMxC,GAASA,EAAQ,IAEvCyvB,GACThvB,EAAaY,QACfrD,GAAQqD,QAAUouB,G/BqlKZ,SAAUxxB,EAAQD,EAASM,GAEjC,YAqBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAxBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAIyT,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBkB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IAExdP,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MgCzpKhiB,OhC6pKI4B,EAAc/B,EAAuBgC,GgC5pKzC,OhCgqKIK,EAASrC,EAAuBsC,GgC7pK9BsmB,E,YAKJ,WAAYnmB,EAASmM,GAAW,yEACxBnM,GADwB,OAE9B,GAAKmM,UAAYA,EACjB,EAAKqS,SAAWrW,SAASie,eAAeD,EAAOE,UAC/C,EAAKrmB,QAAQ0U,YAAY,EAAK8J,UAC9B,EAAK8H,QAAU,EALe,EhC6yKhC,MA1IAxoB,GAAUqoB,EAAQpmB,GAElBxB,EAAa4nB,EAAQ,OACnBzpB,IAAK,QACLjG,MAAO,gBAiBT8H,EAAa4nB,IACXzpB,IAAK,SACLjG,MAAO,WgChrKY,MAAf3B,KAAKqJ,QAAgBrJ,KAAKqJ,OAAO0W,YAAY/f,ShCqrKjD4H,IAAK,SACLjG,MAAO,SgCnrKFhB,EAAMgB,GACX,GAAqB,IAAjB3B,KAAKwxB,QACP,4FAAoB7wB,EAAMgB,EAG5B,KADA,GAAImG,GAAS9H,KAAMwL,EAAQ,EACV,MAAV1D,GAAkBA,EAAOwB,QAAQ9E,QAAU/B,UAAUC,MAAMuJ,YAChET,GAAS1D,EAAOwJ,OAAOxJ,EAAOuB,QAC9BvB,EAASA,EAAOuB,MAEJ,OAAVvB,IACF9H,KAAKwxB,QAAUH,EAAOE,SAAS7rB,OAC/BoC,EAAOgY,WACPhY,EAAO2X,SAASjU,EAAO6lB,EAAOE,SAAS7rB,OAAQ/E,EAAMgB,GACrD3B,KAAKwxB,QAAU,MhCwrKjB5pB,IAAK,QACLjG,MAAO,SgCrrKHwC,EAAMmN,GACV,MAAInN,KAASnE,KAAK0pB,SAAiB,EACnC,oFAAmBvlB,EAAMmN,MhCwrKzB1J,IAAK,SACLjG,MAAO,WgCrrKP,MAAO3B,MAAKwxB,WhCyrKZ5pB,IAAK,WACLjG,MAAO,WgCtrKP,OAAQ3B,KAAK0pB,SAAU1pB,KAAK0pB,SAASU,KAAK1kB,WhC0rK1CkC,IAAK,SACLjG,MAAO,WgCvrKP,sFACA3B,KAAKqJ,OAAS,QhC2rKdzB,IAAK,UACLjG,MAAO,WgCxrKP,IAAI3B,KAAKqX,UAAU4R,WAA4B,MAAfjpB,KAAKqJ,OAArC,CACA,GAAIqgB,GAAW1pB,KAAK0pB,SAChB3V,EAAQ/T,KAAKqX,UAAUoS,iBACvBgI,SAAatiB,SAAOC,QACxB,IAAa,MAAT2E,GAAiBA,EAAM5E,MAAMhL,OAASulB,GAAY3V,EAAM3E,IAAIjL,OAASulB,EAAU,QACpDA,EAAU3V,EAAM5E,MAAMmC,OAAQyC,EAAM3E,IAAIkC,OAApEmgB,GADgF,KACnEtiB,EADmE,KAC5DC,EAD4D,KAInF,KAAiC,MAA1BpP,KAAKkL,QAAQogB,WAAqBtrB,KAAKkL,QAAQogB,YAActrB,KAAK0pB,UACvE1pB,KAAKkL,QAAQ3G,WAAWsH,aAAa7L,KAAKkL,QAAQogB,UAAWtrB,KAAKkL,QAEpE,IAAIlL,KAAK0pB,SAASU,OAASiH,EAAOE,SAAU,CAC1C,GAAI5kB,GAAO3M,KAAK0pB,SAASU,KAAKllB,MAAMmsB,EAAOE,UAAU9gB,KAAK,GACtDzQ,MAAK8L,eAAgB2B,YACvBgkB,EAAczxB,KAAK8L,KAAKZ,QACxBlL,KAAK8L,KAAKC,SAAS,EAAGY,GACtB3M,KAAK0pB,SAASU,KAAOiH,EAAOE,WAE5BvxB,KAAK0pB,SAASU,KAAOzd,EACrB3M,KAAKqJ,OAAOwC,aAAapJ,UAAUE,OAAO3C,KAAK0pB,UAAW1pB,MAC1DA,KAAK0pB,SAAWrW,SAASie,eAAeD,EAAOE,UAC/CvxB,KAAKkL,QAAQ0U,YAAY5f,KAAK0pB,WAIlC,GADA1pB,KAAKmN,SACQ,MAATgC,EAAe,QACDA,EAAOC,GAAKzJ,IAAI,SAAS2L,GACvC,MAAO9E,MAAKwI,IAAI,EAAGxI,KAAKC,IAAIglB,EAAYrH,KAAK1kB,OAAQ4L,EAAS,MAF/C,QAIjB,OAHCnC,GADgB,KACTC,EADS,MAKfya,UAAW4H,EACX3H,YAAa3a,EACb4a,QAAS0H,EACTzH,UAAW5a,QhCysKfxH,IAAK,SACLjG,MAAO,SgCrsKFmW,EAAW1K,GAAS,UACzB,IAAI0K,EAAUoM,KAAK,SAACS,GAClB,MAAyB,kBAAlBA,EAASjN,MAA4BiN,EAAS7c,SAAW,EAAK4hB,WACnE,CACF,GAAI3V,GAAQ/T,KAAKiqB,SACblW,KAAO3G,EAAQ2G,MAAQA,OhC2sK7BnM,IAAK,QACLjG,MAAO,WgCvsKP,MAAO,OhC4sKF0vB,GgClzKY5uB,UAAUU,MAyG/BkuB,GAAOxrB,SAAW,SAClBwrB,EAAOrrB,UAAY,YACnBqrB,EAAOhsB,QAAU,OACjBgsB,EAAOE,SAAW,ShC+sKlB5xB,EAAQqD,QgC5sKOquB,GhCgtKT,SAAUzxB,EAAQD,EAASM,GAEjC,YASA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH/H,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MiC50K1hBgK,E,WACJ,WAAY+I,EAAO5T,GAAS,UAC1B/H,KAAK2b,MAAQA,EACb3b,KAAK+H,QAAUA,EACf/H,KAAKM,WjCy2KP,MApBAmJ,GAAamJ,IACXhL,IAAK,OACLjG,MAAO,WiCp1KF,UACLb,QAAOoN,KAAKlO,KAAK+H,QAAQzH,SAAS+F,QAAQ,SAAC1F,GACf,MAAtB,EAAKL,QAAQK,IACf,EAAK4W,UAAU5W,QjC21KnBiH,IAAK,YACLjG,MAAO,SiCv1KChB,GACR,GAAIsS,GAAcjT,KAAK2b,MAAM9U,YAAY8L,OAAvB,WAAyChS,EAE3D,OADAX,MAAKM,QAAQK,GAAQ,GAAIsS,GAAYjT,KAAK2b,MAAO3b,KAAK+H,QAAQzH,QAAQK,QAC/DX,KAAKM,QAAQK,OjC21KfiS,IiCx1KTA,GAAMF,UACJpS,YAEFsS,EAAM8e,QACJ,QAAW9e,GjC81KbjT,EAAQqD,QiC11KO4P,GjC81KT,SAAUhT,EAAQD,EAASM,GAEjC,YAmBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAtBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IkCt4K5d,OlC04KIQ,EAAc/B,EAAuBgC,GkCz4KzC,OlC64KIK,EAASrC,EAAuBsC,GkC34K9B4mB,EAAa,SAGbxuB,E,YACJ,WAAYgB,GAAM,yEACVA,GADU,OAEhB,GAAKytB,YAAcve,SAAS4F,cAAc,QAC1C,EAAK2Y,YAAY5a,aAAa,mBAAmB,MAC9ChL,MAAMzL,KAAK,EAAK2K,QAAQiY,YAAY9c,QAAQ,SAACwrB,GAC9C,EAAKD,YAAYhS,YAAYiS,KAE/B,EAAKC,UAAYze,SAASie,eAAeK,GACzC,EAAKI,WAAa1e,SAASie,eAAeK,GAC1C,EAAKzmB,QAAQ0U,YAAY,EAAKkS,WAC9B,EAAK5mB,QAAQ0U,YAAY,EAAKgS,aAC9B,EAAK1mB,QAAQ0U,YAAY,EAAKmS,YAXd,ElCs+KlB,MAlFA/oB,GAAU7F,EAAO8H,GAoBjBxB,EAAatG,IACXyE,IAAK,QACLjG,MAAO,SkC55KHwC,EAAMmN,GACV,MAAInN,KAASnE,KAAK8xB,UAAkB,EAChC3tB,IAASnE,KAAK+xB,WAAmB,EACrC,oFAAmB5tB,EAAMmN,MlC+5KzB1J,IAAK,UACLjG,MAAO,SkC75KDwC,GACN,GAAI4P,UAAO2V,SACP/c,EAAOxI,EAAKimB,KAAKllB,MAAMysB,GAAYlhB,KAAK,GAC5C,IAAItM,IAASnE,KAAK8xB,UAChB,GAAI9xB,KAAK6f,eAAgBpS,WAAU,CACjC,GAAIukB,GAAahyB,KAAK6f,KAAKna,QAC3B1F,MAAK6f,KAAK9T,SAASimB,EAAYrlB,GAC/BoH,GACE8V,UAAW7pB,KAAK6f,KAAK3U,QACrB4e,YAAakI,EAAarlB,EAAKjH,YAGjCgkB,GAAWrW,SAASie,eAAe3kB,GACnC3M,KAAKqJ,OAAOwC,aAAapJ,UAAUE,OAAO+mB,GAAW1pB,MACrD+T,GACE8V,UAAWH,EACXI,YAAand,EAAKjH,YAGbvB,KAASnE,KAAK+xB,aACnB/xB,KAAK8L,eAAgB2B,YACvBzN,KAAK8L,KAAKC,SAAS,EAAGY,GACtBoH,GACE8V,UAAW7pB,KAAK8L,KAAKZ,QACrB4e,YAAand,EAAKjH,UAGpBgkB,EAAWrW,SAASie,eAAe3kB,GACnC3M,KAAKqJ,OAAOwC,aAAapJ,UAAUE,OAAO+mB,GAAW1pB,KAAK8L,MAC1DiI,GACE8V,UAAWH,EACXI,YAAand,EAAKjH,SAKxB,OADAvB,GAAKimB,KAAOuH,EACL5d,KlCi6KPnM,IAAK,SACLjG,MAAO,SkC/5KFmW,EAAW1K,GAAS,UACzB0K,GAAUzR,QAAQ,SAACse,GACjB,GAAsB,kBAAlBA,EAASjN,OACRiN,EAAS7c,SAAW,EAAKgqB,WAAanN,EAAS7c,SAAW,EAAKiqB,YAAa,CAC/E,GAAIhe,GAAQ,EAAKkW,QAAQtF,EAAS7c,OAC9BiM,KAAO3G,EAAQ2G,MAAQA,UlCs6K1B5Q,GkCv+KWV,UAAUU,MlC0+K9BxD,GAAQqD,QkCl6KOG,GlCs6KT,SAAUvD,EAAQD,EAASM,GAEjC,YAGAa,QAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQsyB,WAAatyB,EAAQuyB,WAAavyB,EAAQwyB,mBAAiB3oB,EmC5/KnE,YnCggLIgB,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GmC9/KrCqI,GACFtO,MAAO/B,UAAUC,MAAMmC,MACvBsS,WAAY,QAAS,SAAU,YAG7Bgb,EAAiB,GAAI1vB,WAAUe,WAAWC,UAAU,QAAS,QAASqP,GACtEof,EAAa,GAAIzvB,WAAUe,WAAWE,MAAM,QAAS,WAAYoP,GACjEmf,EAAa,GAAIxvB,WAAUe,WAAWG,MAAM,QAAS,aAAcmP,EnCogLvEnT,GmClgLSwyB,iBnCmgLTxyB,EmCngLyBuyB,anCogLzBvyB,EmCpgLqCsyB,cnCwgL/B,SAAUryB,EAAQD,EAASM,GAEjC,YAGAa,QAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQyyB,gBAAkBzyB,EAAQ0yB,oBAAkB7oB,EoC3hLpD,YpC+hLIgB,EAIJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAJ9CgD,GoC9hLzC,QAEI4nB,EAAkB,GAAI5vB,WAAUe,WAAWE,MAAM,aAAc,SACjEc,MAAO/B,UAAUC,MAAMoC,SAErBstB,EAAkB,GAAIlG,mBAAgB,aAAc,oBACtD1nB,MAAO/B,UAAUC,MAAMoC,QpCqiLzBnF,GoCliLS0yB,kBpCmiLT1yB,EoCniL0ByyB,mBpCuiLpB,SAAUxyB,EAAQD,EAASM,GAEjC,YAGAa,QAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQ2yB,eAAiB3yB,EAAQ4yB,eAAiB5yB,EAAQ6yB,uBAAqBhpB,EqCzjL/E,YrC6jLIgB,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GqC3jLrCqI,GACFtO,MAAO/B,UAAUC,MAAMmC,MACvBsS,WAAY,QAGVqb,EAAqB,GAAI/vB,WAAUe,WAAWC,UAAU,YAAa,MAAOqP,GAC5Eyf,EAAiB,GAAI9vB,WAAUe,WAAWE,MAAM,YAAa,eAAgBoP,GAC7Ewf,EAAiB,GAAI7vB,WAAUe,WAAWG,MAAM,YAAa,YAAamP,ErCikL9EnT,GqC/jLS6yB,qBrCgkLT7yB,EqChkL6B4yB,iBrCikL7B5yB,EqCjkL6C2yB,kBrCqkLvC,SAAU1yB,EAAQD,EAASM,GAEjC,YAkBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAnBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQ8yB,UAAY9yB,EAAQ+yB,cAAYlpB,EAExC,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IsC5lL5d,OtCgmLIQ,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GsC9lLrCqI,GACFtO,MAAO/B,UAAUC,MAAMoC,OACvBqS,WAAY,QAAS,cAGnBsb,EAAY,GAAIhwB,WAAUe,WAAWE,MAAM,OAAQ,UAAWoP,GAE5D6f,E,YtC2mLJ,QAASA,KAGP,MAFAjqB,GAAgB1I,KAAM2yB,GAEf7pB,EAA2B9I,MAAO2yB,EAAoBjsB,WAAa5F,OAAOqJ,eAAewoB,IAAsB3nB,MAAMhL,KAAMyF,YAUpI,MAfAuD,GAAU2pB,EAAqBxG,GAQ/B1iB,EAAakpB,IACX/qB,IAAK,QACLjG,MAAO,SsClnLHwC,GACJ,MAAO,qFAAYA,GAAMoZ,QAAQ,QAAS,QtCsnLrCoV,GsCxnLyBlwB,UAAUe,WAAWG,OAMnD+uB,EAAY,GAAIC,GAAoB,OAAQ,cAAe7f,EtCunL/DnT,GsCrnLS+yB,YtCsnLT/yB,EsCtnLoB8yB,atC0nLd,SAAU7yB,EAAQD,EAASM,GAEjC,YAGAa,QAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQizB,UAAYjzB,EAAQkzB,cAAYrpB,EuCnpLxC,YvCupLIgB,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,GuCrpLrCooB,EAAY,GAAIpwB,WAAUe,WAAWE,MAAM,OAAQ,WACrDc,MAAO/B,UAAUC,MAAMoC,OACvBqS,WAAY,QAAS,QAAS,UAE5Byb,EAAY,GAAInwB,WAAUe,WAAWG,MAAM,OAAQ,aACrDa,MAAO/B,UAAUC,MAAMoC,OACvBqS,WAAY,OAAQ,OAAQ,SvC4pL9BxX,GuCzpLSkzB,YvC0pLTlzB,EuC1pLoBizB,avC8pLd,SAAUhzB,EAAQD,EAASM,GAEjC,YAiBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IwCprL5d,OxCwrLIY,EAEJ,SAAgCnD,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDoD,GwCtrLhCioB,E,YxCmsLJ,QAASA,KAGP,MAFApqB,GAAgB1I,KAAM8yB,GAEfhqB,EAA2B9I,MAAO8yB,EAAKpsB,WAAa5F,OAAOqJ,eAAe2oB,IAAO9nB,MAAMhL,KAAMyF,YAuBtG,MA5BAuD,GAAU8pB,EAAMhU,GAQhBrV,EAAaqpB,IACXlrB,IAAK,WACLjG,MAAO,SwClsLAyL,GACP,uFAAeA,GACXpN,KAAKkL,QAAQ7F,UAAYrF,KAAKsJ,QAAQjE,QAAQ,IAChDrF,KAAKmlB,YAAYnlB,KAAKsJ,QAAQzD,exCssLhC+B,IAAK,SACLjG,MAAO,WwCjtLP,4ExCqtLAiG,IAAK,UACLjG,MAAO,WwCltLP,OAAO,MxCutLFmxB,GwC7tLUxvB,UAgBnBwvB,GAAKjtB,SAAW,OAChBitB,EAAKztB,SAAW,SAAU,KxCktL1B1F,EAAQqD,QwChtLO8vB,GxCotLT,SAAUlzB,EAAQD,GyCzuLxBC,EAAOD,QAAU,uOzC+uLX,SAAUC,EAAQD,EAASM,GAEjC,YAiBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I0C1vL5d,Q1C8vLI+oB,EAEJ,SAAgCtrB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDurB,G0C3vLhCC,E,YACJ,WAAY9R,EAAQI,GAAO,yEACnBJ,GADmB,OAEzB,GAAKI,MAAM7K,UAAY6K,EACvB,EAAKpP,UAAUyE,UAAUC,IAAI,sBAC1B7K,MAAMzL,KAAK,EAAK4R,UAAU8J,iBAAiB,mBAAoB,EAAG,GAAG5V,QAAQ,SAASgX,GACvFA,EAAKzG,UAAUC,IAAI,gBALI,E1C2yL3B,MAtCA7N,GAAUiqB,EAAaC,GAevBzpB,EAAawpB,IACXrrB,IAAK,YACLjG,MAAO,S0C7wLCogB,GACR,GAAI1E,GAAOA,EAAPA,sFAAuB0E,EAE3B,OADA1E,GAAKgE,MAAM8R,gBAAkBpR,EAAO9c,aAAa,UAAY,GACtDoY,K1CgxLPzV,IAAK,aACLjG,MAAO,S0C9wLE0b,EAAMsF,GACf,yFAAiBtF,EAAMsF,EACvB,IAAIyQ,GAAapzB,KAAKuhB,MAAMjO,cAAc,mBACtC3R,EAAQ0b,EAAOA,EAAKpY,aAAa,eAAiB,GAAK,EACvDmuB,KACyB,SAAvBA,EAAW/tB,QACb+tB,EAAW/R,MAAMgS,OAAS1xB,EAE1ByxB,EAAW/R,MAAMiS,KAAO3xB,O1CoxLvBsxB,G0C5yLiB/R,U1C+yL1BvhB,GAAQqD,Q0ChxLOiwB,G1CoxLT,SAAUrzB,EAAQD,EAASM,GAEjC,YAiBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I2Cj0L5d,Q3Cq0LI+oB,EAEJ,SAAgCtrB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDurB,G2Cl0LhCO,E,YACJ,WAAYpS,EAAQqS,GAAO,yEACnBrS,GADmB,OAEzB,GAAKhP,UAAUyE,UAAUC,IAAI,qBAC1BxQ,QAAQ9F,KAAK,EAAK4R,UAAU8J,iBAAiB,mBAAoB,SAACoB,GACnEA,EAAK3G,UAAY8c,EAAMnW,EAAKpY,aAAa,eAAiB,MAE5D,EAAKwuB,YAAc,EAAKthB,UAAUmB,cAAc,gBAChD,EAAK4O,WAAW,EAAKuR,aAPI,E3Cq2L3B,MAzBAzqB,GAAUuqB,EAAYL,GAgBtBzpB,EAAa8pB,IACX3rB,IAAK,aACLjG,MAAO,S2Cp1LE0b,EAAMsF,GACf,yFAAiBtF,EAAMsF,GACvBtF,EAAOA,GAAQrd,KAAKyzB,YACpBzzB,KAAKuhB,MAAM7K,UAAY2G,EAAK3G,c3Cw1LvB6c,G2Ct2LgBrS,U3Cy2LzBvhB,GAAQqD,Q2Ct1LOuwB,G3C01LT,SAAU3zB,EAAQD,EAASM,GAEjC,YASA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH/H,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M4Cz3L1hB8qB,E,WACJ,WAAY/X,EAAOgY,GAAiB,qBAClC3zB,KAAK2b,MAAQA,EACb3b,KAAK2zB,gBAAkBA,GAAmBtgB,SAASuR,KACnD5kB,KAAKP,KAAOkc,EAAM5E,aAAa,cAC/B/W,KAAKP,KAAKiX,UAAY1W,KAAK6G,YAAY+sB,SACnC5zB,KAAK2b,MAAMlc,OAASO,KAAK2b,MAAM1E,oBACjCjX,KAAK2b,MAAMlc,KAAKuc,iBAAiB,SAAU,WACzC,EAAKvc,KAAK4hB,MAAMwS,WAAc,EAAE,EAAKlY,MAAMlc,KAAK6Z,UAAa,OAGjEtZ,KAAK8zB,O5C66LP,MAzCArqB,GAAaiqB,IACX9rB,IAAK,OACLjG,MAAO,W4Cl4LP3B,KAAKP,KAAKmX,UAAUC,IAAI,gB5Cs4LxBjP,IAAK,WACLjG,MAAO,S4Cp4LAoyB,GACP,GAAI7Z,GAAO6Z,EAAU7Z,KAAO6Z,EAAU3Z,MAAM,EAAIpa,KAAKP,KAAKu0B,YAAY,EAElEha,EAAM+Z,EAAUha,OAAS/Z,KAAK2b,MAAMlc,KAAK6Z,SAC7CtZ,MAAKP,KAAK4hB,MAAMnH,KAAOA,EAAO,KAC9Bla,KAAKP,KAAK4hB,MAAMrH,IAAMA,EAAM,KAC5Bha,KAAKP,KAAKmX,UAAUzJ,OAAO,UAC3B,IAAI0M,GAAkB7Z,KAAK2zB,gBAAgB7Z,wBACvCma,EAAaj0B,KAAKP,KAAKqa,wBACvBlN,EAAQ,CASZ,IARIqnB,EAAW9Z,MAAQN,EAAgBM,QACrCvN,EAAQiN,EAAgBM,MAAQ8Z,EAAW9Z,MAC3Cna,KAAKP,KAAK4hB,MAAMnH,KAAQA,EAAOtN,EAAS,MAEtCqnB,EAAW/Z,KAAOL,EAAgBK,OACpCtN,EAAQiN,EAAgBK,KAAO+Z,EAAW/Z,KAC1Cla,KAAKP,KAAK4hB,MAAMnH,KAAQA,EAAOtN,EAAS,MAEtCqnB,EAAWla,OAASF,EAAgBE,OAAQ,CAC9C,GAAIE,GAASga,EAAWla,OAASka,EAAWja,IACxCka,EAAgBH,EAAUha,OAASga,EAAU/Z,IAAMC,CACvDja,MAAKP,KAAK4hB,MAAMrH,IAAOA,EAAMka,EAAiB,KAC9Cl0B,KAAKP,KAAKmX,UAAUC,IAAI,WAE1B,MAAOjK,M5Cu4LPhF,IAAK,OACLjG,MAAO,W4Cp4LP3B,KAAKP,KAAKmX,UAAUzJ,OAAO,cAC3BnN,KAAKP,KAAKmX,UAAUzJ,OAAO,iB5Cy4LtBumB,IAGT/zB,GAAQqD,Q4Cv4LO0wB,G5C24LT,SAAU9zB,EAAQD,EAASM,GAEjC,YAgDA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G6CzwLje,QAASirB,GAAgBhU,GACvB,GAAIrc,GAAQqc,EAAIrc,MAAM,+EACVqc,EAAIrc,MAAM,iEACtB,OAAIA,IACMA,EAAM,IAAM,SAAW,4BAA8BA,EAAM,GAAK,eAEtEA,EAAQqc,EAAIrc,MAAM,oDACZA,EAAM,IAAM,SAAW,6BAA+BA,EAAM,GAAK,IAEpEqc,EAGT,QAASiU,GAAWjT,EAAQ9V,GAA8B,GAAtBgpB,GAAsB,uDACxDhpB,GAAOhF,QAAQ,SAAS1E,GACtB,GAAIogB,GAAS1O,SAAS4F,cAAc,SAChCtX,KAAU0yB,EACZtS,EAAO/K,aAAa,WAAY,YAEhC+K,EAAO/K,aAAa,QAASrV,GAE/Bwf,EAAOvB,YAAYmC,K7CksLvBjhB,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQ20B,gBAAc9qB,EAExC,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I6C38L5d,O7C+8LII,EAAW3B,EAAuB4B,G6C98LtC,O7Ck9LIC,EAAe7B,EAAuB8B,G6Cj9L1C,O7Cq9LIgqB,EAAY9rB,EAAuB+rB,G6Cp9LvC,Q7Cw9LI3T,EAAapY,EAAuBqY,G6Cv9LxC,Q7C29LIvK,EAAU9N,EAAuB+N,G6C19LrC,Q7C89LIie,EAAgBhsB,EAAuBisB,G6C79L3C,Q7Ci+LIC,EAAelsB,EAAuBmsB,G6Ch+L1C,Q7Co+LI7B,EAAWtqB,EAAuBuqB,G6Cn+LtC,Q7Cu+LI6B,EAAYpsB,EAAuBqsB,G6Cp+LjCC,IAAW,EAAO,SAAU,QAAS,WAErCC,GACJ,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAClE,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAG9DC,IAAU,EAAO,QAAS,aAE1BC,GAAY,IAAK,IAAK,KAAK,GAE3BC,GAAU,SAAS,EAAO,QAAS,QAGnCC,E,YACJ,WAAYzZ,EAAO5T,GAAS,yEACpB4T,EAAO5T,IACTstB,EAAW,QAAXA,GAAYhX,GACd,IAAKhL,SAASuR,KAAK5J,SAASW,EAAMlc,MAChC,MAAO4T,UAASuR,KAAK0Q,oBAAoB,QAASD,EAEhC,OAAhB,EAAKE,SAAoB,EAAKA,QAAQ91B,KAAKub,SAASqD,EAAEvW,SACtDuL,SAAS4X,gBAAkB,EAAKsK,QAAQC,SAAY,EAAK7Z,MAAMf,YACjE,EAAK2a,QAAQzB,OAEK,MAAhB,EAAK2B,SACP,EAAKA,QAAQpvB,QAAQ,SAASqvB,GACvBA,EAAOvjB,UAAU6I,SAASqD,EAAEvW,SAC/B4tB,EAAOjT,UAbW,OAkB1B9G,GAAMjH,QAAQ6U,UAAU,QAASlW,SAASuR,KAAMyQ,GAlBtB,E7CukM5B,MAhGArsB,GAAUosB,EAAWO,GA0BrBlsB,EAAa2rB,IACXxtB,IAAK,YACLjG,MAAO,S6C9+LChB,GACR,GAAIf,GAASA,EAATA,sFAAyBe,EAI7B,OAHa,YAATA,GACFX,KAAK41B,cAAch2B,GAEdA,K7Ci/LPgI,IAAK,eACLjG,MAAO,S6C/+LIk0B,EAASrC,GACpBqC,EAAQxvB,QAAQ,SAACyvB,IACCA,EAAO7wB,aAAa,UAAY,IACtCC,MAAM,OAAOmB,QAAQ,SAAC1F,GAC9B,GAAKA,EAAKoY,WAAW,SACrBpY,EAAOA,EAAKqL,MAAM,MAAMtG,QACL,MAAf8tB,EAAM7yB,IACV,GAAa,cAATA,EACFm1B,EAAOpf,UAAY8c,EAAM7yB,GAAM,IAAM6yB,EAAM7yB,GAAN,QAChC,IAA2B,gBAAhB6yB,GAAM7yB,GACtBm1B,EAAOpf,UAAY8c,EAAM7yB,OACpB,CACL,GAAIgB,GAAQm0B,EAAOn0B,OAAS,EACf,OAATA,GAAiB6xB,EAAM7yB,GAAMgB,KAC/Bm0B,EAAOpf,UAAY8c,EAAM7yB,GAAMgB,Y7Cs/LvCiG,IAAK,eACLjG,MAAO,S6Ch/LIo0B,EAASvC,GAAO,UAC3BxzB,MAAKy1B,QAAUM,EAAQpwB,IAAI,SAACwb,GAC1B,GAAIA,EAAOvK,UAAUoE,SAAS,YAI5B,MAHsC,OAAlCmG,EAAO7N,cAAc,WACvB8gB,EAAWjT,EAAQ4T,GAEd,GAAIxB,WAAWpS,EAAQqS,EAAMwC,MAC/B,IAAI7U,EAAOvK,UAAUoE,SAAS,kBAAoBmG,EAAOvK,UAAUoE,SAAS,YAAa,CAC9F,GAAIvP,GAAS0V,EAAOvK,UAAUoE,SAAS,iBAAmB,aAAe,OAIzE,OAHsC,OAAlCmG,EAAO7N,cAAc,WACvB8gB,EAAWjT,EAAQ6T,EAAmB,eAAXvpB,EAA0B,UAAY,WAE5D,GAAIwnB,WAAY9R,EAAQqS,EAAM/nB,IAWrC,MATsC,OAAlC0V,EAAO7N,cAAc,YACnB6N,EAAOvK,UAAUoE,SAAS,WAC5BoZ,EAAWjT,EAAQ8T,GACV9T,EAAOvK,UAAUoE,SAAS,aACnCoZ,EAAWjT,EAAQ+T,GACV/T,EAAOvK,UAAUoE,SAAS,YACnCoZ,EAAWjT,EAAQgU,IAGhB,GAAIjU,WAAOC,IAGtB,IAAInJ,GAAS,WACX,EAAKyd,QAAQpvB,QAAQ,SAASqvB,GAC5BA,EAAO1d,WAGXhY,MAAK2b,MAAMlE,GAAG7D,UAAQY,OAAOI,cAAeoD,O7Cs/LvCod,G6CxkMexiB,UAqFxBwiB,GAAU1iB,UAAW,cAAO,KAAUE,UAAMF,UAC1CpS,SACE8S,SACE6iB,UACEC,QAAS,WACPl2B,KAAK2b,MAAMnJ,MAAM+iB,QAAQY,KAAK,YAEhCC,MAAO,WAAW,WACZC,EAAYr2B,KAAKmS,UAAUmB,cAAc,4BAC5B,OAAb+iB,IACFA,EAAYhjB,SAAS4F,cAAc,SACnCod,EAAUrf,aAAa,OAAQ,QAC/Bqf,EAAUrf,aAAa,SAAU,6DACjCqf,EAAUzf,UAAUC,IAAI,YACxBwf,EAAUra,iBAAiB,SAAU,WACnC,GAAuB,MAAnBqa,EAAUC,OAAuC,MAAtBD,EAAUC,MAAM,GAAY,CACzD,GAAIC,GAAS,GAAIC,WACjBD,GAAOE,OAAS,SAACpY,GACf,GAAItK,GAAQ,EAAK4H,MAAM3H,cAAa,EACpC,GAAK2H,MAAM0U,gBAAe,GAAIllB,YAC3BiD,OAAO2F,EAAMvI,OACb0D,OAAO6E,EAAMrO,QACb0F,QAASgrB,MAAO/X,EAAEvW,OAAOkpB,SAC1Bpd,UAAQC,QAAQC,MAClB,EAAK6H,MAAMtH,aAAaN,EAAMvI,MAAQ,EAAGoI,UAAQC,QAAQS,QACzD+hB,EAAU10B,MAAQ,IAEpB40B,EAAOG,cAAcL,EAAUC,MAAM,OAGzCt2B,KAAKmS,UAAUyN,YAAYyW,IAE7BA,EAAUM,SAEZC,MAAO,WACL52B,KAAK2b,MAAMnJ,MAAM+iB,QAAQY,KAAK,c7C2/LxC,I6Cn/LM7B,G,YACJ,WAAY3Y,EAAOgY,GAAiB,yEAC5BhY,EAAOgY,GADqB,OAElC,GAAK6B,QAAU,EAAK/1B,KAAK6T,cAAc,sBACvC,EAAK6b,SAH6B,E7CulMpC,MApGAnmB,GAAUsrB,EAAauC,GAYvBptB,EAAa6qB,IACX1sB,IAAK,SACLjG,MAAO,W6C3/LA,UACP3B,MAAKw1B,QAAQxZ,iBAAiB,UAAW,SAACM,GACpCoF,UAAS5d,MAAMwY,EAAO,UACxB,EAAKwa,OACLxa,EAAMwF,kBACGJ,UAAS5d,MAAMwY,EAAO,YAC/B,EAAKya,SACLza,EAAMwF,uB7CkgMVla,IAAK,SACLjG,MAAO,W6C7/LP3B,KAAK8zB,U7CigMLlsB,IAAK,OACLjG,MAAO,W6C//L2B,GAA/Bq1B,GAA+B,uDAAxB,OAAQC,EAAgB,uDAAN,IAC5Bj3B,MAAKP,KAAKmX,UAAUzJ,OAAO,aAC3BnN,KAAKP,KAAKmX,UAAUC,IAAI,cACT,MAAXogB,EACFj3B,KAAKw1B,QAAQ7zB,MAAQs1B,EACZD,IAASh3B,KAAKP,KAAKwF,aAAa,eACzCjF,KAAKw1B,QAAQ7zB,MAAQ,IAEvB3B,KAAKukB,SAASvkB,KAAK2b,MAAM/B,UAAU5Z,KAAK2b,MAAMtE,UAAU+R,aACxDppB,KAAKw1B,QAAQrU,SACbnhB,KAAKw1B,QAAQxe,aAAa,cAAehX,KAAKw1B,QAAQvwB,aAAb,QAAkC+xB,IAAW,IACtFh3B,KAAKP,KAAKuX,aAAa,YAAaggB,M7CqgMpCpvB,IAAK,eACLjG,MAAO,W6ClgMP,GAAI2X,GAAYtZ,KAAK2b,MAAM1E,mBAAmBqC,SAC9CtZ,MAAK2b,MAAMpC,QACXvZ,KAAK2b,MAAM1E,mBAAmBqC,UAAYA,K7CsgM1C1R,IAAK,OACLjG,MAAO,W6CngMP,GAAIA,GAAQ3B,KAAKw1B,QAAQ7zB,KACzB,QAAO3B,KAAKP,KAAKwF,aAAa,cAC5B,IAAK,OACH,GAAIqU,GAAYtZ,KAAK2b,MAAMlc,KAAK6Z,SAC5BtZ,MAAKk3B,WACPl3B,KAAK2b,MAAMjC,WAAW1Z,KAAKk3B,UAAW,OAAQv1B,EAAOiS,UAAQC,QAAQC,YAC9D9T,MAAKk3B,YAEZl3B,KAAKm3B,eACLn3B,KAAK2b,MAAMlQ,OAAO,OAAQ9J,EAAOiS,UAAQC,QAAQC,OAEnD9T,KAAK2b,MAAMlc,KAAK6Z,UAAYA,CAC5B,MAEF,KAAK,QACH3X,EAAQwyB,EAAgBxyB,EAE1B,KAAK,UACH,IAAKA,EAAO,KACZ,IAAIoS,GAAQ/T,KAAK2b,MAAM3H,cAAa,EACpC,IAAa,MAATD,EAAe,CACjB,GAAIvI,GAAQuI,EAAMvI,MAAQuI,EAAMrO,MAChC1F,MAAK2b,MAAMb,YAAYtP,EAAOxL,KAAKP,KAAKwF,aAAa,aAActD,EAAOiS,UAAQC,QAAQC,MAC9C,YAAxC9T,KAAKP,KAAKwF,aAAa,cACzBjF,KAAK2b,MAAMZ,WAAWvP,EAAQ,EAAG,IAAKoI,UAAQC,QAAQC,MAExD9T,KAAK2b,MAAMtH,aAAa7I,EAAQ,EAAGoI,UAAQC,QAAQC,OAMzD9T,KAAKw1B,QAAQ7zB,MAAQ,GACrB3B,KAAK8zB,W7C2gMAQ,G6CxlMiBZ,U7CqnM1B/zB,G6C1gMS20B,c7C2gMT30B,E6C3gMmCqD,QAAboyB,G7C+gMhB,SAAUx1B,EAAQD,EAASM,GAEjC,YAiHA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GA9GvF3G,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,G8C5xMT,a9CiyMIy1B,EAAS3uB,EAAuB4uB,G8C/xMpC,QACA,QACA,QAEA,Q9CqyMIC,EAAe7uB,EAAuB8uB,G8CpyM1C,Q9CwyMIC,EAAW/uB,EAAuBgvB,G8CvyMtC,Q9C2yMIC,EAASjvB,EAAuBkvB,G8CzyMpC,QACA,QACA,QACA,QAEA,Q9CgzMIC,EAASnvB,EAAuBovB,G8C/yMpC,Q9CmzMIC,EAAWrvB,EAAuBsvB,G8ClzMtC,Q9CszMIC,EAASvvB,EAAuBwvB,G8CrzMpC,Q9CyzMIC,EAAWzvB,EAAuB0vB,G8CxzMtC,Q9C4zMIC,EAAW3vB,EAAuB4vB,G8C3zMtC,Q9C+zMIC,EAAc7vB,EAAuB8vB,G8C7zMzC,Q9Ci0MIC,EAAU/vB,EAAuBgwB,G8Ch0MrC,Q9Co0MIC,EAAUjwB,EAAuBkwB,G8Cl0MrC,Q9Cs0MIC,EAASnwB,EAAuBowB,G8Cp0MpC,Q9Cw0MIC,EAAYrwB,EAAuBswB,G8Cv0MvC,Q9C20MIC,EAAWvwB,EAAuBwwB,G8C10MtC,Q9C80MIC,EAAYzwB,EAAuB0wB,G8C50MvC,Q9Cg1MIC,EAAU3wB,EAAuB4wB,G8C/0MrC,Q9Cm1MItG,EAAWtqB,EAAuBuqB,G8Cl1MtC,Q9Cs1MIyB,EAAgBhsB,EAAuBisB,G8Cr1M3C,Q9Cy1MIC,EAAelsB,EAAuBmsB,G8Cx1M1C,Q9C41MIC,EAAYpsB,EAAuBqsB,G8C11MvC,S9C81MIwE,GAAW7wB,EAAuB8wB,G8C71MtC,U9Ci2MIC,GAAS/wB,EAAuBgxB,G8C91MpChnB,WAAM3P,UACJ,kCAAmC0vB,qBAEnC,0BAA2BN,aAC3B,+BAAgCG,kBAChC,0BAA2BpG,aAC3B,8BAA+BsG,iBAC/B,yBAA0BE,YAC1B,yBAA0BI,YAE1B,0BAA2BZ,aAC3B,+BAAgCG,kBAChC,0BAA2BpG,aAC3B,8BAA+BsG,iBAC/B,yBAA0BI,YAC1B,yBAA0BE,cACzB,GAGHngB,UAAM3P,UACJ,gBAAiBovB,aACjB,oBAAqBK,iBACrB,iBAAkBmH,cAElB,qBAAsBtH,kBACtB,gBAAiBpG,aACjB,eAAgByG,YAChB,eAAgBI,YAEhB,qBAAsB8G,UACtB,qBAAsB5a,UACtB,iBAAkB6a,UAClB,eAAgBC,UAEhB,eAAgB/G,UAChB,eAAgBgH,OAChB,iBAAkBC,UAClB,eAAgBvZ,UAChB,iBAAkBwZ,UAClB,iBAAkBC,UAClB,oBAAqBC,UAErB,gBAAiBC,UACjB,gBAAiBC,UAEjB,oBAAqBC,WAErB,kBAAmBC,UACnB,iBAAkBC,UAClB,kBAAmBC,UAEnB,gBAAiBC,WACjB,cAAeC,WAEf,WAAYC,UACZ,YAAazZ,UACb,iBAAkBqS,UAClB,kBAAmBN,UACnB,aAAcS,YACb,G9Cm2MH/zB,EAAQqD,Q8Ch2MOyP,W9Co2MT,SAAU7S,EAAQD,EAASM,GAEjC,YA2DA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAxDvF3G,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,G+Cj9MT,Y/Cs9MI6I,EAAc/B,EAAuBgC,G+Cr9MzC,O/Cy9MIgkB,EAAUhmB,EAAuBimB,G+Cv9MrC,O/C29MI9P,EAAUnW,EAAuBoW,G+C19MrC,Q/C89MInU,EAAUjC,EAAuBkC,G+C79MrC,Q/Ci+MIiwB,EAAcnyB,EAAuBoyB,G+Ch+MzC,Q/Co+MIC,EAAWryB,EAAuBsyB,G+Cn+MtC,Q/Cu+MIC,EAAUvyB,EAAuBwyB,G+Ct+MrC,O/C0+MIrwB,EAAWnC,EAAuBoC,G+Cz+MtC,Q/C6+MIqwB,EAAWzyB,EAAuB0yB,G+C5+MtC,O/Cg/MIrwB,EAASrC,EAAuBsC,G+C9+MpC,Q/Ck/MIqwB,EAAc3yB,EAAuB4yB,G+Cj/MzC,Q/Cq/MIC,EAAY7yB,EAAuB8yB,G+Cp/MvC,Q/Cw/MI1a,EAAapY,EAAuBqY,E+Ct/MxCrO,WAAM3P,UACJ,cAAuBO,UACvB,oBAAuBkG,aACvB,cAAuB2D,UACvB,kBAAuBnK,UACvB,eAAuBsuB,UACvB,cAAuBluB,UACvB,eAAuBG,UACvB,eAAuBF,UACvB,aAAuBqK,UAEvB,oBAAuB+tB,UACvB,kBAAuBC,UACvB,mBAAuB/Z,YAGzBjf,UAAUK,SAASO,UAAO6J,UAAOmkB,UAAQ/tB,UAAQF,UAAQqK,W/C4/MzD9N,EAAQqD,Q+Cz/MOyP,W/C6/MT,SAAU7S,EAAQD,EAASM,GAEjC,YgDjiNAa,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAI+5B,GAA4B,WAC5B,QAASA,KACL17B,KAAKiN,KAAOjN,KAAK8M,KAAO,KACxB9M,KAAK0F,OAAS,EA8HlB,MA5HAg2B,GAAWn6B,UAAUo6B,OAAS,WAE1B,IAAK,GADDC,MACKp2B,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCo2B,EAAMp2B,GAAMC,UAAUD,EAE1BxF,MAAK6L,aAAa+vB,EAAM,GAAI,MACxBA,EAAMl2B,OAAS,GACf1F,KAAK27B,OAAO3wB,MAAMhL,KAAM47B,EAAM5vB,MAAM,KAG5C0vB,EAAWn6B,UAAUyZ,SAAW,SAAU7W,GAEtC,IADA,GAAI03B,GAAK/vB,EAAO9L,KAAKuP,WACbssB,EAAM/vB,KACV,GAAI+vB,IAAQ13B,EACR,OAAO,CAEf,QAAO,GAEXu3B,EAAWn6B,UAAUsK,aAAe,SAAU1H,EAAM6U,GAC3C7U,IAELA,EAAK2H,KAAOkN,EACG,MAAXA,GACA7U,EAAK0b,KAAO7G,EAAQ6G,KACA,MAAhB7G,EAAQ6G,OACR7G,EAAQ6G,KAAK/T,KAAO3H,GAExB6U,EAAQ6G,KAAO1b,EACX6U,IAAYhZ,KAAKiN,OACjBjN,KAAKiN,KAAO9I,IAGE,MAAbnE,KAAK8M,MACV9M,KAAK8M,KAAKhB,KAAO3H,EACjBA,EAAK0b,KAAO7f,KAAK8M,KACjB9M,KAAK8M,KAAO3I,IAGZA,EAAK0b,KAAO,KACZ7f,KAAKiN,KAAOjN,KAAK8M,KAAO3I,GAE5BnE,KAAK0F,QAAU,IAEnBg2B,EAAWn6B,UAAU+P,OAAS,SAAUxJ,GAEpC,IADA,GAAI0D,GAAQ,EAAGqwB,EAAM77B,KAAKiN,KACZ,MAAP4uB,GAAa,CAChB,GAAIA,IAAQ/zB,EACR,MAAO0D,EACXA,IAASqwB,EAAIn2B,SACbm2B,EAAMA,EAAI/vB,KAEd,OAAQ,GAEZ4vB,EAAWn6B,UAAU4L,OAAS,SAAUhJ,GAC/BnE,KAAKgb,SAAS7W,KAEF,MAAbA,EAAK0b,OACL1b,EAAK0b,KAAK/T,KAAO3H,EAAK2H,MACT,MAAb3H,EAAK2H,OACL3H,EAAK2H,KAAK+T,KAAO1b,EAAK0b,MACtB1b,IAASnE,KAAKiN,OACdjN,KAAKiN,KAAO9I,EAAK2H,MACjB3H,IAASnE,KAAK8M,OACd9M,KAAK8M,KAAO3I,EAAK0b,MACrB7f,KAAK0F,QAAU,IAEnBg2B,EAAWn6B,UAAUgO,SAAW,SAAUusB,GAGtC,WAFgB,KAAZA,IAAsBA,EAAU97B,KAAKiN,MAElC,WACH,GAAI8uB,GAAMD,CAGV,OAFe,OAAXA,IACAA,EAAUA,EAAQhwB,MACfiwB,IAGfL,EAAWn6B,UAAUqB,KAAO,SAAU4I,EAAO8Y,OACvB,KAAdA,IAAwBA,GAAY,EAExC,KADA,GAAIuX,GAAK/vB,EAAO9L,KAAKuP,WACbssB,EAAM/vB,KAAS,CACnB,GAAIpG,GAASm2B,EAAIn2B,QACjB,IAAI8F,EAAQ9F,GACP4e,GAAa9Y,IAAU9F,IAAuB,MAAZm2B,EAAI/vB,MAAsC,IAAtB+vB,EAAI/vB,KAAKpG,UAChE,OAAQm2B,EAAKrwB,EAEjBA,IAAS9F,EAEb,OAAQ,KAAM,IAElBg2B,EAAWn6B,UAAU8E,QAAU,SAAU21B,GAErC,IADA,GAAIH,GAAK/vB,EAAO9L,KAAKuP,WACbssB,EAAM/vB,KACVkwB,EAASH,IAGjBH,EAAWn6B,UAAUoiB,UAAY,SAAUnY,EAAO9F,EAAQs2B,GACtD,KAAIt2B,GAAU,GAId,IAFA,GACIm2B,GADAhY,EAAK7jB,KAAK4C,KAAK4I,GAAQqe,EAAYhG,EAAG,GAAIvS,EAASuS,EAAG,GACjDoY,EAAWzwB,EAAQ8F,EAAQxF,EAAO9L,KAAKuP,SAASsa,IACjDgS,EAAM/vB,MAAWmwB,EAAWzwB,EAAQ9F,GAAQ,CAChD,GAAIw2B,GAAYL,EAAIn2B,QAChB8F,GAAQywB,EACRD,EAASH,EAAKrwB,EAAQywB,EAAUzvB,KAAKC,IAAI/G,EAAQu2B,EAAWC,EAAY1wB,IAGxEwwB,EAASH,EAAK,EAAGrvB,KAAKC,IAAIyvB,EAAW1wB,EAAQ9F,EAASu2B,IAE1DA,GAAYC,IAGpBR,EAAWn6B,UAAUoE,IAAM,SAAUq2B,GACjC,MAAOh8B,MAAKsM,OAAO,SAAU8X,EAAMyX,GAE/B,MADAzX,GAAKjW,KAAK6tB,EAASH,IACZzX,QAGfsX,EAAWn6B,UAAU+K,OAAS,SAAU0vB,EAAU5X,GAE9C,IADA,GAAIyX,GAAK/vB,EAAO9L,KAAKuP,WACbssB,EAAM/vB,KACVsY,EAAO4X,EAAS5X,EAAMyX,EAE1B,OAAOzX,IAEJsX,IAEX/7B,GAAQqD,QAAU04B,GhDwiNZ,SAAU97B,EAAQD,EAASM,GAEjC,YiD9qNA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIC,GAAc,EAAQ,IACtBY,EAAW,EAAQ,GACnB25B,GACAx3B,YAAY,EACZy3B,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAGTC,EAA4B,SAAU11B,GAEtC,QAAS01B,GAAWr4B,GAChB,GAAI6C,GAAQF,EAAOvG,KAAKP,KAAMmE,IAASnE,IAOvC,OANAgH,GAAMkQ,OAASlQ,EACfA,EAAMy1B,SAAW,GAAIC,kBAAiB,SAAU5kB,GAC5C9Q,EAAMgR,OAAOF,KAEjB9Q,EAAMy1B,SAASE,QAAQ31B,EAAMkE,QAASixB,GACtCn1B,EAAMqc,SACCrc,EA8IX,MAvJAT,GAAUi2B,EAAY11B,GAWtB01B,EAAWj7B,UAAUwiB,OAAS,WAC1Bjd,EAAOvF,UAAUwiB,OAAOxjB,KAAKP,MAC7BA,KAAKy8B,SAASG,cAElBJ,EAAWj7B,UAAU6d,SAAW,SAAU5T,EAAO9F,GAC7C1F,KAAKgY,SACS,IAAVxM,GAAe9F,IAAW1F,KAAK0F,SAC/B1F,KAAK6M,SAASxG,QAAQ,SAAUgH,GAC5BA,EAAMF,WAIVrG,EAAOvF,UAAU6d,SAAS7e,KAAKP,KAAMwL,EAAO9F,IAGpD82B,EAAWj7B,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GAC3D3B,KAAKgY,SACLlR,EAAOvF,UAAUke,SAASlf,KAAKP,KAAMwL,EAAO9F,EAAQ/E,EAAMgB,IAE9D66B,EAAWj7B,UAAUwK,SAAW,SAAUP,EAAO7J,EAAO+J,GACpD1L,KAAKgY,SACLlR,EAAOvF,UAAUwK,SAASxL,KAAKP,KAAMwL,EAAO7J,EAAO+J,IAEvD8wB,EAAWj7B,UAAUue,SAAW,SAAUhI,EAAW1K,GACjD,GAAIpG,GAAQhH,SACM,KAAd8X,IAAwBA,UACZ,KAAZ1K,IAAsBA,MAC1BtG,EAAOvF,UAAUue,SAASvf,KAAKP,KAAMoN,EAKrC,KAHA,GAAIyvB,MAAa7wB,MAAMzL,KAAKP,KAAKy8B,SAASK,eAGnCD,EAAQn3B,OAAS,GACpBoS,EAAU3J,KAAK0uB,EAAQpuB,MA+B3B,KAAK,GA7BDsuB,GAAO,SAAUz4B,EAAM04B,OACJ,KAAfA,IAAyBA,GAAa,GAC9B,MAAR14B,GAAgBA,IAAS0C,GAEE,MAA3B1C,EAAK4G,QAAQ3G,aAGgC,MAA7CD,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,YAEhCxT,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,cAEhCklB,GACAD,EAAKz4B,EAAK+E,UAEdyW,EAAW,SAAUxb,GAIc,MAAnCA,EAAK4G,QAAQ1I,EAAS6B,WAE2B,MAA7CC,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,YAGhCxT,YAAgB1C,GAAYoB,SAC5BsB,EAAKuI,SAASxG,QAAQyZ,GAE1Bxb,EAAKwb,SAAS1S,KAEd6vB,EAAYnlB,EACP1X,EAAI,EAAG68B,EAAUv3B,OAAS,EAAGtF,GAAK,EAAG,CAC1C,GAAIA,GA9Ec,IA+Ed,KAAM,IAAI6G,OAAM,kDA4BpB,KA1BAg2B,EAAU52B,QAAQ,SAAUse,GACxB,GAAIrgB,GAAO9B,EAASI,KAAK+hB,EAAS7c,QAAQ,EAC9B,OAARxD,IAEAA,EAAK4G,UAAYyZ,EAAS7c,SACJ,cAAlB6c,EAASjN,MACTqlB,EAAKv6B,EAASI,KAAK+hB,EAASuY,iBAAiB,OAC1C72B,QAAQ9F,KAAKokB,EAASF,WAAY,SAAUtgB,GAC3C,GAAIkJ,GAAQ7K,EAASI,KAAKuB,GAAM,EAChC44B,GAAK1vB,GAAO,GACRA,YAAiBzL,GAAYoB,SAC7BqK,EAAMR,SAASxG,QAAQ,SAAU82B,GAC7BJ,EAAKI,GAAY,QAKN,eAAlBxY,EAASjN,MACdqlB,EAAKz4B,EAAKub,OAGlBkd,EAAKz4B,MAETtE,KAAK6M,SAASxG,QAAQyZ,GACtBmd,KAAejxB,MAAMzL,KAAKP,KAAKy8B,SAASK,eACxCD,EAAUI,EAAUjxB,QACb6wB,EAAQn3B,OAAS,GACpBoS,EAAU3J,KAAK0uB,EAAQpuB,SAGnC+tB,EAAWj7B,UAAUyW,OAAS,SAAUF,EAAW1K,GAC/C,GAAIpG,GAAQhH,SACI,KAAZoN,IAAsBA,MAC1B0K,EAAYA,GAAa9X,KAAKy8B,SAASK,cAEvChlB,EACKnS,IAAI,SAAUgf,GACf,GAAIrgB,GAAO9B,EAASI,KAAK+hB,EAAS7c,QAAQ,EAC1C,OAAY,OAARxD,EACO,KAEsC,MAA7CA,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,WAEhCxT,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,WAAa6M,GACtCrgB,IAIPA,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,UAAU3J,KAAKwW,GACxC,QAGVte,QAAQ,SAAU/B,GACP,MAARA,GACAA,IAAS0C,GAE0B,MAAnC1C,EAAK4G,QAAQ1I,EAAS6B,WAG1BC,EAAK0T,OAAO1T,EAAK4G,QAAQ1I,EAAS6B,UAAUyT,cAAiB1K,KAGhB,MAA7CpN,KAAKkL,QAAQ1I,EAAS6B,UAAUyT,WAEhChR,EAAOvF,UAAUyW,OAAOzX,KAAKP,KAAMA,KAAKkL,QAAQ1I,EAAS6B,UAAUyT,UAAW1K,GAElFpN,KAAK8f,SAAShI,EAAW1K,IAE7BovB,EAAW32B,SAAW,SACtB22B,EAAWjvB,aAAe,QAC1BivB,EAAWh4B,MAAQhC,EAASE,MAAMuJ,WAClCuwB,EAAWn3B,QAAU,MACdm3B,GACT56B,EAAYoB,QACdrD,GAAQqD,QAAUw5B,GjDqrNZ,SAAU58B,EAAQD,EAASM,GAEjC,YkDx1NA,SAASm9B,GAAQC,EAAMC,GACnB,GAAIx8B,OAAOoN,KAAKmvB,GAAM33B,SAAW5E,OAAOoN,KAAKovB,GAAM53B,OAC/C,OAAO,CAEX,KAAK,GAAI63B,KAAQF,GAEb,GAAIA,EAAKE,KAAUD,EAAKC,GACpB,OAAO,CAEf,QAAO,EAvBX,GAAIh3B,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIE,GAAW,EAAQ,IACnBW,EAAW,EAAQ,GAanBg7B,EAA4B,SAAU12B,GAEtC,QAAS02B,KACL,MAAkB,QAAX12B,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KA8C/D,MAhDAuG,GAAUi3B,EAAY12B,GAItB02B,EAAWp0B,QAAU,SAAU8B,GAC3B,GAAIA,EAAQ7F,UAAYm4B,EAAWn4B,QAEnC,MAAOyB,GAAOsC,QAAQ7I,KAAKP,KAAMkL,IAErCsyB,EAAWj8B,UAAUkK,OAAS,SAAU9K,EAAMgB,GAC1C,GAAIqF,GAAQhH,IACRW,KAASX,KAAKsJ,QAAQzD,UAAalE,EAUnCmF,EAAOvF,UAAUkK,OAAOlL,KAAKP,KAAMW,EAAMgB,IATzC3B,KAAK6M,SAASxG,QAAQ,SAAUgH,GACtBA,YAAiBxL,GAASmB,UAC5BqK,EAAQA,EAAMuE,KAAK4rB,EAAW33B,UAAU,IAE5CmB,EAAMrC,WAAW0D,KAAKgF,KAE1BrN,KAAKggB,WAMbwd,EAAWj8B,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GAC3D,GAA4B,MAAxB3B,KAAKoJ,UAAUzI,IAAiB6B,EAASK,MAAMlC,EAAM6B,EAASE,MAAM0a,WAAY,CACrEpd,KAAK2R,QAAQnG,EAAO9F,GAC1B+F,OAAO9K,EAAMgB,OAGlBmF,GAAOvF,UAAUke,SAASlf,KAAKP,KAAMwL,EAAO9F,EAAQ/E,EAAMgB,IAGlE67B,EAAWj8B,UAAUue,SAAW,SAAU1S,GACtCtG,EAAOvF,UAAUue,SAASvf,KAAKP,KAAMoN,EACrC,IAAIhE,GAAUpJ,KAAKoJ,SACnB,IAAoC,IAAhCtI,OAAOoN,KAAK9E,GAAS1D,OACrB,MAAO1F,MAAKggB,QAEhB,IAAIlU,GAAO9L,KAAK8L,IACZA,aAAgB0xB,IAAc1xB,EAAK+T,OAAS7f,MAAQo9B,EAAQh0B,EAAS0C,EAAK1C,aAC1E0C,EAAK+F,aAAa7R,MAClB8L,EAAKqB,WAGbqwB,EAAW33B,SAAW,SACtB23B,EAAWh5B,MAAQhC,EAASE,MAAM8iB,YAClCgY,EAAWn4B,QAAU,OACdm4B,GACT37B,EAASmB,QACXrD,GAAQqD,QAAUw6B,GlD62NZ,SAAU59B,EAAQD,EAASM,GAEjC,YmD37NA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIE,GAAW,EAAQ,IACnBW,EAAW,EAAQ,GACnBi7B,EAA2B,SAAU32B,GAErC,QAAS22B,KACL,MAAkB,QAAX32B,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KAiD/D,MAnDAuG,GAAUk3B,EAAW32B,GAIrB22B,EAAUr0B,QAAU,SAAU8B,GAC1B,GAAI7F,GAAU7C,EAASK,MAAM46B,EAAU53B,UAAUR,OACjD,IAAI6F,EAAQ7F,UAAYA,EAExB,MAAOyB,GAAOsC,QAAQ7I,KAAKP,KAAMkL,IAErCuyB,EAAUl8B,UAAUkK,OAAS,SAAU9K,EAAMgB,GACS,MAA9Ca,EAASK,MAAMlC,EAAM6B,EAASE,MAAMmC,SAG/BlE,IAASX,KAAKsJ,QAAQzD,UAAalE,EAIxCmF,EAAOvF,UAAUkK,OAAOlL,KAAKP,KAAMW,EAAMgB,GAHzC3B,KAAKmlB,YAAYsY,EAAU53B,YAMnC43B,EAAUl8B,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GACR,MAA9Ca,EAASK,MAAMlC,EAAM6B,EAASE,MAAMmC,OACpC7E,KAAKyL,OAAO9K,EAAMgB,GAGlBmF,EAAOvF,UAAUke,SAASlf,KAAKP,KAAMwL,EAAO9F,EAAQ/E,EAAMgB,IAGlE87B,EAAUl8B,UAAUwK,SAAW,SAAUP,EAAO7J,EAAO+J,GACnD,GAAW,MAAPA,GAA+D,MAAhDlJ,EAASK,MAAMlB,EAAOa,EAASE,MAAMoC,QAEpDgC,EAAOvF,UAAUwK,SAASxL,KAAKP,KAAMwL,EAAO7J,EAAO+J,OAElD,CACD,GAAI8Y,GAAQxkB,KAAKkF,MAAMsG,GACnBlH,EAAO9B,EAASG,OAAOhB,EAAO+J,EAClC8Y,GAAMnb,OAAOwC,aAAavH,EAAMkgB,KAGxCiZ,EAAUl8B,UAAUyW,OAAS,SAAUF,EAAW1K,GAC1CuhB,UAAUM,UAAUnrB,MAAM,WAC1B9D,KAAKyjB,QAGL3c,EAAOvF,UAAUyW,OAAOzX,KAAKP,KAAM8X,EAAW1K,IAGtDqwB,EAAU53B,SAAW,QACrB43B,EAAUj5B,MAAQhC,EAASE,MAAMuJ,WACjCwxB,EAAUp4B,QAAU,IACbo4B,GACT57B,EAASmB,QACXrD,GAAQqD,QAAUy6B,GnDk8NZ,SAAU79B,EAAQD,EAASM,GAEjC,YoDvgOA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIG,GAAS,EAAQ,IACjB47B,EAA2B,SAAU52B,GAErC,QAAS42B,KACL,MAAkB,QAAX52B,GAAmBA,EAAOkE,MAAMhL,KAAMyF,YAAczF,KAsB/D,MAxBAuG,GAAUm3B,EAAW52B,GAIrB42B,EAAUt0B,QAAU,SAAU8B,KAG9BwyB,EAAUn8B,UAAUkK,OAAS,SAAU9K,EAAMgB,GAIzCmF,EAAOvF,UAAUke,SAASlf,KAAKP,KAAM,EAAGA,KAAK0F,SAAU/E,EAAMgB,IAEjE+7B,EAAUn8B,UAAUke,SAAW,SAAUjU,EAAO9F,EAAQ/E,EAAMgB,GAC5C,IAAV6J,GAAe9F,IAAW1F,KAAK0F,SAC/B1F,KAAKyL,OAAO9K,EAAMgB,GAGlBmF,EAAOvF,UAAUke,SAASlf,KAAKP,KAAMwL,EAAO9F,EAAQ/E,EAAMgB,IAGlE+7B,EAAUn8B,UAAU6H,QAAU,WAC1B,MAAOpJ,MAAKsJ,QAAQF,QAAQpJ,KAAKkL,UAE9BwyB,GACT57B,EAAOkB,QACTrD,GAAQqD,QAAU06B,GpD8gOZ,SAAU99B,EAAQD,EAASM,GAEjC,YqDvjOA,IAAIsG,GAAavG,MAAQA,KAAKuG,WAAc,WACxC,GAAIC,GAAgB1F,OAAO2F,iBACpBC,uBAA2BT,QAAS,SAAUvF,EAAGiG,GAAKjG,EAAEgG,UAAYC,IACvE,SAAUjG,EAAGiG,GAAK,IAAK,GAAIlF,KAAKkF,GAAOA,EAAEnF,eAAeC,KAAIf,EAAEe,GAAKkF,EAAElF,IACzE,OAAO,UAAUf,EAAGiG,GAEhB,QAASC,KAAO5G,KAAK6G,YAAcnG,EADnC8F,EAAc9F,EAAGiG,GAEjBjG,EAAEa,UAAkB,OAANoF,EAAa7F,OAAO6B,OAAOgE,IAAMC,EAAGrF,UAAYoF,EAAEpF,UAAW,GAAIqF,OAGvF9F,QAAOC,eAAepB,EAAS,cAAgBgC,OAAO,GACtD,IAAIG,GAAS,EAAQ,IACjBU,EAAW,EAAQ,GACnBiL,EAA0B,SAAU3G,GAEpC,QAAS2G,GAAStJ,GACd,GAAI6C,GAAQF,EAAOvG,KAAKP,KAAMmE,IAASnE,IAEvC,OADAgH,GAAM2F,KAAO3F,EAAMsC,QAAQ3H,MAAMqF,EAAMkE,SAChClE,EA0EX,MA9EAT,GAAUkH,EAAU3G,GAMpB2G,EAAS9K,OAAS,SAAUhB,GACxB,MAAO0R,UAASie,eAAe3vB,IAEnC8L,EAAS9L,MAAQ,SAAUuJ,GACvB,GAAIyB,GAAOzB,EAAQkf,IAInB,OAFIzd,GAAgB,YAChBA,EAAOA,EAAgB,aACpBA,GAEXc,EAASlM,UAAU6d,SAAW,SAAU5T,EAAO9F,GAC3C1F,KAAKkL,QAAQkf,KAAOpqB,KAAK2M,KAAO3M,KAAK2M,KAAKX,MAAM,EAAGR,GAASxL,KAAK2M,KAAKX,MAAMR,EAAQ9F,IAExF+H,EAASlM,UAAUiK,MAAQ,SAAUrH,EAAMmN,GACvC,MAAItR,MAAKkL,UAAY/G,EACVmN,GAEH,GAEZ7D,EAASlM,UAAUwK,SAAW,SAAUP,EAAO7J,EAAO+J,GACvC,MAAPA,GACA1L,KAAK2M,KAAO3M,KAAK2M,KAAKX,MAAM,EAAGR,GAAS7J,EAAQ3B,KAAK2M,KAAKX,MAAMR,GAChExL,KAAKkL,QAAQkf,KAAOpqB,KAAK2M,MAGzB7F,EAAOvF,UAAUwK,SAASxL,KAAKP,KAAMwL,EAAO7J,EAAO+J,IAG3D+B,EAASlM,UAAUmE,OAAS,WACxB,MAAO1F,MAAK2M,KAAKjH,QAErB+H,EAASlM,UAAUue,SAAW,SAAU1S,GACpCtG,EAAOvF,UAAUue,SAASvf,KAAKP,KAAMoN,GACrCpN,KAAK2M,KAAO3M,KAAKsJ,QAAQ3H,MAAM3B,KAAKkL,SACX,IAArBlL,KAAK2M,KAAKjH,OACV1F,KAAKmN,SAEAnN,KAAK8L,eAAgB2B,IAAYzN,KAAK8L,KAAK+T,OAAS7f,OACzDA,KAAK+L,SAAS/L,KAAK0F,SAAU1F,KAAK8L,KAAKnK,SACvC3B,KAAK8L,KAAKqB,WAGlBM,EAASlM,UAAUgjB,SAAW,SAAU/Y,EAAO8Y,GAE3C,WADkB,KAAdA,IAAwBA,GAAY,IAChCtkB,KAAKkL,QAASM,IAE1BiC,EAASlM,UAAU2D,MAAQ,SAAUsG,EAAO8B,GAExC,OADc,KAAVA,IAAoBA,GAAQ,IAC3BA,EAAO,CACR,GAAc,IAAV9B,EACA,MAAOxL,KACX,IAAIwL,IAAUxL,KAAK0F,SACf,MAAO1F,MAAK8L,KAEpB,GAAI0Y,GAAQhiB,EAASG,OAAO3C,KAAKkL,QAAQyyB,UAAUnyB,GAGnD,OAFAxL,MAAKqJ,OAAOwC,aAAa2Y,EAAOxkB,KAAK8L,MACrC9L,KAAK2M,KAAO3M,KAAKsJ,QAAQ3H,MAAM3B,KAAKkL,SAC7BsZ,GAEX/W,EAASlM,UAAUyW,OAAS,SAAUF,EAAW1K,GAC7C,GAAIpG,GAAQhH,IACR8X,GAAUoM,KAAK,SAAUS,GACzB,MAAyB,kBAAlBA,EAASjN,MAA4BiN,EAAS7c,SAAWd,EAAMkE,YAEtElL,KAAK2M,KAAO3M,KAAKsJ,QAAQ3H,MAAM3B,KAAKkL,WAG5CuC,EAASlM,UAAUI,MAAQ,WACvB,MAAO3B,MAAK2M,MAEhBc,EAAS5H,SAAW,OACpB4H,EAASjJ,MAAQhC,EAASE,MAAM8iB,YACzB/X,GACT3L,EAAOkB,QACTrD,GAAQqD,QAAUyK,GrD8jOZ,SAAU7N,EAAQD,EAASM,GAEjC,YsD/pOA,IAAIgP,GAAOoE,SAAS4F,cAAc,MAElC,IADAhK,EAAK2H,UAAUe,OAAO,cAAc,GAChC1I,EAAK2H,UAAUoE,SAAS,cAAe,CACzC,GAAI4iB,GAAUC,aAAat8B,UAAUoW,MACrCkmB,cAAat8B,UAAUoW,OAAS,SAASmmB,EAAOxwB,GAC9C,MAAI7H,WAAUC,OAAS,IAAM1F,KAAKgb,SAAS8iB,KAAYxwB,EAC9CA,EAEAswB,EAAQr9B,KAAKP,KAAM89B,IAK3BhwB,OAAOvM,UAAUwX,aACpBjL,OAAOvM,UAAUwX,WAAa,SAASglB,EAAcxZ,GAEnD,MADAA,GAAWA,GAAY,EAChBvkB,KAAK6lB,OAAOtB,EAAUwZ,EAAar4B,UAAYq4B,IAIrDjwB,OAAOvM,UAAUoK,WACpBmC,OAAOvM,UAAUoK,SAAW,SAASoyB,EAAcxZ,GACjD,GAAIyZ,GAAgBh+B,KAAKoH,YACD,gBAAbmd,KAA0B0Z,SAAS1Z,IAAa/X,KAAK0xB,MAAM3Z,KAAcA,GAAYA,EAAWyZ,EAAct4B,UACvH6e,EAAWyZ,EAAct4B,QAE3B6e,GAAYwZ,EAAar4B,MACzB,IAAIohB,GAAYkX,EAAc9sB,QAAQ6sB,EAAcxZ,EACpD,QAAsB,IAAfuC,GAAoBA,IAAcvC,IAIxCte,MAAM1E,UAAUqB,MACnB9B,OAAOC,eAAekF,MAAM1E,UAAW,QACrCI,MAAO,SAASgN,GACd,GAAa,OAAT3O,KACF,KAAM,IAAI6I,WAAU,mDAEtB,IAAyB,kBAAd8F,GACT,KAAM,IAAI9F,WAAU,+BAOtB,KAAK,GAFDlH,GAHAwuB,EAAOrvB,OAAOd,MACd0F,EAASyqB,EAAKzqB,SAAW,EACzBy4B,EAAU14B,UAAU,GAGfrF,EAAI,EAAGA,EAAIsF,EAAQtF,IAE1B,GADAuB,EAAQwuB,EAAK/vB,GACTuO,EAAUpO,KAAK49B,EAASx8B,EAAOvB,EAAG+vB,GACpC,MAAOxuB,MAQjB0R,SAAS2I,iBAAiB,mBAAoB,WAE5C3I,SAAS+qB,YAAY,wBAAwB,GAAO,GAEpD/qB,SAAS+qB,YAAY,iBAAiB,GAAO,MtDuqOzC,SAAUx+B,EAAQD,GuDxrOxB,QAAS0+B,GAAUC,EAAOC,EAAOC,GAE/B,GAAIF,GAASC,EACX,MAAID,KACOG,EAAYH,QAMrBE,EAAa,GAAKF,EAAM54B,OAAS84B,KACnCA,EAAa,KAIf,IAAIE,GAAeC,EAAkBL,EAAOC,GACxCK,EAAeN,EAAMO,UAAU,EAAGH,EACtCJ,GAAQA,EAAMO,UAAUH,GACxBH,EAAQA,EAAMM,UAAUH,GAGxBA,EAAeI,EAAkBR,EAAOC,EACxC,IAAIQ,GAAeT,EAAMO,UAAUP,EAAM54B,OAASg5B,EAClDJ,GAAQA,EAAMO,UAAU,EAAGP,EAAM54B,OAASg5B,GAC1CH,EAAQA,EAAMM,UAAU,EAAGN,EAAM74B,OAASg5B,EAG1C,IAAIM,GAAQC,EAAcX,EAAOC,EAcjC,OAXIK,IACFI,EAAM1wB,SAASmwB,EAAYG,IAEzBG,GACFC,EAAM7wB,MAAMswB,EAAYM,IAE1BG,EAAkBF,GACA,MAAdR,IACFQ,EAAQG,EAAWH,EAAOR,IAE5BQ,EAAQI,EAAUJ,GAYpB,QAASC,GAAcX,EAAOC,GAC5B,GAAIS,EAEJ,KAAKV,EAEH,QAASe,EAAad,GAGxB,KAAKA,EAEH,QAASe,EAAahB,GAGxB,IAAIiB,GAAWjB,EAAM54B,OAAS64B,EAAM74B,OAAS44B,EAAQC,EACjDiB,EAAYlB,EAAM54B,OAAS64B,EAAM74B,OAAS64B,EAAQD,EAClDl+B,EAAIm/B,EAASruB,QAAQsuB,EACzB,KAAU,GAANp/B,EASF,MAPA4+B,KAAUK,EAAaE,EAASV,UAAU,EAAGz+B,KACnCq+B,EAAYe,IACZH,EAAaE,EAASV,UAAUz+B,EAAIo/B,EAAU95B,UAEpD44B,EAAM54B,OAAS64B,EAAM74B,SACvBs5B,EAAM,GAAG,GAAKA,EAAM,GAAG,GAAKM,GAEvBN,CAGT,IAAwB,GAApBQ,EAAU95B,OAGZ,QAAS45B,EAAahB,IAASe,EAAad,GAI9C,IAAIkB,GAAKC,EAAgBpB,EAAOC,EAChC,IAAIkB,EAAI,CAEN,GAAIE,GAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbM,EAAaN,EAAG,GAEhBO,EAAU3B,EAAUsB,EAASE,GAC7BI,EAAU5B,EAAUuB,EAASE,EAEjC,OAAOE,GAAQ1vB,SAASmuB,EAAYsB,IAAcE,GAGpD,MAAOC,GAAa5B,EAAOC,GAa7B,QAAS2B,GAAa5B,EAAOC,GAW3B,IAAK,GATD4B,GAAe7B,EAAM54B,OACrB06B,EAAe7B,EAAM74B,OACrB26B,EAAQ7zB,KAAK8zB,MAAMH,EAAeC,GAAgB,GAClDG,EAAWF,EACXG,EAAW,EAAIH,EACfI,EAAK,GAAIx6B,OAAMu6B,GACfE,EAAK,GAAIz6B,OAAMu6B,GAGV7iB,EAAI,EAAGA,EAAI6iB,EAAU7iB,IAC5B8iB,EAAG9iB,IAAM,EACT+iB,EAAG/iB,IAAM,CAEX8iB,GAAGF,EAAW,GAAK,EACnBG,EAAGH,EAAW,GAAK,CAWnB,KAAK,GAVDn0B,GAAQ+zB,EAAeC,EAGvBO,EAASv0B,EAAQ,GAAK,EAGtBw0B,EAAU,EACVC,EAAQ,EACRC,EAAU,EACVC,EAAQ,EACHrgC,EAAI,EAAGA,EAAI2/B,EAAO3/B,IAAK,CAE9B,IAAK,GAAIsgC,IAAMtgC,EAAIkgC,EAASI,GAAMtgC,EAAImgC,EAAOG,GAAM,EAAG,CACpD,GACIC,GADAC,EAAYX,EAAWS,CAGzBC,GADED,IAAOtgC,GAAMsgC,GAAMtgC,GAAK+/B,EAAGS,EAAY,GAAKT,EAAGS,EAAY,GACxDT,EAAGS,EAAY,GAEfT,EAAGS,EAAY,GAAK,CAG3B,KADA,GAAIC,GAAKF,EAAKD,EACPC,EAAKd,GAAgBgB,EAAKf,GAC1B9B,EAAM8C,OAAOH,IAAO1C,EAAM6C,OAAOD,IACtCF,IACAE,GAGF,IADAV,EAAGS,GAAaD,EACZA,EAAKd,EAEPU,GAAS,MACJ,IAAIM,EAAKf,EAEdQ,GAAW,MACN,IAAID,EAAO,CAChB,GAAIU,GAAYd,EAAWn0B,EAAQ40B,CACnC,IAAIK,GAAa,GAAKA,EAAYb,IAA8B,GAAlBE,EAAGW,GAAkB,CAEjE,GAAIC,GAAKnB,EAAeO,EAAGW,EAC3B,IAAIJ,GAAMK,EAER,MAAOC,GAAkBjD,EAAOC,EAAO0C,EAAIE,KAOnD,IAAK,GAAIK,IAAM9gC,EAAIogC,EAASU,GAAM9gC,EAAIqgC,EAAOS,GAAM,EAAG,CACpD,GACIF,GADAD,EAAYd,EAAWiB,CAGzBF,GADEE,IAAO9gC,GAAM8gC,GAAM9gC,GAAKggC,EAAGW,EAAY,GAAKX,EAAGW,EAAY,GACxDX,EAAGW,EAAY,GAEfX,EAAGW,EAAY,GAAK,CAG3B,KADA,GAAII,GAAKH,EAAKE,EACPF,EAAKnB,GAAgBsB,EAAKrB,GAC1B9B,EAAM8C,OAAOjB,EAAemB,EAAK,IACjC/C,EAAM6C,OAAOhB,EAAeqB,EAAK,IACtCH,IACAG,GAGF,IADAf,EAAGW,GAAaC,EACZA,EAAKnB,EAEPY,GAAS,MACJ,IAAIU,EAAKrB,EAEdU,GAAW,MACN,KAAKH,EAAO,CACjB,GAAIO,GAAYX,EAAWn0B,EAAQo1B,CACnC,IAAIN,GAAa,GAAKA,EAAYV,IAA8B,GAAlBC,EAAGS,GAAkB,CACjE,GAAID,GAAKR,EAAGS,GACRC,EAAKZ,EAAWU,EAAKC,CAGzB,IADAI,EAAKnB,EAAemB,EAChBL,GAAMK,EAER,MAAOC,GAAkBjD,EAAOC,EAAO0C,EAAIE,MAQrD,QAAS7B,EAAahB,IAASe,EAAad,IAa9C,QAASgD,GAAkBjD,EAAOC,EAAO5gB,EAAG+jB,GAC1C,GAAIC,GAASrD,EAAMO,UAAU,EAAGlhB,GAC5BikB,EAASrD,EAAMM,UAAU,EAAG6C,GAC5BG,EAASvD,EAAMO,UAAUlhB,GACzBmkB,EAASvD,EAAMM,UAAU6C,GAGzB1C,EAAQX,EAAUsD,EAAQC,GAC1BG,EAAS1D,EAAUwD,EAAQC,EAE/B,OAAO9C,GAAM1uB,OAAOyxB,GAWtB,QAASpD,GAAkBL,EAAOC,GAEhC,IAAKD,IAAUC,GAASD,EAAM8C,OAAO,IAAM7C,EAAM6C,OAAO,GACtD,MAAO,EAQT,KAJA,GAAIY,GAAa,EACbC,EAAaz1B,KAAKC,IAAI6xB,EAAM54B,OAAQ64B,EAAM74B,QAC1Cw8B,EAAaD,EACbE,EAAe,EACZH,EAAaE,GACd5D,EAAMO,UAAUsD,EAAcD,IAC9B3D,EAAMM,UAAUsD,EAAcD,IAChCF,EAAaE,EACbC,EAAeH,GAEfC,EAAaC,EAEfA,EAAa11B,KAAK0xB,OAAO+D,EAAaD,GAAc,EAAIA,EAE1D,OAAOE,GAUT,QAASpD,GAAkBR,EAAOC,GAEhC,IAAKD,IAAUC,GACXD,EAAM8C,OAAO9C,EAAM54B,OAAS,IAAM64B,EAAM6C,OAAO7C,EAAM74B,OAAS,GAChE,MAAO,EAQT,KAJA,GAAIs8B,GAAa,EACbC,EAAaz1B,KAAKC,IAAI6xB,EAAM54B,OAAQ64B,EAAM74B,QAC1Cw8B,EAAaD,EACbG,EAAa,EACVJ,EAAaE,GACd5D,EAAMO,UAAUP,EAAM54B,OAASw8B,EAAY5D,EAAM54B,OAAS08B,IAC1D7D,EAAMM,UAAUN,EAAM74B,OAASw8B,EAAY3D,EAAM74B,OAAS08B,IAC5DJ,EAAaE,EACbE,EAAaJ,GAEbC,EAAaC,EAEfA,EAAa11B,KAAK0xB,OAAO+D,EAAaD,GAAc,EAAIA,EAE1D,OAAOE,GAcT,QAASxC,GAAgBpB,EAAOC,GAmB9B,QAAS8D,GAAiB9C,EAAUC,EAAWp/B,GAM7C,IAJA,GAGIkiC,GAAiBC,EAAiBC,EAAkBC,EAHpDC,EAAOnD,EAASV,UAAUz+B,EAAGA,EAAIoM,KAAK0xB,MAAMqB,EAAS75B,OAAS,IAC9Di9B,GAAK,EACLC,EAAc,IAE8B,IAAxCD,EAAInD,EAAUtuB,QAAQwxB,EAAMC,EAAI,KAAW,CACjD,GAAIE,GAAelE,EAAkBY,EAASV,UAAUz+B,GACnBo/B,EAAUX,UAAU8D,IACrDG,EAAehE,EAAkBS,EAASV,UAAU,EAAGz+B,GACtBo/B,EAAUX,UAAU,EAAG8D,GACxDC,GAAYl9B,OAASo9B,EAAeD,IACtCD,EAAcpD,EAAUX,UAAU8D,EAAIG,EAAcH,GAChDnD,EAAUX,UAAU8D,EAAGA,EAAIE,GAC/BP,EAAkB/C,EAASV,UAAU,EAAGz+B,EAAI0iC,GAC5CP,EAAkBhD,EAASV,UAAUz+B,EAAIyiC,GACzCL,EAAmBhD,EAAUX,UAAU,EAAG8D,EAAIG,GAC9CL,EAAmBjD,EAAUX,UAAU8D,EAAIE,IAG/C,MAAyB,GAArBD,EAAYl9B,QAAc65B,EAAS75B,QAC7B48B,EAAiBC,EACjBC,EAAkBC,EAAkBG,GAErC,KA1CX,GAAIrD,GAAWjB,EAAM54B,OAAS64B,EAAM74B,OAAS44B,EAAQC,EACjDiB,EAAYlB,EAAM54B,OAAS64B,EAAM74B,OAAS64B,EAAQD,CACtD,IAAIiB,EAAS75B,OAAS,GAAwB,EAAnB85B,EAAU95B,OAAa65B,EAAS75B,OACzD,MAAO,KA4CT,IAKI+5B,GALAsD,EAAMV,EAAiB9C,EAAUC,EACVhzB,KAAK8zB,KAAKf,EAAS75B,OAAS,IAEnDs9B,EAAMX,EAAiB9C,EAAUC,EACVhzB,KAAK8zB,KAAKf,EAAS75B,OAAS,GAEvD,KAAKq9B,IAAQC,EACX,MAAO,KAOPvD,GANUuD,EAEAD,GAILA,EAAI,GAAGr9B,OAASs9B,EAAI,GAAGt9B,OAASq9B,EAHhCC,EAFAD,CASP,IAAIpD,GAASC,EAASC,EAASC,CAa/B,OAZIxB,GAAM54B,OAAS64B,EAAM74B,QACvBi6B,EAAUF,EAAG,GACbG,EAAUH,EAAG,GACbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,KAEbI,EAAUJ,EAAG,GACbK,EAAUL,EAAG,GACbE,EAAUF,EAAG,GACbG,EAAUH,EAAG,KAGPE,EAASC,EAASC,EAASC,EADlBL,EAAG,IAUtB,QAASP,GAAkBF,GACzBA,EAAM7wB,MAAMswB,EAAY,IAOxB,KANA,GAKIC,GALAuE,EAAU,EACVC,EAAe,EACfC,EAAe,EACfC,EAAc,GACdC,EAAc,GAEXJ,EAAUjE,EAAMt5B,QACrB,OAAQs5B,EAAMiE,GAAS,IACrB,IAAK5D,GACH8D,IACAE,GAAerE,EAAMiE,GAAS,GAC9BA,GACA,MACF,KAAK3D,GACH4D,IACAE,GAAepE,EAAMiE,GAAS,GAC9BA,GACA,MACF,KAAKxE,GAECyE,EAAeC,EAAe,GACX,IAAjBD,GAAuC,IAAjBC,IAExBzE,EAAeC,EAAkB0E,EAAaD,GACzB,IAAjB1E,IACGuE,EAAUC,EAAeC,EAAgB,GAC1CnE,EAAMiE,EAAUC,EAAeC,EAAe,GAAG,IACjD1E,EACFO,EAAMiE,EAAUC,EAAeC,EAAe,GAAG,IAC7CE,EAAYxE,UAAU,EAAGH,IAE7BM,EAAMzwB,OAAO,EAAG,GAAIkwB,EACA4E,EAAYxE,UAAU,EAAGH,KAC7CuE,KAEFI,EAAcA,EAAYxE,UAAUH,GACpC0E,EAAcA,EAAYvE,UAAUH,IAIjB,KADrBA,EAAeI,EAAkBuE,EAAaD,MAE5CpE,EAAMiE,GAAS,GAAKI,EAAYxE,UAAUwE,EAAY39B,OAClDg5B,GAAgBM,EAAMiE,GAAS,GACnCI,EAAcA,EAAYxE,UAAU,EAAGwE,EAAY39B,OAC/Cg5B,GACJ0E,EAAcA,EAAYvE,UAAU,EAAGuE,EAAY19B,OAC/Cg5B,KAIa,IAAjBwE,EACFlE,EAAMzwB,OAAO00B,EAAUE,EACnBD,EAAeC,GAAe9D,EAAagE,IACrB,IAAjBF,EACTnE,EAAMzwB,OAAO00B,EAAUC,EACnBA,EAAeC,GAAe7D,EAAa8D,IAE/CpE,EAAMzwB,OAAO00B,EAAUC,EAAeC,EAClCD,EAAeC,GAAe7D,EAAa8D,IAC1C/D,EAAagE,IAEpBJ,EAAUA,EAAUC,EAAeC,GACxBD,EAAe,EAAI,IAAMC,EAAe,EAAI,GAAK,GACvC,IAAZF,GAAiBjE,EAAMiE,EAAU,GAAG,IAAMxE,GAEnDO,EAAMiE,EAAU,GAAG,IAAMjE,EAAMiE,GAAS,GACxCjE,EAAMzwB,OAAO00B,EAAS,IAEtBA,IAEFE,EAAe,EACfD,EAAe,EACfE,EAAc,GACdC,EAAc,GAIe,KAA/BrE,EAAMA,EAAMt5B,OAAS,GAAG,IAC1Bs5B,EAAMvwB,KAMR,IAAI60B,IAAU,CAGd,KAFAL,EAAU,EAEHA,EAAUjE,EAAMt5B,OAAS,GAC1Bs5B,EAAMiE,EAAU,GAAG,IAAMxE,GACzBO,EAAMiE,EAAU,GAAG,IAAMxE,IAEvBO,EAAMiE,GAAS,GAAGpE,UAAUG,EAAMiE,GAAS,GAAGv9B,OAC9Cs5B,EAAMiE,EAAU,GAAG,GAAGv9B,SAAWs5B,EAAMiE,EAAU,GAAG,IAEtDjE,EAAMiE,GAAS,GAAKjE,EAAMiE,EAAU,GAAG,GACnCjE,EAAMiE,GAAS,GAAGpE,UAAU,EAAGG,EAAMiE,GAAS,GAAGv9B,OACrBs5B,EAAMiE,EAAU,GAAG,GAAGv9B,QACtDs5B,EAAMiE,EAAU,GAAG,GAAKjE,EAAMiE,EAAU,GAAG,GAAKjE,EAAMiE,EAAU,GAAG,GACnEjE,EAAMzwB,OAAO00B,EAAU,EAAG,GAC1BK,GAAU,GACDtE,EAAMiE,GAAS,GAAGpE,UAAU,EAAGG,EAAMiE,EAAU,GAAG,GAAGv9B,SAC5Ds5B,EAAMiE,EAAU,GAAG,KAErBjE,EAAMiE,EAAU,GAAG,IAAMjE,EAAMiE,EAAU,GAAG,GAC5CjE,EAAMiE,GAAS,GACXjE,EAAMiE,GAAS,GAAGpE,UAAUG,EAAMiE,EAAU,GAAG,GAAGv9B,QAClDs5B,EAAMiE,EAAU,GAAG,GACvBjE,EAAMzwB,OAAO00B,EAAU,EAAG,GAC1BK,GAAU,IAGdL,GAGEK,IACFpE,EAAkBF,GAwBtB,QAASuE,GAAuBvE,EAAOR,GACrC,GAAmB,IAAfA,EACF,OAAQC,EAAYO,EAEtB,KAAK,GAAIwE,GAAc,EAAGpjC,EAAI,EAAGA,EAAI4+B,EAAMt5B,OAAQtF,IAAK,CACtD,GAAIM,GAAIs+B,EAAM5+B,EACd,IAAIM,EAAE,KAAO4+B,GAAe5+B,EAAE,KAAO+9B,EAAY,CAC/C,GAAIgF,GAAWD,EAAc9iC,EAAE,GAAGgF,MAClC,IAAI84B,IAAeiF,EACjB,OAAQrjC,EAAI,EAAG4+B,EACV,IAAIR,EAAaiF,EAAU,CAEhCzE,EAAQA,EAAMhzB,OAEd,IAAI03B,GAAYlF,EAAagF,EACzBG,GAAUjjC,EAAE,GAAIA,EAAE,GAAGsL,MAAM,EAAG03B,IAC9BE,GAAWljC,EAAE,GAAIA,EAAE,GAAGsL,MAAM03B,GAEhC,OADA1E,GAAMzwB,OAAOnO,EAAG,EAAGujC,EAAQC,IACnBxjC,EAAI,EAAG4+B,GAEfwE,EAAcC,GAIpB,KAAM,IAAIx8B,OAAM,gCAqBlB,QAASk4B,GAAYH,EAAOR,GAC1B,GAAIqF,GAAON,EAAsBvE,EAAOR,GACpCsF,EAASD,EAAK,GACdE,EAAiBF,EAAK,GACtBnjC,EAAIojC,EAAOC,GACXC,EAASF,EAAOC,EAAiB,EAErC,IAAS,MAALrjC,EAGF,MAAOs+B,EACF,IAAIt+B,EAAE,KAAO+9B,EAGlB,MAAOO,EAEP,IAAc,MAAVgF,GAAkBtjC,EAAE,GAAKsjC,EAAO,KAAOA,EAAO,GAAKtjC,EAAE,GAIvD,MADAojC,GAAOv1B,OAAOw1B,EAAgB,EAAGC,EAAQtjC,GAClCujC,EAAaH,EAAQC,EAAgB,EACvC,IAAc,MAAVC,GAA8C,IAA5BA,EAAO,GAAG9yB,QAAQxQ,EAAE,IAAW,CAK1DojC,EAAOv1B,OAAOw1B,EAAgB,GAAIC,EAAO,GAAItjC,EAAE,KAAM,EAAGA,EAAE,IAC1D,IAAI0sB,GAAS4W,EAAO,GAAGh4B,MAAMtL,EAAE,GAAGgF,OAIlC,OAHI0nB,GAAO1nB,OAAS,GAClBo+B,EAAOv1B,OAAOw1B,EAAiB,EAAG,GAAIC,EAAO,GAAI5W,IAE5C6W,EAAaH,EAAQC,EAAgB,GAG5C,MAAO/E,GAab,QAASI,GAAWJ,GAQlB,IAAK,GAPDkF,IAAU,EACVC,EAAuB,SAASC,GAClC,MAAOA,GAAI/V,WAAW,IAAM,OAAU+V,EAAI/V,WAAW,IAAM,OAKpDjuB,EAAI,EAAGA,EAAI4+B,EAAMt5B,OAAQtF,GAAK,EACjC4+B,EAAM5+B,EAAE,GAAG,KAAOq+B,GAJG,SAAS2F,GAClC,MAAOA,GAAI/V,WAAW+V,EAAI1+B,OAAO,IAAM,OAAU0+B,EAAI/V,WAAW+V,EAAI1+B,OAAO,IAAM,OAGxBs5B,EAAM5+B,EAAE,GAAG,KAChE4+B,EAAM5+B,EAAE,GAAG,KAAOk/B,GAAe6E,EAAqBnF,EAAM5+B,EAAE,GAAG,KACjE4+B,EAAM5+B,GAAG,KAAOi/B,GAAe8E,EAAqBnF,EAAM5+B,GAAG,MAC/D8jC,GAAU,EAEVlF,EAAM5+B,EAAE,GAAG,GAAK4+B,EAAM5+B,EAAE,GAAG,GAAG4L,OAAO,GAAKgzB,EAAM5+B,EAAE,GAAG,GACrD4+B,EAAM5+B,GAAG,GAAK4+B,EAAM5+B,EAAE,GAAG,GAAG4L,OAAO,GAAKgzB,EAAM5+B,GAAG,GAEjD4+B,EAAM5+B,EAAE,GAAG,GAAK4+B,EAAM5+B,EAAE,GAAG,GAAG4L,MAAM,GAAI,GAG5C,KAAKk4B,EACH,MAAOlF,EAGT,KAAK,GADDqF,MACKjkC,EAAI,EAAGA,EAAI4+B,EAAMt5B,OAAQtF,GAAK,EACjC4+B,EAAM5+B,GAAG,GAAGsF,OAAS,GACvB2+B,EAAYl2B,KAAK6wB,EAAM5+B,GAG3B,OAAOikC,GAYT,QAASJ,GAAcjF,EAAO7vB,EAAOzJ,GAEnC,IAAK,GAAItF,GAAI+O,EAAQzJ,EAAS,EAAGtF,GAAK,GAAKA,GAAK+O,EAAQ,EAAG/O,IACzD,GAAIA,EAAI,EAAI4+B,EAAMt5B,OAAQ,CACxB,GAAI4+B,GAAStF,EAAM5+B,GACfmkC,EAAUvF,EAAM5+B,EAAE,EAClBkkC,GAAO,KAAOC,EAAQ,IACxBvF,EAAMzwB,OAAOnO,EAAG,GAAIkkC,EAAO,GAAIA,EAAO,GAAKC,EAAQ,KAIzD,MAAOvF,GAjsBT,GAAIM,IAAe,EACfD,EAAc,EACdZ,EAAa,EA4hBb/wB,EAAO2wB,CACX3wB,GAAKmD,OAASwuB,EACd3xB,EAAKoD,OAASwuB,EACd5xB,EAAKqD,MAAQ0tB,EAEb7+B,EAAOD,QAAU+N,GvD04OX,SAAU9N,EAAQD,GwDx8PxB,QAAS6kC,GAAM/8B,GACb,GAAIyG,KACJ,KAAK,GAAItG,KAAOH,GAAKyG,EAAKC,KAAKvG,EAC/B,OAAOsG,GAPTvO,EAAUC,EAAOD,QAAiC,kBAAhBmB,QAAOoN,KACrCpN,OAAOoN,KAAOs2B,EAElB7kC,EAAQ6kC,KAAOA,GxDw9PT,SAAU5kC,EAAQD,GyDp9PxB,QAAS8kC,GAAUpjC,GACjB,MAAiD,sBAA1CP,OAAOS,UAAU6F,SAAS7G,KAAKc,GAIxC,QAASqjC,GAAYrjC,GACnB,MAAOA,IACY,gBAAVA,IACiB,gBAAjBA,GAAOqE,QACd5E,OAAOS,UAAUC,eAAejB,KAAKc,EAAQ,YAC5CP,OAAOS,UAAUojC,qBAAqBpkC,KAAKc,EAAQ,YACpD,EAlBJ,GAAIujC,GAEI,sBAFqB,WAC3B,MAAO9jC,QAAOS,UAAU6F,SAAS7G,KAAKkF,aAGxC9F,GAAUC,EAAOD,QAAUilC,EAAyBH,EAAYC,EAEhE/kC,EAAQ8kC,UAAYA,EAKpB9kC,EAAQ+kC,YAAcA,GzD0+PhB,SAAU9kC,EAAQD,EAASM,GAEjC,YAqDA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qC0D/0PhH,QAASg8B,GAAez7B,EAAS07B,GAC/B,MAAOhkC,QAAOoN,KAAK42B,GAAUx4B,OAAO,SAASy4B,EAAQpkC,GACnD,MAAqB,OAAjByI,EAAQzI,GAAsBokC,GAC9BD,EAASnkC,KAAUyI,EAAQzI,GAC7BokC,EAAOpkC,GAAQmkC,EAASnkC,GACfsF,MAAMC,QAAQ4+B,EAASnkC,IAC5BmkC,EAASnkC,GAAMuQ,QAAQ9H,EAAQzI,IAAS,IAC1CokC,EAAOpkC,GAAQmkC,EAASnkC,GAAM2P,QAAQlH,EAAQzI,MAGhDokC,EAAOpkC,IAASmkC,EAASnkC,GAAOyI,EAAQzI,IAEnCokC,QAIX,QAASC,GAAe54B,GACtB,MAAOA,GAAME,OAAO,SAASF,EAAOwB,GAClC,GAAkB,IAAdA,EAAGxC,OAAc,CACnB,GAAIzG,IAAa,aAAMiJ,EAAGjJ,WAE1B,cADOA,GAAA,MACAyH,EAAMhB,QAASgrB,MAAOxoB,EAAGjJ,WAAWyxB,OAASzxB,GAWtD,GATqB,MAAjBiJ,EAAGjJ,aAA8C,IAAvBiJ,EAAGjJ,WAAWwrB,OAA0C,IAAzBviB,EAAGjJ,WAAWsgC,SACzEr3B,GAAK,aAAMA,GACPA,EAAGjJ,WAAWwrB,KAChBviB,EAAGjJ,WAAWwrB,KAAO,WAErBviB,EAAGjJ,WAAWwrB,KAAO,eACdviB,GAAGjJ,WAAWsgC,SAGA,gBAAdr3B,GAAGxC,OAAqB,CACjC,GAAIuB,GAAOiB,EAAGxC,OAAOmS,QAAQ,QAAS,MAAMA,QAAQ,MAAO,KAC3D,OAAOnR,GAAMhB,OAAOuB,EAAMiB,EAAGjJ,YAE/B,MAAOyH,GAAM+B,KAAKP,IACjB,GAAIzC,Y1DovPTrK,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAIuT,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAO5F,SAAwB,SAAU9H,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX0N,SAAyB1N,EAAIZ,cAAgBsO,QAAU1N,IAAQ0N,OAAO5T,UAAY,eAAkBkG,IAElQ2N,EAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M0DlgQhiB,O1DsgQI0B,EAAe7B,EAAuB8B,G0DrgQ1C,Q1DygQIgkB,EAAO9lB,EAAuB+lB,G0DxgQlC,O1D4gQIhkB,EAAc/B,EAAuBgC,G0D3gQzC,Q1D+gQImuB,EAASnwB,EAAuBowB,G0D9gQpC,Q1DkhQIiC,EAAWryB,EAAuBsyB,G0DjhQtC,O1DqhQInc,EAAUnW,EAAuBoW,G0DphQrC,Q1DwhQInU,EAAUjC,EAAuBkC,G0DvhQrC,Q1D2hQIme,EAAUrgB,EAAuByd,G0D1hQrC,Q1D8hQI6C,EAActgB,EAAuBugB,G0D7hQzC,O1DiiQI5e,EAAW3B,EAAuB4B,G0D9hQhC66B,EAAQ,WAGR9tB,E,WACJ,WAAYF,GAAQ,UAClBlX,KAAKkX,OAASA,EACdlX,KAAKoM,MAAQpM,KAAKmlC,W1DoyQpB,MA1PA17B,GAAa2N,IACXxP,IAAK,aACLjG,MAAO,S0DziQEyK,GAAO,WACZg5B,GAAqB,CACzBplC,MAAKkX,OAAOc,QACZ,IAAIqS,GAAerqB,KAAKkX,OAAOxR,QA4C/B,OA3CA1F,MAAKkX,OAAOmuB,aACZj5B,EAAQ44B,EAAe54B,GACvBA,EAAME,OAAO,SAACd,EAAOoC,GACnB,GAAIlI,GAASkI,EAAGQ,QAAUR,EAAGsB,QAAUtB,EAAGxC,OAAO1F,QAAU,EACvDf,EAAaiJ,EAAGjJ,cACpB,IAAiB,MAAbiJ,EAAGxC,OAAgB,CACrB,GAAyB,gBAAdwC,GAAGxC,OAAqB,CACjC,GAAIuB,GAAOiB,EAAGxC,MACVuB,GAAKhB,SAAS,OAASy5B,IACzBA,GAAqB,EACrBz4B,EAAOA,EAAKX,MAAM,GAAI,IAEpBR,GAAS6e,IAAiB1d,EAAKhB,SAAS,QAC1Cy5B,GAAqB,GAEvB,EAAKluB,OAAOnL,SAASP,EAAOmB,EATK,OAUZ,EAAKuK,OAAOnK,KAAKvB,GAVL,SAU5BuB,EAV4B,KAUtBuE,EAVsB,KAW7BlI,GAAU,iBAAW,IAAAD,eAAc4D,GACvC,IAAIA,YAAgB1J,WAAO,OACV0J,EAAKoS,WAAW1c,UAAUS,KAAMoO,GADtB,SACpB/E,EADoB,IAEzBnD,IAAU,aAAOA,GAAS,IAAAD,eAAcoD,IAE1C5H,EAAaqoB,UAAQroB,WAAW+I,KAAKtE,EAASzE,WACzC,IAAyB,WAArB,EAAOiJ,EAAGxC,QAAqB,CACxC,GAAIxD,GAAM9G,OAAOoN,KAAKN,EAAGxC,QAAQ,EACjC,IAAW,MAAPxD,EAAa,MAAO4D,EACxB,GAAK0L,OAAOnL,SAASP,EAAO5D,EAAKgG,EAAGxC,OAAOxD,IAE7CyiB,GAAgB3kB,EAKlB,MAHA5E,QAAOoN,KAAKvJ,GAAY0B,QAAQ,SAAC1F,GAC/B,EAAKuW,OAAOuI,SAASjU,EAAO9F,EAAQ/E,EAAMgE,EAAWhE,MAEhD6K,EAAQ9F,GACd,GACH0G,EAAME,OAAO,SAACd,EAAOoC,GACnB,MAAyB,gBAAdA,GAAGsB,QACZ,EAAKgI,OAAOkI,SAAS5T,EAAOoC,EAAGsB,QACxB1D,GAEFA,GAASoC,EAAGQ,QAAUR,EAAGxC,OAAO1F,QAAU,IAChD,GACH1F,KAAKkX,OAAOouB,WACLtlC,KAAKgY,OAAO5L,M1DsjQnBxE,IAAK,aACLjG,MAAO,S0DpjQE6J,EAAO9F,GAEhB,MADA1F,MAAKkX,OAAOkI,SAAS5T,EAAO9F,GACrB1F,KAAKgY,QAAO,GAAI7M,YAAQiD,OAAO5C,GAAO0D,OAAOxJ,O1DujQpDkC,IAAK,aACLjG,MAAO,S0DrjQE6J,EAAO9F,GAAsB,WAAd0D,EAAc,yDAmBtC,OAlBApJ,MAAKkX,OAAOc,SACZlX,OAAOoN,KAAK9E,GAAS/C,QAAQ,SAACoF,GAC5B,GAA6B,MAAzB,EAAKyL,OAAOC,WAAsB,EAAKD,OAAOC,UAAU1L,GAA5D,CACA,GAAIiB,GAAQ,EAAKwK,OAAOxK,MAAMlB,EAAOgB,KAAKwI,IAAItP,EAAQ,IAClD6/B,EAAkB7/B,CACtBgH,GAAMrG,QAAQ,SAAC0G,GACb,GAAIy4B,GAAaz4B,EAAKrH,QACtB,IAAMqH,YAAgBgS,WAEf,CACL,GAAI0mB,GAAYj6B,EAAQuB,EAAKuE,OAAO,EAAK4F,QACrCwuB,EAAa34B,EAAKuS,aAAammB,EAAYF,GAAmBE,EAAY,CAC9E14B,GAAK0S,SAASgmB,EAAWC,EAAYj6B,EAAQrC,EAAQqC,QAJrDsB,GAAKtB,OAAOA,EAAQrC,EAAQqC,GAM9B85B,IAAmBC,OAGvBxlC,KAAKkX,OAAO4I,WACL9f,KAAKgY,QAAO,GAAI7M,YAAQiD,OAAO5C,GAAO4C,OAAO1I,GAAQ,aAAM0D,Q1D4jQlExB,IAAK,aACLjG,MAAO,S0D1jQE6J,EAAO9F,GAAsB,WAAd0D,EAAc,yDAItC,OAHAtI,QAAOoN,KAAK9E,GAAS/C,QAAQ,SAACoF,GAC5B,EAAKyL,OAAOuI,SAASjU,EAAO9F,EAAQ+F,EAAQrC,EAAQqC,MAE/CzL,KAAKgY,QAAO,GAAI7M,YAAQiD,OAAO5C,GAAO4C,OAAO1I,GAAQ,aAAM0D,Q1DikQlExB,IAAK,cACLjG,MAAO,S0D/jQG6J,EAAO9F,GACjB,MAAO1F,MAAKoM,MAAMJ,MAAMR,EAAOA,EAAQ9F,M1DkkQvCkC,IAAK,WACLjG,MAAO,W0D/jQP,MAAO3B,MAAKkX,OAAOxK,QAAQJ,OAAO,SAACF,EAAOW,GACxC,MAAOX,GAAMkE,OAAOvD,EAAKX,UACxB,GAAIjB,e1DmkQPvD,IAAK,YACLjG,MAAO,S0DjkQC6J,GAAmB,GAAZ9F,GAAY,uDAAH,EACpBgH,KAAYi5B,IACD,KAAXjgC,EACF1F,KAAKkX,OAAO0B,KAAKpN,GAAOnF,QAAQ,SAASuS,GAAM,QAC9BA,EAD8B,GACxCtU,EADwC,IAEzCA,aAAgBjB,WAClBqJ,EAAMyB,KAAK7J,GACFA,YAAgB7B,WAAUS,MACnCyiC,EAAOx3B,KAAK7J,MAIhBoI,EAAQ1M,KAAKkX,OAAOxK,MAAMlB,EAAO9F,GACjCigC,EAAS3lC,KAAKkX,OAAO7K,YAAY5J,UAAUS,KAAMsI,EAAO9F,GAE1D,IAAIkgC,IAAcl5B,EAAOi5B,GAAQhgC,IAAI,SAASkgC,GAC5C,GAAqB,IAAjBA,EAAMngC,OAAc,QAExB,KADA,GAAI0D,IAAU,IAAAD,eAAc08B,EAAMj5B,SAC3B9L,OAAOoN,KAAK9E,GAAS1D,OAAS,GAAG,CACtC,GAAIpB,GAAOuhC,EAAMj5B,OACjB,IAAY,MAARtI,EAAc,MAAO8E,EACzBA,GAAUy7B,GAAe,IAAA17B,eAAc7E,GAAO8E,GAEhD,MAAOA,IAET,OAAOjB,WAAO6C,MAAM7C,UAAQy9B,M1DykQ5Bh+B,IAAK,UACLjG,MAAO,S0DvkQD6J,EAAO9F,GACb,MAAO1F,MAAKsa,YAAY9O,EAAO9F,GAAQgJ,OAAO,SAASd,GACrD,MAA4B,gBAAdA,GAAGxC,SAChBzF,IAAI,SAASiI,GACd,MAAOA,GAAGxC,SACTqF,KAAK,O1D0kQR7I,IAAK,cACLjG,MAAO,S0DxkQG6J,EAAOqP,EAAOlZ,GAExB,MADA3B,MAAKkX,OAAOnL,SAASP,EAAOqP,EAAOlZ,GAC5B3B,KAAKgY,QAAO,GAAI7M,YAAQiD,OAAO5C,GAAOJ,OAA1B,KAAoCyP,EAAQlZ,Q1D2kQ/DiG,IAAK,aACLjG,MAAO,S0DzkQE6J,EAAOmB,GAAoB,WAAdvD,EAAc,yDAMpC,OALAuD,GAAOA,EAAK4Q,QAAQ,QAAS,MAAMA,QAAQ,MAAO,MAClDvd,KAAKkX,OAAOnL,SAASP,EAAOmB,GAC5B7L,OAAOoN,KAAK9E,GAAS/C,QAAQ,SAACoF,GAC5B,EAAKyL,OAAOuI,SAASjU,EAAOmB,EAAKjH,OAAQ+F,EAAQrC,EAAQqC,MAEpDzL,KAAKgY,QAAO,GAAI7M,YAAQiD,OAAO5C,GAAOJ,OAAOuB,GAAM,aAAMvD,Q1DglQhExB,IAAK,UACLjG,MAAO,W0D7kQP,GAAmC,GAA/B3B,KAAKkX,OAAOrK,SAASnH,OAAa,OAAO,CAC7C,IAAI1F,KAAKkX,OAAOrK,SAASnH,OAAS,EAAG,OAAO,CAC5C,IAAIkG,GAAQ5L,KAAKkX,OAAOrK,SAASI,IACjC,OAAIrB,GAAMtC,QAAQzD,WAAaxC,UAAMwC,aACjC+F,EAAMiB,SAASnH,OAAS,IACrBkG,EAAMiB,SAASI,eAAgBC,e1DilQtCtF,IAAK,eACLjG,MAAO,S0D/kQI6J,EAAO9F,GAClB,GAAIiH,GAAO3M,KAAK2a,QAAQnP,EAAO9F,GADL,EAEL1F,KAAKkX,OAAOnK,KAAKvB,EAAQ9F,GAFpB,SAErBqH,EAFqB,KAEfuE,EAFe,KAGtBwxB,EAAe,EAAG1V,EAAS,GAAIjiB,UACvB,OAAR4B,IAIA+1B,EAHI/1B,YAAgBgS,WAGLhS,EAAKuS,aAAahO,GAAUA,EAAS,EAFrCvE,EAAKrH,SAAW4L,EAIjC8b,EAASrgB,EAAKX,QAAQJ,MAAMsF,EAAQA,EAASwxB,EAAe,GAAG13B,OAAO,MAExE,IAAI6M,GAAWjY,KAAKsa,YAAY9O,EAAO9F,EAASo9B,GAC5Cp1B,EAAOuK,EAASvK,MAAK,GAAIvC,YAAQC,OAAOuB,GAAM2D,OAAO8c,IACrDhhB,GAAQ,GAAIjB,YAAQiD,OAAO5C,GAAO8E,OAAO5C,EAC7C,OAAO1N,MAAKub,WAAWnP,M1DwlQvBxE,IAAK,SACLjG,MAAO,S0DtlQFwS,GAAiD,GAAzC2D,GAAyC,0DAAzBguB,EAAyB,2DAAXt8B,GACvCyK,EAAWjU,KAAKoM,KACpB,IAAyB,IAArB0L,EAAUpS,QACY,kBAAtBoS,EAAU,GAAGJ,MACbI,EAAU,GAAGhQ,OAAOsiB,KAAKtmB,MAAMohC,IAC/BziC,UAAUG,KAAKkV,EAAU,GAAGhQ,QAAS,CAEvC,GAAIi+B,GAAWtjC,UAAUG,KAAKkV,EAAU,GAAGhQ,QACvCsB,GAAU,IAAAD,eAAc48B,GACxBv6B,EAAQu6B,EAASz0B,OAAOtR,KAAKkX,QAC7B8uB,EAAWluB,EAAU,GAAGkuB,SAASzoB,QAAQ0oB,UAAW1U,SAAU,IAC9D2U,GAAU,GAAI/6B,YAAQC,OAAO46B,GAC7BG,GAAU,GAAIh7B,YAAQC,OAAO26B,EAASpkC,QAE1CwS,IADgB,GAAIhJ,YAAQiD,OAAO5C,GAAO8E,OAAO41B,EAAQx4B,KAAKy4B,EAASL,IACpDx5B,OAAO,SAASF,EAAOwB,GACxC,MAAIA,GAAGxC,OACEgB,EAAMhB,OAAOwC,EAAGxC,OAAQhC,GAExBgD,EAAM+B,KAAKP,IAEnB,GAAIzC,YACPnL,KAAKoM,MAAQ6H,EAASvE,QAAQyE,OAE9BnU,MAAKoM,MAAQpM,KAAKmlC,WACbhxB,IAAW,aAAMF,EAASvE,QAAQyE,GAASnU,KAAKoM,SACnD+H,EAASF,EAASvG,KAAK1N,KAAKoM,MAAO05B,GAGvC,OAAO3xB,O1D0lQFiD,IA2CTzX,GAAQqD,Q0DvlQOoU,G1D2lQT,SAAUxX,EAAQD,G2Dr2QxB,YAYA,SAASymC,MA4BT,QAASC,GAAGC,EAAIl5B,EAAS8N,GACvBlb,KAAKsmC,GAAKA,EACVtmC,KAAKoN,QAAUA,EACfpN,KAAKkb,KAAOA,IAAQ,EAUtB,QAASsB,KACPxc,KAAKumC,QAAU,GAAIH,GACnBpmC,KAAKwmC,aAAe,EArDtB,GAAIC,GAAM3lC,OAAOS,UAAUC,eACvB0rB,EAAS,GAkBTpsB,QAAO6B,SACTyjC,EAAO7kC,UAAYT,OAAO6B,OAAO,OAM5B,GAAIyjC,IAAS1/B,YAAWwmB,GAAS,IAqCxC1Q,EAAajb,UAAUmlC,WAAa,WAClC,GACIlyB,GACA7T,EAFAqE,IAIJ,IAA0B,IAAtBhF,KAAKwmC,aAAoB,MAAOxhC,EAEpC,KAAKrE,IAAS6T,GAASxU,KAAKumC,QACtBE,EAAIlmC,KAAKiU,EAAQ7T,IAAOqE,EAAMmJ,KAAK+e,EAASvsB,EAAKqL,MAAM,GAAKrL,EAGlE,OAAIG,QAAO4mB,sBACF1iB,EAAMsL,OAAOxP,OAAO4mB,sBAAsBlT,IAG5CxP,GAWTwX,EAAajb,UAAU4a,UAAY,SAAmBG,EAAOqqB,GAC3D,GAAItX,GAAMnC,EAASA,EAAS5Q,EAAQA,EAChCsqB,EAAY5mC,KAAKumC,QAAQlX,EAE7B,IAAIsX,EAAQ,QAASC,CACrB,KAAKA,EAAW,QAChB,IAAIA,EAAUN,GAAI,OAAQM,EAAUN,GAEpC,KAAK,GAAIlmC,GAAI,EAAGC,EAAIumC,EAAUlhC,OAAQmhC,EAAK,GAAI5gC,OAAM5F,GAAID,EAAIC,EAAGD,IAC9DymC,EAAGzmC,GAAKwmC,EAAUxmC,GAAGkmC,EAGvB,OAAOO,IAUTrqB,EAAajb,UAAUoT,KAAO,SAAc2H,EAAOwqB,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,GAAI7X,GAAMnC,EAASA,EAAS5Q,EAAQA,CAEpC,KAAKtc,KAAKumC,QAAQlX,GAAM,OAAO,CAE/B,IAEI9a,GACAnU,EAHA+b,EAAYnc,KAAKumC,QAAQlX,GACzB8X,EAAM1hC,UAAUC,MAIpB,IAAIyW,EAAUmqB,GAAI,CAGhB,OAFInqB,EAAUjB,MAAMlb,KAAKonC,eAAe9qB,EAAOH,EAAUmqB,OAAI98B,IAAW,GAEhE29B,GACN,IAAK,GAAG,MAAOhrB,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,UAAU,CACrD,KAAK,GAAG,MAAO+O,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,QAAS05B,IAAK,CACzD,KAAK,GAAG,MAAO3qB,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,QAAS05B,EAAIC,IAAK,CAC7D,KAAK,GAAG,MAAO5qB,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,QAAS05B,EAAIC,EAAIC,IAAK,CACjE,KAAK,GAAG,MAAO7qB,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,QAAS05B,EAAIC,EAAIC,EAAIC,IAAK,CACrE,KAAK,GAAG,MAAO9qB,GAAUmqB,GAAG/lC,KAAK4b,EAAU/O,QAAS05B,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAK9mC,EAAI,EAAGmU,EAAO,GAAItO,OAAMkhC,EAAK,GAAI/mC,EAAI+mC,EAAK/mC,IAC7CmU,EAAKnU,EAAI,GAAKqF,UAAUrF,EAG1B+b,GAAUmqB,GAAGt7B,MAAMmR,EAAU/O,QAASmH,OACjC,CACL,GACIouB,GADAj9B,EAASyW,EAAUzW,MAGvB,KAAKtF,EAAI,EAAGA,EAAIsF,EAAQtF,IAGtB,OAFI+b,EAAU/b,GAAG8a,MAAMlb,KAAKonC,eAAe9qB,EAAOH,EAAU/b,GAAGkmC,OAAI98B,IAAW,GAEtE29B,GACN,IAAK,GAAGhrB,EAAU/b,GAAGkmC,GAAG/lC,KAAK4b,EAAU/b,GAAGgN,QAAU,MACpD,KAAK,GAAG+O,EAAU/b,GAAGkmC,GAAG/lC,KAAK4b,EAAU/b,GAAGgN,QAAS05B,EAAK,MACxD,KAAK,GAAG3qB,EAAU/b,GAAGkmC,GAAG/lC,KAAK4b,EAAU/b,GAAGgN,QAAS05B,EAAIC,EAAK,MAC5D,KAAK,GAAG5qB,EAAU/b,GAAGkmC,GAAG/lC,KAAK4b,EAAU/b,GAAGgN,QAAS05B,EAAIC,EAAIC,EAAK,MAChE,SACE,IAAKzyB,EAAM,IAAKouB,EAAI,EAAGpuB,EAAO,GAAItO,OAAMkhC,EAAK,GAAIxE,EAAIwE,EAAKxE,IACxDpuB,EAAKouB,EAAI,GAAKl9B,UAAUk9B,EAG1BxmB,GAAU/b,GAAGkmC,GAAGt7B,MAAMmR,EAAU/b,GAAGgN,QAASmH,IAKpD,OAAO,GAYTiI,EAAajb,UAAUkW,GAAK,SAAY6E,EAAOgqB,EAAIl5B,GACjD,GAAIioB,GAAW,GAAIgR,GAAGC,EAAIl5B,GAAWpN,MACjCqvB,EAAMnC,EAASA,EAAS5Q,EAAQA,CAMpC,OAJKtc,MAAKumC,QAAQlX,GACRrvB,KAAKumC,QAAQlX,GAAKiX,GACvBtmC,KAAKumC,QAAQlX,IAAQrvB,KAAKumC,QAAQlX,GAAMgG,GADbr1B,KAAKumC,QAAQlX,GAAKlhB,KAAKknB,IAD/Br1B,KAAKumC,QAAQlX,GAAOgG,EAAUr1B,KAAKwmC,gBAIpDxmC,MAYTwc,EAAajb,UAAU2Z,KAAO,SAAcoB,EAAOgqB,EAAIl5B,GACrD,GAAIioB,GAAW,GAAIgR,GAAGC,EAAIl5B,GAAWpN,MAAM,GACvCqvB,EAAMnC,EAASA,EAAS5Q,EAAQA,CAMpC,OAJKtc,MAAKumC,QAAQlX,GACRrvB,KAAKumC,QAAQlX,GAAKiX,GACvBtmC,KAAKumC,QAAQlX,IAAQrvB,KAAKumC,QAAQlX,GAAMgG,GADbr1B,KAAKumC,QAAQlX,GAAKlhB,KAAKknB,IAD/Br1B,KAAKumC,QAAQlX,GAAOgG,EAAUr1B,KAAKwmC,gBAIpDxmC,MAaTwc,EAAajb,UAAU6lC,eAAiB,SAAwB9qB,EAAOgqB,EAAIl5B,EAAS8N,GAClF,GAAImU,GAAMnC,EAASA,EAAS5Q,EAAQA,CAEpC,KAAKtc,KAAKumC,QAAQlX,GAAM,MAAOrvB,KAC/B,KAAKsmC,EAGH,MAF4B,MAAtBtmC,KAAKwmC,aAAoBxmC,KAAKumC,QAAU,GAAIH,SACtCpmC,MAAKumC,QAAQlX,GAClBrvB,IAGT,IAAImc,GAAYnc,KAAKumC,QAAQlX,EAE7B,IAAIlT,EAAUmqB,GAEPnqB,EAAUmqB,KAAOA,GACfprB,IAAQiB,EAAUjB,MAClB9N,GAAW+O,EAAU/O,UAAYA,IAEV,KAAtBpN,KAAKwmC,aAAoBxmC,KAAKumC,QAAU,GAAIH,SACtCpmC,MAAKumC,QAAQlX,QAEtB,CACL,IAAK,GAAIjvB,GAAI,EAAGoU,KAAa9O,EAASyW,EAAUzW,OAAQtF,EAAIsF,EAAQtF,KAE7D+b,EAAU/b,GAAGkmC,KAAOA,GACnBprB,IAASiB,EAAU/b,GAAG8a,MACtB9N,GAAW+O,EAAU/b,GAAGgN,UAAYA,IAExCoH,EAAOrG,KAAKgO,EAAU/b,GAOtBoU,GAAO9O,OAAQ1F,KAAKumC,QAAQlX,GAAyB,IAAlB7a,EAAO9O,OAAe8O,EAAO,GAAKA,EACxC,KAAtBxU,KAAKwmC,aAAoBxmC,KAAKumC,QAAU,GAAIH,SAC3CpmC,MAAKumC,QAAQlX,GAG3B,MAAOrvB,OAUTwc,EAAajb,UAAU8lC,mBAAqB,SAA4B/qB,GACtE,GAAI+S,EAaJ,OAXI/S,IACF+S,EAAMnC,EAASA,EAAS5Q,EAAQA,EAC5Btc,KAAKumC,QAAQlX,KACa,KAAtBrvB,KAAKwmC,aAAoBxmC,KAAKumC,QAAU,GAAIH,SACtCpmC,MAAKumC,QAAQlX,MAG3BrvB,KAAKumC,QAAU,GAAIH,GACnBpmC,KAAKwmC,aAAe,GAGfxmC,MAMTwc,EAAajb,UAAU0Z,IAAMuB,EAAajb,UAAU6lC,eACpD5qB,EAAajb,UAAU+lC,YAAc9qB,EAAajb,UAAUkW,GAK5D+E,EAAajb,UAAUgmC,gBAAkB,WACvC,MAAOvnC,OAMTwc,EAAagrB,SAAWta,EAKxB1Q,EAAaA,aAAeA,MAKxB,KAAuB5c,IACzBA,EAAOD,QAAU6c,I3D62Qb,SAAU5c,EAAQD,EAASM,GAEjC,YAqCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G4DvsRje,QAASu+B,GAAOnjC,GACd,MAAQA,aAAgBjB,YAASiB,YAAgBiF,c5D8pRnDzI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAIyT,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I4D/qR5d,O5DmrRIQ,EAAc/B,EAAuBgC,G4DlrRzC,O5DsrRI8pB,EAAY9rB,EAAuB+rB,G4DrrRvC,O5DyrRI5V,EAAUnW,EAAuBoW,G4DxrRrC,Q5D4rRInU,EAAUjC,EAAuBkC,G4D3rRrC,Q5D+rRIiuB,EAASnwB,EAAuBowB,G4D9rRpC,Q5DksRI+B,EAAcnyB,EAAuBoyB,G4D1rRnCz3B,E,YACJ,WAAY8H,EAAS4H,GAAQ,yEACrB5H,GADqB,OAE3B,GAAKwJ,QAAU5B,EAAO4B,QAClBzO,MAAMC,QAAQ4M,EAAOqE,aACvB,EAAKA,UAAYrE,EAAOqE,UAAU7K,OAAO,SAAS6K,EAAW1L,GAE3D,MADA0L,GAAU1L,IAAU,EACb0L,QAIX,EAAKjM,QAAQ8Q,iBAAiB,kBAAmB,cACjD,EAAK8D,WACL,EAAK1G,SAZsB,E5Do4R7B,MA5LApQ,GAAU5F,EAAQskC,GAqBlBj+B,EAAarG,IACXwE,IAAK,aACLjG,MAAO,W4D/sRP3B,KAAK2nC,OAAQ,K5DmtRb//B,IAAK,WACLjG,MAAO,W4DhtRP3B,KAAK2nC,OAAQ,EACb3nC,KAAK8f,c5DotRLlY,IAAK,WACLjG,MAAO,S4DltRA6J,EAAO9F,GAAQ,MACA1F,KAAK+M,KAAKvB,GADV,SACjB+f,EADiB,KACVja,EADU,OAEPtR,KAAK+M,KAAKvB,EAAQ9F,GAFX,SAEjB8lB,EAFiB,IAItB,IADA,uFAAehgB,EAAO9F,GACV,MAAR8lB,GAAgBD,IAAUC,GAAQla,EAAS,EAAG,CAChD,GAAIia,YAAiBhiB,eAAciiB,YAAgBjiB,cAEjD,WADAvJ,MAAK8f,UAGP,IAAIyL,YAAiBxM,WAAW,CAC9B,GAAIO,GAAeiM,EAAMjM,aAAaiM,EAAM7lB,UAAU,EACtD,IAAI4Z,GAAgB,IAClBiM,EAAQA,EAAMrmB,MAAMoa,EAAe,MACrBkM,EAEZ,WADAxrB,MAAK8f,eAIJ,IAAI0L,YAAgBzM,WAAW,CACpC,GAAIO,GAAekM,EAAKlM,aAAa,EACjCA,IAAgB,GAClBkM,EAAKtmB,MAAMoa,EAAe,GAG9B,GAAItS,GAAMwe,EAAK3e,SAASI,eAAgBC,WAAQ,KAAOse,EAAK3e,SAASI,IACrEse,GAAM1Z,aAAa2Z,EAAMxe,GACzBue,EAAMpe,SAERnN,KAAK8f,c5D4tRLlY,IAAK,SACLjG,MAAO,W4D1tRc,GAAhB0X,KAAgB,wDACrBrZ,MAAKkL,QAAQ8L,aAAa,kBAAmBqC,M5D+tR7CzR,IAAK,WACLjG,MAAO,S4D7tRA6J,EAAO9F,EAAQ+F,EAAQ9J,IACR,MAAlB3B,KAAKmX,WAAsBnX,KAAKmX,UAAU1L,MAC9C,uFAAeD,EAAO9F,EAAQ+F,EAAQ9J,GACtC3B,KAAK8f,e5DguRLlY,IAAK,WACLjG,MAAO,S4D9tRA6J,EAAO7J,EAAO+J,GACrB,GAAW,MAAPA,GAAiC,MAAlB1L,KAAKmX,WAAsBnX,KAAKmX,UAAUxV,GAA7D,CACA,GAAI6J,GAASxL,KAAK0F,SAChB,GAAW,MAAPgG,GAAgE,MAAjDjJ,UAAUI,MAAMlB,EAAOc,UAAUC,MAAMmC,OAAgB,CACxE,GAAIP,GAAO7B,UAAUE,OAAO3C,KAAKsJ,QAAQiE,aACzCvN,MAAK4f,YAAYtb,GACN,MAAPoH,GAAe/J,EAAMgK,SAAS,QAChChK,EAAQA,EAAMqK,MAAM,GAAI,IAE1B1H,EAAKyH,SAAS,EAAGpK,EAAO+J,OACnB,CACL,GAAImP,GAAQpY,UAAUE,OAAOhB,EAAO+J,EACpC1L,MAAK4f,YAAY/E,OAGnB,wFAAerP,EAAO7J,EAAO+J,EAE/B1L,MAAK8f,e5DiuRLlY,IAAK,eACLjG,MAAO,S4D/tRI2C,EAAM0I,GACjB,GAAI1I,EAAKgF,QAAQ9E,QAAU/B,UAAUC,MAAM8iB,YAAa,CACtD,GAAIH,GAAU5iB,UAAUE,OAAO3C,KAAKsJ,QAAQiE,aAC5C8X,GAAQzF,YAAYtb,GACpBA,EAAO+gB,EAET,2FAAmB/gB,EAAM0I,M5DkuRzBpF,IAAK,OACLjG,MAAO,S4DhuRJ6J,GACH,MAAOxL,MAAK4Y,KAAKpN,GAAOiD,QAAU,MAAO,M5DmuRzC7G,IAAK,OACLjG,MAAO,S4DjuRJ6J,GACH,MAAIA,KAAUxL,KAAK0F,SACV1F,KAAK+M,KAAKvB,EAAQ,GAEpBxL,KAAKmf,WAAWsoB,EAAQj8B,M5DouR/B5D,IAAK,QACLjG,MAAO,W4DluRmC,GAAtC6J,GAAsC,uDAA9B,EAAG9F,EAA2B,uDAAlB8U,OAAOC,SAa/B,OAZe,SAAX+S,GAAYlpB,EAAMkH,EAAO9F,GAC3B,GAAIgH,MAAYoX,EAAape,CAS7B,OARApB,GAAKuI,SAAS8W,UAAUnY,EAAO9F,EAAQ,SAAS2H,EAAO7B,EAAO9F,GACxD+hC,EAAOp6B,GACTX,EAAMyB,KAAKd,GACFA,YAAiB5K,WAAUM,YACpC2J,EAAQA,EAAM4D,OAAOkd,EAASngB,EAAO7B,EAAOsY,KAE9CA,GAAcpe,IAETgH,GAEO1M,KAAMwL,EAAO9F,M5DyuR7BkC,IAAK,WACLjG,MAAO,W4DvuR8B,GAA9BmW,GAA8B,0DAAd1K,EAAc,2DAClB,IAAfpN,KAAK2nC,QACT,uFAAe7vB,EAAW1K,GACtB0K,EAAUpS,OAAS,GACrB1F,KAAK0U,QAAQC,KAAKf,UAAQY,OAAOkI,gBAAiB5E,EAAW1K,O5D8uR/DxF,IAAK,OACLjG,MAAO,S4D3uRJ6J,GACH,MAAO,oFAAWA,GAAOQ,MAAM,M5D8uR/BpE,IAAK,SACLjG,MAAO,S4D5uRFmW,GACL,IAAmB,IAAf9X,KAAK2nC,MAAT,CACA,GAAIl0B,GAASG,UAAQC,QAAQC,IACJ,iBAAdgE,KACTrE,EAASqE,GAEN7R,MAAMC,QAAQ4R,KACjBA,EAAY9X,KAAKy8B,SAASK,eAExBhlB,EAAUpS,OAAS,GACrB1F,KAAK0U,QAAQC,KAAKf,UAAQY,OAAOiI,qBAAsBhJ,EAAQqE,GAEjE,qFAAaA,EAAUxH,YACnBwH,EAAUpS,OAAS,GACrB1F,KAAK0U,QAAQC,KAAKf,UAAQY,OAAOqD,cAAepE,EAAQqE,Q5DivRrD1U,G4Dr4RYX,UAAUW,OAwJ/BA,GAAOyC,SAAW,SAClBzC,EAAO4C,UAAY,YACnB5C,EAAOiC,QAAU,MACjBjC,EAAOmK,aAAe,QACtBnK,EAAOoK,iBAAmBnK,UAAOkG,aAAYxG,W5DkvR7CpD,EAAQqD,Q4D/uROI,G5DmvRT,SAAUxD,EAAQD,EAASM,GAEjC,YAsDA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G6Dt0Rje,QAAS0+B,GAAYx7B,EAAOX,EAAQ9J,GAClC,MAAsB,gBAAlB,KAAO8J,EAAP,cAAOA,IACF3K,OAAOoN,KAAKzC,GAAQa,OAAO,SAASF,EAAOxE,GAChD,MAAOggC,GAAYx7B,EAAOxE,EAAK6D,EAAO7D,KACrCwE,GAEIA,EAAME,OAAO,SAASF,EAAOwB,GAClC,MAAIA,GAAGjJ,YAAciJ,EAAGjJ,WAAW8G,GAC1BW,EAAM+B,KAAKP,GAEXxB,EAAMhB,OAAOwC,EAAGxC,QAAQ,qBAAaK,EAAS9J,GAAQiM,EAAGjJ,cAEjE,GAAIwG,YAIX,QAAS08B,GAAa1jC,GACpB,GAAIA,EAAK2jC,WAAa7jC,KAAK8jC,aAAc,QAEzC,OAAO5jC,GADS,yBACSA,EADT,uBACyB6jC,OAAOC,iBAAiB9jC,IAGnE,QAAS+jC,GAAc97B,EAAOO,GAE5B,IAAK,GADDw7B,GAAU,GACL/nC,EAAIgM,EAAM4B,IAAItI,OAAS,EAAGtF,GAAK,GAAK+nC,EAAQziC,OAASiH,EAAKjH,SAAUtF,EAAG,CAC9E,GAAIwN,GAAMxB,EAAM4B,IAAI5N,EACpB,IAAyB,gBAAdwN,GAAGxC,OAAqB,KACnC+8B,GAAUv6B,EAAGxC,OAAS+8B,EAExB,MAAOA,GAAQn8B,OAAO,EAAEW,EAAKjH,UAAYiH,EAG3C,QAAS86B,GAAOtjC,GACd,MAA+B,KAA3BA,EAAKgf,WAAWzd,SAEZ,QAAS,aAAawL,QADlB22B,EAAa1jC,GACmBmd,UAAY,EAG1D,QAAS8mB,GAASjkC,EAAMkkC,EAAiBC,GACvC,MAAInkC,GAAK2jC,WAAa3jC,EAAKD,UAClBokC,EAAah8B,OAAO,SAASF,EAAOm8B,GACzC,MAAOA,GAAQpkC,EAAMiI,IACpB,GAAIjB,YACEhH,EAAK2jC,WAAa3jC,EAAK4jC,gBACtBz7B,OAAO/L,KAAK4D,EAAKgf,eAAkB,SAAC/W,EAAOylB,GACnD,GAAI2W,GAAgBJ,EAASvW,EAAWwW,EAAiBC,EASzD,OARIzW,GAAUiW,WAAa3jC,EAAK4jC,eAC9BS,EAAgBH,EAAgB/7B,OAAO,SAASk8B,EAAeD,GAC7D,MAAOA,GAAQ1W,EAAW2W,IACzBA,GACHA,GAAiB3W,EAAU4W,QAAgBn8B,OAAO,SAASk8B,EAAeD,GACxE,MAAOA,GAAQ1W,EAAW2W,IACzBA,IAEEp8B,EAAMkE,OAAOk4B,IACnB,GAAIr9B,YAEA,GAAIA,WAKf,QAASu9B,GAAWj9B,EAAQtH,EAAMiI,GAChC,MAAOw7B,GAAYx7B,EAAOX,GAAQ,GAGpC,QAASk9B,GAAgBxkC,EAAMiI,GAC7B,GAAIzH,GAAalC,UAAUe,WAAWC,UAAUyK,KAAK/J,GACjDgB,EAAU1C,UAAUe,WAAWE,MAAMwK,KAAK/J,GAC1C0sB,EAASpuB,UAAUe,WAAWG,MAAMuK,KAAK/J,GACzCiF,IAoBJ,OAnBAzE,GAAW2L,OAAOnL,GAASmL,OAAOugB,GAAQxqB,QAAQ,SAAC1F,GACjD,GAAImwB,GAAOruB,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAM0a,UACrC,OAAR0T,IACF1nB,EAAQ0nB,EAAKhrB,UAAYgrB,EAAKnvB,MAAMwC,GAChCiF,EAAQ0nB,EAAKhrB,aAEnBgrB,EAAO8X,EAAsBjoC,GACjB,MAARmwB,GAAiBA,EAAKhrB,WAAanF,GAAQmwB,EAAK/qB,UAAYpF,IAC9DyI,EAAQ0nB,EAAKhrB,UAAYgrB,EAAKnvB,MAAMwC,QAASqF,IAGnC,OADZsnB,EAAO+X,EAAkBloC,KACJmwB,EAAKhrB,WAAanF,GAAQmwB,EAAK/qB,UAAYpF,IAC9DmwB,EAAO+X,EAAkBloC,GACzByI,EAAQ0nB,EAAKhrB,UAAYgrB,EAAKnvB,MAAMwC,QAASqF,OAG7C1I,OAAOoN,KAAK9E,GAAS1D,OAAS,IAChC0G,EAAQw7B,EAAYx7B,EAAOhD,IAEtBgD,EAGT,QAAS08B,GAAU3kC,EAAMiI,GACvB,GAAItI,GAAQrB,UAAUI,MAAMsB,EAC5B,IAAa,MAATL,EAAe,MAAOsI,EAC1B,IAAItI,EAAMvC,oBAAqBkB,WAAUU,MAAO,CAC9C,GAAI0X,MACAlZ,EAAQmC,EAAMnC,MAAMwC,EACX,OAATxC,IACFkZ,EAAM/W,EAAM+B,UAAYlE,EACxByK,GAAQ,GAAIjB,YAAQC,OAAOyP,EAAO/W,EAAMsF,QAAQjF,SAEhB,kBAAlBL,GAAMsF,UACtBgD,EAAQw7B,EAAYx7B,EAAOtI,EAAM+B,SAAU/B,EAAMsF,QAAQjF,IAE3D,OAAOiI,GAGT,QAAS28B,GAAW5kC,EAAMiI,GAIxB,MAHK87B,GAAc97B,EAAO,OACxBA,EAAMhB,OAAO,MAERgB,EAGT,QAAS48B,KACP,MAAO,IAAI79B,WAGb,QAAS89B,GAAY9kC,EAAMiI,GACzB,GAAItI,GAAQrB,UAAUI,MAAMsB,EAC5B,IAAa,MAATL,GAAoC,cAAnBA,EAAM+B,WAA6BqiC,EAAc97B,EAAO,MAC3E,MAAOA,EAGT,KADA,GAAI0hB,IAAU,EAAGzkB,EAASlF,EAAKI,YACvB8E,EAAOuN,UAAUoE,SAAS,iBACiB,UAA5CvY,UAAUI,MAAMwG,QAAexD,WAClCioB,GAAU,GAEZzkB,EAASA,EAAO9E,UAElB,OAAIupB,IAAU,EAAU1hB,EACjBA,EAAMsD,SAAQ,GAAIvE,YAAQiD,OAAOhC,EAAM1G,SAAW,GAAG0I,OAAO,GAAK0f,OAAQA,KAGlF,QAASob,GAAa/kC,EAAMiI,GAM1B,MALK87B,GAAc97B,EAAO,QACpBq7B,EAAOtjC,IAAUiI,EAAM1G,SAAW,GAAKvB,EAAK6gB,aAAeyiB,EAAOtjC,EAAK6gB,eACzE5Y,EAAMhB,OAAO,MAGVgB,EAGT,QAAS+8B,GAAahlC,EAAMiI,GAC1B,GAAIq7B,EAAOtjC,IAAoC,MAA3BA,EAAKilC,qBAA+BlB,EAAc97B,EAAO,QAAS,CACpF,GAAIi9B,GAAallC,EAAKmlC,aAAeC,WAAW1B,EAAa1jC,GAAM0vB,WAAa0V,WAAW1B,EAAa1jC,GAAMqlC,aAC1GrlC,GAAKilC,mBAAmBK,UAAYtlC,EAAKslC,UAAuB,IAAXJ,GACvDj9B,EAAMhB,OAAO,MAGjB,MAAOgB,GAGT,QAASs9B,GAAYvlC,EAAMiI,GACzB,GAAIhD,MACAiY,EAAQld,EAAKkd,SAcjB,OAbIA,GAAMsoB,WAA8C,WAAjC9B,EAAa1jC,GAAMwlC,YACxCvgC,EAAQwgC,QAAS,GAEfvoB,EAAMwoB,aAAehC,EAAa1jC,GAAM0lC,WAAW9wB,WAAW,SACzCqT,SAASyb,EAAa1jC,GAAM0lC,aAAe,OAClEzgC,EAAQ0gC,MAAO,GAEbhpC,OAAOoN,KAAK9E,GAAS1D,OAAS,IAChC0G,EAAQw7B,EAAYx7B,EAAOhD,IAEzBmgC,WAAWloB,EAAM0oB,YAAc,GAAK,IACtC39B,GAAQ,GAAIjB,YAAQC,OAAO,MAAMkF,OAAOlE,IAEnCA,EAGT,QAAS49B,GAAU7lC,EAAMiI,GACvB,GAAIO,GAAOxI,EAAKimB,IAEhB,IAAgC,QAA5BjmB,EAAKI,WAAWc,QAClB,MAAO+G,GAAMhB,OAAOuB,EAAKgK,OAE3B,IAA2B,IAAvBhK,EAAKgK,OAAOjR,QAAgBvB,EAAKI,WAAWqS,UAAUoE,SAAS,gBACjE,MAAO5O,EAET,KAAKy7B,EAAa1jC,EAAKI,YAAY0lC,WAAWlxB,WAAW,OAAQ,CAE/D,GAAImxB,GAAW,SAASC,EAAUrmC,GAEhC,MADAA,GAAQA,EAAMyZ,QAAQ,aAAc,IAC7BzZ,EAAM4B,OAAS,GAAKykC,EAAW,IAAMrmC,EAE9C6I,GAAOA,EAAK4Q,QAAQ,QAAS,KAAKA,QAAQ,MAAO,KACjD5Q,EAAOA,EAAK4Q,QAAQ,SAAU2sB,EAASjtB,KAAKitB,GAAU,KACzB,MAAxB/lC,EAAK+4B,iBAA2BuK,EAAOtjC,EAAKI,aACpB,MAAxBJ,EAAK+4B,iBAA2BuK,EAAOtjC,EAAK+4B,oBAC/CvwB,EAAOA,EAAK4Q,QAAQ,OAAQ2sB,EAASjtB,KAAKitB,GAAU,MAE7B,MAApB/lC,EAAK6gB,aAAuByiB,EAAOtjC,EAAKI,aACpB,MAApBJ,EAAK6gB,aAAuByiB,EAAOtjC,EAAK6gB,gBAC3CrY,EAAOA,EAAK4Q,QAAQ,OAAQ2sB,EAASjtB,KAAKitB,GAAU,KAGxD,MAAO99B,GAAMhB,OAAOuB,G7DmkRtB7L,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqqC,UAAYrqC,EAAQwpC,aAAexpC,EAAQupC,aAAevpC,EAAQmpC,UAAYnpC,EAAQgpC,gBAAkBhpC,EAAQqD,YAAUwG,EAElI,IAAI0L,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAO5F,SAAwB,SAAU9H,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAX0N,SAAyB1N,EAAIZ,cAAgBsO,QAAU1N,IAAQ0N,OAAO5T,UAAY,eAAkBkG,IAElQ2N,EAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M6D76RhiB,O7Di7RIwhC,EAAW3hC,EAAuB2B,G6Dh7RtC,O7Do7RIE,EAAe7B,EAAuB8B,G6Dn7R1C,O7Du7RIC,EAAc/B,EAAuBgC,G6Dt7RzC,O7D07RIgkB,EAAUhmB,EAAuBimB,G6Dz7RrC,Q7D67RIrY,EAAW5N,EAAuB6N,G6D57RtC,O7Dg8RIL,EAAWxN,EAAuByN,G6D97RtC,QACA,QACA,Q7Do8RI0iB,EAASnwB,EAAuBowB,G6Dn8RpC,QACA,QACA,QACA,QAEI3lB,GAAQ,aAAO,mBAGbu1B,EAAU,eAEV4B,IACHpmC,KAAKC,UAAW8lC,IAChB/lC,KAAKC,UAAWglC,IAChB,KAAMH,IACN9kC,KAAK8jC,aAAcmB,IACnBjlC,KAAK8jC,aAAce,IACnB7kC,KAAK8jC,aAAcoB,IACnBllC,KAAK8jC,aAAcY,IACnB1kC,KAAK8jC,aAAc2B,IACnB,KAAMT,IACN,IAAKP,EAAWzrB,KAAKyrB,EAAY,UACjC,IAAKA,EAAWzrB,KAAKyrB,EAAY,YACjC,QAASM,IAGNJ,GACJzW,iBACAK,sBACAlmB,OAAO,SAAS8X,EAAM0M,GAEtB,MADA1M,GAAK0M,EAAK/qB,SAAW+qB,EACd1M,OAGHykB,GACJ5W,aACAG,kBACApG,aACAsG,iBACAI,YACAE,aACAtmB,OAAO,SAAS8X,EAAM0M,GAEtB,MADA1M,GAAK0M,EAAK/qB,SAAW+qB,EACd1M,OAIHoX,E,YACJ,WAAY7f,EAAO5T,GAAS,yEACpB4T,EAAO5T,GADa,OAE1B,GAAK4T,MAAMlc,KAAKuc,iBAAiB,QAAS,EAAKsuB,QAAQrtB,KAAb,IAC1C,EAAK9K,UAAY,EAAKwJ,MAAM5E,aAAa,gBACzC,EAAK5E,UAAU6E,aAAa,mBAAmB,GAC/C,EAAK7E,UAAU6E,aAAa,YAAa,GACzC,EAAKuzB,YACLF,EAAiB/5B,OAAO,EAAKvI,QAAQwiC,UAAUlkC,QAAQ,YAAyB,aAAvBmkC,EAAuB,KAAbjC,EAAa,MACzExgC,EAAQ0iC,aAAelC,IAAYY,IACxC,EAAKuB,WAAWF,EAAUjC,KATF,E7DmjS5B,MA1HAv/B,GAAUwyB,EAAWpM,GAuBrB3lB,EAAa+xB,IACX5zB,IAAK,aACLjG,MAAO,S6Dr8RE6oC,EAAUjC,GACnBvoC,KAAKuqC,SAASp8B,MAAMq8B,EAAUjC,O7Dw8R9B3gC,IAAK,UACLjG,MAAO,S6Dt8RD8U,GACN,GAAoB,gBAATA,GAET,MADAzW,MAAKmS,UAAUuE,UAAYD,EAAK8G,QAAQ,eAAgB,MACjDvd,KAAKkY,SAEd,IAAM9O,GAAUpJ,KAAK2b,MAAMpB,UAAUva,KAAK2b,MAAMtE,UAAU+R,WAAW5d,MACrE,IAAIpC,EAAQ2V,UAAUlZ,UAAW,CAC/B,GAAM8G,GAAO3M,KAAKmS,UAAUw4B,SAE5B,OADA3qC,MAAKmS,UAAUuE,UAAY,IACpB,GAAIvL,YAAQC,OAAOuB,EAAnB,KAA4BoS,UAAUlZ,SAAWuD,EAAQ2V,UAAUlZ,YAThE,MAW0B7F,KAAK4qC,kBAX/B,SAWPvC,EAXO,KAWUC,EAXV,KAYRl8B,EAAQg8B,EAASpoC,KAAKmS,UAAWk2B,EAAiBC,EAOtD,OALIJ,GAAc97B,EAAO,OAAuD,MAA9CA,EAAM4B,IAAI5B,EAAM4B,IAAItI,OAAS,GAAGf,aAChEyH,EAAQA,EAAMsD,SAAQ,GAAIvE,YAAQiD,OAAOhC,EAAM1G,SAAW,GAAGwJ,OAAO,KAEtEgE,EAAMmJ,IAAI,UAAWrc,KAAKmS,UAAUuE,UAAWtK,GAC/CpM,KAAKmS,UAAUuE,UAAY,GACpBtK,K7D88RPxE,IAAK,uBACLjG,MAAO,S6D58RY6J,EAAOiL,GAAkC,GAA5BhD,GAA4B,uDAAnBhB,UAAMoB,QAAQiB,GACvD,IAAqB,gBAAVtJ,GACTxL,KAAK2b,MAAMxD,YAAYnY,KAAKkY,QAAQ1M,GAAQiL,GAC5CzW,KAAK2b,MAAMtH,aAAa,EAAG5B,UAAMoB,QAAQS,YACpC,CACL,GAAIu2B,GAAQ7qC,KAAKkY,QAAQzB,EACzBzW,MAAK2b,MAAM0U,gBAAe,GAAIllB,YAAQiD,OAAO5C,GAAO8E,OAAOu6B,GAAQp3B,GACnEzT,KAAK2b,MAAMtH,aAAa7I,EAAQq/B,EAAMnlC,SAAU+M,UAAMoB,QAAQS,Y7Dk9RhE1M,IAAK,UACLjG,MAAO,S6D/8RD0c,GAAG,UACT,KAAIA,EAAEkR,kBAAqBvvB,KAAK2b,MAAMhI,YAAtC,CACA,GAAII,GAAQ/T,KAAK2b,MAAM3H,eACnB5H,GAAQ,GAAIjB,YAAQiD,OAAO2F,EAAMvI,OACjC8N,EAAYtZ,KAAK2b,MAAM1E,mBAAmBqC,SAC9CtZ,MAAKmS,UAAUoH,QACfvZ,KAAK2b,MAAMtE,UAAUW,OAAOvF,UAAMoB,QAAQS,QAC1CoO,WAAW,WACTtW,EAAQA,EAAMkE,OAAO,EAAK4H,WAAWhJ,OAAO6E,EAAMrO,QAClD,EAAKiW,MAAM0U,eAAejkB,EAAOqG,UAAMoB,QAAQC,MAE/C,EAAK6H,MAAMtH,aAAajI,EAAM1G,SAAWqO,EAAMrO,OAAQ+M,UAAMoB,QAAQS,QACrE,EAAKqH,MAAM1E,mBAAmBqC,UAAYA,EAC1C,EAAKqC,MAAMpC,SACV,O7Do9RH3R,IAAK,kBACLjG,MAAO,W6Dl9RS,WACZ0mC,KAAsBC,IAmB1B,OAlBAtoC,MAAKuqC,SAASlkC,QAAQ,SAACykC,GAAS,QACJA,EADI,GACzBN,EADyB,KACfjC,EADe,IAE9B,QAAQiC,GACN,IAAKvmC,MAAKC,UACRokC,EAAan6B,KAAKo6B,EAClB,MACF,KAAKtkC,MAAK8jC,aACRM,EAAgBl6B,KAAKo6B,EACrB,MACF,YACKliC,QAAQ9F,KAAK,EAAK4R,UAAU8J,iBAAiBuuB,GAAW,SAACrmC,GAE1DA,EAAKskC,GAAWtkC,EAAKskC,OACrBtkC,EAAKskC,GAASt6B,KAAKo6B,SAKnBF,EAAiBC,O7D49RpB9M,G6DpjSe9f,UA2FxB8f,GAAU9oB,UACR63B,YACAE,aAAa,G7DyqSf9qC,E6Dz9RsBqD,QAAbw4B,E7D09RT77B,E6D19R+BgpC,kB7D29R/BhpC,E6D39RgDmpC,Y7D49RhDnpC,E6D59R2DupC,e7D69R3DvpC,E6D79RyEwpC,e7D89RzExpC,E6D99RuFqqC,a7Dk+RjF,SAAUpqC,EAAQD,EAASM,GAEjC,YAsBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G8DzwSje,QAAS6hC,GAAsB3+B,GAC7B,GAAIiC,GAASjC,EAAM4B,IAAI5B,EAAM4B,IAAItI,OAAS,EAC1C,OAAc,OAAV2I,IACiB,MAAjBA,EAAOjD,OACuB,gBAAlBiD,GAAOjD,QAAuBiD,EAAOjD,OAAOO,SAAS,MAE5C,MAArB0C,EAAO1J,YACF7D,OAAOoN,KAAKG,EAAO1J,YAAYuf,KAAK,SAAS4M,GAClD,MAAuD,OAAhDruB,UAAUI,MAAMiuB,EAAMruB,UAAUC,MAAMmC,UAMnD,QAASmmC,GAAmB5+B,GAC1B,GAAI6+B,GAAe7+B,EAAME,OAAO,SAAS5G,EAAQkI,GAE/C,MADAlI,IAAWkI,EAAGsB,QAAU,GAEvB,GACCg8B,EAAc9+B,EAAM1G,SAAWulC,CAInC,OAHIF,GAAsB3+B,KACxB8+B,GAAe,GAEVA,E9DytSTpqC,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqrC,mBAAqBrrC,EAAQqD,YAAUwG,EAE/C,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M8Dj1ShiB,O9Dq1SI4B,EAAc/B,EAAuBgC,G8Dp1SzC,O9Dw1SIgkB,EAAUhmB,EAAuBimB,G8Dv1SrC,O9D21SIzY,EAAWxN,EAAuByN,G8Dx1ShCulB,E,YACJ,WAAY9f,EAAO5T,GAAS,yEACpB4T,EAAO5T,GADa,OAE1B,GAAKojC,aAAe,EACpB,EAAKC,cAAe,EACpB,EAAKhzB,QACL,EAAKuD,MAAMlE,GAAGhF,UAAM+B,OAAOI,cAAe,SAACmH,EAAW3P,EAAO6H,EAAUR,GACjEsI,IAActJ,UAAM+B,OAAOC,aAAe,EAAK22B,eAC9C,EAAKrjC,QAAQsjC,UAAY53B,IAAWhB,UAAMoB,QAAQC,KAGrD,EAAK3C,UAAU/E,GAFf,EAAKk/B,OAAOl/B,EAAO6H,MAKvB,EAAK0H,MAAMrJ,SAASwc,YAAalnB,IAAK,IAAKsmB,UAAU,GAAQ,EAAKqd,KAAKtuB,KAAV,IAC7D,EAAKtB,MAAMrJ,SAASwc,YAAalnB,IAAK,IAAKsmB,UAAU,EAAM5B,UAAU,GAAQ,EAAKkf,KAAKvuB,KAAV,IACzE,OAAOgQ,KAAK0B,UAAUC,WACxB,EAAKjT,MAAMrJ,SAASwc,YAAalnB,IAAK,IAAKsmB,UAAU,GAAQ,EAAKsd,KAAKvuB,KAAV,IAhBrC,E9Di8S5B,MA/FAjU,GAAUyyB,EAASrM,GA0BnB3lB,EAAagyB,IACX7zB,IAAK,SACLjG,MAAO,S8D12SF8R,EAAQg4B,GACb,GAAkC,IAA9BzrC,KAAK0rC,MAAMj4B,GAAQ/N,OAAvB,CACA,GAAI0G,GAAQpM,KAAK0rC,MAAMj4B,GAAQhF,KAC/BzO,MAAK0rC,MAAMD,GAAMt9B,KAAK/B,GACtBpM,KAAKmrC,aAAe,EACpBnrC,KAAKorC,cAAe,EACpBprC,KAAK2b,MAAM0U,eAAejkB,EAAMqH,GAAShB,UAAMoB,QAAQC,MACvD9T,KAAKorC,cAAe,CACpB,IAAI5/B,GAAQw/B,EAAmB5+B,EAAMqH,GACrCzT,MAAK2b,MAAMtH,aAAa7I,O9D62SxB5D,IAAK,QACLjG,MAAO,W8D12SP3B,KAAK0rC,OAAUH,QAAUC,Y9D82SzB5jC,IAAK,SACLjG,MAAO,W8D32SP3B,KAAKmrC,aAAe,K9D+2SpBvjC,IAAK,SACLjG,MAAO,S8D72SFgqC,EAAa13B,GAClB,GAA+B,IAA3B03B,EAAY39B,IAAItI,OAApB,CACA1F,KAAK0rC,MAAMF,OACX,IAAII,GAAY5rC,KAAK2b,MAAMrB,cAAc5M,KAAKuG,GAC1C43B,EAAYptB,KAAKqtB,KACrB,IAAI9rC,KAAKmrC,aAAenrC,KAAK+H,QAAQgkC,MAAQF,GAAa7rC,KAAK0rC,MAAMH,KAAK7lC,OAAS,EAAG,CACpF,GAAI0G,GAAQpM,KAAK0rC,MAAMH,KAAK98B,KAC5Bm9B,GAAYA,EAAUl8B,QAAQtD,EAAMm/B,MACpCI,EAAcv/B,EAAMo/B,KAAK97B,QAAQi8B,OAEjC3rC,MAAKmrC,aAAeU,CAEtB7rC,MAAK0rC,MAAMH,KAAKp9B,MACdq9B,KAAMG,EACNJ,KAAMK,IAEJ5rC,KAAK0rC,MAAMH,KAAK7lC,OAAS1F,KAAK+H,QAAQikC,UACxChsC,KAAK0rC,MAAMH,KAAK3+B,Y9Di3SlBhF,IAAK,OACLjG,MAAO,W8D72SP3B,KAAKmU,OAAO,OAAQ,W9Di3SpBvM,IAAK,YACLjG,MAAO,S8D/2SCyK,GACRpM,KAAK0rC,MAAMH,KAAKllC,QAAQ,SAAS8N,GAC/BA,EAAOo3B,KAAOn/B,EAAM+E,UAAUgD,EAAOo3B,MAAM,GAC3Cp3B,EAAOq3B,KAAOp/B,EAAM+E,UAAUgD,EAAOq3B,MAAM,KAE7CxrC,KAAK0rC,MAAMF,KAAKnlC,QAAQ,SAAS8N,GAC/BA,EAAOo3B,KAAOn/B,EAAM+E,UAAUgD,EAAOo3B,MAAM,GAC3Cp3B,EAAOq3B,KAAOp/B,EAAM+E,UAAUgD,EAAOq3B,MAAM,Q9Dm3S7C5jC,IAAK,OACLjG,MAAO,W8D/2SP3B,KAAKmU,OAAO,OAAQ,Y9Do3SfsnB,G8Dl8Sa/f,UAiFtB+f,GAAQ/oB,UACNq5B,MAAO,IACPC,SAAU,IACVX,UAAU,G9Di5SZ1rC,E8Dn3SoBqD,QAAXy4B,E9Do3ST97B,E8Dp3S6BqrC,sB9Dw3SvB,SAAUprC,EAAQD,EAASM,GAEjC,YAkBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAnBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQssC,gBAAcziC,EAEtB,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I+D3/S5d,O/D+/SIQ,EAEJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAF9CgD,G+D7/SnCyhC,E,Y/D0gTJ,QAASA,KAGP,MAFAxjC,GAAgB1I,KAAMksC,GAEfpjC,EAA2B9I,MAAOksC,EAAgBxlC,WAAa5F,OAAOqJ,eAAe+hC,IAAkBlhC,MAAMhL,KAAMyF,YA6B5H,MAlCAuD,GAAUkjC,EAAiB/f,GAQ3B1iB,EAAayiC,IACXtkC,IAAK,MACLjG,MAAO,S+DjhTLwC,EAAMxC,GACR,GAAc,OAAVA,GAA4B,OAAVA,EAAgB,CACpC,GAAImsB,GAAS9tB,KAAK2B,MAAMwC,IAAS,CACjCxC,GAAmB,OAAVA,EAAkBmsB,EAAS,EAAMA,EAAS,EAErD,MAAc,KAAVnsB,GACF3B,KAAKmN,OAAOhJ,IACL,GAEP,kFAAiBA,EAAMxC,M/DqhTzBiG,IAAK,SACLjG,MAAO,S+DlhTFwC,EAAMxC,GACX,MAAO,sFAAawC,EAAMxC,IAAnB,qFAA0CwC,EAAMioB,SAASzqB,O/DqhThEiG,IAAK,QACLjG,MAAO,S+DnhTHwC,GACJ,MAAOioB,UAASA,EAATA,kFAAqBjoB,SAAUqF,O/DuhTjC0iC,G+D1iTqBzpC,UAAUe,WAAWE,OAuB/CuoC,EAAc,GAAIC,GAAgB,SAAU,aAC9C1nC,MAAO/B,UAAUC,MAAMmC,MACvBsS,WAAY,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,I/DyhTnCxX,G+DthTSssC,e/D0hTH,SAAUrsC,EAAQD,EAASM,GAEjC,YAaA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAdjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GgE9jTT,YhEmkTIid,EAEJ,SAAgCnX,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFlDoX,GgEhkT/B8a,E,YhE6kTJ,QAASA,KAGP,MAFAjxB,GAAgB1I,KAAM25B,GAEf7wB,EAA2B9I,MAAO25B,EAAWjzB,WAAa5F,OAAOqJ,eAAewvB,IAAa3uB,MAAMhL,KAAMyF,YAGlH,MARAuD,GAAU2wB,EAAY3a,GAQf2a,GgEnlTgBt2B,UACzBs2B,GAAW9zB,SAAW,aACtB8zB,EAAWt0B,QAAU,ahEulTrB1F,EAAQqD,QgEplTO22B,GhEwlTT,SAAU/5B,EAAQD,EAASM,GAEjC,YAeA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAhBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MiEzmThiB,OjE6mTIgW,EAEJ,SAAgCnX,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFlDoX,GiE1mT/B+a,E,YjEunTJ,QAASA,KAGP,MAFAlxB,GAAgB1I,KAAM45B,GAEf9wB,EAA2B9I,MAAO45B,EAAOlzB,WAAa5F,OAAOqJ,eAAeyvB,IAAS5uB,MAAMhL,KAAMyF,YAU1G,MAfAuD,GAAU4wB,EAAQ5a,GAQlBvV,EAAamwB,EAAQ,OACnBhyB,IAAK,UACLjG,MAAO,SiE9nTMuJ,GACb,MAAOlL,MAAKqF,QAAQ6L,QAAQhG,EAAQ7F,SAAW,MjEkoT1Cu0B,GiEpoTYv2B,UAKrBu2B,GAAO/zB,SAAW,SAClB+zB,EAAOv0B,SAAW,KAAM,KAAM,KAAM,KAAM,KAAM,MjEooThD1F,EAAQqD,QiEjoTO42B,GjEqoTT,SAAUh6B,EAAQD,EAASM,GAEjC,YAwBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GA7BjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQ06B,aAAW7wB,EAErC,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IkE7pT5d,OlEiqTIQ,EAAc/B,EAAuBgC,GkEhqTzC,OlEoqTImU,EAAUnW,EAAuBoW,GkEnqTrC,QlEuqTI+b,EAAcnyB,EAAuBoyB,GkEpqTnCR,E,YlEmrTJ,QAASA,KAGP,MAFA3xB,GAAgB1I,KAAMq6B,GAEfvxB,EAA2B9I,MAAOq6B,EAAS3zB,WAAa5F,OAAOqJ,eAAekwB,IAAWrvB,MAAMhL,KAAMyF,YAwC9G,MA7CAuD,GAAUqxB,EAAUrb,GAQpBvV,EAAa4wB,IACXzyB,IAAK,SACLjG,MAAO,SkEtrTFhB,EAAMgB,GACPhB,IAASk5B,EAAKh0B,UAAalE,EAG7B,qFAAahB,EAAMgB,GAFnB3B,KAAKmlB,YAAY1iB,UAAUE,OAAO3C,KAAKsJ,QAAQ9E,WlE4rTjDoD,IAAK,SACLjG,MAAO,WkEtrTU,MAAb3B,KAAK6f,MAA6B,MAAb7f,KAAK8L,KAC5B9L,KAAKqJ,OAAO8D,SAEZ,yFlE2rTFvF,IAAK,cACLjG,MAAO,SkExrTGhB,EAAMgB,GAEhB,MADA3B,MAAKqJ,OAAOsI,QAAQ3R,KAAKsR,OAAOtR,KAAKqJ,QAASrJ,KAAK0F,UAC/C/E,IAASX,KAAKqJ,OAAOC,QAAQzD,UAC/B7F,KAAKqJ,OAAO8b,YAAYxkB,EAAMgB,GACvB3B,OAEPA,KAAKqJ,OAAO2W,SACZ,0FAAyBrf,EAAMgB,SlE4rTjCiG,IAAK,UACLjG,MAAO,SkExtTMuJ,GACb,MAAOA,GAAQ7F,UAAYrF,KAAKqF,YAAUmE,GAAnC,kEAA6D0B,OlE4tT/DmvB,GkE9tTch3B,UAgCvBg3B,GAASx0B,SAAW,YACpBw0B,EAASh1B,QAAU,IlEmsTnB,IkEhsTMw0B,G,YAsBJ,WAAY3uB,GAAS,yEACbA,IACAihC,EAAmB,SAAC9tB,GACxB,GAAIA,EAAEvW,OAAOvD,aAAe2G,EAA5B,CACA,GAAIO,GAAS,EAAKnC,QAAQF,QAAQ8B,GAC9B5G,EAAO7B,UAAUG,KAAKyb,EAAEvW,OACb,aAAX2D,EACFnH,EAAKmH,OAAO,OAAQ,aACD,cAAXA,GACRnH,EAAKmH,OAAO,OAAQ,YATL,OAanBP,GAAQ8Q,iBAAiB,aAAcmwB,GACvCjhC,EAAQ8Q,iBAAiB,YAAamwB,GAdnB,ElEywTrB,MA9FAnjC,GAAU6wB,EAAMuS,GAEhB3iC,EAAaowB,EAAM,OACjBjyB,IAAK,SACLjG,MAAO,SkEpsTKA,GACZ,GAAI0D,GAAoB,YAAV1D,EAAsB,KAAO,KACvCwC,EAAOA,EAAPA,+DAAoBkB,EAIxB,OAHc,YAAV1D,GAAiC,cAAVA,GACzBwC,EAAK6S,aAAa,eAA0B,YAAVrV,GAE7BwC,KlEusTPyD,IAAK,UACLjG,MAAO,SkErsTMuJ,GACb,MAAwB,OAApBA,EAAQ7F,QAAyB,UACb,OAApB6F,EAAQ7F,QACN6F,EAAQ+W,aAAa,gBACyB,SAAzC/W,EAAQjG,aAAa,gBAA6B,UAAY,YAE9D,aAJX,OlEquTFwE,EAAaowB,IACXjyB,IAAK,SACLjG,MAAO,SkE5sTFhB,EAAMgB,GACP3B,KAAK6M,SAASnH,OAAS,GACzB1F,KAAK6M,SAASC,KAAKrB,OAAO9K,EAAMgB,MlEgtTlCiG,IAAK,UACLjG,MAAO,WkE3sTP,YAAU3B,KAAKsJ,QAAQzD,SAAW7F,KAAKsJ,QAAQF,QAAQpJ,KAAKkL,alEgtT5DtD,IAAK,eACLjG,MAAO,SkE9sTI2C,EAAM0I,GACjB,GAAI1I,YAAgB+1B,GAClB,2FAAmB/1B,EAAM0I,OACpB,CACL,GAAIxB,GAAe,MAAPwB,EAAchN,KAAK0F,SAAWsH,EAAIsE,OAAOtR,MACjDwkB,EAAQxkB,KAAKkF,MAAMsG,EACvBgZ,GAAMnb,OAAOwC,aAAavH,EAAMkgB,OlEktTlC5c,IAAK,WACLjG,MAAO,SkE/sTAyL,GACP,uFAAeA,EACf,IAAItB,GAAO9L,KAAK8L,IACJ,OAARA,GAAgBA,EAAK+T,OAAS7f,MAC9B8L,EAAKxC,QAAQzD,WAAa7F,KAAKsJ,QAAQzD,UACvCiG,EAAKZ,QAAQ7F,UAAYrF,KAAKkL,QAAQ7F,SACtCyG,EAAKZ,QAAQjG,aAAa,kBAAoBjF,KAAKkL,QAAQjG,aAAa,kBAC1E6G,EAAK+F,aAAa7R,MAClB8L,EAAKqB,alEgtTPvF,IAAK,UACLjG,MAAO,SkE7sTDmG,GACN,GAAIA,EAAOwB,QAAQzD,WAAa7F,KAAKsJ,QAAQzD,SAAU,CACrD,GAAIwX,GAAO5a,UAAUE,OAAO3C,KAAKsJ,QAAQiE,aACzCzF,GAAO+J,aAAawL,GACpBrd,KAAK4f,YAAYvC,GAEnB,sFAAcvV,OlEitTT+xB,GkE/xTU92B,UAiFnB82B,GAAKh0B,SAAW,OAChBg0B,EAAKr1B,MAAQ/B,UAAUC,MAAMuJ,WAC7B4tB,EAAKx0B,SAAW,KAAM,MACtBw0B,EAAKtsB,aAAe,YACpBssB,EAAKrsB,iBAAmB6sB,GlEmtTxB16B,EkEhtTS06B,WlEitTT16B,EkEjtT2BqD,QAAR62B,GlEqtTb,SAAUj6B,EAAQD,EAASM,GAEjC,YAaA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAdjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GmE51TT,anEi2TIi2B,EAEJ,SAAgCnwB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFnDowB,GmE/1T9BkC,E,YnE42TJ,QAASA,KAGP,MAFArxB,GAAgB1I,KAAM+5B,GAEfjxB,EAA2B9I,MAAO+5B,EAAOrzB,WAAa5F,OAAOqJ,eAAe4vB,IAAS/uB,MAAMhL,KAAMyF,YAG1G,MARAuD,GAAU+wB,EAAQsS,GAQXtS,GmEl3TYjH,UACrBiH,GAAOl0B,SAAW,SAClBk0B,EAAO10B,SAAW,KAAM,KnEs3TxB1F,EAAQqD,QmEp3TO+2B,GnEw3TT,SAAUn6B,EAAQD,EAASM,GAEjC,YAiBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAlBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IoEz4T5d,OpE64TIY,EAEJ,SAAgCnD,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDoD,GoE34ThCmvB,E,YpEw5TJ,QAASA,KAGP,MAFAtxB,GAAgB1I,KAAMg6B,GAEflxB,EAA2B9I,MAAOg6B,EAAOtzB,WAAa5F,OAAOqJ,eAAe6vB,IAAShvB,MAAMhL,KAAMyF,YAuB1G,MA5BAuD,GAAUgxB,EAAQlb,GAQlBrV,EAAauwB,EAAQ,OACnBpyB,IAAK,SACLjG,MAAO,SoE/5TKA,GACZ,MAAc,UAAVA,EACK0R,SAAS4F,cAAc,OACX,QAAVtX,EACF0R,SAAS4F,cAAc,OAE9B,iEAAoBtX,MpEm6TtBiG,IAAK,UACLjG,MAAO,SoEh6TMuJ,GACb,MAAwB,QAApBA,EAAQ7F,QAA0B,MACd,QAApB6F,EAAQ7F,QAA0B,YAAtC,OpEq6TK20B,GoEl7TY12B,UAiBrB02B,GAAOn0B,SAAW,SAClBm0B,EAAO30B,SAAW,MAAO,OpEs6TzB1F,EAAQqD,QoEp6TOg3B,GpEw6TT,SAAUp6B,EAAQD,EAASM,GAEjC,YAaA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAdjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GqEp8TT,YrEy8TIiJ,EAEJ,SAAgCnD,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDoD,GqEv8ThCovB,E,YrEo9TJ,QAASA,KAGP,MAFAvxB,GAAgB1I,KAAMi6B,GAEfnxB,EAA2B9I,MAAOi6B,EAAOvzB,WAAa5F,OAAOqJ,eAAe8vB,IAASjvB,MAAMhL,KAAMyF,YAG1G,MARAuD,GAAUixB,EAAQnb,GAQXmb,GqE19TY32B,UACrB22B,GAAOp0B,SAAW,SAClBo0B,EAAO50B,QAAU,IrE89TjB1F,EAAQqD,QqE59TOi3B,GrEg+TT,SAAUr6B,EAAQD,EAASM,GAEjC,YAaA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAdjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GsE5+TT,YtEi/TIiJ,EAEJ,SAAgCnD,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFjDoD,GsE/+ThCqvB,E,YtE4/TJ,QAASA,KAGP,MAFAxxB,GAAgB1I,KAAMk6B,GAEfpxB,EAA2B9I,MAAOk6B,EAAUxzB,WAAa5F,OAAOqJ,eAAe+vB,IAAYlvB,MAAMhL,KAAMyF,YAGhH,MARAuD,GAAUkxB,EAAWpb,GAQdob,GsElgUe52B,UACxB42B,GAAUr0B,SAAW,YACrBq0B,EAAU70B,QAAU,ItEsgUpB1F,EAAQqD,QsEpgUOk3B,GtEwgUT,SAAUt6B,EAAQD,EAASM,GAEjC,YAmBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GApBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IuEzhU5d,OvE6hUIQ,EAIJ,SAAgC/C,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAJ9CgD,GuE5hUzC,QAEM6hC,GACJ,MACA,SACA,SAIInS,E,YvEoiUJ,QAASA,KAGP,MAFAzxB,GAAgB1I,KAAMm6B,GAEfrxB,EAA2B9I,MAAOm6B,EAAMzzB,WAAa5F,OAAOqJ,eAAegwB,IAAQnvB,MAAMhL,KAAMyF,YAqDxG,MA1DAuD,GAAUmxB,EAAOlvB,GAQjBxB,EAAa0wB,IACXvyB,IAAK,SACLjG,MAAO,SuE9gUFhB,EAAMgB,GACP2qC,EAAWp7B,QAAQvQ,IAAS,EAC1BgB,EACF3B,KAAKkL,QAAQ8L,aAAarW,EAAMgB,GAEhC3B,KAAKkL,QAAQsS,gBAAgB7c,GAG/B,qFAAaA,EAAMgB,QvEkhUrBiG,IAAK,SACLjG,MAAO,SuExjUKA,GACZ,GAAIwC,GAAOA,EAAPA,+DAAoBxC,EAIxB,OAHqB,gBAAVA,IACTwC,EAAK6S,aAAa,MAAOhX,KAAKkgB,SAASve,IAElCwC,KvE2jUPyD,IAAK,UACLjG,MAAO,SuEzjUMuJ,GACb,MAAOohC,GAAWhgC,OAAO,SAASlD,EAASkC,GAIzC,MAHIJ,GAAQ+W,aAAa3W,KACvBlC,EAAQkC,GAAaJ,EAAQjG,aAAaqG,IAErClC,UvE6jUTxB,IAAK,QACLjG,MAAO,SuE1jUIwe,GACX,MAAO,qBAAqB8M,KAAK9M,IAAQ,yBAAyB8M,KAAK9M,MvE8jUvEvY,IAAK,WACLjG,MAAO,SuE5jUOwe,GACd,OAAO,IAAAD,UAASC,GAAM,OAAQ,QAAS,SAAWA,EAAM,UvE+jUxDvY,IAAK,QACLjG,MAAO,SuE7jUIuJ,GACX,MAAOA,GAAQjG,aAAa,WvEikUvBk1B,GuE5lUW13B,UAAUU,MA0C9Bg3B,GAAMt0B,SAAW,QACjBs0B,EAAM90B,QAAU,MvEujUhB1F,EAAQqD,QuEpjUOm3B,GvEwjUT,SAAUv6B,EAAQD,EAASM,GAEjC,YAmBA,SAASyI,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GApBjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAI8H,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IwE3nU5d,OACA,QxEgoUIguB,EAEJ,SAAgCvwB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,IAFnDwwB,GwE9nU9BqU,GACJ,SACA,SAIIlS,E,YxEuoUJ,QAASA,KAGP,MAFA1xB,GAAgB1I,KAAMo6B,GAEftxB,EAA2B9I,MAAOo6B,EAAM1zB,WAAa5F,OAAOqJ,eAAeiwB,IAAQpvB,MAAMhL,KAAMyF,YA+CxG,MApDAuD,GAAUoxB,EAAOmS,GAQjB9iC,EAAa2wB,IACXxyB,IAAK,SACLjG,MAAO,SwErnUFhB,EAAMgB,GACP2qC,EAAWp7B,QAAQvQ,IAAS,EAC1BgB,EACF3B,KAAKkL,QAAQ8L,aAAarW,EAAMgB,GAEhC3B,KAAKkL,QAAQsS,gBAAgB7c,GAG/B,qFAAaA,EAAMgB,QxEynUrBiG,IAAK,SACLjG,MAAO,SwE3pUKA,GACZ,GAAIwC,GAAOA,EAAPA,+DAAoBxC,EAIxB,OAHAwC,GAAK6S,aAAa,cAAe,KACjC7S,EAAK6S,aAAa,mBAAmB,GACrC7S,EAAK6S,aAAa,MAAOhX,KAAKkgB,SAASve,IAChCwC,KxE8pUPyD,IAAK,UACLjG,MAAO,SwE5pUMuJ,GACb,MAAOohC,GAAWhgC,OAAO,SAASlD,EAASkC,GAIzC,MAHIJ,GAAQ+W,aAAa3W,KACvBlC,EAAQkC,GAAaJ,EAAQjG,aAAaqG,IAErClC,UxEgqUTxB,IAAK,WACLjG,MAAO,SwE7pUOwe,GACd,MAAOK,WAAKN,SAASC,MxEgqUrBvY,IAAK,QACLjG,MAAO,SwE9pUIuJ,GACX,MAAOA,GAAQjG,aAAa,WxEkqUvBm1B,GwEzrUW7wB,aAsCpB6wB,GAAMv0B,SAAW,QACjBu0B,EAAMp0B,UAAY,WAClBo0B,EAAM/0B,QAAU,SxEwpUhB1F,EAAQqD,QwErpUOo3B,GxEypUT,SAAUx6B,EAAQD,EAASM,GAEjC,YAwBA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GA3BjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQ6sC,gBAAchjC,EAExC,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IyEztU5d,QzE6tUIgxB,EAAUvyB,EAAuBwyB,GyE5tUrC,OzEguUIxM,EAAUhmB,EAAuBimB,GyE/tUrC,OzEmuUIzY,EAAWxN,EAAuByN,GyEhuUhCs2B,E,YzE6uUJ,QAASA,KAGP,MAFA9jC,GAAgB1I,KAAMwsC,GAEf1jC,EAA2B9I,MAAOwsC,EAAY9lC,WAAa5F,OAAOqJ,eAAeqiC,IAAcxhC,MAAMhL,KAAMyF,YAuBpH,MA5BAuD,GAAUwjC,EAAaC,GAQvBhjC,EAAa+iC,EAAa,OACxB5kC,IAAK,SACLjG,MAAO,SyEpvUKA,GACZ,GAAIwC,GAAOA,EAAPA,+DAAoBxC,EAQxB,OAPqB,gBAAVA,KACTqmC,OAAO0E,MAAMC,OAAOhrC,EAAOwC,GACzByoC,cAAc,EACdC,WAAY,SAEd1oC,EAAK6S,aAAa,aAAcrV,IAE3BwC,KzEuvUPyD,IAAK,QACLjG,MAAO,SyErvUIuJ,GACX,MAAOA,GAAQjG,aAAa,kBzEyvUvBunC,GyEvwUiBrpC,UAiB1BqpC,GAAY3mC,SAAW,UACvB2mC,EAAYxmC,UAAY,aACxBwmC,EAAYnnC,QAAU,MzE2vUtB,IyExvUMi1B,G,YAKJ,aAAc,0EAEZ,IAAoB,MAAhB0N,OAAO0E,MACT,KAAM,IAAIzlC,OAAM,iCAHN,UzEwwUd,MApBA+B,GAAUsxB,EAASlL,GAEnB3lB,EAAa6wB,EAAS,OACpB1yB,IAAK,WACLjG,MAAO,WyE3vUP8Q,UAAM3P,SAAS0pC,GAAa,OzE2wUvBlS,GyE7wUa5e,UzEgxUtB/b,GyElwUS6sC,czEmwUT7sC,EyEnwUiCqD,QAAXs3B,GzEuwUhB,SAAU16B,EAAQD,EAASM,GAEjC,YA4BA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GA/BjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQmtC,UAAYntC,EAAQof,cAAYvV,EAE1D,IAAIC,GAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,MAE5hBmB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,I0E5zU5d,O1Eg0UIQ,EAAc/B,EAAuBgC,G0E/zUzC,O1Em0UIgkB,EAAUhmB,EAAuBimB,G0El0UrC,O1Es0UIzY,EAAWxN,EAAuByN,G0Er0UtC,Q1Ey0UI0iB,EAASnwB,EAAuBowB,G0Et0U9BkU,E,Y1Em1UJ,QAASA,KAGP,MAFArkC,GAAgB1I,KAAM+sC,GAEfjkC,EAA2B9I,MAAO+sC,EAAgBrmC,WAAa5F,OAAOqJ,eAAe4iC,IAAkB/hC,MAAMhL,KAAMyF,YAyB5H,MA9BAuD,GAAU+jC,EAAiBC,GAQ3BvjC,EAAasjC,IACXnlC,IAAK,cACLjG,MAAO,S0E11UGiK,GACV5L,KAAKkL,QAAQ+T,YAAcjf,KAAKkL,QAAQ+T,YACxCjf,KAAKqjB,SACL,0FAAkBzX,M1E61UlBhE,IAAK,YACLjG,MAAO,S0E31UCsrC,GACR,GAAItgC,GAAO3M,KAAKkL,QAAQ+T,WACpBjf,MAAKktC,aAAevgC,KAClBA,EAAKgK,OAAOjR,OAAS,GAAwB,MAAnB1F,KAAKktC,cACjCltC,KAAKkL,QAAQwL,UAAYu2B,EAAUtgC,GACnC3M,KAAKkL,QAAQijB,YACbnuB,KAAKqjB,UAEPrjB,KAAKktC,WAAavgC,O1Eg2UfogC,G0E/2UqBhuB,UAmB9BguB,GAAgB/mC,UAAY,WAG5B,IAAI8mC,GAAY,GAAIrqC,WAAUe,WAAWE,MAAM,QAAS,QACtDc,MAAO/B,UAAUC,MAAMoC,SAInBy1B,E,YAMJ,WAAY5e,EAAO5T,GAAS,yEACpB4T,EAAO5T,GACb,IAAsC,kBAA3B,GAAKA,QAAQklC,UACtB,KAAM,IAAIhmC,OAAM,4FAElB,IAAIkmC,GAAQ,IALc,OAM1B,GAAKxxB,MAAMlE,GAAGhF,UAAM+B,OAAOkI,gBAAiB,WAC1C0wB,aAAaD,GACbA,EAAQzqB,WAAW,WACjB,EAAKuqB,YACLE,EAAQ,MACP,EAAKplC,QAAQslC,YAElB,EAAKJ,YAbqB,E1Ew4U5B,MAhDAjkC,GAAUuxB,EAAQnL,GAElB3lB,EAAa8wB,EAAQ,OACnB3yB,IAAK,WACLjG,MAAO,W0Eh2UP8Q,UAAM3P,SAASgqC,GAAW,GAC1Br6B,UAAM3P,SAASiqC,GAAiB,O1Ey3UlCtjC,EAAa8wB,IACX3yB,IAAK,YACLjG,MAAO,W0Ex2UG,UACV,KAAI3B,KAAK2b,MAAMtE,UAAU4R,UAAzB,CACAjpB,KAAK2b,MAAM3D,OAAOvF,UAAMoB,QAAQC,KAChC,IAAIC,GAAQ/T,KAAK2b,MAAM3H,cACvBhU,MAAK2b,MAAMzE,OAAO7K,YAAY0gC,GAAiB1mC,QAAQ,SAACinC,GACtDA,EAAKL,UAAU,EAAKllC,QAAQklC,aAE9BjtC,KAAK2b,MAAM3D,OAAOvF,UAAMoB,QAAQS,QACnB,MAATP,GACF/T,KAAK2b,MAAMtH,aAAaN,EAAOtB,UAAMoB,QAAQS,a1E+2U1CimB,G0E94UY7e,UAmCrB6e,GAAO7nB,UACLu6B,UAAY,WACV,MAAmB,OAAfjF,OAAOuF,KAAqB,KACzB,SAAS5gC,GAEd,MADaq7B,QAAOuF,KAAKC,cAAc7gC,GACzBhL,UAGlB0rC,SAAU,K1Ei3UZ1tC,E0E72U4Bof,UAAnBguB,E1E82UTptC,E0E92UuCmtC,Y1E+2UvCntC,E0E/2U4DqD,QAAVu3B,G1Em3U5C,SAAU36B,EAAQD,EAASM,GAEjC,YAgCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASwK,GAAgBxK,EAAKG,EAAKjG,GAAiK,MAApJiG,KAAOH,GAAO3G,OAAOC,eAAe0G,EAAKG,GAAOjG,MAAOA,EAAOV,YAAY,EAAMD,cAAc,EAAMiH,UAAU,IAAkBR,EAAIG,GAAOjG,EAAgB8F,EAE3M,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,G2Et1Uje,QAASukC,GAAUt7B,EAAW1G,EAAQ9J,GACpC,GAAIkC,GAAQwP,SAAS4F,cAAc,SACnCpV,GAAMmT,aAAa,OAAQ,UAC3BnT,EAAM+S,UAAUC,IAAI,MAAQpL,GACf,MAAT9J,IACFkC,EAAMlC,MAAQA,GAEhBwQ,EAAUyN,YAAY/b,GAGxB,QAAS6pC,GAAYv7B,EAAWw7B,GACzB1nC,MAAMC,QAAQynC,EAAO,MACxBA,GAAUA,IAEZA,EAAOtnC,QAAQ,SAASunC,GACtB,GAAIC,GAAQx6B,SAAS4F,cAAc,OACnC40B,GAAMj3B,UAAUC,IAAI,cACpB+2B,EAASvnC,QAAQ,SAASynC,GACxB,GAAuB,gBAAZA,GACTL,EAAUI,EAAOC,OACZ,CACL,GAAIriC,GAAS3K,OAAOoN,KAAK4/B,GAAS,GAC9BnsC,EAAQmsC,EAAQriC,EAChBxF,OAAMC,QAAQvE,GAChBosC,EAAUF,EAAOpiC,EAAQ9J,GAEzB8rC,EAAUI,EAAOpiC,EAAQ9J,MAI/BwQ,EAAUyN,YAAYiuB,KAI1B,QAASE,GAAU57B,EAAW1G,EAAQJ,GACpC,GAAIxH,GAAQwP,SAAS4F,cAAc,SACnCpV,GAAM+S,UAAUC,IAAI,MAAQpL,GAC5BJ,EAAOhF,QAAQ,SAAS1E,GACtB,GAAIogB,GAAS1O,SAAS4F,cAAc,WACtB,IAAVtX,EACFogB,EAAO/K,aAAa,QAASrV,GAE7BogB,EAAO/K,aAAa,WAAY,YAElCnT,EAAM+b,YAAYmC,KAEpB5P,EAAUyN,YAAY/b,G3EmwUxB/C,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQ+tC,YAAc/tC,EAAQqD,YAAUwG,EAExC,IAAI4L,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBY,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M2E/8UhiB,O3Em9UI0B,EAAe7B,EAAuB8B,G2El9U1C,O3Es9UIC,EAAc/B,EAAuBgC,G2Er9UzC,O3Ey9UIgkB,EAAUhmB,EAAuBimB,G2Ex9UrC,Q3E49UIrY,EAAW5N,EAAuB6N,G2E39UtC,O3E+9UIL,EAAWxN,EAAuByN,G2E79UlChD,GAAQ,aAAO,iBAGbsnB,E,YACJ,WAAY7e,EAAO5T,GAAS,yEACpB4T,EAAO5T,GACb,IAAI9B,MAAMC,QAAQ,EAAK6B,QAAQoK,WAAY,CACzC,GAAIA,GAAYkB,SAAS4F,cAAc,MACvCy0B,GAAYv7B,EAAW,EAAKpK,QAAQoK,WACpCwJ,EAAMxJ,UAAU5N,WAAWsH,aAAasG,EAAWwJ,EAAMxJ,WACzD,EAAKA,UAAYA,MAC0B,gBAA3B,GAAKpK,QAAQoK,UAC7B,EAAKA,UAAYkB,SAASC,cAAc,EAAKvL,QAAQoK,WAErD,EAAKA,UAAY,EAAKpK,QAAQoK,SAEhC,MAAM,EAAKA,oBAAqBpN,cAAc,MAC5C,UAAOmO,EAAMC,MAAM,iCAAkC,EAAKpL,SAA1D,OAbwB,MAe1B,GAAKoK,UAAUyE,UAAUC,IAAI,cAC7B,EAAK+2B,YACL,EAAK3X,YACLn1B,OAAOoN,KAAK,EAAKnG,QAAQkuB,UAAU5vB,QAAQ,SAACoF,GAC1C,EAAKuiC,WAAWviC,EAAQ,EAAK1D,QAAQkuB,SAASxqB,SAE7CpF,QAAQ9F,KAAK,EAAK4R,UAAU8J,iBAAiB,kBAAmB,SAACpY,GAClE,EAAKwf,OAAOxf,KAEd,EAAK8X,MAAMlE,GAAGhF,UAAM+B,OAAOI,cAAe,SAAC8C,EAAM3D,GAC3C2D,IAASjF,UAAM+B,OAAOmI,kBACxB,EAAK3E,OAAOjE,KAGhB,EAAK4H,MAAMlE,GAAGhF,UAAM+B,OAAOkI,gBAAiB,WAAM,MAChC,EAAKf,MAAMtE,UAAUqD,WADW,SAC3C3G,EAD2C,IAEhD,GAAKiE,OAAOjE,KA/BY,E3EsoV5B,MA9JA/K,GAAUwxB,EAASpL,GA+CnB3lB,EAAa+wB,IACX5yB,IAAK,aACLjG,MAAO,S2Et/UE8J,EAAQ8Q,GACjBvc,KAAKi2B,SAASxqB,GAAU8Q,K3Ey/UxB3U,IAAK,SACLjG,MAAO,S2Ev/UFkC,GAAO,WACR4H,KAAY7I,KAAKrC,KAAKsD,EAAM+S,UAAW,SAAC5Q,GAC1C,MAAoC,KAA7BA,EAAUkL,QAAQ,QAE3B,IAAKzF,EAAL,CAKA,GAJAA,EAASA,EAAOO,MAAM,MAAMtG,QACN,WAAlB7B,EAAMwB,SACRxB,EAAMmT,aAAa,OAAQ,UAEA,MAAzBhX,KAAKi2B,SAASxqB,GAAiB,CACjC,GAAmC,MAA/BzL,KAAK2b,MAAMzE,OAAOC,WAA4D,MAAvCnX,KAAK2b,MAAMzE,OAAOC,UAAU1L,GAErE,WADAyH,GAAM4F,KAAK,wCAAyCrN,EAAQ5H,EAG9D,IAA+B,MAA3BpB,UAAUI,MAAM4I,GAElB,WADAyH,GAAM4F,KAAK,2CAA4CrN,EAAQ5H,GAInE,GAAIkY,GAA8B,WAAlBlY,EAAMwB,QAAuB,SAAW,OACxDxB,GAAMmY,iBAAiBD,EAAW,SAACsC,GACjC,GAAI1c,SACJ,IAAsB,WAAlBkC,EAAMwB,QAAsB,CAC9B,GAAIxB,EAAM+e,cAAgB,EAAG,MAC7B,IAAIN,GAAWze,EAAMkE,QAAQlE,EAAM+e,cAEjCjhB,IADE2gB,EAASL,aAAa,cAGhBK,EAAS3gB,QAAS,OAI1BA,IADEkC,EAAM+S,UAAUoE,SAAS,eAGnBnX,EAAMlC,QAAUkC,EAAMoe,aAAa,UAE7C5D,EAAEyD,gBAEJ,GAAKnG,MAAMpC,OAlB4B,OAmBvB,EAAKoC,MAAMtE,UAAUqD,WAnBE,SAmBlC3G,EAnBkC,IAoBvC,IAA6B,MAAzB,EAAKkiB,SAASxqB,GAChB,EAAKwqB,SAASxqB,GAAQlL,KAAK,EAAMoB,OAC5B,IAAIc,UAAUI,MAAM4I,GAAQlK,oBAAqBkB,WAAUU,MAAO,CAEvE,KADAxB,EAAQssC,OAAOA,SAASxiC,IACZ,MACZ,GAAKkQ,MAAM0U,gBAAe,GAAIllB,YAC3BiD,OAAO2F,EAAMvI,OACb0D,OAAO6E,EAAMrO,QACb0F,OAHuB,KAGbK,EAAS9J,IACpB8Q,UAAMoB,QAAQC,UAEhB,GAAK6H,MAAMlQ,OAAOA,EAAQ9J,EAAO8Q,UAAMoB,QAAQC,KAEjD,GAAKkE,OAAOjE,KAGd/T,KAAK4tC,SAASz/B,MAAM1C,EAAQ5H,Q3E4/U5B+D,IAAK,SACLjG,MAAO,S2E1/UFoS,GACL,GAAI3K,GAAmB,MAAT2K,KAAqB/T,KAAK2b,MAAMpB,UAAUxG,EACxD/T,MAAK4tC,SAASvnC,QAAQ,SAASykC,GAAM,QACbA,EADa,GAC9Br/B,EAD8B,KACtB5H,EADsB,IAEnC,IAAsB,WAAlBA,EAAMwB,QAAsB,CAC9B,GAAI0c,SACJ,IAAa,MAAThO,EACFgO,EAAS,SACJ,IAAuB,MAAnB3Y,EAAQqC,GACjBsW,EAASle,EAAMyP,cAAc,wBACxB,KAAKrN,MAAMC,QAAQkD,EAAQqC,IAAU,CAC1C,GAAI9J,GAAQyH,EAAQqC,EACC,iBAAV9J,KACTA,EAAQA,EAAM4b,QAAQ,MAAO,QAE/BwE,EAASle,EAAMyP,cAAN,iBAAqC3R,EAArC,MAEG,MAAVogB,GACFle,EAAMlC,MAAQ,GACdkC,EAAM+e,eAAiB,GAEvBb,EAAOO,UAAW,MAGpB,IAAa,MAATvO,EACFlQ,EAAM+S,UAAUzJ,OAAO,iBAClB,IAAItJ,EAAMoe,aAAa,SAAU,CAGtC,GAAIgB,GAAW7Z,EAAQqC,KAAY5H,EAAMoB,aAAa,UACnB,MAAnBmE,EAAQqC,IAAmBrC,EAAQqC,GAAQrE,aAAevD,EAAMoB,aAAa,UAC1D,MAAnBmE,EAAQqC,KAAoB5H,EAAMoB,aAAa,QAC/DpB,GAAM+S,UAAUe,OAAO,YAAasL,OAEpCpf,GAAM+S,UAAUe,OAAO,YAAgC,MAAnBvO,EAAQqC,U3EkgV7C+uB,G2EvoVa9e,UA2ItB8e,GAAQ9nB,YAoDR8nB,EAAQ9nB,UACNP,UAAW,KACX8jB,UACEiY,MAAO,WAAW,WACZn6B,EAAQ/T,KAAK2b,MAAM3H,cACvB,IAAa,MAATD,EACJ,GAAoB,GAAhBA,EAAMrO,OAAa,CACrB,GAAI0D,GAAUpJ,KAAK2b,MAAMpB,WACzBzZ,QAAOoN,KAAK9E,GAAS/C,QAAQ,SAAC1F,GAEyB,MAAjD8B,UAAUI,MAAMlC,EAAM8B,UAAUC,MAAMoC,SACxC,EAAK6W,MAAMlQ,OAAO9K,GAAM,SAI5BX,MAAK2b,MAAMP,aAAarH,EAAOtB,UAAMoB,QAAQC,OAGjDq6B,UAAW,SAASxsC,GAClB,GAAIq0B,GAAQh2B,KAAK2b,MAAMpB,YAAX,KACE,SAAV5Y,GAA4B,MAATq0B,EACrBh2B,KAAK2b,MAAMlQ,OAAO,QAAS,QAASgH,UAAMoB,QAAQC,MACxCnS,GAAmB,UAAVq0B,GACnBh2B,KAAK2b,MAAMlQ,OAAO,SAAS,EAAOgH,UAAMoB,QAAQC,MAElD9T,KAAK2b,MAAMlQ,OAAO,YAAa9J,EAAO8Q,UAAMoB,QAAQC,OAEtDga,OAAQ,SAASnsB,GACf,GAAIoS,GAAQ/T,KAAK2b,MAAM3H,eACnB5K,EAAUpJ,KAAK2b,MAAMpB,UAAUxG,GAC/B+Z,EAAS1B,SAAShjB,EAAQ0kB,QAAU,EACxC,IAAc,OAAVnsB,GAA4B,OAAVA,EAAgB,CACpC,GAAI6R,GAAsB,OAAV7R,EAAkB,GAAK,CACb,SAAtByH,EAAQ+kC,YAAqB36B,IAAa,GAC9CxT,KAAK2b,MAAMlQ,OAAO,SAAUqiB,EAASta,EAAUf,UAAMoB,QAAQC,QAGjEs6B,KAAM,SAASzsC,IACC,IAAVA,IACFA,EAAQssC,OAAO,oBAEjBjuC,KAAK2b,MAAMlQ,OAAO,OAAQ9J,EAAO8Q,UAAMoB,QAAQC,OAEjDqc,KAAM,SAASxuB,GACb,GAAIoS,GAAQ/T,KAAK2b,MAAM3H,eACnB5K,EAAUpJ,KAAK2b,MAAMpB,UAAUxG,EACrB,WAAVpS,EACsB,YAApByH,EAAA,MAAqD,cAApBA,EAAA,KACnCpJ,KAAK2b,MAAMlQ,OAAO,QAAQ,EAAOgH,UAAMoB,QAAQC,MAE/C9T,KAAK2b,MAAMlQ,OAAO,OAAQ,YAAagH,UAAMoB,QAAQC,MAGvD9T,KAAK2b,MAAMlQ,OAAO,OAAQ9J,EAAO8Q,UAAMoB,QAAQC,S3EsgVvDnU,E2E//UoBqD,QAAXw3B,E3EggVT76B,E2EhgV6B+tC,e3EogVvB,SAAU9tC,EAAQD,G4ExwVxBC,EAAOD,QAAU,8L5E8wVX,SAAUC,EAAQD,G6E9wVxBC,EAAOD,QAAU,+L7EoxVX,SAAUC,EAAQD,G8EpxVxBC,EAAOD,QAAU,+L9E0xVX,SAAUC,EAAQD,G+E1xVxBC,EAAOD,QAAU,+L/EgyVX,SAAUC,EAAQD,GgFhyVxBC,EAAOD,QAAU,g7EhFsyVX,SAAUC,EAAQD,GiFtyVxBC,EAAOD,QAAU,sTjF4yVX,SAAUC,EAAQD,GkF5yVxBC,EAAOD,QAAU,iRlFkzVX,SAAUC,EAAQD,GmFlzVxBC,EAAOD,QAAU,sUnFwzVX,SAAUC,EAAQD,GoFxzVxBC,EAAOD,QAAU,oPpF8zVX,SAAUC,EAAQD,GqF9zVxBC,EAAOD,QAAU,mVrFo0VX,SAAUC,EAAQD,GsFp0VxBC,EAAOD,QAAU,kVtF00VX,SAAUC,EAAQD,GuF10VxBC,EAAOD,QAAU,qOvFg1VX,SAAUC,EAAQD,GwFh1VxBC,EAAOD,QAAU,mOxFs1VX,SAAUC,EAAQD,GyFt1VxBC,EAAOD,QAAU,0WzF41VX,SAAUC,EAAQD,G0F51VxBC,EAAOD,QAAU,6Y1Fk2VX,SAAUC,EAAQD,G2Fl2VxBC,EAAOD,QAAU,03C3Fw2VX,SAAUC,EAAQD,G4Fx2VxBC,EAAOD,QAAU,gkB5F82VX,SAAUC,EAAQD,G6F92VxBC,EAAOD,QAAU,goB7Fo3VX,SAAUC,EAAQD,G8Fp3VxBC,EAAOD,QAAU,gM9F03VX,SAAUC,EAAQD,G+F13VxBC,EAAOD,QAAU,0O/Fg4VX,SAAUC,EAAQD,GgGh4VxBC,EAAOD,QAAU,yQhGs4VX,SAAUC,EAAQD,GiGt4VxBC,EAAOD,QAAU,+PjG44VX,SAAUC,EAAQD,GkG54VxBC,EAAOD,QAAU,+ZlGk5VX,SAAUC,EAAQD,GmGl5VxBC,EAAOD,QAAU,osBnGw5VX,SAAUC,EAAQD,GoGx5VxBC,EAAOD,QAAU,uVpG85VX,SAAUC,EAAQD,GqG95VxBC,EAAOD,QAAU,6XrGo6VX,SAAUC,EAAQD,GsGp6VxBC,EAAOD,QAAU,wqBtG06VX,SAAUC,EAAQD,GuG16VxBC,EAAOD,QAAU,ijBvGg7VX,SAAUC,EAAQD,GwGh7VxBC,EAAOD,QAAU,6gBxGs7VX,SAAUC,EAAQD,GyGt7VxBC,EAAOD,QAAU,gMzG47VX,SAAUC,EAAQD,G0G57VxBC,EAAOD,QAAU,+qB1Gk8VX,SAAUC,EAAQD,G2Gl8VxBC,EAAOD,QAAU,oK3Gw8VX,SAAUC,EAAQD,EAASM,GAEjC,YA8BA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAjCjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,IAEThC,EAAQqD,QAAUrD,EAAQ0uC,kBAAgB7kC,EAE1C,IAAIO,GAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IAExdP,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M4Gp9VhiB,O5Gw9VIwB,EAAW3B,EAAuB4B,G4Gv9VtC,O5G29VIkqB,EAAY9rB,EAAuB+rB,G4G19VvC,Q5G89VI8Z,EAAS7lC,EAAuB8lC,G4G79VpC,QACA,Q5Gk+VInV,EAAU3wB,EAAuB4wB,G4G/9V/BmV,IACH,OAAQ,SAAU,UAChBle,OAAQ,IAAOA,OAAQ,GAAK,eAG3BmK,E,YACJ,WAAY9e,EAAO5T,GAAS,UACK,MAA3BA,EAAQzH,QAAQ8S,SAAwD,MAArCrL,EAAQzH,QAAQ8S,QAAQjB,YAC7DpK,EAAQzH,QAAQ8S,QAAQjB,UAAYq8B,EAFZ,gEAIpB7yB,EAAO5T,GAJa,OAK1B,GAAK4T,MAAMxJ,UAAUyE,UAAUC,IAAI,aALT,E5G+/V5B,MAzBA7N,GAAUyxB,EAAagU,GAevBhlC,EAAagxB,IACX7yB,IAAK,gBACLjG,MAAO,S4G/+VKyR,GACZpT,KAAKu1B,QAAU,GAAI8Y,GAAcruC,KAAK2b,MAAO3b,KAAK+H,QAAQ4R,QAC1D3Z,KAAKu1B,QAAQ91B,KAAKmgB,YAAYxM,EAAQjB,WACtCnS,KAAK0uC,gBAAgB1iC,MAAMzL,KAAK6S,EAAQjB,UAAU8J,iBAAiB,WAAYuX,WAC/ExzB,KAAK2uC,gBAAgB3iC,MAAMzL,KAAK6S,EAAQjB,UAAU8J,iBAAiB,WAAYuX,e5Gm/V1EiH,G4GhgWiBrF,UAgB1BqF,GAAY/nB,UAAW,cAAO,KAAU0iB,UAAU1iB,UAChDpS,SACE8S,SACE6iB,UACEmY,KAAM,SAASzsC,GACRA,EAGH3B,KAAK2b,MAAMnJ,MAAM+iB,QAAQY,OAFzBn2B,KAAK2b,MAAMlQ,OAAO,QAAQ,Q5G6/VtC,I4Gl/VM4iC,G,YACJ,WAAY1yB,EAAOhC,GAAQ,yEACnBgC,EAAOhC,GADY,OAEzB,GAAKgC,MAAMlE,GAAG7D,UAAQY,OAAOI,cAAe,SAAC8C,EAAM3D,EAAO+X,EAAUrY,GAClE,GAAIiE,IAAS9D,UAAQY,OAAOmI,iBAC5B,GAAa,MAAT5I,GAAiBA,EAAMrO,OAAS,GAAK+N,IAAWG,UAAQC,QAAQC,KAAM,CACxE,EAAK86B,OAEL,EAAKnvC,KAAK4hB,MAAMnH,KAAO,MACvB,EAAKza,KAAK4hB,MAAMjH,MAAQ,GACxB,EAAK3a,KAAK4hB,MAAMjH,MAAQ,EAAK3a,KAAKu0B,YAAc,IAChD,IAAItnB,GAAQ,EAAKiP,MAAM6R,SAASzZ,EAAMvI,MAAOuI,EAAMrO,OACnD,IAAqB,IAAjBgH,EAAMhH,OACR,EAAK6e,SAAS,EAAK5I,MAAM/B,UAAU7F,QAC9B,CACL,GAAI86B,GAAWniC,EAAMA,EAAMhH,OAAS,GAChC8F,EAAQ,EAAKmQ,MAAMqS,SAAS6gB,GAC5BnpC,EAAS8G,KAAKC,IAAIoiC,EAASnpC,SAAW,EAAGqO,EAAMvI,MAAQuI,EAAMrO,OAAS8F,GACtEmO,EAAS,EAAKgC,MAAM/B,UAAU,GAAI3E,SAAMzJ,EAAO9F,GACnD,GAAK6e,SAAS5K,QAEPtG,UAAS4X,gBAAkB,EAAKuK,SAAW,EAAK7Z,MAAMf,YAC/D,EAAKkZ,SArBgB,E5GsjW3B,MApEA9qB,GAAUqlC,EAAeS,GAgCzBrlC,EAAa4kC,IACXzmC,IAAK,SACLjG,MAAO,W4G1/VA,UACP,uFACA3B,KAAKP,KAAK6T,cAAc,aAAa0I,iBAAiB,QAAS,WAC7D,EAAKvc,KAAKmX,UAAUzJ,OAAO,gBAE7BnN,KAAK2b,MAAMlE,GAAG7D,UAAQY,OAAOkI,gBAAiB,WAE5CgG,WAAW,WACT,IAAI,EAAKjjB,KAAKmX,UAAUoE,SAAS,aAAjC,CACA,GAAIjH,GAAQ,EAAK4H,MAAM3H,cACV,OAATD,GACF,EAAKwQ,SAAS,EAAK5I,MAAM/B,UAAU7F,MAEpC,Q5GggWLnM,IAAK,SACLjG,MAAO,W4G5/VP3B,KAAK4uC,U5GggWLhnC,IAAK,WACLjG,MAAO,S4G9/VAoyB,GACP,GAAInnB,GAAQA,EAARA,qFAAuBmnB,GACvBgb,EAAQ/uC,KAAKP,KAAK6T,cAAc,oBAEpC,IADAy7B,EAAM1tB,MAAM2tB,WAAa,GACX,IAAVpiC,EAAa,MAAOA,EACxBmiC,GAAM1tB,MAAM2tB,YAAe,EAAEpiC,EAAQmiC,EAAM/a,YAAY,EAAK,S5GkgWvDqa,G4GvjWmB/Z,cAwD5B+Z,GAAcza,UACZ,yCACA,kCACE,mGACA,2BACF,UACAnjB,KAAK,I5G8/VP9Q,E4G3/VS0uC,gB5G4/VT1uC,E4G5/VuCqD,QAAfy3B,G5GggWlB,SAAU76B,EAAQD,EAASM,GAEjC,YAmCA,SAASwI,GAAuBhB,GAAO,MAAOA,IAAOA,EAAIrG,WAAaqG,GAAQzE,QAASyE,GAEvF,QAASiB,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASC,GAA2B/I,EAAMQ,GAAQ,IAAKR,EAAQ,KAAM,IAAIgJ,gBAAe,4DAAgE,QAAOxI,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BR,EAAPQ,EAElO,QAASyI,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIL,WAAU,iEAAoEK,GAAeD,GAAS1H,UAAYT,OAAO6B,OAAOuG,GAAcA,EAAW3H,WAAasF,aAAelF,MAAOsH,EAAUhI,YAAY,EAAOgH,UAAU,EAAMjH,cAAc,KAAekI,IAAYpI,OAAO2F,eAAiB3F,OAAO2F,eAAewC,EAAUC,GAAcD,EAASvC,UAAYwC,GAtCjepI,OAAOC,eAAepB,EAAS,cAC7BgC,OAAO,GAGT,IAAIyT,GAAiB,WAAc,QAASC,GAAc9N,EAAKnH,GAAK,GAAIkV,MAAeC,GAAK,EAAUC,GAAK,EAAWC,MAAKjM,EAAW,KAAM,IAAK,GAAiCkM,GAA7BlQ,EAAK+B,EAAI4N,OAAO5F,cAAmBgG,GAAMG,EAAKlQ,EAAGsG,QAAQ6J,QAAoBL,EAAKnH,KAAKuH,EAAG/T,QAAYvB,GAAKkV,EAAK5P,SAAWtF,GAA3DmV,GAAK,IAAoE,MAAOK,GAAOJ,GAAK,EAAMC,EAAKG,EAAO,QAAU,KAAWL,GAAM/P,EAAW,QAAGA,EAAW,SAAO,QAAU,GAAIgQ,EAAI,KAAMC,IAAQ,MAAOH,GAAQ,MAAO,UAAU/N,EAAKnH,GAAK,GAAI6F,MAAMC,QAAQqB,GAAQ,MAAOA,EAAY,IAAI4N,OAAO5F,WAAYzO,QAAOyG,GAAQ,MAAO8N,GAAc9N,EAAKnH,EAAa,MAAM,IAAIyI,WAAU,4DAEllBkB,EAAO,QAAS7I,GAAIG,EAAQC,EAAU0I,GAA2B,OAAX3I,IAAiBA,EAAS4I,SAAS1I,UAAW,IAAI2I,GAAOpJ,OAAOwG,yBAAyBjG,EAAQC,EAAW,QAAakI,KAATU,EAAoB,CAAE,GAAIb,GAASvI,OAAOqJ,eAAe9I,EAAS,OAAe,QAAXgI,MAAmB,GAAkCnI,EAAImI,EAAQ/H,EAAU0I,GAAoB,GAAI,SAAWE,GAAQ,MAAOA,GAAKvI,KAAgB,IAAIf,GAASsJ,EAAKhJ,GAAK,QAAesI,KAAX5I,EAA4C,MAAOA,GAAOL,KAAKyJ,IAExdP,EAAe,WAAc,QAASC,GAAiB5B,EAAQ6B,GAAS,IAAK,GAAIvJ,GAAI,EAAGA,EAAIuJ,EAAMjE,OAAQtF,IAAK,CAAE,GAAIwJ,GAAaD,EAAMvJ,EAAIwJ,GAAW3I,WAAa2I,EAAW3I,aAAc,EAAO2I,EAAW5I,cAAe,EAAU,SAAW4I,KAAYA,EAAW3B,UAAW,GAAMnH,OAAOC,eAAe+G,EAAQ8B,EAAWhC,IAAKgC,IAAiB,MAAO,UAAUhB,EAAaiB,EAAYC,GAAiJ,MAA9HD,IAAYH,EAAiBd,EAAYrH,UAAWsI,GAAiBC,GAAaJ,EAAiBd,EAAakB,GAAqBlB,M6G3nWhiB,O7G+nWIwB,EAAW3B,EAAuB4B,G6G9nWtC,O7GkoWIkqB,EAAY9rB,EAAuB+rB,G6GjoWvC,Q7GqoWI8Z,EAAS7lC,EAAuB8lC,G6GpoWpC,Q7GwoWIvW,EAASvvB,EAAuBwvB,G6GvoWpC,QACA,Q7G4oWImB,EAAU3wB,EAAuB4wB,G6GzoW/BmV,KACDle,QAAS,IAAK,IAAK,KAAK,MAC1B,OAAQ,SAAU,YAAa,UAC7BH,KAAM,YAAeA,KAAM,YAC7B,UAGGuK,E,YACJ,WAAY/e,EAAO5T,GAAS,UACK,MAA3BA,EAAQzH,QAAQ8S,SAAwD,MAArCrL,EAAQzH,QAAQ8S,QAAQjB,YAC7DpK,EAAQzH,QAAQ8S,QAAQjB,UAAYq8B,EAFZ,gEAIpB7yB,EAAO5T,GAJa,OAK1B,GAAK4T,MAAMxJ,UAAUyE,UAAUC,IAAI,WALT,E7G4qW5B,MA9BA7N,GAAU0xB,EAAW+T,GAerBhlC,EAAaixB,IACX9yB,IAAK,gBACLjG,MAAO,S6GvpWKyR,GACZA,EAAQjB,UAAUyE,UAAUC,IAAI,WAChC7W,KAAK0uC,gBAAgB1iC,MAAMzL,KAAK6S,EAAQjB,UAAU8J,iBAAiB,WAAYuX,WAC/ExzB,KAAK2uC,gBAAgB3iC,MAAMzL,KAAK6S,EAAQjB,UAAU8J,iBAAiB,WAAYuX,WAC/ExzB,KAAKu1B,QAAU,GAAI0Z,GAAYjvC,KAAK2b,MAAO3b,KAAK+H,QAAQ4R,QACpDvG,EAAQjB,UAAUmB,cAAc,aAClCtT,KAAK2b,MAAMrJ,SAASwc,YAAalnB,IAAK,IAAKsmB,UAAU,GAAQ,SAASna,EAAO3G,GAC3EgG,EAAQ6iB,SAAR,KAAyB11B,KAAK6S,GAAUhG,EAAQ3B,OAAO2iC,Y7G6pWtD1T,G6G7qWetF,UAqBxBsF,GAAUhoB,UAAW,cAAO,KAAU0iB,UAAU1iB,UAC9CpS,SACE8S,SACE6iB,UACEmY,KAAM,SAASzsC,GACb,GAAIA,EAAO,CACT,GAAIoS,GAAQ/T,KAAK2b,MAAM3H,cACvB,IAAa,MAATD,GAAiC,GAAhBA,EAAMrO,OAAa,MACxC,IAAIuxB,GAAUj3B,KAAK2b,MAAMhB,QAAQ5G,EAC7B,kBAAiBkZ,KAAKgK,IAA2C,IAA/BA,EAAQ/lB,QAAQ,aACpD+lB,EAAU,UAAYA,EAEVj3B,MAAK2b,MAAMnJ,MAAM+iB,QACvBY,KAAK,OAAQc,OAErBj3B,MAAK2b,MAAMlQ,OAAO,QAAQ,Q7GmqWtC,I6G1pWMwjC,G,YACJ,WAAYtzB,EAAOhC,GAAQ,yEACnBgC,EAAOhC,GADY,OAEzB,GAAKsd,QAAU,EAAKx3B,KAAK6T,cAAc,gBAFd,E7G4tW3B,MAlEAtK,GAAUimC,EAAaH,GAWvBrlC,EAAawlC,IACXrnC,IAAK,SACLjG,MAAO,W6GlqWA,UACP,uFACA3B,KAAKP,KAAK6T,cAAc,eAAe0I,iBAAiB,QAAS,SAACM,GAC5D,EAAK7c,KAAKmX,UAAUoE,SAAS,cAC/B,EAAK8b,OAEL,EAAKX,KAAK,OAAQ,EAAKc,QAAQhY,aAEjC3C,EAAMwF,mBAER9hB,KAAKP,KAAK6T,cAAc,eAAe0I,iBAAiB,QAAS,SAACM,GAChE,GAAsB,MAAlB,EAAK4a,UAAmB,CAC1B,GAAInjB,GAAQ,EAAKmjB,SACjB,GAAKC,eACL,EAAKxb,MAAMjC,WAAW3F,EAAO,QAAQ,EAAOH,UAAQC,QAAQC,YACrD,GAAKojB,UAEd5a,EAAMwF,iBACN,EAAKgS,SAEP9zB,KAAK2b,MAAMlE,GAAG7D,UAAQY,OAAOmI,iBAAkB,SAAC5I,EAAO+X,EAAUrY,GAC/D,GAAa,MAATM,EAAJ,CACA,GAAqB,IAAjBA,EAAMrO,QAAgB+N,IAAWG,UAAQC,QAAQC,KAAM,OACpC,EAAK6H,MAAMzE,OAAOiI,WAAW+vB,UAAUn7B,EAAMvI,OADT,SACpD4iC,EADoD,KAC9C98B,EAD8C,IAEzD,IAAY,MAAR88B,EAAc,CAChB,EAAKlX,UAAY,GAAIjiB,SAAMlB,EAAMvI,MAAQ8F,EAAQ88B,EAAK1oC,SACtD,IAAIuxB,GAAUiY,UAAS9lC,QAAQglC,EAAKljC,QAKpC,OAJA,GAAK+rB,QAAQhY,YAAcgY,EAC3B,EAAKA,QAAQjgB,aAAa,OAAQigB,GAClC,EAAK2X,WACL,GAAKrqB,SAAS,EAAK5I,MAAM/B,UAAU,EAAKsd,wBAInC,GAAKA,SAEd,GAAKpD,a7G4qWPlsB,IAAK,OACLjG,MAAO,W6GxqWP,oFACA3B,KAAKP,KAAK+d,gBAAgB,iB7G6qWrByxB,G6G7tWiB3a,cAmD1B2a,GAAYrb,UACV,0FACA,mGACA,4BACA,6BACAnjB,KAAK,I7G0qWP9Q,EAAQqD,Q6GvqWO03B,K7G0qWM","file":"quill.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 45);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap af25b46823d4aa280f97","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(48);\nvar inline_1 = __webpack_require__(49);\nvar block_1 = __webpack_require__(50);\nvar embed_1 = __webpack_require__(51);\nvar text_1 = __webpack_require__(52);\nvar attributor_1 = __webpack_require__(11);\nvar class_1 = __webpack_require__(29);\nvar style_1 = __webpack_require__(30);\nvar store_1 = __webpack_require__(28);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n Registro: Registry.Registro,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction Registro() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return Registro(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot Registro abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.Registro = Registro;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(14);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(54);\nvar equal = __webpack_require__(12);\nvar extend = __webpack_require__(2);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(53);\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(57);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(9);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(22);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(32);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was Registroed?');\n }\n return this.imports[name];\n }\n }, {\n key: 'Registro',\n value: function Registro(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // Registro(Blot | Attributor, overwrite)\n this.Registro('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.Registro(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.Registro(target);\n } else if (path.startsWith('modules') && typeof target.Registro === 'function') {\n target.Registro();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
        ' + html + '


        ');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you Registro it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you Registroed it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(58);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(55);\nvar isArguments = __webpack_require__(56);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(BuscarIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(BuscarIndex).indexOf('\\n');\n return offset > -1 ? BuscarIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, BuscarIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(25);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(106);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(47);\nvar shadow_1 = __webpack_require__(27);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(11);\nvar store_1 = __webpack_require__(28);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(27);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(12);\nvar extend = __webpack_require__(2);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(12);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(9);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(12);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(75),\n 'center': __webpack_require__(76),\n 'right': __webpack_require__(77),\n 'justify': __webpack_require__(78)\n },\n 'background': __webpack_require__(79),\n 'blockquote': __webpack_require__(80),\n 'bold': __webpack_require__(81),\n 'clean': __webpack_require__(82),\n 'code': __webpack_require__(40),\n 'code-block': __webpack_require__(40),\n 'color': __webpack_require__(83),\n 'direction': {\n '': __webpack_require__(84),\n 'rtl': __webpack_require__(85)\n },\n 'float': {\n 'center': __webpack_require__(86),\n 'full': __webpack_require__(87),\n 'left': __webpack_require__(88),\n 'right': __webpack_require__(89)\n },\n 'formula': __webpack_require__(90),\n 'header': {\n '1': __webpack_require__(91),\n '2': __webpack_require__(92)\n },\n 'italic': __webpack_require__(93),\n 'image': __webpack_require__(94),\n 'indent': {\n '+1': __webpack_require__(95),\n '-1': __webpack_require__(96)\n },\n 'link': __webpack_require__(97),\n 'list': {\n 'ordered': __webpack_require__(98),\n 'bullet': __webpack_require__(99),\n 'check': __webpack_require__(100)\n },\n 'script': {\n 'sub': __webpack_require__(101),\n 'super': __webpack_require__(102)\n },\n 'strike': __webpack_require__(103),\n 'underline': __webpack_require__(104),\n 'video': __webpack_require__(105)\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(11);\nvar class_1 = __webpack_require__(29);\nvar style_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(11);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(11);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(24);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(16);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(16);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(9);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(25);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(32);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(41);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(42);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(16);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(43);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(46);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(34);\n\nvar _direction = __webpack_require__(36);\n\nvar _indent = __webpack_require__(62);\n\nvar _blockquote = __webpack_require__(63);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(64);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(65);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(35);\n\nvar _color = __webpack_require__(24);\n\nvar _font = __webpack_require__(37);\n\nvar _size = __webpack_require__(38);\n\nvar _bold = __webpack_require__(39);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(66);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(15);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(67);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(68);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(69);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(70);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(71);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(72);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(73);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(74);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(26);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(16);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(41);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(42);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(43);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(107);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(108);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.Registro({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.Registro({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(14);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(23);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(31);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(33);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(59);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(8);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(60);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(61);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(25);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.Registro({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.Registro(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (BuscarString, position) {\n position = position || 0;\n return this.substr(position, BuscarString.length) === BuscarString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (BuscarString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= BuscarString.length;\n var lastIndex = subjectString.indexOf(BuscarString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary Buscar.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary Buscar.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(31);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(14);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(12);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has Registroed\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners Registroed for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners Registroed for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(9);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(14);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(23);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(2);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(34);\n\nvar _background = __webpack_require__(35);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(24);\n\nvar _direction = __webpack_require__(36);\n\nvar _font = __webpack_require__(37);\n\nvar _size = __webpack_require__(38);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(3);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(23);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(39);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(5);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(15);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(3);\n\nvar _link = __webpack_require__(15);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(33);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'Registro',\n value: function Registro() {\n _quill2.default.Registro(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'Registro',\n value: function Registro() {\n _quill2.default.Registro(CodeToken, true);\n _quill2.default.Registro(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(4);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(6);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(7);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(9);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(44);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(22);\n\nvar _icons = __webpack_require__(26);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
        ', '', '', '
        '].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(2);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(9);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(44);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(15);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(22);\n\nvar _icons = __webpack_require__(26);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// quill.min.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./blot/abstract/container\");\nvar format_1 = require(\"./blot/abstract/format\");\nvar leaf_1 = require(\"./blot/abstract/leaf\");\nvar scroll_1 = require(\"./blot/scroll\");\nvar inline_1 = require(\"./blot/inline\");\nvar block_1 = require(\"./blot/block\");\nvar embed_1 = require(\"./blot/embed\");\nvar text_1 = require(\"./blot/text\");\nvar attributor_1 = require(\"./attributor/attributor\");\nvar class_1 = require(\"./attributor/class\");\nvar style_1 = require(\"./attributor/style\");\nvar store_1 = require(\"./attributor/store\");\nvar Registry = require(\"./registry\");\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n Registro: Registry.Registro,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/parchment.ts\n// module id = 0\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction Registro() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return Registro(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot Registro abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.Registro = Registro;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/registry.ts\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/extend/index.js\n// module id = 2\n// module chunks = 0","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Break from './break';\nimport Inline from './inline';\nimport TextBlot from './text';\n\n\nconst NEWLINE_LENGTH = 1;\n\n\nclass BlockEmbed extends Parchment.Embed {\n attach() {\n super.attach();\n this.attributes = new Parchment.Attributor.Store(this.domNode);\n }\n\n delta() {\n return new Delta().insert(this.value(), extend(this.formats(), this.attributes.values()));\n }\n\n format(name, value) {\n let attribute = Parchment.query(name, Parchment.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n\n formatAt(index, length, name, value) {\n this.format(name, value);\n }\n\n insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n let block = Parchment.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n super.insertAt(index, value, def);\n }\n }\n}\nBlockEmbed.scope = Parchment.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nclass Block extends Parchment.Block {\n constructor(domNode) {\n super(domNode);\n this.cache = {};\n }\n\n delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(Parchment.Leaf).reduce((delta, leaf) => {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new Delta()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n\n deleteAt(index, length) {\n super.deleteAt(index, length);\n this.cache = {};\n }\n\n formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n\n insertAt(index, value, def) {\n if (def != null) return super.insertAt(index, value, def);\n if (value.length === 0) return;\n let lines = value.split('\\n');\n let text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n super.insertAt(Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n let block = this;\n lines.reduce(function(index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n\n insertBefore(blot, ref) {\n let head = this.children.head;\n super.insertBefore(blot, ref);\n if (head instanceof Break) {\n head.remove();\n }\n this.cache = {};\n }\n\n length() {\n if (this.cache.length == null) {\n this.cache.length = super.length() + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n\n moveChildren(target, ref) {\n super.moveChildren(target, ref);\n this.cache = {};\n }\n\n optimize(context) {\n super.optimize(context);\n this.cache = {};\n }\n\n path(index) {\n return super.path(index, true);\n }\n\n removeChild(child) {\n super.removeChild(child);\n this.cache = {};\n }\n\n split(index, force = false) {\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n let clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n let next = super.split(index, force);\n this.cache = {};\n return next;\n }\n }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [Inline, Parchment.Embed, TextBlot];\n\n\nfunction bubbleFormats(blot, formats = {}) {\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = extend(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\n\nexport { bubbleFormats, BlockEmbed, Block as default };\n\n\n\n// WEBPACK FOOTER //\n// ./blots/block.js","var diff = require('fast-diff');\nvar equal = require('deep-equal');\nvar extend = require('extend');\nvar op = require('./op');\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/quill-delta/lib/delta.js\n// module id = 4\n// module chunks = 0","import Text from './text';\nimport Parchment from 'parchment';\n\n\nclass Inline extends Parchment.Inline {\n static compare(self, other) {\n let selfIndex = Inline.order.indexOf(self);\n let otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n\n formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && Parchment.query(name, Parchment.Scope.BLOT)) {\n let blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n super.formatAt(index, length, name, value);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.parent instanceof Inline &&\n Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n let parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n}\nInline.allowedChildren = [Inline, Parchment.Embed, Text];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = [\n 'cursor', 'inline', // Must be lower\n 'underline', 'strike', 'italic', 'bold', 'script',\n 'link', 'code' // Must be higher\n];\n\n\nexport default Inline;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/inline.js","import './polyfill';\nimport Delta from 'quill-delta';\nimport Editor from './editor';\nimport Emitter from './emitter';\nimport Module from './module';\nimport Parchment from 'parchment';\nimport Selection, { Range } from './selection';\nimport extend from 'extend';\nimport logger from './logger';\nimport Theme from './theme';\n\nlet debug = logger('quill');\n\n\nclass Quill {\n static debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n logger.level(limit);\n }\n\n static find(node) {\n return node.__quill || Parchment.find(node);\n }\n\n static import(name) {\n if (this.imports[name] == null) {\n debug.error(`Cannot import ${name}. Are you sure it was Registroed?`);\n }\n return this.imports[name];\n }\n\n static Registro(path, target, overwrite = false) {\n if (typeof path !== 'string') {\n let name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // Registro(Blot | Attributor, overwrite)\n this.Registro('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach((key) => {\n this.Registro(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn(`Overwriting ${path} with`, target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) &&\n target.blotName !== 'abstract') {\n Parchment.Registro(target);\n } else if (path.startsWith('modules') && typeof target.Registro === 'function') {\n target.Registro();\n }\n }\n }\n\n constructor(container, options = {}) {\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n let html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new Emitter();\n this.scroll = Parchment.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new Editor(this.scroll);\n this.selection = new Selection(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(Emitter.events.EDITOR_CHANGE, (type) => {\n if (type === Emitter.events.TEXT_CHANGE) {\n this.root.classList.toggle('ql-blank', this.editor.isBlank());\n }\n });\n this.emitter.on(Emitter.events.SCROLL_UPDATE, (source, mutations) => {\n let range = this.selection.lastRange;\n let index = range && range.length === 0 ? range.index : undefined;\n modify.call(this, () => {\n return this.editor.update(null, mutations, index);\n }, source);\n });\n let contents = this.clipboard.convert(`
        ${html}


        `);\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n addContainer(container, refNode = null) {\n if (typeof container === 'string') {\n let className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n\n blur() {\n this.selection.setRange(null);\n }\n\n deleteText(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.deleteText(index, length);\n }, source, index, -1*length);\n }\n\n disable() {\n this.enable(false);\n }\n\n enable(enabled = true) {\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n\n focus() {\n let scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n\n format(name, value, source = Emitter.sources.API) {\n return modify.call(this, () => {\n let range = this.getSelection(true);\n let change = new Delta();\n if (range == null) {\n return change;\n } else if (Parchment.query(name, Parchment.Scope.BLOCK)) {\n change = this.editor.formatLine(range.index, range.length, { [name]: value });\n } else if (range.length === 0) {\n this.selection.format(name, value);\n return change;\n } else {\n change = this.editor.formatText(range.index, range.length, { [name]: value });\n }\n this.setSelection(range, Emitter.sources.SILENT);\n return change;\n }, source);\n }\n\n formatLine(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n\n formatText(index, length, name, value, source) {\n let formats;\n [index, length, formats, source] = overload(index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n\n getBounds(index, length = 0) {\n let bounds;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n let containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n\n getContents(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getContents(index, length);\n }\n\n getFormat(index = this.getSelection(true), length = 0) {\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n\n getIndex(blot) {\n return blot.offset(this.scroll);\n }\n\n getLength() {\n return this.scroll.length();\n }\n\n getLeaf(index) {\n return this.scroll.leaf(index);\n }\n\n getLine(index) {\n return this.scroll.line(index);\n }\n\n getLines(index = 0, length = Number.MAX_VALUE) {\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n\n getModule(name) {\n return this.theme.modules[name];\n }\n\n getSelection(focus = false) {\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n\n getText(index = 0, length = this.getLength() - index) {\n [index, length] = overload(index, length);\n return this.editor.getText(index, length);\n }\n\n hasFocus() {\n return this.selection.hasFocus();\n }\n\n insertEmbed(index, embed, value, source = Quill.sources.API) {\n return modify.call(this, () => {\n return this.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n\n insertText(index, text, name, value, source) {\n let formats;\n [index, , formats, source] = overload(index, 0, name, value, source);\n return modify.call(this, () => {\n return this.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n\n isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n\n off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n\n on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n\n once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n\n pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n\n removeFormat(index, length, source) {\n [index, length, , source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.removeFormat(index, length);\n }, source, index);\n }\n\n scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n\n setContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n let length = this.getLength();\n let deleted = this.editor.deleteText(0, length);\n let applied = this.editor.applyDelta(delta);\n let lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof(lastOp.insert) === 'string' && lastOp.insert[lastOp.insert.length-1] === '\\n') {\n this.editor.deleteText(this.getLength() - 1, 1);\n applied.delete(1);\n }\n let ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n\n setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n [index, length, , source] = overload(index, length, source);\n this.selection.setRange(new Range(index, length), source);\n if (source !== Emitter.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n\n setText(text, source = Emitter.sources.API) {\n let delta = new Delta().insert(text);\n return this.setContents(delta, source);\n }\n\n update(source = Emitter.sources.USER) {\n let change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n\n updateContents(delta, source = Emitter.sources.API) {\n return modify.call(this, () => {\n delta = new Delta(delta);\n return this.editor.applyDelta(delta, source);\n }, source, true);\n }\n}\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = Emitter.events;\nQuill.sources = Emitter.sources;\n// eslint-disable-next-line no-undef\nQuill.version = typeof(QUILL_VERSION) === 'undefined' ? 'dev' : QUILL_VERSION;\n\nQuill.imports = {\n 'delta' : Delta,\n 'parchment' : Parchment,\n 'core/module' : Module,\n 'core/theme' : Theme\n};\n\n\nfunction expandConfig(container, userConfig) {\n userConfig = extend(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = Theme;\n } else {\n userConfig.theme = Quill.import(`themes/${userConfig.theme}`);\n if (userConfig.theme == null) {\n throw new Error(`Invalid theme ${userConfig.theme}. Did you Registro it?`);\n }\n }\n let themeConfig = extend(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function(config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function(module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n let moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n let moduleConfig = moduleNames.reduce(function(config, name) {\n let moduleClass = Quill.import(`modules/${name}`);\n if (moduleClass == null) {\n debug.error(`Cannot load ${name} module. Are you sure you Registroed it?`);\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar &&\n userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = extend(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function(key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function(config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {\n return new Delta();\n }\n let range = index == null ? null : this.getSelection();\n let oldDelta = this.editor.delta;\n let change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, Emitter.sources.SILENT);\n }\n if (change.length() > 0) {\n let args = [Emitter.events.TEXT_CHANGE, change, oldDelta, source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n let formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if (typeof name === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || Emitter.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n let start, end;\n if (index instanceof Delta) {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n return index.transformPosition(pos, source !== Emitter.sources.USER);\n });\n } else {\n [start, end] = [range.index, range.index + range.length].map(function(pos) {\n if (pos < index || (pos === index && source === Emitter.sources.USER)) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n }\n return new Range(start, end - start);\n}\n\n\nexport { expandConfig, overload, Quill as default };\n\n\n\n// WEBPACK FOOTER //\n// ./core/quill.js","class Module {\n constructor(quill, options = {}) {\n this.quill = quill;\n this.options = options;\n }\n}\nModule.DEFAULTS = {};\n\n\nexport default Module;\n\n\n\n// WEBPACK FOOTER //\n// ./core/module.js","import Parchment from 'parchment';\n\nclass TextBlot extends Parchment.Text { }\n\nexport default TextBlot;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/text.js","import EventEmitter from 'eventemitter3';\nimport logger from './logger';\n\nlet debug = logger('quill:events');\n\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function(eventName) {\n document.addEventListener(eventName, (...args) => {\n [].slice.call(document.querySelectorAll('.ql-container')).forEach((node) => {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n node.__quill.emitter.handleDOM(...args);\n }\n });\n });\n});\n\n\nclass Emitter extends EventEmitter {\n constructor() {\n super();\n this.listeners = {};\n this.on('error', debug.error);\n }\n\n emit() {\n debug.log.apply(debug, arguments);\n super.emit.apply(this, arguments);\n }\n\n handleDOM(event, ...args) {\n (this.listeners[event.type] || []).forEach(function({ node, handler }) {\n if (event.target === node || node.contains(event.target)) {\n handler(event, ...args);\n }\n });\n }\n\n listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node, handler })\n }\n}\n\nEmitter.events = {\n EDITOR_CHANGE : 'editor-change',\n SCROLL_BEFORE_UPDATE : 'scroll-before-update',\n SCROLL_OPTIMIZE : 'scroll-optimize',\n SCROLL_UPDATE : 'scroll-update',\n SELECTION_CHANGE : 'selection-change',\n TEXT_CHANGE : 'text-change'\n};\nEmitter.sources = {\n API : 'api',\n SILENT : 'silent',\n USER : 'user'\n};\n\n\nexport default Emitter;\n\n\n\n// WEBPACK FOOTER //\n// ./core/emitter.js","let levels = ['error', 'warn', 'log', 'info'];\nlet level = 'warn';\n\nfunction debug(method, ...args) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n console[method](...args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function(logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function(newLevel) {\n level = newLevel;\n};\n\n\nexport default namespace;\n\n\n\n// WEBPACK FOOTER //\n// ./core/logger.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../registry\");\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/attributor.ts\n// module id = 11\n// module chunks = 0","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deep-equal/index.js\n// module id = 12\n// module chunks = 0","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Inline from '../blots/inline';\nimport TextBlot from '../blots/text';\n\n\nclass Code extends Inline {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\n\nclass CodeBlock extends Block {\n static create(value) {\n let domNode = super.create(value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n\n static formats() {\n return true;\n }\n\n delta() {\n let text = this.domNode.textContent;\n if (text.endsWith('\\n')) { // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce((delta, frag) => {\n return delta.insert(frag).insert('\\n', this.formats());\n }, new Delta());\n }\n\n format(name, value) {\n if (name === this.statics.blotName && value) return;\n let [text, ] = this.descendant(TextBlot, this.length() - 1);\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n super.format(name, value);\n }\n\n formatAt(index, length, name, value) {\n if (length === 0) return;\n if (Parchment.query(name, Parchment.Scope.BLOCK) == null ||\n (name === this.statics.blotName && value === this.statics.formats(this.domNode))) {\n return;\n }\n let nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n let prevNewline = this.newlineIndex(index, true) + 1;\n let isolateLength = nextNewline - prevNewline + 1;\n let blot = this.isolate(prevNewline, isolateLength);\n let next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n\n insertAt(index, value, def) {\n if (def != null) return;\n let [text, offset] = this.descendant(TextBlot, index);\n text.insertAt(offset, value);\n }\n\n length() {\n let length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n\n newlineIndex(BuscarIndex, reverse = false) {\n if (!reverse) {\n let offset = this.domNode.textContent.slice(BuscarIndex).indexOf('\\n');\n return offset > -1 ? BuscarIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, BuscarIndex).lastIndexOf('\\n');\n }\n }\n\n optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(Parchment.create('text', '\\n'));\n }\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n super.replace(target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function(node) {\n let blot = Parchment.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof Parchment.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n}\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\n\nexport { Code, CodeBlock as default };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/code.js","import Parchment from 'parchment';\n\n\nclass Break extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n insertInto(parent, ref) {\n if (parent.children.length === 0) {\n super.insertInto(parent, ref);\n } else {\n this.remove();\n }\n }\n\n length() {\n return 0;\n }\n\n value() {\n return '';\n }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\n\nexport default Break;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/break.js","import Inline from '../blots/inline';\n\n\nclass Link extends Inline {\n static create(value) {\n let node = super.create(value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n\n static formats(domNode) {\n return domNode.getAttribute('href');\n }\n\n static sanitize(url) {\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n\n format(name, value) {\n if (name !== this.statics.blotName || !value) return super.format(name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n}\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\n\nfunction sanitize(url, protocols) {\n let anchor = document.createElement('a');\n anchor.href = url;\n let protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\n\nexport { Link as default, sanitize };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/link.js","import Keyboard from '../modules/keyboard';\nimport DropdownIcon from '../assets/icons/dropdown.svg';\n\nlet optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nclass Picker {\n constructor(select) {\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', () => {\n this.togglePicker();\n });\n this.label.addEventListener('keydown', (event) => {\n switch(event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case Keyboard.keys.ENTER:\n this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case Keyboard.keys.ESCAPE:\n this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n\n buildItem(option) {\n let item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', () => {\n this.selectItem(item, true);\n });\n item.addEventListener('keydown', (event) => {\n switch(event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case Keyboard.keys.ENTER:\n this.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case Keyboard.keys.ESCAPE:\n this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n\n buildLabel() {\n let label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = DropdownIcon;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n\n buildOptions() {\n let options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = `ql-picker-options-${optionsCounter}`;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach((option) => {\n let item = this.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n this.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n\n buildPicker() {\n [].slice.call(this.select.attributes).forEach((item) => {\n this.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n\n escape() {\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(() => this.label.focus(), 1);\n }\n\n close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n\n selectItem(item, trigger = false) {\n let selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if (typeof Event === 'object') { // IE11\n let event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n\n update() {\n let option;\n if (this.select.selectedIndex > -1) {\n let item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n let isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n}\n\n\nexport default Picker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/picker.js","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = require(\"../../collection/linked-list\");\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/container.ts\n// module id = 17\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"../../attributor/attributor\");\nvar store_1 = require(\"../../attributor/store\");\nvar container_1 = require(\"./container\");\nvar Registry = require(\"../../registry\");\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/format.ts\n// module id = 18\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = require(\"./shadow\");\nvar Registry = require(\"../../registry\");\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/leaf.ts\n// module id = 19\n// module chunks = 0","var equal = require('deep-equal');\nvar extend = require('extend');\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/quill-delta/lib/op.js\n// module id = 20\n// module chunks = 0","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/clone/clone.js\n// module id = 21\n// module chunks = 0","import Parchment from 'parchment';\nimport clone from 'clone';\nimport equal from 'deep-equal';\nimport Emitter from './emitter';\nimport logger from './logger';\n\nlet debug = logger('quill:selection');\n\n\nclass Range {\n constructor(index, length = 0) {\n this.index = index;\n this.length = length;\n }\n}\n\n\nclass Selection {\n constructor(scroll, emitter) {\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = Parchment.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, () => {\n if (!this.mouseDown) {\n setTimeout(this.update.bind(this, Emitter.sources.USER), 1);\n }\n });\n this.emitter.on(Emitter.events.EDITOR_CHANGE, (type, delta) => {\n if (type === Emitter.events.TEXT_CHANGE && delta.length() > 0) {\n this.update(Emitter.sources.SILENT);\n }\n });\n this.emitter.on(Emitter.events.SCROLL_BEFORE_UPDATE, () => {\n if (!this.hasFocus()) return;\n let native = this.getNativeRange();\n if (native == null) return;\n if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n this.emitter.once(Emitter.events.SCROLL_UPDATE, () => {\n try {\n this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(Emitter.events.SCROLL_OPTIMIZE, (mutations, context) => {\n if (context.range) {\n const { startNode, startOffset, endNode, endOffset } = context.range;\n this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(Emitter.sources.SILENT);\n }\n\n handleComposition() {\n this.root.addEventListener('compositionstart', () => {\n this.composing = true;\n });\n this.root.addEventListener('compositionend', () => {\n this.composing = false;\n if (this.cursor.parent) {\n const range = this.cursor.restore();\n if (!range) return;\n setTimeout(() => {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n\n handleDragging() {\n this.emitter.listenDOM('mousedown', document.body, () => {\n this.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, () => {\n this.mouseDown = false;\n this.update(Emitter.sources.USER);\n });\n }\n\n focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n\n format(format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n this.scroll.update();\n let nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || Parchment.query(format, Parchment.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n let blot = Parchment.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof Parchment.Leaf) {\n let after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n\n getBounds(index, length = 0) {\n let scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n let node, [leaf, offset] = this.scroll.leaf(index);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n let range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n [leaf, offset] = this.scroll.leaf(index + length);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n let side = 'left';\n let rect;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n\n getNativeRange() {\n let selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n let nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n let range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n\n getRange() {\n let normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n let range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n\n hasFocus() {\n return document.activeElement === this.root;\n }\n\n normalizedToRange(range) {\n let positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n let indexes = positions.map((position) => {\n let [node, offset] = position;\n let blot = Parchment.find(node, true);\n let index = blot.offset(this.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof Parchment.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n let end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n let start = Math.min(end, ...indexes);\n return new Range(start, end-start);\n }\n\n normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) ||\n (!nativeRange.collapsed && !contains(this.root, nativeRange.endContainer))) {\n return null;\n }\n let range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function(position) {\n let node = position.node, offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n\n rangeToNative(range) {\n let indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n let args = [];\n let scrollLength = this.scroll.length();\n indexes.forEach((index, i) => {\n index = Math.min(scrollLength - 1, index);\n let node, [leaf, offset] = this.scroll.leaf(index);\n [node, offset] = leaf.position(offset, i !== 0);\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n\n scrollIntoView(scrollingContainer) {\n let range = this.lastRange;\n if (range == null) return;\n let bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n let limit = this.scroll.length()-1;\n let [first, ] = this.scroll.line(Math.min(range.index, limit));\n let last = first;\n if (range.length > 0) {\n [last, ] = this.scroll.line(Math.min(range.index + range.length, limit));\n }\n if (first == null || last == null) return;\n let scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= (scrollBounds.top - bounds.top);\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += (bounds.bottom - scrollBounds.bottom);\n }\n }\n\n setNativeRange(startNode, startOffset, endNode = startNode, endOffset = startOffset, force = false) {\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n let selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n let native = (this.getNativeRange() || {}).native;\n if (native == null || force ||\n startNode !== native.startContainer ||\n startOffset !== native.startOffset ||\n endNode !== native.endContainer ||\n endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n let range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n\n setRange(range, force = false, source = Emitter.sources.API) {\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n let args = this.rangeToNative(range);\n this.setNativeRange(...args, force);\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n\n update(source = Emitter.sources.USER) {\n let oldRange = this.lastRange;\n let [lastRange, nativeRange] = this.getRange();\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!equal(oldRange, this.lastRange)) {\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n let args = [Emitter.events.SELECTION_CHANGE, clone(this.lastRange), clone(oldRange), source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n }\n}\n\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\n\nexport { Range, Selection as default };\n\n\n\n// WEBPACK FOOTER //\n// ./core/selection.js","import Parchment from 'parchment';\nimport Block, { BlockEmbed } from './block';\n\n\nclass Container extends Parchment.Container { }\nContainer.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Container;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/container.js","import Parchment from 'parchment';\n\nclass ColorAttributor extends Parchment.Attributor.Style {\n value(domNode) {\n let value = super.value(domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function(component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n}\n\nlet ColorClass = new Parchment.Attributor.Class('color', 'ql-color', {\n scope: Parchment.Scope.INLINE\n});\nlet ColorStyle = new ColorAttributor('color', 'color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { ColorAttributor, ColorClass, ColorStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/color.js","import clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\nimport Delta from 'quill-delta';\nimport DeltaOp from 'quill-delta/lib/op';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nlet debug = logger('quill:keyboard');\n\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\n\nclass Keyboard extends Module {\n static match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function(key) {\n return (!!binding[key] !== evt[key] && binding[key] !== null);\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n\n constructor(quill, options) {\n super(quill, options);\n this.bindings = {};\n Object.keys(this.options.bindings).forEach((name) => {\n if (name === 'list autofill' &&\n quill.scroll.whitelist != null &&\n !quill.scroll.whitelist['list']) {\n return;\n }\n if (this.options.bindings[name]) {\n this.addBinding(this.options.bindings[name]);\n }\n });\n this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function() {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null },\n { collapsed: true, offset: 0 },\n handleBackspace);\n this.listen();\n }\n\n addBinding(key, context = {}, handler = {}) {\n let binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = extend(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n\n listen() {\n this.quill.root.addEventListener('keydown', (evt) => {\n if (evt.defaultPrevented) return;\n let which = evt.which || evt.keyCode;\n let bindings = (this.bindings[which] || []).filter(function(binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n let range = this.quill.getSelection();\n if (range == null || !this.quill.hasFocus()) return;\n let [line, offset] = this.quill.getLine(range.index);\n let [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n let [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n let prefixText = leafStart instanceof Parchment.Text ? leafStart.value().slice(0, offsetStart) : '';\n let suffixText = leafEnd instanceof Parchment.Text ? leafEnd.value().slice(offsetEnd) : '';\n let curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: this.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n let prevented = bindings.some((binding) => {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function(name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (typeof binding.format === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function(name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return equal(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(this, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n}\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold' : makeFormatHandler('bold'),\n 'italic' : makeFormatHandler('italic'),\n 'underline' : makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', Quill.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', Quill.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', Quill.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, Quill.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function(range) {\n this.quill.deleteText(range.index - 1, 1, Quill.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function(range) {\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index)\n .delete(range.length)\n .insert('\\t');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function(range, context) {\n this.quill.format('list', false, Quill.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, Quill.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function(range) {\n let [line, offset] = this.quill.getLine(range.index);\n let formats = extend({}, line.formats(), { list: 'checked' });\n let delta = new Delta().retain(range.index)\n .insert('\\n', formats)\n .retain(line.length() - offset - 1)\n .retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function(range, context) {\n let [line, offset] = this.quill.getLine(range.index);\n let delta = new Delta().retain(range.index)\n .insert('\\n', context.format)\n .retain(line.length() - offset - 1)\n .retain(1, { header: null });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function(range, context) {\n let length = context.prefix.length;\n let [line, offset] = this.quill.getLine(range.index);\n if (offset > length) return true;\n let value;\n switch (context.prefix.trim()) {\n case '[]': case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-': case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', Quill.sources.USER);\n this.quill.history.cutoff();\n let delta = new Delta().retain(range.index - offset)\n .delete(length + 1)\n .retain(line.length() - 2 - offset)\n .retain(1, { list: value });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, Quill.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function(range) {\n const [line, offset] = this.quill.getLine(range.index);\n const delta = new Delta()\n .retain(range.index + line.length() - offset - 2)\n .retain(1, { 'code-block': null })\n .delete(1);\n this.quill.updateContents(delta, Quill.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n const where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return {\n key,\n shiftKey,\n altKey: null,\n [where]: /^$/,\n handler: function(range) {\n let index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += (range.length + 1);\n }\n const [leaf, ] = this.quill.getLeaf(index);\n if (!(leaf instanceof Parchment.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, Quill.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, Quill.sources.USER);\n }\n }\n return false;\n }\n };\n}\n\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n let [line, ] = this.quill.getLine(range.index);\n let formats = {};\n if (context.offset === 0) {\n let [prev, ] = this.quill.getLine(range.index - 1);\n if (prev != null && prev.length() > 1) {\n let curFormats = line.formats();\n let prevFormats = this.quill.getFormat(range.index-1, 1);\n formats = DeltaOp.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n let length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index-length, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index-length, length, formats, Quill.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n let length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n let formats = {}, nextLength = 0;\n let [line, ] = this.quill.getLine(range.index);\n if (context.offset >= line.length() - 1) {\n let [next, ] = this.quill.getLine(range.index + 1);\n if (next) {\n let curFormats = line.formats();\n let nextFormats = this.quill.getFormat(range.index, 1);\n formats = DeltaOp.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, Quill.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n let lines = this.quill.getLines(range);\n let formats = {};\n if (lines.length > 1) {\n let firstFormats = lines[0].formats();\n let lastFormats = lines[lines.length - 1].formats();\n formats = DeltaOp.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, Quill.sources.USER);\n }\n this.quill.setSelection(range.index, Quill.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n let lineFormats = Object.keys(context.format).reduce(function(lineFormats, format) {\n if (Parchment.query(format, Parchment.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, Quill.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach((name) => {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n this.quill.format(name, context.format[name], Quill.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: {'code-block': true },\n handler: function(range) {\n let CodeBlock = Parchment.query('code-block');\n let index = range.index, length = range.length;\n let [block, offset] = this.quill.scroll.descendant(CodeBlock, index);\n if (block == null) return;\n let scrollIndex = this.quill.getIndex(block);\n let start = block.newlineIndex(offset, true) + 1;\n let end = block.newlineIndex(scrollIndex + offset + length);\n let lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach((line, i) => {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(Quill.sources.USER);\n this.quill.setSelection(index, length, Quill.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function(range, context) {\n this.quill.format(format, !context.format[format], Quill.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if (typeof binding === 'object') {\n binding = clone(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\n\nexport { Keyboard as default, SHORTKEY };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/keyboard.js","module.exports = {\n 'align': {\n '' : require('../assets/icons/align-left.svg'),\n 'center' : require('../assets/icons/align-center.svg'),\n 'right' : require('../assets/icons/align-right.svg'),\n 'justify' : require('../assets/icons/align-justify.svg')\n },\n 'background': require('../assets/icons/background.svg'),\n 'blockquote': require('../assets/icons/blockquote.svg'),\n 'bold' : require('../assets/icons/bold.svg'),\n 'clean' : require('../assets/icons/clean.svg'),\n 'code' : require('../assets/icons/code.svg'),\n 'code-block': require('../assets/icons/code.svg'),\n 'color' : require('../assets/icons/color.svg'),\n 'direction' : {\n '' : require('../assets/icons/direction-ltr.svg'),\n 'rtl' : require('../assets/icons/direction-rtl.svg')\n },\n 'float': {\n 'center' : require('../assets/icons/float-center.svg'),\n 'full' : require('../assets/icons/float-full.svg'),\n 'left' : require('../assets/icons/float-left.svg'),\n 'right' : require('../assets/icons/float-right.svg')\n },\n 'formula' : require('../assets/icons/formula.svg'),\n 'header': {\n '1' : require('../assets/icons/header.svg'),\n '2' : require('../assets/icons/header-2.svg')\n },\n 'italic' : require('../assets/icons/italic.svg'),\n 'image' : require('../assets/icons/image.svg'),\n 'indent': {\n '+1' : require('../assets/icons/indent.svg'),\n '-1' : require('../assets/icons/outdent.svg')\n },\n 'link' : require('../assets/icons/link.svg'),\n 'list': {\n 'ordered' : require('../assets/icons/list-ordered.svg'),\n 'bullet' : require('../assets/icons/list-bullet.svg'),\n 'check' : require('../assets/icons/list-check.svg')\n },\n 'script': {\n 'sub' : require('../assets/icons/subscript.svg'),\n 'super' : require('../assets/icons/superscript.svg'),\n },\n 'strike' : require('../assets/icons/strike.svg'),\n 'underline' : require('../assets/icons/underline.svg'),\n 'video' : require('../assets/icons/video.svg')\n};\n\n\n\n// WEBPACK FOOTER //\n// ./ui/icons.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = require(\"../../registry\");\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/abstract/shadow.ts\n// module id = 27\n// module chunks = 0","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nvar class_1 = require(\"./class\");\nvar style_1 = require(\"./style\");\nvar Registry = require(\"../registry\");\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/store.ts\n// module id = 28\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/class.ts\n// module id = 29\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = require(\"./attributor\");\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/attributor/style.ts\n// module id = 30\n// module chunks = 0","import Parchment from 'parchment';\nimport TextBlot from './text';\n\n\nclass Cursor extends Parchment.Embed {\n static value() {\n return undefined;\n }\n\n constructor(domNode, selection) {\n super(domNode);\n this.selection = selection;\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n this._length = 0;\n }\n\n detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n\n format(name, value) {\n if (this._length !== 0) {\n return super.format(name, value);\n }\n let target = this, index = 0;\n while (target != null && target.statics.scope !== Parchment.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n\n index(node, offset) {\n if (node === this.textNode) return 0;\n return super.index(node, offset);\n }\n\n length() {\n return this._length;\n }\n\n position() {\n return [this.textNode, this.textNode.data.length];\n }\n\n remove() {\n super.remove();\n this.parent = null;\n }\n\n restore() {\n if (this.selection.composing || this.parent == null) return;\n let textNode = this.textNode;\n let range = this.selection.getNativeRange();\n let restoreText, start, end;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n [restoreText, start, end] = [textNode, range.start.offset, range.end.offset];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n let text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof TextBlot) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(Parchment.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n [start, end] = [start, end].map(function(offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n\n update(mutations, context) {\n if (mutations.some((mutation) => {\n return mutation.type === 'characterData' && mutation.target === this.textNode;\n })) {\n let range = this.restore();\n if (range) context.range = range;\n }\n }\n\n value() {\n return '';\n }\n}\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = \"\\uFEFF\"; // Zero width no break space\n\n\nexport default Cursor;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/cursor.js","class Theme {\n constructor(quill, options) {\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n init() {\n Object.keys(this.options.modules).forEach((name) => {\n if (this.modules[name] == null) {\n this.addModule(name);\n }\n });\n }\n\n addModule(name) {\n let moduleClass = this.quill.constructor.import(`modules/${name}`);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n}\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\n\nexport default Theme;\n\n\n\n// WEBPACK FOOTER //\n// ./core/theme.js","import Parchment from 'parchment';\nimport TextBlot from './text';\n\nconst GUARD_TEXT = \"\\uFEFF\";\n\n\nclass Embed extends Parchment.Embed {\n constructor(node) {\n super(node);\n this.contentNode = document.createElement('span');\n this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(this.domNode.childNodes).forEach((childNode) => {\n this.contentNode.appendChild(childNode);\n });\n this.leftGuard = document.createTextNode(GUARD_TEXT);\n this.rightGuard = document.createTextNode(GUARD_TEXT);\n this.domNode.appendChild(this.leftGuard);\n this.domNode.appendChild(this.contentNode);\n this.domNode.appendChild(this.rightGuard);\n }\n\n index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return super.index(node, offset);\n }\n\n restore(node) {\n let range, textNode;\n let text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof TextBlot) {\n let prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof TextBlot) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n }\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(Parchment.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n\n update(mutations, context) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'characterData' &&\n (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n let range = this.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n}\n\n\nexport default Embed;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/embed.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nlet AlignAttribute = new Parchment.Attributor.Attribute('align', 'align', config);\nlet AlignClass = new Parchment.Attributor.Class('align', 'ql-align', config);\nlet AlignStyle = new Parchment.Attributor.Style('align', 'text-align', config);\n\nexport { AlignAttribute, AlignClass, AlignStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/align.js","import Parchment from 'parchment';\nimport { ColorAttributor } from './color';\n\nlet BackgroundClass = new Parchment.Attributor.Class('background', 'ql-bg', {\n scope: Parchment.Scope.INLINE\n});\nlet BackgroundStyle = new ColorAttributor('background', 'background-color', {\n scope: Parchment.Scope.INLINE\n});\n\nexport { BackgroundClass, BackgroundStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/background.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nlet DirectionAttribute = new Parchment.Attributor.Attribute('direction', 'dir', config);\nlet DirectionClass = new Parchment.Attributor.Class('direction', 'ql-direction', config);\nlet DirectionStyle = new Parchment.Attributor.Style('direction', 'direction', config);\n\nexport { DirectionAttribute, DirectionClass, DirectionStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/direction.js","import Parchment from 'parchment';\n\nlet config = {\n scope: Parchment.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nlet FontClass = new Parchment.Attributor.Class('font', 'ql-font', config);\n\nclass FontStyleAttributor extends Parchment.Attributor.Style {\n value(node) {\n return super.value(node).replace(/[\"']/g, '');\n }\n}\n\nlet FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexport { FontStyle, FontClass };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/font.js","import Parchment from 'parchment';\n\nlet SizeClass = new Parchment.Attributor.Class('size', 'ql-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nlet SizeStyle = new Parchment.Attributor.Style('size', 'font-size', {\n scope: Parchment.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexport { SizeClass, SizeStyle };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/size.js","import Inline from '../blots/inline';\n\nclass Bold extends Inline {\n static create() {\n return super.create();\n }\n\n static formats() {\n return true;\n }\n\n optimize(context) {\n super.optimize(context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n}\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexport default Bold;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/bold.js","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/code.svg\n// module id = 40\n// module chunks = 0","import Picker from './picker';\n\n\nclass ColorPicker extends Picker {\n constructor(select, label) {\n super(select);\n this.label.innerHTML = label;\n this.container.classList.add('ql-color-picker');\n [].slice.call(this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function(item) {\n item.classList.add('ql-primary');\n });\n }\n\n buildItem(option) {\n let item = super.buildItem(option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n\n selectItem(item, trigger) {\n super.selectItem(item, trigger);\n let colorLabel = this.label.querySelector('.ql-color-label');\n let value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n}\n\n\nexport default ColorPicker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/color-picker.js","import Picker from './picker';\n\n\nclass IconPicker extends Picker {\n constructor(select, icons) {\n super(select);\n this.container.classList.add('ql-icon-picker');\n [].forEach.call(this.container.querySelectorAll('.ql-picker-item'), (item) => {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n this.defaultItem = this.container.querySelector('.ql-selected');\n this.selectItem(this.defaultItem);\n }\n\n selectItem(item, trigger) {\n super.selectItem(item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n}\n\n\nexport default IconPicker;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/icon-picker.js","class Tooltip {\n constructor(quill, boundsContainer) {\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', () => {\n this.root.style.marginTop = (-1*this.quill.root.scrollTop) + 'px';\n });\n }\n this.hide();\n }\n\n hide() {\n this.root.classList.add('ql-hidden');\n }\n\n position(reference) {\n let left = reference.left + reference.width/2 - this.root.offsetWidth/2;\n // root.scrollTop should be 0 if scrollContainer !== root\n let top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n let containerBounds = this.boundsContainer.getBoundingClientRect();\n let rootBounds = this.root.getBoundingClientRect();\n let shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = (left + shift) + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = (left + shift) + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n let height = rootBounds.bottom - rootBounds.top;\n let verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = (top - verticalShift) + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n\n show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n}\n\n\nexport default Tooltip;\n\n\n\n// WEBPACK FOOTER //\n// ./ui/tooltip.js","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Emitter from '../core/emitter';\nimport Keyboard from '../modules/keyboard';\nimport Theme from '../core/theme';\nimport ColorPicker from '../ui/color-picker';\nimport IconPicker from '../ui/icon-picker';\nimport Picker from '../ui/picker';\nimport Tooltip from '../ui/tooltip';\n\n\nconst ALIGNS = [ false, 'center', 'right', 'justify' ];\n\nconst COLORS = [\n \"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\",\n \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\",\n \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\",\n \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\",\n \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"\n];\n\nconst FONTS = [ false, 'serif', 'monospace' ];\n\nconst HEADERS = [ '1', '2', '3', false ];\n\nconst SIZES = [ 'small', false, 'large', 'huge' ];\n\n\nclass BaseTheme extends Theme {\n constructor(quill, options) {\n super(quill, options);\n let listener = (e) => {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (this.tooltip != null && !this.tooltip.root.contains(e.target) &&\n document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\n this.tooltip.hide();\n }\n if (this.pickers != null) {\n this.pickers.forEach(function(picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n }\n\n addModule(name) {\n let module = super.addModule(name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n\n buildButtons(buttons, icons) {\n buttons.forEach((button) => {\n let className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach((name) => {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n let value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n\n buildPickers(selects, icons) {\n this.pickers = selects.map((select) => {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new IconPicker(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n let format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new ColorPicker(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new Picker(select);\n }\n });\n let update = () => {\n this.pickers.forEach(function(picker) {\n picker.update();\n });\n };\n this.quill.on(Emitter.events.EDITOR_CHANGE, update);\n }\n}\nBaseTheme.DEFAULTS = extend(true, {}, Theme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function() {\n let fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', () => {\n if (fileInput.files != null && fileInput.files[0] != null) {\n let reader = new FileReader();\n reader.onload = (e) => {\n let range = this.quill.getSelection(true);\n this.quill.updateContents(new Delta()\n .retain(range.index)\n .delete(range.length)\n .insert({ image: e.target.result })\n , Emitter.sources.USER);\n this.quill.setSelection(range.index + 1, Emitter.sources.SILENT);\n fileInput.value = \"\";\n }\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\n\nclass BaseTooltip extends Tooltip {\n constructor(quill, boundsContainer) {\n super(quill, boundsContainer);\n this.textbox = this.root.querySelector('input[type=\"text\"]');\n this.listen();\n }\n\n listen() {\n this.textbox.addEventListener('keydown', (event) => {\n if (Keyboard.match(event, 'enter')) {\n this.save();\n event.preventDefault();\n } else if (Keyboard.match(event, 'escape')) {\n this.cancel();\n event.preventDefault();\n }\n });\n }\n\n cancel() {\n this.hide();\n }\n\n edit(mode = 'link', preview = null) {\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute(`data-${mode}`) || '');\n this.root.setAttribute('data-mode', mode);\n }\n\n restoreFocus() {\n let scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n\n save() {\n let value = this.textbox.value;\n switch(this.root.getAttribute('data-mode')) {\n case 'link': {\n let scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, Emitter.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, Emitter.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video': {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula': {\n if (!value) break;\n let range = this.quill.getSelection(true);\n if (range != null) {\n let index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, Emitter.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', Emitter.sources.USER);\n }\n this.quill.setSelection(index + 2, Emitter.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n}\n\n\nfunction extractVideoUrl(url) {\n let match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) ||\n url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) { // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values, defaultValue = false) {\n values.forEach(function(value) {\n let option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\n\nexport { BaseTooltip, BaseTheme as default };\n\n\n\n// WEBPACK FOOTER //\n// ./themes/base.js","import Quill from './core';\n\nimport { AlignClass, AlignStyle } from './formats/align';\nimport { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';\nimport { IndentClass as Indent } from './formats/indent';\n\nimport Blockquote from './formats/blockquote';\nimport Header from './formats/header';\nimport List, { ListItem } from './formats/list';\n\nimport { BackgroundClass, BackgroundStyle } from './formats/background';\nimport { ColorClass, ColorStyle } from './formats/color';\nimport { FontClass, FontStyle } from './formats/font';\nimport { SizeClass, SizeStyle } from './formats/size';\n\nimport Bold from './formats/bold';\nimport Italic from './formats/italic';\nimport Link from './formats/link';\nimport Script from './formats/script';\nimport Strike from './formats/strike';\nimport Underline from './formats/underline';\n\nimport Image from './formats/image';\nimport Video from './formats/video';\n\nimport CodeBlock, { Code as InlineCode } from './formats/code';\n\nimport Formula from './modules/formula';\nimport Syntax from './modules/syntax';\nimport Toolbar from './modules/toolbar';\n\nimport icons from './ui/icons';\nimport Picker from './ui/picker';\nimport ColorPicker from './ui/color-picker';\nimport IconPicker from './ui/icon-picker';\nimport Tooltip from './ui/tooltip';\n\nimport BubbleTheme from './themes/bubble';\nimport SnowTheme from './themes/snow';\n\n\nQuill.Registro({\n 'attributors/attribute/direction': DirectionAttribute,\n\n 'attributors/class/align': AlignClass,\n 'attributors/class/background': BackgroundClass,\n 'attributors/class/color': ColorClass,\n 'attributors/class/direction': DirectionClass,\n 'attributors/class/font': FontClass,\n 'attributors/class/size': SizeClass,\n\n 'attributors/style/align': AlignStyle,\n 'attributors/style/background': BackgroundStyle,\n 'attributors/style/color': ColorStyle,\n 'attributors/style/direction': DirectionStyle,\n 'attributors/style/font': FontStyle,\n 'attributors/style/size': SizeStyle\n}, true);\n\n\nQuill.Registro({\n 'formats/align': AlignClass,\n 'formats/direction': DirectionClass,\n 'formats/indent': Indent,\n\n 'formats/background': BackgroundStyle,\n 'formats/color': ColorStyle,\n 'formats/font': FontClass,\n 'formats/size': SizeClass,\n\n 'formats/blockquote': Blockquote,\n 'formats/code-block': CodeBlock,\n 'formats/header': Header,\n 'formats/list': List,\n\n 'formats/bold': Bold,\n 'formats/code': InlineCode,\n 'formats/italic': Italic,\n 'formats/link': Link,\n 'formats/script': Script,\n 'formats/strike': Strike,\n 'formats/underline': Underline,\n\n 'formats/image': Image,\n 'formats/video': Video,\n\n 'formats/list/item': ListItem,\n\n 'modules/formula': Formula,\n 'modules/syntax': Syntax,\n 'modules/toolbar': Toolbar,\n\n 'themes/bubble': BubbleTheme,\n 'themes/snow': SnowTheme,\n\n 'ui/icons': icons,\n 'ui/picker': Picker,\n 'ui/icon-picker': IconPicker,\n 'ui/color-picker': ColorPicker,\n 'ui/tooltip': Tooltip\n}, true);\n\n\nexport default Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./quill.js","import Parchment from 'parchment';\nimport Quill from './core/quill';\n\nimport Block, { BlockEmbed } from './blots/block';\nimport Break from './blots/break';\nimport Container from './blots/container';\nimport Cursor from './blots/cursor';\nimport Embed from './blots/embed';\nimport Inline from './blots/inline';\nimport Scroll from './blots/scroll';\nimport TextBlot from './blots/text';\n\nimport Clipboard from './modules/clipboard';\nimport History from './modules/history';\nimport Keyboard from './modules/keyboard';\n\nQuill.Registro({\n 'blots/block' : Block,\n 'blots/block/embed' : BlockEmbed,\n 'blots/break' : Break,\n 'blots/container' : Container,\n 'blots/cursor' : Cursor,\n 'blots/embed' : Embed,\n 'blots/inline' : Inline,\n 'blots/scroll' : Scroll,\n 'blots/text' : TextBlot,\n\n 'modules/clipboard' : Clipboard,\n 'modules/history' : History,\n 'modules/keyboard' : Keyboard\n});\n\nParchment.Registro(Block, Break, Cursor, Inline, Scroll, TextBlot);\n\n\nexport default Quill;\n\n\n\n// WEBPACK FOOTER //\n// ./core.js","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/collection/linked-list.ts\n// module id = 47\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = require(\"./abstract/container\");\nvar Registry = require(\"../registry\");\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/scroll.ts\n// module id = 48\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/inline.ts\n// module id = 49\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = require(\"./abstract/format\");\nvar Registry = require(\"../registry\");\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/block.ts\n// module id = 50\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/embed.ts\n// module id = 51\n// module chunks = 0","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = require(\"./abstract/leaf\");\nvar Registry = require(\"../registry\");\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parchment/src/blot/text.ts\n// module id = 52\n// module chunks = 0","let elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n let _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function(token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function(BuscarString, position){\n position = position || 0;\n return this.substr(position, BuscarString.length) === BuscarString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function(BuscarString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= BuscarString.length;\n var lastIndex = subjectString.indexOf(BuscarString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./core/polyfill.js","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary Buscar.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary Buscar.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/fast-diff/diff.js\n// module id = 54\n// module chunks = 0","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deep-equal/lib/keys.js\n// module id = 55\n// module chunks = 0","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/deep-equal/lib/is_arguments.js\n// module id = 56\n// module chunks = 0","import Delta from 'quill-delta';\nimport DeltaOp from 'quill-delta/lib/op';\nimport Parchment from 'parchment';\nimport CodeBlock from '../formats/code';\nimport CursorBlot from '../blots/cursor';\nimport Block, { bubbleFormats } from '../blots/block';\nimport Break from '../blots/break';\nimport clone from 'clone';\nimport equal from 'deep-equal';\nimport extend from 'extend';\n\n\nconst ASCII = /^[ -~]*$/;\n\n\nclass Editor {\n constructor(scroll) {\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n applyDelta(delta) {\n let consumeNextNewline = false;\n this.scroll.update();\n let scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce((index, op) => {\n let length = op.retain || op.delete || op.insert.length || 1;\n let attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n let text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n this.scroll.insertAt(index, text);\n let [line, offset] = this.scroll.line(index);\n let formats = extend({}, bubbleFormats(line));\n if (line instanceof Block) {\n let [leaf, ] = line.descendant(Parchment.Leaf, offset);\n formats = extend(formats, bubbleFormats(leaf));\n }\n attributes = DeltaOp.attributes.diff(formats, attributes) || {};\n } else if (typeof op.insert === 'object') {\n let key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach((name) => {\n this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce((index, op) => {\n if (typeof op.delete === 'number') {\n this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n\n deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new Delta().retain(index).delete(length));\n }\n\n formatLine(index, length, formats = {}) {\n this.scroll.update();\n Object.keys(formats).forEach((format) => {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[format]) return;\n let lines = this.scroll.lines(index, Math.max(length, 1));\n let lengthRemaining = length;\n lines.forEach((line) => {\n let lineLength = line.length();\n if (!(line instanceof CodeBlock)) {\n line.format(format, formats[format]);\n } else {\n let codeIndex = index - line.offset(this.scroll);\n let codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new Delta().retain(index).retain(length, clone(formats)));\n }\n\n formatText(index, length, formats = {}) {\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).retain(length, clone(formats)));\n }\n\n getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n\n getDelta() {\n return this.scroll.lines().reduce((delta, line) => {\n return delta.concat(line.delta());\n }, new Delta());\n }\n\n getFormat(index, length = 0) {\n let lines = [], leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function(path) {\n let [blot, ] = path;\n if (blot instanceof Block) {\n lines.push(blot);\n } else if (blot instanceof Parchment.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(Parchment.Leaf, index, length);\n }\n let formatsArr = [lines, leaves].map(function(blots) {\n if (blots.length === 0) return {};\n let formats = bubbleFormats(blots.shift());\n while (Object.keys(formats).length > 0) {\n let blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(bubbleFormats(blot), formats);\n }\n return formats;\n });\n return extend.apply(extend, formatsArr);\n }\n\n getText(index, length) {\n return this.getContents(index, length).filter(function(op) {\n return typeof op.insert === 'string';\n }).map(function(op) {\n return op.insert;\n }).join('');\n }\n\n insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new Delta().retain(index).insert({ [embed]: value }));\n }\n\n insertText(index, text, formats = {}) {\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach((format) => {\n this.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).insert(text, clone(formats)));\n }\n\n isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n let block = this.scroll.children.head;\n if (block.statics.blotName !== Block.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof Break;\n }\n\n removeFormat(index, length) {\n let text = this.getText(index, length);\n let [line, offset] = this.scroll.line(index + length);\n let suffixLength = 0, suffix = new Delta();\n if (line != null) {\n if (!(line instanceof CodeBlock)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n let contents = this.getContents(index, length + suffixLength);\n let diff = contents.diff(new Delta().insert(text).concat(suffix));\n let delta = new Delta().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n\n update(change, mutations = [], cursorIndex = undefined) {\n let oldDelta = this.delta;\n if (mutations.length === 1 &&\n mutations[0].type === 'characterData' &&\n mutations[0].target.data.match(ASCII) &&\n Parchment.find(mutations[0].target)) {\n // Optimization for character changes\n let textBlot = Parchment.find(mutations[0].target);\n let formats = bubbleFormats(textBlot);\n let index = textBlot.offset(this.scroll);\n let oldValue = mutations[0].oldValue.replace(CursorBlot.CONTENTS, '');\n let oldText = new Delta().insert(oldValue);\n let newText = new Delta().insert(textBlot.value());\n let diffDelta = new Delta().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function(delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new Delta());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !equal(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n}\n\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function(merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function(delta, op) {\n if (op.insert === 1) {\n let attributes = clone(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = clone(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n let text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new Delta());\n}\n\n\nexport default Editor;\n\n\n\n// WEBPACK FOOTER //\n// ./core/editor.js","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has Registroed\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners Registroed for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners Registroed for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/eventemitter3/index.js\n// module id = 58\n// module chunks = 0","import Parchment from 'parchment';\nimport Emitter from '../core/emitter';\nimport Block, { BlockEmbed } from './block';\nimport Break from './break';\nimport CodeBlock from '../formats/code';\nimport Container from './container';\n\n\nfunction isLine(blot) {\n return (blot instanceof Block || blot instanceof BlockEmbed);\n}\n\n\nclass Scroll extends Parchment.Scroll {\n constructor(domNode, config) {\n super(domNode);\n this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n this.whitelist = config.whitelist.reduce(function(whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n this.domNode.addEventListener('DOMNodeInserted', function() {});\n this.optimize();\n this.enable();\n }\n\n batchStart() {\n this.batch = true;\n }\n\n batchEnd() {\n this.batch = false;\n this.optimize();\n }\n\n deleteAt(index, length) {\n let [first, offset] = this.line(index);\n let [last, ] = this.line(index + length);\n super.deleteAt(index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof BlockEmbed || last instanceof BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof CodeBlock) {\n let newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof CodeBlock) {\n let newlineIndex = last.newlineIndex(0);\n if (newlineIndex > -1) {\n last.split(newlineIndex + 1);\n }\n }\n let ref = last.children.head instanceof Break ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n\n enable(enabled = true) {\n this.domNode.setAttribute('contenteditable', enabled);\n }\n\n formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n super.formatAt(index, length, format, value);\n this.optimize();\n }\n\n insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || Parchment.query(value, Parchment.Scope.BLOCK) == null) {\n let blot = Parchment.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n let embed = Parchment.create(value, def);\n this.appendChild(embed);\n }\n } else {\n super.insertAt(index, value, def);\n }\n this.optimize();\n }\n\n insertBefore(blot, ref) {\n if (blot.statics.scope === Parchment.Scope.INLINE_BLOT) {\n let wrapper = Parchment.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n super.insertBefore(blot, ref);\n }\n\n leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n\n line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n\n lines(index = 0, length = Number.MAX_VALUE) {\n let getLines = (blot, index, length) => {\n let lines = [], lengthLeft = length;\n blot.children.forEachAt(index, length, function(child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof Parchment.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n\n optimize(mutations = [], context = {}) {\n if (this.batch === true) return;\n super.optimize(mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n\n path(index) {\n return super.path(index).slice(1); // Exclude self\n }\n\n update(mutations) {\n if (this.batch === true) return;\n let source = Emitter.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n super.update(mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_UPDATE, source, mutations);\n }\n }\n}\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [Block, BlockEmbed, Container];\n\n\nexport default Scroll;\n\n\n\n// WEBPACK FOOTER //\n// ./blots/scroll.js","import extend from 'extend';\nimport Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nimport { AlignAttribute, AlignStyle } from '../formats/align';\nimport { BackgroundStyle } from '../formats/background';\nimport CodeBlock from '../formats/code';\nimport { ColorStyle } from '../formats/color';\nimport { DirectionAttribute, DirectionStyle } from '../formats/direction';\nimport { FontStyle } from '../formats/font';\nimport { SizeStyle } from '../formats/size';\n\nlet debug = logger('quill:clipboard');\n\n\nconst DOM_KEY = '__ql-matcher';\n\nconst CLIPBOARD_CONFIG = [\n [Node.TEXT_NODE, matchText],\n [Node.TEXT_NODE, matchNewline],\n ['br', matchBreak],\n [Node.ELEMENT_NODE, matchNewline],\n [Node.ELEMENT_NODE, matchBlot],\n [Node.ELEMENT_NODE, matchSpacing],\n [Node.ELEMENT_NODE, matchAttributor],\n [Node.ELEMENT_NODE, matchStyles],\n ['li', matchIndent],\n ['b', matchAlias.bind(matchAlias, 'bold')],\n ['i', matchAlias.bind(matchAlias, 'italic')],\n ['style', matchIgnore]\n];\n\nconst ATTRIBUTE_ATTRIBUTORS = [\n AlignAttribute,\n DirectionAttribute\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nconst STYLE_ATTRIBUTORS = [\n AlignStyle,\n BackgroundStyle,\n ColorStyle,\n DirectionStyle,\n FontStyle,\n SizeStyle\n].reduce(function(memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\n\nclass Clipboard extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.quill.root.addEventListener('paste', this.onPaste.bind(this));\n this.container = this.quill.addContainer('ql-clipboard');\n this.container.setAttribute('contenteditable', true);\n this.container.setAttribute('tabindex', -1);\n this.matchers = [];\n CLIPBOARD_CONFIG.concat(this.options.matchers).forEach(([selector, matcher]) => {\n if (!options.matchVisual && matcher === matchSpacing) return;\n this.addMatcher(selector, matcher);\n });\n }\n\n addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n\n convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n const formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[CodeBlock.blotName]) {\n const text = this.container.innerText;\n this.container.innerHTML = '';\n return new Delta().insert(text, { [CodeBlock.blotName]: formats[CodeBlock.blotName] });\n }\n let [elementMatchers, textMatchers] = this.prepareMatching();\n let delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new Delta().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n\n dangerouslyPasteHTML(index, html, source = Quill.sources.API) {\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, Quill.sources.SILENT);\n } else {\n let paste = this.convert(html);\n this.quill.updateContents(new Delta().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), Quill.sources.SILENT);\n }\n }\n\n onPaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n let range = this.quill.getSelection();\n let delta = new Delta().retain(range.index);\n let scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(Quill.sources.SILENT);\n setTimeout(() => {\n delta = delta.concat(this.convert()).delete(range.length);\n this.quill.updateContents(delta, Quill.sources.USER);\n // range.length contributes to delta.length()\n this.quill.setSelection(delta.length() - range.length, Quill.sources.SILENT);\n this.quill.scrollingContainer.scrollTop = scrollTop;\n this.quill.focus();\n }, 1);\n }\n\n prepareMatching() {\n let elementMatchers = [], textMatchers = [];\n this.matchers.forEach((pair) => {\n let [selector, matcher] = pair;\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(this.container.querySelectorAll(selector), (node) => {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n}\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\n\nfunction applyFormat(delta, format, value) {\n if (typeof format === 'object') {\n return Object.keys(format).reduce(function(delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function(delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, extend({}, {[format]: value}, op.attributes));\n }\n }, new Delta());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n const DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n let endText = \"\";\n for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n let op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1*text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n let style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) { // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function(delta, matcher) {\n return matcher(node, delta);\n }, new Delta());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], (delta, childNode) => {\n let childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function(childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new Delta());\n } else {\n return new Delta();\n }\n}\n\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n let attributes = Parchment.Attributor.Attribute.keys(node);\n let classes = Parchment.Attributor.Class.keys(node);\n let styles = Parchment.Attributor.Style.keys(node);\n let formats = {};\n attributes.concat(classes).concat(styles).forEach((name) => {\n let attr = Parchment.query(name, Parchment.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name]\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n let match = Parchment.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof Parchment.Embed) {\n let embed = {};\n let value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new Delta().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new Delta();\n}\n\nfunction matchIndent(node, delta) {\n let match = Parchment.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n let indent = -1, parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((Parchment.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new Delta().retain(delta.length() - 1).retain(1, { indent: indent}));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || (delta.length() > 0 && node.nextSibling && isLine(node.nextSibling))) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n let nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight*1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n let formats = {};\n let style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') ||\n parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) { // Could be 0.5in\n delta = new Delta().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n let text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n let replacer = function(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if ((node.previousSibling == null && isLine(node.parentNode)) ||\n (node.previousSibling != null && isLine(node.previousSibling))) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if ((node.nextSibling == null && isLine(node.parentNode)) ||\n (node.nextSibling != null && isLine(node.nextSibling))) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\n\nexport { Clipboard as default, matchAttributor, matchBlot, matchNewline, matchSpacing, matchText };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/clipboard.js","import Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\n\n\nclass History extends Module {\n constructor(quill, options) {\n super(quill, options);\n this.lastRecorded = 0;\n this.ignoreChange = false;\n this.clear();\n this.quill.on(Quill.events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\n if (eventName !== Quill.events.TEXT_CHANGE || this.ignoreChange) return;\n if (!this.options.userOnly || source === Quill.sources.USER) {\n this.record(delta, oldDelta);\n } else {\n this.transform(delta);\n }\n });\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, this.undo.bind(this));\n this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, this.redo.bind(this));\n if (/Win/i.test(navigator.platform)) {\n this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, this.redo.bind(this));\n }\n }\n\n change(source, dest) {\n if (this.stack[source].length === 0) return;\n let delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], Quill.sources.USER);\n this.ignoreChange = false;\n let index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n\n clear() {\n this.stack = { undo: [], redo: [] };\n }\n\n cutoff() {\n this.lastRecorded = 0;\n }\n\n record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n let undoDelta = this.quill.getContents().diff(oldDelta);\n let timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n let delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n\n redo() {\n this.change('redo', 'undo');\n }\n\n transform(delta) {\n this.stack.undo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function(change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n\n undo() {\n this.change('undo', 'redo');\n }\n}\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n let lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function(attr) {\n return Parchment.query(attr, Parchment.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n let deleteLength = delta.reduce(function(length, op) {\n length += (op.delete || 0);\n return length;\n }, 0);\n let changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\n\nexport { History as default, getLastChangeIndex };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/history.js","import Parchment from 'parchment';\n\nclass IdentAttributor extends Parchment.Attributor.Class {\n add(node, value) {\n if (value === '+1' || value === '-1') {\n let indent = this.value(node) || 0;\n value = (value === '+1' ? (indent + 1) : (indent - 1));\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return super.add(node, value);\n }\n }\n\n canAdd(node, value) {\n return super.canAdd(node, value) || super.canAdd(node, parseInt(value));\n }\n\n value(node) {\n return parseInt(super.value(node)) || undefined; // Don't return NaN\n }\n}\n\nlet IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: Parchment.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexport { IndentClass };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/indent.js","import Block from '../blots/block';\n\n\nclass Blockquote extends Block {}\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\n\nexport default Blockquote;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/blockquote.js","import Block from '../blots/block';\n\n\nclass Header extends Block {\n static formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n}\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\n\nexport default Header;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/header.js","import Parchment from 'parchment';\nimport Block from '../blots/block';\nimport Container from '../blots/container';\n\n\nclass ListItem extends Block {\n static formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : super.formats(domNode);\n }\n\n format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(Parchment.create(this.statics.scope));\n } else {\n super.format(name, value);\n }\n }\n\n remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n super.remove();\n }\n }\n\n replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return super.replaceWith(name, value);\n }\n }\n}\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\n\nclass List extends Container {\n static create(value) {\n let tagName = value === 'ordered' ? 'OL' : 'UL';\n let node = super.create(tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n\n constructor(domNode) {\n super(domNode);\n const listEventHandler = (e) => {\n if (e.target.parentNode !== domNode) return;\n let format = this.statics.formats(domNode);\n let blot = Parchment.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if(format === 'unchecked') {\n blot.format('list', 'checked');\n }\n }\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n }\n\n format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n\n formats() {\n // We don't inherit from FormatBlot\n return { [this.statics.blotName]: this.statics.formats(this.domNode) };\n }\n\n insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n super.insertBefore(blot, ref);\n } else {\n let index = ref == null ? this.length() : ref.offset(this);\n let after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n\n optimize(context) {\n super.optimize(context);\n let next = this.next;\n if (next != null && next.prev === this &&\n next.statics.blotName === this.statics.blotName &&\n next.domNode.tagName === this.domNode.tagName &&\n next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n\n replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n let item = Parchment.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n super.replace(target);\n }\n}\nList.blotName = 'list';\nList.scope = Parchment.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\n\nexport { ListItem, List as default };\n\n\n\n// WEBPACK FOOTER //\n// ./formats/list.js","import Bold from './bold';\n\nclass Italic extends Bold { }\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexport default Italic;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/italic.js","import Inline from '../blots/inline';\n\nclass Script extends Inline {\n static create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return super.create(value);\n }\n }\n\n static formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n}\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexport default Script;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/script.js","import Inline from '../blots/inline';\n\nclass Strike extends Inline { }\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexport default Strike;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/strike.js","import Inline from '../blots/inline';\n\nclass Underline extends Inline { }\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexport default Underline;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/underline.js","import Parchment from 'parchment';\nimport { sanitize } from '../formats/link';\n\nconst ATTRIBUTES = [\n 'alt',\n 'height',\n 'width'\n];\n\n\nclass Image extends Parchment.Embed {\n static create(value) {\n let node = super.create(value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n\n static sanitize(url) {\n return sanitize(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\n\nexport default Image;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/image.js","import { BlockEmbed } from '../blots/block';\nimport Link from '../formats/link';\n\nconst ATTRIBUTES = [\n 'height',\n 'width'\n];\n\n\nclass Video extends BlockEmbed {\n static create(value) {\n let node = super.create(value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n\n static formats(domNode) {\n return ATTRIBUTES.reduce(function(formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n\n static sanitize(url) {\n return Link.sanitize(url);\n }\n\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\n\nexport default Video;\n\n\n\n// WEBPACK FOOTER //\n// ./formats/video.js","import Embed from '../blots/embed';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\n\n\nclass FormulaBlot extends Embed {\n static create(value) {\n let node = super.create(value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n\n static value(domNode) {\n return domNode.getAttribute('data-value');\n }\n}\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\n\nclass Formula extends Module {\n static Registro() {\n Quill.Registro(FormulaBlot, true);\n }\n\n constructor() {\n super();\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n }\n}\n\n\nexport { FormulaBlot, Formula as default };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/formula.js","import Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport Module from '../core/module';\nimport CodeBlock from '../formats/code';\n\n\nclass SyntaxCodeBlock extends CodeBlock {\n replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n super.replaceWith(block);\n }\n\n highlight(highlight) {\n let text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n}\nSyntaxCodeBlock.className = 'ql-syntax';\n\n\nlet CodeToken = new Parchment.Attributor.Class('token', 'hljs', {\n scope: Parchment.Scope.INLINE\n});\n\n\nclass Syntax extends Module {\n static Registro() {\n Quill.Registro(CodeToken, true);\n Quill.Registro(SyntaxCodeBlock, true);\n }\n\n constructor(quill, options) {\n super(quill, options);\n if (typeof this.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n let timer = null;\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n this.highlight();\n timer = null;\n }, this.options.interval);\n });\n this.highlight();\n }\n\n highlight() {\n if (this.quill.selection.composing) return;\n this.quill.update(Quill.sources.USER);\n let range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach((code) => {\n code.highlight(this.options.highlight);\n });\n this.quill.update(Quill.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, Quill.sources.SILENT);\n }\n }\n}\nSyntax.DEFAULTS = {\n highlight: (function() {\n if (window.hljs == null) return null;\n return function(text) {\n let result = window.hljs.highlightAuto(text);\n return result.value;\n };\n })(),\n interval: 1000\n};\n\n\nexport { SyntaxCodeBlock as CodeBlock, CodeToken, Syntax as default};\n\n\n\n// WEBPACK FOOTER //\n// ./modules/syntax.js","import Delta from 'quill-delta';\nimport Parchment from 'parchment';\nimport Quill from '../core/quill';\nimport logger from '../core/logger';\nimport Module from '../core/module';\n\nlet debug = logger('quill:toolbar');\n\n\nclass Toolbar extends Module {\n constructor(quill, options) {\n super(quill, options);\n if (Array.isArray(this.options.container)) {\n let container = document.createElement('div');\n addControls(container, this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n this.container = container;\n } else if (typeof this.options.container === 'string') {\n this.container = document.querySelector(this.options.container);\n } else {\n this.container = this.options.container;\n }\n if (!(this.container instanceof HTMLElement)) {\n return debug.error('Container required for toolbar', this.options);\n }\n this.container.classList.add('ql-toolbar');\n this.controls = [];\n this.handlers = {};\n Object.keys(this.options.handlers).forEach((format) => {\n this.addHandler(format, this.options.handlers[format]);\n });\n [].forEach.call(this.container.querySelectorAll('button, select'), (input) => {\n this.attach(input);\n });\n this.quill.on(Quill.events.EDITOR_CHANGE, (type, range) => {\n if (type === Quill.events.SELECTION_CHANGE) {\n this.update(range);\n }\n });\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n let [range, ] = this.quill.selection.getRange(); // quill.getSelection triggers update\n this.update(range);\n });\n }\n\n addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n\n attach(input) {\n let format = [].find.call(input.classList, (className) => {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (Parchment.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n let eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, (e) => {\n let value;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n let selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n this.quill.focus();\n let [range, ] = this.quill.selection.getRange();\n if (this.handlers[format] != null) {\n this.handlers[format].call(this, value);\n } else if (Parchment.query(format).prototype instanceof Parchment.Embed) {\n value = prompt(`Enter ${format}`);\n if (!value) return;\n this.quill.updateContents(new Delta()\n .retain(range.index)\n .delete(range.length)\n .insert({ [format]: value })\n , Quill.sources.USER);\n } else {\n this.quill.format(format, value, Quill.sources.USER);\n }\n this.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n\n update(range) {\n let formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function(pair) {\n let [format, input] = pair;\n if (input.tagName === 'SELECT') {\n let option;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n let value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector(`option[value=\"${value}\"]`);\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n let isActive = formats[format] === input.getAttribute('value') ||\n (formats[format] != null && formats[format].toString() === input.getAttribute('value')) ||\n (formats[format] == null && !input.getAttribute('value'));\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n}\nToolbar.DEFAULTS = {};\n\n\nfunction addButton(container, format, value) {\n let input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function(controls) {\n let group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function(control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n let format = Object.keys(control)[0];\n let value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n let input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function(value) {\n let option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function() {\n let range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n let formats = this.quill.getFormat();\n Object.keys(formats).forEach((name) => {\n // Clean functionality in existing apps only clean inline formats\n if (Parchment.query(name, Parchment.Scope.INLINE) != null) {\n this.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, Quill.sources.USER);\n }\n },\n direction: function(value) {\n let align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', Quill.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, Quill.sources.USER);\n }\n this.quill.format('direction', value, Quill.sources.USER);\n },\n indent: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n let indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n let modifier = (value === '+1') ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, Quill.sources.USER);\n }\n },\n link: function(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, Quill.sources.USER);\n },\n list: function(value) {\n let range = this.quill.getSelection();\n let formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, Quill.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', Quill.sources.USER);\n }\n } else {\n this.quill.format('list', value, Quill.sources.USER);\n }\n }\n }\n}\n\n\nexport { Toolbar as default, addControls };\n\n\n\n// WEBPACK FOOTER //\n// ./modules/toolbar.js","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-left.svg\n// module id = 75\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-center.svg\n// module id = 76\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-right.svg\n// module id = 77\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/align-justify.svg\n// module id = 78\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/background.svg\n// module id = 79\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/blockquote.svg\n// module id = 80\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/bold.svg\n// module id = 81\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/clean.svg\n// module id = 82\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/color.svg\n// module id = 83\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/direction-ltr.svg\n// module id = 84\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/direction-rtl.svg\n// module id = 85\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-center.svg\n// module id = 86\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-full.svg\n// module id = 87\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-left.svg\n// module id = 88\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/float-right.svg\n// module id = 89\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/formula.svg\n// module id = 90\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/header.svg\n// module id = 91\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/header-2.svg\n// module id = 92\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/italic.svg\n// module id = 93\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/image.svg\n// module id = 94\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/indent.svg\n// module id = 95\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/outdent.svg\n// module id = 96\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/link.svg\n// module id = 97\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/list-ordered.svg\n// module id = 98\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/list-bullet.svg\n// module id = 99\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/list-check.svg\n// module id = 100\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/subscript.svg\n// module id = 101\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/superscript.svg\n// module id = 102\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/strike.svg\n// module id = 103\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/underline.svg\n// module id = 104\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/video.svg\n// module id = 105\n// module chunks = 0","module.exports = \" \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./assets/icons/dropdown.svg\n// module id = 106\n// module chunks = 0","import extend from 'extend';\nimport Emitter from '../core/emitter';\nimport BaseTheme, { BaseTooltip } from './base';\nimport { Range } from '../core/selection';\nimport icons from '../ui/icons';\n\n\nconst TOOLBAR_CONFIG = [\n ['bold', 'italic', 'link'],\n [{ header: 1 }, { header: 2 }, 'blockquote']\n];\n\nclass BubbleTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-bubble');\n }\n\n extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), icons);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), icons);\n }\n}\nBubbleTheme.DEFAULTS = extend(true, {}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\n\nclass BubbleTooltip extends BaseTooltip {\n constructor(quill, bounds) {\n super(quill, bounds);\n this.quill.on(Emitter.events.EDITOR_CHANGE, (type, range, oldRange, source) => {\n if (type !== Emitter.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === Emitter.sources.USER) {\n this.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n this.root.style.left = '0px';\n this.root.style.width = '';\n this.root.style.width = this.root.offsetWidth + 'px';\n let lines = this.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n this.position(this.quill.getBounds(range));\n } else {\n let lastLine = lines[lines.length - 1];\n let index = this.quill.getIndex(lastLine);\n let length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n let bounds = this.quill.getBounds(new Range(index, length));\n this.position(bounds);\n }\n } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\n this.hide();\n }\n });\n }\n\n listen() {\n super.listen();\n this.root.querySelector('.ql-close').addEventListener('click', () => {\n this.root.classList.remove('ql-editing');\n });\n this.quill.on(Emitter.events.SCROLL_OPTIMIZE, () => {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(() => {\n if (this.root.classList.contains('ql-hidden')) return;\n let range = this.quill.getSelection();\n if (range != null) {\n this.position(this.quill.getBounds(range));\n }\n }, 1);\n });\n }\n\n cancel() {\n this.show();\n }\n\n position(reference) {\n let shift = super.position(reference);\n let arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = (-1*shift - arrow.offsetWidth/2) + 'px';\n }\n}\nBubbleTooltip.TEMPLATE = [\n '',\n '
        ',\n '',\n '',\n '
        '\n].join('');\n\n\nexport { BubbleTooltip, BubbleTheme as default };\n\n\n\n// WEBPACK FOOTER //\n// ./themes/bubble.js","import extend from 'extend';\nimport Emitter from '../core/emitter';\nimport BaseTheme, { BaseTooltip } from './base';\nimport LinkBlot from '../formats/link';\nimport { Range } from '../core/selection';\nimport icons from '../ui/icons';\n\n\nconst TOOLBAR_CONFIG = [\n [{ header: ['1', '2', '3', false] }],\n ['bold', 'italic', 'underline', 'link'],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['clean']\n];\n\nclass SnowTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-snow');\n }\n\n extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), icons);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), icons);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function(range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n}\nSnowTheme.DEFAULTS = extend(true, {}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function(value) {\n if (value) {\n let range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n let preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n let tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\n\nclass SnowTooltip extends BaseTooltip {\n constructor(quill, bounds) {\n super(quill, bounds);\n this.preview = this.root.querySelector('a.ql-preview');\n }\n\n listen() {\n super.listen();\n this.root.querySelector('a.ql-action').addEventListener('click', (event) => {\n if (this.root.classList.contains('ql-editing')) {\n this.save();\n } else {\n this.edit('link', this.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', (event) => {\n if (this.linkRange != null) {\n let range = this.linkRange;\n this.restoreFocus();\n this.quill.formatText(range, 'link', false, Emitter.sources.USER);\n delete this.linkRange;\n }\n event.preventDefault();\n this.hide();\n });\n this.quill.on(Emitter.events.SELECTION_CHANGE, (range, oldRange, source) => {\n if (range == null) return;\n if (range.length === 0 && source === Emitter.sources.USER) {\n let [link, offset] = this.quill.scroll.descendant(LinkBlot, range.index);\n if (link != null) {\n this.linkRange = new Range(range.index - offset, link.length());\n let preview = LinkBlot.formats(link.domNode);\n this.preview.textContent = preview;\n this.preview.setAttribute('href', preview);\n this.show();\n this.position(this.quill.getBounds(this.linkRange));\n return;\n }\n } else {\n delete this.linkRange;\n }\n this.hide();\n });\n }\n\n show() {\n super.show();\n this.root.removeAttribute('data-mode');\n }\n}\nSnowTooltip.TEMPLATE = [\n '',\n '',\n '',\n ''\n].join('');\n\n\nexport default SnowTheme;\n\n\n\n// WEBPACK FOOTER //\n// ./themes/snow.js"],"sourceRoot":""} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/quill/quill.snow.css b/Practica-14.5/src/assets/vendor/quill/quill.snow.css new file mode 100644 index 0000000..ccf825d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/quill/quill.snow.css @@ -0,0 +1,945 @@ +/*! + * Quill Editor v1.3.7 + * https://quilljs.com/ + * Copyright (c) 2014, Jason Chen + * Copyright (c) 2013, salesforce.com + */ +.ql-container { + box-sizing: border-box; + font-family: Helvetica, Arial, sans-serif; + font-size: 13px; + height: 100%; + margin: 0px; + position: relative; +} +.ql-container.ql-disabled .ql-tooltip { + visibility: hidden; +} +.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before { + pointer-events: none; +} +.ql-clipboard { + left: -100000px; + height: 1px; + overflow-y: hidden; + position: absolute; + top: 50%; +} +.ql-clipboard p { + margin: 0; + padding: 0; +} +.ql-editor { + box-sizing: border-box; + line-height: 1.42; + height: 100%; + outline: none; + overflow-y: auto; + padding: 12px 15px; + tab-size: 4; + -moz-tab-size: 4; + text-align: left; + white-space: pre-wrap; + word-wrap: break-word; +} +.ql-editor > * { + cursor: text; +} +.ql-editor p, +.ql-editor ol, +.ql-editor ul, +.ql-editor pre, +.ql-editor blockquote, +.ql-editor h1, +.ql-editor h2, +.ql-editor h3, +.ql-editor h4, +.ql-editor h5, +.ql-editor h6 { + margin: 0; + padding: 0; + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol, +.ql-editor ul { + padding-left: 1.5em; +} +.ql-editor ol > li, +.ql-editor ul > li { + list-style-type: none; +} +.ql-editor ul > li::before { + content: '\2022'; +} +.ql-editor ul[data-checked=true], +.ql-editor ul[data-checked=false] { + pointer-events: none; +} +.ql-editor ul[data-checked=true] > li *, +.ql-editor ul[data-checked=false] > li * { + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before, +.ql-editor ul[data-checked=false] > li::before { + color: #777; + cursor: pointer; + pointer-events: all; +} +.ql-editor ul[data-checked=true] > li::before { + content: '\2611'; +} +.ql-editor ul[data-checked=false] > li::before { + content: '\2610'; +} +.ql-editor li::before { + display: inline-block; + white-space: nowrap; + width: 1.2em; +} +.ql-editor li:not(.ql-direction-rtl)::before { + margin-left: -1.5em; + margin-right: 0.3em; + text-align: right; +} +.ql-editor li.ql-direction-rtl::before { + margin-left: 0.3em; + margin-right: -1.5em; +} +.ql-editor ol li:not(.ql-direction-rtl), +.ql-editor ul li:not(.ql-direction-rtl) { + padding-left: 1.5em; +} +.ql-editor ol li.ql-direction-rtl, +.ql-editor ul li.ql-direction-rtl { + padding-right: 1.5em; +} +.ql-editor ol li { + counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; + counter-increment: list-0; +} +.ql-editor ol li:before { + content: counter(list-0, decimal) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-increment: list-1; +} +.ql-editor ol li.ql-indent-1:before { + content: counter(list-1, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-1 { + counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-2 { + counter-increment: list-2; +} +.ql-editor ol li.ql-indent-2:before { + content: counter(list-2, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-2 { + counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-3 { + counter-increment: list-3; +} +.ql-editor ol li.ql-indent-3:before { + content: counter(list-3, decimal) '. '; +} +.ql-editor ol li.ql-indent-3 { + counter-reset: list-4 list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-4 { + counter-increment: list-4; +} +.ql-editor ol li.ql-indent-4:before { + content: counter(list-4, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-4 { + counter-reset: list-5 list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-5 { + counter-increment: list-5; +} +.ql-editor ol li.ql-indent-5:before { + content: counter(list-5, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-5 { + counter-reset: list-6 list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-6 { + counter-increment: list-6; +} +.ql-editor ol li.ql-indent-6:before { + content: counter(list-6, decimal) '. '; +} +.ql-editor ol li.ql-indent-6 { + counter-reset: list-7 list-8 list-9; +} +.ql-editor ol li.ql-indent-7 { + counter-increment: list-7; +} +.ql-editor ol li.ql-indent-7:before { + content: counter(list-7, lower-alpha) '. '; +} +.ql-editor ol li.ql-indent-7 { + counter-reset: list-8 list-9; +} +.ql-editor ol li.ql-indent-8 { + counter-increment: list-8; +} +.ql-editor ol li.ql-indent-8:before { + content: counter(list-8, lower-roman) '. '; +} +.ql-editor ol li.ql-indent-8 { + counter-reset: list-9; +} +.ql-editor ol li.ql-indent-9 { + counter-increment: list-9; +} +.ql-editor ol li.ql-indent-9:before { + content: counter(list-9, decimal) '. '; +} +.ql-editor .ql-indent-1:not(.ql-direction-rtl) { + padding-left: 3em; +} +.ql-editor li.ql-indent-1:not(.ql-direction-rtl) { + padding-left: 4.5em; +} +.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 3em; +} +.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { + padding-right: 4.5em; +} +.ql-editor .ql-indent-2:not(.ql-direction-rtl) { + padding-left: 6em; +} +.ql-editor li.ql-indent-2:not(.ql-direction-rtl) { + padding-left: 7.5em; +} +.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 6em; +} +.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { + padding-right: 7.5em; +} +.ql-editor .ql-indent-3:not(.ql-direction-rtl) { + padding-left: 9em; +} +.ql-editor li.ql-indent-3:not(.ql-direction-rtl) { + padding-left: 10.5em; +} +.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 9em; +} +.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { + padding-right: 10.5em; +} +.ql-editor .ql-indent-4:not(.ql-direction-rtl) { + padding-left: 12em; +} +.ql-editor li.ql-indent-4:not(.ql-direction-rtl) { + padding-left: 13.5em; +} +.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 12em; +} +.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { + padding-right: 13.5em; +} +.ql-editor .ql-indent-5:not(.ql-direction-rtl) { + padding-left: 15em; +} +.ql-editor li.ql-indent-5:not(.ql-direction-rtl) { + padding-left: 16.5em; +} +.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 15em; +} +.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { + padding-right: 16.5em; +} +.ql-editor .ql-indent-6:not(.ql-direction-rtl) { + padding-left: 18em; +} +.ql-editor li.ql-indent-6:not(.ql-direction-rtl) { + padding-left: 19.5em; +} +.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 18em; +} +.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { + padding-right: 19.5em; +} +.ql-editor .ql-indent-7:not(.ql-direction-rtl) { + padding-left: 21em; +} +.ql-editor li.ql-indent-7:not(.ql-direction-rtl) { + padding-left: 22.5em; +} +.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 21em; +} +.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { + padding-right: 22.5em; +} +.ql-editor .ql-indent-8:not(.ql-direction-rtl) { + padding-left: 24em; +} +.ql-editor li.ql-indent-8:not(.ql-direction-rtl) { + padding-left: 25.5em; +} +.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 24em; +} +.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { + padding-right: 25.5em; +} +.ql-editor .ql-indent-9:not(.ql-direction-rtl) { + padding-left: 27em; +} +.ql-editor li.ql-indent-9:not(.ql-direction-rtl) { + padding-left: 28.5em; +} +.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 27em; +} +.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { + padding-right: 28.5em; +} +.ql-editor .ql-video { + display: block; + max-width: 100%; +} +.ql-editor .ql-video.ql-align-center { + margin: 0 auto; +} +.ql-editor .ql-video.ql-align-right { + margin: 0 0 0 auto; +} +.ql-editor .ql-bg-black { + background-color: #000; +} +.ql-editor .ql-bg-red { + background-color: #e60000; +} +.ql-editor .ql-bg-orange { + background-color: #f90; +} +.ql-editor .ql-bg-yellow { + background-color: #ff0; +} +.ql-editor .ql-bg-green { + background-color: #008a00; +} +.ql-editor .ql-bg-blue { + background-color: #06c; +} +.ql-editor .ql-bg-purple { + background-color: #93f; +} +.ql-editor .ql-color-white { + color: #fff; +} +.ql-editor .ql-color-red { + color: #e60000; +} +.ql-editor .ql-color-orange { + color: #f90; +} +.ql-editor .ql-color-yellow { + color: #ff0; +} +.ql-editor .ql-color-green { + color: #008a00; +} +.ql-editor .ql-color-blue { + color: #06c; +} +.ql-editor .ql-color-purple { + color: #93f; +} +.ql-editor .ql-font-serif { + font-family: Georgia, Times New Roman, serif; +} +.ql-editor .ql-font-monospace { + font-family: Monaco, Courier New, monospace; +} +.ql-editor .ql-size-small { + font-size: 0.75em; +} +.ql-editor .ql-size-large { + font-size: 1.5em; +} +.ql-editor .ql-size-huge { + font-size: 2.5em; +} +.ql-editor .ql-direction-rtl { + direction: rtl; + text-align: inherit; +} +.ql-editor .ql-align-center { + text-align: center; +} +.ql-editor .ql-align-justify { + text-align: justify; +} +.ql-editor .ql-align-right { + text-align: right; +} +.ql-editor.ql-blank::before { + color: rgba(0,0,0,0.6); + content: attr(data-placeholder); + font-style: italic; + left: 15px; + pointer-events: none; + position: absolute; + right: 15px; +} +.ql-snow.ql-toolbar:after, +.ql-snow .ql-toolbar:after { + clear: both; + content: ''; + display: table; +} +.ql-snow.ql-toolbar button, +.ql-snow .ql-toolbar button { + background: none; + border: none; + cursor: pointer; + display: inline-block; + float: left; + height: 24px; + padding: 3px 5px; + width: 28px; +} +.ql-snow.ql-toolbar button svg, +.ql-snow .ql-toolbar button svg { + float: left; + height: 100%; +} +.ql-snow.ql-toolbar button:active:hover, +.ql-snow .ql-toolbar button:active:hover { + outline: none; +} +.ql-snow.ql-toolbar input.ql-image[type=file], +.ql-snow .ql-toolbar input.ql-image[type=file] { + display: none; +} +.ql-snow.ql-toolbar button:hover, +.ql-snow .ql-toolbar button:hover, +.ql-snow.ql-toolbar button:focus, +.ql-snow .ql-toolbar button:focus, +.ql-snow.ql-toolbar button.ql-active, +.ql-snow .ql-toolbar button.ql-active, +.ql-snow.ql-toolbar .ql-picker-label:hover, +.ql-snow .ql-toolbar .ql-picker-label:hover, +.ql-snow.ql-toolbar .ql-picker-label.ql-active, +.ql-snow .ql-toolbar .ql-picker-label.ql-active, +.ql-snow.ql-toolbar .ql-picker-item:hover, +.ql-snow .ql-toolbar .ql-picker-item:hover, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected { + color: #06c; +} +.ql-snow.ql-toolbar button:hover .ql-fill, +.ql-snow .ql-toolbar button:hover .ql-fill, +.ql-snow.ql-toolbar button:focus .ql-fill, +.ql-snow .ql-toolbar button:focus .ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, +.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, +.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { + fill: #06c; +} +.ql-snow.ql-toolbar button:hover .ql-stroke, +.ql-snow .ql-toolbar button:hover .ql-stroke, +.ql-snow.ql-toolbar button:focus .ql-stroke, +.ql-snow .ql-toolbar button:focus .ql-stroke, +.ql-snow.ql-toolbar button.ql-active .ql-stroke, +.ql-snow .ql-toolbar button.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, +.ql-snow.ql-toolbar button:hover .ql-stroke-miter, +.ql-snow .ql-toolbar button:hover .ql-stroke-miter, +.ql-snow.ql-toolbar button:focus .ql-stroke-miter, +.ql-snow .ql-toolbar button:focus .ql-stroke-miter, +.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, +.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, +.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { + stroke: #06c; +} +@media (pointer: coarse) { + .ql-snow.ql-toolbar button:hover:not(.ql-active), + .ql-snow .ql-toolbar button:hover:not(.ql-active) { + color: #444; + } + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill, + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill { + fill: #444; + } + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke, + .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, + .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter { + stroke: #444; + } +} +.ql-snow { + box-sizing: border-box; +} +.ql-snow * { + box-sizing: border-box; +} +.ql-snow .ql-hidden { + display: none; +} +.ql-snow .ql-out-bottom, +.ql-snow .ql-out-top { + visibility: hidden; +} +.ql-snow .ql-tooltip { + position: absolute; + transform: translateY(10px); +} +.ql-snow .ql-tooltip a { + cursor: pointer; + text-decoration: none; +} +.ql-snow .ql-tooltip.ql-flip { + transform: translateY(-10px); +} +.ql-snow .ql-formats { + display: inline-block; + vertical-align: middle; +} +.ql-snow .ql-formats:after { + clear: both; + content: ''; + display: table; +} +.ql-snow .ql-stroke { + fill: none; + stroke: #444; + stroke-linecap: round; + stroke-linejoin: round; + stroke-width: 2; +} +.ql-snow .ql-stroke-miter { + fill: none; + stroke: #444; + stroke-miterlimit: 10; + stroke-width: 2; +} +.ql-snow .ql-fill, +.ql-snow .ql-stroke.ql-fill { + fill: #444; +} +.ql-snow .ql-empty { + fill: none; +} +.ql-snow .ql-even { + fill-rule: evenodd; +} +.ql-snow .ql-thin, +.ql-snow .ql-stroke.ql-thin { + stroke-width: 1; +} +.ql-snow .ql-transparent { + opacity: 0.4; +} +.ql-snow .ql-direction svg:last-child { + display: none; +} +.ql-snow .ql-direction.ql-active svg:last-child { + display: inline; +} +.ql-snow .ql-direction.ql-active svg:first-child { + display: none; +} +.ql-snow .ql-editor h1 { + font-size: 2em; +} +.ql-snow .ql-editor h2 { + font-size: 1.5em; +} +.ql-snow .ql-editor h3 { + font-size: 1.17em; +} +.ql-snow .ql-editor h4 { + font-size: 1em; +} +.ql-snow .ql-editor h5 { + font-size: 0.83em; +} +.ql-snow .ql-editor h6 { + font-size: 0.67em; +} +.ql-snow .ql-editor a { + text-decoration: underline; +} +.ql-snow .ql-editor blockquote { + border-left: 4px solid #ccc; + margin-bottom: 5px; + margin-top: 5px; + padding-left: 16px; +} +.ql-snow .ql-editor code, +.ql-snow .ql-editor pre { + background-color: #f0f0f0; + border-radius: 3px; +} +.ql-snow .ql-editor pre { + white-space: pre-wrap; + margin-bottom: 5px; + margin-top: 5px; + padding: 5px 10px; +} +.ql-snow .ql-editor code { + font-size: 85%; + padding: 2px 4px; +} +.ql-snow .ql-editor pre.ql-syntax { + background-color: #23241f; + color: #f8f8f2; + overflow: visible; +} +.ql-snow .ql-editor img { + max-width: 100%; +} +.ql-snow .ql-picker { + color: #444; + display: inline-block; + float: left; + font-size: 14px; + font-weight: 500; + height: 24px; + position: relative; + vertical-align: middle; +} +.ql-snow .ql-picker-label { + cursor: pointer; + display: inline-block; + height: 100%; + padding-left: 8px; + padding-right: 2px; + position: relative; + width: 100%; +} +.ql-snow .ql-picker-label::before { + display: inline-block; + line-height: 22px; +} +.ql-snow .ql-picker-options { + background-color: #fff; + display: none; + min-width: 100%; + padding: 4px 8px; + position: absolute; + white-space: nowrap; +} +.ql-snow .ql-picker-options .ql-picker-item { + cursor: pointer; + display: block; + padding-bottom: 5px; + padding-top: 5px; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label { + color: #ccc; + z-index: 2; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill { + fill: #ccc; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke { + stroke: #ccc; +} +.ql-snow .ql-picker.ql-expanded .ql-picker-options { + display: block; + margin-top: -1px; + top: 100%; + z-index: 1; +} +.ql-snow .ql-color-picker, +.ql-snow .ql-icon-picker { + width: 28px; +} +.ql-snow .ql-color-picker .ql-picker-label, +.ql-snow .ql-icon-picker .ql-picker-label { + padding: 2px 4px; +} +.ql-snow .ql-color-picker .ql-picker-label svg, +.ql-snow .ql-icon-picker .ql-picker-label svg { + right: 4px; +} +.ql-snow .ql-icon-picker .ql-picker-options { + padding: 4px 0px; +} +.ql-snow .ql-icon-picker .ql-picker-item { + height: 24px; + width: 24px; + padding: 2px 4px; +} +.ql-snow .ql-color-picker .ql-picker-options { + padding: 3px 5px; + width: 152px; +} +.ql-snow .ql-color-picker .ql-picker-item { + border: 1px solid transparent; + float: left; + height: 16px; + margin: 2px; + padding: 0px; + width: 16px; +} +.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg { + position: absolute; + margin-top: -9px; + right: 0; + top: 50%; + width: 18px; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before { + content: attr(data-label); +} +.ql-snow .ql-picker.ql-header { + width: 98px; +} +.ql-snow .ql-picker.ql-header .ql-picker-label::before, +.ql-snow .ql-picker.ql-header .ql-picker-item::before { + content: 'Normal'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + content: 'Heading 1'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + content: 'Heading 2'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + content: 'Heading 3'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + content: 'Heading 4'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + content: 'Heading 5'; +} +.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + content: 'Heading 6'; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { + font-size: 2em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { + font-size: 1.5em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { + font-size: 1.17em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { + font-size: 1em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { + font-size: 0.83em; +} +.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { + font-size: 0.67em; +} +.ql-snow .ql-picker.ql-font { + width: 108px; +} +.ql-snow .ql-picker.ql-font .ql-picker-label::before, +.ql-snow .ql-picker.ql-font .ql-picker-item::before { + content: 'Sans Serif'; +} +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + content: 'Serif'; +} +.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + content: 'Monospace'; +} +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { + font-family: Georgia, Times New Roman, serif; +} +.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { + font-family: Monaco, Courier New, monospace; +} +.ql-snow .ql-picker.ql-size { + width: 98px; +} +.ql-snow .ql-picker.ql-size .ql-picker-label::before, +.ql-snow .ql-picker.ql-size .ql-picker-item::before { + content: 'Normal'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + content: 'Small'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + content: 'Large'; +} +.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + content: 'Huge'; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { + font-size: 10px; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { + font-size: 18px; +} +.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { + font-size: 32px; +} +.ql-snow .ql-color-picker.ql-background .ql-picker-item { + background-color: #fff; +} +.ql-snow .ql-color-picker.ql-color .ql-picker-item { + background-color: #000; +} +.ql-toolbar.ql-snow { + border: 1px solid #ccc; + box-sizing: border-box; + font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; + padding: 8px; +} +.ql-toolbar.ql-snow .ql-formats { + margin-right: 15px; +} +.ql-toolbar.ql-snow .ql-picker-label { + border: 1px solid transparent; +} +.ql-toolbar.ql-snow .ql-picker-options { + border: 1px solid transparent; + box-shadow: rgba(0,0,0,0.2) 0 2px 8px; +} +.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { + border-color: #ccc; +} +.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options { + border-color: #ccc; +} +.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected, +.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover { + border-color: #000; +} +.ql-toolbar.ql-snow + .ql-container.ql-snow { + border-top: 0px; +} +.ql-snow .ql-tooltip { + background-color: #fff; + border: 1px solid #ccc; + box-shadow: 0px 0px 5px #ddd; + color: #444; + padding: 5px 12px; + white-space: nowrap; +} +.ql-snow .ql-tooltip::before { + content: "Visit URL:"; + line-height: 26px; + margin-right: 8px; +} +.ql-snow .ql-tooltip input[type=text] { + display: none; + border: 1px solid #ccc; + font-size: 13px; + height: 26px; + margin: 0px; + padding: 3px 5px; + width: 170px; +} +.ql-snow .ql-tooltip a.ql-preview { + display: inline-block; + max-width: 200px; + overflow-x: hidden; + text-overflow: ellipsis; + vertical-align: top; +} +.ql-snow .ql-tooltip a.ql-action::after { + border-right: 1px solid #ccc; + content: 'Edit'; + margin-left: 16px; + padding-right: 8px; +} +.ql-snow .ql-tooltip a.ql-remove::before { + content: 'Remove'; + margin-left: 8px; +} +.ql-snow .ql-tooltip a { + line-height: 26px; +} +.ql-snow .ql-tooltip.ql-editing a.ql-preview, +.ql-snow .ql-tooltip.ql-editing a.ql-remove { + display: none; +} +.ql-snow .ql-tooltip.ql-editing input[type=text] { + display: inline-block; +} +.ql-snow .ql-tooltip.ql-editing a.ql-action::after { + border-right: 0px; + content: 'Save'; + padding-right: 0px; +} +.ql-snow .ql-tooltip[data-mode=link]::before { + content: "Enter link:"; +} +.ql-snow .ql-tooltip[data-mode=formula]::before { + content: "Enter formula:"; +} +.ql-snow .ql-tooltip[data-mode=video]::before { + content: "Enter video:"; +} +.ql-snow a { + color: #06c; +} +.ql-container.ql-snow { + border: 1px solid #ccc; +} diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.css b/Practica-14.5/src/assets/vendor/remixicon/remixicon.css new file mode 100644 index 0000000..ee23e5a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/remixicon/remixicon.css @@ -0,0 +1,2317 @@ +/* +* Remix Icon v2.5.0 +* https://remixicon.com +* https://github.com/Remix-Design/RemixIcon +* +* Copyright RemixIcon.com +* Released under the Apache License Version 2.0 +* +* Date: 2020-05-23 +*/ +@font-face { + font-family: "remixicon"; + src: url('remixicon.eot?t=1590207869815'); /* IE9*/ + src: url('remixicon.eot?t=1590207869815#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url("remixicon.woff2?t=1590207869815") format("woff2"), + url("remixicon.woff?t=1590207869815") format("woff"), + url('remixicon.ttf?t=1590207869815') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('remixicon.svg?t=1590207869815#remixicon') format('svg'); /* iOS 4.1- */ + font-display: swap; +} + +[class^="ri-"], [class*=" ri-"] { + font-family: 'remixicon' !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.ri-lg { font-size: 1.3333em; line-height: 0.75em; vertical-align: -.0667em; } +.ri-xl { font-size: 1.5em; line-height: 0.6666em; vertical-align: -.075em; } +.ri-xxs { font-size: .5em; } +.ri-xs { font-size: .75em; } +.ri-sm { font-size: .875em } +.ri-1x { font-size: 1em; } +.ri-2x { font-size: 2em; } +.ri-3x { font-size: 3em; } +.ri-4x { font-size: 4em; } +.ri-5x { font-size: 5em; } +.ri-6x { font-size: 6em; } +.ri-7x { font-size: 7em; } +.ri-8x { font-size: 8em; } +.ri-9x { font-size: 9em; } +.ri-10x { font-size: 10em; } +.ri-fw { text-align: center; width: 1.25em; } + +.ri-24-hours-fill:before { content: "\ea01"; } +.ri-24-hours-line:before { content: "\ea02"; } +.ri-4k-fill:before { content: "\ea03"; } +.ri-4k-line:before { content: "\ea04"; } +.ri-a-b:before { content: "\ea05"; } +.ri-account-box-fill:before { content: "\ea06"; } +.ri-account-box-line:before { content: "\ea07"; } +.ri-account-circle-fill:before { content: "\ea08"; } +.ri-account-circle-line:before { content: "\ea09"; } +.ri-account-pin-box-fill:before { content: "\ea0a"; } +.ri-account-pin-box-line:before { content: "\ea0b"; } +.ri-account-pin-circle-fill:before { content: "\ea0c"; } +.ri-account-pin-circle-line:before { content: "\ea0d"; } +.ri-add-box-fill:before { content: "\ea0e"; } +.ri-add-box-line:before { content: "\ea0f"; } +.ri-add-circle-fill:before { content: "\ea10"; } +.ri-add-circle-line:before { content: "\ea11"; } +.ri-add-fill:before { content: "\ea12"; } +.ri-add-line:before { content: "\ea13"; } +.ri-admin-fill:before { content: "\ea14"; } +.ri-admin-line:before { content: "\ea15"; } +.ri-advertisement-fill:before { content: "\ea16"; } +.ri-advertisement-line:before { content: "\ea17"; } +.ri-airplay-fill:before { content: "\ea18"; } +.ri-airplay-line:before { content: "\ea19"; } +.ri-alarm-fill:before { content: "\ea1a"; } +.ri-alarm-line:before { content: "\ea1b"; } +.ri-alarm-warning-fill:before { content: "\ea1c"; } +.ri-alarm-warning-line:before { content: "\ea1d"; } +.ri-album-fill:before { content: "\ea1e"; } +.ri-album-line:before { content: "\ea1f"; } +.ri-alert-fill:before { content: "\ea20"; } +.ri-alert-line:before { content: "\ea21"; } +.ri-aliens-fill:before { content: "\ea22"; } +.ri-aliens-line:before { content: "\ea23"; } +.ri-align-bottom:before { content: "\ea24"; } +.ri-align-center:before { content: "\ea25"; } +.ri-align-justify:before { content: "\ea26"; } +.ri-align-left:before { content: "\ea27"; } +.ri-align-right:before { content: "\ea28"; } +.ri-align-top:before { content: "\ea29"; } +.ri-align-vertically:before { content: "\ea2a"; } +.ri-alipay-fill:before { content: "\ea2b"; } +.ri-alipay-line:before { content: "\ea2c"; } +.ri-amazon-fill:before { content: "\ea2d"; } +.ri-amazon-line:before { content: "\ea2e"; } +.ri-anchor-fill:before { content: "\ea2f"; } +.ri-anchor-line:before { content: "\ea30"; } +.ri-ancient-gate-fill:before { content: "\ea31"; } +.ri-ancient-gate-line:before { content: "\ea32"; } +.ri-ancient-pavilion-fill:before { content: "\ea33"; } +.ri-ancient-pavilion-line:before { content: "\ea34"; } +.ri-android-fill:before { content: "\ea35"; } +.ri-android-line:before { content: "\ea36"; } +.ri-angularjs-fill:before { content: "\ea37"; } +.ri-angularjs-line:before { content: "\ea38"; } +.ri-anticlockwise-2-fill:before { content: "\ea39"; } +.ri-anticlockwise-2-line:before { content: "\ea3a"; } +.ri-anticlockwise-fill:before { content: "\ea3b"; } +.ri-anticlockwise-line:before { content: "\ea3c"; } +.ri-app-store-fill:before { content: "\ea3d"; } +.ri-app-store-line:before { content: "\ea3e"; } +.ri-apple-fill:before { content: "\ea3f"; } +.ri-apple-line:before { content: "\ea40"; } +.ri-apps-2-fill:before { content: "\ea41"; } +.ri-apps-2-line:before { content: "\ea42"; } +.ri-apps-fill:before { content: "\ea43"; } +.ri-apps-line:before { content: "\ea44"; } +.ri-archive-drawer-fill:before { content: "\ea45"; } +.ri-archive-drawer-line:before { content: "\ea46"; } +.ri-archive-fill:before { content: "\ea47"; } +.ri-archive-line:before { content: "\ea48"; } +.ri-arrow-down-circle-fill:before { content: "\ea49"; } +.ri-arrow-down-circle-line:before { content: "\ea4a"; } +.ri-arrow-down-fill:before { content: "\ea4b"; } +.ri-arrow-down-line:before { content: "\ea4c"; } +.ri-arrow-down-s-fill:before { content: "\ea4d"; } +.ri-arrow-down-s-line:before { content: "\ea4e"; } +.ri-arrow-drop-down-fill:before { content: "\ea4f"; } +.ri-arrow-drop-down-line:before { content: "\ea50"; } +.ri-arrow-drop-left-fill:before { content: "\ea51"; } +.ri-arrow-drop-left-line:before { content: "\ea52"; } +.ri-arrow-drop-right-fill:before { content: "\ea53"; } +.ri-arrow-drop-right-line:before { content: "\ea54"; } +.ri-arrow-drop-up-fill:before { content: "\ea55"; } +.ri-arrow-drop-up-line:before { content: "\ea56"; } +.ri-arrow-go-back-fill:before { content: "\ea57"; } +.ri-arrow-go-back-line:before { content: "\ea58"; } +.ri-arrow-go-forward-fill:before { content: "\ea59"; } +.ri-arrow-go-forward-line:before { content: "\ea5a"; } +.ri-arrow-left-circle-fill:before { content: "\ea5b"; } +.ri-arrow-left-circle-line:before { content: "\ea5c"; } +.ri-arrow-left-down-fill:before { content: "\ea5d"; } +.ri-arrow-left-down-line:before { content: "\ea5e"; } +.ri-arrow-left-fill:before { content: "\ea5f"; } +.ri-arrow-left-line:before { content: "\ea60"; } +.ri-arrow-left-right-fill:before { content: "\ea61"; } +.ri-arrow-left-right-line:before { content: "\ea62"; } +.ri-arrow-left-s-fill:before { content: "\ea63"; } +.ri-arrow-left-s-line:before { content: "\ea64"; } +.ri-arrow-left-up-fill:before { content: "\ea65"; } +.ri-arrow-left-up-line:before { content: "\ea66"; } +.ri-arrow-right-circle-fill:before { content: "\ea67"; } +.ri-arrow-right-circle-line:before { content: "\ea68"; } +.ri-arrow-right-down-fill:before { content: "\ea69"; } +.ri-arrow-right-down-line:before { content: "\ea6a"; } +.ri-arrow-right-fill:before { content: "\ea6b"; } +.ri-arrow-right-line:before { content: "\ea6c"; } +.ri-arrow-right-s-fill:before { content: "\ea6d"; } +.ri-arrow-right-s-line:before { content: "\ea6e"; } +.ri-arrow-right-up-fill:before { content: "\ea6f"; } +.ri-arrow-right-up-line:before { content: "\ea70"; } +.ri-arrow-up-circle-fill:before { content: "\ea71"; } +.ri-arrow-up-circle-line:before { content: "\ea72"; } +.ri-arrow-up-down-fill:before { content: "\ea73"; } +.ri-arrow-up-down-line:before { content: "\ea74"; } +.ri-arrow-up-fill:before { content: "\ea75"; } +.ri-arrow-up-line:before { content: "\ea76"; } +.ri-arrow-up-s-fill:before { content: "\ea77"; } +.ri-arrow-up-s-line:before { content: "\ea78"; } +.ri-artboard-2-fill:before { content: "\ea79"; } +.ri-artboard-2-line:before { content: "\ea7a"; } +.ri-artboard-fill:before { content: "\ea7b"; } +.ri-artboard-line:before { content: "\ea7c"; } +.ri-article-fill:before { content: "\ea7d"; } +.ri-article-line:before { content: "\ea7e"; } +.ri-aspect-ratio-fill:before { content: "\ea7f"; } +.ri-aspect-ratio-line:before { content: "\ea80"; } +.ri-asterisk:before { content: "\ea81"; } +.ri-at-fill:before { content: "\ea82"; } +.ri-at-line:before { content: "\ea83"; } +.ri-attachment-2:before { content: "\ea84"; } +.ri-attachment-fill:before { content: "\ea85"; } +.ri-attachment-line:before { content: "\ea86"; } +.ri-auction-fill:before { content: "\ea87"; } +.ri-auction-line:before { content: "\ea88"; } +.ri-award-fill:before { content: "\ea89"; } +.ri-award-line:before { content: "\ea8a"; } +.ri-baidu-fill:before { content: "\ea8b"; } +.ri-baidu-line:before { content: "\ea8c"; } +.ri-ball-pen-fill:before { content: "\ea8d"; } +.ri-ball-pen-line:before { content: "\ea8e"; } +.ri-bank-card-2-fill:before { content: "\ea8f"; } +.ri-bank-card-2-line:before { content: "\ea90"; } +.ri-bank-card-fill:before { content: "\ea91"; } +.ri-bank-card-line:before { content: "\ea92"; } +.ri-bank-fill:before { content: "\ea93"; } +.ri-bank-line:before { content: "\ea94"; } +.ri-bar-chart-2-fill:before { content: "\ea95"; } +.ri-bar-chart-2-line:before { content: "\ea96"; } +.ri-bar-chart-box-fill:before { content: "\ea97"; } +.ri-bar-chart-box-line:before { content: "\ea98"; } +.ri-bar-chart-fill:before { content: "\ea99"; } +.ri-bar-chart-grouped-fill:before { content: "\ea9a"; } +.ri-bar-chart-grouped-line:before { content: "\ea9b"; } +.ri-bar-chart-horizontal-fill:before { content: "\ea9c"; } +.ri-bar-chart-horizontal-line:before { content: "\ea9d"; } +.ri-bar-chart-line:before { content: "\ea9e"; } +.ri-barcode-box-fill:before { content: "\ea9f"; } +.ri-barcode-box-line:before { content: "\eaa0"; } +.ri-barcode-fill:before { content: "\eaa1"; } +.ri-barcode-line:before { content: "\eaa2"; } +.ri-barricade-fill:before { content: "\eaa3"; } +.ri-barricade-line:before { content: "\eaa4"; } +.ri-base-station-fill:before { content: "\eaa5"; } +.ri-base-station-line:before { content: "\eaa6"; } +.ri-basketball-fill:before { content: "\eaa7"; } +.ri-basketball-line:before { content: "\eaa8"; } +.ri-battery-2-charge-fill:before { content: "\eaa9"; } +.ri-battery-2-charge-line:before { content: "\eaaa"; } +.ri-battery-2-fill:before { content: "\eaab"; } +.ri-battery-2-line:before { content: "\eaac"; } +.ri-battery-charge-fill:before { content: "\eaad"; } +.ri-battery-charge-line:before { content: "\eaae"; } +.ri-battery-fill:before { content: "\eaaf"; } +.ri-battery-line:before { content: "\eab0"; } +.ri-battery-low-fill:before { content: "\eab1"; } +.ri-battery-low-line:before { content: "\eab2"; } +.ri-battery-saver-fill:before { content: "\eab3"; } +.ri-battery-saver-line:before { content: "\eab4"; } +.ri-battery-share-fill:before { content: "\eab5"; } +.ri-battery-share-line:before { content: "\eab6"; } +.ri-bear-smile-fill:before { content: "\eab7"; } +.ri-bear-smile-line:before { content: "\eab8"; } +.ri-behance-fill:before { content: "\eab9"; } +.ri-behance-line:before { content: "\eaba"; } +.ri-bell-fill:before { content: "\eabb"; } +.ri-bell-line:before { content: "\eabc"; } +.ri-bike-fill:before { content: "\eabd"; } +.ri-bike-line:before { content: "\eabe"; } +.ri-bilibili-fill:before { content: "\eabf"; } +.ri-bilibili-line:before { content: "\eac0"; } +.ri-bill-fill:before { content: "\eac1"; } +.ri-bill-line:before { content: "\eac2"; } +.ri-billiards-fill:before { content: "\eac3"; } +.ri-billiards-line:before { content: "\eac4"; } +.ri-bit-coin-fill:before { content: "\eac5"; } +.ri-bit-coin-line:before { content: "\eac6"; } +.ri-blaze-fill:before { content: "\eac7"; } +.ri-blaze-line:before { content: "\eac8"; } +.ri-bluetooth-connect-fill:before { content: "\eac9"; } +.ri-bluetooth-connect-line:before { content: "\eaca"; } +.ri-bluetooth-fill:before { content: "\eacb"; } +.ri-bluetooth-line:before { content: "\eacc"; } +.ri-blur-off-fill:before { content: "\eacd"; } +.ri-blur-off-line:before { content: "\eace"; } +.ri-body-scan-fill:before { content: "\eacf"; } +.ri-body-scan-line:before { content: "\ead0"; } +.ri-bold:before { content: "\ead1"; } +.ri-book-2-fill:before { content: "\ead2"; } +.ri-book-2-line:before { content: "\ead3"; } +.ri-book-3-fill:before { content: "\ead4"; } +.ri-book-3-line:before { content: "\ead5"; } +.ri-book-fill:before { content: "\ead6"; } +.ri-book-line:before { content: "\ead7"; } +.ri-book-mark-fill:before { content: "\ead8"; } +.ri-book-mark-line:before { content: "\ead9"; } +.ri-book-open-fill:before { content: "\eada"; } +.ri-book-open-line:before { content: "\eadb"; } +.ri-book-read-fill:before { content: "\eadc"; } +.ri-book-read-line:before { content: "\eadd"; } +.ri-booklet-fill:before { content: "\eade"; } +.ri-booklet-line:before { content: "\eadf"; } +.ri-bookmark-2-fill:before { content: "\eae0"; } +.ri-bookmark-2-line:before { content: "\eae1"; } +.ri-bookmark-3-fill:before { content: "\eae2"; } +.ri-bookmark-3-line:before { content: "\eae3"; } +.ri-bookmark-fill:before { content: "\eae4"; } +.ri-bookmark-line:before { content: "\eae5"; } +.ri-boxing-fill:before { content: "\eae6"; } +.ri-boxing-line:before { content: "\eae7"; } +.ri-braces-fill:before { content: "\eae8"; } +.ri-braces-line:before { content: "\eae9"; } +.ri-brackets-fill:before { content: "\eaea"; } +.ri-brackets-line:before { content: "\eaeb"; } +.ri-briefcase-2-fill:before { content: "\eaec"; } +.ri-briefcase-2-line:before { content: "\eaed"; } +.ri-briefcase-3-fill:before { content: "\eaee"; } +.ri-briefcase-3-line:before { content: "\eaef"; } +.ri-briefcase-4-fill:before { content: "\eaf0"; } +.ri-briefcase-4-line:before { content: "\eaf1"; } +.ri-briefcase-5-fill:before { content: "\eaf2"; } +.ri-briefcase-5-line:before { content: "\eaf3"; } +.ri-briefcase-fill:before { content: "\eaf4"; } +.ri-briefcase-line:before { content: "\eaf5"; } +.ri-bring-forward:before { content: "\eaf6"; } +.ri-bring-to-front:before { content: "\eaf7"; } +.ri-broadcast-fill:before { content: "\eaf8"; } +.ri-broadcast-line:before { content: "\eaf9"; } +.ri-brush-2-fill:before { content: "\eafa"; } +.ri-brush-2-line:before { content: "\eafb"; } +.ri-brush-3-fill:before { content: "\eafc"; } +.ri-brush-3-line:before { content: "\eafd"; } +.ri-brush-4-fill:before { content: "\eafe"; } +.ri-brush-4-line:before { content: "\eaff"; } +.ri-brush-fill:before { content: "\eb00"; } +.ri-brush-line:before { content: "\eb01"; } +.ri-bubble-chart-fill:before { content: "\eb02"; } +.ri-bubble-chart-line:before { content: "\eb03"; } +.ri-bug-2-fill:before { content: "\eb04"; } +.ri-bug-2-line:before { content: "\eb05"; } +.ri-bug-fill:before { content: "\eb06"; } +.ri-bug-line:before { content: "\eb07"; } +.ri-building-2-fill:before { content: "\eb08"; } +.ri-building-2-line:before { content: "\eb09"; } +.ri-building-3-fill:before { content: "\eb0a"; } +.ri-building-3-line:before { content: "\eb0b"; } +.ri-building-4-fill:before { content: "\eb0c"; } +.ri-building-4-line:before { content: "\eb0d"; } +.ri-building-fill:before { content: "\eb0e"; } +.ri-building-line:before { content: "\eb0f"; } +.ri-bus-2-fill:before { content: "\eb10"; } +.ri-bus-2-line:before { content: "\eb11"; } +.ri-bus-fill:before { content: "\eb12"; } +.ri-bus-line:before { content: "\eb13"; } +.ri-bus-wifi-fill:before { content: "\eb14"; } +.ri-bus-wifi-line:before { content: "\eb15"; } +.ri-cactus-fill:before { content: "\eb16"; } +.ri-cactus-line:before { content: "\eb17"; } +.ri-cake-2-fill:before { content: "\eb18"; } +.ri-cake-2-line:before { content: "\eb19"; } +.ri-cake-3-fill:before { content: "\eb1a"; } +.ri-cake-3-line:before { content: "\eb1b"; } +.ri-cake-fill:before { content: "\eb1c"; } +.ri-cake-line:before { content: "\eb1d"; } +.ri-calculator-fill:before { content: "\eb1e"; } +.ri-calculator-line:before { content: "\eb1f"; } +.ri-calendar-2-fill:before { content: "\eb20"; } +.ri-calendar-2-line:before { content: "\eb21"; } +.ri-calendar-check-fill:before { content: "\eb22"; } +.ri-calendar-check-line:before { content: "\eb23"; } +.ri-calendar-event-fill:before { content: "\eb24"; } +.ri-calendar-event-line:before { content: "\eb25"; } +.ri-calendar-fill:before { content: "\eb26"; } +.ri-calendar-line:before { content: "\eb27"; } +.ri-calendar-todo-fill:before { content: "\eb28"; } +.ri-calendar-todo-line:before { content: "\eb29"; } +.ri-camera-2-fill:before { content: "\eb2a"; } +.ri-camera-2-line:before { content: "\eb2b"; } +.ri-camera-3-fill:before { content: "\eb2c"; } +.ri-camera-3-line:before { content: "\eb2d"; } +.ri-camera-fill:before { content: "\eb2e"; } +.ri-camera-lens-fill:before { content: "\eb2f"; } +.ri-camera-lens-line:before { content: "\eb30"; } +.ri-camera-line:before { content: "\eb31"; } +.ri-camera-off-fill:before { content: "\eb32"; } +.ri-camera-off-line:before { content: "\eb33"; } +.ri-camera-switch-fill:before { content: "\eb34"; } +.ri-camera-switch-line:before { content: "\eb35"; } +.ri-capsule-fill:before { content: "\eb36"; } +.ri-capsule-line:before { content: "\eb37"; } +.ri-car-fill:before { content: "\eb38"; } +.ri-car-line:before { content: "\eb39"; } +.ri-car-washing-fill:before { content: "\eb3a"; } +.ri-car-washing-line:before { content: "\eb3b"; } +.ri-caravan-fill:before { content: "\eb3c"; } +.ri-caravan-line:before { content: "\eb3d"; } +.ri-cast-fill:before { content: "\eb3e"; } +.ri-cast-line:before { content: "\eb3f"; } +.ri-cellphone-fill:before { content: "\eb40"; } +.ri-cellphone-line:before { content: "\eb41"; } +.ri-celsius-fill:before { content: "\eb42"; } +.ri-celsius-line:before { content: "\eb43"; } +.ri-centos-fill:before { content: "\eb44"; } +.ri-centos-line:before { content: "\eb45"; } +.ri-character-recognition-fill:before { content: "\eb46"; } +.ri-character-recognition-line:before { content: "\eb47"; } +.ri-charging-pile-2-fill:before { content: "\eb48"; } +.ri-charging-pile-2-line:before { content: "\eb49"; } +.ri-charging-pile-fill:before { content: "\eb4a"; } +.ri-charging-pile-line:before { content: "\eb4b"; } +.ri-chat-1-fill:before { content: "\eb4c"; } +.ri-chat-1-line:before { content: "\eb4d"; } +.ri-chat-2-fill:before { content: "\eb4e"; } +.ri-chat-2-line:before { content: "\eb4f"; } +.ri-chat-3-fill:before { content: "\eb50"; } +.ri-chat-3-line:before { content: "\eb51"; } +.ri-chat-4-fill:before { content: "\eb52"; } +.ri-chat-4-line:before { content: "\eb53"; } +.ri-chat-check-fill:before { content: "\eb54"; } +.ri-chat-check-line:before { content: "\eb55"; } +.ri-chat-delete-fill:before { content: "\eb56"; } +.ri-chat-delete-line:before { content: "\eb57"; } +.ri-chat-download-fill:before { content: "\eb58"; } +.ri-chat-download-line:before { content: "\eb59"; } +.ri-chat-follow-up-fill:before { content: "\eb5a"; } +.ri-chat-follow-up-line:before { content: "\eb5b"; } +.ri-chat-forward-fill:before { content: "\eb5c"; } +.ri-chat-forward-line:before { content: "\eb5d"; } +.ri-chat-heart-fill:before { content: "\eb5e"; } +.ri-chat-heart-line:before { content: "\eb5f"; } +.ri-chat-history-fill:before { content: "\eb60"; } +.ri-chat-history-line:before { content: "\eb61"; } +.ri-chat-new-fill:before { content: "\eb62"; } +.ri-chat-new-line:before { content: "\eb63"; } +.ri-chat-off-fill:before { content: "\eb64"; } +.ri-chat-off-line:before { content: "\eb65"; } +.ri-chat-poll-fill:before { content: "\eb66"; } +.ri-chat-poll-line:before { content: "\eb67"; } +.ri-chat-private-fill:before { content: "\eb68"; } +.ri-chat-private-line:before { content: "\eb69"; } +.ri-chat-quote-fill:before { content: "\eb6a"; } +.ri-chat-quote-line:before { content: "\eb6b"; } +.ri-chat-settings-fill:before { content: "\eb6c"; } +.ri-chat-settings-line:before { content: "\eb6d"; } +.ri-chat-smile-2-fill:before { content: "\eb6e"; } +.ri-chat-smile-2-line:before { content: "\eb6f"; } +.ri-chat-smile-3-fill:before { content: "\eb70"; } +.ri-chat-smile-3-line:before { content: "\eb71"; } +.ri-chat-smile-fill:before { content: "\eb72"; } +.ri-chat-smile-line:before { content: "\eb73"; } +.ri-chat-upload-fill:before { content: "\eb74"; } +.ri-chat-upload-line:before { content: "\eb75"; } +.ri-chat-voice-fill:before { content: "\eb76"; } +.ri-chat-voice-line:before { content: "\eb77"; } +.ri-check-double-fill:before { content: "\eb78"; } +.ri-check-double-line:before { content: "\eb79"; } +.ri-check-fill:before { content: "\eb7a"; } +.ri-check-line:before { content: "\eb7b"; } +.ri-checkbox-blank-circle-fill:before { content: "\eb7c"; } +.ri-checkbox-blank-circle-line:before { content: "\eb7d"; } +.ri-checkbox-blank-fill:before { content: "\eb7e"; } +.ri-checkbox-blank-line:before { content: "\eb7f"; } +.ri-checkbox-circle-fill:before { content: "\eb80"; } +.ri-checkbox-circle-line:before { content: "\eb81"; } +.ri-checkbox-fill:before { content: "\eb82"; } +.ri-checkbox-indeterminate-fill:before { content: "\eb83"; } +.ri-checkbox-indeterminate-line:before { content: "\eb84"; } +.ri-checkbox-line:before { content: "\eb85"; } +.ri-checkbox-multiple-blank-fill:before { content: "\eb86"; } +.ri-checkbox-multiple-blank-line:before { content: "\eb87"; } +.ri-checkbox-multiple-fill:before { content: "\eb88"; } +.ri-checkbox-multiple-line:before { content: "\eb89"; } +.ri-china-railway-fill:before { content: "\eb8a"; } +.ri-china-railway-line:before { content: "\eb8b"; } +.ri-chrome-fill:before { content: "\eb8c"; } +.ri-chrome-line:before { content: "\eb8d"; } +.ri-clapperboard-fill:before { content: "\eb8e"; } +.ri-clapperboard-line:before { content: "\eb8f"; } +.ri-clipboard-fill:before { content: "\eb90"; } +.ri-clipboard-line:before { content: "\eb91"; } +.ri-clockwise-2-fill:before { content: "\eb92"; } +.ri-clockwise-2-line:before { content: "\eb93"; } +.ri-clockwise-fill:before { content: "\eb94"; } +.ri-clockwise-line:before { content: "\eb95"; } +.ri-close-circle-fill:before { content: "\eb96"; } +.ri-close-circle-line:before { content: "\eb97"; } +.ri-close-fill:before { content: "\eb98"; } +.ri-close-line:before { content: "\eb99"; } +.ri-closed-captioning-fill:before { content: "\eb9a"; } +.ri-closed-captioning-line:before { content: "\eb9b"; } +.ri-cloud-fill:before { content: "\eb9c"; } +.ri-cloud-line:before { content: "\eb9d"; } +.ri-cloud-off-fill:before { content: "\eb9e"; } +.ri-cloud-off-line:before { content: "\eb9f"; } +.ri-cloud-windy-fill:before { content: "\eba0"; } +.ri-cloud-windy-line:before { content: "\eba1"; } +.ri-cloudy-2-fill:before { content: "\eba2"; } +.ri-cloudy-2-line:before { content: "\eba3"; } +.ri-cloudy-fill:before { content: "\eba4"; } +.ri-cloudy-line:before { content: "\eba5"; } +.ri-code-box-fill:before { content: "\eba6"; } +.ri-code-box-line:before { content: "\eba7"; } +.ri-code-fill:before { content: "\eba8"; } +.ri-code-line:before { content: "\eba9"; } +.ri-code-s-fill:before { content: "\ebaa"; } +.ri-code-s-line:before { content: "\ebab"; } +.ri-code-s-slash-fill:before { content: "\ebac"; } +.ri-code-s-slash-line:before { content: "\ebad"; } +.ri-code-view:before { content: "\ebae"; } +.ri-codepen-fill:before { content: "\ebaf"; } +.ri-codepen-line:before { content: "\ebb0"; } +.ri-coin-fill:before { content: "\ebb1"; } +.ri-coin-line:before { content: "\ebb2"; } +.ri-coins-fill:before { content: "\ebb3"; } +.ri-coins-line:before { content: "\ebb4"; } +.ri-collage-fill:before { content: "\ebb5"; } +.ri-collage-line:before { content: "\ebb6"; } +.ri-command-fill:before { content: "\ebb7"; } +.ri-command-line:before { content: "\ebb8"; } +.ri-community-fill:before { content: "\ebb9"; } +.ri-community-line:before { content: "\ebba"; } +.ri-compass-2-fill:before { content: "\ebbb"; } +.ri-compass-2-line:before { content: "\ebbc"; } +.ri-compass-3-fill:before { content: "\ebbd"; } +.ri-compass-3-line:before { content: "\ebbe"; } +.ri-compass-4-fill:before { content: "\ebbf"; } +.ri-compass-4-line:before { content: "\ebc0"; } +.ri-compass-discover-fill:before { content: "\ebc1"; } +.ri-compass-discover-line:before { content: "\ebc2"; } +.ri-compass-fill:before { content: "\ebc3"; } +.ri-compass-line:before { content: "\ebc4"; } +.ri-compasses-2-fill:before { content: "\ebc5"; } +.ri-compasses-2-line:before { content: "\ebc6"; } +.ri-compasses-fill:before { content: "\ebc7"; } +.ri-compasses-line:before { content: "\ebc8"; } +.ri-computer-fill:before { content: "\ebc9"; } +.ri-computer-line:before { content: "\ebca"; } +.ri-Contactos-book-2-fill:before { content: "\ebcb"; } +.ri-Contactos-book-2-line:before { content: "\ebcc"; } +.ri-Contactos-book-fill:before { content: "\ebcd"; } +.ri-Contactos-book-line:before { content: "\ebce"; } +.ri-Contactos-book-upload-fill:before { content: "\ebcf"; } +.ri-Contactos-book-upload-line:before { content: "\ebd0"; } +.ri-Contactos-fill:before { content: "\ebd1"; } +.ri-Contactos-line:before { content: "\ebd2"; } +.ri-contrast-2-fill:before { content: "\ebd3"; } +.ri-contrast-2-line:before { content: "\ebd4"; } +.ri-contrast-drop-2-fill:before { content: "\ebd5"; } +.ri-contrast-drop-2-line:before { content: "\ebd6"; } +.ri-contrast-drop-fill:before { content: "\ebd7"; } +.ri-contrast-drop-line:before { content: "\ebd8"; } +.ri-contrast-fill:before { content: "\ebd9"; } +.ri-contrast-line:before { content: "\ebda"; } +.ri-copper-coin-fill:before { content: "\ebdb"; } +.ri-copper-coin-line:before { content: "\ebdc"; } +.ri-copper-diamond-fill:before { content: "\ebdd"; } +.ri-copper-diamond-line:before { content: "\ebde"; } +.ri-copyleft-fill:before { content: "\ebdf"; } +.ri-copyleft-line:before { content: "\ebe0"; } +.ri-copyright-fill:before { content: "\ebe1"; } +.ri-copyright-line:before { content: "\ebe2"; } +.ri-coreos-fill:before { content: "\ebe3"; } +.ri-coreos-line:before { content: "\ebe4"; } +.ri-coupon-2-fill:before { content: "\ebe5"; } +.ri-coupon-2-line:before { content: "\ebe6"; } +.ri-coupon-3-fill:before { content: "\ebe7"; } +.ri-coupon-3-line:before { content: "\ebe8"; } +.ri-coupon-4-fill:before { content: "\ebe9"; } +.ri-coupon-4-line:before { content: "\ebea"; } +.ri-coupon-5-fill:before { content: "\ebeb"; } +.ri-coupon-5-line:before { content: "\ebec"; } +.ri-coupon-fill:before { content: "\ebed"; } +.ri-coupon-line:before { content: "\ebee"; } +.ri-cpu-fill:before { content: "\ebef"; } +.ri-cpu-line:before { content: "\ebf0"; } +.ri-creative-commons-by-fill:before { content: "\ebf1"; } +.ri-creative-commons-by-line:before { content: "\ebf2"; } +.ri-creative-commons-fill:before { content: "\ebf3"; } +.ri-creative-commons-line:before { content: "\ebf4"; } +.ri-creative-commons-nc-fill:before { content: "\ebf5"; } +.ri-creative-commons-nc-line:before { content: "\ebf6"; } +.ri-creative-commons-nd-fill:before { content: "\ebf7"; } +.ri-creative-commons-nd-line:before { content: "\ebf8"; } +.ri-creative-commons-sa-fill:before { content: "\ebf9"; } +.ri-creative-commons-sa-line:before { content: "\ebfa"; } +.ri-creative-commons-zero-fill:before { content: "\ebfb"; } +.ri-creative-commons-zero-line:before { content: "\ebfc"; } +.ri-criminal-fill:before { content: "\ebfd"; } +.ri-criminal-line:before { content: "\ebfe"; } +.ri-crop-2-fill:before { content: "\ebff"; } +.ri-crop-2-line:before { content: "\ec00"; } +.ri-crop-fill:before { content: "\ec01"; } +.ri-crop-line:before { content: "\ec02"; } +.ri-css3-fill:before { content: "\ec03"; } +.ri-css3-line:before { content: "\ec04"; } +.ri-cup-fill:before { content: "\ec05"; } +.ri-cup-line:before { content: "\ec06"; } +.ri-currency-fill:before { content: "\ec07"; } +.ri-currency-line:before { content: "\ec08"; } +.ri-cursor-fill:before { content: "\ec09"; } +.ri-cursor-line:before { content: "\ec0a"; } +.ri-customer-service-2-fill:before { content: "\ec0b"; } +.ri-customer-service-2-line:before { content: "\ec0c"; } +.ri-customer-service-fill:before { content: "\ec0d"; } +.ri-customer-service-line:before { content: "\ec0e"; } +.ri-Tablero-2-fill:before { content: "\ec0f"; } +.ri-Tablero-2-line:before { content: "\ec10"; } +.ri-Tablero-3-fill:before { content: "\ec11"; } +.ri-Tablero-3-line:before { content: "\ec12"; } +.ri-Tablero-fill:before { content: "\ec13"; } +.ri-Tablero-line:before { content: "\ec14"; } +.ri-database-2-fill:before { content: "\ec15"; } +.ri-database-2-line:before { content: "\ec16"; } +.ri-database-fill:before { content: "\ec17"; } +.ri-database-line:before { content: "\ec18"; } +.ri-delete-back-2-fill:before { content: "\ec19"; } +.ri-delete-back-2-line:before { content: "\ec1a"; } +.ri-delete-back-fill:before { content: "\ec1b"; } +.ri-delete-back-line:before { content: "\ec1c"; } +.ri-delete-bin-2-fill:before { content: "\ec1d"; } +.ri-delete-bin-2-line:before { content: "\ec1e"; } +.ri-delete-bin-3-fill:before { content: "\ec1f"; } +.ri-delete-bin-3-line:before { content: "\ec20"; } +.ri-delete-bin-4-fill:before { content: "\ec21"; } +.ri-delete-bin-4-line:before { content: "\ec22"; } +.ri-delete-bin-5-fill:before { content: "\ec23"; } +.ri-delete-bin-5-line:before { content: "\ec24"; } +.ri-delete-bin-6-fill:before { content: "\ec25"; } +.ri-delete-bin-6-line:before { content: "\ec26"; } +.ri-delete-bin-7-fill:before { content: "\ec27"; } +.ri-delete-bin-7-line:before { content: "\ec28"; } +.ri-delete-bin-fill:before { content: "\ec29"; } +.ri-delete-bin-line:before { content: "\ec2a"; } +.ri-delete-column:before { content: "\ec2b"; } +.ri-delete-row:before { content: "\ec2c"; } +.ri-device-fill:before { content: "\ec2d"; } +.ri-device-line:before { content: "\ec2e"; } +.ri-device-recover-fill:before { content: "\ec2f"; } +.ri-device-recover-line:before { content: "\ec30"; } +.ri-dingding-fill:before { content: "\ec31"; } +.ri-dingding-line:before { content: "\ec32"; } +.ri-direction-fill:before { content: "\ec33"; } +.ri-direction-line:before { content: "\ec34"; } +.ri-disc-fill:before { content: "\ec35"; } +.ri-disc-line:before { content: "\ec36"; } +.ri-discord-fill:before { content: "\ec37"; } +.ri-discord-line:before { content: "\ec38"; } +.ri-discuss-fill:before { content: "\ec39"; } +.ri-discuss-line:before { content: "\ec3a"; } +.ri-dislike-fill:before { content: "\ec3b"; } +.ri-dislike-line:before { content: "\ec3c"; } +.ri-disqus-fill:before { content: "\ec3d"; } +.ri-disqus-line:before { content: "\ec3e"; } +.ri-divide-fill:before { content: "\ec3f"; } +.ri-divide-line:before { content: "\ec40"; } +.ri-donut-chart-fill:before { content: "\ec41"; } +.ri-donut-chart-line:before { content: "\ec42"; } +.ri-door-closed-fill:before { content: "\ec43"; } +.ri-door-closed-line:before { content: "\ec44"; } +.ri-door-fill:before { content: "\ec45"; } +.ri-door-line:before { content: "\ec46"; } +.ri-door-lock-box-fill:before { content: "\ec47"; } +.ri-door-lock-box-line:before { content: "\ec48"; } +.ri-door-lock-fill:before { content: "\ec49"; } +.ri-door-lock-line:before { content: "\ec4a"; } +.ri-door-open-fill:before { content: "\ec4b"; } +.ri-door-open-line:before { content: "\ec4c"; } +.ri-dossier-fill:before { content: "\ec4d"; } +.ri-dossier-line:before { content: "\ec4e"; } +.ri-douban-fill:before { content: "\ec4f"; } +.ri-douban-line:before { content: "\ec50"; } +.ri-double-quotes-l:before { content: "\ec51"; } +.ri-double-quotes-r:before { content: "\ec52"; } +.ri-download-2-fill:before { content: "\ec53"; } +.ri-download-2-line:before { content: "\ec54"; } +.ri-download-cloud-2-fill:before { content: "\ec55"; } +.ri-download-cloud-2-line:before { content: "\ec56"; } +.ri-download-cloud-fill:before { content: "\ec57"; } +.ri-download-cloud-line:before { content: "\ec58"; } +.ri-download-fill:before { content: "\ec59"; } +.ri-download-line:before { content: "\ec5a"; } +.ri-draft-fill:before { content: "\ec5b"; } +.ri-draft-line:before { content: "\ec5c"; } +.ri-drag-drop-fill:before { content: "\ec5d"; } +.ri-drag-drop-line:before { content: "\ec5e"; } +.ri-drag-move-2-fill:before { content: "\ec5f"; } +.ri-drag-move-2-line:before { content: "\ec60"; } +.ri-drag-move-fill:before { content: "\ec61"; } +.ri-drag-move-line:before { content: "\ec62"; } +.ri-dribbble-fill:before { content: "\ec63"; } +.ri-dribbble-line:before { content: "\ec64"; } +.ri-drive-fill:before { content: "\ec65"; } +.ri-drive-line:before { content: "\ec66"; } +.ri-drizzle-fill:before { content: "\ec67"; } +.ri-drizzle-line:before { content: "\ec68"; } +.ri-drop-fill:before { content: "\ec69"; } +.ri-drop-line:before { content: "\ec6a"; } +.ri-dropbox-fill:before { content: "\ec6b"; } +.ri-dropbox-line:before { content: "\ec6c"; } +.ri-dual-sim-1-fill:before { content: "\ec6d"; } +.ri-dual-sim-1-line:before { content: "\ec6e"; } +.ri-dual-sim-2-fill:before { content: "\ec6f"; } +.ri-dual-sim-2-line:before { content: "\ec70"; } +.ri-dv-fill:before { content: "\ec71"; } +.ri-dv-line:before { content: "\ec72"; } +.ri-dvd-fill:before { content: "\ec73"; } +.ri-dvd-line:before { content: "\ec74"; } +.ri-e-bike-2-fill:before { content: "\ec75"; } +.ri-e-bike-2-line:before { content: "\ec76"; } +.ri-e-bike-fill:before { content: "\ec77"; } +.ri-e-bike-line:before { content: "\ec78"; } +.ri-earth-fill:before { content: "\ec79"; } +.ri-earth-line:before { content: "\ec7a"; } +.ri-earthquake-fill:before { content: "\ec7b"; } +.ri-earthquake-line:before { content: "\ec7c"; } +.ri-edge-fill:before { content: "\ec7d"; } +.ri-edge-line:before { content: "\ec7e"; } +.ri-edit-2-fill:before { content: "\ec7f"; } +.ri-edit-2-line:before { content: "\ec80"; } +.ri-edit-box-fill:before { content: "\ec81"; } +.ri-edit-box-line:before { content: "\ec82"; } +.ri-edit-circle-fill:before { content: "\ec83"; } +.ri-edit-circle-line:before { content: "\ec84"; } +.ri-edit-fill:before { content: "\ec85"; } +.ri-edit-line:before { content: "\ec86"; } +.ri-eject-fill:before { content: "\ec87"; } +.ri-eject-line:before { content: "\ec88"; } +.ri-emotion-2-fill:before { content: "\ec89"; } +.ri-emotion-2-line:before { content: "\ec8a"; } +.ri-emotion-fill:before { content: "\ec8b"; } +.ri-emotion-happy-fill:before { content: "\ec8c"; } +.ri-emotion-happy-line:before { content: "\ec8d"; } +.ri-emotion-laugh-fill:before { content: "\ec8e"; } +.ri-emotion-laugh-line:before { content: "\ec8f"; } +.ri-emotion-line:before { content: "\ec90"; } +.ri-emotion-normal-fill:before { content: "\ec91"; } +.ri-emotion-normal-line:before { content: "\ec92"; } +.ri-emotion-sad-fill:before { content: "\ec93"; } +.ri-emotion-sad-line:before { content: "\ec94"; } +.ri-emotion-unhappy-fill:before { content: "\ec95"; } +.ri-emotion-unhappy-line:before { content: "\ec96"; } +.ri-empathize-fill:before { content: "\ec97"; } +.ri-empathize-line:before { content: "\ec98"; } +.ri-emphasis-cn:before { content: "\ec99"; } +.ri-emphasis:before { content: "\ec9a"; } +.ri-english-input:before { content: "\ec9b"; } +.ri-equalizer-fill:before { content: "\ec9c"; } +.ri-equalizer-line:before { content: "\ec9d"; } +.ri-eraser-fill:before { content: "\ec9e"; } +.ri-eraser-line:before { content: "\ec9f"; } +.ri-error-warning-fill:before { content: "\eca0"; } +.ri-error-warning-line:before { content: "\eca1"; } +.ri-evernote-fill:before { content: "\eca2"; } +.ri-evernote-line:before { content: "\eca3"; } +.ri-exchange-box-fill:before { content: "\eca4"; } +.ri-exchange-box-line:before { content: "\eca5"; } +.ri-exchange-cny-fill:before { content: "\eca6"; } +.ri-exchange-cny-line:before { content: "\eca7"; } +.ri-exchange-dollar-fill:before { content: "\eca8"; } +.ri-exchange-dollar-line:before { content: "\eca9"; } +.ri-exchange-fill:before { content: "\ecaa"; } +.ri-exchange-funds-fill:before { content: "\ecab"; } +.ri-exchange-funds-line:before { content: "\ecac"; } +.ri-exchange-line:before { content: "\ecad"; } +.ri-external-link-fill:before { content: "\ecae"; } +.ri-external-link-line:before { content: "\ecaf"; } +.ri-eye-2-fill:before { content: "\ecb0"; } +.ri-eye-2-line:before { content: "\ecb1"; } +.ri-eye-close-fill:before { content: "\ecb2"; } +.ri-eye-close-line:before { content: "\ecb3"; } +.ri-eye-fill:before { content: "\ecb4"; } +.ri-eye-line:before { content: "\ecb5"; } +.ri-eye-off-fill:before { content: "\ecb6"; } +.ri-eye-off-line:before { content: "\ecb7"; } +.ri-facebook-box-fill:before { content: "\ecb8"; } +.ri-facebook-box-line:before { content: "\ecb9"; } +.ri-facebook-circle-fill:before { content: "\ecba"; } +.ri-facebook-circle-line:before { content: "\ecbb"; } +.ri-facebook-fill:before { content: "\ecbc"; } +.ri-facebook-line:before { content: "\ecbd"; } +.ri-fahrenheit-fill:before { content: "\ecbe"; } +.ri-fahrenheit-line:before { content: "\ecbf"; } +.ri-feedback-fill:before { content: "\ecc0"; } +.ri-feedback-line:before { content: "\ecc1"; } +.ri-file-2-fill:before { content: "\ecc2"; } +.ri-file-2-line:before { content: "\ecc3"; } +.ri-file-3-fill:before { content: "\ecc4"; } +.ri-file-3-line:before { content: "\ecc5"; } +.ri-file-4-fill:before { content: "\ecc6"; } +.ri-file-4-line:before { content: "\ecc7"; } +.ri-file-add-fill:before { content: "\ecc8"; } +.ri-file-add-line:before { content: "\ecc9"; } +.ri-file-chart-2-fill:before { content: "\ecca"; } +.ri-file-chart-2-line:before { content: "\eccb"; } +.ri-file-chart-fill:before { content: "\eccc"; } +.ri-file-chart-line:before { content: "\eccd"; } +.ri-file-cloud-fill:before { content: "\ecce"; } +.ri-file-cloud-line:before { content: "\eccf"; } +.ri-file-code-fill:before { content: "\ecd0"; } +.ri-file-code-line:before { content: "\ecd1"; } +.ri-file-copy-2-fill:before { content: "\ecd2"; } +.ri-file-copy-2-line:before { content: "\ecd3"; } +.ri-file-copy-fill:before { content: "\ecd4"; } +.ri-file-copy-line:before { content: "\ecd5"; } +.ri-file-damage-fill:before { content: "\ecd6"; } +.ri-file-damage-line:before { content: "\ecd7"; } +.ri-file-download-fill:before { content: "\ecd8"; } +.ri-file-download-line:before { content: "\ecd9"; } +.ri-file-edit-fill:before { content: "\ecda"; } +.ri-file-edit-line:before { content: "\ecdb"; } +.ri-file-excel-2-fill:before { content: "\ecdc"; } +.ri-file-excel-2-line:before { content: "\ecdd"; } +.ri-file-excel-fill:before { content: "\ecde"; } +.ri-file-excel-line:before { content: "\ecdf"; } +.ri-file-fill:before { content: "\ece0"; } +.ri-file-forbid-fill:before { content: "\ece1"; } +.ri-file-forbid-line:before { content: "\ece2"; } +.ri-file-gif-fill:before { content: "\ece3"; } +.ri-file-gif-line:before { content: "\ece4"; } +.ri-file-history-fill:before { content: "\ece5"; } +.ri-file-history-line:before { content: "\ece6"; } +.ri-file-hwp-fill:before { content: "\ece7"; } +.ri-file-hwp-line:before { content: "\ece8"; } +.ri-file-info-fill:before { content: "\ece9"; } +.ri-file-info-line:before { content: "\ecea"; } +.ri-file-line:before { content: "\eceb"; } +.ri-file-list-2-fill:before { content: "\ecec"; } +.ri-file-list-2-line:before { content: "\eced"; } +.ri-file-list-3-fill:before { content: "\ecee"; } +.ri-file-list-3-line:before { content: "\ecef"; } +.ri-file-list-fill:before { content: "\ecf0"; } +.ri-file-list-line:before { content: "\ecf1"; } +.ri-file-lock-fill:before { content: "\ecf2"; } +.ri-file-lock-line:before { content: "\ecf3"; } +.ri-file-mark-fill:before { content: "\ecf4"; } +.ri-file-mark-line:before { content: "\ecf5"; } +.ri-file-music-fill:before { content: "\ecf6"; } +.ri-file-music-line:before { content: "\ecf7"; } +.ri-file-paper-2-fill:before { content: "\ecf8"; } +.ri-file-paper-2-line:before { content: "\ecf9"; } +.ri-file-paper-fill:before { content: "\ecfa"; } +.ri-file-paper-line:before { content: "\ecfb"; } +.ri-file-pdf-fill:before { content: "\ecfc"; } +.ri-file-pdf-line:before { content: "\ecfd"; } +.ri-file-ppt-2-fill:before { content: "\ecfe"; } +.ri-file-ppt-2-line:before { content: "\ecff"; } +.ri-file-ppt-fill:before { content: "\ed00"; } +.ri-file-ppt-line:before { content: "\ed01"; } +.ri-file-reduce-fill:before { content: "\ed02"; } +.ri-file-reduce-line:before { content: "\ed03"; } +.ri-file-Buscar-fill:before { content: "\ed04"; } +.ri-file-Buscar-line:before { content: "\ed05"; } +.ri-file-settings-fill:before { content: "\ed06"; } +.ri-file-settings-line:before { content: "\ed07"; } +.ri-file-shield-2-fill:before { content: "\ed08"; } +.ri-file-shield-2-line:before { content: "\ed09"; } +.ri-file-shield-fill:before { content: "\ed0a"; } +.ri-file-shield-line:before { content: "\ed0b"; } +.ri-file-shred-fill:before { content: "\ed0c"; } +.ri-file-shred-line:before { content: "\ed0d"; } +.ri-file-text-fill:before { content: "\ed0e"; } +.ri-file-text-line:before { content: "\ed0f"; } +.ri-file-transfer-fill:before { content: "\ed10"; } +.ri-file-transfer-line:before { content: "\ed11"; } +.ri-file-unknow-fill:before { content: "\ed12"; } +.ri-file-unknow-line:before { content: "\ed13"; } +.ri-file-upload-fill:before { content: "\ed14"; } +.ri-file-upload-line:before { content: "\ed15"; } +.ri-file-user-fill:before { content: "\ed16"; } +.ri-file-user-line:before { content: "\ed17"; } +.ri-file-warning-fill:before { content: "\ed18"; } +.ri-file-warning-line:before { content: "\ed19"; } +.ri-file-word-2-fill:before { content: "\ed1a"; } +.ri-file-word-2-line:before { content: "\ed1b"; } +.ri-file-word-fill:before { content: "\ed1c"; } +.ri-file-word-line:before { content: "\ed1d"; } +.ri-file-zip-fill:before { content: "\ed1e"; } +.ri-file-zip-line:before { content: "\ed1f"; } +.ri-film-fill:before { content: "\ed20"; } +.ri-film-line:before { content: "\ed21"; } +.ri-filter-2-fill:before { content: "\ed22"; } +.ri-filter-2-line:before { content: "\ed23"; } +.ri-filter-3-fill:before { content: "\ed24"; } +.ri-filter-3-line:before { content: "\ed25"; } +.ri-filter-fill:before { content: "\ed26"; } +.ri-filter-line:before { content: "\ed27"; } +.ri-filter-off-fill:before { content: "\ed28"; } +.ri-filter-off-line:before { content: "\ed29"; } +.ri-find-replace-fill:before { content: "\ed2a"; } +.ri-find-replace-line:before { content: "\ed2b"; } +.ri-finder-fill:before { content: "\ed2c"; } +.ri-finder-line:before { content: "\ed2d"; } +.ri-fingerprint-2-fill:before { content: "\ed2e"; } +.ri-fingerprint-2-line:before { content: "\ed2f"; } +.ri-fingerprint-fill:before { content: "\ed30"; } +.ri-fingerprint-line:before { content: "\ed31"; } +.ri-fire-fill:before { content: "\ed32"; } +.ri-fire-line:before { content: "\ed33"; } +.ri-firefox-fill:before { content: "\ed34"; } +.ri-firefox-line:before { content: "\ed35"; } +.ri-first-aid-kit-fill:before { content: "\ed36"; } +.ri-first-aid-kit-line:before { content: "\ed37"; } +.ri-flag-2-fill:before { content: "\ed38"; } +.ri-flag-2-line:before { content: "\ed39"; } +.ri-flag-fill:before { content: "\ed3a"; } +.ri-flag-line:before { content: "\ed3b"; } +.ri-flashlight-fill:before { content: "\ed3c"; } +.ri-flashlight-line:before { content: "\ed3d"; } +.ri-flask-fill:before { content: "\ed3e"; } +.ri-flask-line:before { content: "\ed3f"; } +.ri-flight-land-fill:before { content: "\ed40"; } +.ri-flight-land-line:before { content: "\ed41"; } +.ri-flight-takeoff-fill:before { content: "\ed42"; } +.ri-flight-takeoff-line:before { content: "\ed43"; } +.ri-flood-fill:before { content: "\ed44"; } +.ri-flood-line:before { content: "\ed45"; } +.ri-flow-chart:before { content: "\ed46"; } +.ri-flutter-fill:before { content: "\ed47"; } +.ri-flutter-line:before { content: "\ed48"; } +.ri-focus-2-fill:before { content: "\ed49"; } +.ri-focus-2-line:before { content: "\ed4a"; } +.ri-focus-3-fill:before { content: "\ed4b"; } +.ri-focus-3-line:before { content: "\ed4c"; } +.ri-focus-fill:before { content: "\ed4d"; } +.ri-focus-line:before { content: "\ed4e"; } +.ri-foggy-fill:before { content: "\ed4f"; } +.ri-foggy-line:before { content: "\ed50"; } +.ri-folder-2-fill:before { content: "\ed51"; } +.ri-folder-2-line:before { content: "\ed52"; } +.ri-folder-3-fill:before { content: "\ed53"; } +.ri-folder-3-line:before { content: "\ed54"; } +.ri-folder-4-fill:before { content: "\ed55"; } +.ri-folder-4-line:before { content: "\ed56"; } +.ri-folder-5-fill:before { content: "\ed57"; } +.ri-folder-5-line:before { content: "\ed58"; } +.ri-folder-add-fill:before { content: "\ed59"; } +.ri-folder-add-line:before { content: "\ed5a"; } +.ri-folder-chart-2-fill:before { content: "\ed5b"; } +.ri-folder-chart-2-line:before { content: "\ed5c"; } +.ri-folder-chart-fill:before { content: "\ed5d"; } +.ri-folder-chart-line:before { content: "\ed5e"; } +.ri-folder-download-fill:before { content: "\ed5f"; } +.ri-folder-download-line:before { content: "\ed60"; } +.ri-folder-fill:before { content: "\ed61"; } +.ri-folder-forbid-fill:before { content: "\ed62"; } +.ri-folder-forbid-line:before { content: "\ed63"; } +.ri-folder-history-fill:before { content: "\ed64"; } +.ri-folder-history-line:before { content: "\ed65"; } +.ri-folder-info-fill:before { content: "\ed66"; } +.ri-folder-info-line:before { content: "\ed67"; } +.ri-folder-keyhole-fill:before { content: "\ed68"; } +.ri-folder-keyhole-line:before { content: "\ed69"; } +.ri-folder-line:before { content: "\ed6a"; } +.ri-folder-lock-fill:before { content: "\ed6b"; } +.ri-folder-lock-line:before { content: "\ed6c"; } +.ri-folder-music-fill:before { content: "\ed6d"; } +.ri-folder-music-line:before { content: "\ed6e"; } +.ri-folder-open-fill:before { content: "\ed6f"; } +.ri-folder-open-line:before { content: "\ed70"; } +.ri-folder-received-fill:before { content: "\ed71"; } +.ri-folder-received-line:before { content: "\ed72"; } +.ri-folder-reduce-fill:before { content: "\ed73"; } +.ri-folder-reduce-line:before { content: "\ed74"; } +.ri-folder-settings-fill:before { content: "\ed75"; } +.ri-folder-settings-line:before { content: "\ed76"; } +.ri-folder-shared-fill:before { content: "\ed77"; } +.ri-folder-shared-line:before { content: "\ed78"; } +.ri-folder-shield-2-fill:before { content: "\ed79"; } +.ri-folder-shield-2-line:before { content: "\ed7a"; } +.ri-folder-shield-fill:before { content: "\ed7b"; } +.ri-folder-shield-line:before { content: "\ed7c"; } +.ri-folder-transfer-fill:before { content: "\ed7d"; } +.ri-folder-transfer-line:before { content: "\ed7e"; } +.ri-folder-unknow-fill:before { content: "\ed7f"; } +.ri-folder-unknow-line:before { content: "\ed80"; } +.ri-folder-upload-fill:before { content: "\ed81"; } +.ri-folder-upload-line:before { content: "\ed82"; } +.ri-folder-user-fill:before { content: "\ed83"; } +.ri-folder-user-line:before { content: "\ed84"; } +.ri-folder-warning-fill:before { content: "\ed85"; } +.ri-folder-warning-line:before { content: "\ed86"; } +.ri-folder-zip-fill:before { content: "\ed87"; } +.ri-folder-zip-line:before { content: "\ed88"; } +.ri-folders-fill:before { content: "\ed89"; } +.ri-folders-line:before { content: "\ed8a"; } +.ri-font-color:before { content: "\ed8b"; } +.ri-font-size-2:before { content: "\ed8c"; } +.ri-font-size:before { content: "\ed8d"; } +.ri-football-fill:before { content: "\ed8e"; } +.ri-football-line:before { content: "\ed8f"; } +.ri-footprint-fill:before { content: "\ed90"; } +.ri-footprint-line:before { content: "\ed91"; } +.ri-forbid-2-fill:before { content: "\ed92"; } +.ri-forbid-2-line:before { content: "\ed93"; } +.ri-forbid-fill:before { content: "\ed94"; } +.ri-forbid-line:before { content: "\ed95"; } +.ri-format-clear:before { content: "\ed96"; } +.ri-fridge-fill:before { content: "\ed97"; } +.ri-fridge-line:before { content: "\ed98"; } +.ri-fullscreen-exit-fill:before { content: "\ed99"; } +.ri-fullscreen-exit-line:before { content: "\ed9a"; } +.ri-fullscreen-fill:before { content: "\ed9b"; } +.ri-fullscreen-line:before { content: "\ed9c"; } +.ri-function-fill:before { content: "\ed9d"; } +.ri-function-line:before { content: "\ed9e"; } +.ri-functions:before { content: "\ed9f"; } +.ri-funds-box-fill:before { content: "\eda0"; } +.ri-funds-box-line:before { content: "\eda1"; } +.ri-funds-fill:before { content: "\eda2"; } +.ri-funds-line:before { content: "\eda3"; } +.ri-gallery-fill:before { content: "\eda4"; } +.ri-gallery-line:before { content: "\eda5"; } +.ri-gallery-upload-fill:before { content: "\eda6"; } +.ri-gallery-upload-line:before { content: "\eda7"; } +.ri-game-fill:before { content: "\eda8"; } +.ri-game-line:before { content: "\eda9"; } +.ri-gamepad-fill:before { content: "\edaa"; } +.ri-gamepad-line:before { content: "\edab"; } +.ri-gas-station-fill:before { content: "\edac"; } +.ri-gas-station-line:before { content: "\edad"; } +.ri-gatsby-fill:before { content: "\edae"; } +.ri-gatsby-line:before { content: "\edaf"; } +.ri-genderless-fill:before { content: "\edb0"; } +.ri-genderless-line:before { content: "\edb1"; } +.ri-ghost-2-fill:before { content: "\edb2"; } +.ri-ghost-2-line:before { content: "\edb3"; } +.ri-ghost-fill:before { content: "\edb4"; } +.ri-ghost-line:before { content: "\edb5"; } +.ri-ghost-smile-fill:before { content: "\edb6"; } +.ri-ghost-smile-line:before { content: "\edb7"; } +.ri-gift-2-fill:before { content: "\edb8"; } +.ri-gift-2-line:before { content: "\edb9"; } +.ri-gift-fill:before { content: "\edba"; } +.ri-gift-line:before { content: "\edbb"; } +.ri-git-branch-fill:before { content: "\edbc"; } +.ri-git-branch-line:before { content: "\edbd"; } +.ri-git-commit-fill:before { content: "\edbe"; } +.ri-git-commit-line:before { content: "\edbf"; } +.ri-git-merge-fill:before { content: "\edc0"; } +.ri-git-merge-line:before { content: "\edc1"; } +.ri-git-pull-request-fill:before { content: "\edc2"; } +.ri-git-pull-request-line:before { content: "\edc3"; } +.ri-git-repository-commits-fill:before { content: "\edc4"; } +.ri-git-repository-commits-line:before { content: "\edc5"; } +.ri-git-repository-fill:before { content: "\edc6"; } +.ri-git-repository-line:before { content: "\edc7"; } +.ri-git-repository-private-fill:before { content: "\edc8"; } +.ri-git-repository-private-line:before { content: "\edc9"; } +.ri-github-fill:before { content: "\edca"; } +.ri-github-line:before { content: "\edcb"; } +.ri-gitlab-fill:before { content: "\edcc"; } +.ri-gitlab-line:before { content: "\edcd"; } +.ri-global-fill:before { content: "\edce"; } +.ri-global-line:before { content: "\edcf"; } +.ri-globe-fill:before { content: "\edd0"; } +.ri-globe-line:before { content: "\edd1"; } +.ri-goblet-fill:before { content: "\edd2"; } +.ri-goblet-line:before { content: "\edd3"; } +.ri-google-fill:before { content: "\edd4"; } +.ri-google-line:before { content: "\edd5"; } +.ri-google-play-fill:before { content: "\edd6"; } +.ri-google-play-line:before { content: "\edd7"; } +.ri-government-fill:before { content: "\edd8"; } +.ri-government-line:before { content: "\edd9"; } +.ri-gps-fill:before { content: "\edda"; } +.ri-gps-line:before { content: "\eddb"; } +.ri-gradienter-fill:before { content: "\eddc"; } +.ri-gradienter-line:before { content: "\eddd"; } +.ri-grid-fill:before { content: "\edde"; } +.ri-grid-line:before { content: "\eddf"; } +.ri-group-2-fill:before { content: "\ede0"; } +.ri-group-2-line:before { content: "\ede1"; } +.ri-group-fill:before { content: "\ede2"; } +.ri-group-line:before { content: "\ede3"; } +.ri-guide-fill:before { content: "\ede4"; } +.ri-guide-line:before { content: "\ede5"; } +.ri-h-1:before { content: "\ede6"; } +.ri-h-2:before { content: "\ede7"; } +.ri-h-3:before { content: "\ede8"; } +.ri-h-4:before { content: "\ede9"; } +.ri-h-5:before { content: "\edea"; } +.ri-h-6:before { content: "\edeb"; } +.ri-hail-fill:before { content: "\edec"; } +.ri-hail-line:before { content: "\eded"; } +.ri-hammer-fill:before { content: "\edee"; } +.ri-hammer-line:before { content: "\edef"; } +.ri-hand-coin-fill:before { content: "\edf0"; } +.ri-hand-coin-line:before { content: "\edf1"; } +.ri-hand-heart-fill:before { content: "\edf2"; } +.ri-hand-heart-line:before { content: "\edf3"; } +.ri-hand-sanitizer-fill:before { content: "\edf4"; } +.ri-hand-sanitizer-line:before { content: "\edf5"; } +.ri-handbag-fill:before { content: "\edf6"; } +.ri-handbag-line:before { content: "\edf7"; } +.ri-hard-drive-2-fill:before { content: "\edf8"; } +.ri-hard-drive-2-line:before { content: "\edf9"; } +.ri-hard-drive-fill:before { content: "\edfa"; } +.ri-hard-drive-line:before { content: "\edfb"; } +.ri-hashtag:before { content: "\edfc"; } +.ri-haze-2-fill:before { content: "\edfd"; } +.ri-haze-2-line:before { content: "\edfe"; } +.ri-haze-fill:before { content: "\edff"; } +.ri-haze-line:before { content: "\ee00"; } +.ri-hd-fill:before { content: "\ee01"; } +.ri-hd-line:before { content: "\ee02"; } +.ri-heading:before { content: "\ee03"; } +.ri-headphone-fill:before { content: "\ee04"; } +.ri-headphone-line:before { content: "\ee05"; } +.ri-health-book-fill:before { content: "\ee06"; } +.ri-health-book-line:before { content: "\ee07"; } +.ri-heart-2-fill:before { content: "\ee08"; } +.ri-heart-2-line:before { content: "\ee09"; } +.ri-heart-3-fill:before { content: "\ee0a"; } +.ri-heart-3-line:before { content: "\ee0b"; } +.ri-heart-add-fill:before { content: "\ee0c"; } +.ri-heart-add-line:before { content: "\ee0d"; } +.ri-heart-fill:before { content: "\ee0e"; } +.ri-heart-line:before { content: "\ee0f"; } +.ri-heart-pulse-fill:before { content: "\ee10"; } +.ri-heart-pulse-line:before { content: "\ee11"; } +.ri-hearts-fill:before { content: "\ee12"; } +.ri-hearts-line:before { content: "\ee13"; } +.ri-heavy-showers-fill:before { content: "\ee14"; } +.ri-heavy-showers-line:before { content: "\ee15"; } +.ri-history-fill:before { content: "\ee16"; } +.ri-history-line:before { content: "\ee17"; } +.ri-home-2-fill:before { content: "\ee18"; } +.ri-home-2-line:before { content: "\ee19"; } +.ri-home-3-fill:before { content: "\ee1a"; } +.ri-home-3-line:before { content: "\ee1b"; } +.ri-home-4-fill:before { content: "\ee1c"; } +.ri-home-4-line:before { content: "\ee1d"; } +.ri-home-5-fill:before { content: "\ee1e"; } +.ri-home-5-line:before { content: "\ee1f"; } +.ri-home-6-fill:before { content: "\ee20"; } +.ri-home-6-line:before { content: "\ee21"; } +.ri-home-7-fill:before { content: "\ee22"; } +.ri-home-7-line:before { content: "\ee23"; } +.ri-home-8-fill:before { content: "\ee24"; } +.ri-home-8-line:before { content: "\ee25"; } +.ri-home-fill:before { content: "\ee26"; } +.ri-home-gear-fill:before { content: "\ee27"; } +.ri-home-gear-line:before { content: "\ee28"; } +.ri-home-heart-fill:before { content: "\ee29"; } +.ri-home-heart-line:before { content: "\ee2a"; } +.ri-home-line:before { content: "\ee2b"; } +.ri-home-smile-2-fill:before { content: "\ee2c"; } +.ri-home-smile-2-line:before { content: "\ee2d"; } +.ri-home-smile-fill:before { content: "\ee2e"; } +.ri-home-smile-line:before { content: "\ee2f"; } +.ri-home-wifi-fill:before { content: "\ee30"; } +.ri-home-wifi-line:before { content: "\ee31"; } +.ri-honor-of-kings-fill:before { content: "\ee32"; } +.ri-honor-of-kings-line:before { content: "\ee33"; } +.ri-honour-fill:before { content: "\ee34"; } +.ri-honour-line:before { content: "\ee35"; } +.ri-hospital-fill:before { content: "\ee36"; } +.ri-hospital-line:before { content: "\ee37"; } +.ri-hotel-bed-fill:before { content: "\ee38"; } +.ri-hotel-bed-line:before { content: "\ee39"; } +.ri-hotel-fill:before { content: "\ee3a"; } +.ri-hotel-line:before { content: "\ee3b"; } +.ri-hotspot-fill:before { content: "\ee3c"; } +.ri-hotspot-line:before { content: "\ee3d"; } +.ri-hq-fill:before { content: "\ee3e"; } +.ri-hq-line:before { content: "\ee3f"; } +.ri-html5-fill:before { content: "\ee40"; } +.ri-html5-line:before { content: "\ee41"; } +.ri-ie-fill:before { content: "\ee42"; } +.ri-ie-line:before { content: "\ee43"; } +.ri-image-2-fill:before { content: "\ee44"; } +.ri-image-2-line:before { content: "\ee45"; } +.ri-image-add-fill:before { content: "\ee46"; } +.ri-image-add-line:before { content: "\ee47"; } +.ri-image-edit-fill:before { content: "\ee48"; } +.ri-image-edit-line:before { content: "\ee49"; } +.ri-image-fill:before { content: "\ee4a"; } +.ri-image-line:before { content: "\ee4b"; } +.ri-inbox-archive-fill:before { content: "\ee4c"; } +.ri-inbox-archive-line:before { content: "\ee4d"; } +.ri-inbox-fill:before { content: "\ee4e"; } +.ri-inbox-line:before { content: "\ee4f"; } +.ri-inbox-unarchive-fill:before { content: "\ee50"; } +.ri-inbox-unarchive-line:before { content: "\ee51"; } +.ri-increase-decrease-fill:before { content: "\ee52"; } +.ri-increase-decrease-line:before { content: "\ee53"; } +.ri-indent-decrease:before { content: "\ee54"; } +.ri-indent-increase:before { content: "\ee55"; } +.ri-indeterminate-circle-fill:before { content: "\ee56"; } +.ri-indeterminate-circle-line:before { content: "\ee57"; } +.ri-information-fill:before { content: "\ee58"; } +.ri-information-line:before { content: "\ee59"; } +.ri-infrared-thermometer-fill:before { content: "\ee5a"; } +.ri-infrared-thermometer-line:before { content: "\ee5b"; } +.ri-ink-bottle-fill:before { content: "\ee5c"; } +.ri-ink-bottle-line:before { content: "\ee5d"; } +.ri-input-cursor-move:before { content: "\ee5e"; } +.ri-input-method-fill:before { content: "\ee5f"; } +.ri-input-method-line:before { content: "\ee60"; } +.ri-insert-column-left:before { content: "\ee61"; } +.ri-insert-column-right:before { content: "\ee62"; } +.ri-insert-row-bottom:before { content: "\ee63"; } +.ri-insert-row-top:before { content: "\ee64"; } +.ri-instagram-fill:before { content: "\ee65"; } +.ri-instagram-line:before { content: "\ee66"; } +.ri-install-fill:before { content: "\ee67"; } +.ri-install-line:before { content: "\ee68"; } +.ri-invision-fill:before { content: "\ee69"; } +.ri-invision-line:before { content: "\ee6a"; } +.ri-italic:before { content: "\ee6b"; } +.ri-kakao-talk-fill:before { content: "\ee6c"; } +.ri-kakao-talk-line:before { content: "\ee6d"; } +.ri-key-2-fill:before { content: "\ee6e"; } +.ri-key-2-line:before { content: "\ee6f"; } +.ri-key-fill:before { content: "\ee70"; } +.ri-key-line:before { content: "\ee71"; } +.ri-keyboard-box-fill:before { content: "\ee72"; } +.ri-keyboard-box-line:before { content: "\ee73"; } +.ri-keyboard-fill:before { content: "\ee74"; } +.ri-keyboard-line:before { content: "\ee75"; } +.ri-keynote-fill:before { content: "\ee76"; } +.ri-keynote-line:before { content: "\ee77"; } +.ri-knife-blood-fill:before { content: "\ee78"; } +.ri-knife-blood-line:before { content: "\ee79"; } +.ri-knife-fill:before { content: "\ee7a"; } +.ri-knife-line:before { content: "\ee7b"; } +.ri-landscape-fill:before { content: "\ee7c"; } +.ri-landscape-line:before { content: "\ee7d"; } +.ri-layout-2-fill:before { content: "\ee7e"; } +.ri-layout-2-line:before { content: "\ee7f"; } +.ri-layout-3-fill:before { content: "\ee80"; } +.ri-layout-3-line:before { content: "\ee81"; } +.ri-layout-4-fill:before { content: "\ee82"; } +.ri-layout-4-line:before { content: "\ee83"; } +.ri-layout-5-fill:before { content: "\ee84"; } +.ri-layout-5-line:before { content: "\ee85"; } +.ri-layout-6-fill:before { content: "\ee86"; } +.ri-layout-6-line:before { content: "\ee87"; } +.ri-layout-bottom-2-fill:before { content: "\ee88"; } +.ri-layout-bottom-2-line:before { content: "\ee89"; } +.ri-layout-bottom-fill:before { content: "\ee8a"; } +.ri-layout-bottom-line:before { content: "\ee8b"; } +.ri-layout-column-fill:before { content: "\ee8c"; } +.ri-layout-column-line:before { content: "\ee8d"; } +.ri-layout-fill:before { content: "\ee8e"; } +.ri-layout-grid-fill:before { content: "\ee8f"; } +.ri-layout-grid-line:before { content: "\ee90"; } +.ri-layout-left-2-fill:before { content: "\ee91"; } +.ri-layout-left-2-line:before { content: "\ee92"; } +.ri-layout-left-fill:before { content: "\ee93"; } +.ri-layout-left-line:before { content: "\ee94"; } +.ri-layout-line:before { content: "\ee95"; } +.ri-layout-masonry-fill:before { content: "\ee96"; } +.ri-layout-masonry-line:before { content: "\ee97"; } +.ri-layout-right-2-fill:before { content: "\ee98"; } +.ri-layout-right-2-line:before { content: "\ee99"; } +.ri-layout-right-fill:before { content: "\ee9a"; } +.ri-layout-right-line:before { content: "\ee9b"; } +.ri-layout-row-fill:before { content: "\ee9c"; } +.ri-layout-row-line:before { content: "\ee9d"; } +.ri-layout-top-2-fill:before { content: "\ee9e"; } +.ri-layout-top-2-line:before { content: "\ee9f"; } +.ri-layout-top-fill:before { content: "\eea0"; } +.ri-layout-top-line:before { content: "\eea1"; } +.ri-leaf-fill:before { content: "\eea2"; } +.ri-leaf-line:before { content: "\eea3"; } +.ri-lifebuoy-fill:before { content: "\eea4"; } +.ri-lifebuoy-line:before { content: "\eea5"; } +.ri-lightbulb-fill:before { content: "\eea6"; } +.ri-lightbulb-flash-fill:before { content: "\eea7"; } +.ri-lightbulb-flash-line:before { content: "\eea8"; } +.ri-lightbulb-line:before { content: "\eea9"; } +.ri-line-chart-fill:before { content: "\eeaa"; } +.ri-line-chart-line:before { content: "\eeab"; } +.ri-line-fill:before { content: "\eeac"; } +.ri-line-height:before { content: "\eead"; } +.ri-line-line:before { content: "\eeae"; } +.ri-link-m:before { content: "\eeaf"; } +.ri-link-unlink-m:before { content: "\eeb0"; } +.ri-link-unlink:before { content: "\eeb1"; } +.ri-link:before { content: "\eeb2"; } +.ri-linkedin-box-fill:before { content: "\eeb3"; } +.ri-linkedin-box-line:before { content: "\eeb4"; } +.ri-linkedin-fill:before { content: "\eeb5"; } +.ri-linkedin-line:before { content: "\eeb6"; } +.ri-links-fill:before { content: "\eeb7"; } +.ri-links-line:before { content: "\eeb8"; } +.ri-list-check-2:before { content: "\eeb9"; } +.ri-list-check:before { content: "\eeba"; } +.ri-list-ordered:before { content: "\eebb"; } +.ri-list-settings-fill:before { content: "\eebc"; } +.ri-list-settings-line:before { content: "\eebd"; } +.ri-list-unordered:before { content: "\eebe"; } +.ri-live-fill:before { content: "\eebf"; } +.ri-live-line:before { content: "\eec0"; } +.ri-loader-2-fill:before { content: "\eec1"; } +.ri-loader-2-line:before { content: "\eec2"; } +.ri-loader-3-fill:before { content: "\eec3"; } +.ri-loader-3-line:before { content: "\eec4"; } +.ri-loader-4-fill:before { content: "\eec5"; } +.ri-loader-4-line:before { content: "\eec6"; } +.ri-loader-5-fill:before { content: "\eec7"; } +.ri-loader-5-line:before { content: "\eec8"; } +.ri-loader-fill:before { content: "\eec9"; } +.ri-loader-line:before { content: "\eeca"; } +.ri-lock-2-fill:before { content: "\eecb"; } +.ri-lock-2-line:before { content: "\eecc"; } +.ri-lock-fill:before { content: "\eecd"; } +.ri-lock-line:before { content: "\eece"; } +.ri-lock-password-fill:before { content: "\eecf"; } +.ri-lock-password-line:before { content: "\eed0"; } +.ri-lock-unlock-fill:before { content: "\eed1"; } +.ri-lock-unlock-line:before { content: "\eed2"; } +.ri-Iniciar Sesion-box-fill:before { content: "\eed3"; } +.ri-Iniciar Sesion-box-line:before { content: "\eed4"; } +.ri-Iniciar Sesion-circle-fill:before { content: "\eed5"; } +.ri-Iniciar Sesion-circle-line:before { content: "\eed6"; } +.ri-logout-box-fill:before { content: "\eed7"; } +.ri-logout-box-line:before { content: "\eed8"; } +.ri-logout-box-r-fill:before { content: "\eed9"; } +.ri-logout-box-r-line:before { content: "\eeda"; } +.ri-logout-circle-fill:before { content: "\eedb"; } +.ri-logout-circle-line:before { content: "\eedc"; } +.ri-logout-circle-r-fill:before { content: "\eedd"; } +.ri-logout-circle-r-line:before { content: "\eede"; } +.ri-luggage-cart-fill:before { content: "\eedf"; } +.ri-luggage-cart-line:before { content: "\eee0"; } +.ri-luggage-deposit-fill:before { content: "\eee1"; } +.ri-luggage-deposit-line:before { content: "\eee2"; } +.ri-lungs-fill:before { content: "\eee3"; } +.ri-lungs-line:before { content: "\eee4"; } +.ri-mac-fill:before { content: "\eee5"; } +.ri-mac-line:before { content: "\eee6"; } +.ri-macbook-fill:before { content: "\eee7"; } +.ri-macbook-line:before { content: "\eee8"; } +.ri-magic-fill:before { content: "\eee9"; } +.ri-magic-line:before { content: "\eeea"; } +.ri-mail-add-fill:before { content: "\eeeb"; } +.ri-mail-add-line:before { content: "\eeec"; } +.ri-mail-check-fill:before { content: "\eeed"; } +.ri-mail-check-line:before { content: "\eeee"; } +.ri-mail-close-fill:before { content: "\eeef"; } +.ri-mail-close-line:before { content: "\eef0"; } +.ri-mail-download-fill:before { content: "\eef1"; } +.ri-mail-download-line:before { content: "\eef2"; } +.ri-mail-fill:before { content: "\eef3"; } +.ri-mail-forbid-fill:before { content: "\eef4"; } +.ri-mail-forbid-line:before { content: "\eef5"; } +.ri-mail-line:before { content: "\eef6"; } +.ri-mail-lock-fill:before { content: "\eef7"; } +.ri-mail-lock-line:before { content: "\eef8"; } +.ri-mail-open-fill:before { content: "\eef9"; } +.ri-mail-open-line:before { content: "\eefa"; } +.ri-mail-send-fill:before { content: "\eefb"; } +.ri-mail-send-line:before { content: "\eefc"; } +.ri-mail-settings-fill:before { content: "\eefd"; } +.ri-mail-settings-line:before { content: "\eefe"; } +.ri-mail-star-fill:before { content: "\eeff"; } +.ri-mail-star-line:before { content: "\ef00"; } +.ri-mail-unread-fill:before { content: "\ef01"; } +.ri-mail-unread-line:before { content: "\ef02"; } +.ri-mail-volume-fill:before { content: "\ef03"; } +.ri-mail-volume-line:before { content: "\ef04"; } +.ri-map-2-fill:before { content: "\ef05"; } +.ri-map-2-line:before { content: "\ef06"; } +.ri-map-fill:before { content: "\ef07"; } +.ri-map-line:before { content: "\ef08"; } +.ri-map-pin-2-fill:before { content: "\ef09"; } +.ri-map-pin-2-line:before { content: "\ef0a"; } +.ri-map-pin-3-fill:before { content: "\ef0b"; } +.ri-map-pin-3-line:before { content: "\ef0c"; } +.ri-map-pin-4-fill:before { content: "\ef0d"; } +.ri-map-pin-4-line:before { content: "\ef0e"; } +.ri-map-pin-5-fill:before { content: "\ef0f"; } +.ri-map-pin-5-line:before { content: "\ef10"; } +.ri-map-pin-add-fill:before { content: "\ef11"; } +.ri-map-pin-add-line:before { content: "\ef12"; } +.ri-map-pin-fill:before { content: "\ef13"; } +.ri-map-pin-line:before { content: "\ef14"; } +.ri-map-pin-range-fill:before { content: "\ef15"; } +.ri-map-pin-range-line:before { content: "\ef16"; } +.ri-map-pin-time-fill:before { content: "\ef17"; } +.ri-map-pin-time-line:before { content: "\ef18"; } +.ri-map-pin-user-fill:before { content: "\ef19"; } +.ri-map-pin-user-line:before { content: "\ef1a"; } +.ri-mark-pen-fill:before { content: "\ef1b"; } +.ri-mark-pen-line:before { content: "\ef1c"; } +.ri-markdown-fill:before { content: "\ef1d"; } +.ri-markdown-line:before { content: "\ef1e"; } +.ri-markup-fill:before { content: "\ef1f"; } +.ri-markup-line:before { content: "\ef20"; } +.ri-mastercard-fill:before { content: "\ef21"; } +.ri-mastercard-line:before { content: "\ef22"; } +.ri-mastodon-fill:before { content: "\ef23"; } +.ri-mastodon-line:before { content: "\ef24"; } +.ri-medal-2-fill:before { content: "\ef25"; } +.ri-medal-2-line:before { content: "\ef26"; } +.ri-medal-fill:before { content: "\ef27"; } +.ri-medal-line:before { content: "\ef28"; } +.ri-medicine-bottle-fill:before { content: "\ef29"; } +.ri-medicine-bottle-line:before { content: "\ef2a"; } +.ri-medium-fill:before { content: "\ef2b"; } +.ri-medium-line:before { content: "\ef2c"; } +.ri-men-fill:before { content: "\ef2d"; } +.ri-men-line:before { content: "\ef2e"; } +.ri-mental-health-fill:before { content: "\ef2f"; } +.ri-mental-health-line:before { content: "\ef30"; } +.ri-menu-2-fill:before { content: "\ef31"; } +.ri-menu-2-line:before { content: "\ef32"; } +.ri-menu-3-fill:before { content: "\ef33"; } +.ri-menu-3-line:before { content: "\ef34"; } +.ri-menu-4-fill:before { content: "\ef35"; } +.ri-menu-4-line:before { content: "\ef36"; } +.ri-menu-5-fill:before { content: "\ef37"; } +.ri-menu-5-line:before { content: "\ef38"; } +.ri-menu-add-fill:before { content: "\ef39"; } +.ri-menu-add-line:before { content: "\ef3a"; } +.ri-menu-fill:before { content: "\ef3b"; } +.ri-menu-fold-fill:before { content: "\ef3c"; } +.ri-menu-fold-line:before { content: "\ef3d"; } +.ri-menu-line:before { content: "\ef3e"; } +.ri-menu-unfold-fill:before { content: "\ef3f"; } +.ri-menu-unfold-line:before { content: "\ef40"; } +.ri-merge-cells-horizontal:before { content: "\ef41"; } +.ri-merge-cells-vertical:before { content: "\ef42"; } +.ri-message-2-fill:before { content: "\ef43"; } +.ri-message-2-line:before { content: "\ef44"; } +.ri-message-3-fill:before { content: "\ef45"; } +.ri-message-3-line:before { content: "\ef46"; } +.ri-message-fill:before { content: "\ef47"; } +.ri-message-line:before { content: "\ef48"; } +.ri-messenger-fill:before { content: "\ef49"; } +.ri-messenger-line:before { content: "\ef4a"; } +.ri-meteor-fill:before { content: "\ef4b"; } +.ri-meteor-line:before { content: "\ef4c"; } +.ri-mic-2-fill:before { content: "\ef4d"; } +.ri-mic-2-line:before { content: "\ef4e"; } +.ri-mic-fill:before { content: "\ef4f"; } +.ri-mic-line:before { content: "\ef50"; } +.ri-mic-off-fill:before { content: "\ef51"; } +.ri-mic-off-line:before { content: "\ef52"; } +.ri-mickey-fill:before { content: "\ef53"; } +.ri-mickey-line:before { content: "\ef54"; } +.ri-microscope-fill:before { content: "\ef55"; } +.ri-microscope-line:before { content: "\ef56"; } +.ri-microsoft-fill:before { content: "\ef57"; } +.ri-microsoft-line:before { content: "\ef58"; } +.ri-mind-map:before { content: "\ef59"; } +.ri-mini-program-fill:before { content: "\ef5a"; } +.ri-mini-program-line:before { content: "\ef5b"; } +.ri-mist-fill:before { content: "\ef5c"; } +.ri-mist-line:before { content: "\ef5d"; } +.ri-money-cny-box-fill:before { content: "\ef5e"; } +.ri-money-cny-box-line:before { content: "\ef5f"; } +.ri-money-cny-circle-fill:before { content: "\ef60"; } +.ri-money-cny-circle-line:before { content: "\ef61"; } +.ri-money-dollar-box-fill:before { content: "\ef62"; } +.ri-money-dollar-box-line:before { content: "\ef63"; } +.ri-money-dollar-circle-fill:before { content: "\ef64"; } +.ri-money-dollar-circle-line:before { content: "\ef65"; } +.ri-money-euro-box-fill:before { content: "\ef66"; } +.ri-money-euro-box-line:before { content: "\ef67"; } +.ri-money-euro-circle-fill:before { content: "\ef68"; } +.ri-money-euro-circle-line:before { content: "\ef69"; } +.ri-money-pound-box-fill:before { content: "\ef6a"; } +.ri-money-pound-box-line:before { content: "\ef6b"; } +.ri-money-pound-circle-fill:before { content: "\ef6c"; } +.ri-money-pound-circle-line:before { content: "\ef6d"; } +.ri-moon-clear-fill:before { content: "\ef6e"; } +.ri-moon-clear-line:before { content: "\ef6f"; } +.ri-moon-cloudy-fill:before { content: "\ef70"; } +.ri-moon-cloudy-line:before { content: "\ef71"; } +.ri-moon-fill:before { content: "\ef72"; } +.ri-moon-foggy-fill:before { content: "\ef73"; } +.ri-moon-foggy-line:before { content: "\ef74"; } +.ri-moon-line:before { content: "\ef75"; } +.ri-more-2-fill:before { content: "\ef76"; } +.ri-more-2-line:before { content: "\ef77"; } +.ri-more-fill:before { content: "\ef78"; } +.ri-more-line:before { content: "\ef79"; } +.ri-motorbike-fill:before { content: "\ef7a"; } +.ri-motorbike-line:before { content: "\ef7b"; } +.ri-mouse-fill:before { content: "\ef7c"; } +.ri-mouse-line:before { content: "\ef7d"; } +.ri-movie-2-fill:before { content: "\ef7e"; } +.ri-movie-2-line:before { content: "\ef7f"; } +.ri-movie-fill:before { content: "\ef80"; } +.ri-movie-line:before { content: "\ef81"; } +.ri-music-2-fill:before { content: "\ef82"; } +.ri-music-2-line:before { content: "\ef83"; } +.ri-music-fill:before { content: "\ef84"; } +.ri-music-line:before { content: "\ef85"; } +.ri-mv-fill:before { content: "\ef86"; } +.ri-mv-line:before { content: "\ef87"; } +.ri-navigation-fill:before { content: "\ef88"; } +.ri-navigation-line:before { content: "\ef89"; } +.ri-netease-cloud-music-fill:before { content: "\ef8a"; } +.ri-netease-cloud-music-line:before { content: "\ef8b"; } +.ri-netflix-fill:before { content: "\ef8c"; } +.ri-netflix-line:before { content: "\ef8d"; } +.ri-newspaper-fill:before { content: "\ef8e"; } +.ri-newspaper-line:before { content: "\ef8f"; } +.ri-node-tree:before { content: "\ef90"; } +.ri-notification-2-fill:before { content: "\ef91"; } +.ri-notification-2-line:before { content: "\ef92"; } +.ri-notification-3-fill:before { content: "\ef93"; } +.ri-notification-3-line:before { content: "\ef94"; } +.ri-notification-4-fill:before { content: "\ef95"; } +.ri-notification-4-line:before { content: "\ef96"; } +.ri-notification-badge-fill:before { content: "\ef97"; } +.ri-notification-badge-line:before { content: "\ef98"; } +.ri-notification-fill:before { content: "\ef99"; } +.ri-notification-line:before { content: "\ef9a"; } +.ri-notification-off-fill:before { content: "\ef9b"; } +.ri-notification-off-line:before { content: "\ef9c"; } +.ri-npmjs-fill:before { content: "\ef9d"; } +.ri-npmjs-line:before { content: "\ef9e"; } +.ri-number-0:before { content: "\ef9f"; } +.ri-number-1:before { content: "\efa0"; } +.ri-number-2:before { content: "\efa1"; } +.ri-number-3:before { content: "\efa2"; } +.ri-number-4:before { content: "\efa3"; } +.ri-number-5:before { content: "\efa4"; } +.ri-number-6:before { content: "\efa5"; } +.ri-number-7:before { content: "\efa6"; } +.ri-number-8:before { content: "\efa7"; } +.ri-number-9:before { content: "\efa8"; } +.ri-numbers-fill:before { content: "\efa9"; } +.ri-numbers-line:before { content: "\efaa"; } +.ri-nurse-fill:before { content: "\efab"; } +.ri-nurse-line:before { content: "\efac"; } +.ri-oil-fill:before { content: "\efad"; } +.ri-oil-line:before { content: "\efae"; } +.ri-omega:before { content: "\efaf"; } +.ri-open-arm-fill:before { content: "\efb0"; } +.ri-open-arm-line:before { content: "\efb1"; } +.ri-open-source-fill:before { content: "\efb2"; } +.ri-open-source-line:before { content: "\efb3"; } +.ri-opera-fill:before { content: "\efb4"; } +.ri-opera-line:before { content: "\efb5"; } +.ri-order-play-fill:before { content: "\efb6"; } +.ri-order-play-line:before { content: "\efb7"; } +.ri-organization-chart:before { content: "\efb8"; } +.ri-outlet-2-fill:before { content: "\efb9"; } +.ri-outlet-2-line:before { content: "\efba"; } +.ri-outlet-fill:before { content: "\efbb"; } +.ri-outlet-line:before { content: "\efbc"; } +.ri-page-separator:before { content: "\efbd"; } +.ri-pages-fill:before { content: "\efbe"; } +.ri-pages-line:before { content: "\efbf"; } +.ri-paint-brush-fill:before { content: "\efc0"; } +.ri-paint-brush-line:before { content: "\efc1"; } +.ri-paint-fill:before { content: "\efc2"; } +.ri-paint-line:before { content: "\efc3"; } +.ri-palette-fill:before { content: "\efc4"; } +.ri-palette-line:before { content: "\efc5"; } +.ri-pantone-fill:before { content: "\efc6"; } +.ri-pantone-line:before { content: "\efc7"; } +.ri-paragraph:before { content: "\efc8"; } +.ri-parent-fill:before { content: "\efc9"; } +.ri-parent-line:before { content: "\efca"; } +.ri-parentheses-fill:before { content: "\efcb"; } +.ri-parentheses-line:before { content: "\efcc"; } +.ri-parking-box-fill:before { content: "\efcd"; } +.ri-parking-box-line:before { content: "\efce"; } +.ri-parking-fill:before { content: "\efcf"; } +.ri-parking-line:before { content: "\efd0"; } +.ri-passport-fill:before { content: "\efd1"; } +.ri-passport-line:before { content: "\efd2"; } +.ri-patreon-fill:before { content: "\efd3"; } +.ri-patreon-line:before { content: "\efd4"; } +.ri-pause-circle-fill:before { content: "\efd5"; } +.ri-pause-circle-line:before { content: "\efd6"; } +.ri-pause-fill:before { content: "\efd7"; } +.ri-pause-line:before { content: "\efd8"; } +.ri-pause-mini-fill:before { content: "\efd9"; } +.ri-pause-mini-line:before { content: "\efda"; } +.ri-paypal-fill:before { content: "\efdb"; } +.ri-paypal-line:before { content: "\efdc"; } +.ri-pen-nib-fill:before { content: "\efdd"; } +.ri-pen-nib-line:before { content: "\efde"; } +.ri-pencil-fill:before { content: "\efdf"; } +.ri-pencil-line:before { content: "\efe0"; } +.ri-pencil-ruler-2-fill:before { content: "\efe1"; } +.ri-pencil-ruler-2-line:before { content: "\efe2"; } +.ri-pencil-ruler-fill:before { content: "\efe3"; } +.ri-pencil-ruler-line:before { content: "\efe4"; } +.ri-percent-fill:before { content: "\efe5"; } +.ri-percent-line:before { content: "\efe6"; } +.ri-phone-camera-fill:before { content: "\efe7"; } +.ri-phone-camera-line:before { content: "\efe8"; } +.ri-phone-fill:before { content: "\efe9"; } +.ri-phone-find-fill:before { content: "\efea"; } +.ri-phone-find-line:before { content: "\efeb"; } +.ri-phone-line:before { content: "\efec"; } +.ri-phone-lock-fill:before { content: "\efed"; } +.ri-phone-lock-line:before { content: "\efee"; } +.ri-picture-in-picture-2-fill:before { content: "\efef"; } +.ri-picture-in-picture-2-line:before { content: "\eff0"; } +.ri-picture-in-picture-exit-fill:before { content: "\eff1"; } +.ri-picture-in-picture-exit-line:before { content: "\eff2"; } +.ri-picture-in-picture-fill:before { content: "\eff3"; } +.ri-picture-in-picture-line:before { content: "\eff4"; } +.ri-pie-chart-2-fill:before { content: "\eff5"; } +.ri-pie-chart-2-line:before { content: "\eff6"; } +.ri-pie-chart-box-fill:before { content: "\eff7"; } +.ri-pie-chart-box-line:before { content: "\eff8"; } +.ri-pie-chart-fill:before { content: "\eff9"; } +.ri-pie-chart-line:before { content: "\effa"; } +.ri-pin-distance-fill:before { content: "\effb"; } +.ri-pin-distance-line:before { content: "\effc"; } +.ri-ping-pong-fill:before { content: "\effd"; } +.ri-ping-pong-line:before { content: "\effe"; } +.ri-pinterest-fill:before { content: "\efff"; } +.ri-pinterest-line:before { content: "\f000"; } +.ri-pinyin-input:before { content: "\f001"; } +.ri-pixelfed-fill:before { content: "\f002"; } +.ri-pixelfed-line:before { content: "\f003"; } +.ri-plane-fill:before { content: "\f004"; } +.ri-plane-line:before { content: "\f005"; } +.ri-plant-fill:before { content: "\f006"; } +.ri-plant-line:before { content: "\f007"; } +.ri-play-circle-fill:before { content: "\f008"; } +.ri-play-circle-line:before { content: "\f009"; } +.ri-play-fill:before { content: "\f00a"; } +.ri-play-line:before { content: "\f00b"; } +.ri-play-list-2-fill:before { content: "\f00c"; } +.ri-play-list-2-line:before { content: "\f00d"; } +.ri-play-list-add-fill:before { content: "\f00e"; } +.ri-play-list-add-line:before { content: "\f00f"; } +.ri-play-list-fill:before { content: "\f010"; } +.ri-play-list-line:before { content: "\f011"; } +.ri-play-mini-fill:before { content: "\f012"; } +.ri-play-mini-line:before { content: "\f013"; } +.ri-playstation-fill:before { content: "\f014"; } +.ri-playstation-line:before { content: "\f015"; } +.ri-plug-2-fill:before { content: "\f016"; } +.ri-plug-2-line:before { content: "\f017"; } +.ri-plug-fill:before { content: "\f018"; } +.ri-plug-line:before { content: "\f019"; } +.ri-polaroid-2-fill:before { content: "\f01a"; } +.ri-polaroid-2-line:before { content: "\f01b"; } +.ri-polaroid-fill:before { content: "\f01c"; } +.ri-polaroid-line:before { content: "\f01d"; } +.ri-police-car-fill:before { content: "\f01e"; } +.ri-police-car-line:before { content: "\f01f"; } +.ri-price-tag-2-fill:before { content: "\f020"; } +.ri-price-tag-2-line:before { content: "\f021"; } +.ri-price-tag-3-fill:before { content: "\f022"; } +.ri-price-tag-3-line:before { content: "\f023"; } +.ri-price-tag-fill:before { content: "\f024"; } +.ri-price-tag-line:before { content: "\f025"; } +.ri-printer-cloud-fill:before { content: "\f026"; } +.ri-printer-cloud-line:before { content: "\f027"; } +.ri-printer-fill:before { content: "\f028"; } +.ri-printer-line:before { content: "\f029"; } +.ri-product-hunt-fill:before { content: "\f02a"; } +.ri-product-hunt-line:before { content: "\f02b"; } +.ri-Perfil-fill:before { content: "\f02c"; } +.ri-Perfil-line:before { content: "\f02d"; } +.ri-projector-2-fill:before { content: "\f02e"; } +.ri-projector-2-line:before { content: "\f02f"; } +.ri-projector-fill:before { content: "\f030"; } +.ri-projector-line:before { content: "\f031"; } +.ri-psychotherapy-fill:before { content: "\f032"; } +.ri-psychotherapy-line:before { content: "\f033"; } +.ri-pulse-fill:before { content: "\f034"; } +.ri-pulse-line:before { content: "\f035"; } +.ri-pushpin-2-fill:before { content: "\f036"; } +.ri-pushpin-2-line:before { content: "\f037"; } +.ri-pushpin-fill:before { content: "\f038"; } +.ri-pushpin-line:before { content: "\f039"; } +.ri-qq-fill:before { content: "\f03a"; } +.ri-qq-line:before { content: "\f03b"; } +.ri-qr-code-fill:before { content: "\f03c"; } +.ri-qr-code-line:before { content: "\f03d"; } +.ri-qr-scan-2-fill:before { content: "\f03e"; } +.ri-qr-scan-2-line:before { content: "\f03f"; } +.ri-qr-scan-fill:before { content: "\f040"; } +.ri-qr-scan-line:before { content: "\f041"; } +.ri-question-answer-fill:before { content: "\f042"; } +.ri-question-answer-line:before { content: "\f043"; } +.ri-question-fill:before { content: "\f044"; } +.ri-question-line:before { content: "\f045"; } +.ri-question-mark:before { content: "\f046"; } +.ri-questionnaire-fill:before { content: "\f047"; } +.ri-questionnaire-line:before { content: "\f048"; } +.ri-quill-pen-fill:before { content: "\f049"; } +.ri-quill-pen-line:before { content: "\f04a"; } +.ri-radar-fill:before { content: "\f04b"; } +.ri-radar-line:before { content: "\f04c"; } +.ri-radio-2-fill:before { content: "\f04d"; } +.ri-radio-2-line:before { content: "\f04e"; } +.ri-radio-button-fill:before { content: "\f04f"; } +.ri-radio-button-line:before { content: "\f050"; } +.ri-radio-fill:before { content: "\f051"; } +.ri-radio-line:before { content: "\f052"; } +.ri-rainbow-fill:before { content: "\f053"; } +.ri-rainbow-line:before { content: "\f054"; } +.ri-rainy-fill:before { content: "\f055"; } +.ri-rainy-line:before { content: "\f056"; } +.ri-reactjs-fill:before { content: "\f057"; } +.ri-reactjs-line:before { content: "\f058"; } +.ri-record-circle-fill:before { content: "\f059"; } +.ri-record-circle-line:before { content: "\f05a"; } +.ri-record-mail-fill:before { content: "\f05b"; } +.ri-record-mail-line:before { content: "\f05c"; } +.ri-recycle-fill:before { content: "\f05d"; } +.ri-recycle-line:before { content: "\f05e"; } +.ri-red-packet-fill:before { content: "\f05f"; } +.ri-red-packet-line:before { content: "\f060"; } +.ri-reddit-fill:before { content: "\f061"; } +.ri-reddit-line:before { content: "\f062"; } +.ri-refresh-fill:before { content: "\f063"; } +.ri-refresh-line:before { content: "\f064"; } +.ri-refund-2-fill:before { content: "\f065"; } +.ri-refund-2-line:before { content: "\f066"; } +.ri-refund-fill:before { content: "\f067"; } +.ri-refund-line:before { content: "\f068"; } +.ri-Registroed-fill:before { content: "\f069"; } +.ri-Registroed-line:before { content: "\f06a"; } +.ri-remixicon-fill:before { content: "\f06b"; } +.ri-remixicon-line:before { content: "\f06c"; } +.ri-remote-control-2-fill:before { content: "\f06d"; } +.ri-remote-control-2-line:before { content: "\f06e"; } +.ri-remote-control-fill:before { content: "\f06f"; } +.ri-remote-control-line:before { content: "\f070"; } +.ri-repeat-2-fill:before { content: "\f071"; } +.ri-repeat-2-line:before { content: "\f072"; } +.ri-repeat-fill:before { content: "\f073"; } +.ri-repeat-line:before { content: "\f074"; } +.ri-repeat-one-fill:before { content: "\f075"; } +.ri-repeat-one-line:before { content: "\f076"; } +.ri-reply-all-fill:before { content: "\f077"; } +.ri-reply-all-line:before { content: "\f078"; } +.ri-reply-fill:before { content: "\f079"; } +.ri-reply-line:before { content: "\f07a"; } +.ri-reserved-fill:before { content: "\f07b"; } +.ri-reserved-line:before { content: "\f07c"; } +.ri-rest-time-fill:before { content: "\f07d"; } +.ri-rest-time-line:before { content: "\f07e"; } +.ri-restart-fill:before { content: "\f07f"; } +.ri-restart-line:before { content: "\f080"; } +.ri-restaurant-2-fill:before { content: "\f081"; } +.ri-restaurant-2-line:before { content: "\f082"; } +.ri-restaurant-fill:before { content: "\f083"; } +.ri-restaurant-line:before { content: "\f084"; } +.ri-rewind-fill:before { content: "\f085"; } +.ri-rewind-line:before { content: "\f086"; } +.ri-rewind-mini-fill:before { content: "\f087"; } +.ri-rewind-mini-line:before { content: "\f088"; } +.ri-rhythm-fill:before { content: "\f089"; } +.ri-rhythm-line:before { content: "\f08a"; } +.ri-riding-fill:before { content: "\f08b"; } +.ri-riding-line:before { content: "\f08c"; } +.ri-road-map-fill:before { content: "\f08d"; } +.ri-road-map-line:before { content: "\f08e"; } +.ri-roadster-fill:before { content: "\f08f"; } +.ri-roadster-line:before { content: "\f090"; } +.ri-robot-fill:before { content: "\f091"; } +.ri-robot-line:before { content: "\f092"; } +.ri-rocket-2-fill:before { content: "\f093"; } +.ri-rocket-2-line:before { content: "\f094"; } +.ri-rocket-fill:before { content: "\f095"; } +.ri-rocket-line:before { content: "\f096"; } +.ri-rotate-lock-fill:before { content: "\f097"; } +.ri-rotate-lock-line:before { content: "\f098"; } +.ri-rounded-corner:before { content: "\f099"; } +.ri-route-fill:before { content: "\f09a"; } +.ri-route-line:before { content: "\f09b"; } +.ri-router-fill:before { content: "\f09c"; } +.ri-router-line:before { content: "\f09d"; } +.ri-rss-fill:before { content: "\f09e"; } +.ri-rss-line:before { content: "\f09f"; } +.ri-ruler-2-fill:before { content: "\f0a0"; } +.ri-ruler-2-line:before { content: "\f0a1"; } +.ri-ruler-fill:before { content: "\f0a2"; } +.ri-ruler-line:before { content: "\f0a3"; } +.ri-run-fill:before { content: "\f0a4"; } +.ri-run-line:before { content: "\f0a5"; } +.ri-safari-fill:before { content: "\f0a6"; } +.ri-safari-line:before { content: "\f0a7"; } +.ri-safe-2-fill:before { content: "\f0a8"; } +.ri-safe-2-line:before { content: "\f0a9"; } +.ri-safe-fill:before { content: "\f0aa"; } +.ri-safe-line:before { content: "\f0ab"; } +.ri-sailboat-fill:before { content: "\f0ac"; } +.ri-sailboat-line:before { content: "\f0ad"; } +.ri-save-2-fill:before { content: "\f0ae"; } +.ri-save-2-line:before { content: "\f0af"; } +.ri-save-3-fill:before { content: "\f0b0"; } +.ri-save-3-line:before { content: "\f0b1"; } +.ri-save-fill:before { content: "\f0b2"; } +.ri-save-line:before { content: "\f0b3"; } +.ri-scales-2-fill:before { content: "\f0b4"; } +.ri-scales-2-line:before { content: "\f0b5"; } +.ri-scales-3-fill:before { content: "\f0b6"; } +.ri-scales-3-line:before { content: "\f0b7"; } +.ri-scales-fill:before { content: "\f0b8"; } +.ri-scales-line:before { content: "\f0b9"; } +.ri-scan-2-fill:before { content: "\f0ba"; } +.ri-scan-2-line:before { content: "\f0bb"; } +.ri-scan-fill:before { content: "\f0bc"; } +.ri-scan-line:before { content: "\f0bd"; } +.ri-scissors-2-fill:before { content: "\f0be"; } +.ri-scissors-2-line:before { content: "\f0bf"; } +.ri-scissors-cut-fill:before { content: "\f0c0"; } +.ri-scissors-cut-line:before { content: "\f0c1"; } +.ri-scissors-fill:before { content: "\f0c2"; } +.ri-scissors-line:before { content: "\f0c3"; } +.ri-screenshot-2-fill:before { content: "\f0c4"; } +.ri-screenshot-2-line:before { content: "\f0c5"; } +.ri-screenshot-fill:before { content: "\f0c6"; } +.ri-screenshot-line:before { content: "\f0c7"; } +.ri-sd-card-fill:before { content: "\f0c8"; } +.ri-sd-card-line:before { content: "\f0c9"; } +.ri-sd-card-mini-fill:before { content: "\f0ca"; } +.ri-sd-card-mini-line:before { content: "\f0cb"; } +.ri-Buscar-2-fill:before { content: "\f0cc"; } +.ri-Buscar-2-line:before { content: "\f0cd"; } +.ri-Buscar-eye-fill:before { content: "\f0ce"; } +.ri-Buscar-eye-line:before { content: "\f0cf"; } +.ri-Buscar-fill:before { content: "\f0d0"; } +.ri-Buscar-line:before { content: "\f0d1"; } +.ri-secure-payment-fill:before { content: "\f0d2"; } +.ri-secure-payment-line:before { content: "\f0d3"; } +.ri-seedling-fill:before { content: "\f0d4"; } +.ri-seedling-line:before { content: "\f0d5"; } +.ri-send-backward:before { content: "\f0d6"; } +.ri-send-plane-2-fill:before { content: "\f0d7"; } +.ri-send-plane-2-line:before { content: "\f0d8"; } +.ri-send-plane-fill:before { content: "\f0d9"; } +.ri-send-plane-line:before { content: "\f0da"; } +.ri-send-to-back:before { content: "\f0db"; } +.ri-sensor-fill:before { content: "\f0dc"; } +.ri-sensor-line:before { content: "\f0dd"; } +.ri-separator:before { content: "\f0de"; } +.ri-server-fill:before { content: "\f0df"; } +.ri-server-line:before { content: "\f0e0"; } +.ri-service-fill:before { content: "\f0e1"; } +.ri-service-line:before { content: "\f0e2"; } +.ri-settings-2-fill:before { content: "\f0e3"; } +.ri-settings-2-line:before { content: "\f0e4"; } +.ri-settings-3-fill:before { content: "\f0e5"; } +.ri-settings-3-line:before { content: "\f0e6"; } +.ri-settings-4-fill:before { content: "\f0e7"; } +.ri-settings-4-line:before { content: "\f0e8"; } +.ri-settings-5-fill:before { content: "\f0e9"; } +.ri-settings-5-line:before { content: "\f0ea"; } +.ri-settings-6-fill:before { content: "\f0eb"; } +.ri-settings-6-line:before { content: "\f0ec"; } +.ri-settings-fill:before { content: "\f0ed"; } +.ri-settings-line:before { content: "\f0ee"; } +.ri-shape-2-fill:before { content: "\f0ef"; } +.ri-shape-2-line:before { content: "\f0f0"; } +.ri-shape-fill:before { content: "\f0f1"; } +.ri-shape-line:before { content: "\f0f2"; } +.ri-share-box-fill:before { content: "\f0f3"; } +.ri-share-box-line:before { content: "\f0f4"; } +.ri-share-circle-fill:before { content: "\f0f5"; } +.ri-share-circle-line:before { content: "\f0f6"; } +.ri-share-fill:before { content: "\f0f7"; } +.ri-share-forward-2-fill:before { content: "\f0f8"; } +.ri-share-forward-2-line:before { content: "\f0f9"; } +.ri-share-forward-box-fill:before { content: "\f0fa"; } +.ri-share-forward-box-line:before { content: "\f0fb"; } +.ri-share-forward-fill:before { content: "\f0fc"; } +.ri-share-forward-line:before { content: "\f0fd"; } +.ri-share-line:before { content: "\f0fe"; } +.ri-shield-check-fill:before { content: "\f0ff"; } +.ri-shield-check-line:before { content: "\f100"; } +.ri-shield-cross-fill:before { content: "\f101"; } +.ri-shield-cross-line:before { content: "\f102"; } +.ri-shield-fill:before { content: "\f103"; } +.ri-shield-flash-fill:before { content: "\f104"; } +.ri-shield-flash-line:before { content: "\f105"; } +.ri-shield-keyhole-fill:before { content: "\f106"; } +.ri-shield-keyhole-line:before { content: "\f107"; } +.ri-shield-line:before { content: "\f108"; } +.ri-shield-star-fill:before { content: "\f109"; } +.ri-shield-star-line:before { content: "\f10a"; } +.ri-shield-user-fill:before { content: "\f10b"; } +.ri-shield-user-line:before { content: "\f10c"; } +.ri-ship-2-fill:before { content: "\f10d"; } +.ri-ship-2-line:before { content: "\f10e"; } +.ri-ship-fill:before { content: "\f10f"; } +.ri-ship-line:before { content: "\f110"; } +.ri-shirt-fill:before { content: "\f111"; } +.ri-shirt-line:before { content: "\f112"; } +.ri-shopping-bag-2-fill:before { content: "\f113"; } +.ri-shopping-bag-2-line:before { content: "\f114"; } +.ri-shopping-bag-3-fill:before { content: "\f115"; } +.ri-shopping-bag-3-line:before { content: "\f116"; } +.ri-shopping-bag-fill:before { content: "\f117"; } +.ri-shopping-bag-line:before { content: "\f118"; } +.ri-shopping-basket-2-fill:before { content: "\f119"; } +.ri-shopping-basket-2-line:before { content: "\f11a"; } +.ri-shopping-basket-fill:before { content: "\f11b"; } +.ri-shopping-basket-line:before { content: "\f11c"; } +.ri-shopping-cart-2-fill:before { content: "\f11d"; } +.ri-shopping-cart-2-line:before { content: "\f11e"; } +.ri-shopping-cart-fill:before { content: "\f11f"; } +.ri-shopping-cart-line:before { content: "\f120"; } +.ri-showers-fill:before { content: "\f121"; } +.ri-showers-line:before { content: "\f122"; } +.ri-shuffle-fill:before { content: "\f123"; } +.ri-shuffle-line:before { content: "\f124"; } +.ri-shut-down-fill:before { content: "\f125"; } +.ri-shut-down-line:before { content: "\f126"; } +.ri-side-bar-fill:before { content: "\f127"; } +.ri-side-bar-line:before { content: "\f128"; } +.ri-signal-tower-fill:before { content: "\f129"; } +.ri-signal-tower-line:before { content: "\f12a"; } +.ri-signal-wifi-1-fill:before { content: "\f12b"; } +.ri-signal-wifi-1-line:before { content: "\f12c"; } +.ri-signal-wifi-2-fill:before { content: "\f12d"; } +.ri-signal-wifi-2-line:before { content: "\f12e"; } +.ri-signal-wifi-3-fill:before { content: "\f12f"; } +.ri-signal-wifi-3-line:before { content: "\f130"; } +.ri-signal-wifi-error-fill:before { content: "\f131"; } +.ri-signal-wifi-error-line:before { content: "\f132"; } +.ri-signal-wifi-fill:before { content: "\f133"; } +.ri-signal-wifi-line:before { content: "\f134"; } +.ri-signal-wifi-off-fill:before { content: "\f135"; } +.ri-signal-wifi-off-line:before { content: "\f136"; } +.ri-sim-card-2-fill:before { content: "\f137"; } +.ri-sim-card-2-line:before { content: "\f138"; } +.ri-sim-card-fill:before { content: "\f139"; } +.ri-sim-card-line:before { content: "\f13a"; } +.ri-single-quotes-l:before { content: "\f13b"; } +.ri-single-quotes-r:before { content: "\f13c"; } +.ri-sip-fill:before { content: "\f13d"; } +.ri-sip-line:before { content: "\f13e"; } +.ri-skip-back-fill:before { content: "\f13f"; } +.ri-skip-back-line:before { content: "\f140"; } +.ri-skip-back-mini-fill:before { content: "\f141"; } +.ri-skip-back-mini-line:before { content: "\f142"; } +.ri-skip-forward-fill:before { content: "\f143"; } +.ri-skip-forward-line:before { content: "\f144"; } +.ri-skip-forward-mini-fill:before { content: "\f145"; } +.ri-skip-forward-mini-line:before { content: "\f146"; } +.ri-skull-2-fill:before { content: "\f147"; } +.ri-skull-2-line:before { content: "\f148"; } +.ri-skull-fill:before { content: "\f149"; } +.ri-skull-line:before { content: "\f14a"; } +.ri-skype-fill:before { content: "\f14b"; } +.ri-skype-line:before { content: "\f14c"; } +.ri-slack-fill:before { content: "\f14d"; } +.ri-slack-line:before { content: "\f14e"; } +.ri-slice-fill:before { content: "\f14f"; } +.ri-slice-line:before { content: "\f150"; } +.ri-slideshow-2-fill:before { content: "\f151"; } +.ri-slideshow-2-line:before { content: "\f152"; } +.ri-slideshow-3-fill:before { content: "\f153"; } +.ri-slideshow-3-line:before { content: "\f154"; } +.ri-slideshow-4-fill:before { content: "\f155"; } +.ri-slideshow-4-line:before { content: "\f156"; } +.ri-slideshow-fill:before { content: "\f157"; } +.ri-slideshow-line:before { content: "\f158"; } +.ri-smartphone-fill:before { content: "\f159"; } +.ri-smartphone-line:before { content: "\f15a"; } +.ri-snapchat-fill:before { content: "\f15b"; } +.ri-snapchat-line:before { content: "\f15c"; } +.ri-snowy-fill:before { content: "\f15d"; } +.ri-snowy-line:before { content: "\f15e"; } +.ri-sort-asc:before { content: "\f15f"; } +.ri-sort-desc:before { content: "\f160"; } +.ri-sound-module-fill:before { content: "\f161"; } +.ri-sound-module-line:before { content: "\f162"; } +.ri-soundcloud-fill:before { content: "\f163"; } +.ri-soundcloud-line:before { content: "\f164"; } +.ri-space-ship-fill:before { content: "\f165"; } +.ri-space-ship-line:before { content: "\f166"; } +.ri-space:before { content: "\f167"; } +.ri-spam-2-fill:before { content: "\f168"; } +.ri-spam-2-line:before { content: "\f169"; } +.ri-spam-3-fill:before { content: "\f16a"; } +.ri-spam-3-line:before { content: "\f16b"; } +.ri-spam-fill:before { content: "\f16c"; } +.ri-spam-line:before { content: "\f16d"; } +.ri-speaker-2-fill:before { content: "\f16e"; } +.ri-speaker-2-line:before { content: "\f16f"; } +.ri-speaker-3-fill:before { content: "\f170"; } +.ri-speaker-3-line:before { content: "\f171"; } +.ri-speaker-fill:before { content: "\f172"; } +.ri-speaker-line:before { content: "\f173"; } +.ri-spectrum-fill:before { content: "\f174"; } +.ri-spectrum-line:before { content: "\f175"; } +.ri-speed-fill:before { content: "\f176"; } +.ri-speed-line:before { content: "\f177"; } +.ri-speed-mini-fill:before { content: "\f178"; } +.ri-speed-mini-line:before { content: "\f179"; } +.ri-split-cells-horizontal:before { content: "\f17a"; } +.ri-split-cells-vertical:before { content: "\f17b"; } +.ri-spotify-fill:before { content: "\f17c"; } +.ri-spotify-line:before { content: "\f17d"; } +.ri-spy-fill:before { content: "\f17e"; } +.ri-spy-line:before { content: "\f17f"; } +.ri-stack-fill:before { content: "\f180"; } +.ri-stack-line:before { content: "\f181"; } +.ri-stack-overflow-fill:before { content: "\f182"; } +.ri-stack-overflow-line:before { content: "\f183"; } +.ri-stackshare-fill:before { content: "\f184"; } +.ri-stackshare-line:before { content: "\f185"; } +.ri-star-fill:before { content: "\f186"; } +.ri-star-half-fill:before { content: "\f187"; } +.ri-star-half-line:before { content: "\f188"; } +.ri-star-half-s-fill:before { content: "\f189"; } +.ri-star-half-s-line:before { content: "\f18a"; } +.ri-star-line:before { content: "\f18b"; } +.ri-star-s-fill:before { content: "\f18c"; } +.ri-star-s-line:before { content: "\f18d"; } +.ri-star-smile-fill:before { content: "\f18e"; } +.ri-star-smile-line:before { content: "\f18f"; } +.ri-steam-fill:before { content: "\f190"; } +.ri-steam-line:before { content: "\f191"; } +.ri-steering-2-fill:before { content: "\f192"; } +.ri-steering-2-line:before { content: "\f193"; } +.ri-steering-fill:before { content: "\f194"; } +.ri-steering-line:before { content: "\f195"; } +.ri-stethoscope-fill:before { content: "\f196"; } +.ri-stethoscope-line:before { content: "\f197"; } +.ri-sticky-note-2-fill:before { content: "\f198"; } +.ri-sticky-note-2-line:before { content: "\f199"; } +.ri-sticky-note-fill:before { content: "\f19a"; } +.ri-sticky-note-line:before { content: "\f19b"; } +.ri-stock-fill:before { content: "\f19c"; } +.ri-stock-line:before { content: "\f19d"; } +.ri-stop-circle-fill:before { content: "\f19e"; } +.ri-stop-circle-line:before { content: "\f19f"; } +.ri-stop-fill:before { content: "\f1a0"; } +.ri-stop-line:before { content: "\f1a1"; } +.ri-stop-mini-fill:before { content: "\f1a2"; } +.ri-stop-mini-line:before { content: "\f1a3"; } +.ri-store-2-fill:before { content: "\f1a4"; } +.ri-store-2-line:before { content: "\f1a5"; } +.ri-store-3-fill:before { content: "\f1a6"; } +.ri-store-3-line:before { content: "\f1a7"; } +.ri-store-fill:before { content: "\f1a8"; } +.ri-store-line:before { content: "\f1a9"; } +.ri-strikethrough-2:before { content: "\f1aa"; } +.ri-strikethrough:before { content: "\f1ab"; } +.ri-subscript-2:before { content: "\f1ac"; } +.ri-subscript:before { content: "\f1ad"; } +.ri-subtract-fill:before { content: "\f1ae"; } +.ri-subtract-line:before { content: "\f1af"; } +.ri-subway-fill:before { content: "\f1b0"; } +.ri-subway-line:before { content: "\f1b1"; } +.ri-subway-wifi-fill:before { content: "\f1b2"; } +.ri-subway-wifi-line:before { content: "\f1b3"; } +.ri-suitcase-2-fill:before { content: "\f1b4"; } +.ri-suitcase-2-line:before { content: "\f1b5"; } +.ri-suitcase-3-fill:before { content: "\f1b6"; } +.ri-suitcase-3-line:before { content: "\f1b7"; } +.ri-suitcase-fill:before { content: "\f1b8"; } +.ri-suitcase-line:before { content: "\f1b9"; } +.ri-sun-cloudy-fill:before { content: "\f1ba"; } +.ri-sun-cloudy-line:before { content: "\f1bb"; } +.ri-sun-fill:before { content: "\f1bc"; } +.ri-sun-foggy-fill:before { content: "\f1bd"; } +.ri-sun-foggy-line:before { content: "\f1be"; } +.ri-sun-line:before { content: "\f1bf"; } +.ri-superscript-2:before { content: "\f1c0"; } +.ri-superscript:before { content: "\f1c1"; } +.ri-surgical-mask-fill:before { content: "\f1c2"; } +.ri-surgical-mask-line:before { content: "\f1c3"; } +.ri-surround-sound-fill:before { content: "\f1c4"; } +.ri-surround-sound-line:before { content: "\f1c5"; } +.ri-survey-fill:before { content: "\f1c6"; } +.ri-survey-line:before { content: "\f1c7"; } +.ri-swap-box-fill:before { content: "\f1c8"; } +.ri-swap-box-line:before { content: "\f1c9"; } +.ri-swap-fill:before { content: "\f1ca"; } +.ri-swap-line:before { content: "\f1cb"; } +.ri-switch-fill:before { content: "\f1cc"; } +.ri-switch-line:before { content: "\f1cd"; } +.ri-sword-fill:before { content: "\f1ce"; } +.ri-sword-line:before { content: "\f1cf"; } +.ri-syringe-fill:before { content: "\f1d0"; } +.ri-syringe-line:before { content: "\f1d1"; } +.ri-t-box-fill:before { content: "\f1d2"; } +.ri-t-box-line:before { content: "\f1d3"; } +.ri-t-shirt-2-fill:before { content: "\f1d4"; } +.ri-t-shirt-2-line:before { content: "\f1d5"; } +.ri-t-shirt-air-fill:before { content: "\f1d6"; } +.ri-t-shirt-air-line:before { content: "\f1d7"; } +.ri-t-shirt-fill:before { content: "\f1d8"; } +.ri-t-shirt-line:before { content: "\f1d9"; } +.ri-table-2:before { content: "\f1da"; } +.ri-table-alt-fill:before { content: "\f1db"; } +.ri-table-alt-line:before { content: "\f1dc"; } +.ri-table-fill:before { content: "\f1dd"; } +.ri-table-line:before { content: "\f1de"; } +.ri-tablet-fill:before { content: "\f1df"; } +.ri-tablet-line:before { content: "\f1e0"; } +.ri-takeaway-fill:before { content: "\f1e1"; } +.ri-takeaway-line:before { content: "\f1e2"; } +.ri-taobao-fill:before { content: "\f1e3"; } +.ri-taobao-line:before { content: "\f1e4"; } +.ri-tape-fill:before { content: "\f1e5"; } +.ri-tape-line:before { content: "\f1e6"; } +.ri-task-fill:before { content: "\f1e7"; } +.ri-task-line:before { content: "\f1e8"; } +.ri-taxi-fill:before { content: "\f1e9"; } +.ri-taxi-line:before { content: "\f1ea"; } +.ri-taxi-wifi-fill:before { content: "\f1eb"; } +.ri-taxi-wifi-line:before { content: "\f1ec"; } +.ri-team-fill:before { content: "\f1ed"; } +.ri-team-line:before { content: "\f1ee"; } +.ri-telegram-fill:before { content: "\f1ef"; } +.ri-telegram-line:before { content: "\f1f0"; } +.ri-temp-cold-fill:before { content: "\f1f1"; } +.ri-temp-cold-line:before { content: "\f1f2"; } +.ri-temp-hot-fill:before { content: "\f1f3"; } +.ri-temp-hot-line:before { content: "\f1f4"; } +.ri-terminal-box-fill:before { content: "\f1f5"; } +.ri-terminal-box-line:before { content: "\f1f6"; } +.ri-terminal-fill:before { content: "\f1f7"; } +.ri-terminal-line:before { content: "\f1f8"; } +.ri-terminal-window-fill:before { content: "\f1f9"; } +.ri-terminal-window-line:before { content: "\f1fa"; } +.ri-test-tube-fill:before { content: "\f1fb"; } +.ri-test-tube-line:before { content: "\f1fc"; } +.ri-text-direction-l:before { content: "\f1fd"; } +.ri-text-direction-r:before { content: "\f1fe"; } +.ri-text-spacing:before { content: "\f1ff"; } +.ri-text-wrap:before { content: "\f200"; } +.ri-text:before { content: "\f201"; } +.ri-thermometer-fill:before { content: "\f202"; } +.ri-thermometer-line:before { content: "\f203"; } +.ri-thumb-down-fill:before { content: "\f204"; } +.ri-thumb-down-line:before { content: "\f205"; } +.ri-thumb-up-fill:before { content: "\f206"; } +.ri-thumb-up-line:before { content: "\f207"; } +.ri-thunderstorms-fill:before { content: "\f208"; } +.ri-thunderstorms-line:before { content: "\f209"; } +.ri-ticket-2-fill:before { content: "\f20a"; } +.ri-ticket-2-line:before { content: "\f20b"; } +.ri-ticket-fill:before { content: "\f20c"; } +.ri-ticket-line:before { content: "\f20d"; } +.ri-time-fill:before { content: "\f20e"; } +.ri-time-line:before { content: "\f20f"; } +.ri-timer-2-fill:before { content: "\f210"; } +.ri-timer-2-line:before { content: "\f211"; } +.ri-timer-fill:before { content: "\f212"; } +.ri-timer-flash-fill:before { content: "\f213"; } +.ri-timer-flash-line:before { content: "\f214"; } +.ri-timer-line:before { content: "\f215"; } +.ri-todo-fill:before { content: "\f216"; } +.ri-todo-line:before { content: "\f217"; } +.ri-toggle-fill:before { content: "\f218"; } +.ri-toggle-line:before { content: "\f219"; } +.ri-tools-fill:before { content: "\f21a"; } +.ri-tools-line:before { content: "\f21b"; } +.ri-tornado-fill:before { content: "\f21c"; } +.ri-tornado-line:before { content: "\f21d"; } +.ri-trademark-fill:before { content: "\f21e"; } +.ri-trademark-line:before { content: "\f21f"; } +.ri-traffic-light-fill:before { content: "\f220"; } +.ri-traffic-light-line:before { content: "\f221"; } +.ri-train-fill:before { content: "\f222"; } +.ri-train-line:before { content: "\f223"; } +.ri-train-wifi-fill:before { content: "\f224"; } +.ri-train-wifi-line:before { content: "\f225"; } +.ri-translate-2:before { content: "\f226"; } +.ri-translate:before { content: "\f227"; } +.ri-travesti-fill:before { content: "\f228"; } +.ri-travesti-line:before { content: "\f229"; } +.ri-treasure-map-fill:before { content: "\f22a"; } +.ri-treasure-map-line:before { content: "\f22b"; } +.ri-trello-fill:before { content: "\f22c"; } +.ri-trello-line:before { content: "\f22d"; } +.ri-trophy-fill:before { content: "\f22e"; } +.ri-trophy-line:before { content: "\f22f"; } +.ri-truck-fill:before { content: "\f230"; } +.ri-truck-line:before { content: "\f231"; } +.ri-tumblr-fill:before { content: "\f232"; } +.ri-tumblr-line:before { content: "\f233"; } +.ri-tv-2-fill:before { content: "\f234"; } +.ri-tv-2-line:before { content: "\f235"; } +.ri-tv-fill:before { content: "\f236"; } +.ri-tv-line:before { content: "\f237"; } +.ri-twitch-fill:before { content: "\f238"; } +.ri-twitch-line:before { content: "\f239"; } +.ri-twitter-fill:before { content: "\f23a"; } +.ri-twitter-line:before { content: "\f23b"; } +.ri-typhoon-fill:before { content: "\f23c"; } +.ri-typhoon-line:before { content: "\f23d"; } +.ri-u-disk-fill:before { content: "\f23e"; } +.ri-u-disk-line:before { content: "\f23f"; } +.ri-ubuntu-fill:before { content: "\f240"; } +.ri-ubuntu-line:before { content: "\f241"; } +.ri-umbrella-fill:before { content: "\f242"; } +.ri-umbrella-line:before { content: "\f243"; } +.ri-underline:before { content: "\f244"; } +.ri-uninstall-fill:before { content: "\f245"; } +.ri-uninstall-line:before { content: "\f246"; } +.ri-unsplash-fill:before { content: "\f247"; } +.ri-unsplash-line:before { content: "\f248"; } +.ri-upload-2-fill:before { content: "\f249"; } +.ri-upload-2-line:before { content: "\f24a"; } +.ri-upload-cloud-2-fill:before { content: "\f24b"; } +.ri-upload-cloud-2-line:before { content: "\f24c"; } +.ri-upload-cloud-fill:before { content: "\f24d"; } +.ri-upload-cloud-line:before { content: "\f24e"; } +.ri-upload-fill:before { content: "\f24f"; } +.ri-upload-line:before { content: "\f250"; } +.ri-usb-fill:before { content: "\f251"; } +.ri-usb-line:before { content: "\f252"; } +.ri-user-2-fill:before { content: "\f253"; } +.ri-user-2-line:before { content: "\f254"; } +.ri-user-3-fill:before { content: "\f255"; } +.ri-user-3-line:before { content: "\f256"; } +.ri-user-4-fill:before { content: "\f257"; } +.ri-user-4-line:before { content: "\f258"; } +.ri-user-5-fill:before { content: "\f259"; } +.ri-user-5-line:before { content: "\f25a"; } +.ri-user-6-fill:before { content: "\f25b"; } +.ri-user-6-line:before { content: "\f25c"; } +.ri-user-add-fill:before { content: "\f25d"; } +.ri-user-add-line:before { content: "\f25e"; } +.ri-user-fill:before { content: "\f25f"; } +.ri-user-follow-fill:before { content: "\f260"; } +.ri-user-follow-line:before { content: "\f261"; } +.ri-user-heart-fill:before { content: "\f262"; } +.ri-user-heart-line:before { content: "\f263"; } +.ri-user-line:before { content: "\f264"; } +.ri-user-location-fill:before { content: "\f265"; } +.ri-user-location-line:before { content: "\f266"; } +.ri-user-received-2-fill:before { content: "\f267"; } +.ri-user-received-2-line:before { content: "\f268"; } +.ri-user-received-fill:before { content: "\f269"; } +.ri-user-received-line:before { content: "\f26a"; } +.ri-user-Buscar-fill:before { content: "\f26b"; } +.ri-user-Buscar-line:before { content: "\f26c"; } +.ri-user-settings-fill:before { content: "\f26d"; } +.ri-user-settings-line:before { content: "\f26e"; } +.ri-user-shared-2-fill:before { content: "\f26f"; } +.ri-user-shared-2-line:before { content: "\f270"; } +.ri-user-shared-fill:before { content: "\f271"; } +.ri-user-shared-line:before { content: "\f272"; } +.ri-user-smile-fill:before { content: "\f273"; } +.ri-user-smile-line:before { content: "\f274"; } +.ri-user-star-fill:before { content: "\f275"; } +.ri-user-star-line:before { content: "\f276"; } +.ri-user-unfollow-fill:before { content: "\f277"; } +.ri-user-unfollow-line:before { content: "\f278"; } +.ri-user-voice-fill:before { content: "\f279"; } +.ri-user-voice-line:before { content: "\f27a"; } +.ri-video-add-fill:before { content: "\f27b"; } +.ri-video-add-line:before { content: "\f27c"; } +.ri-video-chat-fill:before { content: "\f27d"; } +.ri-video-chat-line:before { content: "\f27e"; } +.ri-video-download-fill:before { content: "\f27f"; } +.ri-video-download-line:before { content: "\f280"; } +.ri-video-fill:before { content: "\f281"; } +.ri-video-line:before { content: "\f282"; } +.ri-video-upload-fill:before { content: "\f283"; } +.ri-video-upload-line:before { content: "\f284"; } +.ri-vidicon-2-fill:before { content: "\f285"; } +.ri-vidicon-2-line:before { content: "\f286"; } +.ri-vidicon-fill:before { content: "\f287"; } +.ri-vidicon-line:before { content: "\f288"; } +.ri-vimeo-fill:before { content: "\f289"; } +.ri-vimeo-line:before { content: "\f28a"; } +.ri-vip-crown-2-fill:before { content: "\f28b"; } +.ri-vip-crown-2-line:before { content: "\f28c"; } +.ri-vip-crown-fill:before { content: "\f28d"; } +.ri-vip-crown-line:before { content: "\f28e"; } +.ri-vip-diamond-fill:before { content: "\f28f"; } +.ri-vip-diamond-line:before { content: "\f290"; } +.ri-vip-fill:before { content: "\f291"; } +.ri-vip-line:before { content: "\f292"; } +.ri-virus-fill:before { content: "\f293"; } +.ri-virus-line:before { content: "\f294"; } +.ri-visa-fill:before { content: "\f295"; } +.ri-visa-line:before { content: "\f296"; } +.ri-voice-recognition-fill:before { content: "\f297"; } +.ri-voice-recognition-line:before { content: "\f298"; } +.ri-voiceprint-fill:before { content: "\f299"; } +.ri-voiceprint-line:before { content: "\f29a"; } +.ri-volume-down-fill:before { content: "\f29b"; } +.ri-volume-down-line:before { content: "\f29c"; } +.ri-volume-mute-fill:before { content: "\f29d"; } +.ri-volume-mute-line:before { content: "\f29e"; } +.ri-volume-off-vibrate-fill:before { content: "\f29f"; } +.ri-volume-off-vibrate-line:before { content: "\f2a0"; } +.ri-volume-up-fill:before { content: "\f2a1"; } +.ri-volume-up-line:before { content: "\f2a2"; } +.ri-volume-vibrate-fill:before { content: "\f2a3"; } +.ri-volume-vibrate-line:before { content: "\f2a4"; } +.ri-vuejs-fill:before { content: "\f2a5"; } +.ri-vuejs-line:before { content: "\f2a6"; } +.ri-walk-fill:before { content: "\f2a7"; } +.ri-walk-line:before { content: "\f2a8"; } +.ri-wallet-2-fill:before { content: "\f2a9"; } +.ri-wallet-2-line:before { content: "\f2aa"; } +.ri-wallet-3-fill:before { content: "\f2ab"; } +.ri-wallet-3-line:before { content: "\f2ac"; } +.ri-wallet-fill:before { content: "\f2ad"; } +.ri-wallet-line:before { content: "\f2ae"; } +.ri-water-flash-fill:before { content: "\f2af"; } +.ri-water-flash-line:before { content: "\f2b0"; } +.ri-webcam-fill:before { content: "\f2b1"; } +.ri-webcam-line:before { content: "\f2b2"; } +.ri-wechat-2-fill:before { content: "\f2b3"; } +.ri-wechat-2-line:before { content: "\f2b4"; } +.ri-wechat-fill:before { content: "\f2b5"; } +.ri-wechat-line:before { content: "\f2b6"; } +.ri-wechat-pay-fill:before { content: "\f2b7"; } +.ri-wechat-pay-line:before { content: "\f2b8"; } +.ri-weibo-fill:before { content: "\f2b9"; } +.ri-weibo-line:before { content: "\f2ba"; } +.ri-whatsapp-fill:before { content: "\f2bb"; } +.ri-whatsapp-line:before { content: "\f2bc"; } +.ri-wheelchair-fill:before { content: "\f2bd"; } +.ri-wheelchair-line:before { content: "\f2be"; } +.ri-wifi-fill:before { content: "\f2bf"; } +.ri-wifi-line:before { content: "\f2c0"; } +.ri-wifi-off-fill:before { content: "\f2c1"; } +.ri-wifi-off-line:before { content: "\f2c2"; } +.ri-window-2-fill:before { content: "\f2c3"; } +.ri-window-2-line:before { content: "\f2c4"; } +.ri-window-fill:before { content: "\f2c5"; } +.ri-window-line:before { content: "\f2c6"; } +.ri-windows-fill:before { content: "\f2c7"; } +.ri-windows-line:before { content: "\f2c8"; } +.ri-windy-fill:before { content: "\f2c9"; } +.ri-windy-line:before { content: "\f2ca"; } +.ri-wireless-charging-fill:before { content: "\f2cb"; } +.ri-wireless-charging-line:before { content: "\f2cc"; } +.ri-women-fill:before { content: "\f2cd"; } +.ri-women-line:before { content: "\f2ce"; } +.ri-wubi-input:before { content: "\f2cf"; } +.ri-xbox-fill:before { content: "\f2d0"; } +.ri-xbox-line:before { content: "\f2d1"; } +.ri-xing-fill:before { content: "\f2d2"; } +.ri-xing-line:before { content: "\f2d3"; } +.ri-youtube-fill:before { content: "\f2d4"; } +.ri-youtube-line:before { content: "\f2d5"; } +.ri-zcool-fill:before { content: "\f2d6"; } +.ri-zcool-line:before { content: "\f2d7"; } +.ri-zhihu-fill:before { content: "\f2d8"; } +.ri-zhihu-line:before { content: "\f2d9"; } +.ri-zoom-in-fill:before { content: "\f2da"; } +.ri-zoom-in-line:before { content: "\f2db"; } +.ri-zoom-out-fill:before { content: "\f2dc"; } +.ri-zoom-out-line:before { content: "\f2dd"; } +.ri-zzz-fill:before { content: "\f2de"; } +.ri-zzz-line:before { content: "\f2df"; } + diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.eot b/Practica-14.5/src/assets/vendor/remixicon/remixicon.eot new file mode 100644 index 0000000..40629af Binary files /dev/null and b/Practica-14.5/src/assets/vendor/remixicon/remixicon.eot differ diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.less b/Practica-14.5/src/assets/vendor/remixicon/remixicon.less new file mode 100644 index 0000000..afb0b8a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/remixicon/remixicon.less @@ -0,0 +1,2319 @@ +/* +* Remix Icon v2.5.0 +* https://remixicon.com +* https://github.com/Remix-Design/RemixIcon +* +* Copyright RemixIcon.com +* Released under the Apache License Version 2.0 +* +* Date: 2020-05-23 +*/ +@font-face { + font-family: "remixicon"; + src: url('remixicon.eot?t=1590207869815'); /* IE9*/ + src: url('remixicon.eot?t=1590207869815#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url("remixicon.woff2?t=1590207869815") format("woff2"), + url("remixicon.woff?t=1590207869815") format("woff"), + url('remixicon.ttf?t=1590207869815') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + url('remixicon.svg?t=1590207869815#remixicon') format('svg'); /* iOS 4.1- */ + font-display: swap; +} + +[class^="ri-"], [class*=" ri-"] { + font-family: 'remixicon' !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.ri-lg { font-size: 1.3333em; line-height: 0.75em; vertical-align: -.0667em; } +.ri-xl { font-size: 1.5em; line-height: 0.6666em; vertical-align: -.075em; } +.ri-xxs { font-size: .5em; } +.ri-xs { font-size: .75em; } +.ri-sm { font-size: .875em } +.ri-1x { font-size: 1em; } +.ri-2x { font-size: 2em; } +.ri-3x { font-size: 3em; } +.ri-4x { font-size: 4em; } +.ri-5x { font-size: 5em; } +.ri-6x { font-size: 6em; } +.ri-7x { font-size: 7em; } +.ri-8x { font-size: 8em; } +.ri-9x { font-size: 9em; } +.ri-10x { font-size: 10em; } +.ri-fw { text-align: center; width: 1.25em; } + +:global { +.ri-24-hours-fill:before { content: "\ea01"; } +.ri-24-hours-line:before { content: "\ea02"; } +.ri-4k-fill:before { content: "\ea03"; } +.ri-4k-line:before { content: "\ea04"; } +.ri-a-b:before { content: "\ea05"; } +.ri-account-box-fill:before { content: "\ea06"; } +.ri-account-box-line:before { content: "\ea07"; } +.ri-account-circle-fill:before { content: "\ea08"; } +.ri-account-circle-line:before { content: "\ea09"; } +.ri-account-pin-box-fill:before { content: "\ea0a"; } +.ri-account-pin-box-line:before { content: "\ea0b"; } +.ri-account-pin-circle-fill:before { content: "\ea0c"; } +.ri-account-pin-circle-line:before { content: "\ea0d"; } +.ri-add-box-fill:before { content: "\ea0e"; } +.ri-add-box-line:before { content: "\ea0f"; } +.ri-add-circle-fill:before { content: "\ea10"; } +.ri-add-circle-line:before { content: "\ea11"; } +.ri-add-fill:before { content: "\ea12"; } +.ri-add-line:before { content: "\ea13"; } +.ri-admin-fill:before { content: "\ea14"; } +.ri-admin-line:before { content: "\ea15"; } +.ri-advertisement-fill:before { content: "\ea16"; } +.ri-advertisement-line:before { content: "\ea17"; } +.ri-airplay-fill:before { content: "\ea18"; } +.ri-airplay-line:before { content: "\ea19"; } +.ri-alarm-fill:before { content: "\ea1a"; } +.ri-alarm-line:before { content: "\ea1b"; } +.ri-alarm-warning-fill:before { content: "\ea1c"; } +.ri-alarm-warning-line:before { content: "\ea1d"; } +.ri-album-fill:before { content: "\ea1e"; } +.ri-album-line:before { content: "\ea1f"; } +.ri-alert-fill:before { content: "\ea20"; } +.ri-alert-line:before { content: "\ea21"; } +.ri-aliens-fill:before { content: "\ea22"; } +.ri-aliens-line:before { content: "\ea23"; } +.ri-align-bottom:before { content: "\ea24"; } +.ri-align-center:before { content: "\ea25"; } +.ri-align-justify:before { content: "\ea26"; } +.ri-align-left:before { content: "\ea27"; } +.ri-align-right:before { content: "\ea28"; } +.ri-align-top:before { content: "\ea29"; } +.ri-align-vertically:before { content: "\ea2a"; } +.ri-alipay-fill:before { content: "\ea2b"; } +.ri-alipay-line:before { content: "\ea2c"; } +.ri-amazon-fill:before { content: "\ea2d"; } +.ri-amazon-line:before { content: "\ea2e"; } +.ri-anchor-fill:before { content: "\ea2f"; } +.ri-anchor-line:before { content: "\ea30"; } +.ri-ancient-gate-fill:before { content: "\ea31"; } +.ri-ancient-gate-line:before { content: "\ea32"; } +.ri-ancient-pavilion-fill:before { content: "\ea33"; } +.ri-ancient-pavilion-line:before { content: "\ea34"; } +.ri-android-fill:before { content: "\ea35"; } +.ri-android-line:before { content: "\ea36"; } +.ri-angularjs-fill:before { content: "\ea37"; } +.ri-angularjs-line:before { content: "\ea38"; } +.ri-anticlockwise-2-fill:before { content: "\ea39"; } +.ri-anticlockwise-2-line:before { content: "\ea3a"; } +.ri-anticlockwise-fill:before { content: "\ea3b"; } +.ri-anticlockwise-line:before { content: "\ea3c"; } +.ri-app-store-fill:before { content: "\ea3d"; } +.ri-app-store-line:before { content: "\ea3e"; } +.ri-apple-fill:before { content: "\ea3f"; } +.ri-apple-line:before { content: "\ea40"; } +.ri-apps-2-fill:before { content: "\ea41"; } +.ri-apps-2-line:before { content: "\ea42"; } +.ri-apps-fill:before { content: "\ea43"; } +.ri-apps-line:before { content: "\ea44"; } +.ri-archive-drawer-fill:before { content: "\ea45"; } +.ri-archive-drawer-line:before { content: "\ea46"; } +.ri-archive-fill:before { content: "\ea47"; } +.ri-archive-line:before { content: "\ea48"; } +.ri-arrow-down-circle-fill:before { content: "\ea49"; } +.ri-arrow-down-circle-line:before { content: "\ea4a"; } +.ri-arrow-down-fill:before { content: "\ea4b"; } +.ri-arrow-down-line:before { content: "\ea4c"; } +.ri-arrow-down-s-fill:before { content: "\ea4d"; } +.ri-arrow-down-s-line:before { content: "\ea4e"; } +.ri-arrow-drop-down-fill:before { content: "\ea4f"; } +.ri-arrow-drop-down-line:before { content: "\ea50"; } +.ri-arrow-drop-left-fill:before { content: "\ea51"; } +.ri-arrow-drop-left-line:before { content: "\ea52"; } +.ri-arrow-drop-right-fill:before { content: "\ea53"; } +.ri-arrow-drop-right-line:before { content: "\ea54"; } +.ri-arrow-drop-up-fill:before { content: "\ea55"; } +.ri-arrow-drop-up-line:before { content: "\ea56"; } +.ri-arrow-go-back-fill:before { content: "\ea57"; } +.ri-arrow-go-back-line:before { content: "\ea58"; } +.ri-arrow-go-forward-fill:before { content: "\ea59"; } +.ri-arrow-go-forward-line:before { content: "\ea5a"; } +.ri-arrow-left-circle-fill:before { content: "\ea5b"; } +.ri-arrow-left-circle-line:before { content: "\ea5c"; } +.ri-arrow-left-down-fill:before { content: "\ea5d"; } +.ri-arrow-left-down-line:before { content: "\ea5e"; } +.ri-arrow-left-fill:before { content: "\ea5f"; } +.ri-arrow-left-line:before { content: "\ea60"; } +.ri-arrow-left-right-fill:before { content: "\ea61"; } +.ri-arrow-left-right-line:before { content: "\ea62"; } +.ri-arrow-left-s-fill:before { content: "\ea63"; } +.ri-arrow-left-s-line:before { content: "\ea64"; } +.ri-arrow-left-up-fill:before { content: "\ea65"; } +.ri-arrow-left-up-line:before { content: "\ea66"; } +.ri-arrow-right-circle-fill:before { content: "\ea67"; } +.ri-arrow-right-circle-line:before { content: "\ea68"; } +.ri-arrow-right-down-fill:before { content: "\ea69"; } +.ri-arrow-right-down-line:before { content: "\ea6a"; } +.ri-arrow-right-fill:before { content: "\ea6b"; } +.ri-arrow-right-line:before { content: "\ea6c"; } +.ri-arrow-right-s-fill:before { content: "\ea6d"; } +.ri-arrow-right-s-line:before { content: "\ea6e"; } +.ri-arrow-right-up-fill:before { content: "\ea6f"; } +.ri-arrow-right-up-line:before { content: "\ea70"; } +.ri-arrow-up-circle-fill:before { content: "\ea71"; } +.ri-arrow-up-circle-line:before { content: "\ea72"; } +.ri-arrow-up-down-fill:before { content: "\ea73"; } +.ri-arrow-up-down-line:before { content: "\ea74"; } +.ri-arrow-up-fill:before { content: "\ea75"; } +.ri-arrow-up-line:before { content: "\ea76"; } +.ri-arrow-up-s-fill:before { content: "\ea77"; } +.ri-arrow-up-s-line:before { content: "\ea78"; } +.ri-artboard-2-fill:before { content: "\ea79"; } +.ri-artboard-2-line:before { content: "\ea7a"; } +.ri-artboard-fill:before { content: "\ea7b"; } +.ri-artboard-line:before { content: "\ea7c"; } +.ri-article-fill:before { content: "\ea7d"; } +.ri-article-line:before { content: "\ea7e"; } +.ri-aspect-ratio-fill:before { content: "\ea7f"; } +.ri-aspect-ratio-line:before { content: "\ea80"; } +.ri-asterisk:before { content: "\ea81"; } +.ri-at-fill:before { content: "\ea82"; } +.ri-at-line:before { content: "\ea83"; } +.ri-attachment-2:before { content: "\ea84"; } +.ri-attachment-fill:before { content: "\ea85"; } +.ri-attachment-line:before { content: "\ea86"; } +.ri-auction-fill:before { content: "\ea87"; } +.ri-auction-line:before { content: "\ea88"; } +.ri-award-fill:before { content: "\ea89"; } +.ri-award-line:before { content: "\ea8a"; } +.ri-baidu-fill:before { content: "\ea8b"; } +.ri-baidu-line:before { content: "\ea8c"; } +.ri-ball-pen-fill:before { content: "\ea8d"; } +.ri-ball-pen-line:before { content: "\ea8e"; } +.ri-bank-card-2-fill:before { content: "\ea8f"; } +.ri-bank-card-2-line:before { content: "\ea90"; } +.ri-bank-card-fill:before { content: "\ea91"; } +.ri-bank-card-line:before { content: "\ea92"; } +.ri-bank-fill:before { content: "\ea93"; } +.ri-bank-line:before { content: "\ea94"; } +.ri-bar-chart-2-fill:before { content: "\ea95"; } +.ri-bar-chart-2-line:before { content: "\ea96"; } +.ri-bar-chart-box-fill:before { content: "\ea97"; } +.ri-bar-chart-box-line:before { content: "\ea98"; } +.ri-bar-chart-fill:before { content: "\ea99"; } +.ri-bar-chart-grouped-fill:before { content: "\ea9a"; } +.ri-bar-chart-grouped-line:before { content: "\ea9b"; } +.ri-bar-chart-horizontal-fill:before { content: "\ea9c"; } +.ri-bar-chart-horizontal-line:before { content: "\ea9d"; } +.ri-bar-chart-line:before { content: "\ea9e"; } +.ri-barcode-box-fill:before { content: "\ea9f"; } +.ri-barcode-box-line:before { content: "\eaa0"; } +.ri-barcode-fill:before { content: "\eaa1"; } +.ri-barcode-line:before { content: "\eaa2"; } +.ri-barricade-fill:before { content: "\eaa3"; } +.ri-barricade-line:before { content: "\eaa4"; } +.ri-base-station-fill:before { content: "\eaa5"; } +.ri-base-station-line:before { content: "\eaa6"; } +.ri-basketball-fill:before { content: "\eaa7"; } +.ri-basketball-line:before { content: "\eaa8"; } +.ri-battery-2-charge-fill:before { content: "\eaa9"; } +.ri-battery-2-charge-line:before { content: "\eaaa"; } +.ri-battery-2-fill:before { content: "\eaab"; } +.ri-battery-2-line:before { content: "\eaac"; } +.ri-battery-charge-fill:before { content: "\eaad"; } +.ri-battery-charge-line:before { content: "\eaae"; } +.ri-battery-fill:before { content: "\eaaf"; } +.ri-battery-line:before { content: "\eab0"; } +.ri-battery-low-fill:before { content: "\eab1"; } +.ri-battery-low-line:before { content: "\eab2"; } +.ri-battery-saver-fill:before { content: "\eab3"; } +.ri-battery-saver-line:before { content: "\eab4"; } +.ri-battery-share-fill:before { content: "\eab5"; } +.ri-battery-share-line:before { content: "\eab6"; } +.ri-bear-smile-fill:before { content: "\eab7"; } +.ri-bear-smile-line:before { content: "\eab8"; } +.ri-behance-fill:before { content: "\eab9"; } +.ri-behance-line:before { content: "\eaba"; } +.ri-bell-fill:before { content: "\eabb"; } +.ri-bell-line:before { content: "\eabc"; } +.ri-bike-fill:before { content: "\eabd"; } +.ri-bike-line:before { content: "\eabe"; } +.ri-bilibili-fill:before { content: "\eabf"; } +.ri-bilibili-line:before { content: "\eac0"; } +.ri-bill-fill:before { content: "\eac1"; } +.ri-bill-line:before { content: "\eac2"; } +.ri-billiards-fill:before { content: "\eac3"; } +.ri-billiards-line:before { content: "\eac4"; } +.ri-bit-coin-fill:before { content: "\eac5"; } +.ri-bit-coin-line:before { content: "\eac6"; } +.ri-blaze-fill:before { content: "\eac7"; } +.ri-blaze-line:before { content: "\eac8"; } +.ri-bluetooth-connect-fill:before { content: "\eac9"; } +.ri-bluetooth-connect-line:before { content: "\eaca"; } +.ri-bluetooth-fill:before { content: "\eacb"; } +.ri-bluetooth-line:before { content: "\eacc"; } +.ri-blur-off-fill:before { content: "\eacd"; } +.ri-blur-off-line:before { content: "\eace"; } +.ri-body-scan-fill:before { content: "\eacf"; } +.ri-body-scan-line:before { content: "\ead0"; } +.ri-bold:before { content: "\ead1"; } +.ri-book-2-fill:before { content: "\ead2"; } +.ri-book-2-line:before { content: "\ead3"; } +.ri-book-3-fill:before { content: "\ead4"; } +.ri-book-3-line:before { content: "\ead5"; } +.ri-book-fill:before { content: "\ead6"; } +.ri-book-line:before { content: "\ead7"; } +.ri-book-mark-fill:before { content: "\ead8"; } +.ri-book-mark-line:before { content: "\ead9"; } +.ri-book-open-fill:before { content: "\eada"; } +.ri-book-open-line:before { content: "\eadb"; } +.ri-book-read-fill:before { content: "\eadc"; } +.ri-book-read-line:before { content: "\eadd"; } +.ri-booklet-fill:before { content: "\eade"; } +.ri-booklet-line:before { content: "\eadf"; } +.ri-bookmark-2-fill:before { content: "\eae0"; } +.ri-bookmark-2-line:before { content: "\eae1"; } +.ri-bookmark-3-fill:before { content: "\eae2"; } +.ri-bookmark-3-line:before { content: "\eae3"; } +.ri-bookmark-fill:before { content: "\eae4"; } +.ri-bookmark-line:before { content: "\eae5"; } +.ri-boxing-fill:before { content: "\eae6"; } +.ri-boxing-line:before { content: "\eae7"; } +.ri-braces-fill:before { content: "\eae8"; } +.ri-braces-line:before { content: "\eae9"; } +.ri-brackets-fill:before { content: "\eaea"; } +.ri-brackets-line:before { content: "\eaeb"; } +.ri-briefcase-2-fill:before { content: "\eaec"; } +.ri-briefcase-2-line:before { content: "\eaed"; } +.ri-briefcase-3-fill:before { content: "\eaee"; } +.ri-briefcase-3-line:before { content: "\eaef"; } +.ri-briefcase-4-fill:before { content: "\eaf0"; } +.ri-briefcase-4-line:before { content: "\eaf1"; } +.ri-briefcase-5-fill:before { content: "\eaf2"; } +.ri-briefcase-5-line:before { content: "\eaf3"; } +.ri-briefcase-fill:before { content: "\eaf4"; } +.ri-briefcase-line:before { content: "\eaf5"; } +.ri-bring-forward:before { content: "\eaf6"; } +.ri-bring-to-front:before { content: "\eaf7"; } +.ri-broadcast-fill:before { content: "\eaf8"; } +.ri-broadcast-line:before { content: "\eaf9"; } +.ri-brush-2-fill:before { content: "\eafa"; } +.ri-brush-2-line:before { content: "\eafb"; } +.ri-brush-3-fill:before { content: "\eafc"; } +.ri-brush-3-line:before { content: "\eafd"; } +.ri-brush-4-fill:before { content: "\eafe"; } +.ri-brush-4-line:before { content: "\eaff"; } +.ri-brush-fill:before { content: "\eb00"; } +.ri-brush-line:before { content: "\eb01"; } +.ri-bubble-chart-fill:before { content: "\eb02"; } +.ri-bubble-chart-line:before { content: "\eb03"; } +.ri-bug-2-fill:before { content: "\eb04"; } +.ri-bug-2-line:before { content: "\eb05"; } +.ri-bug-fill:before { content: "\eb06"; } +.ri-bug-line:before { content: "\eb07"; } +.ri-building-2-fill:before { content: "\eb08"; } +.ri-building-2-line:before { content: "\eb09"; } +.ri-building-3-fill:before { content: "\eb0a"; } +.ri-building-3-line:before { content: "\eb0b"; } +.ri-building-4-fill:before { content: "\eb0c"; } +.ri-building-4-line:before { content: "\eb0d"; } +.ri-building-fill:before { content: "\eb0e"; } +.ri-building-line:before { content: "\eb0f"; } +.ri-bus-2-fill:before { content: "\eb10"; } +.ri-bus-2-line:before { content: "\eb11"; } +.ri-bus-fill:before { content: "\eb12"; } +.ri-bus-line:before { content: "\eb13"; } +.ri-bus-wifi-fill:before { content: "\eb14"; } +.ri-bus-wifi-line:before { content: "\eb15"; } +.ri-cactus-fill:before { content: "\eb16"; } +.ri-cactus-line:before { content: "\eb17"; } +.ri-cake-2-fill:before { content: "\eb18"; } +.ri-cake-2-line:before { content: "\eb19"; } +.ri-cake-3-fill:before { content: "\eb1a"; } +.ri-cake-3-line:before { content: "\eb1b"; } +.ri-cake-fill:before { content: "\eb1c"; } +.ri-cake-line:before { content: "\eb1d"; } +.ri-calculator-fill:before { content: "\eb1e"; } +.ri-calculator-line:before { content: "\eb1f"; } +.ri-calendar-2-fill:before { content: "\eb20"; } +.ri-calendar-2-line:before { content: "\eb21"; } +.ri-calendar-check-fill:before { content: "\eb22"; } +.ri-calendar-check-line:before { content: "\eb23"; } +.ri-calendar-event-fill:before { content: "\eb24"; } +.ri-calendar-event-line:before { content: "\eb25"; } +.ri-calendar-fill:before { content: "\eb26"; } +.ri-calendar-line:before { content: "\eb27"; } +.ri-calendar-todo-fill:before { content: "\eb28"; } +.ri-calendar-todo-line:before { content: "\eb29"; } +.ri-camera-2-fill:before { content: "\eb2a"; } +.ri-camera-2-line:before { content: "\eb2b"; } +.ri-camera-3-fill:before { content: "\eb2c"; } +.ri-camera-3-line:before { content: "\eb2d"; } +.ri-camera-fill:before { content: "\eb2e"; } +.ri-camera-lens-fill:before { content: "\eb2f"; } +.ri-camera-lens-line:before { content: "\eb30"; } +.ri-camera-line:before { content: "\eb31"; } +.ri-camera-off-fill:before { content: "\eb32"; } +.ri-camera-off-line:before { content: "\eb33"; } +.ri-camera-switch-fill:before { content: "\eb34"; } +.ri-camera-switch-line:before { content: "\eb35"; } +.ri-capsule-fill:before { content: "\eb36"; } +.ri-capsule-line:before { content: "\eb37"; } +.ri-car-fill:before { content: "\eb38"; } +.ri-car-line:before { content: "\eb39"; } +.ri-car-washing-fill:before { content: "\eb3a"; } +.ri-car-washing-line:before { content: "\eb3b"; } +.ri-caravan-fill:before { content: "\eb3c"; } +.ri-caravan-line:before { content: "\eb3d"; } +.ri-cast-fill:before { content: "\eb3e"; } +.ri-cast-line:before { content: "\eb3f"; } +.ri-cellphone-fill:before { content: "\eb40"; } +.ri-cellphone-line:before { content: "\eb41"; } +.ri-celsius-fill:before { content: "\eb42"; } +.ri-celsius-line:before { content: "\eb43"; } +.ri-centos-fill:before { content: "\eb44"; } +.ri-centos-line:before { content: "\eb45"; } +.ri-character-recognition-fill:before { content: "\eb46"; } +.ri-character-recognition-line:before { content: "\eb47"; } +.ri-charging-pile-2-fill:before { content: "\eb48"; } +.ri-charging-pile-2-line:before { content: "\eb49"; } +.ri-charging-pile-fill:before { content: "\eb4a"; } +.ri-charging-pile-line:before { content: "\eb4b"; } +.ri-chat-1-fill:before { content: "\eb4c"; } +.ri-chat-1-line:before { content: "\eb4d"; } +.ri-chat-2-fill:before { content: "\eb4e"; } +.ri-chat-2-line:before { content: "\eb4f"; } +.ri-chat-3-fill:before { content: "\eb50"; } +.ri-chat-3-line:before { content: "\eb51"; } +.ri-chat-4-fill:before { content: "\eb52"; } +.ri-chat-4-line:before { content: "\eb53"; } +.ri-chat-check-fill:before { content: "\eb54"; } +.ri-chat-check-line:before { content: "\eb55"; } +.ri-chat-delete-fill:before { content: "\eb56"; } +.ri-chat-delete-line:before { content: "\eb57"; } +.ri-chat-download-fill:before { content: "\eb58"; } +.ri-chat-download-line:before { content: "\eb59"; } +.ri-chat-follow-up-fill:before { content: "\eb5a"; } +.ri-chat-follow-up-line:before { content: "\eb5b"; } +.ri-chat-forward-fill:before { content: "\eb5c"; } +.ri-chat-forward-line:before { content: "\eb5d"; } +.ri-chat-heart-fill:before { content: "\eb5e"; } +.ri-chat-heart-line:before { content: "\eb5f"; } +.ri-chat-history-fill:before { content: "\eb60"; } +.ri-chat-history-line:before { content: "\eb61"; } +.ri-chat-new-fill:before { content: "\eb62"; } +.ri-chat-new-line:before { content: "\eb63"; } +.ri-chat-off-fill:before { content: "\eb64"; } +.ri-chat-off-line:before { content: "\eb65"; } +.ri-chat-poll-fill:before { content: "\eb66"; } +.ri-chat-poll-line:before { content: "\eb67"; } +.ri-chat-private-fill:before { content: "\eb68"; } +.ri-chat-private-line:before { content: "\eb69"; } +.ri-chat-quote-fill:before { content: "\eb6a"; } +.ri-chat-quote-line:before { content: "\eb6b"; } +.ri-chat-settings-fill:before { content: "\eb6c"; } +.ri-chat-settings-line:before { content: "\eb6d"; } +.ri-chat-smile-2-fill:before { content: "\eb6e"; } +.ri-chat-smile-2-line:before { content: "\eb6f"; } +.ri-chat-smile-3-fill:before { content: "\eb70"; } +.ri-chat-smile-3-line:before { content: "\eb71"; } +.ri-chat-smile-fill:before { content: "\eb72"; } +.ri-chat-smile-line:before { content: "\eb73"; } +.ri-chat-upload-fill:before { content: "\eb74"; } +.ri-chat-upload-line:before { content: "\eb75"; } +.ri-chat-voice-fill:before { content: "\eb76"; } +.ri-chat-voice-line:before { content: "\eb77"; } +.ri-check-double-fill:before { content: "\eb78"; } +.ri-check-double-line:before { content: "\eb79"; } +.ri-check-fill:before { content: "\eb7a"; } +.ri-check-line:before { content: "\eb7b"; } +.ri-checkbox-blank-circle-fill:before { content: "\eb7c"; } +.ri-checkbox-blank-circle-line:before { content: "\eb7d"; } +.ri-checkbox-blank-fill:before { content: "\eb7e"; } +.ri-checkbox-blank-line:before { content: "\eb7f"; } +.ri-checkbox-circle-fill:before { content: "\eb80"; } +.ri-checkbox-circle-line:before { content: "\eb81"; } +.ri-checkbox-fill:before { content: "\eb82"; } +.ri-checkbox-indeterminate-fill:before { content: "\eb83"; } +.ri-checkbox-indeterminate-line:before { content: "\eb84"; } +.ri-checkbox-line:before { content: "\eb85"; } +.ri-checkbox-multiple-blank-fill:before { content: "\eb86"; } +.ri-checkbox-multiple-blank-line:before { content: "\eb87"; } +.ri-checkbox-multiple-fill:before { content: "\eb88"; } +.ri-checkbox-multiple-line:before { content: "\eb89"; } +.ri-china-railway-fill:before { content: "\eb8a"; } +.ri-china-railway-line:before { content: "\eb8b"; } +.ri-chrome-fill:before { content: "\eb8c"; } +.ri-chrome-line:before { content: "\eb8d"; } +.ri-clapperboard-fill:before { content: "\eb8e"; } +.ri-clapperboard-line:before { content: "\eb8f"; } +.ri-clipboard-fill:before { content: "\eb90"; } +.ri-clipboard-line:before { content: "\eb91"; } +.ri-clockwise-2-fill:before { content: "\eb92"; } +.ri-clockwise-2-line:before { content: "\eb93"; } +.ri-clockwise-fill:before { content: "\eb94"; } +.ri-clockwise-line:before { content: "\eb95"; } +.ri-close-circle-fill:before { content: "\eb96"; } +.ri-close-circle-line:before { content: "\eb97"; } +.ri-close-fill:before { content: "\eb98"; } +.ri-close-line:before { content: "\eb99"; } +.ri-closed-captioning-fill:before { content: "\eb9a"; } +.ri-closed-captioning-line:before { content: "\eb9b"; } +.ri-cloud-fill:before { content: "\eb9c"; } +.ri-cloud-line:before { content: "\eb9d"; } +.ri-cloud-off-fill:before { content: "\eb9e"; } +.ri-cloud-off-line:before { content: "\eb9f"; } +.ri-cloud-windy-fill:before { content: "\eba0"; } +.ri-cloud-windy-line:before { content: "\eba1"; } +.ri-cloudy-2-fill:before { content: "\eba2"; } +.ri-cloudy-2-line:before { content: "\eba3"; } +.ri-cloudy-fill:before { content: "\eba4"; } +.ri-cloudy-line:before { content: "\eba5"; } +.ri-code-box-fill:before { content: "\eba6"; } +.ri-code-box-line:before { content: "\eba7"; } +.ri-code-fill:before { content: "\eba8"; } +.ri-code-line:before { content: "\eba9"; } +.ri-code-s-fill:before { content: "\ebaa"; } +.ri-code-s-line:before { content: "\ebab"; } +.ri-code-s-slash-fill:before { content: "\ebac"; } +.ri-code-s-slash-line:before { content: "\ebad"; } +.ri-code-view:before { content: "\ebae"; } +.ri-codepen-fill:before { content: "\ebaf"; } +.ri-codepen-line:before { content: "\ebb0"; } +.ri-coin-fill:before { content: "\ebb1"; } +.ri-coin-line:before { content: "\ebb2"; } +.ri-coins-fill:before { content: "\ebb3"; } +.ri-coins-line:before { content: "\ebb4"; } +.ri-collage-fill:before { content: "\ebb5"; } +.ri-collage-line:before { content: "\ebb6"; } +.ri-command-fill:before { content: "\ebb7"; } +.ri-command-line:before { content: "\ebb8"; } +.ri-community-fill:before { content: "\ebb9"; } +.ri-community-line:before { content: "\ebba"; } +.ri-compass-2-fill:before { content: "\ebbb"; } +.ri-compass-2-line:before { content: "\ebbc"; } +.ri-compass-3-fill:before { content: "\ebbd"; } +.ri-compass-3-line:before { content: "\ebbe"; } +.ri-compass-4-fill:before { content: "\ebbf"; } +.ri-compass-4-line:before { content: "\ebc0"; } +.ri-compass-discover-fill:before { content: "\ebc1"; } +.ri-compass-discover-line:before { content: "\ebc2"; } +.ri-compass-fill:before { content: "\ebc3"; } +.ri-compass-line:before { content: "\ebc4"; } +.ri-compasses-2-fill:before { content: "\ebc5"; } +.ri-compasses-2-line:before { content: "\ebc6"; } +.ri-compasses-fill:before { content: "\ebc7"; } +.ri-compasses-line:before { content: "\ebc8"; } +.ri-computer-fill:before { content: "\ebc9"; } +.ri-computer-line:before { content: "\ebca"; } +.ri-Contactos-book-2-fill:before { content: "\ebcb"; } +.ri-Contactos-book-2-line:before { content: "\ebcc"; } +.ri-Contactos-book-fill:before { content: "\ebcd"; } +.ri-Contactos-book-line:before { content: "\ebce"; } +.ri-Contactos-book-upload-fill:before { content: "\ebcf"; } +.ri-Contactos-book-upload-line:before { content: "\ebd0"; } +.ri-Contactos-fill:before { content: "\ebd1"; } +.ri-Contactos-line:before { content: "\ebd2"; } +.ri-contrast-2-fill:before { content: "\ebd3"; } +.ri-contrast-2-line:before { content: "\ebd4"; } +.ri-contrast-drop-2-fill:before { content: "\ebd5"; } +.ri-contrast-drop-2-line:before { content: "\ebd6"; } +.ri-contrast-drop-fill:before { content: "\ebd7"; } +.ri-contrast-drop-line:before { content: "\ebd8"; } +.ri-contrast-fill:before { content: "\ebd9"; } +.ri-contrast-line:before { content: "\ebda"; } +.ri-copper-coin-fill:before { content: "\ebdb"; } +.ri-copper-coin-line:before { content: "\ebdc"; } +.ri-copper-diamond-fill:before { content: "\ebdd"; } +.ri-copper-diamond-line:before { content: "\ebde"; } +.ri-copyleft-fill:before { content: "\ebdf"; } +.ri-copyleft-line:before { content: "\ebe0"; } +.ri-copyright-fill:before { content: "\ebe1"; } +.ri-copyright-line:before { content: "\ebe2"; } +.ri-coreos-fill:before { content: "\ebe3"; } +.ri-coreos-line:before { content: "\ebe4"; } +.ri-coupon-2-fill:before { content: "\ebe5"; } +.ri-coupon-2-line:before { content: "\ebe6"; } +.ri-coupon-3-fill:before { content: "\ebe7"; } +.ri-coupon-3-line:before { content: "\ebe8"; } +.ri-coupon-4-fill:before { content: "\ebe9"; } +.ri-coupon-4-line:before { content: "\ebea"; } +.ri-coupon-5-fill:before { content: "\ebeb"; } +.ri-coupon-5-line:before { content: "\ebec"; } +.ri-coupon-fill:before { content: "\ebed"; } +.ri-coupon-line:before { content: "\ebee"; } +.ri-cpu-fill:before { content: "\ebef"; } +.ri-cpu-line:before { content: "\ebf0"; } +.ri-creative-commons-by-fill:before { content: "\ebf1"; } +.ri-creative-commons-by-line:before { content: "\ebf2"; } +.ri-creative-commons-fill:before { content: "\ebf3"; } +.ri-creative-commons-line:before { content: "\ebf4"; } +.ri-creative-commons-nc-fill:before { content: "\ebf5"; } +.ri-creative-commons-nc-line:before { content: "\ebf6"; } +.ri-creative-commons-nd-fill:before { content: "\ebf7"; } +.ri-creative-commons-nd-line:before { content: "\ebf8"; } +.ri-creative-commons-sa-fill:before { content: "\ebf9"; } +.ri-creative-commons-sa-line:before { content: "\ebfa"; } +.ri-creative-commons-zero-fill:before { content: "\ebfb"; } +.ri-creative-commons-zero-line:before { content: "\ebfc"; } +.ri-criminal-fill:before { content: "\ebfd"; } +.ri-criminal-line:before { content: "\ebfe"; } +.ri-crop-2-fill:before { content: "\ebff"; } +.ri-crop-2-line:before { content: "\ec00"; } +.ri-crop-fill:before { content: "\ec01"; } +.ri-crop-line:before { content: "\ec02"; } +.ri-css3-fill:before { content: "\ec03"; } +.ri-css3-line:before { content: "\ec04"; } +.ri-cup-fill:before { content: "\ec05"; } +.ri-cup-line:before { content: "\ec06"; } +.ri-currency-fill:before { content: "\ec07"; } +.ri-currency-line:before { content: "\ec08"; } +.ri-cursor-fill:before { content: "\ec09"; } +.ri-cursor-line:before { content: "\ec0a"; } +.ri-customer-service-2-fill:before { content: "\ec0b"; } +.ri-customer-service-2-line:before { content: "\ec0c"; } +.ri-customer-service-fill:before { content: "\ec0d"; } +.ri-customer-service-line:before { content: "\ec0e"; } +.ri-Tablero-2-fill:before { content: "\ec0f"; } +.ri-Tablero-2-line:before { content: "\ec10"; } +.ri-Tablero-3-fill:before { content: "\ec11"; } +.ri-Tablero-3-line:before { content: "\ec12"; } +.ri-Tablero-fill:before { content: "\ec13"; } +.ri-Tablero-line:before { content: "\ec14"; } +.ri-database-2-fill:before { content: "\ec15"; } +.ri-database-2-line:before { content: "\ec16"; } +.ri-database-fill:before { content: "\ec17"; } +.ri-database-line:before { content: "\ec18"; } +.ri-delete-back-2-fill:before { content: "\ec19"; } +.ri-delete-back-2-line:before { content: "\ec1a"; } +.ri-delete-back-fill:before { content: "\ec1b"; } +.ri-delete-back-line:before { content: "\ec1c"; } +.ri-delete-bin-2-fill:before { content: "\ec1d"; } +.ri-delete-bin-2-line:before { content: "\ec1e"; } +.ri-delete-bin-3-fill:before { content: "\ec1f"; } +.ri-delete-bin-3-line:before { content: "\ec20"; } +.ri-delete-bin-4-fill:before { content: "\ec21"; } +.ri-delete-bin-4-line:before { content: "\ec22"; } +.ri-delete-bin-5-fill:before { content: "\ec23"; } +.ri-delete-bin-5-line:before { content: "\ec24"; } +.ri-delete-bin-6-fill:before { content: "\ec25"; } +.ri-delete-bin-6-line:before { content: "\ec26"; } +.ri-delete-bin-7-fill:before { content: "\ec27"; } +.ri-delete-bin-7-line:before { content: "\ec28"; } +.ri-delete-bin-fill:before { content: "\ec29"; } +.ri-delete-bin-line:before { content: "\ec2a"; } +.ri-delete-column:before { content: "\ec2b"; } +.ri-delete-row:before { content: "\ec2c"; } +.ri-device-fill:before { content: "\ec2d"; } +.ri-device-line:before { content: "\ec2e"; } +.ri-device-recover-fill:before { content: "\ec2f"; } +.ri-device-recover-line:before { content: "\ec30"; } +.ri-dingding-fill:before { content: "\ec31"; } +.ri-dingding-line:before { content: "\ec32"; } +.ri-direction-fill:before { content: "\ec33"; } +.ri-direction-line:before { content: "\ec34"; } +.ri-disc-fill:before { content: "\ec35"; } +.ri-disc-line:before { content: "\ec36"; } +.ri-discord-fill:before { content: "\ec37"; } +.ri-discord-line:before { content: "\ec38"; } +.ri-discuss-fill:before { content: "\ec39"; } +.ri-discuss-line:before { content: "\ec3a"; } +.ri-dislike-fill:before { content: "\ec3b"; } +.ri-dislike-line:before { content: "\ec3c"; } +.ri-disqus-fill:before { content: "\ec3d"; } +.ri-disqus-line:before { content: "\ec3e"; } +.ri-divide-fill:before { content: "\ec3f"; } +.ri-divide-line:before { content: "\ec40"; } +.ri-donut-chart-fill:before { content: "\ec41"; } +.ri-donut-chart-line:before { content: "\ec42"; } +.ri-door-closed-fill:before { content: "\ec43"; } +.ri-door-closed-line:before { content: "\ec44"; } +.ri-door-fill:before { content: "\ec45"; } +.ri-door-line:before { content: "\ec46"; } +.ri-door-lock-box-fill:before { content: "\ec47"; } +.ri-door-lock-box-line:before { content: "\ec48"; } +.ri-door-lock-fill:before { content: "\ec49"; } +.ri-door-lock-line:before { content: "\ec4a"; } +.ri-door-open-fill:before { content: "\ec4b"; } +.ri-door-open-line:before { content: "\ec4c"; } +.ri-dossier-fill:before { content: "\ec4d"; } +.ri-dossier-line:before { content: "\ec4e"; } +.ri-douban-fill:before { content: "\ec4f"; } +.ri-douban-line:before { content: "\ec50"; } +.ri-double-quotes-l:before { content: "\ec51"; } +.ri-double-quotes-r:before { content: "\ec52"; } +.ri-download-2-fill:before { content: "\ec53"; } +.ri-download-2-line:before { content: "\ec54"; } +.ri-download-cloud-2-fill:before { content: "\ec55"; } +.ri-download-cloud-2-line:before { content: "\ec56"; } +.ri-download-cloud-fill:before { content: "\ec57"; } +.ri-download-cloud-line:before { content: "\ec58"; } +.ri-download-fill:before { content: "\ec59"; } +.ri-download-line:before { content: "\ec5a"; } +.ri-draft-fill:before { content: "\ec5b"; } +.ri-draft-line:before { content: "\ec5c"; } +.ri-drag-drop-fill:before { content: "\ec5d"; } +.ri-drag-drop-line:before { content: "\ec5e"; } +.ri-drag-move-2-fill:before { content: "\ec5f"; } +.ri-drag-move-2-line:before { content: "\ec60"; } +.ri-drag-move-fill:before { content: "\ec61"; } +.ri-drag-move-line:before { content: "\ec62"; } +.ri-dribbble-fill:before { content: "\ec63"; } +.ri-dribbble-line:before { content: "\ec64"; } +.ri-drive-fill:before { content: "\ec65"; } +.ri-drive-line:before { content: "\ec66"; } +.ri-drizzle-fill:before { content: "\ec67"; } +.ri-drizzle-line:before { content: "\ec68"; } +.ri-drop-fill:before { content: "\ec69"; } +.ri-drop-line:before { content: "\ec6a"; } +.ri-dropbox-fill:before { content: "\ec6b"; } +.ri-dropbox-line:before { content: "\ec6c"; } +.ri-dual-sim-1-fill:before { content: "\ec6d"; } +.ri-dual-sim-1-line:before { content: "\ec6e"; } +.ri-dual-sim-2-fill:before { content: "\ec6f"; } +.ri-dual-sim-2-line:before { content: "\ec70"; } +.ri-dv-fill:before { content: "\ec71"; } +.ri-dv-line:before { content: "\ec72"; } +.ri-dvd-fill:before { content: "\ec73"; } +.ri-dvd-line:before { content: "\ec74"; } +.ri-e-bike-2-fill:before { content: "\ec75"; } +.ri-e-bike-2-line:before { content: "\ec76"; } +.ri-e-bike-fill:before { content: "\ec77"; } +.ri-e-bike-line:before { content: "\ec78"; } +.ri-earth-fill:before { content: "\ec79"; } +.ri-earth-line:before { content: "\ec7a"; } +.ri-earthquake-fill:before { content: "\ec7b"; } +.ri-earthquake-line:before { content: "\ec7c"; } +.ri-edge-fill:before { content: "\ec7d"; } +.ri-edge-line:before { content: "\ec7e"; } +.ri-edit-2-fill:before { content: "\ec7f"; } +.ri-edit-2-line:before { content: "\ec80"; } +.ri-edit-box-fill:before { content: "\ec81"; } +.ri-edit-box-line:before { content: "\ec82"; } +.ri-edit-circle-fill:before { content: "\ec83"; } +.ri-edit-circle-line:before { content: "\ec84"; } +.ri-edit-fill:before { content: "\ec85"; } +.ri-edit-line:before { content: "\ec86"; } +.ri-eject-fill:before { content: "\ec87"; } +.ri-eject-line:before { content: "\ec88"; } +.ri-emotion-2-fill:before { content: "\ec89"; } +.ri-emotion-2-line:before { content: "\ec8a"; } +.ri-emotion-fill:before { content: "\ec8b"; } +.ri-emotion-happy-fill:before { content: "\ec8c"; } +.ri-emotion-happy-line:before { content: "\ec8d"; } +.ri-emotion-laugh-fill:before { content: "\ec8e"; } +.ri-emotion-laugh-line:before { content: "\ec8f"; } +.ri-emotion-line:before { content: "\ec90"; } +.ri-emotion-normal-fill:before { content: "\ec91"; } +.ri-emotion-normal-line:before { content: "\ec92"; } +.ri-emotion-sad-fill:before { content: "\ec93"; } +.ri-emotion-sad-line:before { content: "\ec94"; } +.ri-emotion-unhappy-fill:before { content: "\ec95"; } +.ri-emotion-unhappy-line:before { content: "\ec96"; } +.ri-empathize-fill:before { content: "\ec97"; } +.ri-empathize-line:before { content: "\ec98"; } +.ri-emphasis-cn:before { content: "\ec99"; } +.ri-emphasis:before { content: "\ec9a"; } +.ri-english-input:before { content: "\ec9b"; } +.ri-equalizer-fill:before { content: "\ec9c"; } +.ri-equalizer-line:before { content: "\ec9d"; } +.ri-eraser-fill:before { content: "\ec9e"; } +.ri-eraser-line:before { content: "\ec9f"; } +.ri-error-warning-fill:before { content: "\eca0"; } +.ri-error-warning-line:before { content: "\eca1"; } +.ri-evernote-fill:before { content: "\eca2"; } +.ri-evernote-line:before { content: "\eca3"; } +.ri-exchange-box-fill:before { content: "\eca4"; } +.ri-exchange-box-line:before { content: "\eca5"; } +.ri-exchange-cny-fill:before { content: "\eca6"; } +.ri-exchange-cny-line:before { content: "\eca7"; } +.ri-exchange-dollar-fill:before { content: "\eca8"; } +.ri-exchange-dollar-line:before { content: "\eca9"; } +.ri-exchange-fill:before { content: "\ecaa"; } +.ri-exchange-funds-fill:before { content: "\ecab"; } +.ri-exchange-funds-line:before { content: "\ecac"; } +.ri-exchange-line:before { content: "\ecad"; } +.ri-external-link-fill:before { content: "\ecae"; } +.ri-external-link-line:before { content: "\ecaf"; } +.ri-eye-2-fill:before { content: "\ecb0"; } +.ri-eye-2-line:before { content: "\ecb1"; } +.ri-eye-close-fill:before { content: "\ecb2"; } +.ri-eye-close-line:before { content: "\ecb3"; } +.ri-eye-fill:before { content: "\ecb4"; } +.ri-eye-line:before { content: "\ecb5"; } +.ri-eye-off-fill:before { content: "\ecb6"; } +.ri-eye-off-line:before { content: "\ecb7"; } +.ri-facebook-box-fill:before { content: "\ecb8"; } +.ri-facebook-box-line:before { content: "\ecb9"; } +.ri-facebook-circle-fill:before { content: "\ecba"; } +.ri-facebook-circle-line:before { content: "\ecbb"; } +.ri-facebook-fill:before { content: "\ecbc"; } +.ri-facebook-line:before { content: "\ecbd"; } +.ri-fahrenheit-fill:before { content: "\ecbe"; } +.ri-fahrenheit-line:before { content: "\ecbf"; } +.ri-feedback-fill:before { content: "\ecc0"; } +.ri-feedback-line:before { content: "\ecc1"; } +.ri-file-2-fill:before { content: "\ecc2"; } +.ri-file-2-line:before { content: "\ecc3"; } +.ri-file-3-fill:before { content: "\ecc4"; } +.ri-file-3-line:before { content: "\ecc5"; } +.ri-file-4-fill:before { content: "\ecc6"; } +.ri-file-4-line:before { content: "\ecc7"; } +.ri-file-add-fill:before { content: "\ecc8"; } +.ri-file-add-line:before { content: "\ecc9"; } +.ri-file-chart-2-fill:before { content: "\ecca"; } +.ri-file-chart-2-line:before { content: "\eccb"; } +.ri-file-chart-fill:before { content: "\eccc"; } +.ri-file-chart-line:before { content: "\eccd"; } +.ri-file-cloud-fill:before { content: "\ecce"; } +.ri-file-cloud-line:before { content: "\eccf"; } +.ri-file-code-fill:before { content: "\ecd0"; } +.ri-file-code-line:before { content: "\ecd1"; } +.ri-file-copy-2-fill:before { content: "\ecd2"; } +.ri-file-copy-2-line:before { content: "\ecd3"; } +.ri-file-copy-fill:before { content: "\ecd4"; } +.ri-file-copy-line:before { content: "\ecd5"; } +.ri-file-damage-fill:before { content: "\ecd6"; } +.ri-file-damage-line:before { content: "\ecd7"; } +.ri-file-download-fill:before { content: "\ecd8"; } +.ri-file-download-line:before { content: "\ecd9"; } +.ri-file-edit-fill:before { content: "\ecda"; } +.ri-file-edit-line:before { content: "\ecdb"; } +.ri-file-excel-2-fill:before { content: "\ecdc"; } +.ri-file-excel-2-line:before { content: "\ecdd"; } +.ri-file-excel-fill:before { content: "\ecde"; } +.ri-file-excel-line:before { content: "\ecdf"; } +.ri-file-fill:before { content: "\ece0"; } +.ri-file-forbid-fill:before { content: "\ece1"; } +.ri-file-forbid-line:before { content: "\ece2"; } +.ri-file-gif-fill:before { content: "\ece3"; } +.ri-file-gif-line:before { content: "\ece4"; } +.ri-file-history-fill:before { content: "\ece5"; } +.ri-file-history-line:before { content: "\ece6"; } +.ri-file-hwp-fill:before { content: "\ece7"; } +.ri-file-hwp-line:before { content: "\ece8"; } +.ri-file-info-fill:before { content: "\ece9"; } +.ri-file-info-line:before { content: "\ecea"; } +.ri-file-line:before { content: "\eceb"; } +.ri-file-list-2-fill:before { content: "\ecec"; } +.ri-file-list-2-line:before { content: "\eced"; } +.ri-file-list-3-fill:before { content: "\ecee"; } +.ri-file-list-3-line:before { content: "\ecef"; } +.ri-file-list-fill:before { content: "\ecf0"; } +.ri-file-list-line:before { content: "\ecf1"; } +.ri-file-lock-fill:before { content: "\ecf2"; } +.ri-file-lock-line:before { content: "\ecf3"; } +.ri-file-mark-fill:before { content: "\ecf4"; } +.ri-file-mark-line:before { content: "\ecf5"; } +.ri-file-music-fill:before { content: "\ecf6"; } +.ri-file-music-line:before { content: "\ecf7"; } +.ri-file-paper-2-fill:before { content: "\ecf8"; } +.ri-file-paper-2-line:before { content: "\ecf9"; } +.ri-file-paper-fill:before { content: "\ecfa"; } +.ri-file-paper-line:before { content: "\ecfb"; } +.ri-file-pdf-fill:before { content: "\ecfc"; } +.ri-file-pdf-line:before { content: "\ecfd"; } +.ri-file-ppt-2-fill:before { content: "\ecfe"; } +.ri-file-ppt-2-line:before { content: "\ecff"; } +.ri-file-ppt-fill:before { content: "\ed00"; } +.ri-file-ppt-line:before { content: "\ed01"; } +.ri-file-reduce-fill:before { content: "\ed02"; } +.ri-file-reduce-line:before { content: "\ed03"; } +.ri-file-Buscar-fill:before { content: "\ed04"; } +.ri-file-Buscar-line:before { content: "\ed05"; } +.ri-file-settings-fill:before { content: "\ed06"; } +.ri-file-settings-line:before { content: "\ed07"; } +.ri-file-shield-2-fill:before { content: "\ed08"; } +.ri-file-shield-2-line:before { content: "\ed09"; } +.ri-file-shield-fill:before { content: "\ed0a"; } +.ri-file-shield-line:before { content: "\ed0b"; } +.ri-file-shred-fill:before { content: "\ed0c"; } +.ri-file-shred-line:before { content: "\ed0d"; } +.ri-file-text-fill:before { content: "\ed0e"; } +.ri-file-text-line:before { content: "\ed0f"; } +.ri-file-transfer-fill:before { content: "\ed10"; } +.ri-file-transfer-line:before { content: "\ed11"; } +.ri-file-unknow-fill:before { content: "\ed12"; } +.ri-file-unknow-line:before { content: "\ed13"; } +.ri-file-upload-fill:before { content: "\ed14"; } +.ri-file-upload-line:before { content: "\ed15"; } +.ri-file-user-fill:before { content: "\ed16"; } +.ri-file-user-line:before { content: "\ed17"; } +.ri-file-warning-fill:before { content: "\ed18"; } +.ri-file-warning-line:before { content: "\ed19"; } +.ri-file-word-2-fill:before { content: "\ed1a"; } +.ri-file-word-2-line:before { content: "\ed1b"; } +.ri-file-word-fill:before { content: "\ed1c"; } +.ri-file-word-line:before { content: "\ed1d"; } +.ri-file-zip-fill:before { content: "\ed1e"; } +.ri-file-zip-line:before { content: "\ed1f"; } +.ri-film-fill:before { content: "\ed20"; } +.ri-film-line:before { content: "\ed21"; } +.ri-filter-2-fill:before { content: "\ed22"; } +.ri-filter-2-line:before { content: "\ed23"; } +.ri-filter-3-fill:before { content: "\ed24"; } +.ri-filter-3-line:before { content: "\ed25"; } +.ri-filter-fill:before { content: "\ed26"; } +.ri-filter-line:before { content: "\ed27"; } +.ri-filter-off-fill:before { content: "\ed28"; } +.ri-filter-off-line:before { content: "\ed29"; } +.ri-find-replace-fill:before { content: "\ed2a"; } +.ri-find-replace-line:before { content: "\ed2b"; } +.ri-finder-fill:before { content: "\ed2c"; } +.ri-finder-line:before { content: "\ed2d"; } +.ri-fingerprint-2-fill:before { content: "\ed2e"; } +.ri-fingerprint-2-line:before { content: "\ed2f"; } +.ri-fingerprint-fill:before { content: "\ed30"; } +.ri-fingerprint-line:before { content: "\ed31"; } +.ri-fire-fill:before { content: "\ed32"; } +.ri-fire-line:before { content: "\ed33"; } +.ri-firefox-fill:before { content: "\ed34"; } +.ri-firefox-line:before { content: "\ed35"; } +.ri-first-aid-kit-fill:before { content: "\ed36"; } +.ri-first-aid-kit-line:before { content: "\ed37"; } +.ri-flag-2-fill:before { content: "\ed38"; } +.ri-flag-2-line:before { content: "\ed39"; } +.ri-flag-fill:before { content: "\ed3a"; } +.ri-flag-line:before { content: "\ed3b"; } +.ri-flashlight-fill:before { content: "\ed3c"; } +.ri-flashlight-line:before { content: "\ed3d"; } +.ri-flask-fill:before { content: "\ed3e"; } +.ri-flask-line:before { content: "\ed3f"; } +.ri-flight-land-fill:before { content: "\ed40"; } +.ri-flight-land-line:before { content: "\ed41"; } +.ri-flight-takeoff-fill:before { content: "\ed42"; } +.ri-flight-takeoff-line:before { content: "\ed43"; } +.ri-flood-fill:before { content: "\ed44"; } +.ri-flood-line:before { content: "\ed45"; } +.ri-flow-chart:before { content: "\ed46"; } +.ri-flutter-fill:before { content: "\ed47"; } +.ri-flutter-line:before { content: "\ed48"; } +.ri-focus-2-fill:before { content: "\ed49"; } +.ri-focus-2-line:before { content: "\ed4a"; } +.ri-focus-3-fill:before { content: "\ed4b"; } +.ri-focus-3-line:before { content: "\ed4c"; } +.ri-focus-fill:before { content: "\ed4d"; } +.ri-focus-line:before { content: "\ed4e"; } +.ri-foggy-fill:before { content: "\ed4f"; } +.ri-foggy-line:before { content: "\ed50"; } +.ri-folder-2-fill:before { content: "\ed51"; } +.ri-folder-2-line:before { content: "\ed52"; } +.ri-folder-3-fill:before { content: "\ed53"; } +.ri-folder-3-line:before { content: "\ed54"; } +.ri-folder-4-fill:before { content: "\ed55"; } +.ri-folder-4-line:before { content: "\ed56"; } +.ri-folder-5-fill:before { content: "\ed57"; } +.ri-folder-5-line:before { content: "\ed58"; } +.ri-folder-add-fill:before { content: "\ed59"; } +.ri-folder-add-line:before { content: "\ed5a"; } +.ri-folder-chart-2-fill:before { content: "\ed5b"; } +.ri-folder-chart-2-line:before { content: "\ed5c"; } +.ri-folder-chart-fill:before { content: "\ed5d"; } +.ri-folder-chart-line:before { content: "\ed5e"; } +.ri-folder-download-fill:before { content: "\ed5f"; } +.ri-folder-download-line:before { content: "\ed60"; } +.ri-folder-fill:before { content: "\ed61"; } +.ri-folder-forbid-fill:before { content: "\ed62"; } +.ri-folder-forbid-line:before { content: "\ed63"; } +.ri-folder-history-fill:before { content: "\ed64"; } +.ri-folder-history-line:before { content: "\ed65"; } +.ri-folder-info-fill:before { content: "\ed66"; } +.ri-folder-info-line:before { content: "\ed67"; } +.ri-folder-keyhole-fill:before { content: "\ed68"; } +.ri-folder-keyhole-line:before { content: "\ed69"; } +.ri-folder-line:before { content: "\ed6a"; } +.ri-folder-lock-fill:before { content: "\ed6b"; } +.ri-folder-lock-line:before { content: "\ed6c"; } +.ri-folder-music-fill:before { content: "\ed6d"; } +.ri-folder-music-line:before { content: "\ed6e"; } +.ri-folder-open-fill:before { content: "\ed6f"; } +.ri-folder-open-line:before { content: "\ed70"; } +.ri-folder-received-fill:before { content: "\ed71"; } +.ri-folder-received-line:before { content: "\ed72"; } +.ri-folder-reduce-fill:before { content: "\ed73"; } +.ri-folder-reduce-line:before { content: "\ed74"; } +.ri-folder-settings-fill:before { content: "\ed75"; } +.ri-folder-settings-line:before { content: "\ed76"; } +.ri-folder-shared-fill:before { content: "\ed77"; } +.ri-folder-shared-line:before { content: "\ed78"; } +.ri-folder-shield-2-fill:before { content: "\ed79"; } +.ri-folder-shield-2-line:before { content: "\ed7a"; } +.ri-folder-shield-fill:before { content: "\ed7b"; } +.ri-folder-shield-line:before { content: "\ed7c"; } +.ri-folder-transfer-fill:before { content: "\ed7d"; } +.ri-folder-transfer-line:before { content: "\ed7e"; } +.ri-folder-unknow-fill:before { content: "\ed7f"; } +.ri-folder-unknow-line:before { content: "\ed80"; } +.ri-folder-upload-fill:before { content: "\ed81"; } +.ri-folder-upload-line:before { content: "\ed82"; } +.ri-folder-user-fill:before { content: "\ed83"; } +.ri-folder-user-line:before { content: "\ed84"; } +.ri-folder-warning-fill:before { content: "\ed85"; } +.ri-folder-warning-line:before { content: "\ed86"; } +.ri-folder-zip-fill:before { content: "\ed87"; } +.ri-folder-zip-line:before { content: "\ed88"; } +.ri-folders-fill:before { content: "\ed89"; } +.ri-folders-line:before { content: "\ed8a"; } +.ri-font-color:before { content: "\ed8b"; } +.ri-font-size-2:before { content: "\ed8c"; } +.ri-font-size:before { content: "\ed8d"; } +.ri-football-fill:before { content: "\ed8e"; } +.ri-football-line:before { content: "\ed8f"; } +.ri-footprint-fill:before { content: "\ed90"; } +.ri-footprint-line:before { content: "\ed91"; } +.ri-forbid-2-fill:before { content: "\ed92"; } +.ri-forbid-2-line:before { content: "\ed93"; } +.ri-forbid-fill:before { content: "\ed94"; } +.ri-forbid-line:before { content: "\ed95"; } +.ri-format-clear:before { content: "\ed96"; } +.ri-fridge-fill:before { content: "\ed97"; } +.ri-fridge-line:before { content: "\ed98"; } +.ri-fullscreen-exit-fill:before { content: "\ed99"; } +.ri-fullscreen-exit-line:before { content: "\ed9a"; } +.ri-fullscreen-fill:before { content: "\ed9b"; } +.ri-fullscreen-line:before { content: "\ed9c"; } +.ri-function-fill:before { content: "\ed9d"; } +.ri-function-line:before { content: "\ed9e"; } +.ri-functions:before { content: "\ed9f"; } +.ri-funds-box-fill:before { content: "\eda0"; } +.ri-funds-box-line:before { content: "\eda1"; } +.ri-funds-fill:before { content: "\eda2"; } +.ri-funds-line:before { content: "\eda3"; } +.ri-gallery-fill:before { content: "\eda4"; } +.ri-gallery-line:before { content: "\eda5"; } +.ri-gallery-upload-fill:before { content: "\eda6"; } +.ri-gallery-upload-line:before { content: "\eda7"; } +.ri-game-fill:before { content: "\eda8"; } +.ri-game-line:before { content: "\eda9"; } +.ri-gamepad-fill:before { content: "\edaa"; } +.ri-gamepad-line:before { content: "\edab"; } +.ri-gas-station-fill:before { content: "\edac"; } +.ri-gas-station-line:before { content: "\edad"; } +.ri-gatsby-fill:before { content: "\edae"; } +.ri-gatsby-line:before { content: "\edaf"; } +.ri-genderless-fill:before { content: "\edb0"; } +.ri-genderless-line:before { content: "\edb1"; } +.ri-ghost-2-fill:before { content: "\edb2"; } +.ri-ghost-2-line:before { content: "\edb3"; } +.ri-ghost-fill:before { content: "\edb4"; } +.ri-ghost-line:before { content: "\edb5"; } +.ri-ghost-smile-fill:before { content: "\edb6"; } +.ri-ghost-smile-line:before { content: "\edb7"; } +.ri-gift-2-fill:before { content: "\edb8"; } +.ri-gift-2-line:before { content: "\edb9"; } +.ri-gift-fill:before { content: "\edba"; } +.ri-gift-line:before { content: "\edbb"; } +.ri-git-branch-fill:before { content: "\edbc"; } +.ri-git-branch-line:before { content: "\edbd"; } +.ri-git-commit-fill:before { content: "\edbe"; } +.ri-git-commit-line:before { content: "\edbf"; } +.ri-git-merge-fill:before { content: "\edc0"; } +.ri-git-merge-line:before { content: "\edc1"; } +.ri-git-pull-request-fill:before { content: "\edc2"; } +.ri-git-pull-request-line:before { content: "\edc3"; } +.ri-git-repository-commits-fill:before { content: "\edc4"; } +.ri-git-repository-commits-line:before { content: "\edc5"; } +.ri-git-repository-fill:before { content: "\edc6"; } +.ri-git-repository-line:before { content: "\edc7"; } +.ri-git-repository-private-fill:before { content: "\edc8"; } +.ri-git-repository-private-line:before { content: "\edc9"; } +.ri-github-fill:before { content: "\edca"; } +.ri-github-line:before { content: "\edcb"; } +.ri-gitlab-fill:before { content: "\edcc"; } +.ri-gitlab-line:before { content: "\edcd"; } +.ri-global-fill:before { content: "\edce"; } +.ri-global-line:before { content: "\edcf"; } +.ri-globe-fill:before { content: "\edd0"; } +.ri-globe-line:before { content: "\edd1"; } +.ri-goblet-fill:before { content: "\edd2"; } +.ri-goblet-line:before { content: "\edd3"; } +.ri-google-fill:before { content: "\edd4"; } +.ri-google-line:before { content: "\edd5"; } +.ri-google-play-fill:before { content: "\edd6"; } +.ri-google-play-line:before { content: "\edd7"; } +.ri-government-fill:before { content: "\edd8"; } +.ri-government-line:before { content: "\edd9"; } +.ri-gps-fill:before { content: "\edda"; } +.ri-gps-line:before { content: "\eddb"; } +.ri-gradienter-fill:before { content: "\eddc"; } +.ri-gradienter-line:before { content: "\eddd"; } +.ri-grid-fill:before { content: "\edde"; } +.ri-grid-line:before { content: "\eddf"; } +.ri-group-2-fill:before { content: "\ede0"; } +.ri-group-2-line:before { content: "\ede1"; } +.ri-group-fill:before { content: "\ede2"; } +.ri-group-line:before { content: "\ede3"; } +.ri-guide-fill:before { content: "\ede4"; } +.ri-guide-line:before { content: "\ede5"; } +.ri-h-1:before { content: "\ede6"; } +.ri-h-2:before { content: "\ede7"; } +.ri-h-3:before { content: "\ede8"; } +.ri-h-4:before { content: "\ede9"; } +.ri-h-5:before { content: "\edea"; } +.ri-h-6:before { content: "\edeb"; } +.ri-hail-fill:before { content: "\edec"; } +.ri-hail-line:before { content: "\eded"; } +.ri-hammer-fill:before { content: "\edee"; } +.ri-hammer-line:before { content: "\edef"; } +.ri-hand-coin-fill:before { content: "\edf0"; } +.ri-hand-coin-line:before { content: "\edf1"; } +.ri-hand-heart-fill:before { content: "\edf2"; } +.ri-hand-heart-line:before { content: "\edf3"; } +.ri-hand-sanitizer-fill:before { content: "\edf4"; } +.ri-hand-sanitizer-line:before { content: "\edf5"; } +.ri-handbag-fill:before { content: "\edf6"; } +.ri-handbag-line:before { content: "\edf7"; } +.ri-hard-drive-2-fill:before { content: "\edf8"; } +.ri-hard-drive-2-line:before { content: "\edf9"; } +.ri-hard-drive-fill:before { content: "\edfa"; } +.ri-hard-drive-line:before { content: "\edfb"; } +.ri-hashtag:before { content: "\edfc"; } +.ri-haze-2-fill:before { content: "\edfd"; } +.ri-haze-2-line:before { content: "\edfe"; } +.ri-haze-fill:before { content: "\edff"; } +.ri-haze-line:before { content: "\ee00"; } +.ri-hd-fill:before { content: "\ee01"; } +.ri-hd-line:before { content: "\ee02"; } +.ri-heading:before { content: "\ee03"; } +.ri-headphone-fill:before { content: "\ee04"; } +.ri-headphone-line:before { content: "\ee05"; } +.ri-health-book-fill:before { content: "\ee06"; } +.ri-health-book-line:before { content: "\ee07"; } +.ri-heart-2-fill:before { content: "\ee08"; } +.ri-heart-2-line:before { content: "\ee09"; } +.ri-heart-3-fill:before { content: "\ee0a"; } +.ri-heart-3-line:before { content: "\ee0b"; } +.ri-heart-add-fill:before { content: "\ee0c"; } +.ri-heart-add-line:before { content: "\ee0d"; } +.ri-heart-fill:before { content: "\ee0e"; } +.ri-heart-line:before { content: "\ee0f"; } +.ri-heart-pulse-fill:before { content: "\ee10"; } +.ri-heart-pulse-line:before { content: "\ee11"; } +.ri-hearts-fill:before { content: "\ee12"; } +.ri-hearts-line:before { content: "\ee13"; } +.ri-heavy-showers-fill:before { content: "\ee14"; } +.ri-heavy-showers-line:before { content: "\ee15"; } +.ri-history-fill:before { content: "\ee16"; } +.ri-history-line:before { content: "\ee17"; } +.ri-home-2-fill:before { content: "\ee18"; } +.ri-home-2-line:before { content: "\ee19"; } +.ri-home-3-fill:before { content: "\ee1a"; } +.ri-home-3-line:before { content: "\ee1b"; } +.ri-home-4-fill:before { content: "\ee1c"; } +.ri-home-4-line:before { content: "\ee1d"; } +.ri-home-5-fill:before { content: "\ee1e"; } +.ri-home-5-line:before { content: "\ee1f"; } +.ri-home-6-fill:before { content: "\ee20"; } +.ri-home-6-line:before { content: "\ee21"; } +.ri-home-7-fill:before { content: "\ee22"; } +.ri-home-7-line:before { content: "\ee23"; } +.ri-home-8-fill:before { content: "\ee24"; } +.ri-home-8-line:before { content: "\ee25"; } +.ri-home-fill:before { content: "\ee26"; } +.ri-home-gear-fill:before { content: "\ee27"; } +.ri-home-gear-line:before { content: "\ee28"; } +.ri-home-heart-fill:before { content: "\ee29"; } +.ri-home-heart-line:before { content: "\ee2a"; } +.ri-home-line:before { content: "\ee2b"; } +.ri-home-smile-2-fill:before { content: "\ee2c"; } +.ri-home-smile-2-line:before { content: "\ee2d"; } +.ri-home-smile-fill:before { content: "\ee2e"; } +.ri-home-smile-line:before { content: "\ee2f"; } +.ri-home-wifi-fill:before { content: "\ee30"; } +.ri-home-wifi-line:before { content: "\ee31"; } +.ri-honor-of-kings-fill:before { content: "\ee32"; } +.ri-honor-of-kings-line:before { content: "\ee33"; } +.ri-honour-fill:before { content: "\ee34"; } +.ri-honour-line:before { content: "\ee35"; } +.ri-hospital-fill:before { content: "\ee36"; } +.ri-hospital-line:before { content: "\ee37"; } +.ri-hotel-bed-fill:before { content: "\ee38"; } +.ri-hotel-bed-line:before { content: "\ee39"; } +.ri-hotel-fill:before { content: "\ee3a"; } +.ri-hotel-line:before { content: "\ee3b"; } +.ri-hotspot-fill:before { content: "\ee3c"; } +.ri-hotspot-line:before { content: "\ee3d"; } +.ri-hq-fill:before { content: "\ee3e"; } +.ri-hq-line:before { content: "\ee3f"; } +.ri-html5-fill:before { content: "\ee40"; } +.ri-html5-line:before { content: "\ee41"; } +.ri-ie-fill:before { content: "\ee42"; } +.ri-ie-line:before { content: "\ee43"; } +.ri-image-2-fill:before { content: "\ee44"; } +.ri-image-2-line:before { content: "\ee45"; } +.ri-image-add-fill:before { content: "\ee46"; } +.ri-image-add-line:before { content: "\ee47"; } +.ri-image-edit-fill:before { content: "\ee48"; } +.ri-image-edit-line:before { content: "\ee49"; } +.ri-image-fill:before { content: "\ee4a"; } +.ri-image-line:before { content: "\ee4b"; } +.ri-inbox-archive-fill:before { content: "\ee4c"; } +.ri-inbox-archive-line:before { content: "\ee4d"; } +.ri-inbox-fill:before { content: "\ee4e"; } +.ri-inbox-line:before { content: "\ee4f"; } +.ri-inbox-unarchive-fill:before { content: "\ee50"; } +.ri-inbox-unarchive-line:before { content: "\ee51"; } +.ri-increase-decrease-fill:before { content: "\ee52"; } +.ri-increase-decrease-line:before { content: "\ee53"; } +.ri-indent-decrease:before { content: "\ee54"; } +.ri-indent-increase:before { content: "\ee55"; } +.ri-indeterminate-circle-fill:before { content: "\ee56"; } +.ri-indeterminate-circle-line:before { content: "\ee57"; } +.ri-information-fill:before { content: "\ee58"; } +.ri-information-line:before { content: "\ee59"; } +.ri-infrared-thermometer-fill:before { content: "\ee5a"; } +.ri-infrared-thermometer-line:before { content: "\ee5b"; } +.ri-ink-bottle-fill:before { content: "\ee5c"; } +.ri-ink-bottle-line:before { content: "\ee5d"; } +.ri-input-cursor-move:before { content: "\ee5e"; } +.ri-input-method-fill:before { content: "\ee5f"; } +.ri-input-method-line:before { content: "\ee60"; } +.ri-insert-column-left:before { content: "\ee61"; } +.ri-insert-column-right:before { content: "\ee62"; } +.ri-insert-row-bottom:before { content: "\ee63"; } +.ri-insert-row-top:before { content: "\ee64"; } +.ri-instagram-fill:before { content: "\ee65"; } +.ri-instagram-line:before { content: "\ee66"; } +.ri-install-fill:before { content: "\ee67"; } +.ri-install-line:before { content: "\ee68"; } +.ri-invision-fill:before { content: "\ee69"; } +.ri-invision-line:before { content: "\ee6a"; } +.ri-italic:before { content: "\ee6b"; } +.ri-kakao-talk-fill:before { content: "\ee6c"; } +.ri-kakao-talk-line:before { content: "\ee6d"; } +.ri-key-2-fill:before { content: "\ee6e"; } +.ri-key-2-line:before { content: "\ee6f"; } +.ri-key-fill:before { content: "\ee70"; } +.ri-key-line:before { content: "\ee71"; } +.ri-keyboard-box-fill:before { content: "\ee72"; } +.ri-keyboard-box-line:before { content: "\ee73"; } +.ri-keyboard-fill:before { content: "\ee74"; } +.ri-keyboard-line:before { content: "\ee75"; } +.ri-keynote-fill:before { content: "\ee76"; } +.ri-keynote-line:before { content: "\ee77"; } +.ri-knife-blood-fill:before { content: "\ee78"; } +.ri-knife-blood-line:before { content: "\ee79"; } +.ri-knife-fill:before { content: "\ee7a"; } +.ri-knife-line:before { content: "\ee7b"; } +.ri-landscape-fill:before { content: "\ee7c"; } +.ri-landscape-line:before { content: "\ee7d"; } +.ri-layout-2-fill:before { content: "\ee7e"; } +.ri-layout-2-line:before { content: "\ee7f"; } +.ri-layout-3-fill:before { content: "\ee80"; } +.ri-layout-3-line:before { content: "\ee81"; } +.ri-layout-4-fill:before { content: "\ee82"; } +.ri-layout-4-line:before { content: "\ee83"; } +.ri-layout-5-fill:before { content: "\ee84"; } +.ri-layout-5-line:before { content: "\ee85"; } +.ri-layout-6-fill:before { content: "\ee86"; } +.ri-layout-6-line:before { content: "\ee87"; } +.ri-layout-bottom-2-fill:before { content: "\ee88"; } +.ri-layout-bottom-2-line:before { content: "\ee89"; } +.ri-layout-bottom-fill:before { content: "\ee8a"; } +.ri-layout-bottom-line:before { content: "\ee8b"; } +.ri-layout-column-fill:before { content: "\ee8c"; } +.ri-layout-column-line:before { content: "\ee8d"; } +.ri-layout-fill:before { content: "\ee8e"; } +.ri-layout-grid-fill:before { content: "\ee8f"; } +.ri-layout-grid-line:before { content: "\ee90"; } +.ri-layout-left-2-fill:before { content: "\ee91"; } +.ri-layout-left-2-line:before { content: "\ee92"; } +.ri-layout-left-fill:before { content: "\ee93"; } +.ri-layout-left-line:before { content: "\ee94"; } +.ri-layout-line:before { content: "\ee95"; } +.ri-layout-masonry-fill:before { content: "\ee96"; } +.ri-layout-masonry-line:before { content: "\ee97"; } +.ri-layout-right-2-fill:before { content: "\ee98"; } +.ri-layout-right-2-line:before { content: "\ee99"; } +.ri-layout-right-fill:before { content: "\ee9a"; } +.ri-layout-right-line:before { content: "\ee9b"; } +.ri-layout-row-fill:before { content: "\ee9c"; } +.ri-layout-row-line:before { content: "\ee9d"; } +.ri-layout-top-2-fill:before { content: "\ee9e"; } +.ri-layout-top-2-line:before { content: "\ee9f"; } +.ri-layout-top-fill:before { content: "\eea0"; } +.ri-layout-top-line:before { content: "\eea1"; } +.ri-leaf-fill:before { content: "\eea2"; } +.ri-leaf-line:before { content: "\eea3"; } +.ri-lifebuoy-fill:before { content: "\eea4"; } +.ri-lifebuoy-line:before { content: "\eea5"; } +.ri-lightbulb-fill:before { content: "\eea6"; } +.ri-lightbulb-flash-fill:before { content: "\eea7"; } +.ri-lightbulb-flash-line:before { content: "\eea8"; } +.ri-lightbulb-line:before { content: "\eea9"; } +.ri-line-chart-fill:before { content: "\eeaa"; } +.ri-line-chart-line:before { content: "\eeab"; } +.ri-line-fill:before { content: "\eeac"; } +.ri-line-height:before { content: "\eead"; } +.ri-line-line:before { content: "\eeae"; } +.ri-link-m:before { content: "\eeaf"; } +.ri-link-unlink-m:before { content: "\eeb0"; } +.ri-link-unlink:before { content: "\eeb1"; } +.ri-link:before { content: "\eeb2"; } +.ri-linkedin-box-fill:before { content: "\eeb3"; } +.ri-linkedin-box-line:before { content: "\eeb4"; } +.ri-linkedin-fill:before { content: "\eeb5"; } +.ri-linkedin-line:before { content: "\eeb6"; } +.ri-links-fill:before { content: "\eeb7"; } +.ri-links-line:before { content: "\eeb8"; } +.ri-list-check-2:before { content: "\eeb9"; } +.ri-list-check:before { content: "\eeba"; } +.ri-list-ordered:before { content: "\eebb"; } +.ri-list-settings-fill:before { content: "\eebc"; } +.ri-list-settings-line:before { content: "\eebd"; } +.ri-list-unordered:before { content: "\eebe"; } +.ri-live-fill:before { content: "\eebf"; } +.ri-live-line:before { content: "\eec0"; } +.ri-loader-2-fill:before { content: "\eec1"; } +.ri-loader-2-line:before { content: "\eec2"; } +.ri-loader-3-fill:before { content: "\eec3"; } +.ri-loader-3-line:before { content: "\eec4"; } +.ri-loader-4-fill:before { content: "\eec5"; } +.ri-loader-4-line:before { content: "\eec6"; } +.ri-loader-5-fill:before { content: "\eec7"; } +.ri-loader-5-line:before { content: "\eec8"; } +.ri-loader-fill:before { content: "\eec9"; } +.ri-loader-line:before { content: "\eeca"; } +.ri-lock-2-fill:before { content: "\eecb"; } +.ri-lock-2-line:before { content: "\eecc"; } +.ri-lock-fill:before { content: "\eecd"; } +.ri-lock-line:before { content: "\eece"; } +.ri-lock-password-fill:before { content: "\eecf"; } +.ri-lock-password-line:before { content: "\eed0"; } +.ri-lock-unlock-fill:before { content: "\eed1"; } +.ri-lock-unlock-line:before { content: "\eed2"; } +.ri-Iniciar Sesion-box-fill:before { content: "\eed3"; } +.ri-Iniciar Sesion-box-line:before { content: "\eed4"; } +.ri-Iniciar Sesion-circle-fill:before { content: "\eed5"; } +.ri-Iniciar Sesion-circle-line:before { content: "\eed6"; } +.ri-logout-box-fill:before { content: "\eed7"; } +.ri-logout-box-line:before { content: "\eed8"; } +.ri-logout-box-r-fill:before { content: "\eed9"; } +.ri-logout-box-r-line:before { content: "\eeda"; } +.ri-logout-circle-fill:before { content: "\eedb"; } +.ri-logout-circle-line:before { content: "\eedc"; } +.ri-logout-circle-r-fill:before { content: "\eedd"; } +.ri-logout-circle-r-line:before { content: "\eede"; } +.ri-luggage-cart-fill:before { content: "\eedf"; } +.ri-luggage-cart-line:before { content: "\eee0"; } +.ri-luggage-deposit-fill:before { content: "\eee1"; } +.ri-luggage-deposit-line:before { content: "\eee2"; } +.ri-lungs-fill:before { content: "\eee3"; } +.ri-lungs-line:before { content: "\eee4"; } +.ri-mac-fill:before { content: "\eee5"; } +.ri-mac-line:before { content: "\eee6"; } +.ri-macbook-fill:before { content: "\eee7"; } +.ri-macbook-line:before { content: "\eee8"; } +.ri-magic-fill:before { content: "\eee9"; } +.ri-magic-line:before { content: "\eeea"; } +.ri-mail-add-fill:before { content: "\eeeb"; } +.ri-mail-add-line:before { content: "\eeec"; } +.ri-mail-check-fill:before { content: "\eeed"; } +.ri-mail-check-line:before { content: "\eeee"; } +.ri-mail-close-fill:before { content: "\eeef"; } +.ri-mail-close-line:before { content: "\eef0"; } +.ri-mail-download-fill:before { content: "\eef1"; } +.ri-mail-download-line:before { content: "\eef2"; } +.ri-mail-fill:before { content: "\eef3"; } +.ri-mail-forbid-fill:before { content: "\eef4"; } +.ri-mail-forbid-line:before { content: "\eef5"; } +.ri-mail-line:before { content: "\eef6"; } +.ri-mail-lock-fill:before { content: "\eef7"; } +.ri-mail-lock-line:before { content: "\eef8"; } +.ri-mail-open-fill:before { content: "\eef9"; } +.ri-mail-open-line:before { content: "\eefa"; } +.ri-mail-send-fill:before { content: "\eefb"; } +.ri-mail-send-line:before { content: "\eefc"; } +.ri-mail-settings-fill:before { content: "\eefd"; } +.ri-mail-settings-line:before { content: "\eefe"; } +.ri-mail-star-fill:before { content: "\eeff"; } +.ri-mail-star-line:before { content: "\ef00"; } +.ri-mail-unread-fill:before { content: "\ef01"; } +.ri-mail-unread-line:before { content: "\ef02"; } +.ri-mail-volume-fill:before { content: "\ef03"; } +.ri-mail-volume-line:before { content: "\ef04"; } +.ri-map-2-fill:before { content: "\ef05"; } +.ri-map-2-line:before { content: "\ef06"; } +.ri-map-fill:before { content: "\ef07"; } +.ri-map-line:before { content: "\ef08"; } +.ri-map-pin-2-fill:before { content: "\ef09"; } +.ri-map-pin-2-line:before { content: "\ef0a"; } +.ri-map-pin-3-fill:before { content: "\ef0b"; } +.ri-map-pin-3-line:before { content: "\ef0c"; } +.ri-map-pin-4-fill:before { content: "\ef0d"; } +.ri-map-pin-4-line:before { content: "\ef0e"; } +.ri-map-pin-5-fill:before { content: "\ef0f"; } +.ri-map-pin-5-line:before { content: "\ef10"; } +.ri-map-pin-add-fill:before { content: "\ef11"; } +.ri-map-pin-add-line:before { content: "\ef12"; } +.ri-map-pin-fill:before { content: "\ef13"; } +.ri-map-pin-line:before { content: "\ef14"; } +.ri-map-pin-range-fill:before { content: "\ef15"; } +.ri-map-pin-range-line:before { content: "\ef16"; } +.ri-map-pin-time-fill:before { content: "\ef17"; } +.ri-map-pin-time-line:before { content: "\ef18"; } +.ri-map-pin-user-fill:before { content: "\ef19"; } +.ri-map-pin-user-line:before { content: "\ef1a"; } +.ri-mark-pen-fill:before { content: "\ef1b"; } +.ri-mark-pen-line:before { content: "\ef1c"; } +.ri-markdown-fill:before { content: "\ef1d"; } +.ri-markdown-line:before { content: "\ef1e"; } +.ri-markup-fill:before { content: "\ef1f"; } +.ri-markup-line:before { content: "\ef20"; } +.ri-mastercard-fill:before { content: "\ef21"; } +.ri-mastercard-line:before { content: "\ef22"; } +.ri-mastodon-fill:before { content: "\ef23"; } +.ri-mastodon-line:before { content: "\ef24"; } +.ri-medal-2-fill:before { content: "\ef25"; } +.ri-medal-2-line:before { content: "\ef26"; } +.ri-medal-fill:before { content: "\ef27"; } +.ri-medal-line:before { content: "\ef28"; } +.ri-medicine-bottle-fill:before { content: "\ef29"; } +.ri-medicine-bottle-line:before { content: "\ef2a"; } +.ri-medium-fill:before { content: "\ef2b"; } +.ri-medium-line:before { content: "\ef2c"; } +.ri-men-fill:before { content: "\ef2d"; } +.ri-men-line:before { content: "\ef2e"; } +.ri-mental-health-fill:before { content: "\ef2f"; } +.ri-mental-health-line:before { content: "\ef30"; } +.ri-menu-2-fill:before { content: "\ef31"; } +.ri-menu-2-line:before { content: "\ef32"; } +.ri-menu-3-fill:before { content: "\ef33"; } +.ri-menu-3-line:before { content: "\ef34"; } +.ri-menu-4-fill:before { content: "\ef35"; } +.ri-menu-4-line:before { content: "\ef36"; } +.ri-menu-5-fill:before { content: "\ef37"; } +.ri-menu-5-line:before { content: "\ef38"; } +.ri-menu-add-fill:before { content: "\ef39"; } +.ri-menu-add-line:before { content: "\ef3a"; } +.ri-menu-fill:before { content: "\ef3b"; } +.ri-menu-fold-fill:before { content: "\ef3c"; } +.ri-menu-fold-line:before { content: "\ef3d"; } +.ri-menu-line:before { content: "\ef3e"; } +.ri-menu-unfold-fill:before { content: "\ef3f"; } +.ri-menu-unfold-line:before { content: "\ef40"; } +.ri-merge-cells-horizontal:before { content: "\ef41"; } +.ri-merge-cells-vertical:before { content: "\ef42"; } +.ri-message-2-fill:before { content: "\ef43"; } +.ri-message-2-line:before { content: "\ef44"; } +.ri-message-3-fill:before { content: "\ef45"; } +.ri-message-3-line:before { content: "\ef46"; } +.ri-message-fill:before { content: "\ef47"; } +.ri-message-line:before { content: "\ef48"; } +.ri-messenger-fill:before { content: "\ef49"; } +.ri-messenger-line:before { content: "\ef4a"; } +.ri-meteor-fill:before { content: "\ef4b"; } +.ri-meteor-line:before { content: "\ef4c"; } +.ri-mic-2-fill:before { content: "\ef4d"; } +.ri-mic-2-line:before { content: "\ef4e"; } +.ri-mic-fill:before { content: "\ef4f"; } +.ri-mic-line:before { content: "\ef50"; } +.ri-mic-off-fill:before { content: "\ef51"; } +.ri-mic-off-line:before { content: "\ef52"; } +.ri-mickey-fill:before { content: "\ef53"; } +.ri-mickey-line:before { content: "\ef54"; } +.ri-microscope-fill:before { content: "\ef55"; } +.ri-microscope-line:before { content: "\ef56"; } +.ri-microsoft-fill:before { content: "\ef57"; } +.ri-microsoft-line:before { content: "\ef58"; } +.ri-mind-map:before { content: "\ef59"; } +.ri-mini-program-fill:before { content: "\ef5a"; } +.ri-mini-program-line:before { content: "\ef5b"; } +.ri-mist-fill:before { content: "\ef5c"; } +.ri-mist-line:before { content: "\ef5d"; } +.ri-money-cny-box-fill:before { content: "\ef5e"; } +.ri-money-cny-box-line:before { content: "\ef5f"; } +.ri-money-cny-circle-fill:before { content: "\ef60"; } +.ri-money-cny-circle-line:before { content: "\ef61"; } +.ri-money-dollar-box-fill:before { content: "\ef62"; } +.ri-money-dollar-box-line:before { content: "\ef63"; } +.ri-money-dollar-circle-fill:before { content: "\ef64"; } +.ri-money-dollar-circle-line:before { content: "\ef65"; } +.ri-money-euro-box-fill:before { content: "\ef66"; } +.ri-money-euro-box-line:before { content: "\ef67"; } +.ri-money-euro-circle-fill:before { content: "\ef68"; } +.ri-money-euro-circle-line:before { content: "\ef69"; } +.ri-money-pound-box-fill:before { content: "\ef6a"; } +.ri-money-pound-box-line:before { content: "\ef6b"; } +.ri-money-pound-circle-fill:before { content: "\ef6c"; } +.ri-money-pound-circle-line:before { content: "\ef6d"; } +.ri-moon-clear-fill:before { content: "\ef6e"; } +.ri-moon-clear-line:before { content: "\ef6f"; } +.ri-moon-cloudy-fill:before { content: "\ef70"; } +.ri-moon-cloudy-line:before { content: "\ef71"; } +.ri-moon-fill:before { content: "\ef72"; } +.ri-moon-foggy-fill:before { content: "\ef73"; } +.ri-moon-foggy-line:before { content: "\ef74"; } +.ri-moon-line:before { content: "\ef75"; } +.ri-more-2-fill:before { content: "\ef76"; } +.ri-more-2-line:before { content: "\ef77"; } +.ri-more-fill:before { content: "\ef78"; } +.ri-more-line:before { content: "\ef79"; } +.ri-motorbike-fill:before { content: "\ef7a"; } +.ri-motorbike-line:before { content: "\ef7b"; } +.ri-mouse-fill:before { content: "\ef7c"; } +.ri-mouse-line:before { content: "\ef7d"; } +.ri-movie-2-fill:before { content: "\ef7e"; } +.ri-movie-2-line:before { content: "\ef7f"; } +.ri-movie-fill:before { content: "\ef80"; } +.ri-movie-line:before { content: "\ef81"; } +.ri-music-2-fill:before { content: "\ef82"; } +.ri-music-2-line:before { content: "\ef83"; } +.ri-music-fill:before { content: "\ef84"; } +.ri-music-line:before { content: "\ef85"; } +.ri-mv-fill:before { content: "\ef86"; } +.ri-mv-line:before { content: "\ef87"; } +.ri-navigation-fill:before { content: "\ef88"; } +.ri-navigation-line:before { content: "\ef89"; } +.ri-netease-cloud-music-fill:before { content: "\ef8a"; } +.ri-netease-cloud-music-line:before { content: "\ef8b"; } +.ri-netflix-fill:before { content: "\ef8c"; } +.ri-netflix-line:before { content: "\ef8d"; } +.ri-newspaper-fill:before { content: "\ef8e"; } +.ri-newspaper-line:before { content: "\ef8f"; } +.ri-node-tree:before { content: "\ef90"; } +.ri-notification-2-fill:before { content: "\ef91"; } +.ri-notification-2-line:before { content: "\ef92"; } +.ri-notification-3-fill:before { content: "\ef93"; } +.ri-notification-3-line:before { content: "\ef94"; } +.ri-notification-4-fill:before { content: "\ef95"; } +.ri-notification-4-line:before { content: "\ef96"; } +.ri-notification-badge-fill:before { content: "\ef97"; } +.ri-notification-badge-line:before { content: "\ef98"; } +.ri-notification-fill:before { content: "\ef99"; } +.ri-notification-line:before { content: "\ef9a"; } +.ri-notification-off-fill:before { content: "\ef9b"; } +.ri-notification-off-line:before { content: "\ef9c"; } +.ri-npmjs-fill:before { content: "\ef9d"; } +.ri-npmjs-line:before { content: "\ef9e"; } +.ri-number-0:before { content: "\ef9f"; } +.ri-number-1:before { content: "\efa0"; } +.ri-number-2:before { content: "\efa1"; } +.ri-number-3:before { content: "\efa2"; } +.ri-number-4:before { content: "\efa3"; } +.ri-number-5:before { content: "\efa4"; } +.ri-number-6:before { content: "\efa5"; } +.ri-number-7:before { content: "\efa6"; } +.ri-number-8:before { content: "\efa7"; } +.ri-number-9:before { content: "\efa8"; } +.ri-numbers-fill:before { content: "\efa9"; } +.ri-numbers-line:before { content: "\efaa"; } +.ri-nurse-fill:before { content: "\efab"; } +.ri-nurse-line:before { content: "\efac"; } +.ri-oil-fill:before { content: "\efad"; } +.ri-oil-line:before { content: "\efae"; } +.ri-omega:before { content: "\efaf"; } +.ri-open-arm-fill:before { content: "\efb0"; } +.ri-open-arm-line:before { content: "\efb1"; } +.ri-open-source-fill:before { content: "\efb2"; } +.ri-open-source-line:before { content: "\efb3"; } +.ri-opera-fill:before { content: "\efb4"; } +.ri-opera-line:before { content: "\efb5"; } +.ri-order-play-fill:before { content: "\efb6"; } +.ri-order-play-line:before { content: "\efb7"; } +.ri-organization-chart:before { content: "\efb8"; } +.ri-outlet-2-fill:before { content: "\efb9"; } +.ri-outlet-2-line:before { content: "\efba"; } +.ri-outlet-fill:before { content: "\efbb"; } +.ri-outlet-line:before { content: "\efbc"; } +.ri-page-separator:before { content: "\efbd"; } +.ri-pages-fill:before { content: "\efbe"; } +.ri-pages-line:before { content: "\efbf"; } +.ri-paint-brush-fill:before { content: "\efc0"; } +.ri-paint-brush-line:before { content: "\efc1"; } +.ri-paint-fill:before { content: "\efc2"; } +.ri-paint-line:before { content: "\efc3"; } +.ri-palette-fill:before { content: "\efc4"; } +.ri-palette-line:before { content: "\efc5"; } +.ri-pantone-fill:before { content: "\efc6"; } +.ri-pantone-line:before { content: "\efc7"; } +.ri-paragraph:before { content: "\efc8"; } +.ri-parent-fill:before { content: "\efc9"; } +.ri-parent-line:before { content: "\efca"; } +.ri-parentheses-fill:before { content: "\efcb"; } +.ri-parentheses-line:before { content: "\efcc"; } +.ri-parking-box-fill:before { content: "\efcd"; } +.ri-parking-box-line:before { content: "\efce"; } +.ri-parking-fill:before { content: "\efcf"; } +.ri-parking-line:before { content: "\efd0"; } +.ri-passport-fill:before { content: "\efd1"; } +.ri-passport-line:before { content: "\efd2"; } +.ri-patreon-fill:before { content: "\efd3"; } +.ri-patreon-line:before { content: "\efd4"; } +.ri-pause-circle-fill:before { content: "\efd5"; } +.ri-pause-circle-line:before { content: "\efd6"; } +.ri-pause-fill:before { content: "\efd7"; } +.ri-pause-line:before { content: "\efd8"; } +.ri-pause-mini-fill:before { content: "\efd9"; } +.ri-pause-mini-line:before { content: "\efda"; } +.ri-paypal-fill:before { content: "\efdb"; } +.ri-paypal-line:before { content: "\efdc"; } +.ri-pen-nib-fill:before { content: "\efdd"; } +.ri-pen-nib-line:before { content: "\efde"; } +.ri-pencil-fill:before { content: "\efdf"; } +.ri-pencil-line:before { content: "\efe0"; } +.ri-pencil-ruler-2-fill:before { content: "\efe1"; } +.ri-pencil-ruler-2-line:before { content: "\efe2"; } +.ri-pencil-ruler-fill:before { content: "\efe3"; } +.ri-pencil-ruler-line:before { content: "\efe4"; } +.ri-percent-fill:before { content: "\efe5"; } +.ri-percent-line:before { content: "\efe6"; } +.ri-phone-camera-fill:before { content: "\efe7"; } +.ri-phone-camera-line:before { content: "\efe8"; } +.ri-phone-fill:before { content: "\efe9"; } +.ri-phone-find-fill:before { content: "\efea"; } +.ri-phone-find-line:before { content: "\efeb"; } +.ri-phone-line:before { content: "\efec"; } +.ri-phone-lock-fill:before { content: "\efed"; } +.ri-phone-lock-line:before { content: "\efee"; } +.ri-picture-in-picture-2-fill:before { content: "\efef"; } +.ri-picture-in-picture-2-line:before { content: "\eff0"; } +.ri-picture-in-picture-exit-fill:before { content: "\eff1"; } +.ri-picture-in-picture-exit-line:before { content: "\eff2"; } +.ri-picture-in-picture-fill:before { content: "\eff3"; } +.ri-picture-in-picture-line:before { content: "\eff4"; } +.ri-pie-chart-2-fill:before { content: "\eff5"; } +.ri-pie-chart-2-line:before { content: "\eff6"; } +.ri-pie-chart-box-fill:before { content: "\eff7"; } +.ri-pie-chart-box-line:before { content: "\eff8"; } +.ri-pie-chart-fill:before { content: "\eff9"; } +.ri-pie-chart-line:before { content: "\effa"; } +.ri-pin-distance-fill:before { content: "\effb"; } +.ri-pin-distance-line:before { content: "\effc"; } +.ri-ping-pong-fill:before { content: "\effd"; } +.ri-ping-pong-line:before { content: "\effe"; } +.ri-pinterest-fill:before { content: "\efff"; } +.ri-pinterest-line:before { content: "\f000"; } +.ri-pinyin-input:before { content: "\f001"; } +.ri-pixelfed-fill:before { content: "\f002"; } +.ri-pixelfed-line:before { content: "\f003"; } +.ri-plane-fill:before { content: "\f004"; } +.ri-plane-line:before { content: "\f005"; } +.ri-plant-fill:before { content: "\f006"; } +.ri-plant-line:before { content: "\f007"; } +.ri-play-circle-fill:before { content: "\f008"; } +.ri-play-circle-line:before { content: "\f009"; } +.ri-play-fill:before { content: "\f00a"; } +.ri-play-line:before { content: "\f00b"; } +.ri-play-list-2-fill:before { content: "\f00c"; } +.ri-play-list-2-line:before { content: "\f00d"; } +.ri-play-list-add-fill:before { content: "\f00e"; } +.ri-play-list-add-line:before { content: "\f00f"; } +.ri-play-list-fill:before { content: "\f010"; } +.ri-play-list-line:before { content: "\f011"; } +.ri-play-mini-fill:before { content: "\f012"; } +.ri-play-mini-line:before { content: "\f013"; } +.ri-playstation-fill:before { content: "\f014"; } +.ri-playstation-line:before { content: "\f015"; } +.ri-plug-2-fill:before { content: "\f016"; } +.ri-plug-2-line:before { content: "\f017"; } +.ri-plug-fill:before { content: "\f018"; } +.ri-plug-line:before { content: "\f019"; } +.ri-polaroid-2-fill:before { content: "\f01a"; } +.ri-polaroid-2-line:before { content: "\f01b"; } +.ri-polaroid-fill:before { content: "\f01c"; } +.ri-polaroid-line:before { content: "\f01d"; } +.ri-police-car-fill:before { content: "\f01e"; } +.ri-police-car-line:before { content: "\f01f"; } +.ri-price-tag-2-fill:before { content: "\f020"; } +.ri-price-tag-2-line:before { content: "\f021"; } +.ri-price-tag-3-fill:before { content: "\f022"; } +.ri-price-tag-3-line:before { content: "\f023"; } +.ri-price-tag-fill:before { content: "\f024"; } +.ri-price-tag-line:before { content: "\f025"; } +.ri-printer-cloud-fill:before { content: "\f026"; } +.ri-printer-cloud-line:before { content: "\f027"; } +.ri-printer-fill:before { content: "\f028"; } +.ri-printer-line:before { content: "\f029"; } +.ri-product-hunt-fill:before { content: "\f02a"; } +.ri-product-hunt-line:before { content: "\f02b"; } +.ri-Perfil-fill:before { content: "\f02c"; } +.ri-Perfil-line:before { content: "\f02d"; } +.ri-projector-2-fill:before { content: "\f02e"; } +.ri-projector-2-line:before { content: "\f02f"; } +.ri-projector-fill:before { content: "\f030"; } +.ri-projector-line:before { content: "\f031"; } +.ri-psychotherapy-fill:before { content: "\f032"; } +.ri-psychotherapy-line:before { content: "\f033"; } +.ri-pulse-fill:before { content: "\f034"; } +.ri-pulse-line:before { content: "\f035"; } +.ri-pushpin-2-fill:before { content: "\f036"; } +.ri-pushpin-2-line:before { content: "\f037"; } +.ri-pushpin-fill:before { content: "\f038"; } +.ri-pushpin-line:before { content: "\f039"; } +.ri-qq-fill:before { content: "\f03a"; } +.ri-qq-line:before { content: "\f03b"; } +.ri-qr-code-fill:before { content: "\f03c"; } +.ri-qr-code-line:before { content: "\f03d"; } +.ri-qr-scan-2-fill:before { content: "\f03e"; } +.ri-qr-scan-2-line:before { content: "\f03f"; } +.ri-qr-scan-fill:before { content: "\f040"; } +.ri-qr-scan-line:before { content: "\f041"; } +.ri-question-answer-fill:before { content: "\f042"; } +.ri-question-answer-line:before { content: "\f043"; } +.ri-question-fill:before { content: "\f044"; } +.ri-question-line:before { content: "\f045"; } +.ri-question-mark:before { content: "\f046"; } +.ri-questionnaire-fill:before { content: "\f047"; } +.ri-questionnaire-line:before { content: "\f048"; } +.ri-quill-pen-fill:before { content: "\f049"; } +.ri-quill-pen-line:before { content: "\f04a"; } +.ri-radar-fill:before { content: "\f04b"; } +.ri-radar-line:before { content: "\f04c"; } +.ri-radio-2-fill:before { content: "\f04d"; } +.ri-radio-2-line:before { content: "\f04e"; } +.ri-radio-button-fill:before { content: "\f04f"; } +.ri-radio-button-line:before { content: "\f050"; } +.ri-radio-fill:before { content: "\f051"; } +.ri-radio-line:before { content: "\f052"; } +.ri-rainbow-fill:before { content: "\f053"; } +.ri-rainbow-line:before { content: "\f054"; } +.ri-rainy-fill:before { content: "\f055"; } +.ri-rainy-line:before { content: "\f056"; } +.ri-reactjs-fill:before { content: "\f057"; } +.ri-reactjs-line:before { content: "\f058"; } +.ri-record-circle-fill:before { content: "\f059"; } +.ri-record-circle-line:before { content: "\f05a"; } +.ri-record-mail-fill:before { content: "\f05b"; } +.ri-record-mail-line:before { content: "\f05c"; } +.ri-recycle-fill:before { content: "\f05d"; } +.ri-recycle-line:before { content: "\f05e"; } +.ri-red-packet-fill:before { content: "\f05f"; } +.ri-red-packet-line:before { content: "\f060"; } +.ri-reddit-fill:before { content: "\f061"; } +.ri-reddit-line:before { content: "\f062"; } +.ri-refresh-fill:before { content: "\f063"; } +.ri-refresh-line:before { content: "\f064"; } +.ri-refund-2-fill:before { content: "\f065"; } +.ri-refund-2-line:before { content: "\f066"; } +.ri-refund-fill:before { content: "\f067"; } +.ri-refund-line:before { content: "\f068"; } +.ri-Registroed-fill:before { content: "\f069"; } +.ri-Registroed-line:before { content: "\f06a"; } +.ri-remixicon-fill:before { content: "\f06b"; } +.ri-remixicon-line:before { content: "\f06c"; } +.ri-remote-control-2-fill:before { content: "\f06d"; } +.ri-remote-control-2-line:before { content: "\f06e"; } +.ri-remote-control-fill:before { content: "\f06f"; } +.ri-remote-control-line:before { content: "\f070"; } +.ri-repeat-2-fill:before { content: "\f071"; } +.ri-repeat-2-line:before { content: "\f072"; } +.ri-repeat-fill:before { content: "\f073"; } +.ri-repeat-line:before { content: "\f074"; } +.ri-repeat-one-fill:before { content: "\f075"; } +.ri-repeat-one-line:before { content: "\f076"; } +.ri-reply-all-fill:before { content: "\f077"; } +.ri-reply-all-line:before { content: "\f078"; } +.ri-reply-fill:before { content: "\f079"; } +.ri-reply-line:before { content: "\f07a"; } +.ri-reserved-fill:before { content: "\f07b"; } +.ri-reserved-line:before { content: "\f07c"; } +.ri-rest-time-fill:before { content: "\f07d"; } +.ri-rest-time-line:before { content: "\f07e"; } +.ri-restart-fill:before { content: "\f07f"; } +.ri-restart-line:before { content: "\f080"; } +.ri-restaurant-2-fill:before { content: "\f081"; } +.ri-restaurant-2-line:before { content: "\f082"; } +.ri-restaurant-fill:before { content: "\f083"; } +.ri-restaurant-line:before { content: "\f084"; } +.ri-rewind-fill:before { content: "\f085"; } +.ri-rewind-line:before { content: "\f086"; } +.ri-rewind-mini-fill:before { content: "\f087"; } +.ri-rewind-mini-line:before { content: "\f088"; } +.ri-rhythm-fill:before { content: "\f089"; } +.ri-rhythm-line:before { content: "\f08a"; } +.ri-riding-fill:before { content: "\f08b"; } +.ri-riding-line:before { content: "\f08c"; } +.ri-road-map-fill:before { content: "\f08d"; } +.ri-road-map-line:before { content: "\f08e"; } +.ri-roadster-fill:before { content: "\f08f"; } +.ri-roadster-line:before { content: "\f090"; } +.ri-robot-fill:before { content: "\f091"; } +.ri-robot-line:before { content: "\f092"; } +.ri-rocket-2-fill:before { content: "\f093"; } +.ri-rocket-2-line:before { content: "\f094"; } +.ri-rocket-fill:before { content: "\f095"; } +.ri-rocket-line:before { content: "\f096"; } +.ri-rotate-lock-fill:before { content: "\f097"; } +.ri-rotate-lock-line:before { content: "\f098"; } +.ri-rounded-corner:before { content: "\f099"; } +.ri-route-fill:before { content: "\f09a"; } +.ri-route-line:before { content: "\f09b"; } +.ri-router-fill:before { content: "\f09c"; } +.ri-router-line:before { content: "\f09d"; } +.ri-rss-fill:before { content: "\f09e"; } +.ri-rss-line:before { content: "\f09f"; } +.ri-ruler-2-fill:before { content: "\f0a0"; } +.ri-ruler-2-line:before { content: "\f0a1"; } +.ri-ruler-fill:before { content: "\f0a2"; } +.ri-ruler-line:before { content: "\f0a3"; } +.ri-run-fill:before { content: "\f0a4"; } +.ri-run-line:before { content: "\f0a5"; } +.ri-safari-fill:before { content: "\f0a6"; } +.ri-safari-line:before { content: "\f0a7"; } +.ri-safe-2-fill:before { content: "\f0a8"; } +.ri-safe-2-line:before { content: "\f0a9"; } +.ri-safe-fill:before { content: "\f0aa"; } +.ri-safe-line:before { content: "\f0ab"; } +.ri-sailboat-fill:before { content: "\f0ac"; } +.ri-sailboat-line:before { content: "\f0ad"; } +.ri-save-2-fill:before { content: "\f0ae"; } +.ri-save-2-line:before { content: "\f0af"; } +.ri-save-3-fill:before { content: "\f0b0"; } +.ri-save-3-line:before { content: "\f0b1"; } +.ri-save-fill:before { content: "\f0b2"; } +.ri-save-line:before { content: "\f0b3"; } +.ri-scales-2-fill:before { content: "\f0b4"; } +.ri-scales-2-line:before { content: "\f0b5"; } +.ri-scales-3-fill:before { content: "\f0b6"; } +.ri-scales-3-line:before { content: "\f0b7"; } +.ri-scales-fill:before { content: "\f0b8"; } +.ri-scales-line:before { content: "\f0b9"; } +.ri-scan-2-fill:before { content: "\f0ba"; } +.ri-scan-2-line:before { content: "\f0bb"; } +.ri-scan-fill:before { content: "\f0bc"; } +.ri-scan-line:before { content: "\f0bd"; } +.ri-scissors-2-fill:before { content: "\f0be"; } +.ri-scissors-2-line:before { content: "\f0bf"; } +.ri-scissors-cut-fill:before { content: "\f0c0"; } +.ri-scissors-cut-line:before { content: "\f0c1"; } +.ri-scissors-fill:before { content: "\f0c2"; } +.ri-scissors-line:before { content: "\f0c3"; } +.ri-screenshot-2-fill:before { content: "\f0c4"; } +.ri-screenshot-2-line:before { content: "\f0c5"; } +.ri-screenshot-fill:before { content: "\f0c6"; } +.ri-screenshot-line:before { content: "\f0c7"; } +.ri-sd-card-fill:before { content: "\f0c8"; } +.ri-sd-card-line:before { content: "\f0c9"; } +.ri-sd-card-mini-fill:before { content: "\f0ca"; } +.ri-sd-card-mini-line:before { content: "\f0cb"; } +.ri-Buscar-2-fill:before { content: "\f0cc"; } +.ri-Buscar-2-line:before { content: "\f0cd"; } +.ri-Buscar-eye-fill:before { content: "\f0ce"; } +.ri-Buscar-eye-line:before { content: "\f0cf"; } +.ri-Buscar-fill:before { content: "\f0d0"; } +.ri-Buscar-line:before { content: "\f0d1"; } +.ri-secure-payment-fill:before { content: "\f0d2"; } +.ri-secure-payment-line:before { content: "\f0d3"; } +.ri-seedling-fill:before { content: "\f0d4"; } +.ri-seedling-line:before { content: "\f0d5"; } +.ri-send-backward:before { content: "\f0d6"; } +.ri-send-plane-2-fill:before { content: "\f0d7"; } +.ri-send-plane-2-line:before { content: "\f0d8"; } +.ri-send-plane-fill:before { content: "\f0d9"; } +.ri-send-plane-line:before { content: "\f0da"; } +.ri-send-to-back:before { content: "\f0db"; } +.ri-sensor-fill:before { content: "\f0dc"; } +.ri-sensor-line:before { content: "\f0dd"; } +.ri-separator:before { content: "\f0de"; } +.ri-server-fill:before { content: "\f0df"; } +.ri-server-line:before { content: "\f0e0"; } +.ri-service-fill:before { content: "\f0e1"; } +.ri-service-line:before { content: "\f0e2"; } +.ri-settings-2-fill:before { content: "\f0e3"; } +.ri-settings-2-line:before { content: "\f0e4"; } +.ri-settings-3-fill:before { content: "\f0e5"; } +.ri-settings-3-line:before { content: "\f0e6"; } +.ri-settings-4-fill:before { content: "\f0e7"; } +.ri-settings-4-line:before { content: "\f0e8"; } +.ri-settings-5-fill:before { content: "\f0e9"; } +.ri-settings-5-line:before { content: "\f0ea"; } +.ri-settings-6-fill:before { content: "\f0eb"; } +.ri-settings-6-line:before { content: "\f0ec"; } +.ri-settings-fill:before { content: "\f0ed"; } +.ri-settings-line:before { content: "\f0ee"; } +.ri-shape-2-fill:before { content: "\f0ef"; } +.ri-shape-2-line:before { content: "\f0f0"; } +.ri-shape-fill:before { content: "\f0f1"; } +.ri-shape-line:before { content: "\f0f2"; } +.ri-share-box-fill:before { content: "\f0f3"; } +.ri-share-box-line:before { content: "\f0f4"; } +.ri-share-circle-fill:before { content: "\f0f5"; } +.ri-share-circle-line:before { content: "\f0f6"; } +.ri-share-fill:before { content: "\f0f7"; } +.ri-share-forward-2-fill:before { content: "\f0f8"; } +.ri-share-forward-2-line:before { content: "\f0f9"; } +.ri-share-forward-box-fill:before { content: "\f0fa"; } +.ri-share-forward-box-line:before { content: "\f0fb"; } +.ri-share-forward-fill:before { content: "\f0fc"; } +.ri-share-forward-line:before { content: "\f0fd"; } +.ri-share-line:before { content: "\f0fe"; } +.ri-shield-check-fill:before { content: "\f0ff"; } +.ri-shield-check-line:before { content: "\f100"; } +.ri-shield-cross-fill:before { content: "\f101"; } +.ri-shield-cross-line:before { content: "\f102"; } +.ri-shield-fill:before { content: "\f103"; } +.ri-shield-flash-fill:before { content: "\f104"; } +.ri-shield-flash-line:before { content: "\f105"; } +.ri-shield-keyhole-fill:before { content: "\f106"; } +.ri-shield-keyhole-line:before { content: "\f107"; } +.ri-shield-line:before { content: "\f108"; } +.ri-shield-star-fill:before { content: "\f109"; } +.ri-shield-star-line:before { content: "\f10a"; } +.ri-shield-user-fill:before { content: "\f10b"; } +.ri-shield-user-line:before { content: "\f10c"; } +.ri-ship-2-fill:before { content: "\f10d"; } +.ri-ship-2-line:before { content: "\f10e"; } +.ri-ship-fill:before { content: "\f10f"; } +.ri-ship-line:before { content: "\f110"; } +.ri-shirt-fill:before { content: "\f111"; } +.ri-shirt-line:before { content: "\f112"; } +.ri-shopping-bag-2-fill:before { content: "\f113"; } +.ri-shopping-bag-2-line:before { content: "\f114"; } +.ri-shopping-bag-3-fill:before { content: "\f115"; } +.ri-shopping-bag-3-line:before { content: "\f116"; } +.ri-shopping-bag-fill:before { content: "\f117"; } +.ri-shopping-bag-line:before { content: "\f118"; } +.ri-shopping-basket-2-fill:before { content: "\f119"; } +.ri-shopping-basket-2-line:before { content: "\f11a"; } +.ri-shopping-basket-fill:before { content: "\f11b"; } +.ri-shopping-basket-line:before { content: "\f11c"; } +.ri-shopping-cart-2-fill:before { content: "\f11d"; } +.ri-shopping-cart-2-line:before { content: "\f11e"; } +.ri-shopping-cart-fill:before { content: "\f11f"; } +.ri-shopping-cart-line:before { content: "\f120"; } +.ri-showers-fill:before { content: "\f121"; } +.ri-showers-line:before { content: "\f122"; } +.ri-shuffle-fill:before { content: "\f123"; } +.ri-shuffle-line:before { content: "\f124"; } +.ri-shut-down-fill:before { content: "\f125"; } +.ri-shut-down-line:before { content: "\f126"; } +.ri-side-bar-fill:before { content: "\f127"; } +.ri-side-bar-line:before { content: "\f128"; } +.ri-signal-tower-fill:before { content: "\f129"; } +.ri-signal-tower-line:before { content: "\f12a"; } +.ri-signal-wifi-1-fill:before { content: "\f12b"; } +.ri-signal-wifi-1-line:before { content: "\f12c"; } +.ri-signal-wifi-2-fill:before { content: "\f12d"; } +.ri-signal-wifi-2-line:before { content: "\f12e"; } +.ri-signal-wifi-3-fill:before { content: "\f12f"; } +.ri-signal-wifi-3-line:before { content: "\f130"; } +.ri-signal-wifi-error-fill:before { content: "\f131"; } +.ri-signal-wifi-error-line:before { content: "\f132"; } +.ri-signal-wifi-fill:before { content: "\f133"; } +.ri-signal-wifi-line:before { content: "\f134"; } +.ri-signal-wifi-off-fill:before { content: "\f135"; } +.ri-signal-wifi-off-line:before { content: "\f136"; } +.ri-sim-card-2-fill:before { content: "\f137"; } +.ri-sim-card-2-line:before { content: "\f138"; } +.ri-sim-card-fill:before { content: "\f139"; } +.ri-sim-card-line:before { content: "\f13a"; } +.ri-single-quotes-l:before { content: "\f13b"; } +.ri-single-quotes-r:before { content: "\f13c"; } +.ri-sip-fill:before { content: "\f13d"; } +.ri-sip-line:before { content: "\f13e"; } +.ri-skip-back-fill:before { content: "\f13f"; } +.ri-skip-back-line:before { content: "\f140"; } +.ri-skip-back-mini-fill:before { content: "\f141"; } +.ri-skip-back-mini-line:before { content: "\f142"; } +.ri-skip-forward-fill:before { content: "\f143"; } +.ri-skip-forward-line:before { content: "\f144"; } +.ri-skip-forward-mini-fill:before { content: "\f145"; } +.ri-skip-forward-mini-line:before { content: "\f146"; } +.ri-skull-2-fill:before { content: "\f147"; } +.ri-skull-2-line:before { content: "\f148"; } +.ri-skull-fill:before { content: "\f149"; } +.ri-skull-line:before { content: "\f14a"; } +.ri-skype-fill:before { content: "\f14b"; } +.ri-skype-line:before { content: "\f14c"; } +.ri-slack-fill:before { content: "\f14d"; } +.ri-slack-line:before { content: "\f14e"; } +.ri-slice-fill:before { content: "\f14f"; } +.ri-slice-line:before { content: "\f150"; } +.ri-slideshow-2-fill:before { content: "\f151"; } +.ri-slideshow-2-line:before { content: "\f152"; } +.ri-slideshow-3-fill:before { content: "\f153"; } +.ri-slideshow-3-line:before { content: "\f154"; } +.ri-slideshow-4-fill:before { content: "\f155"; } +.ri-slideshow-4-line:before { content: "\f156"; } +.ri-slideshow-fill:before { content: "\f157"; } +.ri-slideshow-line:before { content: "\f158"; } +.ri-smartphone-fill:before { content: "\f159"; } +.ri-smartphone-line:before { content: "\f15a"; } +.ri-snapchat-fill:before { content: "\f15b"; } +.ri-snapchat-line:before { content: "\f15c"; } +.ri-snowy-fill:before { content: "\f15d"; } +.ri-snowy-line:before { content: "\f15e"; } +.ri-sort-asc:before { content: "\f15f"; } +.ri-sort-desc:before { content: "\f160"; } +.ri-sound-module-fill:before { content: "\f161"; } +.ri-sound-module-line:before { content: "\f162"; } +.ri-soundcloud-fill:before { content: "\f163"; } +.ri-soundcloud-line:before { content: "\f164"; } +.ri-space-ship-fill:before { content: "\f165"; } +.ri-space-ship-line:before { content: "\f166"; } +.ri-space:before { content: "\f167"; } +.ri-spam-2-fill:before { content: "\f168"; } +.ri-spam-2-line:before { content: "\f169"; } +.ri-spam-3-fill:before { content: "\f16a"; } +.ri-spam-3-line:before { content: "\f16b"; } +.ri-spam-fill:before { content: "\f16c"; } +.ri-spam-line:before { content: "\f16d"; } +.ri-speaker-2-fill:before { content: "\f16e"; } +.ri-speaker-2-line:before { content: "\f16f"; } +.ri-speaker-3-fill:before { content: "\f170"; } +.ri-speaker-3-line:before { content: "\f171"; } +.ri-speaker-fill:before { content: "\f172"; } +.ri-speaker-line:before { content: "\f173"; } +.ri-spectrum-fill:before { content: "\f174"; } +.ri-spectrum-line:before { content: "\f175"; } +.ri-speed-fill:before { content: "\f176"; } +.ri-speed-line:before { content: "\f177"; } +.ri-speed-mini-fill:before { content: "\f178"; } +.ri-speed-mini-line:before { content: "\f179"; } +.ri-split-cells-horizontal:before { content: "\f17a"; } +.ri-split-cells-vertical:before { content: "\f17b"; } +.ri-spotify-fill:before { content: "\f17c"; } +.ri-spotify-line:before { content: "\f17d"; } +.ri-spy-fill:before { content: "\f17e"; } +.ri-spy-line:before { content: "\f17f"; } +.ri-stack-fill:before { content: "\f180"; } +.ri-stack-line:before { content: "\f181"; } +.ri-stack-overflow-fill:before { content: "\f182"; } +.ri-stack-overflow-line:before { content: "\f183"; } +.ri-stackshare-fill:before { content: "\f184"; } +.ri-stackshare-line:before { content: "\f185"; } +.ri-star-fill:before { content: "\f186"; } +.ri-star-half-fill:before { content: "\f187"; } +.ri-star-half-line:before { content: "\f188"; } +.ri-star-half-s-fill:before { content: "\f189"; } +.ri-star-half-s-line:before { content: "\f18a"; } +.ri-star-line:before { content: "\f18b"; } +.ri-star-s-fill:before { content: "\f18c"; } +.ri-star-s-line:before { content: "\f18d"; } +.ri-star-smile-fill:before { content: "\f18e"; } +.ri-star-smile-line:before { content: "\f18f"; } +.ri-steam-fill:before { content: "\f190"; } +.ri-steam-line:before { content: "\f191"; } +.ri-steering-2-fill:before { content: "\f192"; } +.ri-steering-2-line:before { content: "\f193"; } +.ri-steering-fill:before { content: "\f194"; } +.ri-steering-line:before { content: "\f195"; } +.ri-stethoscope-fill:before { content: "\f196"; } +.ri-stethoscope-line:before { content: "\f197"; } +.ri-sticky-note-2-fill:before { content: "\f198"; } +.ri-sticky-note-2-line:before { content: "\f199"; } +.ri-sticky-note-fill:before { content: "\f19a"; } +.ri-sticky-note-line:before { content: "\f19b"; } +.ri-stock-fill:before { content: "\f19c"; } +.ri-stock-line:before { content: "\f19d"; } +.ri-stop-circle-fill:before { content: "\f19e"; } +.ri-stop-circle-line:before { content: "\f19f"; } +.ri-stop-fill:before { content: "\f1a0"; } +.ri-stop-line:before { content: "\f1a1"; } +.ri-stop-mini-fill:before { content: "\f1a2"; } +.ri-stop-mini-line:before { content: "\f1a3"; } +.ri-store-2-fill:before { content: "\f1a4"; } +.ri-store-2-line:before { content: "\f1a5"; } +.ri-store-3-fill:before { content: "\f1a6"; } +.ri-store-3-line:before { content: "\f1a7"; } +.ri-store-fill:before { content: "\f1a8"; } +.ri-store-line:before { content: "\f1a9"; } +.ri-strikethrough-2:before { content: "\f1aa"; } +.ri-strikethrough:before { content: "\f1ab"; } +.ri-subscript-2:before { content: "\f1ac"; } +.ri-subscript:before { content: "\f1ad"; } +.ri-subtract-fill:before { content: "\f1ae"; } +.ri-subtract-line:before { content: "\f1af"; } +.ri-subway-fill:before { content: "\f1b0"; } +.ri-subway-line:before { content: "\f1b1"; } +.ri-subway-wifi-fill:before { content: "\f1b2"; } +.ri-subway-wifi-line:before { content: "\f1b3"; } +.ri-suitcase-2-fill:before { content: "\f1b4"; } +.ri-suitcase-2-line:before { content: "\f1b5"; } +.ri-suitcase-3-fill:before { content: "\f1b6"; } +.ri-suitcase-3-line:before { content: "\f1b7"; } +.ri-suitcase-fill:before { content: "\f1b8"; } +.ri-suitcase-line:before { content: "\f1b9"; } +.ri-sun-cloudy-fill:before { content: "\f1ba"; } +.ri-sun-cloudy-line:before { content: "\f1bb"; } +.ri-sun-fill:before { content: "\f1bc"; } +.ri-sun-foggy-fill:before { content: "\f1bd"; } +.ri-sun-foggy-line:before { content: "\f1be"; } +.ri-sun-line:before { content: "\f1bf"; } +.ri-superscript-2:before { content: "\f1c0"; } +.ri-superscript:before { content: "\f1c1"; } +.ri-surgical-mask-fill:before { content: "\f1c2"; } +.ri-surgical-mask-line:before { content: "\f1c3"; } +.ri-surround-sound-fill:before { content: "\f1c4"; } +.ri-surround-sound-line:before { content: "\f1c5"; } +.ri-survey-fill:before { content: "\f1c6"; } +.ri-survey-line:before { content: "\f1c7"; } +.ri-swap-box-fill:before { content: "\f1c8"; } +.ri-swap-box-line:before { content: "\f1c9"; } +.ri-swap-fill:before { content: "\f1ca"; } +.ri-swap-line:before { content: "\f1cb"; } +.ri-switch-fill:before { content: "\f1cc"; } +.ri-switch-line:before { content: "\f1cd"; } +.ri-sword-fill:before { content: "\f1ce"; } +.ri-sword-line:before { content: "\f1cf"; } +.ri-syringe-fill:before { content: "\f1d0"; } +.ri-syringe-line:before { content: "\f1d1"; } +.ri-t-box-fill:before { content: "\f1d2"; } +.ri-t-box-line:before { content: "\f1d3"; } +.ri-t-shirt-2-fill:before { content: "\f1d4"; } +.ri-t-shirt-2-line:before { content: "\f1d5"; } +.ri-t-shirt-air-fill:before { content: "\f1d6"; } +.ri-t-shirt-air-line:before { content: "\f1d7"; } +.ri-t-shirt-fill:before { content: "\f1d8"; } +.ri-t-shirt-line:before { content: "\f1d9"; } +.ri-table-2:before { content: "\f1da"; } +.ri-table-alt-fill:before { content: "\f1db"; } +.ri-table-alt-line:before { content: "\f1dc"; } +.ri-table-fill:before { content: "\f1dd"; } +.ri-table-line:before { content: "\f1de"; } +.ri-tablet-fill:before { content: "\f1df"; } +.ri-tablet-line:before { content: "\f1e0"; } +.ri-takeaway-fill:before { content: "\f1e1"; } +.ri-takeaway-line:before { content: "\f1e2"; } +.ri-taobao-fill:before { content: "\f1e3"; } +.ri-taobao-line:before { content: "\f1e4"; } +.ri-tape-fill:before { content: "\f1e5"; } +.ri-tape-line:before { content: "\f1e6"; } +.ri-task-fill:before { content: "\f1e7"; } +.ri-task-line:before { content: "\f1e8"; } +.ri-taxi-fill:before { content: "\f1e9"; } +.ri-taxi-line:before { content: "\f1ea"; } +.ri-taxi-wifi-fill:before { content: "\f1eb"; } +.ri-taxi-wifi-line:before { content: "\f1ec"; } +.ri-team-fill:before { content: "\f1ed"; } +.ri-team-line:before { content: "\f1ee"; } +.ri-telegram-fill:before { content: "\f1ef"; } +.ri-telegram-line:before { content: "\f1f0"; } +.ri-temp-cold-fill:before { content: "\f1f1"; } +.ri-temp-cold-line:before { content: "\f1f2"; } +.ri-temp-hot-fill:before { content: "\f1f3"; } +.ri-temp-hot-line:before { content: "\f1f4"; } +.ri-terminal-box-fill:before { content: "\f1f5"; } +.ri-terminal-box-line:before { content: "\f1f6"; } +.ri-terminal-fill:before { content: "\f1f7"; } +.ri-terminal-line:before { content: "\f1f8"; } +.ri-terminal-window-fill:before { content: "\f1f9"; } +.ri-terminal-window-line:before { content: "\f1fa"; } +.ri-test-tube-fill:before { content: "\f1fb"; } +.ri-test-tube-line:before { content: "\f1fc"; } +.ri-text-direction-l:before { content: "\f1fd"; } +.ri-text-direction-r:before { content: "\f1fe"; } +.ri-text-spacing:before { content: "\f1ff"; } +.ri-text-wrap:before { content: "\f200"; } +.ri-text:before { content: "\f201"; } +.ri-thermometer-fill:before { content: "\f202"; } +.ri-thermometer-line:before { content: "\f203"; } +.ri-thumb-down-fill:before { content: "\f204"; } +.ri-thumb-down-line:before { content: "\f205"; } +.ri-thumb-up-fill:before { content: "\f206"; } +.ri-thumb-up-line:before { content: "\f207"; } +.ri-thunderstorms-fill:before { content: "\f208"; } +.ri-thunderstorms-line:before { content: "\f209"; } +.ri-ticket-2-fill:before { content: "\f20a"; } +.ri-ticket-2-line:before { content: "\f20b"; } +.ri-ticket-fill:before { content: "\f20c"; } +.ri-ticket-line:before { content: "\f20d"; } +.ri-time-fill:before { content: "\f20e"; } +.ri-time-line:before { content: "\f20f"; } +.ri-timer-2-fill:before { content: "\f210"; } +.ri-timer-2-line:before { content: "\f211"; } +.ri-timer-fill:before { content: "\f212"; } +.ri-timer-flash-fill:before { content: "\f213"; } +.ri-timer-flash-line:before { content: "\f214"; } +.ri-timer-line:before { content: "\f215"; } +.ri-todo-fill:before { content: "\f216"; } +.ri-todo-line:before { content: "\f217"; } +.ri-toggle-fill:before { content: "\f218"; } +.ri-toggle-line:before { content: "\f219"; } +.ri-tools-fill:before { content: "\f21a"; } +.ri-tools-line:before { content: "\f21b"; } +.ri-tornado-fill:before { content: "\f21c"; } +.ri-tornado-line:before { content: "\f21d"; } +.ri-trademark-fill:before { content: "\f21e"; } +.ri-trademark-line:before { content: "\f21f"; } +.ri-traffic-light-fill:before { content: "\f220"; } +.ri-traffic-light-line:before { content: "\f221"; } +.ri-train-fill:before { content: "\f222"; } +.ri-train-line:before { content: "\f223"; } +.ri-train-wifi-fill:before { content: "\f224"; } +.ri-train-wifi-line:before { content: "\f225"; } +.ri-translate-2:before { content: "\f226"; } +.ri-translate:before { content: "\f227"; } +.ri-travesti-fill:before { content: "\f228"; } +.ri-travesti-line:before { content: "\f229"; } +.ri-treasure-map-fill:before { content: "\f22a"; } +.ri-treasure-map-line:before { content: "\f22b"; } +.ri-trello-fill:before { content: "\f22c"; } +.ri-trello-line:before { content: "\f22d"; } +.ri-trophy-fill:before { content: "\f22e"; } +.ri-trophy-line:before { content: "\f22f"; } +.ri-truck-fill:before { content: "\f230"; } +.ri-truck-line:before { content: "\f231"; } +.ri-tumblr-fill:before { content: "\f232"; } +.ri-tumblr-line:before { content: "\f233"; } +.ri-tv-2-fill:before { content: "\f234"; } +.ri-tv-2-line:before { content: "\f235"; } +.ri-tv-fill:before { content: "\f236"; } +.ri-tv-line:before { content: "\f237"; } +.ri-twitch-fill:before { content: "\f238"; } +.ri-twitch-line:before { content: "\f239"; } +.ri-twitter-fill:before { content: "\f23a"; } +.ri-twitter-line:before { content: "\f23b"; } +.ri-typhoon-fill:before { content: "\f23c"; } +.ri-typhoon-line:before { content: "\f23d"; } +.ri-u-disk-fill:before { content: "\f23e"; } +.ri-u-disk-line:before { content: "\f23f"; } +.ri-ubuntu-fill:before { content: "\f240"; } +.ri-ubuntu-line:before { content: "\f241"; } +.ri-umbrella-fill:before { content: "\f242"; } +.ri-umbrella-line:before { content: "\f243"; } +.ri-underline:before { content: "\f244"; } +.ri-uninstall-fill:before { content: "\f245"; } +.ri-uninstall-line:before { content: "\f246"; } +.ri-unsplash-fill:before { content: "\f247"; } +.ri-unsplash-line:before { content: "\f248"; } +.ri-upload-2-fill:before { content: "\f249"; } +.ri-upload-2-line:before { content: "\f24a"; } +.ri-upload-cloud-2-fill:before { content: "\f24b"; } +.ri-upload-cloud-2-line:before { content: "\f24c"; } +.ri-upload-cloud-fill:before { content: "\f24d"; } +.ri-upload-cloud-line:before { content: "\f24e"; } +.ri-upload-fill:before { content: "\f24f"; } +.ri-upload-line:before { content: "\f250"; } +.ri-usb-fill:before { content: "\f251"; } +.ri-usb-line:before { content: "\f252"; } +.ri-user-2-fill:before { content: "\f253"; } +.ri-user-2-line:before { content: "\f254"; } +.ri-user-3-fill:before { content: "\f255"; } +.ri-user-3-line:before { content: "\f256"; } +.ri-user-4-fill:before { content: "\f257"; } +.ri-user-4-line:before { content: "\f258"; } +.ri-user-5-fill:before { content: "\f259"; } +.ri-user-5-line:before { content: "\f25a"; } +.ri-user-6-fill:before { content: "\f25b"; } +.ri-user-6-line:before { content: "\f25c"; } +.ri-user-add-fill:before { content: "\f25d"; } +.ri-user-add-line:before { content: "\f25e"; } +.ri-user-fill:before { content: "\f25f"; } +.ri-user-follow-fill:before { content: "\f260"; } +.ri-user-follow-line:before { content: "\f261"; } +.ri-user-heart-fill:before { content: "\f262"; } +.ri-user-heart-line:before { content: "\f263"; } +.ri-user-line:before { content: "\f264"; } +.ri-user-location-fill:before { content: "\f265"; } +.ri-user-location-line:before { content: "\f266"; } +.ri-user-received-2-fill:before { content: "\f267"; } +.ri-user-received-2-line:before { content: "\f268"; } +.ri-user-received-fill:before { content: "\f269"; } +.ri-user-received-line:before { content: "\f26a"; } +.ri-user-Buscar-fill:before { content: "\f26b"; } +.ri-user-Buscar-line:before { content: "\f26c"; } +.ri-user-settings-fill:before { content: "\f26d"; } +.ri-user-settings-line:before { content: "\f26e"; } +.ri-user-shared-2-fill:before { content: "\f26f"; } +.ri-user-shared-2-line:before { content: "\f270"; } +.ri-user-shared-fill:before { content: "\f271"; } +.ri-user-shared-line:before { content: "\f272"; } +.ri-user-smile-fill:before { content: "\f273"; } +.ri-user-smile-line:before { content: "\f274"; } +.ri-user-star-fill:before { content: "\f275"; } +.ri-user-star-line:before { content: "\f276"; } +.ri-user-unfollow-fill:before { content: "\f277"; } +.ri-user-unfollow-line:before { content: "\f278"; } +.ri-user-voice-fill:before { content: "\f279"; } +.ri-user-voice-line:before { content: "\f27a"; } +.ri-video-add-fill:before { content: "\f27b"; } +.ri-video-add-line:before { content: "\f27c"; } +.ri-video-chat-fill:before { content: "\f27d"; } +.ri-video-chat-line:before { content: "\f27e"; } +.ri-video-download-fill:before { content: "\f27f"; } +.ri-video-download-line:before { content: "\f280"; } +.ri-video-fill:before { content: "\f281"; } +.ri-video-line:before { content: "\f282"; } +.ri-video-upload-fill:before { content: "\f283"; } +.ri-video-upload-line:before { content: "\f284"; } +.ri-vidicon-2-fill:before { content: "\f285"; } +.ri-vidicon-2-line:before { content: "\f286"; } +.ri-vidicon-fill:before { content: "\f287"; } +.ri-vidicon-line:before { content: "\f288"; } +.ri-vimeo-fill:before { content: "\f289"; } +.ri-vimeo-line:before { content: "\f28a"; } +.ri-vip-crown-2-fill:before { content: "\f28b"; } +.ri-vip-crown-2-line:before { content: "\f28c"; } +.ri-vip-crown-fill:before { content: "\f28d"; } +.ri-vip-crown-line:before { content: "\f28e"; } +.ri-vip-diamond-fill:before { content: "\f28f"; } +.ri-vip-diamond-line:before { content: "\f290"; } +.ri-vip-fill:before { content: "\f291"; } +.ri-vip-line:before { content: "\f292"; } +.ri-virus-fill:before { content: "\f293"; } +.ri-virus-line:before { content: "\f294"; } +.ri-visa-fill:before { content: "\f295"; } +.ri-visa-line:before { content: "\f296"; } +.ri-voice-recognition-fill:before { content: "\f297"; } +.ri-voice-recognition-line:before { content: "\f298"; } +.ri-voiceprint-fill:before { content: "\f299"; } +.ri-voiceprint-line:before { content: "\f29a"; } +.ri-volume-down-fill:before { content: "\f29b"; } +.ri-volume-down-line:before { content: "\f29c"; } +.ri-volume-mute-fill:before { content: "\f29d"; } +.ri-volume-mute-line:before { content: "\f29e"; } +.ri-volume-off-vibrate-fill:before { content: "\f29f"; } +.ri-volume-off-vibrate-line:before { content: "\f2a0"; } +.ri-volume-up-fill:before { content: "\f2a1"; } +.ri-volume-up-line:before { content: "\f2a2"; } +.ri-volume-vibrate-fill:before { content: "\f2a3"; } +.ri-volume-vibrate-line:before { content: "\f2a4"; } +.ri-vuejs-fill:before { content: "\f2a5"; } +.ri-vuejs-line:before { content: "\f2a6"; } +.ri-walk-fill:before { content: "\f2a7"; } +.ri-walk-line:before { content: "\f2a8"; } +.ri-wallet-2-fill:before { content: "\f2a9"; } +.ri-wallet-2-line:before { content: "\f2aa"; } +.ri-wallet-3-fill:before { content: "\f2ab"; } +.ri-wallet-3-line:before { content: "\f2ac"; } +.ri-wallet-fill:before { content: "\f2ad"; } +.ri-wallet-line:before { content: "\f2ae"; } +.ri-water-flash-fill:before { content: "\f2af"; } +.ri-water-flash-line:before { content: "\f2b0"; } +.ri-webcam-fill:before { content: "\f2b1"; } +.ri-webcam-line:before { content: "\f2b2"; } +.ri-wechat-2-fill:before { content: "\f2b3"; } +.ri-wechat-2-line:before { content: "\f2b4"; } +.ri-wechat-fill:before { content: "\f2b5"; } +.ri-wechat-line:before { content: "\f2b6"; } +.ri-wechat-pay-fill:before { content: "\f2b7"; } +.ri-wechat-pay-line:before { content: "\f2b8"; } +.ri-weibo-fill:before { content: "\f2b9"; } +.ri-weibo-line:before { content: "\f2ba"; } +.ri-whatsapp-fill:before { content: "\f2bb"; } +.ri-whatsapp-line:before { content: "\f2bc"; } +.ri-wheelchair-fill:before { content: "\f2bd"; } +.ri-wheelchair-line:before { content: "\f2be"; } +.ri-wifi-fill:before { content: "\f2bf"; } +.ri-wifi-line:before { content: "\f2c0"; } +.ri-wifi-off-fill:before { content: "\f2c1"; } +.ri-wifi-off-line:before { content: "\f2c2"; } +.ri-window-2-fill:before { content: "\f2c3"; } +.ri-window-2-line:before { content: "\f2c4"; } +.ri-window-fill:before { content: "\f2c5"; } +.ri-window-line:before { content: "\f2c6"; } +.ri-windows-fill:before { content: "\f2c7"; } +.ri-windows-line:before { content: "\f2c8"; } +.ri-windy-fill:before { content: "\f2c9"; } +.ri-windy-line:before { content: "\f2ca"; } +.ri-wireless-charging-fill:before { content: "\f2cb"; } +.ri-wireless-charging-line:before { content: "\f2cc"; } +.ri-women-fill:before { content: "\f2cd"; } +.ri-women-line:before { content: "\f2ce"; } +.ri-wubi-input:before { content: "\f2cf"; } +.ri-xbox-fill:before { content: "\f2d0"; } +.ri-xbox-line:before { content: "\f2d1"; } +.ri-xing-fill:before { content: "\f2d2"; } +.ri-xing-line:before { content: "\f2d3"; } +.ri-youtube-fill:before { content: "\f2d4"; } +.ri-youtube-line:before { content: "\f2d5"; } +.ri-zcool-fill:before { content: "\f2d6"; } +.ri-zcool-line:before { content: "\f2d7"; } +.ri-zhihu-fill:before { content: "\f2d8"; } +.ri-zhihu-line:before { content: "\f2d9"; } +.ri-zoom-in-fill:before { content: "\f2da"; } +.ri-zoom-in-line:before { content: "\f2db"; } +.ri-zoom-out-fill:before { content: "\f2dc"; } +.ri-zoom-out-line:before { content: "\f2dd"; } +.ri-zzz-fill:before { content: "\f2de"; } +.ri-zzz-line:before { content: "\f2df"; } + +} diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.svg b/Practica-14.5/src/assets/vendor/remixicon/remixicon.svg new file mode 100644 index 0000000..35274c3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/remixicon/remixicon.svg @@ -0,0 +1,6835 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.symbol.svg b/Practica-14.5/src/assets/vendor/remixicon/remixicon.symbol.svg new file mode 100644 index 0000000..2b38bae --- /dev/null +++ b/Practica-14.5/src/assets/vendor/remixicon/remixicon.symbol.svg @@ -0,0 +1,11356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.ttf b/Practica-14.5/src/assets/vendor/remixicon/remixicon.ttf new file mode 100644 index 0000000..c461f40 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/remixicon/remixicon.ttf differ diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff b/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff new file mode 100644 index 0000000..62a756b Binary files /dev/null and b/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff differ diff --git a/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff2 b/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff2 new file mode 100644 index 0000000..89a0b99 Binary files /dev/null and b/Practica-14.5/src/assets/vendor/remixicon/remixicon.woff2 differ diff --git a/Practica-14.5/src/assets/vendor/simple-datatables/simple-datatables.js b/Practica-14.5/src/assets/vendor/simple-datatables/simple-datatables.js new file mode 100644 index 0000000..6a8ffd6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/simple-datatables/simple-datatables.js @@ -0,0 +1,12 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.simpleDataTablas = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i=e?t:""+Array(e+1-r.length).join(n)+t},v={s:D,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+D(r,2,"0")+":"+D(i,2,"0")},m:function t(e,n){if(e.date()1)return t(a[0])}else{var o=e.name;g[o]=e,i=o}return!r&&i&&(p=i),i||!r&&p},w=function(t,e){if(y(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new L(n)},S=v;S.l=Y,S.i=y,S.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var L=function(){function m(t){this.$L=Y(t.locale,null,!0),this.parse(t)}var D=m.prototype;return D.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(S.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},D.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},D.$utils=function(){return S},D.isValid=function(){return!(this.$d.toString()===l)},D.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},D.isAfter=function(t,e){return w(t)68?1900:2e3)},o=function(t){return function(e){this[t]=+e}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],f=function(t){var e=s[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?"pm":"PM");return n},c={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[r,o("seconds")],ss:[r,o("seconds")],m:[r,o("minutes")],mm:[r,o("minutes")],H:[r,o("hours")],h:[r,o("hours")],HH:[r,o("hours")],hh:[r,o("hours")],D:[r,o("day")],DD:[n,o("day")],Do:[i,function(t){var e=s.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\[|\]/g,"")===t&&(this.day=r)}],M:[r,o("month")],MM:[n,o("month")],MMM:[i,function(t){var e=f("months"),n=(f("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=f("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,o("year")],YY:[n,function(t){this.year=a(t)}],YYYY:[/\d{4}/,o("year")],Z:u,ZZ:u};function d(n){var r,i;r=n,i=s&&s.formats;for(var a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var s=r&&r.toUpperCase();return n||i[r]||t[r]||i[s].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),o=a.length,u=0;u-1)return new Date(("X"===e?1e3:1)*t);var r=d(e)(t),i=r.year,s=r.month,a=r.day,o=r.hours,u=r.minutes,f=r.seconds,h=r.milliseconds,c=r.zone,l=new Date,$=a||(i||s?1:l.getDate()),M=i||l.getFullYear(),m=0;i&&!s||(m=s>0?s-1:l.getMonth());var D=o||0,v=u||0,p=f||0,g=h||0;return c?new Date(Date.UTC(M,m,$,D,v,p,g+60*c.offset*1e3)):n?new Date(Date.UTC(M,m,$,D,v,p,g)):new Date(M,m,$,D,v,p,g)}catch(t){return new Date("")}}(e,o,r),this.init(),c&&!0!==c&&(this.$L=this.locale(c).$L),h&&e!=this.format(o)&&(this.$d=new Date("")),s={}}else if(o instanceof Array)for(var l=o.length,$=1;$<=l;$+=1){a[1]=o[$-1];var M=n.apply(this,a);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}$===l&&(this.$d=new Date(""))}else i.call(this,t)}}}();e.extend(r);exports.parseDate=(t,n)=>{let r=!1;if(n)switch(n){case"ISO_8601":r=t;break;case"RFC_2822":r=e(t.slice(5),"DD MMM YYYY HH:mm:ss ZZ").unix();break;case"MYSQL":r=e(t,"YYYY-MM-DD hh:mm:ss").unix();break;case"UNIX":r=e(t).unix();break;default:r=e(t,n,!0).valueOf()}return r}; + + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],2:[function(require,module,exports){ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=t=>"[object Object]"===Object.prototype.toString.call(t),e=(t,e)=>{const s=document.createElement(t);if(e&&"object"==typeof e)for(const t in e)"html"===t?s.innerHTML=e[t]:s.setAttribute(t,e[t]);return s},s=t=>{t instanceof NodeList?t.forEach((t=>s(t))):t.innerHTML=""},i=(t,s,i)=>e("li",{class:t,html:`${i}`}),a=(t,e)=>{let s,i;1===e?(s=0,i=t.length):-1===e&&(s=t.length-1,i=-1);for(let a=!0;a;){a=!1;for(let n=s;n!=i;n+=e)if(t[n+e]&&t[n].value>t[n+e].value){const s=t[n],i=t[n+e],r=s;t[n]=i,t[n+e]=r,a=!0}}return t};class n{constructor(t){this.dt=t,this.cursor=!1}build(t){const s=e("tr");let i=this.dt.headings;return i.length||(i=t.map((()=>""))),i.forEach(((i,a)=>{const n=e("td");t[a]&&t[a].length||(t[a]=""),n.innerHTML=t[a],n.data=t[a],s.appendChild(n)})),s}setCursor(t=!1){this.cursor&&this.cursor.classList.remove("dataTable-cursor"),t&&(t.classList.add("dataTable-cursor"),this.cursor=t)}render(t){return t}add(t){if(Array.isArray(t)){const e=this.dt;Array.isArray(t[0])?t.forEach((t=>{e.data.push(this.build(t))})):e.data.push(this.build(t)),e.data.length&&(e.hasRows=!0),this.update(),e.columns.rebuild()}}remove(t){const e=this.dt;Array.isArray(t)?(t.sort(((t,e)=>e-t)),t.forEach((t=>{e.data.splice(t,1)}))):"all"==t?e.data=[]:e.data.splice(t,1),e.data.length||(e.hasRows=!1),this.update(),e.columns.rebuild()}update(){this.dt.data.forEach(((t,e)=>{t.dataIndex=e}))}findRowIndex(t,e){return this.dt.data.findIndex((s=>s.children[t].innerText.toLowerCase().includes(String(e).toLowerCase())))}findRow(t,e){const s=this.findRowIndex(t,e);if(s<0)return{index:-1,row:null,cols:[]};const i=this.dt.data[s];return{index:s,row:i,cols:[...i.cells].map((t=>t.innerHTML))}}updateRow(t,e){const s=this.build(e);this.dt.data.splice(t,1,s),this.update(),this.dt.columns.rebuild()}}class r{constructor(t){this.dt=t}swap(t){if(t.length&&2===t.length){const e=[];this.dt.headings.forEach(((t,s)=>{e.push(s)}));const s=t[0],i=t[1],a=e[i];e[i]=e[s],e[s]=a,this.order(e)}}order(t){let e,s,i,a,n,r,o;const h=[[],[],[],[]],l=this.dt;t.forEach(((t,i)=>{n=l.headings[t],r="false"!==n.getAttribute("data-sortable"),e=n.cloneNode(!0),e.originalCellIndex=i,e.sortable=r,h[0].push(e),l.hiddenColumns.includes(t)||(s=n.cloneNode(!0),s.originalCellIndex=i,s.sortable=r,h[1].push(s))})),l.data.forEach(((e,s)=>{i=e.cloneNode(!1),a=e.cloneNode(!1),i.dataIndex=a.dataIndex=s,null!==e.BuscarIndex&&void 0!==e.BuscarIndex&&(i.BuscarIndex=a.BuscarIndex=e.BuscarIndex),t.forEach((t=>{o=e.cells[t].cloneNode(!0),o.data=e.cells[t].data,i.appendChild(o),l.hiddenColumns.includes(t)||(o=e.cells[t].cloneNode(!0),o.data=e.cells[t].data,a.appendChild(o))})),h[2].push(i),h[3].push(a)})),l.headings=h[0],l.activeHeadings=h[1],l.data=h[2],l.activeRows=h[3],l.update()}hide(t){if(t.length){const e=this.dt;t.forEach((t=>{e.hiddenColumns.includes(t)||e.hiddenColumns.push(t)})),this.rebuild()}}show(t){if(t.length){let e;const s=this.dt;t.forEach((t=>{e=s.hiddenColumns.indexOf(t),e>-1&&s.hiddenColumns.splice(e,1)})),this.rebuild()}}visible(t){let e;const s=this.dt;return t=t||s.headings.map((t=>t.originalCellIndex)),isNaN(t)?Array.isArray(t)&&(e=[],t.forEach((t=>{e.push(!s.hiddenColumns.includes(t))}))):e=!s.hiddenColumns.includes(t),e}add(t){let e;const s=document.createElement("th");if(!this.dt.headings.length)return this.dt.insert({headings:[t.heading],data:t.data.map((t=>[t]))}),void this.rebuild();this.dt.hiddenHeader?s.innerHTML="":t.heading.nodeName?s.appendChild(t.heading):s.innerHTML=t.heading,this.dt.headings.push(s),this.dt.data.forEach(((s,i)=>{t.data[i]&&(e=document.createElement("td"),t.data[i].nodeName?e.appendChild(t.data[i]):e.innerHTML=t.data[i],e.data=e.innerHTML,t.render&&(e.innerHTML=t.render.call(this,e.data,e,s)),s.appendChild(e))})),t.type&&s.setAttribute("data-type",t.type),t.format&&s.setAttribute("data-format",t.format),t.hasOwnProperty("sortable")&&(s.sortable=t.sortable,s.setAttribute("data-sortable",!0===t.sortable?"true":"false")),this.rebuild(),this.dt.renderHeader()}remove(t){Array.isArray(t)?(t.sort(((t,e)=>e-t)),t.forEach((t=>this.remove(t)))):(this.dt.headings.splice(t,1),this.dt.data.forEach((e=>{e.removeChild(e.cells[t])}))),this.rebuild()}filter(t,e,s,i){const a=this.dt;if(a.filterState||(a.filterState={originalData:a.data}),!a.filterState[t]){const e=[...i,()=>!0];a.filterState[t]=function(){let t=0;return()=>e[t++%e.length]}()}const n=a.filterState[t](),r=Array.from(a.filterState.originalData).filter((e=>{const s=e.cells[t],i=s.hasAttribute("data-content")?s.getAttribute("data-content"):s.innerText;return"function"==typeof n?n(i):i===n}));a.data=r,a.data.length?(this.rebuild(),a.update()):(a.clear(),a.hasRows=!1,a.setMessage(a.options.labels.noRows)),s||a.emit("datatable.sort",t,e)}sort(t,e,s){const i=this.dt;if(i.hasHeadings&&(t<0||t>i.headings.length))return!1;const n=i.options.filters&&i.options.filters[i.headings[t].textContent];if(n&&0!==n.length)return void this.filter(t,e,s,n);i.sorting=!0,s||i.emit("datatable.sorting",t,e);let r=i.data;const o=[],h=[];let l=0,d=0;const c=i.headings[t],p=[];if("date"===c.getAttribute("data-type")){let t=!1;c.hasAttribute("data-format")&&(t=c.getAttribute("data-format")),p.push(Promise.resolve().then((function(){return require("./date-7061ceee.js")})).then((({parseDate:e})=>s=>e(s,t))))}Promise.all(p).then((n=>{const p=n[0];let u,g;Array.from(r).forEach((e=>{const s=e.cells[t],i=s.hasAttribute("data-content")?s.getAttribute("data-content"):s.innerText;let a;a=p?p(i):"string"==typeof i?i.replace(/(\$|,|\s|%)/g,""):i,parseFloat(a)==a?h[d++]={value:Number(a),row:e}:o[l++]={value:"string"==typeof i?i.toLowerCase():i,row:e}})),e||(e=c.classList.contains("asc")?"desc":"asc"),"desc"==e?(u=a(o,-1),g=a(h,-1),c.classList.remove("asc"),c.classList.add("desc"),c.setAttribute("aria-sort","descending")):(u=a(h,1),g=a(o,1),c.classList.remove("desc"),c.classList.add("asc"),c.setAttribute("aria-sort","ascending")),i.lastTh&&c!=i.lastTh&&(i.lastTh.classList.remove("desc"),i.lastTh.classList.remove("asc"),i.lastTh.removeAttribute("aria-sort")),i.lastTh=c,r=u.concat(g),i.data=[];const f=[];r.forEach(((t,e)=>{i.data.push(t.row),null!==t.row.BuscarIndex&&void 0!==t.row.BuscarIndex&&f.push(e)})),i.BuscarData=f,this.rebuild(),i.update(),s||i.emit("datatable.sort",t,e)}))}rebuild(){let t,e,s,i;const a=this.dt,n=[];a.activeRows=[],a.activeHeadings=[],a.headings.forEach(((t,e)=>{t.originalCellIndex=e,t.sortable="false"!==t.getAttribute("data-sortable"),a.hiddenColumns.includes(e)||a.activeHeadings.push(t)})),a.data.forEach(((r,o)=>{t=r.cloneNode(!1),e=r.cloneNode(!1),t.dataIndex=e.dataIndex=o,null!==r.BuscarIndex&&void 0!==r.BuscarIndex&&(t.BuscarIndex=e.BuscarIndex=r.BuscarIndex),Array.from(r.cells).forEach((n=>{s=n.cloneNode(!0),s.data=n.data,t.appendChild(s),a.hiddenColumns.includes(s.cellIndex)||(i=s.cloneNode(!0),i.data=s.data,e.appendChild(i))})),n.push(t),a.activeRows.push(e)})),a.data=n,a.update()}}const o=function(t){let s=!1,i=!1;if((t=t||this.options.data).headings){s=e("thead");const i=e("tr");t.headings.forEach((t=>{const s=e("th",{html:t});i.appendChild(s)})),s.appendChild(i)}t.data&&t.data.length&&(i=e("tbody"),t.data.forEach((s=>{if(t.headings&&t.headings.length!==s.length)throw new Error("The number of rows do not match the number of headings.");const a=e("tr");s.forEach((t=>{const s=e("td",{html:t});a.appendChild(s)})),i.appendChild(a)}))),s&&(null!==this.dom.tHead&&this.dom.removeChild(this.dom.tHead),this.dom.appendChild(s)),i&&(this.dom.tBodies.length&&this.dom.removeChild(this.dom.tBodies[0]),this.dom.appendChild(i))},h={sortable:!0,Buscarable:!0,paging:!0,perPage:10,perPageSelect:[5,10,15,20,25],nextPrev:!0,firstLast:!1,prevText:"‹",nextText:"›",firstText:"«",lastText:"»",ellipsisText:"…",ascText:"▴",descText:"▾",truncatePager:!0,pagerDelta:2,scrollY:"",fixedColumns:!0,fixedHeight:!1,header:!0,hiddenHeader:!1,footer:!1,tabIndex:!1,rowNavigation:!1,labels:{placeholder:"Buscar...",perPage:"{select} entries per page",noRows:"No entries found",noResults:"No results match your Buscar query",info:"Showing {start} to {end} of {rows} entries"},layout:{top:"{select}{Buscar}",bottom:"{info}{pager}"}};exports.DataTable=class{constructor(t,e={}){const s="string"==typeof t?document.querySelector(t):t;if(this.options={...h,...e,layout:{...h.layout,...e.layout},labels:{...h.labels,...e.labels}},this.rows=new n(this),this.columns=new r(this),this.initialized=!1,this.initialLayout=s.innerHTML,this.initialSortable=this.options.sortable,this.options.tabIndex?s.tabIndex=this.options.tabIndex:this.options.rowNavigation&&-1===s.tabIndex&&(s.tabIndex=0),this.options.header||(this.options.sortable=!1),null===s.tHead&&(!this.options.data||this.options.data&&!this.options.data.headings)&&(this.options.sortable=!1),s.tBodies.length&&!s.tBodies[0].rows.length&&this.options.data&&!this.options.data.data)throw new Error("You seem to be using the data option, but you've not defined any rows.");this.dom=s,this.table=this.dom,this.listeners={onResize:t=>this.onResize(t)},this.init()}init(t){if(this.initialized||this.dom.classList.contains("dataTable-table"))return!1;Object.assign(this.options,t||{}),this.currentPage=1,this.onFirstPage=!0,this.hiddenColumns=[],this.columnRenderers=[],this.selectedColumns=[],this.render(),setTimeout((()=>{this.emit("datatable.init"),this.initialized=!0,this.options.plugins&&Object.entries(this.options.plugins).forEach((([t,s])=>{this[t]&&"function"==typeof this[t]&&(this[t]=this[t](s,{createElement:e}),s.enabled&&this[t].init&&"function"==typeof this[t].init&&this[t].init())}))}),10)}render(){let t="";if(this.options.data&&o.call(this),this.body=this.dom.tBodies[0],this.head=this.dom.tHead,this.foot=this.dom.tFoot,this.body||(this.body=e("tbody"),this.dom.appendChild(this.body)),this.hasRows=this.body.rows.length>0,!this.head){const t=e("thead"),s=e("tr");this.hasRows&&(Array.from(this.body.rows[0].cells).forEach((()=>{s.appendChild(e("th"))})),t.appendChild(s)),this.head=t,this.dom.insertBefore(this.head,this.body),this.hiddenHeader=this.options.hiddenHeader}if(this.headings=[],this.hasHeadings=this.head.rows.length>0,this.hasHeadings&&(this.header=this.head.rows[0],this.headings=[].slice.call(this.header.cells)),this.options.header||this.head&&this.dom.removeChild(this.dom.tHead),this.options.footer?this.head&&!this.foot&&(this.foot=e("tfoot",{html:this.head.innerHTML}),this.dom.appendChild(this.foot)):this.foot&&this.dom.removeChild(this.dom.tFoot),this.wrapper=e("div",{class:"dataTable-wrapper dataTable-loading"}),t+="
        ",t+=this.options.layout.top,t+="
        ",this.options.scrollY.length?t+=`
        `:t+="
        ",t+="
        ",t+=this.options.layout.bottom,t+="
        ",t=t.replace("{info}",this.options.paging?"
        ":""),this.options.paging&&this.options.perPageSelect){let s="
        ";const i=e("select",{class:"dataTable-selector"});this.options.perPageSelect.forEach((t=>{const e=t===this.options.perPage,s=new Option(t,t,e,e);i.add(s)})),s=s.replace("{select}",i.outerHTML),t=t.replace("{select}",s)}else t=t.replace("{select}","");if(this.options.Buscarable){const e=`
        `;t=t.replace("{Buscar}",e)}else t=t.replace("{Buscar}","");this.hasHeadings&&this.renderHeader(),this.dom.classList.add("dataTable-table");const s=e("nav",{class:"dataTable-pagination"}),i=e("ul",{class:"dataTable-pagination-list"});s.appendChild(i),t=t.replace(/\{pager\}/g,s.outerHTML),this.wrapper.innerHTML=t,this.container=this.wrapper.querySelector(".dataTable-container"),this.pagers=this.wrapper.querySelectorAll(".dataTable-pagination-list"),this.label=this.wrapper.querySelector(".dataTable-info"),this.dom.parentNode.replaceChild(this.wrapper,this.dom),this.container.appendChild(this.dom),this.rect=this.dom.getBoundingClientRect(),this.data=Array.from(this.body.rows),this.activeRows=this.data.slice(),this.activeHeadings=this.headings.slice(),this.update(),this.setColumns(),this.fixHeight(),this.fixColumns(),this.options.header||this.wrapper.classList.add("no-header"),this.options.footer||this.wrapper.classList.add("no-footer"),this.options.sortable&&this.wrapper.classList.add("sortable"),this.options.Buscarable&&this.wrapper.classList.add("Buscarable"),this.options.fixedHeight&&this.wrapper.classList.add("fixed-height"),this.options.fixedColumns&&this.wrapper.classList.add("fixed-columns"),this.bindEvents()}renderPage(t=!1){if(this.hasHeadings&&(s(this.header),this.activeHeadings.forEach((t=>this.header.appendChild(t)))),this.hasRows&&this.totalPages){this.currentPage>this.totalPages&&(this.currentPage=1);const t=this.currentPage-1,e=document.createDocumentFragment();this.pages[t].forEach((t=>e.appendChild(this.rows.render(t)))),this.clear(e),this.onFirstPage=1===this.currentPage,this.onLastPage=this.currentPage===this.lastPage}else this.setMessage(this.options.labels.noRows);let e,i=0,a=0,n=0;if(this.totalPages&&(i=this.currentPage-1,a=i*this.options.perPage,n=a+this.pages[i].length,a+=1,e=this.Buscaring?this.BuscarData.length:this.data.length),this.label&&this.options.labels.info.length){const t=this.options.labels.info.replace("{start}",a).replace("{end}",n).replace("{page}",this.currentPage).replace("{pages}",this.totalPages).replace("{rows}",e);this.label.innerHTML=e?t:""}if(1==this.currentPage&&this.fixHeight(),this.options.rowNavigation&&(!this.rows.cursor||!this.pages[this.currentPage-1].includes(this.rows.cursor))){const e=this.pages[this.currentPage-1];t?this.rows.setCursor(e[e.length-1]):this.rows.setCursor(e[0])}}renderPager(){if(s(this.pagers),this.totalPages>1){const t="pager",s=document.createDocumentFragment(),a=this.onFirstPage?1:this.currentPage-1,n=this.onLastPage?this.totalPages:this.currentPage+1;this.options.firstLast&&s.appendChild(i(t,1,this.options.firstText)),this.options.nextPrev&&!this.onFirstPage&&s.appendChild(i(t,a,this.options.prevText));let r=this.links;this.options.truncatePager&&(r=((t,s,i,a,n)=>{let r;const o=2*(a=a||2);let h=s-a,l=s+a;const d=[],c=[];s<4-a+o?l=3+o:s>i-(3-a+o)&&(h=i-(2+o));for(let e=1;e<=i;e++)if(1==e||e==i||e>=h&&e<=l){const s=t[e-1];s.classList.remove("active"),d.push(s)}return d.forEach((s=>{const i=s.children[0].getAttribute("data-page");if(r){const s=r.children[0].getAttribute("data-page");if(i-s==2)c.push(t[s]);else if(i-s!=1){const t=e("li",{class:"ellipsis",html:`${n}`});c.push(t)}}c.push(s),r=s})),c})(this.links,this.currentPage,this.pages.length,this.options.pagerDelta,this.options.ellipsisText)),this.links[this.currentPage-1].classList.add("active"),r.forEach((t=>{t.classList.remove("active"),s.appendChild(t)})),this.links[this.currentPage-1].classList.add("active"),this.options.nextPrev&&!this.onLastPage&&s.appendChild(i(t,n,this.options.nextText)),this.options.firstLast&&s.appendChild(i(t,this.totalPages,this.options.lastText)),this.pagers.forEach((t=>{t.appendChild(s.cloneNode(!0))}))}}renderHeader(){this.labels=[],this.headings&&this.headings.length&&this.headings.forEach(((t,s)=>{if(this.labels[s]=t.textContent,t.firstElementChild&&t.firstElementChild.classList.contains("dataTable-sorter")&&(t.innerHTML=t.firstElementChild.innerHTML),t.sortable="false"!==t.getAttribute("data-sortable"),t.originalCellIndex=s,this.options.sortable&&t.sortable){const s=e("a",{href:"#",class:"dataTable-sorter",html:t.innerHTML});t.innerHTML="",t.setAttribute("data-sortable",""),t.appendChild(s)}})),this.fixColumns()}bindEvents(){if(this.options.perPageSelect){const t=this.wrapper.querySelector(".dataTable-selector");t&&t.addEventListener("change",(()=>{this.options.perPage=parseInt(t.value,10),this.update(),this.fixHeight(),this.emit("datatable.perpage",this.options.perPage)}),!1)}this.options.Buscarable&&(this.input=this.wrapper.querySelector(".dataTable-input"),this.input&&this.input.addEventListener("keyup",(()=>this.Buscar(this.input.value)),!1)),this.wrapper.addEventListener("click",(t=>{const e=t.target.closest("a");e&&"a"===e.nodeName.toLowerCase()&&(e.hasAttribute("data-page")?(this.page(e.getAttribute("data-page")),t.preventDefault()):this.options.sortable&&e.classList.contains("dataTable-sorter")&&"false"!=e.parentNode.getAttribute("data-sortable")&&(this.columns.sort(this.headings.indexOf(e.parentNode)),t.preventDefault()))}),!1),this.options.rowNavigation?(this.table.addEventListener("keydown",(t=>{38===t.keyCode?this.rows.cursor.previousElementSibling?(this.rows.setCursor(this.rows.cursor.previousElementSibling),t.preventDefault(),t.stopPropagation()):this.onFirstPage||this.page(this.currentPage-1,!0):40===t.keyCode?this.rows.cursor.nextElementSibling?(this.rows.setCursor(this.rows.cursor.nextElementSibling),t.preventDefault(),t.stopPropagation()):this.onLastPage||this.page(this.currentPage+1):[13,32].includes(t.keyCode)&&this.emit("datatable.selectrow",this.rows.cursor,t)})),this.body.addEventListener("mousedown",(t=>{if(this.table.matches(":focus")){const e=Array.from(this.body.rows).find((e=>e.contains(t.target)));this.emit("datatable.selectrow",e,t)}}))):this.body.addEventListener("mousedown",(t=>{const e=Array.from(this.body.rows).find((e=>e.contains(t.target)));this.emit("datatable.selectrow",e,t)})),window.addEventListener("resize",this.listeners.onResize)}onResize(){this.rect=this.container.getBoundingClientRect(),this.rect.width&&this.fixColumns()}setColumns(t){t||this.data.forEach((t=>{Array.from(t.cells).forEach((t=>{t.data=t.innerHTML}))})),this.options.columns&&this.headings.length&&this.options.columns.forEach((t=>{Array.isArray(t.select)||(t.select=[t.select]),t.hasOwnProperty("render")&&"function"==typeof t.render&&(this.selectedColumns=this.selectedColumns.concat(t.select),this.columnRenderers.push({columns:t.select,renderer:t.render})),t.select.forEach((e=>{const s=this.headings[e];s&&(t.type&&s.setAttribute("data-type",t.type),t.format&&s.setAttribute("data-format",t.format),t.hasOwnProperty("sortable")&&s.setAttribute("data-sortable",t.sortable),t.hasOwnProperty("hidden")&&!1!==t.hidden&&this.columns.hide([e]),t.hasOwnProperty("sort")&&1===t.select.length&&this.columns.sort(t.select[0],t.sort,!0))}))})),this.hasRows&&(this.data.forEach(((t,e)=>{t.dataIndex=e,Array.from(t.cells).forEach((t=>{t.data=t.innerHTML}))})),this.selectedColumns.length&&this.data.forEach((t=>{Array.from(t.cells).forEach(((e,s)=>{this.selectedColumns.includes(s)&&this.columnRenderers.forEach((i=>{i.columns.includes(s)&&(e.innerHTML=i.renderer.call(this,e.data,e,t))}))}))})),this.columns.rebuild()),this.renderHeader()}destroy(){this.dom.innerHTML=this.initialLayout,this.dom.classList.remove("dataTable-table"),this.wrapper.parentNode.replaceChild(this.dom,this.wrapper),this.initialized=!1,window.removeEventListener("resize",this.listeners.onResize)}update(){this.wrapper.classList.remove("dataTable-empty"),this.paginate(),this.renderPage(),this.links=[];let t=this.pages.length;for(;t--;){const e=t+1;this.links[t]=i(0===t?"active":"",e,e)}this.sorting=!1,this.renderPager(),this.rows.update(),this.emit("datatable.update")}paginate(){let t=this.activeRows;return this.Buscaring&&(t=[],this.BuscarData.forEach((e=>t.push(this.activeRows[e])))),this.options.paging?this.pages=t.map(((e,s)=>s%this.options.perPage==0?t.slice(s,s+this.options.perPage):null)).filter((t=>t)):this.pages=[t],this.totalPages=this.lastPage=this.pages.length,this.totalPages}fixColumns(){if((this.options.scrollY.length||this.options.fixedColumns)&&this.activeHeadings&&this.activeHeadings.length){let t,s=!1;if(this.columnWidths=[],this.dom.tHead){this.options.scrollY.length&&(s=e("thead"),s.appendChild(e("tr")),s.style.height="0px",this.headerTable&&(this.dom.tHead=this.headerTable.tHead)),this.activeHeadings.forEach((t=>{t.style.width=""}));const t=this.activeHeadings.reduce(((t,e)=>t+e.offsetWidth),0);if(this.activeHeadings.forEach(((i,a)=>{const n=i.offsetWidth,r=n/t*100;if(i.style.width=`${r}%`,this.columnWidths[a]=n,this.options.scrollY.length){const t=e("th");s.firstElementChild.appendChild(t),t.style.width=`${r}%`,t.style.paddingTop="0",t.style.paddingBottom="0",t.style.border="0"}})),this.options.scrollY.length){const t=this.dom.parentElement;if(!this.headerTable){this.headerTable=e("table",{class:"dataTable-table"});const s=e("div",{class:"dataTable-headercontainer"});s.appendChild(this.headerTable),t.parentElement.insertBefore(s,t)}const i=this.dom.tHead;this.dom.replaceChild(s,i),this.headerTable.tHead=i,this.headerTable.parentElement.style.paddingRight=`${this.headerTable.clientWidth-this.dom.clientWidth+parseInt(this.headerTable.parentElement.style.paddingRight||"0",10)}px`,t.scrollHeight>t.clientHeight&&(t.style.overflowY="scroll")}}else{t=[],s=e("thead");const i=e("tr");Array.from(this.dom.tBodies[0].rows[0].cells).forEach((()=>{const s=e("th");i.appendChild(s),t.push(s)})),s.appendChild(i),this.dom.insertBefore(s,this.body);const a=[];t.forEach(((t,e)=>{const s=t.offsetWidth,i=s/this.rect.width*100;a.push(i),this.columnWidths[e]=s})),this.data.forEach((t=>{Array.from(t.cells).forEach(((t,e)=>{this.columns.visible(t.cellIndex)&&(t.style.width=`${a[e]}%`)}))})),this.dom.removeChild(s)}}}fixHeight(){this.options.fixedHeight&&(this.container.style.height=null,this.rect=this.container.getBoundingClientRect(),this.container.style.height=`${this.rect.height}px`)}Buscar(t){return!!this.hasRows&&(t=t.toLowerCase(),this.currentPage=1,this.Buscaring=!0,this.BuscarData=[],t.length?(this.clear(),this.data.forEach(((e,s)=>{const i=this.BuscarData.includes(e);t.split(" ").reduce(((t,s)=>{let i=!1,a=null,n=null;for(let t=0;tthis.pages.length||t<0)&&(this.renderPage(e),this.renderPager(),void this.emit("datatable.page",t)))}sortColumn(t,e){this.columns.sort(t,e)}insert(s){let i=[];if(t(s)){if(s.headings&&!this.hasHeadings&&!this.hasRows){const t=e("tr");s.headings.forEach((s=>{const i=e("th",{html:s});t.appendChild(i)})),this.head.appendChild(t),this.header=t,this.headings=[].slice.call(t.cells),this.hasHeadings=!0,this.options.sortable=this.initialSortable,this.renderHeader(),this.activeHeadings=this.headings.slice()}s.data&&Array.isArray(s.data)&&(i=s.data)}else Array.isArray(s)&&s.forEach((t=>{const e=[];Object.entries(t).forEach((([t,s])=>{const i=this.labels.indexOf(t);i>-1&&(e[i]=s)})),i.push(e)}));i.length&&(this.rows.add(i),this.hasRows=!0),this.update(),this.setColumns(),this.fixColumns()}refresh(){this.options.Buscarable&&(this.input.value="",this.Buscaring=!1),this.currentPage=1,this.onFirstPage=!0,this.update(),this.emit("datatable.refresh")}clear(t){this.body&&s(this.body);let e=this.body;if(this.body||(e=this.dom),t){if("string"==typeof t){document.createDocumentFragment().innerHTML=t}e.appendChild(t)}}export(e){if(!this.hasHeadings&&!this.hasRows)return!1;const s=this.activeHeadings;let i=[];const a=[];let n,r,o,h;if(!t(e))return!1;const l={download:!0,skipColumn:[],lineDelimiter:"\n",columnDelimiter:",",tableName:"myTable",replacer:null,space:4,...e};if(l.type){if("txt"!==l.type&&"csv"!==l.type||(i[0]=this.header),l.selection)if(isNaN(l.selection)){if(Array.isArray(l.selection))for(n=0;nt.trim().replace(/(^"|"$)/g,"")))),t.shift()),t.forEach(((t,e)=>{s.data[e]=[];const a=t.split(i.columnDelimiter);a.length&&a.forEach((t=>{i.removeDoubleQuotes&&(t=t.trim().replace(/(^"|"$)/g,"")),s.data[e].push(t)}))})))}else if("json"===i.type){const e=(e=>{let s=!1;try{s=JSON.parse(e)}catch(t){return!1}return!(null===s||!Array.isArray(s)&&!t(s))&&s})(i.data);e&&(s={headings:[],data:[]},e.forEach(((t,e)=>{s.data[e]=[],Object.entries(t).forEach((([t,i])=>{s.headings.includes(t)||s.headings.push(t),s.data[e].push(i)}))})))}t(i.data)&&(s=i.data),s&&this.insert(s)}return!1}print(){const t=this.activeHeadings,s=this.activeRows,i=e("table"),a=e("thead"),n=e("tbody"),r=e("tr");t.forEach((t=>{r.appendChild(e("th",{html:t.textContent}))})),a.appendChild(r),s.forEach((t=>{const s=e("tr");Array.from(t.cells).forEach((t=>{s.appendChild(e("td",{html:t.textContent}))})),n.appendChild(s)})),i.appendChild(a),i.appendChild(n);const o=window.open();o.document.body.appendChild(i),o.print()}setMessage(t){let s=1;this.hasRows?s=this.data[0].cells.length:this.activeHeadings.length&&(s=this.activeHeadings.length),this.wrapper.classList.add("dataTable-empty"),this.label&&(this.label.innerHTML=""),this.totalPages=0,this.renderPager(),this.clear(e("tr",{html:`${t}`}))}on(t,e){this.events=this.events||{},this.events[t]=this.events[t]||[],this.events[t].push(e)}off(t,e){this.events=this.events||{},t in this.events!=!1&&this.events[t].splice(this.events[t].indexOf(e),1)}emit(t){if(this.events=this.events||{},t in this.events!=!1)for(let e=0;e nav:first-child, +.dataTable-top > div:first-child, +.dataTable-bottom > nav:first-child, +.dataTable-bottom > div:first-child { + float: left; +} + +.dataTable-top > nav:last-child, +.dataTable-top > div:last-child, +.dataTable-bottom > nav:last-child, +.dataTable-bottom > div:last-child { + float: right; +} + +.dataTable-selector { + padding: 6px; +} + +.dataTable-input { + padding: 6px 12px; +} + +.dataTable-info { + margin: 7px 0; +} + +/* PAGER */ +.dataTable-pagination ul { + margin: 0; + padding-left: 0; +} + +.dataTable-pagination li { + list-style: none; + float: left; +} + +.dataTable-pagination a { + border: 1px solid transparent; + float: left; + margin-left: 2px; + padding: 6px 12px; + position: relative; + text-decoration: none; + color: #333; +} + +.dataTable-pagination a:hover { + background-color: #d9d9d9; +} + +.dataTable-pagination .active a, +.dataTable-pagination .active a:focus, +.dataTable-pagination .active a:hover { + background-color: #d9d9d9; + cursor: default; +} + +.dataTable-pagination .ellipsis a, +.dataTable-pagination .disabled a, +.dataTable-pagination .disabled a:focus, +.dataTable-pagination .disabled a:hover { + cursor: not-allowed; +} + +.dataTable-pagination .disabled a, +.dataTable-pagination .disabled a:focus, +.dataTable-pagination .disabled a:hover { + cursor: not-allowed; + opacity: 0.4; +} + +.dataTable-pagination .pager a { + font-weight: bold; +} + +/* TABLE */ +.dataTable-table { + max-width: 100%; + width: 100%; + border-spacing: 0; + border-collapse: separate; +} + +.dataTable-table > tbody > tr > td, +.dataTable-table > tbody > tr > th, +.dataTable-table > tfoot > tr > td, +.dataTable-table > tfoot > tr > th, +.dataTable-table > thead > tr > td, +.dataTable-table > thead > tr > th { + vertical-align: top; + padding: 8px 10px; +} + +.dataTable-table > thead > tr > th { + vertical-align: bottom; + text-align: left; + border-bottom: 1px solid #d9d9d9; +} + +.dataTable-table > tfoot > tr > th { + vertical-align: bottom; + text-align: left; + border-top: 1px solid #d9d9d9; +} + +.dataTable-table th { + vertical-align: bottom; + text-align: left; +} + +.dataTable-table th a { + text-decoration: none; + color: inherit; +} + +.dataTable-sorter { + display: inline-block; + height: 100%; + position: relative; + width: 100%; +} + +.dataTable-sorter::before, +.dataTable-sorter::after { + content: ""; + height: 0; + width: 0; + position: absolute; + right: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + opacity: 0.2; +} + +.dataTable-sorter::before { + border-top: 4px solid #000; + bottom: 0px; +} + +.dataTable-sorter::after { + border-bottom: 4px solid #000; + border-top: 4px solid transparent; + top: 0px; +} + +.asc .dataTable-sorter::after, +.desc .dataTable-sorter::before { + opacity: 0.6; +} + +.dataTablas-empty { + text-align: center; +} + +.dataTable-top::after, .dataTable-bottom::after { + clear: both; + content: " "; + display: table; +} + +table.dataTable-table:focus tr.dataTable-cursor > td:first-child { + border-left: 3px blue solid; +} + +table.dataTable-table:focus { + outline: solid 1px black; + outline-offset: -1px; +} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/CHANGELOG.md b/Practica-14.5/src/assets/vendor/tinymce/CHANGELOG.md new file mode 100644 index 0000000..ef2cdbc --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/CHANGELOG.md @@ -0,0 +1,3051 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +## 6.3.1 - 2022-12-06 + +### Fixed +- HTML in messages for the `WindowManager.alert` and `WindowManager.confirm` APIs were not properly sanitized. #TINY-3548 + +## 6.3.0 - 2022-11-23 + +### Added +- New `expand` function added to `tinymce.selection` which expands the selection around the nearest word. #TINY-9001 +- New `expand` function added to `tinymce.dom.RangeUtils` to return a new range expanded around the nearest word. #TINY-9001 +- New `color_map_background` and `color_map_foreground` options which set the base colors used in the `backcolor` and `forecolor` toolbar buttons and menu items. #TINY-9184 +- Added optional `storageKey` property to `colorinput` component and `colorswatch` fancy menu item. #TINY-9184 +- New `addView` function added to `editor.ui.registry` which makes it possible to Registro custom editor views. #TINY-9210 +- New `ToggleView` command which makes it possible to hide or show Registroed custom views. #TINY-9210 +- New `color_default_foreground` and `color_default_background` options to set the initial default color for the `forecolor` and `backcolor` toolbar buttons and menu items. #TINY-9183 +- New `getTransparentElements` function added to `tinymce.html.Schema` to return a map object of transparent HTML elements. #TINY-9172 +- Added `ToggleToolbarDrawer` event to subscribe to toolbar’s opening and closing. #TINY-9271 + +### Changed +- Transparent elements, like anchors, are now allowed in the root of the editor body if they contain blocks. #TINY-9172 +- Colorswatch keyboard navigation now starts on currently selected color if present in the colorswatch. #TINY-9283 +- `setContent` is now allowed to accept any custom keys and values as a second options argument. #TINY-9143 + +### Improved +- Transparent elements, like anchors, can now contain block elements. #TINY-9172 +- Colorswatch now displays a checkmark for selected color. #TINY-9283 +- Color picker dialog now starts on the appropriate color for the cursor position. #TINY-9213 + +### Fixed +- Parsing media content would cause a memory leak, which for example occurred when using the `getContent` API. #TINY-9186 +- Dragging a noneditable element toward the bottom edge would cause the page to scroll up. #TINY-9025 +- Range expanding capabilities would behave inconsistently depending on where the cursor was placed. #TINY-9029 +- Compilation errors were thrown when using TypeScript 4.8. #TINY-9161 +- Line separator scrolling in floating toolbars. #TINY-8948 +- A double bottom border appeared on inline mode editor for the `tinymce-5` skin. #TINY-9108 +- The editor header showed up even with no menubar and toolbar configured. #TINY-8819 +- Inline text pattern no longer triggers if it matches only the end but not the start. #TINY-8947 +- Matches of inline text patterns that are similar are now managed correctly. #TINY-8949 +- Using `editor.selection.getContent({ format: 'text' })` or `editor.getContent({ format: 'text' })` would sometimes deselect selected radio buttons. #TINY-9213 +- The context toolbar prevented the user from placing the cursor at the edges of the editor. #TINY-8890 +- The Quick Insert context toolbar provided by the `quickbars` plugin showed when the cursor was in a fake block caret. #TINY-9190 +- The `editor.selection.getRng()` API was not returning a proper range on hidden editors in Firefox. #TINY-9259 +- The `editor.selection.getBookmark()` API was not returning a proper bookmark on hidden editors in Firefox. #TINY-9259 +- Dragging a noneditable element before or after another noneditable element now works correctly. #TINY-9253 +- The restored selection after a redo or undo action was not scrolled into view. #TINY-9222 +- A newline could not be inserted when the selection was restored from a bookmark after an inline element with a `contenteditable="false"` attribute. #TINY-9194 +- The global `tinymce.dom.styleSheetLoader` was not affected by the `content_css_cors` option. #TINY-6037 +- The caret was moved to the previous line when a text pattern executed a `mceInsertContent` command on Enter key when running on Firefox. #TINY-9193 + +## 6.2.0 - 2022-09-08 + +### Added +- New `text_patterns_lookup` option to provide additional text patterns dynamically. #TINY-8778 +- New promotion element has been added to the default UI. It can be disabled using the new `promotion` option. #TINY-8840 +- New `format_noneditable_selector` option to specify the `contenteditable="false"` elements that can be wrapped in a format. #TINY-8905 +- Added `allow` as a valid attribute for the `iframe` element in the editor schema. #TINY-8939 +- New `Buscar` field in the `MenuButton` that shows a Buscar field at the top of the menu, and refetches items when the Buscar field updates. #TINY-8952 + +### Improved +- The formatter can now apply a format to a `contenteditable="false"` element by wrapping it. Configurable using the `format_noneditable_selector` option. #TINY-8905 +- The autocompleter now supports a multiple character trigger using the new `trigger` configuration. #TINY-8887 +- The formatter now applies some inline formats, such as color and font size, to list item elements when the entire item content is selected. #TINY-8961 +- The installed and available plugin lists in the Help dialog are now sorted alphabetically. #TINY-9019 +- Alignment can now be applied to more types of embedded media elements. #TINY-8687 + +### Changed +- The `@menubar-row-separator-color` oxide variable no longer affects the divider between the Menubar and Toolbar. It only controls the color of the separator lines drawn in multiline Menubars. #TINY-8632 +- The `@toolbar-separator-color` oxide variable now affects the color of the separator between the Menubar and Toolbar only. #TINY-8632 +- Available Premium plugins, which are listed by name in the Help dialog, are no longer translated. #TINY-9019 + +### Fixed +- The Autolink plugin did not work when text nodes in the content were fragmented. #TINY-3723 +- Fixed multiple incorrect types on public APIs found while enabling TypeScript strict mode. #TINY-8806 +- The number of blank lines returned from `editor.getContent({format: 'text'})` differed between browsers. #TINY-8579 +- The editor focused via the `auto_focus` option was not scrolled into the viewport. #TINY-8785 +- Adding spaces immediately after a `contenteditable="false"` block did not work properly in some circumstances. #TINY-8814 +- Elements with only `data-*` custom attributes were sometimes removed when they should not be removed. #TINY-8755 +- Selecting a figure with `class="image"` incorrectly highlighted the link toolbar button. #TINY-8832 +- Specifying a single, non-default list style for the `advlist_bullet_styles` and `advlist_number_styles` options was not respected. #TINY-8721 +- Fixed multiple issues that occurred when formatting `contenteditable` elements. #TINY-8905 +- Spaces could be incorrectly added to `urlinput` dialog Componentes (commonly but not exclusively presented in the *Insert/Edit Link* dialog) in certain cases. #TINY-8775 +- The text patterns logic threw an error when there were fragmented text nodes in a paragraph. #TINY-8779 +- Dragging a `contentEditable=false` element towards a document’s edge did not cause scrolling. #TINY-8874 +- Parsing large documents no longer throws a `Maximum call stack size exceeded` exception. #TINY-6945 +- DomParser filter matching was not checked between filters, which could lead to an exception in the parser. #TINY-8888 +- `contenteditable="false"` lists can no longer be toggled; and `contenteditable="true"` list elements within these lists can no longer be indented, split into another list element, or appended to the previous list element by deletion. #TINY-8920 +- Removed extra bottom padding in the context toolbar of the `tinymce-5` skin. #TINY-8980 +- Fixed a regression where pressing **Enter** added or deleted content outside the selection. #TINY-9101 +- Fixed a bug where pressing **Enter** deleted selected `contenteditable="false"` `
        ` elements. #TINY-9101
        +- The `editor.insertContent()` API did not respect the `no_events` argument. #TINY-9140
        +
        +### Deprecated
        +- The autocompleter configuration property, `ch`, has been deprecated. It will be removed in the next major release. Use the `trigger` property instead. #TINY-8887
        +
        +## 6.1.2 - 2022-07-29
        +
        +### Fixed
        +- Reverted the undo level fix in the `autolink` plugin as it caused duplicated content in some edge cases. #TINY-8936
        +
        +## 6.1.1 - 2022-07-27
        +
        +### Fixed
        +- Invalid special elements were not cleaned up correctly during sanitization. #TINY-8780
        +- An exception was thrown when deleting all content if the start or end of the document had a `contenteditable="false"` element. #TINY-8877
        +- When a sidebar was opened using the `sidebar_show` option, its associated toolbar button was not highlighted. #TINY-8873
        +- When converting a URL to a link, the `autolink` plugin did not fire an `ExecCommand` event, nor did it create an undo level. #TINY-8896
        +- Worked around a Firefox bug which resulted in cookies not being available inside the editor content. #TINY-8916
        +- `
        ` content pasted into a `
        ` block that had inline styles or was `noneditable` now merges correctly with the surrounding content. #TINY-8860
        +- After a `codesample` was pasted, the insertion point was placed incorrectly. #TINY-8861
        +
        +## 6.1.0 - 2022-06-29
        +
        +### Added
        +- New `sidebar_show` option to show the specified sidebar on initialization. #TINY-8710
        +- New `newline_behavior` option controls what happens when the Return or Enter key is pressed or the `mceInsertNewLine` command is used. #TINY-8458
        +- New `iframe_template_callback` option in the Media plugin. Patch provided by Namstel. #TINY-8684
        +- New `transparent` property for `iframe` dialog component. #TINY-8534
        +- New `removeAttributeFilter` and `removeNodeFilter` functions added to the DomParser and DOM Serializer APIs. #TINY-7847
        +- New `dispatchChange` function added to the UndoManager API to fire the change with current editor status as level and current undoManager layer as lastLevel. #TINY-8641
        +
        +### Improved
        +- Clearer focus states for buttons while navigating with a keyboard. #TINY-8557
        +- Support annotating certain block elements directly when using the editor's Annotation API. #TINY-8698
        +- The `mceLink` command can now take the value `{ dialog: true }` to always open the link dialog. #TINY-8057
        +- All help dialog links to `https://www.tiny.cloud` now include `rel="noopener"` to avoid potential security issues. #TINY-8834
        +
        +### Changed
        +- The `end_container_on_empty_block` option can now take a string of blocks, allowing the exiting of a blockquote element by pressing Enter or Return twice. #TINY-6559
        +- The default value for `end_container_on_empty_block` option has been changed to `'blockquote'`. #TINY-6559
        +- Link menu and toolbar buttons now always execute the `mceLink` command. #TINY-8057
        +- Toggling fullscreen mode when using the Fullscreen plugin now also fires the `ResizeEditor` event. #TINY-8701
        +- Getting the editor's text content now returns newlines instead of an empty string if more than one empty paragraph exists. #TINY-8578
        +- Custom elements are now treated as non-empty elements by the schema. #TINY-4784
        +- The autocompleter's menu HTML element is now positioned instead of the wrapper. #TINY-6476
        +- Choice menu items will now use the `'menuitemradio'` aria role to better reflect that only a single item can be active. #TINY-8602
        +
        +### Fixed
        +- Some Template plugin option values were not escaped properly when doing replacement lookups with Regular Expressions. #TINY-7433
        +- Copy events were not dispatched in readonly mode. #TINY-6800
        +- `
        ` tags were not preserved when copying and pasting. #TINY-7719
        +- The URL detection used for autolink and smart paste did not work if a path segment contained valid characters such as `!` and `:`. #TINY-8069
        +- In some cases pressing the Backspace or Delete key would incorrectly step into Tablas rather than remain outside. #TINY-8592
        +- Links opened when Alt+Enter or Option+Return was typed even when `preventDefault()` was called on the keydown event. #TINY-8661
        +- Inconsistent visual behavior between choosing Edit -> Select All and typing Ctrl+A or Cmd+A when a document contained an image. #TINY-4550
        +- Ctrl+Shift+Home/End or Cmd+Shift+Up-arrow/Down-arrow did not expand the selection to a `contenteditable="false"` element if the element was at the beginning or end of a document. #TINY-7795
        +- Triple-clicking did not select a paragraph in Google Chrome in some circumstances. #TINY-8215
        +- Images were not showing as selected when selected along with other content. #TINY-5947
        +- Selection direction was not stored or restored when getting or setting selection bookmarks. #TINY-8599
        +- When text within an inline boundary element was selected and the right-arrow key was pressed, the insertion point incorrectly moved to the left. #TINY-8601
        +- In some versions of Safari, the `editor.selection.isForward()` API could throw an exception due to an invalid selection. #TINY-8686
        +- The selection is no longer incorrectly moved inside a comment by the `editor.selection.normalize()` API. #TINY-7817
        +- The `InsertParagraph` or `mceInsertNewLine` commands did not delete the current selection like the native command does. #TINY-8606
        +- The `InsertLineBreak` command did not replace selected content. #TINY-8458
        +- If selected content straddled a parent and nested list, cutting the selection did not always set the list style to `'none'` on the parent list. #TINY-8078
        +- Delete operations could behave incorrectly if the selection contains a `contenteditable="false"` element located at the edge of content. #TINY-8729
        +- Spaces were not added correctly on some browsers when the insertion point was immediately before or after a `contenteditable="false"` block element. #TINY-8588
        +- Images that used a Data URI were corrupted when the data wasn't base64 encoded. #TINY-8337
        +- `uploadImages` no longer triggers two change events if there is a removal of images on upload. #TINY-8641
        +- Preview and Insert Template dialogs now display the correct content background color when using dark skins. #TINY-8534
        +- Dialogs no longer exceed window height on smaller screens. #TINY-8146
        +- UI Componentes, such as dialogs, would in some cases cause the Esc keyup event to incorrectly trigger inside the editor. #TINY-7005
        +- Fixed incorrect word breaks in menus when the menu presented with a scrollbar. #TINY-8572
        +- Notifications did not properly reposition when toggling fullscreen mode. #TINY-8701
        +- Text alignments, such as flush left and centered, could not be applied to `
        ` elements. #TINY-7715
        +- Indenting or outdenting list items inside a block element that was inside another list item did not work. #TINY-7209
        +- Changing the list type of a list within another block element altered the parent element that contained that list. #TINY-8068
        +- Pasting columns in Tablas could, in some circumstances, result in an invalid table. #TINY-8040
        +- Copying columns in Tablas could sometimes result in an invalid copy. #TINY-8040
        +- Changing table properties with the `table_style_by_css` option set to `false` would sometimes reset the table width. #TINY-8758
        +- Custom elements added to otherwise blank lines were removed during serialization. #TINY-4784
        +- The editor's autocompleter was not triggered at the start of nested list items. #TINY-8759
        +- Some function types in the TreeWalker API missed that it could return `undefined`. #TINY-8592
        +- Nuget packages for .NET and .NET Core are now configured to copy TinyMCE into `/wwwroot/lib/` when TinyMCE is installed into a project. #TINY-8611
        +
        +## 6.0.3 - 2022-05-25
        +
        +### Fixed
        +- Could not remove values when multiple cells were selected with the cell properties dialog. #TINY-8625
        +- Could not remove values when multiple rows were selected with the row properties dialog. #TINY-8625
        +- Empty lines that were formatted in a ranged selection using the `format_empty_lines` option were not kept in the serialized content. #TINY-8639
        +- The `s` element was missing from the default schema text inline elements. #TINY-8639
        +- Some text inline elements specified via the schema were not removed when empty by default. #TINY-8639
        +
        +## 6.0.2 - 2022-04-27
        +
        +### Fixed
        +- Some media elements wouldn't update when changing the source URL. #TINY-8660
        +- Inline toolbars flickered when switching between editors. #TINY-8594
        +- Multiple inline toolbars were shown if focused too quickly. #TINY-8503
        +- Added background and additional spacing for the text labeled buttons in the toolbar to improve visual clarity. #TINY-8617
        +- Toolbar split buttons with text used an incorrect width on touch devices. #TINY-8647
        +
        +## 6.0.1 - 2022-03-23
        +
        +### Fixed
        +- Fixed the dev ZIP missing the required `bin` scripts to build from the source. #TINY-8542
        +- Fixed a regression whereby text patterns couldn't be updated at runtime. #TINY-8540
        +- Fixed an issue where Tablas with colgroups could be copied incorrectly in some cases. #TINY-8568
        +- Naked buttons better adapt to various background colors, improved text contrast in notifications. #TINY-8533
        +- The autocompleter would not fire the `AutocompleterStart` event nor close the menu in some cases. #TINY-8552
        +- It wasn't possible to select text right after an inline noneditable element. #TINY-8567
        +- Fixed a double border showing for the `tinymce-5` skin when using `toolbar_location: 'bottom'`. #TINY-8564
        +- Clipboard content was not generated correctly when cutting and copying `contenteditable="false"` elements. #TINY-8563
        +- Fixed the box-shadow getting clipped in autocompletor popups. #TINY-8573
        +- The `buttonType` property did not work for dialog footer buttons. #TINY-8582
        +- Fix contrast ratio for error messages. #TINY-8586
        +
        +## 6.0.0 - 2022-03-03
        +
        +### Added
        +- New `editor.options` API to replace the old `editor.settings` and `editor.getParam` APIs. #TINY-8206
        +- New `editor.annotator.removeAll` API to remove all annotations by name. #TINY-8195
        +- New `Resource.unload` API to make it possible to unload resources. #TINY-8431
        +- New `FakeClipboard` API on the `tinymce` global. #TINY-8353
        +- New `dispatch()` function to replace the now deprecated `fire()` function in various APIs. #TINY-8102
        +- New `AutocompleterStart`, `AutocompleterUpdate` and `AutocompleterEnd` events. #TINY-8279
        +- New `mceAutocompleterClose`, `mceAutocompleterReload` commands. #TINY-8279
        +- New `mceInsertTableDialog` command to open the insert table dialog. #TINY-8273
        +- New `slider` dialog component. #TINY-8304
        +- New `imagepreview` dialog component, allowing preview and zoom of any image URL. #TINY-8333
        +- New `buttonType` property on dialog button Componentes, supporting `toolbar` style in addition to `primary` and `secondary`. #TINY-8304
        +- The `tabindex` attribute is now copied from the target element to the iframe. #TINY-8315
        +
        +### Improved
        +- New default theme styling for TinyMCE 6 facelift with old skin available as `tinymce-5` and `tinymce-5-dark`. #TINY-8373
        +- The default height of editor has been increased from `200px` to `400px` to improve the usability of the editor. #TINY-6860
        +- The upload results returned from the `editor.uploadImages()` API now includes a `removed` flag, reflecting if the image was removed after a failed upload. #TINY-7735
        +- The `ScriptLoader`, `StyleSheetLoader`, `AddOnManager`, `PluginManager` and `ThemeManager` APIs will now return a `Promise` when loading resources instead of using callbacks. #TINY-8325
        +- A `ThemeLoadError` event is now fired if the theme fails to load. #TINY-8325
        +- The `BeforeSetContent` event will now include the actual serialized content when passing in an `AstNode` to the `editor.setContent` API. #TINY-7996
        +- Improved support for placing the caret before or after noneditable elements within the editor. #TINY-8169
        +- Calls to `editor.selection.setRng` now update the caret position bookmark used when focus is returned to the editor. #TINY-8450
        +- The `emoticon` plugin dialog, toolbar and menu item has been updated to use the more accurate `Emojis` term. #TINY-7631
        +- The dialog `redial` API will now only rerender the changed Componentes instead of the whole dialog. #TINY-8334
        +- The dialog API `setData` method now uses a deep merge algorithm to support partial nested objects. #TINY-8333
        +- The dialog spec `initialData` type is now `Partial` to match the underlying implementation details. #TINY-8334
        +- Notifications no longer require a timeout to disable the close button. #TINY-6679
        +- The editor theme is now fetched in parallel with the icons, language pack and plugins. #TINY-8453
        +
        +### Changed
        +- TinyMCE is now MIT licensed. #TINY-2316
        +- Moved the `paste` plugin's functionality to TinyMCE core. #TINY-8310
        +- The `paste_data_images` option now defaults to `true`. #TINY-8310
        +- Moved the `noneditable` plugin to TinyMCE core. #TINY-8311
        +- Renamed the `noneditable_noneditable_class` option to `noneditable_class`. #TINY-8311
        +- Renamed the `noneditable_editable_class` option to `editable_class`. #TINY-8311
        +- Moved the `textpattern` plugin to TinyMCE core. #TINY-8312
        +- Renamed the `textpattern_patterns` option to `text_patterns`. #TINY-8312
        +- Moved the `hr` plugin's functionality to TinyMCE core. #TINY-8313
        +- Moved the `print` plugin's functionality to TinyMCE core. #TINY-8314
        +- Moved non-UI table functionality to core. #TINY-8273
        +- The `DomParser` API no longer uses a custom parser internally and instead uses the native `DOMParser` API. #TINY-4627
        +- The `editor.getContent()` API can provide custom content by preventing and overriding `content` in the `BeforeGetContent` event. This makes it consistent with the `editor.selection.getContent()` API. #TINY-8018
        +- The `editor.setContent()` API can now be prevented using the `BeforeSetContent` event. This makes it consistent with the `editor.selection.setContent()` API. #TINY-8018
        +- Add-ons such as plugins and themes are no longer constructed using the `new` operator. #TINY-8256
        +- A number of APIs that were not proper classes, are no longer constructed using the `new` operator. #TINY-8322
        +- The Editor commands APIs will no longer fallback to executing the browsers native command functionality. #TINY-7829
        +- The Editor query command APIs will now return `false` or an empty string on removed editors. #TINY-7829
        +- The `mceAddEditor` and `mceToggleEditor` commands now take an object as their value to specify the id and editor options. #TINY-8138
        +- The `mceInsertTable` command can no longer open the insert table dialog. Use the `mceInsertTableDialog` command instead. #TINY-8273
        +- The `plugins` option now returns a `string` array instead of a space separated string. #TINY-8455
        +- The `media` plugin no longer treats `iframe`, `video`, `audio` or `object` elements as "special" and will validate the contents against the schema. #TINY-8382
        +- The `images_upload_handler` option is no longer passed a `success` or `failure` callback and instead requires a `Promise` to be returned with the upload result. #TINY-8325
        +- The `tinymce.settings` global property is no longer set upon initialization. #TINY-7359
        +- The `change` event is no longer fired on first modification. #TINY-6920
        +- The `GetContent` event will now always pass a `string` for the `content` property. #TINY-7996
        +- Changed the default tag for the strikethrough format to the `s` tag when using a html 5 schema. #TINY-8262
        +- The `strike` tag is automatically converted to the `s` tag when using a html 5 schema. #TINY-8262
        +- Aligning a table to the left or right will now use margin styling instead of float styling. #TINY-6558
        +- The `:` control character has been changed to `~` for the schema `valid_elements` and `extended_valid_elements` options. #TINY-6726
        +- The `primary` property on dialog buttons has been deprecated. Use the new `buttonType` property instead. #TINY-8304
        +- Changed the default statusbar element path delimiter from `»` to `›`. #TINY-8372
        +- Replaced the `Powered by Tiny` branding text with the Tiny logo. #TINY-8371
        +- The default minimum height of editor has been changed to 100px to prevent the UI disappearing while resizing. #TINY-6860
        +- RGB colors are no longer converted to hex values when parsing or serializing content. #TINY-8163
        +- Replaced the `isDisabled()` function with an `isEnabled()` function for various APIs. #TINY-8101
        +- Replaced the `enable()` and `disable()` functions with a `setEnabled(state)` function in various APIs. #TINY-8101
        +- Replaced the `disabled` property with an `enabled` property in various APIs. #TINY-8101
        +- Replaced the `disable(name)` and `enable(name)` functions with a `setEnabled(name, state)` function in the Dialog APIs. #TINY-8101
        +- Renamed the `tinymce.Env.os.isOSX` API to `tinymce.Env.os.isMacOS`. #TINY-8175
        +- Renamed the `tinymce.Env.browser.isChrome` API to `tinymce.Env.browser.isChromium` to better reflect its functionality. #TINY-8300
        +- Renamed the `getShortEndedElements` Schema API to `getVoidElements`. #TINY-8344
        +- Renamed the `font_formats` option to `font_family_formats`. #TINY-8328
        +- Renamed the `fontselect` toolbar button and `fontformats` menu item to `fontfamily`. #TINY-8328
        +- Renamed the `fontsize_formats` option to `font_size_formats`. #TINY-8328
        +- Renamed the `fontsizeselect` toolbar button and `fontsizes` menu item to `fontsize`. #TINY-8328
        +- Renamed the `formatselect` toolbar button and `blockformats` menu item to `blocks`. #TINY-8328
        +- Renamed the `styleselect` toolbar button and `formats` menu item to `styles`. #TINY-8328
        +- Renamed the `lineheight_formats` option to `line_height_formats`. #TINY-8328
        +- Renamed the `getWhiteSpaceElements()` function to `getWhitespaceElements()` in the `Schema` API. #TINY-8102
        +- Renamed the `mceInsertClipboardContent` command `content` property to `html` to better reflect what data is passed. #TINY-8310
        +- Renamed the `default_link_target` option to `link_default_target` for both `link` and `autolink` plugins. #TINY-4603
        +- Renamed the `rel_list` option to `link_rel_list` for the `link` plugin. #TINY-4603
        +- Renamed the `target_list` option to `link_target_list` for the `link` plugin. #TINY-4603
        +- The default value for the `link_default_protocol` option has been changed to `https` instead of `http`. #TINY-7824
        +- The default value for the `element_format` option has been changed to `html`. #TINY-8263
        +- The default value for the `schema` option has been changed to `html5`. #TINY-8261
        +- The default value for the `table_style_by_css` option has been changed to `true`. #TINY-8259
        +- The default value for the `table_use_colgroups` option has been changed to `true`. #TINY-8259
        +
        +### Fixed
        +- The object returned from the `editor.fire()` API was incorrect if the editor had been removed. #TINY-8018
        +- The `editor.selection.getContent()` API did not respect the `no_events` argument. #TINY-8018
        +- The `editor.annotator.remove` API did not keep selection when removing the annotation. #TINY-8195
        +- The `GetContent` event was not fired when getting `tree` or `text` formats using the `editor.selection.getContent()` API. #TINY-8018
        +- The `beforeinput` and `input` events would sometimes not fire as expected when deleting content. #TINY-8168 #TINY-8329
        +- The `table` plugin would sometimes not correctly handle headers in the `tfoot` section. #TINY-8104
        +- The `silver` theme UI was incorrectly rendered before plugins had initialized. #TINY-8288
        +- The aria labels for the color picker dialog were not translated. #TINY-8381
        +- Fixed sub-menu items not read by screen readers. Patch contributed by westonkd. #TINY-8417
        +- Dialog labels and other text-based UI properties did not escape HTML markup. #TINY-7524
        +- Anchor elements would render incorrectly when using the `allow_html_in_named_anchor` option. #TINY-3799
        +- The `AstNode` HTML serializer did not serialize `pre` or `textarea` elements correctly when they contained newlines. #TINY-8446
        +- Fixed sub-menu items not read by screen readers. Patch contributed by westonkd. #TINY-8417
        +- The Home or End keys would move out of a editable element contained within a noneditable element. #TINY-8201
        +- Dialogs could not be opened in inline mode before the editor had been rendered. #TINY-8397
        +- Clicking on menu items could cause an unexpected console warning if the `onAction` function caused the menu to close. #TINY-8513
        +- Fixed various color and contrast issues for the dark skins. #TINY-8527
        +
        +### Removed
        +- Removed support for Microsoft Internet Explorer 11. #TINY-8194 #TINY-8241
        +- Removed support for Microsoft Word from the opensource paste functionality. #TINY-7493
        +- Removed support for the `plugins` option allowing a mixture of a string array and of space separated strings. #TINY-8399
        +- Removed support for the deprecated `false` value for the `forced_root_block` option. #TINY-8260
        +- Removed the jQuery integration. #TINY-4519
        +- Removed the `imagetools` plugin, which is now classified as a Premium plugin. #TINY-8209
        +- Removed the `imagetools` dialog component. #TINY-8333
        +- Removed the `toc` plugin, which is now classified as a Premium plugin. #TINY-8250
        +- Removed the `tabfocus` plugin. #TINY-8315
        +- Removed the `textpattern` plugin's API as part of moving it to core. #TINY-8312
        +- Removed the `table` plugin's API. #TINY-8273
        +- Removed the callback for the `EditorUpload` API. #TINY-8325
        +- Removed the legacy browser detection properties from the `Env` API. #TINY-8162
        +- Removed the `filterNode` method from the `DomParser` API. #TINY-8249
        +- Removed the `SaxParser` API. #TINY-8218
        +- Removed the `tinymce.utils.Promise` API. #TINY-8241
        +- Removed the `toHex` function for the `DOMUtils` and `Styles` APIs. #TINY-8163
        +- Removed the `execCommand` handler function from the plugin and theme interfaces. #TINY-7829
        +- Removed the `editor.settings` property as it has been replaced by the new Options API. #TINY-8236
        +- Removed the `shortEnded` and `fixed` properties on `tinymce.html.Node` class. #TINY-8205
        +- Removed the `mceInsertRawHTML` command. #TINY-8214
        +- Removed the style field from the `image` plugin dialog advanced tab. #TINY-3422
        +- Removed the `paste_filter_drop` option as native drag and drop handling is no longer supported. #TINY-8511
        +- Removed the legacy `mobile` theme. #TINY-7832
        +- Removed the deprecated `$`, `Class`, `DomQuery` and `Sizzle` APIs. #TINY-4520 #TINY-8326
        +- Removed the deprecated `Color`, `JSON`, `JSONP` and `JSONRequest`. #TINY-8162
        +- Removed the deprecated `XHR` API. #TINY-8164
        +- Removed the deprecated `seticonstroke` Split Toolbar Button API. #TINY-8162
        +- Removed the deprecated `editors` property from `EditorManager`. #TINY-8162
        +- Removed the deprecated `execCallback` and `setMode` APIs from `Editor`. #TINY-8162
        +- Removed the deprecated `addComponentes` and `dependencies` APIs from `AddOnManager`. #TINY-8162
        +- Removed the deprecated `clearInterval`, `clearTimeout`, `debounce`, `requestAnimationFrame`, `setInterval`, `setTimeout` and `throttle` APIs from `Delay`. #TINY-8162
        +- Removed the deprecated `Schema` options. #TINY-7821
        +- Removed the deprecated `file_browser_callback_types`, `force_hex_style_colors` and `images_dataimg_filter` options. #TINY-7823
        +- Removed the deprecated `filepicker_validator_handler`, `force_p_newlines`, `gecko_spellcheck`, `tab_focus`, `table_responsive_width` and `toolbar_drawer` options. #TINY-7820
        +- Removed the deprecated `media_scripts` option in the `media` plugin. #TINY-8421
        +- Removed the deprecated `editor_deselector`, `editor_selector`, `elements`, `mode` and `types` legacy TinyMCE init options. #TINY-7822
        +- Removed the deprecated `content_editable_state` and `padd_empty_with_br` options. #TINY-8400
        +- Removed the deprecated `autoresize_on_init` option from the `autoresize` plugin. #TINY-8400
        +- Removed the deprecated `fullpage`, `spellchecker`, `bbcode`, `legacyoutput`, `colorpicker`, `contextmenu` and `textcolor` plugins. #TINY-8192
        +- Removed the undocumented `editor.editorCommands.hasCustomCommand` API. #TINY-7829
        +- Removed the undocumented `mceResetDesignMode`, `mceRepaint` and `mceBeginUndoLevel` commands. #TINY-7829
        +
        +### Deprecated
        +- The dialog button component's `primary` property has been deprecated and will be removed in the next major release. Use the new `buttonType` property instead. #TINY-8304
        +- The `fire()` function of `tinymce.Editor`, `tinymce.dom.EventUtils`, `tinymce.dom.DOMUtils`, `tinymce.util.Observable` and `tinymce.util.EventDispatcher` has been deprecated and will be removed in the next major release. Use the `dispatch()` function instead. #TINY-8102
        +- The `content` property on the `SetContent` event has been deprecated and will be removed in the next major release. #TINY-8457
        +- The return value of the `editor.setContent` API has been deprecated and will be removed in the next major release. #TINY-8457
        +
        +## 5.10.3 - 2022-02-09
        +
        +### Fixed
        +- Alignment would sometimes be removed on parent elements when changing alignment on certain inline nodes, such as images. #TINY-8308
        +- The `fullscreen` plugin would reset the scroll position when exiting fullscreen mode. #TINY-8418
        +
        +## 5.10.2 - 2021-11-17
        +
        +### Fixed
        +- Internal selectors were appearing in the style list when using the `importcss` plugin. #TINY-8238
        +
        +## 5.10.1 - 2021-11-03
        +
        +### Fixed
        +- The iframe aria help text was not read by some screen readers. #TINY-8171
        +- Clicking the `forecolor` or `backcolor` toolbar buttons would do nothing until selecting a color. #TINY-7836
        +- Crop functionality did not work in the `imagetools` plugin when the editor was rendered in a shadow root. #TINY-6387
        +- Fixed an exception thrown on Safari when closing the `Buscarreplace` plugin dialog. #TINY-8166
        +- The `autolink` plugin did not convert URLs to links when starting with a bracket. #TINY-8091
        +- The `autolink` plugin incorrectly created nested links in some cases. #TINY-8091
        +- Tablas could have an incorrect height set on rows when rendered outside of the editor. #TINY-7699
        +- In certain circumstances, the table of contents plugin would incorrectly add an extra empty list item. #TINY-4636
        +- The insert table grid menu displayed an incorrect size when re-opening the grid. #TINY-6532
        +- The word count plugin was treating the zero width space character (`​`) as a word. #TINY-7484
        +
        +## 5.10.0 - 2021-10-11
        +
        +### Added
        +- Added a new `URI.isDomSafe(uri)` API to check if a URI is considered safe to be inserted into the DOM. #TINY-7998
        +- Added the `ESC` key code constant to the `VK` API. #TINY-7917
        +- Added a new `deprecation_warnings` setting for turning off deprecation console warning messages. #TINY-8049
        +
        +### Improved
        +- The `element` argument of the `editor.selection.scrollIntoView()` API is now optional, and if it is not provided the current selection will be scrolled into view. #TINY-7291
        +
        +### Changed
        +- The deprecated `scope` attribute is no longer added to `td` cells when converting a row to a header row. #TINY-7731
        +- The number of `col` elements is normalized to match the number of columns in a table after a table action. #TINY-8011
        +
        +### Fixed
        +- Fixed a regression that caused block wrapper formats to apply and remove incorrectly when using a collapsed selection with multiple words. #TINY-8036
        +- Resizing table columns in some scenarios would resize the column to an incorrect position. #TINY-7731
        +- Inserting a table where the parent element had padding would cause the table width to be incorrect. #TINY-7991
        +- The resize backdrop element did not have the `data-mce-bogus="all"` attribute set to prevent it being included in output. #TINY-7854
        +- Resize handles appeared on top of dialogs and menus when using an inline editor. #TINY-3263
        +- Fixed the `autoresize` plugin incorrectly scrolling to the top of the editor content in some cases when changing content. #TINY-7291
        +- Fixed the `editor.selection.scrollIntoView()` type signature, as it incorrectly required an `Element` instead of `HTMLElement`. #TINY-7291
        +- Table cells that were both row and column headers did not retain the correct state when converting back to a regular row or column. #TINY-7709
        +- Clicking beside a non-editable element could cause the editor to incorrectly scroll to the top of the content. #TINY-7062
        +- Clicking in a table cell, with a non-editable element in an adjacent cell, incorrectly caused the non-editable element to be selected. #TINY-7736
        +- Split toolbar buttons incorrectly had nested `tabindex="-1"` attributes. #TINY-7879
        +- Fixed notifications rendering in the wrong place initially and when the page was scrolled. #TINY-7894
        +- Fixed an exception getting thrown when the number of `col` elements didn't match the number of columns in a table. #TINY-7041 #TINY-8011
        +- The table selection state could become incorrect after selecting a noneditable table cell. #TINY-8053
        +- As of Mozilla Firefox 91, toggling fullscreen mode with `toolbar_sticky` enabled would cause the toolbar to disappear. #TINY-7873
        +- Fixed URLs not cleaned correctly in some cases in the `link` and `image` plugins. #TINY-7998
        +- Fixed the `image` and `media` toolbar buttons incorrectly appearing to be in an inactive state in some cases. #TINY-3463
        +- Fixed the `editor.selection.selectorChanged` API not firing if the selector matched the current selection when Registroed in some cases. #TINY-3463
        +- Inserting content into a `contenteditable="true"` element that was contained within a `contenteditable="false"` element would move the selection to an incorrect location. #TINY-7842
        +- Dragging and dropping `contenteditable="false"` elements could result in the element being placed in an unexpected location. #TINY-7917
        +- Pressing the Escape key would not cancel a drag action that started on a `contenteditable="false"` element within the editor. #TINY-7917
        +- `video` and `audio` elements were unable to be played when the `media` plugin live embeds were enabled in some cases. #TINY-7674
        +- Pasting images would throw an exception if the clipboard `items` were not files (for example, screenshots taken from gnome-software). Patch contributed by cedric-anne. #TINY-8079
        +
        +### Deprecated
        +- Several APIs have been deprecated. See the release notes section for information. #TINY-8023 #TINY-8063
        +- Several Editor settings have been deprecated. See the release notes section for information. #TINY-8086
        +- The Table of Contents and Image Tools plugins will be classified as Premium plugins in the next major release. #TINY-8087
        +- Word support in the `paste` plugin has been deprecated and will be removed in the next major release. #TINY-8087
        +
        +## 5.9.2 - 2021-09-08
        +
        +### Fixed
        +- Fixed an exception getting thrown when disabling events and setting content. #TINY-7956
        +- Delete operations could behave incorrectly if the selection crossed a table boundary. #TINY-7596
        +
        +## 5.9.1 - 2021-08-27
        +
        +### Fixed
        +- Published TinyMCE types failed to compile in strict mode. #TINY-7915
        +- The `TableModified` event sometimes didn't fire when performing certain table actions. #TINY-7916
        +
        +## 5.9.0 - 2021-08-26
        +
        +### Added
        +- Added a new `mceFocus` command that focuses the editor. Equivalent to using `editor.focus()`. #TINY-7373
        +- Added a new `mceTableToggleClass` command which toggles the provided class on the currently selected table. #TINY-7476
        +- Added a new `mceTableCellToggleClass` command which toggles the provided class on the currently selected table cells. #TINY-7476
        +- Added a new `tablecellvalign` toolbar button and menu item for vertical table cell alignment. #TINY-7477
        +- Added a new `tablecellborderwidth` toolbar button and menu item to change table cell border width. #TINY-7478
        +- Added a new `tablecellborderstyle` toolbar button and menu item to change table cell border style. #TINY-7478
        +- Added a new `tablecaption` toolbar button and menu item to toggle captions on Tablas. #TINY-7479
        +- Added a new `mceTableToggleCaption` command that toggles captions on a selected table. #TINY-7479
        +- Added a new `tablerowheader` toolbar button and menu item to toggle the header state of row cells. #TINY-7478
        +- Added a new `tablecolheader` toolbar button and menu item to toggle the header state of column cells. #TINY-7482
        +- Added a new `tablecellbordercolor` toolbar button and menu item to select table cell border colors, with an accompanying setting `table_border_color_map` to customize the available values. #TINY-7480
        +- Added a new `tablecellbackgroundcolor` toolbar button and menu item to select table cell background colors, with an accompanying setting `table_background_color_map` to customize the available values. #TINY-7480
        +- Added a new `language` menu item and toolbar button to add `lang` attributes to content, with an accompanying `content_langs` setting to specify the languages available. #TINY-6149
        +- A new `lang` format is now available that can be used with `editor.formatter`, or applied with the `Lang` editor command. #TINY-6149
        +- Added a new `language` icon for the `language` toolbar button. #TINY-7670
        +- Added a new `table-row-numbering` icon. #TINY-7327
        +- Added new plugin commands: `mceEmoticons` (Emoticons), `mceWordCount` (Word Count), and `mceTemplate` (Template). #TINY-7619
        +- Added a new `iframe_aria_text` setting to set the iframe title attribute. #TINY-1264
        +- Added a new DomParser `Node.children()` API to return all the children of a `Node`. #TINY-7756
        +
        +### Improved
        +- Sticky toolbars can now be offset from the top of the page using the new `toolbar_sticky_offset` setting. #TINY-7337
        +- Fancy menu items now accept an `initData` property to allow custom initialization data. #TINY-7480
        +- Improved the load time of the `fullpage` plugin by using the existing editor schema rather than creating a new one. #TINY-6504
        +- Improved the performance when UI Componentes are rendered. #TINY-7572
        +- The context toolbar no longer unnecessarily repositions to the top of large elements when scrolling. #TINY-7545
        +- The context toolbar will now move out of the way when it overlaps with the selection, such as in table cells. #TINY-7192
        +- The context toolbar now uses a short animation when transitioning between different locations. #TINY-7740
        +- `Env.browser` now uses the User-Agent Client Hints API where it is available. #TINY-7785
        +- icons with a `-rtl` suffix in their name will now automatically be used when the UI is rendered in right-to-left mode. #TINY-7782
        +- The `formatter.match` API now accepts an optional `similar` parameter to check if the format partially matches. #TINY-7712
        +- The `formatter.formatChanged` API now supports providing format variables when listening for changes. #TINY-7713
        +- The formatter will now fire `FormatApply` and `FormatRemove` events for the relevant actions. #TINY-7713
        +- The `autolink` plugin link detection now permits custom protocols. #TINY-7714
        +- The `autolink` plugin valid link detection has been improved. #TINY-7714
        +
        +### Changed
        +- Changed the load order so content CSS is loaded before the editor is populated with content. #TINY-7249
        +- Changed the `emoticons`, `wordcount`, `code`, `codesample`, and `template` plugins to open dialogs using commands. #TINY-7619
        +- The context toolbar will no longer show an arrow when it overlaps the content, such as in table cells. #TINY-7665
        +- The context toolbar will no longer overlap the statusbar for toolbars using `node` or `selection` positions. #TINY-7666
        +
        +### Fixed
        +- The `editor.fire` API was incorrectly mutating the original `args` provided. #TINY-3254
        +- Unbinding an event handler did not take effect immediately while the event was firing. #TINY-7436
        +- Binding an event handler incorrectly took effect immediately while the event was firing. #TINY-7436
        +- Unbinding a native event handler inside the `remove` event caused an exception that blocked editor removal. #TINY-7730
        +- The `SetContent` event contained the incorrect `content` when using the `editor.selection.setContent()` API. #TINY-3254
        +- The editor content could be edited after calling `setProgressState(true)` in iframe mode. #TINY-7373
        +- Tabbing out of the editor after calling `setProgressState(true)` behaved inconsistently in iframe mode. #TINY-7373
        +- Flash of unstyled content while loading the editor because the content CSS was loaded after the editor content was rendered. #TINY-7249
        +- Partially transparent RGBA values provided in the `color_map` setting were given the wrong hex value. #TINY-7163
        +- HTML comments with mismatched quotes were parsed incorrectly under certain circumstances. #TINY-7589
        +- The editor could crash when inserting certain HTML content. #TINY-7756
        +- Inserting certain HTML content into the editor could result in invalid HTML once parsed. #TINY-7756
        +- Links in notification text did not show the correct mouse pointer. #TINY-7661
        +- Using the Tab key to navigate into the editor on Microsoft Internet Explorer 11 would incorrectly focus the toolbar. #TINY-3707
        +- The editor selection could be placed in an incorrect location when undoing or redoing changes in a document containing `contenteditable="false"` elements. #TINY-7663
        +- Menus and context menus were not closed when clicking into a different editor. #TINY-7399
        +- Context menus on Android were not displayed when more than one HTML element was selected. #TINY-7688
        +- Disabled nested menu items could still be opened. #TINY-7700
        +- The nested menu item chevron icon was not fading when the menu item was disabled. #TINY-7700
        +- `imagetools` buttons were incorrectly enabled for remote images without `imagetools_proxy` set. #TINY-7772
        +- Only table content would be deleted when partially selecting a table and content outside the table. #TINY-6044
        +- The table cell selection handling was incorrect in some cases when dealing with nested Tablas. #TINY-6298
        +- Removing a table row or column could result in the cursor getting placed in an invalid location. #TINY-7695
        +- Pressing the Tab key to navigate through table cells did not skip noneditable cells. #TINY-7705
        +- Clicking on a noneditable table cell did not show a visual selection like other noneditable elements. #TINY-7724
        +- Some table operations would incorrectly cause table row attributes and styles to be lost. #TINY-6666
        +- The selection was incorrectly lost when using the `mceTableCellType` and `mceTableRowType` commands. #TINY-6666
        +- The `mceTableRowType` was reversing the order of the rows when converting multiple header rows back to body rows. #TINY-6666
        +- The table dialog did not always respect the `table_style_with_css` option. #TINY-4926
        +- Pasting into a table with multiple cells selected could cause the content to be pasted in the wrong location. #TINY-7485
        +- The `TableModified` event was not fired when pasting cells into a table. #TINY-6939
        +- The table paste column before and after icons were not flipped in RTL mode. #TINY-7851
        +- Fixed table corruption when deleting a `contenteditable="false"` cell. #TINY-7891
        +- The `dir` attribute was being incorrectly applied to list items. #TINY-4589
        +- Applying selector formats would sometimes not apply the format correctly to elements in a list. #TINY-7393
        +- For formats that specify an attribute or style that should be removed, the formatter `match` API incorrectly returned `false`. #TINY-6149
        +- The type signature on the `formatter.matchNode` API had the wrong return type (was `boolean` but should have been `Formatter | undefined`). #TINY-6149
        +- The `formatter.formatChanged` API would ignore the `similar` parameter if another callback had already been Registroed for the same format. #TINY-7713
        +- The `formatter.formatChanged` API would sometimes not run the callback the first time the format was removed. #TINY-7713
        +- Base64 encoded images with spaces or line breaks in the data URI were not displayed correctly. Patch contributed by RoboBurned.
        +
        +### Deprecated
        +- The `bbcode`, `fullpage`, `legacyoutput`, and `spellchecker` plugins have been deprecated and marked for removal in the next major release. #TINY-7260
        +
        +## 5.8.2 - 2021-06-23
        +
        +### Fixed
        +- Fixed an issue when pasting cells from Tablas containing `colgroup`s into Tablas without `colgroup`s. #TINY-6675
        +- Fixed an issue that could cause an invalid toolbar button state when multiple inline editors were on a single page. #TINY-6297
        +
        +## 5.8.1 - 2021-05-20
        +
        +### Fixed
        +- An unexpected exception was thrown when switching to readonly mode and adjusting the editor width. #TINY-6383
        +- Content could be lost when the `pagebreak_split_block` setting was enabled. #TINY-3388
        +- The `list-style-type: none;` style on nested list items was incorrectly removed when clearing formatting. #TINY-6264
        +- URLs were not always detected when pasting over a selection. Patch contributed by jwcooper. #TINY-6997
        +- Properties on the `OpenNotification` event were incorrectly namespaced. #TINY-7486
        +
        +## 5.8.0 - 2021-05-06
        +
        +### Added
        +- Added the `PAGE_UP` and `PAGE_DOWN` key code constants to the `VK` API. #TINY-4612
        +- The editor resize handle can now be controlled using the keyboard. #TINY-4823
        +- Added a new `fixed_toolbar_container_target` setting which renders the toolbar in the specified `HTMLElement`. Patch contributed by pvrobays.
        +
        +### Improved
        +- The `inline_boundaries` feature now supports the `home`, `end`, `pageup`, and `pagedown` keys. #TINY-4612
        +- Updated the `formatter.matchFormat` API to support matching formats with variables in the `classes` property. #TINY-7227
        +- Added HTML5 `audio` and `video` elements to the default alignment formats. #TINY-6633
        +- Added support for alpha list numbering to the list properties dialog. #TINY-6891
        +
        +### Changed
        +- Updated the `image` dialog to display the class list dropdown as full-width if the caption checkbox is not present. #TINY-6400
        +- Renamed the "H Align" and "V Align" input labels in the Table Cell Properties dialog to "Horizontal align" and "Vertical align" respectively. #TINY-7285
        +
        +### Deprecated
        +- The undocumented `seticonstroke` Split Toolbar Button API has been deprecated and will be removed in a future release. #TINY-3551
        +
        +### Fixed
        +- Fixed a bug where it wasn't possible to align nested list items. #TINY-6567
        +- The RGB fields in the color picker dialog were not staying in sync with the color palette and hue slider. #TINY-6952
        +- The color preview box in the color picker dialog was not correctly displaying the saturation and value of the chosen color. #TINY-6952
        +- The color picker dialog will now show an alert if it is submitted with an invalid hex color code. #TINY-2814
        +- Fixed a bug where the `TableModified` event was not fired when adding a table row with the Tab key. #TINY-7006
        +- Added missing `images_file_types` setting to the exported TypeScript types. #GH-6607
        +- Fixed a bug where lists pasted from Word with Roman numeral markers were not displayed correctly. Patch contributed by aautio. #GH-6620
        +- The `editor.insertContent` API was incorrectly handling nested `span` elements with matching styles. #TINY-6263
        +- The HTML5 `small` element could not be removed when clearing text formatting. #TINY-6633
        +- The Oxide button text transform variable was incorrectly using `capitalize` instead of `none`. Patch contributed by dakur. #GH-6341
        +- Fix dialog button text that was using title-style capitalization. #TINY-6816
        +- Table plugin could perform operations on Tablas containing the inline editor. #TINY-6625
        +- Fixed Tab key navigation inside table cells with a ranged selection. #TINY-6638
        +- The foreground and background toolbar button color indicator is no longer blurry. #TINY-3551
        +- Fixed a regression in the `tinymce.create()` API that caused issues when multiple objects were created. #TINY-7358
        +- Fixed the `LineHeight` command causing the `change` event to be fired inconsistently. #TINY-7048
        +
        +## 5.7.1 - 2021-03-17
        +
        +### Fixed
        +- Fixed the `help` dialog incorrectly linking to the changelog of TinyMCE 4 instead of TinyMCE 5. #TINY-7031
        +- Fixed a bug where error messages were displayed incorrectly in the image dialog. #TINY-7099
        +- Fixed an issue where URLs were not correctly filtered in some cases. #TINY-7025
        +- Fixed a bug where context menu items with names that contained uppercase characters were not displayed. #TINY-7072
        +- Fixed context menu items lacking support for the `disabled` and `shortcut` properties. #TINY-7073
        +- Fixed a regression where the width and height were incorrectly set when embedding content using the `media` dialog. #TINY-7074
        +
        +## 5.7.0 - 2021-02-10
        +
        +### Added
        +- Added IPv6 address support to the URI API. Patch contributed by dev7355608. #GH-4409
        +- Added new `structure` and `style` properties to the `TableModified` event to indicate what kinds of modifications were made. #TINY-6643
        +- Added `video` and `audio` live embed support for the `media` plugin. #TINY-6229
        +- Added the ability to resize `video` and `iframe` media elements. #TINY-6229
        +- Added a new `font_css` setting for adding fonts to both the editor and the parent document. #TINY-6199
        +- Added a new `ImageUploader` API to simplify uploading image data to the configured `images_upload_url` or `images_upload_handler`. #TINY-4601
        +- Added an Oxide variable to define the container background color in fullscreen mode. #TINY-6903
        +- Added Oxide variables for setting the toolbar background colors for inline and sticky toolbars. #TINY-6009
        +- Added a new `AfterProgressState` event that is fired after `editor.setProgressState` calls complete. #TINY-6686
        +- Added support for `table_column_resizing` when inserting or deleting columns. #TINY-6711
        +
        +### Changed
        +- Changed table and table column copy behavior to retain an appropriate width when pasted. #TINY-6664
        +- Changed the `lists` plugin to apply list styles to all text blocks within a selection. #TINY-3755
        +- Changed the `advlist` plugin to log a console error message when the `list` plugin isn't enabled. #TINY-6585
        +- Changed the z-index of the `setProgressState(true)` throbber so it does not hide notifications. #TINY-6686
        +- Changed the type signature for `editor.selection.getRng()` incorrectly returning `null`. #TINY-6843
        +- Changed some `SaxParser` regular expressions to improve performance. #TINY-6823
        +- Changed `editor.setProgressState(true)` to close any open popups. #TINY-6686
        +
        +### Fixed
        +- Fixed `codesample` highlighting performance issues for some languages. #TINY-6996
        +- Fixed an issue where cell widths were lost when merging table cells. #TINY-6901
        +- Fixed `col` elements incorrectly transformed to `th` elements when converting columns to header columns. #TINY-6715
        +- Fixed a number of table operations not working when selecting 2 table cells on Mozilla Firefox. #TINY-3897
        +- Fixed a memory leak by backporting an upstream Sizzle fix. #TINY-6859
        +- Fixed table `width` style was removed when copying. #TINY-6664
        +- Fixed focus lost while typing in the `charmap` or `emoticons` dialogs when the editor is rendered in a shadow root. #TINY-6904
        +- Fixed corruption of base64 URLs used in style attributes when parsing HTML. #TINY-6828
        +- Fixed the order of CSS precedence of `content_style` and `content_css` in the `preview` and `template` plugins. `content_style` now has precedence. #TINY-6529
        +- Fixed an issue where the image dialog tried to calculate image dimensions for an empty image URL. #TINY-6611
        +- Fixed an issue where `scope` attributes on table cells would not change as expected when merging or unmerging cells. #TINY-6486
        +- Fixed the plugin documentation links in the `help` plugin. #DOC-703
        +- Fixed events bound using `DOMUtils` not returning the correct result for `isDefaultPrevented` in some cases. #TINY-6834
        +- Fixed the "Dropped file type is not supported" notification incorrectly showing when using an inline editor. #TINY-6834
        +- Fixed an issue with external styles bleeding into TinyMCE. #TINY-6735
        +- Fixed an issue where parsing malformed comments could cause an infinite loop. #TINY-6864
        +- Fixed incorrect return types on `editor.selection.moveToBookmark`. #TINY-6504
        +- Fixed the type signature for `editor.selection.setCursorLocation()` incorrectly allowing a node with no `offset`. #TINY-6843
        +- Fixed incorrect behavior when editor is destroyed while loading stylesheets. #INT-2282
        +- Fixed figure elements incorrectly splitting from a valid parent element when editing the image within. #TINY-6592
        +- Fixed inserting multiple rows or columns in a table cloning from the incorrect source row or column. #TINY-6906
        +- Fixed an issue where new lines were not scrolled into view when pressing Shift+Enter or Shift+Return. #TINY-6964
        +- Fixed an issue where list elements would not be removed when outdenting using the Enter or Return key. #TINY-5974
        +- Fixed an issue where file extensions with uppercase characters were treated as invalid. #TINY-6940
        +- Fixed dialog block messages were not passed through TinyMCE's translation system. #TINY-6971
        +
        +## 5.6.2 - 2020-12-08
        +
        +### Fixed
        +- Fixed a UI rendering regression when the document body is using `display: flex`. #TINY-6783
        +
        +## 5.6.1 - 2020-11-25
        +
        +### Fixed
        +- Fixed the `mceTableRowType` and `mceTableCellType` commands were not firing the `newCell` event. #TINY-6692
        +- Fixed the HTML5 `s` element was not recognized when editing or clearing text formatting. #TINY-6681
        +- Fixed an issue where copying and pasting table columns resulted in invalid HTML when using colgroups. #TINY-6684
        +- Fixed an issue where the toolbar would render with the wrong width for inline editors in some situations. #TINY-6683
        +
        +## 5.6.0 - 2020-11-18
        +
        +### Added
        +- Added new `BeforeOpenNotification` and `OpenNotification` events which allow internal notifications to be captured and modified before display. #TINY-6528
        +- Added support for `block` and `unblock` methods on inline dialogs. #TINY-6487
        +- Added new `TableModified` event which is fired whenever changes are made to a table. #TINY-6629
        +- Added new `images_file_types` setting to determine which image file formats will be automatically processed into `img` tags on paste when using the `paste` plugin. #TINY-6306
        +- Added support for `images_file_types` setting in the image file uploader to determine which image file extensions are valid for upload. #TINY-6224
        +- Added new `format_empty_lines` setting to control if empty lines are formatted in a ranged selection. #TINY-6483
        +- Added template support to the `autocompleter` for customizing the autocompleter items. #TINY-6505
        +- Added new user interface `enable`, `disable`, and `isDisabled` methods. #TINY-6397
        +- Added new `closest` formatter API to get the closest matching selection format from a set of formats. #TINY-6479
        +- Added new `emojiimages` emoticons database that uses the twemoji CDN by default. #TINY-6021
        +- Added new `emoticons_database` setting to configure which emoji database to use. #TINY-6021
        +- Added new `name` field to the `style_formats` setting object to enable specifying a name for the format. #TINY-4239
        +
        +### Changed
        +- Changed `readonly` mode to allow hyperlinks to be clickable. #TINY-6248
        +
        +### Fixed
        +- Fixed the `change` event not firing after a successful image upload. #TINY-6586
        +- Fixed the type signature for the `entity_encoding` setting not accepting delimited lists. #TINY-6648
        +- Fixed layout issues when empty `tr` elements were incorrectly removed from Tablas. #TINY-4679
        +- Fixed image file extensions lost when uploading an image with an alternative extension, such as `.jfif`. #TINY-6622
        +- Fixed a security issue where URLs in attributes weren't correctly sanitized. #TINY-6518
        +- Fixed `DOMUtils.getParents` incorrectly including the shadow root in the array of elements returned. #TINY-6540
        +- Fixed an issue where the root document could be scrolled while an editor dialog was open inside a shadow root. #TINY-6363
        +- Fixed `getContent` with text format returning a new line when the editor is empty. #TINY-6281
        +- Fixed table column and row resizers not respecting the `data-mce-resize` attribute. #TINY-6600
        +- Fixed inserting a table via the `mceInsertTable` command incorrectly creating 2 undo levels. #TINY-6656
        +- Fixed nested Tablas with `colgroup` elements incorrectly always resizing the inner table. #TINY-6623
        +- Fixed the `visualchars` plugin causing the editor to steal focus when initialized. #TINY-6282
        +- Fixed `fullpage` plugin altering text content in `editor.getContent()`. #TINY-6541
        +- Fixed `fullscreen` plugin not working correctly with multiple editors and shadow DOM. #TINY-6280
        +- Fixed font size keywords such as `medium` not displaying correctly in font size menus. #TINY-6291
        +- Fixed an issue where some attributes in table cells were not copied over to new rows or columns. #TINY-6485
        +- Fixed incorrectly removing formatting on adjacent spaces when removing formatting on a ranged selection. #TINY-6268
        +- Fixed the `Cut` menu item not working in the latest version of Mozilla Firefox. #TINY-6615
        +- Fixed some incorrect types in the new TypeScript declaration file. #TINY-6413
        +- Fixed a regression where a fake offscreen selection element was incorrectly created for the editor root node. #TINY-6555
        +- Fixed an issue where menus would incorrectly collapse in small containers. #TINY-3321
        +- Fixed an issue where only one table column at a time could be converted to a header. #TINY-6326
        +- Fixed some minor memory leaks that prevented garbage collection for editor instances. #TINY-6570
        +- Fixed resizing a `responsive` table not working when using the column resize handles. #TINY-6601
        +- Fixed incorrectly calculating table `col` widths when resizing responsive Tablas. #TINY-6646
        +- Fixed an issue where spaces were not preserved in pre-blocks when getting text content. #TINY-6448
        +- Fixed a regression that caused the selection to be difficult to see in Tablas with backgrounds. #TINY-6495
        +- Fixed content pasted multiple times in the editor when using Microsoft Internet Explorer 11. Patch contributed by mattford. #GH-4905
        +
        +## 5.5.1 - 2020-10-01
        +
        +### Fixed
        +- Fixed pressing the down key near the end of a document incorrectly raising an exception. #TINY-6471
        +- Fixed incorrect Typescript types for the `Tools` API. #TINY-6475
        +
        +## 5.5.0 - 2020-09-29
        +
        +### Added
        +- Added a TypeScript declaration file to the bundle output for TinyMCE core. #TINY-3785
        +- Added new `table_column_resizing` setting to control how table columns are resized when using the resize bars. #TINY-6001
        +- Added the ability to remove images on a failed upload using the `images_upload_handler` failure callback. #TINY-6011
        +- Added `hasPlugin` function to the editor API to determine if a plugin exists or not. #TINY-766
        +- Added new `ToggleToolbarDrawer` command and query state handler to allow the toolbar drawer to be programmatically toggled and the toggle state to be checked. #TINY-6032
        +- Added the ability to use `colgroup` elements in Tablas. #TINY-6050
        +- Added a new setting `table_use_colgroups` for toggling whether colgroups are used in new Tablas. #TINY-6050
        +- Added the ability to delete and navigate HTML media elements without the `media` plugin. #TINY-4211
        +- Added `fullscreen_native` setting to the `fullscreen` plugin to enable use of the entire monitor. #TINY-6284
        +- Added table related oxide variables to the Style API for more granular control over table cell selection appearance. #TINY-6311
        +- Added new `toolbar_persist` setting to control the visibility of the inline toolbar. #TINY-4847
        +- Added new APIs to allow for programmatic control of the inline toolbar visibility. #TINY-4847
        +- Added the `origin` property to the `ObjectResized` and `ObjectResizeStart` events, to specify which handle the resize was performed on. #TINY-6242
        +- Added new StyleSheetLoader `unload` and `unloadAll` APIs to allow loaded stylesheets to be removed. #TINY-3926
        +- Added the `LineHeight` query command and action to the editor. #TINY-4843
        +- Added the `lineheight` toolbar and menu items, and added `lineheight` to the default format menu. #TINY-4843
        +- Added a new `contextmenu_avoid_overlap` setting to allow context menus to avoid overlapping matched nodes. #TINY-6036
        +- Added new listbox dialog UI component for rendering a dropdown that allows nested options. #TINY-2236
        +- Added back the ability to use nested items in the `image_class_list`, `link_class_list`, `link_list`, `table_class_list`, `table_cell_class_list`, and `table_row_class_list` settings. #TINY-2236
        +
        +### Changed
        +- Changed how CSS manipulates table cells when selecting multiple cells to achieve a semi-transparent selection. #TINY-6311
        +- Changed the `target` property on fired events to use the native event target. The original target for an open shadow root can be obtained using `event.getComposedPath()`. #TINY-6128
        +- Changed the editor to clean-up loaded CSS stylesheets when all editors using the stylesheet have been removed. #TINY-3926
        +- Changed `imagetools` context menu icon for accessing the `image` dialog to use the `image` icon. #TINY-4141
        +- Changed the `editor.insertContent()` and `editor.selection.setContent()` APIs to retain leading and trailing whitespace. #TINY-5966
        +- Changed the `table` plugin `Column` menu to include the cut, copy and paste column menu items. #TINY-6374
        +- Changed the default table styles in the content CSS files to better support the styling options available in the `table` dialog. #TINY-6179
        +
        +### Deprecated
        +- Deprecated the `Env.experimentalShadowDom` flag. #TINY-6128
        +
        +### Fixed
        +- Fixed Tablas with no borders displaying with the default border styles in the `preview` dialog. #TINY-6179
        +- Fixed loss of whitespace when inserting content after a non-breaking space. #TINY-5966
        +- Fixed the `event.getComposedPath()` function throwing an exception for events fired from the editor. #TINY-6128
        +- Fixed notifications not appearing when the editor is within a ShadowRoot. #TINY-6354
        +- Fixed focus issues with inline dialogs when the editor is within a ShadowRoot. #TINY-6360
        +- Fixed the `template` plugin previews missing some content styles. #TINY-6115
        +- Fixed the `media` plugin not saving the alternative source url in some situations. #TINY-4113
        +- Fixed an issue where column resizing using the resize bars was inconsistent between fixed and relative table widths. #TINY-6001
        +- Fixed an issue where dragging and dropping within a table would select table cells. #TINY-5950
        +- Fixed up and down keyboard navigation not working for inline `contenteditable="false"` elements. #TINY-6226
        +- Fixed dialog not retrieving `close` icon from icon pack. #TINY-6445
        +- Fixed the `unlink` toolbar button not working when selecting multiple links. #TINY-4867
        +- Fixed the `link` dialog not showing the "Text to display" field in some valid cases. #TINY-5205
        +- Fixed the `DOMUtils.split()` API incorrectly removing some content. #TINY-6294
        +- Fixed pressing the escape key not focusing the editor when using multiple toolbars. #TINY-6230
        +- Fixed the `dirty` flag not being correctly set during an `AddUndo` event. #TINY-4707
        +- Fixed `editor.selection.setCursorLocation` incorrectly placing the cursor outside `pre` elements in some circumstances. #TINY-4058
        +- Fixed an exception being thrown when pressing the enter key inside pre elements while `br_in_pre` setting is false. #TINY-4058
        +
        +## 5.4.2 - 2020-08-17
        +
        +### Fixed
        +- Fixed the editor not resizing when resizing the browser window in fullscreen mode. #TINY-3511
        +- Fixed clicking on notifications causing inline editors to hide. #TINY-6058
        +- Fixed an issue where link URLs could not be deleted or edited in the link dialog in some cases. #TINY-4706
        +- Fixed a regression where setting the `anchor_top` or `anchor_bottom` options to `false` was not working. #TINY-6256
        +- Fixed the `anchor` plugin not supporting the `allow_html_in_named_anchor` option. #TINY-6236
        +- Fixed an exception thrown when removing inline formats that contained additional styles or classes. #TINY-6288
        +- Fixed an exception thrown when positioning the context toolbar on Internet Explorer 11 in some edge cases. #TINY-6271
        +- Fixed inline formats not removed when more than one `removeformat` format rule existed. #TINY-6216
        +- Fixed an issue where spaces were sometimes removed when removing formating on nearby text. #TINY-6251
        +- Fixed the list toolbar buttons not showing as active when a list is selected. #TINY-6286
        +- Fixed an issue where the UI would sometimes not be shown or hidden when calling the show or hide API methods on the editor. #TINY-6048
        +- Fixed the list type style not retained when copying list items. #TINY-6289
        +- Fixed the Paste plugin converting tabs in plain text to a single space character. A `paste_tab_spaces` option has been included for setting the number of spaces used to replace a tab character. #TINY-6237
        +
        +## 5.4.1 - 2020-07-08
        +
        +### Fixed
        +- Fixed the Buscar and Replace plugin incorrectly including zero-width caret characters in Buscar results. #TINY-4599
        +- Fixed dragging and dropping unsupported files navigating the browser away from the editor. #TINY-6027
        +- Fixed undo levels not created on browser handled drop or paste events. #TINY-6027
        +- Fixed content in an iframe element parsing as DOM elements instead of text content. #TINY-5943
        +- Fixed Oxide checklist styles not showing when printing. #TINY-5139
        +- Fixed bug with `scope` attribute not being added to the cells of header rows. #TINY-6206
        +
        +## 5.4.0 - 2020-06-30
        +
        +### Added
        +- Added keyboard navigation support to menus and toolbars when the editor is in a ShadowRoot. #TINY-6152
        +- Added the ability for menus to be clicked when the editor is in an open shadow root. #TINY-6091
        +- Added the `Editor.ui.styleSheetLoader` API for loading stylesheets within the Document or ShadowRoot containing the editor UI. #TINY-6089
        +- Added the `StyleSheetLoader` module to the public API. #TINY-6100
        +- Added Oxide variables for styling the `select` element and headings in dialog content. #TINY-6070
        +- Added icons for `table` column and row cut, copy, and paste toolbar buttons. #TINY-6062
        +- Added all `table` menu items to the UI registry, so they can be used by name in other menus. #TINY-4866
        +- Added new `mceTableApplyCellStyle` command to the `table` plugin. #TINY-6004
        +- Added new `table` cut, copy, and paste column editor commands and menu items. #TINY-6006
        +- Added font related Oxide variables for secondary buttons, allowing for custom styling. #TINY-6061
        +- Added new `table_header_type` setting to control how table header rows are structured. #TINY-6007
        +- Added new `table_sizing_mode` setting to replace the `table_responsive_width` setting, which has now been deprecated. #TINY-6051
        +- Added new `mceTablasizingMode` command for changing the sizing mode of a table. #TINY-6000
        +- Added new `mceTableRowType`, `mceTableColType`, and `mceTableCellType` commands and value queries. #TINY-6150
        +
        +### Changed
        +- Changed `advlist` toolbar buttons to only show a dropdown list if there is more than one option. #TINY-3194
        +- Changed `mceInsertTable` command and `insertTable` API method to take optional header rows and columns arguments. #TINY-6012
        +- Changed stylesheet loading, so that UI skin stylesheets can load in a ShadowRoot if required. #TINY-6089
        +- Changed the DOM location of menus so that they display correctly when the editor is in a ShadowRoot. #TINY-6093
        +- Changed the table plugin to correctly detect all valid header row structures. #TINY-6007
        +
        +### Fixed
        +- Fixed Tablas with no defined width being converted to a `fixed` width table when modifying the table. #TINY-6051
        +- Fixed the `autosave` `isEmpty` API incorrectly detecting non-empty content as empty. #TINY-5953
        +- Fixed table `Paste row after` and `Paste row before` menu items not disabled when nothing was available to paste. #TINY-6006
        +- Fixed a selection performance issue with large Tablas on Microsoft Internet Explorer and Edge. #TINY-6057
        +- Fixed filters for screening commands from the undo stack to be case-insensitive. #TINY-5946
        +- Fixed `fullscreen` plugin now removes all classes when the editor is closed. #TINY-4048
        +- Fixed handling of mixed-case icon identifiers (names) for UI elements. #TINY-3854
        +- Fixed leading and trailing spaces lost when using `editor.selection.getContent({ format: 'text' })`. #TINY-5986
        +- Fixed an issue where changing the URL with the quicklink toolbar caused unexpected undo behavior. #TINY-5952
        +- Fixed an issue where removing formatting within a table cell would cause Internet Explorer 11 to scroll to the end of the table. #TINY-6049
        +- Fixed an issue where the `allow_html_data_urls` setting was not correctly applied. #TINY-5951
        +- Fixed the `autolink` feature so that it no longer treats a string with multiple "@" characters as an email address. #TINY-4773
        +- Fixed an issue where removing the editor would leave unexpected attributes on the target element. #TINY-4001
        +- Fixed the `link` plugin now suggest `mailto:` when the text contains an '@' and no slashes (`/`). #TINY-5941
        +- Fixed the `valid_children` check of custom elements now allows a wider range of characters in names. #TINY-5971
        +
        +## 5.3.2 - 2020-06-10
        +
        +### Fixed
        +- Fixed a regression introduced in 5.3.0, where `images_dataimg_filter` was no-longer called. #TINY-6086
        +
        +## 5.3.1 - 2020-05-27
        +
        +### Fixed
        +- Fixed the image upload error alert also incorrectly closing the image dialog. #TINY-6020
        +- Fixed editor content scrolling incorrectly on focus in Firefox by reverting default content CSS html and body heights added in 5.3.0. #TINY-6019
        +
        +## 5.3.0 - 2020-05-21
        +
        +### Added
        +- Added html and body height styles to the default oxide content CSS. #TINY-5978
        +- Added `uploadUri` and `blobInfo` to the data returned by `editor.uploadImages()`. #TINY-4579
        +- Added a new function to the `BlobCache` API to lookup a blob based on the base64 data and mime type. #TINY-5988
        +- Added the ability to Buscar and replace within a selection. #TINY-4549
        +- Added the ability to set the list start position for ordered lists and added new `lists` context menu item. #TINY-3915
        +- Added `icon` as an optional config option to the toggle menu item API. #TINY-3345
        +- Added `auto` mode for `toolbar_location` which positions the toolbar and menu bar at the bottom if there is no space at the top. #TINY-3161
        +
        +### Changed
        +- Changed the default `toolbar_location` to `auto`. #TINY-3161
        +- Changed toggle menu items and choice menu items to have a dedicated icon with the checkmark displayed on the far right side of the menu item. #TINY-3345
        +- Changed the `link`, `image`, and `paste` plugins to use Promises to reduce the bundle size. #TINY-4710
        +- Changed the default icons to be lazy loaded during initialization. #TINY-4729
        +- Changed the parsing of content so base64 encoded urls are converted to blob urls. #TINY-4727
        +- Changed context toolbars so they concatenate when more than one is suitable for the current selection. #TINY-4495
        +- Changed inline style element formats (strong, b, em, i, u, strike) to convert to a span on format removal if a `style` or `class` attribute is present. #TINY-4741
        +
        +### Fixed
        +- Fixed the `selection.setContent()` API not running parser filters. #TINY-4002
        +- Fixed formats incorrectly applied or removed when table cells were selected. #TINY-4709
        +- Fixed the `quickimage` button not restricting the file types to images. #TINY-4715
        +- Fixed Buscar and replace ignoring text in nested contenteditable elements. #TINY-5967
        +- Fixed resize handlers displaying in the wrong location sometimes for remote images. #TINY-4732
        +- Fixed table picker breaking in Firefox on low zoom levels. #TINY-4728
        +- Fixed issue with loading or pasting contents with large base64 encoded images on Safari. #TINY-4715
        +- Fixed supplementary special characters being truncated when inserted into the editor. Patch contributed by mlitwin. #TINY-4791
        +- Fixed toolbar buttons not set to disabled when the editor is in readonly mode. #TINY-4592
        +- Fixed the editor selection incorrectly changing when removing caret format containers. #TINY-3438
        +- Fixed bug where title, width, and height would be set to empty string values when updating an image and removing those attributes using the image dialog. #TINY-4786
        +- Fixed `ObjectResized` event firing when an object wasn't resized. #TINY-4161
        +- Fixed `ObjectResized` and `ObjectResizeStart` events incorrectly fired when adding or removing table rows and columns. #TINY-4829
        +- Fixed the placeholder not hiding when pasting content into the editor. #TINY-4828
        +- Fixed an issue where the editor would fail to load if local storage was disabled. #TINY-5935
        +- Fixed an issue where an uploaded image would reuse a cached image with a different mime type. #TINY-5988
        +- Fixed bug where toolbars and dialogs would not show if the body element was replaced (e.g. with Turbolinks). Patch contributed by spohlenz. #GH-5653
        +- Fixed an issue where multiple formats would be removed when removing a single format at the end of lines or on empty lines. #TINY-1170
        +- Fixed zero-width spaces incorrectly included in the `wordcount` plugin character count. #TINY-5991
        +- Fixed a regression introduced in 5.2.0 whereby the desktop `toolbar_mode` setting would incorrectly override the mobile default setting. #TINY-5998
        +- Fixed an issue where deleting all content in a single cell table would delete the entire table. #TINY-1044
        +
        +## 5.2.2 - 2020-04-23
        +
        +### Fixed
        +- Fixed an issue where anchors could not be inserted on empty lines. #TINY-2788
        +- Fixed text decorations (underline, strikethrough) not consistently inheriting the text color. #TINY-4757
        +- Fixed `format` menu alignment buttons inconsistently applying to images. #TINY-4057
        +- Fixed the floating toolbar drawer height collapsing when the editor is rendered in modal dialogs or floating containers. #TINY-4837
        +- Fixed `media` embed content not processing safely in some cases. #TINY-4857
        +
        +## 5.2.1 - 2020-03-25
        +
        +### Fixed
        +- Fixed the "is decorative" checkbox in the image dialog clearing after certain dialog events. #FOAM-11
        +- Fixed possible uncaught exception when a `style` attribute is removed using a content filter on `setContent`. #TINY-4742
        +- Fixed the table selection not functioning correctly in Microsoft Edge 44 or higher. #TINY-3862
        +- Fixed the table resize handles not functioning correctly in Microsoft Edge 44 or higher. #TINY-4160
        +- Fixed the floating toolbar drawer disconnecting from the toolbar when adding content in inline mode. #TINY-4725 #TINY-4765
        +- Fixed `readonly` mode not returning the appropriate boolean value. #TINY-3948
        +- Fixed the `forced_root_block_attrs` setting not applying attributes to new blocks consistently. #TINY-4564
        +- Fixed the editor incorrectly stealing focus during initialization in Microsoft Internet Explorer. #TINY-4697
        +- Fixed dialogs stealing focus when opening an alert or confirm dialog using an `onAction` callback. #TINY-4014
        +- Fixed inline dialogs incorrectly closing when clicking on an opened alert or confirm dialog. #TINY-4012
        +- Fixed the context toolbar overlapping the menu bar and toolbar. #TINY-4586
        +- Fixed notification and inline dialog positioning issues when using `toolbar_location: 'bottom'`. #TINY-4586
        +- Fixed the `colorinput` popup appearing offscreen on mobile devices. #TINY-4711
        +- Fixed special characters not being found when Buscaring by "whole words only". #TINY-4522
        +- Fixed an issue where dragging images could cause them to be duplicated. #TINY-4195
        +- Fixed context toolbars activating without the editor having focus. #TINY-4754
        +- Fixed an issue where removing the background color of text did not always work. #TINY-4770
        +- Fixed an issue where new rows and columns in a table did not retain the style of the previous row or column. #TINY-4788
        +
        +## 5.2.0 - 2020-02-13
        +
        +### Added
        +- Added the ability to apply formats to spaces. #TINY-4200
        +- Added new `toolbar_location` setting to allow for positioning the menu and toolbar at the bottom of the editor. #TINY-4210
        +- Added new `toolbar_groups` setting to allow a custom floating toolbar group to be added to the toolbar when using `floating` toolbar mode. #TINY-4229
        +- Added new `link_default_protocol` setting to `link` and `autolink` plugin to allow a protocol to be used by default. #TINY-3328
        +- Added new `placeholder` setting to allow a placeholder to be shown when the editor is empty. #TINY-3917
        +- Added new `tinymce.dom.TextSeeker` API to allow Buscaring text across different DOM nodes. #TINY-4200
        +- Added a drop shadow below the toolbar while in sticky mode and introduced Oxide variables to customize it when creating a custom skin. #TINY-4343
        +- Added `quickbars_image_toolbar` setting to allow for the image quickbar to be turned off. #TINY-4398
        +- Added iframe and img `loading` attribute to the default schema. Patch contributed by ataylor32. #GH-5112
        +- Added new `getNodeFilters`/`getAttributeFilters` functions to the `editor.serializer` instance. #TINY-4344
        +- Added new `a11y_advanced_options` setting to allow additional accessibility options to be added. #FOAM-11
        +- Added new accessibility options and behaviours to the image dialog using `a11y_advanced_options`. #FOAM-11
        +- Added the ability to use the window `PrismJS` instance for the `codesample` plugin instead of the bundled version to allow for styling custom languages. #TINY-4504
        +- Added error message events that fire when a resource loading error occurs. #TINY-4509
        +
        +### Changed
        +- Changed the default schema to disallow `onchange` for select elements. #TINY-4614
        +- Changed default `toolbar_mode` value from false to `wrap`. The value false has been deprecated. #TINY-4617
        +- Changed `toolbar_drawer` setting to `toolbar_mode`. `toolbar_drawer` has been deprecated. #TINY-4416
        +- Changed iframe mode to set selection on content init if selection doesn't exist. #TINY-4139
        +- Changed table related icons to align them with the visual style of the other icons. #TINY-4341
        +- Changed and improved the visual appearance of the color input field. #TINY-2917
        +- Changed fake caret container to use `forced_root_block` when possible. #TINY-4190
        +- Changed the `requireLangPack` API to wait until the plugin has been loaded before loading the language pack. #TINY-3716
        +- Changed the formatter so `style_formats` are Registroed before the initial content is loaded into the editor. #TINY-4238
        +- Changed media plugin to use https protocol for media urls by default. #TINY-4577
        +- Changed the parser to treat CDATA nodes as bogus HTML comments to match the HTML parsing spec. A new `preserve_cdata` setting has been added to preserve CDATA nodes if required. #TINY-4625
        +
        +### Fixed
        +- Fixed incorrect parsing of malformed/bogus HTML comments. #TINY-4625
        +- Fixed `quickbars` selection toolbar appearing on non-editable elements. #TINY-4359
        +- Fixed bug with alignment toolbar buttons sometimes not changing state correctly. #TINY-4139
        +- Fixed the `codesample` toolbar button not toggling when selecting code samples other than HTML. #TINY-4504
        +- Fixed content incorrectly scrolling to the top or bottom when pressing enter if when the content was already in view. #TINY-4162
        +- Fixed `scrollIntoView` potentially hiding elements behind the toolbar. #TINY-4162
        +- Fixed editor not respecting the `resize_img_proportional` setting due to legacy code. #TINY-4236
        +- Fixed flickering floating toolbar drawer in inline mode. #TINY-4210
        +- Fixed an issue where the template plugin dialog would be indefinitely blocked on a failed template load. #TINY-2766
        +- Fixed the `mscontrolselect` event not being unbound on IE/Edge. #TINY-4196
        +- Fixed Confirm dialog footer buttons so only the "Yes" button is highlighted. #TINY-4310
        +- Fixed `file_picker_callback` functionality for Image, Link and Media plugins. #TINY-4163
        +- Fixed issue where floating toolbar drawer sometimes would break if the editor is resized while the drawer is open. #TINY-4439
        +- Fixed incorrect `external_plugins` loading error message. #TINY-4503
        +- Fixed resize handler was not hidden for ARIA purposes. Patch contributed by Parent5446. #GH-5195
        +- Fixed an issue where content could be lost if a misspelled word was selected and spellchecking was disabled. #TINY-3899
        +- Fixed validation errors in the CSS where certain properties had the wrong default value. #TINY-4491
        +- Fixed an issue where forced root block attributes were not applied when removing a list. #TINY-4272
        +- Fixed an issue where the element path isn't being cleared when there are no parents. #TINY-4412
        +- Fixed an issue where width and height in svg icons containing `rect` elements were overridden by the CSS reset. #TINY-4408
        +- Fixed an issue where uploading images with `images_reuse_filename` enabled and that included a query parameter would generate an invalid URL. #TINY-4638
        +- Fixed the `closeButton` property not working when opening notifications. #TINY-4674
        +- Fixed keyboard flicker when opening a context menu on mobile. #TINY-4540
        +- Fixed issue where plus icon svg contained strokes. #TINY-4681
        +
        +## 5.1.6 - 2020-01-28
        +
        +### Fixed
        +- Fixed `readonly` mode not blocking all clicked links. #TINY-4572
        +- Fixed legacy font sizes being calculated inconsistently for the `FontSize` query command value. #TINY-4555
        +- Fixed changing a Tablas row from `Header` to `Body` incorrectly moving the row to the bottom of the table. #TINY-4593
        +- Fixed the context menu not showing in certain cases with hybrid devices. #TINY-4569
        +- Fixed the context menu opening in the wrong location when the target is the editor body. #TINY-4568
        +- Fixed the `image` plugin not respecting the `automatic_uploads` setting when uploading local images. #TINY-4287
        +- Fixed security issue related to parsing HTML comments and CDATA. #TINY-4544
        +
        +## 5.1.5 - 2019-12-19
        +
        +### Fixed
        +- Fixed the UI not working with hybrid devices that accept both touch and mouse events. #TNY-4521
        +- Fixed the `charmap` dialog initially focusing the first tab of the dialog instead of the Buscar input field. #TINY-4342
        +- Fixed an exception being raised when inserting content if the caret was directly before or after a `contenteditable="false"` element. #TINY-4528
        +- Fixed a bug with pasting image URLs when paste as text is enabled. #TINY-4523
        +
        +## 5.1.4 - 2019-12-11
        +
        +### Fixed
        +- Fixed dialog contents disappearing when clicking a checkbox for right-to-left languages. #TINY-4518
        +- Fixed the `legacyoutput` plugin Registroing legacy formats after editor initialization, causing legacy content to be stripped on the initial load. #TINY-4447
        +- Fixed Buscar and replace not cycling through results when Buscaring using special characters. #TINY-4506
        +- Fixed the `visualchars` plugin converting HTML-like text to DOM elements in certain cases. #TINY-4507
        +- Fixed an issue with the `paste` plugin not sanitizing content in some cases. #TINY-4510
        +- Fixed HTML comments incorrectly being parsed in certain cases. #TINY-4511
        +
        +## 5.1.3 - 2019-12-04
        +
        +### Fixed
        +- Fixed sticky toolbar not undocking when fullscreen mode is activated. #TINY-4390
        +- Fixed the "Current Window" target not applying when updating links using the link dialog. #TINY-4063
        +- Fixed disabled menu items not highlighting when focused. #TINY-4339
        +- Fixed touch events passing through dialog collection items to the content underneath on Android devices. #TINY-4431
        +- Fixed keyboard navigation of the Help dialog's Keyboard Navigation tab. #TINY-4391
        +- Fixed Buscar and replace dialog disappearing when finding offscreen matches on iOS devices. #TINY-4350
        +- Fixed performance issues where sticky toolbar was jumping while scrolling on slower browsers. #TINY-4475
        +
        +## 5.1.2 - 2019-11-19
        +
        +### Fixed
        +- Fixed desktop touch devices using `mobile` configuration overrides. #TINY-4345
        +- Fixed unable to disable the new scrolling toolbar feature. #TINY-4345
        +- Fixed touch events passing through any pop-up items to the content underneath on Android devices. #TINY-4367
        +- Fixed the table selector handles throwing JavaScript exceptions for non-table selections. #TINY-4338
        +- Fixed `cut` operations not removing selected content on Android devices when the `paste` plugin is enabled. #TINY-4362
        +- Fixed inline toolbar not constrained to the window width by default. #TINY-4314
        +- Fixed context toolbar split button chevrons pointing right when they should be pointing down. #TINY-4257
        +- Fixed unable to access the dialog footer in tabbed dialogs on small screens. #TINY-4360
        +- Fixed mobile table selectors were hard to select with touch by increasing the size. #TINY-4366
        +- Fixed mobile table selectors moving when moving outside the editor. #TINY-4366
        +- Fixed inline toolbars collapsing when using sliding toolbars. #TINY-4389
        +- Fixed block textpatterns not treating NBSPs as spaces. #TINY-4378
        +- Fixed backspace not merging blocks when the last element in the preceding block was a `contenteditable="false"` element. #TINY-4235
        +- Fixed toolbar buttons that only contain text labels overlapping on mobile devices. #TINY-4395
        +- Fixed quickbars quickimage picker not working on mobile. #TINY-4377
        +- Fixed fullscreen not resizing in an iOS WKWebView component. #TINY-4413
        +
        +## 5.1.1 - 2019-10-28
        +
        +### Fixed
        +- Fixed font formats containing spaces being wrapped in `"` entities instead of single quotes. #TINY-4275
        +- Fixed alert and confirm dialogs losing focus when clicked. #TINY-4248
        +- Fixed clicking outside a modal dialog focusing on the document body. #TINY-4249
        +- Fixed the context toolbar not hiding when scrolled out of view. #TINY-4265
        +
        +## 5.1.0 - 2019-10-17
        +
        +### Added
        +- Added touch selector handles for table selections on touch devices. #TINY-4097
        +- Added border width field to Table Cell dialog. #TINY-4028
        +- Added touch event listener to media plugin to make embeds playable. #TINY-4093
        +- Added oxide styling options to notifications and tweaked the default variables. #TINY-4153
        +- Added additional padding to split button chevrons on touch devices, to make them easier to interact with. #TINY-4223
        +- Added new platform detection functions to `Env` and deprecated older detection properties. #TINY-4184
        +- Added `inputMode` config field to specify inputmode attribute of `input` dialog Componentes. #TINY-4062
        +- Added new `inputMode` property to relevant plugins/dialogs. #TINY-4102
        +- Added new `toolbar_sticky` setting to allow the iframe menubar/toolbar to stick to the top of the window when scrolling. #TINY-3982
        +
        +### Changed
        +- Changed default setting for `toolbar_drawer` to `floating`. #TINY-3634
        +- Changed mobile phones to use the `silver` theme by default. #TINY-3634
        +- Changed some editor settings to default to `false` on touch devices:
        +  - `menubar`(phones only). #TINY-4077
        +  - `table_grid`. #TINY-4075
        +  - `resize`. #TINY-4157
        +  - `object_resizing`. #TINY-4157
        +- Changed toolbars and context toolbars to sidescroll on mobile. #TINY-3894 #TINY-4107
        +- Changed context menus to render as horizontal menus on touch devices. #TINY-4107
        +- Changed the editor to use the `VisualViewport` API of the browser where possible. #TINY-4078
        +- Changed visualblocks toolbar button icon and renamed `paragraph` icon to `visualchars`. #TINY-4074
        +- Changed Oxide default for `@toolbar-button-chevron-color` to follow toolbar button icon color. #TINY-4153
        +- Changed the `urlinput` dialog component to use the `url` type attribute. #TINY-4102
        +
        +### Fixed
        +- Fixed Safari desktop visual viewport fires resize on fullscreen breaking the restore function. #TINY-3976
        +- Fixed scroll issues on mobile devices. #TINY-3976
        +- Fixed context toolbar unable to refresh position on iOS12. #TINY-4107
        +- Fixed ctrl+left click not opening links on readonly mode and the preview dialog. #TINY-4138
        +- Fixed Slider UI component not firing `onChange` event on touch devices. #TINY-4092
        +- Fixed notifications overlapping instead of stacking. #TINY-3478
        +- Fixed inline dialogs positioning incorrectly when the page is scrolled. #TINY-4018
        +- Fixed inline dialogs and menus not repositioning when resizing. #TINY-3227
        +- Fixed inline toolbar incorrectly stretching to the full width when a width value was provided. #TINY-4066
        +- Fixed menu chevrons color to follow the menu text color. #TINY-4153
        +- Fixed table menu selection grid from staying black when using dark skins, now follows border color. #TINY-4153
        +- Fixed Oxide using the wrong text color variable for menubar button focused state. #TINY-4146
        +- Fixed the autoresize plugin not keeping the selection in view when resizing. #TINY-4094
        +- Fixed textpattern plugin throwing exceptions when using `forced_root_block: false`. #TINY-4172
        +- Fixed missing CSS fill styles for toolbar button icon active state. #TINY-4147
        +- Fixed an issue where the editor selection could end up inside a short ended element (such as `br`). #TINY-3999
        +- Fixed browser selection being lost in inline mode when opening split dropdowns. #TINY-4197
        +- Fixed backspace throwing an exception when using `forced_root_block: false`. #TINY-4099
        +- Fixed floating toolbar drawer expanding outside the bounds of the editor. #TINY-3941
        +- Fixed the autocompleter not activating immediately after a `br` or `contenteditable=false` element. #TINY-4194
        +- Fixed an issue where the autocompleter would incorrectly close on IE 11 in certain edge cases. #TINY-4205
        +
        +## 5.0.16 - 2019-09-24
        +
        +### Added
        +- Added new `referrer_policy` setting to add the `referrerpolicy` attribute when loading scripts or stylesheets. #TINY-3978
        +- Added a slight background color to dialog tab links when focused to aid keyboard navigation. #TINY-3877
        +
        +### Fixed
        +- Fixed media poster value not updating on change. #TINY-4013
        +- Fixed openlink was not Registroed as a toolbar button. #TINY-4024
        +- Fixed failing to initialize if a script tag was used inside a SVG. #TINY-4087
        +- Fixed double top border showing on toolbar without menubar when toolbar_drawer is enabled. #TINY-4118
        +- Fixed unable to drag inline dialogs to the bottom of the screen when scrolled. #TINY-4154
        +- Fixed notifications appearing on top of the toolbar when scrolled in inline mode. #TINY-4159
        +- Fixed notifications displaying incorrectly on IE 11. #TINY-4169
        +
        +## 5.0.15 - 2019-09-02
        +
        +### Added
        +- Added a dark `content_css` skin to go with the dark UI skin. #TINY-3743
        +
        +### Changed
        +- Changed the enabled state on toolbar buttons so they don't get the hover effect. #TINY-3974
        +
        +### Fixed
        +- Fixed missing CSS active state on toolbar buttons. #TINY-3966
        +- Fixed `onChange` callback not firing for the colorinput dialog component. #TINY-3968
        +- Fixed context toolbars not showing in fullscreen mode. #TINY-4023
        +
        +## 5.0.14 - 2019-08-19
        +
        +### Added
        +- Added an API to reload the autocompleter menu with additional fetch metadata #MENTIONS-17
        +
        +### Fixed
        +- Fixed missing toolbar button border styling options. #TINY-3965
        +- Fixed image upload progress notification closing before the upload is complete. #TINY-3963
        +- Fixed inline dialogs not closing on escape when no dialog component is in focus. #TINY-3936
        +- Fixed plugins not being filtered when defaulting to mobile on phones. #TINY-3537
        +- Fixed toolbar more drawer showing the content behind it when transitioning between opened and closed states. #TINY-3878
        +- Fixed focus not returning to the dialog after pressing the "Replace all" button in the Buscar and replace dialog. #TINY-3961
        +
        +### Removed
        +- Removed Oxide variable `@menubar-select-disabled-border-color` and replaced it with `@menubar-select-disabled-border`. #TINY-3965
        +
        +## 5.0.13 - 2019-08-06
        +
        +### Changed
        +- Changed modal dialogs to prevent dragging by default and added new `draggable_modal` setting to restore dragging. #TINY-3873
        +- Changed the nonbreaking plugin to insert nbsp characters wrapped in spans to aid in filtering. This can be disabled using the `nonbreaking_wrap` setting. #TINY-3647
        +- Changed backspace behaviour in lists to outdent nested list items when the cursor is at the start of the list item. #TINY-3651
        +
        +### Fixed
        +- Fixed sidebar growing beyond editor bounds in IE 11. #TINY-3937
        +- Fixed issue with being unable to keyboard navigate disabled toolbar buttons. #TINY-3350
        +- Fixed issues with backspace and delete in nested contenteditable true and false elements. #TINY-3868
        +- Fixed issue with losing keyboard navigation in dialogs due to disabled buttons. #TINY-3914
        +- Fixed `MouseEvent.mozPressure is deprecated` warning in Firefox. #TINY-3919
        +- Fixed `default_link_target` not being respected when `target_list` is disabled. #TINY-3757
        +- Fixed mobile plugin filter to only apply to the mobile theme, rather than all mobile platFormularios. #TINY-3405
        +- Fixed focus switching to another editor during mode changes. #TINY-3852
        +- Fixed an exception being thrown when clicking on an uninitialized inline editor. #TINY-3925
        +- Fixed unable to keyboard navigate to dialog menu buttons. #TINY-3933
        +- Fixed dialogs being able to be dragged outside the window viewport. #TINY-3787
        +- Fixed inline dialogs appearing above modal dialogs. #TINY-3932
        +
        +## 5.0.12 - 2019-07-18
        +
        +### Added
        +- Added ability to utilize UI dialog panels inside other panels. #TINY-3305
        +- Added help dialog tab explaining keyboard navigation of the editor. #TINY-3603
        +
        +### Changed
        +- Changed the "Find and Replace" design to an inline dialog. #TINY-3054
        +
        +### Fixed
        +- Fixed issue where autolink spacebar event was not being fired on Edge. #TINY-3891
        +- Fixed table selection missing the background color. #TINY-3892
        +- Fixed removing shortcuts not working for function keys. #TINY-3871
        +- Fixed non-descriptive UI component type names. #TINY-3349
        +- Fixed UI registry Componentes rendering as the wrong type when manually specifying a different type. #TINY-3385
        +- Fixed an issue where dialog checkbox, input, selectbox, textarea and urlinput Componentes couldn't be disabled. #TINY-3708
        +- Fixed the context toolbar not using viable screen space in inline/distraction free mode. #TINY-3717
        +- Fixed the context toolbar overlapping the toolbar in various conditions. #TINY-3205
        +- Fixed IE11 edge case where items were being inserted into the wrong location. #TINY-3884
        +
        +## 5.0.11 - 2019-07-04
        +
        +### Fixed
        +- Fixed packaging errors caused by a rollup treeshaking bug (https://github.com/rollup/rollup/issues/2970). #TINY-3866
        +- Fixed the customeditor component not able to get data from the dialog api. #TINY-3866
        +- Fixed collection component tooltips not being translated. #TINY-3855
        +
        +## 5.0.10 - 2019-07-02
        +
        +### Added
        +- Added support for all HTML color formats in `color_map` setting. #TINY-3837
        +
        +### Changed
        +- Changed backspace key handling to outdent content in appropriate circumstances. #TINY-3685
        +- Changed default palette for forecolor and backcolor to include some lighter colors suitable for highlights. #TINY-2865
        +- Changed the Buscar and replace plugin to cycle through results. #TINY-3800
        +
        +### Fixed
        +- Fixed inconsistent types causing some properties to be unable to be used in dialog Componentes. #TINY-3778
        +- Fixed an issue in the Oxide skin where dialog content like outlines and shadows were clipped because of overflow hidden. #TINY-3566
        +- Fixed the Buscar and replace plugin not resetting state when changing the Buscar query. #TINY-3800
        +- Fixed backspace in lists not creating an undo level. #TINY-3814
        +- Fixed the editor to cancel loading in quirks mode where the UI is not supported. #TINY-3391
        +- Fixed applying fonts not working when the name contained spaces and numbers. #TINY-3801
        +- Fixed so that initial content is retained when initializing on list items. #TINY-3796
        +- Fixed inefficient font name and font size current value lookup during rendering. #TINY-3813
        +- Fixed mobile font copied into the wrong folder for the oxide-dark skin. #TINY-3816
        +- Fixed an issue where resizing the width of Tablas would produce inaccurate results. #TINY-3827
        +- Fixed a memory leak in the Silver theme. #TINY-3797
        +- Fixed alert and confirm dialogs using incorrect markup causing inconsistent padding. #TINY-3835
        +- Fixed an issue in the Table plugin with `table_responsive_width` not enforcing units when resizing. #TINY-3790
        +- Fixed leading, trailing and sequential spaces being lost when pasting plain text. #TINY-3726
        +- Fixed exception being thrown when creating relative URIs. #TINY-3851
        +- Fixed focus is no longer set to the editor content during mode changes unless the editor already had focus. #TINY-3852
        +
        +## 5.0.9 - 2019-06-26
        +
        +### Fixed
        +- Fixed print plugin not working in Firefox. #TINY-3834
        +
        +## 5.0.8 - 2019-06-18
        +
        +### Added
        +- Added back support for multiple toolbars. #TINY-2195
        +- Added support for .m4a files to the media plugin. #TINY-3750
        +- Added new base_url and suffix editor init options. #TINY-3681
        +
        +### Fixed
        +- Fixed incorrect padding for select boxes with visible values. #TINY-3780
        +- Fixed selection incorrectly changing when programmatically setting selection on contenteditable false elements. #TINY-3766
        +- Fixed sidebar background being transparent. #TINY-3727
        +- Fixed the build to remove duplicate iife wrappers. #TINY-3689
        +- Fixed bogus autocompleter span appearing in content when the autocompleter menu is shown. #TINY-3752
        +- Fixed toolbar font size select not working with legacyoutput plugin. #TINY-2921
        +- Fixed the legacyoutput plugin incorrectly aligning images. #TINY-3660
        +- Fixed remove color not working when using the legacyoutput plugin. #TINY-3756
        +- Fixed the font size menu applying incorrect sizes when using the legacyoutput plugin. #TINY-3773
        +- Fixed scrollIntoView not working when the parent window was out of view. #TINY-3663
        +- Fixed the print plugin printing from the wrong window in IE11. #TINY-3762
        +- Fixed content CSS loaded over CORS not loading in the preview plugin with content_css_cors enabled. #TINY-3769
        +- Fixed the link plugin missing the default "None" option for link list. #TINY-3738
        +- Fixed small dot visible with menubar and toolbar disabled in inline mode. #TINY-3623
        +- Fixed space key properly inserts a nbsp before/after block elements. #TINY-3745
        +- Fixed native context menu not showing with images in IE11. #TINY-3392
        +- Fixed inconsistent browser context menu image selection. #TINY-3789
        +
        +## 5.0.7 - 2019-06-05
        +
        +### Added
        +- Added new toolbar button and menu item for inserting Tablas via dialog. #TINY-3636
        +- Added new API for adding/removing/changing tabs in the Help dialog. #TINY-3535
        +- Added highlighting of matched text in autocompleter items. #TINY-3687
        +- Added the ability for autocompleters to work with matches that include spaces. #TINY-3704
        +- Added new `imagetools_fetch_image` callback to allow custom implementations for cors loading of images. #TINY-3658
        +- Added `'http'` and `https` options to `link_assume_external_targets` to prepend `http://` or `https://` prefixes when URL does not contain a protocol prefix. Patch contributed by francoisfreitag. #GH-4335
        +
        +### Changed
        +- Changed annotations navigation to work the same as inline boundaries. #TINY-3396
        +- Changed tabpanel API by adding a `name` field and changing relevant methods to use it. #TINY-3535
        +
        +### Fixed
        +- Fixed text color not updating all color buttons when choosing a color. #TINY-3602
        +- Fixed the autocompleter not working with fragmented text. #TINY-3459
        +- Fixed the autosave plugin no longer overwrites window.onbeforeunload. #TINY-3688
        +- Fixed infinite loop in the paste plugin when IE11 takes a long time to process paste events. Patch contributed by lRawd. #GH-4987
        +- Fixed image handle locations when using `fixed_toolbar_container`. Patch contributed by t00. #GH-4966
        +- Fixed the autoresize plugin not firing `ResizeEditor` events. #TINY-3587
        +- Fixed editor in fullscreen mode not extending to the bottom of the screen. #TINY-3701
        +- Fixed list removal when pressing backspace after the start of the list item. #TINY-3697
        +- Fixed autocomplete not triggering from compositionend events. #TINY-3711
        +- Fixed `file_picker_callback` could not set the caption field on the insert image dialog. #TINY-3172
        +- Fixed the autocompleter menu showing up after a selection had been made. #TINY-3718
        +- Fixed an exception being thrown when a file or number input has focus during initialization. Patch contributed by t00. #GH-2194
        +
        +## 5.0.6 - 2019-05-22
        +
        +### Added
        +- Added `icons_url` editor settings to enable icon packs to be loaded from a custom url. #TINY-3585
        +- Added `image_uploadtab` editor setting to control the visibility of the upload tab in the image dialog. #TINY-3606
        +- Added new api endpoints to the wordcount plugin and improved character count logic. #TINY-3578
        +
        +### Changed
        +- Changed plugin, language and icon loading errors to log in the console instead of a notification. #TINY-3585
        +
        +### Fixed
        +- Fixed the textpattern plugin not working with fragmented text. #TINY-3089
        +- Fixed various toolbar drawer accessibility issues and added an animation. #TINY-3554
        +- Fixed issues with selection and ui Componentes when toggling readonly mode. #TINY-3592
        +- Fixed so readonly mode works with inline editors. #TINY-3592
        +- Fixed docked inline toolbar positioning when scrolled. #TINY-3621
        +- Fixed initial value not being set on bespoke select in quickbars and toolbar drawer. #TINY-3591
        +- Fixed so that nbsp entities aren't trimmed in white-space: pre-line elements. #TINY-3642
        +- Fixed `mceInsertLink` command inserting spaces instead of url encoded characters. #GH-4990
        +- Fixed text content floating on top of dialogs in IE11. #TINY-3640
        +
        +## 5.0.5 - 2019-05-09
        +
        +### Added
        +- Added menu items to match the forecolor/backcolor toolbar buttons. #TINY-2878
        +- Added default directionality based on the configured language. #TINY-2621
        +- Added styles, icons and tests for rtl mode. #TINY-2621
        +
        +### Fixed
        +- Fixed autoresize not working with floating elements or when media elements finished loading. #TINY-3545
        +- Fixed incorrect vertical caret positioning in IE 11. #TINY-3188
        +- Fixed submenu anchoring hiding overflowed content. #TINY-3564
        +
        +### Removed
        +- Removed unused and hidden validation icons to avoid displaying phantom tooltips. #TINY-2329
        +
        +## 5.0.4 - 2019-04-23
        +
        +### Added
        +- Added back URL dialog functionality, which is now available via `editor.windowManager.openUrl()`. #TINY-3382
        +- Added the missing throbber functionality when calling `editor.setProgressState(true)`. #TINY-3453
        +- Added function to reset the editor content and undo/dirty state via `editor.resetContent()`. #TINY-3435
        +- Added the ability to set menu buttons as active. #TINY-3274
        +- Added `editor.mode` API, featuring a custom editor mode API. #TINY-3406
        +- Added better styling to floating toolbar drawer. #TINY-3479
        +- Added the new premium plugins to the Help dialog plugins tab. #TINY-3496
        +- Added the linkchecker context menu items to the default configuration. #TINY-3543
        +
        +### Fixed
        +- Fixed image context menu items showing on placeholder images. #TINY-3280
        +- Fixed dialog labels and text color contrast within notifications/alert banners to satisfy WCAG 4.5:1 contrast ratio for accessibility. #TINY-3351
        +- Fixed selectbox and colorpicker items not being translated. #TINY-3546
        +- Fixed toolbar drawer sliding mode to correctly focus the editor when tabbing via keyboard navigation. #TINY-3533
        +- Fixed positioning of the styleselect menu in iOS while using the mobile theme. #TINY-3505
        +- Fixed the menubutton `onSetup` callback to be correctly executed when rendering the menu buttons. #TINY-3547
        +- Fixed `default_link_target` setting to be correctly utilized when creating a link. #TINY-3508
        +- Fixed colorpicker floating marginally outside its container. #TINY-3026
        +- Fixed disabled menu items displaying as active when hovered. #TINY-3027
        +
        +### Removed
        +- Removed redundant mobile wrapper. #TINY-3480
        +
        +## 5.0.3 - 2019-03-19
        +
        +### Changed
        +- Changed empty nested-menu items within the style formats menu to be disabled or hidden if the value of `style_formats_autohide` is `true`. #TINY-3310
        +- Changed the entire phrase 'Powered by Tiny' in the status bar to be a link instead of just the word 'Tiny'. #TINY-3366
        +- Changed `formatselect`, `styleselect` and `align` menus to use the `mceToggleFormat` command internally. #TINY-3428
        +
        +### Fixed
        +- Fixed toolbar keyboard navigation to work as expected when `toolbar_drawer` is configured. #TINY-3432
        +- Fixed text direction buttons to display the correct pressed state in selections that have no explicit `dir` property. #TINY-3138
        +- Fixed the mobile editor to clean up properly when removed. #TINY-3445
        +- Fixed quickbar toolbars to add an empty box to the screen when it is set to `false`. #TINY-3439
        +- Fixed an issue where pressing the **Delete/Backspace** key at the edge of Tablas was creating incorrect selections. #TINY-3371
        +- Fixed an issue where dialog collection items (emoticon and special character dialogs) couldn't be selected with touch devices. #TINY-3444
        +- Fixed a type error introduced in TinyMCE version 5.0.2 when calling `editor.getContent()` with nested bookmarks. #TINY-3400
        +- Fixed an issue that prevented default icons from being overridden. #TINY-3449
        +- Fixed an issue where **Home/End** keys wouldn't move the caret correctly before or after `contenteditable=false` inline elements. #TINY-2995
        +- Fixed styles to be preserved in IE 11 when editing via the `fullpage` plugin. #TINY-3464
        +- Fixed the `link` plugin context toolbar missing the open link button. #TINY-3461
        +- Fixed inconsistent dialog component spacing. #TINY-3436
        +
        +## 5.0.2 - 2019-03-05
        +
        +### Added
        +- Added presentation and document presets to `htmlpanel` dialog component. #TINY-2694
        +- Added missing fixed_toolbar_container setting has been reimplemented in the Silver theme. #TINY-2712
        +- Added a new toolbar setting `toolbar_drawer` that moves toolbar groups which overflow the editor width into either a `sliding` or `floating` toolbar section. #TINY-2874
        +
        +### Changed
        +- Updated the build process to include package lock files in the dev distribution archive. #TINY-2870
        +
        +### Fixed
        +- Fixed inline dialogs did not have aria attributes. #TINY-2694
        +- Fixed default icons are now available in the UI registry, allowing use outside of toolbar buttons. #TINY-3307
        +- Fixed a memory leak related to select toolbar items. #TINY-2874
        +- Fixed a memory leak due to format changed listeners that were never unbound. #TINY-3191
        +- Fixed an issue where content may have been lost when using permanent bookmarks. #TINY-3400
        +- Fixed the quicklink toolbar button not rendering in the quickbars plugin. #TINY-3125
        +- Fixed an issue where menus were generating invalid HTML in some cases. #TINY-3323
        +- Fixed an issue that could cause the mobile theme to show a blank white screen when the editor was inside an `overflow:hidden` element. #TINY-3407
        +- Fixed mobile theme using a transparent background and not taking up the full width on iOS. #TINY-3414
        +- Fixed the template plugin dialog missing the description field. #TINY-3337
        +- Fixed input dialog Componentes using an invalid default type attribute. #TINY-3424
        +- Fixed an issue where backspace/delete keys after/before pagebreak elements wouldn't move the caret. #TINY-3097
        +- Fixed an issue in the table plugin where menu items and toolbar buttons weren't showing correctly based on the selection. #TINY-3423
        +- Fixed inconsistent button focus styles in Firefox. #TINY-3377
        +- Fixed the resize icon floating left when all status bar elements were disabled. #TINY-3340
        +- Fixed the resize handle to not show in fullscreen mode. #TINY-3404
        +
        +## 5.0.1 - 2019-02-21
        +
        +### Added
        +- Added H1-H6 toggle button registration to the silver theme. #TINY-3070
        +- Added code sample toolbar button will now toggle on when the cursor is in a code section. #TINY-3040
        +- Added new settings to the emoticons plugin to allow additional emoticons to be added. #TINY-3088
        +
        +### Fixed
        +- Fixed an issue where adding links to images would replace the image with text. #TINY-3356
        +- Fixed an issue where the inline editor could use fractional pixels for positioning. #TINY-3202
        +- Fixed an issue where uploading non-image files in the Image Plugin upload tab threw an error. #TINY-3244
        +- Fixed an issue in the media plugin that was causing the source url and height/width to be lost in certain circumstances. #TINY-2858
        +- Fixed an issue with the Context Toolbar not being removed when clicking outside of the editor. #TINY-2804
        +- Fixed an issue where clicking 'Remove link' wouldn't remove the link in certain circumstances. #TINY-3199
        +- Fixed an issue where the media plugin would fail when parsing dialog data. #TINY-3218
        +- Fixed an issue where retrieving the selected content as text didn't create newlines. #TINY-3197
        +- Fixed incorrect keyboard shortcuts in the Help dialog for Windows. #TINY-3292
        +- Fixed an issue where JSON serialization could produce invalid JSON. #TINY-3281
        +- Fixed production CSS including references to source maps. #TINY-3920
        +- Fixed development CSS was not included in the development zip. #TINY-3920
        +- Fixed the autocompleter matches predicate not matching on the start of words by default. #TINY-3306
        +- Fixed an issue where the page could be scrolled with modal dialogs open. #TINY-2252
        +- Fixed an issue where autocomplete menus would show an icon margin when no items had icons. #TINY-3329
        +- Fixed an issue in the quickbars plugin where images incorrectly showed the text selection toolbar. #TINY-3338
        +- Fixed an issue that caused the inline editor to fail to render when the target element already had focus. #TINY-3353
        +
        +### Removed
        +- Removed paste as text notification banner and paste_plaintext_inform setting. #POW-102
        +
        +## 5.0.0 - 2019-02-04
        +
        +Full documentation for the version 5 features and changes is available at https://www.tiny.cloud/docs/tinymce/5/release-notes/release-notes50/
        +
        +### Added
        +- Added links and Registroed names with * to denote premium plugins in Plugins tab of Help dialog. #TINY-3223
        +
        +### Changed
        +- Changed Tiny 5 mobile skin to look more uniform with desktop. #TINY-2650
        +- Blacklisted table, th and td as inline editor target. #TINY-717
        +
        +### Fixed
        +- Fixed an issue where tab panel heights weren't sizing properly on smaller screens and weren't updating on resize. #TINY-3242
        +- Fixed image tools not having any padding between the label and slider. #TINY-3220
        +- Fixed context toolbar toggle buttons not showing the correct state. #TINY-3022
        +- Fixed missing separators in the spellchecker context menu between the suggestions and actions. #TINY-3217
        +- Fixed notification icon positioning in alert banners. #TINY-2196
        +- Fixed a typo in the word count plugin name. #TINY-3062
        +- Fixed charmap and emoticons dialogs not having a primary button. #TINY-3233
        +- Fixed an issue where resizing wouldn't work correctly depending on the box-sizing model. #TINY-3278
        +
        +## 5.0.0-rc-2 - 2019-01-22
        +
        +### Added
        +- Added screen reader accessibility for sidebar and statusbar. #TINY-2699
        +
        +### Changed
        +- Changed formatting menus so they are Registroed and made the align toolbar button use an icon instead of text. #TINY-2880
        +- Changed checkboxes to use a boolean for its state, instead of a string. #TINY-2848
        +- Updated the textpattern plugin to properly support nested patterns and to allow running a command with a value for a pattern with a start and an end. #TINY-2991
        +- Updated Emoticons and Charmap dialogs to be screen reader accessible. #TINY-2693
        +
        +### Fixed
        +- Fixed the link dialog such that it will now retain class attributes when updating links. #TINY-2825
        +- Fixed "Find and replace" not showing in the "Edit" menu by default. #TINY-3061
        +- Fixed dropdown buttons missing the 'type' attribute, which could cause Formularios to be incorrectly submitted. #TINY-2826
        +- Fixed emoticon and charmap Buscar not returning expected results in certain cases. #TINY-3084
        +- Fixed blank rel_list values throwing an exception in the link plugin. #TINY-3149
        +
        +### Removed
        +- Removed unnecessary 'flex' and unused 'colspan' properties from the new dialog APIs. #TINY-2973
        +
        +## 5.0.0-rc-1 - 2019-01-08
        +
        +### Added
        +- Added editor settings functionality to specify title attributes for toolbar groups. #TINY-2690
        +- Added icons instead of button text to improve Buscar and Replace dialog footer appearance. #TINY-2654
        +- Added `tox-dialog__table` instead of `mce-table-striped` class to enhance Help dialog appearance. #TINY-2360
        +- Added title attribute to iframes so, screen readers can announce iframe labels. #TINY-2692
        +- Added a wordcount menu item, that defaults to appearing in the tools menu. #TINY-2877
        +
        +### Changed
        +- Updated the font select dropdown logic to try to detect the system font stack and show "System Font" as the font name. #TINY-2710
        +- Updated the autocompleter to only show when it has matched items. #TINY-2350
        +- Updated SizeInput labels to "Height" and "Width" instead of Dimensions. #TINY-2833
        +- Updated the build process to minify and generate ASCII only output for the emoticons database. #TINY-2744
        +
        +### Fixed
        +- Fixed readonly mode not fully disabling editing content. #TINY-2287
        +- Fixed accessibility issues with the font select, font size, style select and format select toolbar dropdowns. #TINY-2713
        +- Fixed accessibility issues with split dropdowns. #TINY-2697
        +- Fixed the legacyoutput plugin to be compatible with TinyMCE 5.0. #TINY-2301
        +- Fixed icons not showing correctly in the autocompleter popup. #TINY-3029
        +- Fixed an issue where preview wouldn't show anything in Edge under certain circumstances. #TINY-3035
        +- Fixed the height being incorrectly calculated for the autoresize plugin. #TINY-2807
        +
        +## 5.0.0-beta-1 - 2018-11-30
        +
        +### Added
        +- Added a new `addNestedMenuItem()` UI registry function and changed all nested menu items to use the new registry functions. #TINY-2230
        +- Added title attribute to color swatch colors. #TINY-2669
        +- Added anchorbar component to anchor inline toolbar dialogs to instead of the toolbar. #TINY-2040
        +- Added support for toolbar and toolbar array config options to be squashed into a single toolbar and not create multiple toolbars. #TINY-2195
        +- Added error handling for when forced_root_block config option is set to true. #TINY-2261
        +- Added functionality for the removed_menuitems config option. #TINY-2184
        +- Added the ability to use a string to reference menu items in menu buttons and submenu items. #TINY-2253
        +
        +### Changed
        +- Changed the name of the "inlite" plugin to "quickbars". #TINY-2831
        +- Changed the background color icon to highlight background icon. #TINY-2258
        +- Changed Help dialog to be accessible to screen readers. #TINY-2687
        +- Changed the color swatch to save selected custom colors to local storage for use across sessions. #TINY-2722
        +- Changed `WindowManager` API - methods `getParams`, `setParams` and `getWindows`, and the legacy `windows` property, have been removed. `alert` and `confirm` dialogs are no longer tracked in the window list. #TINY-2603
        +
        +### Fixed
        +- Fixed an inline mode issue where the save plugin upon saving can cause content loss. #TINY-2659
        +- Fixed an issue in IE 11 where calling selection.getContent() would return an empty string when the editor didn't have focus. #TINY-2325
        +
        +### Removed
        +- Removed compat3x plugin. #TINY-2815
        +
        +## 5.0.0-preview-4 - 2018-11-12
        +
        +### Added
        +- Added width and height placeholder text to image and media dialog dimensions input. #AP-296
        +- Added the ability to keyboard navigate through menus, toolbars, sidebar and the status bar sequentially. #AP-381
        +- Added translation capability back to the editor's UI. #AP-282
        +- Added `label` component type for dialogs to group Componentes under a label.
        +
        +### Changed
        +- Changed the editor resize handle so that it should be disabled when the autoresize plugin is turned on. #AP-424
        +- Changed UI text for microcopy improvements. #TINY-2281
        +
        +### Fixed
        +- Fixed distraction free plugin. #AP-470
        +- Fixed contents of the input field being selected on focus instead of just recieving an outline highlight. #AP-464
        +- Fixed styling issues with dialogs and menus in IE 11. #AP-456
        +- Fixed custom style format control not honoring custom formats. #AP-393
        +- Fixed context menu not appearing when clicking an image with a caption. #AP-382
        +- Fixed directionality of UI when using an RTL language. #AP-423
        +- Fixed page responsiveness with multiple inline editors. #AP-430
        +- Fixed empty toolbar groups appearing through invalid configuration of the `toolbar` property. #AP-450
        +- Fixed text not being retained when updating links through the link dialog. #AP-293
        +- Fixed edit image context menu, context toolbar and toolbar items being incorrectly enabled when selecting invalid images. #AP-323
        +- Fixed emoji type ahead being shown when typing URLs. #AP-366
        +- Fixed toolbar configuration properties incorrectly expecting string arrays instead of strings. #AP-342
        +- Fixed the block formatting toolbar item not showing a "Formatting" title when there is no selection. #AP-321
        +- Fixed clicking disabled toolbar buttons hiding the toolbar in inline mode. #AP-380
        +- Fixed `EditorResize` event not being fired upon editor resize. #AP-327
        +- Fixed Tablas losing styles when updating through the dialog. #AP-368
        +- Fixed context toolbar positioning to be more consistent near the edges of the editor. #AP-318
        +- Fixed table of contents plugin now works with v5 toolbar APIs correctly. #AP-347
        +- Fixed the `link_context_toolbar` configuration not disabling the context toolbar. #AP-458
        +- Fixed the link context toolbar showing incorrect relative links. #AP-435
        +- Fixed the alignment of the icon in alert banner dialog Componentes. #TINY-2220
        +- Fixed the visual blocks and visual char menu options not displaying their toggled state. #TINY-2238
        +- Fixed the editor not displaying as fullscreen when toggled. #TINY-2237
        +
        +### Removed
        +- Removed the tox-custom-editor class that was added to the wrapping element of codemirror. #TINY-2211
        +
        +## 5.0.0-preview-3 - 2018-10-18
        +
        +### Changed
        +- Changed editor layout to use modern CSS properties over manually calculating dimensions. #AP-324
        +- Changed `autoresize_min_height` and `autoresize_max_height` configurations to `min_height` and `max_height`. #AP-324
        +- Changed `Whole word` label in Buscar and Replace dialog to `Find whole words only`. #AP-387
        +
        +### Fixed
        +- Fixed bugs with editor width jumping when resizing and the iframe not resizing to smaller than 150px in height. #AP-324
        +- Fixed mobile theme bug that prevented the editor from loading. #AP-404
        +- Fixed long toolbar groups extending outside of the editor instead of wrapping.
        +- Fixed dialog titles so they are now proper case. #AP-384
        +- Fixed color picker default to be #000000 instead of #ff00ff. #AP-216
        +- Fixed "match case" option on the Find and Replace dialog is no longer selected by default. #AP-298
        +- Fixed vertical alignment of toolbar icons. #DES-134
        +- Fixed toolbar icons not appearing on IE11. #DES-133
        +
        +## 5.0.0-preview-2 - 2018-10-10
        +
        +### Added
        +- Added swatch is now shown for colorinput fields, instead of the colorpicker directly. #AP-328
        +- Added fontformats and fontsizes menu items. #AP-390
        +
        +### Changed
        +- Changed configuration of color options has been simplified to `color_map`, `color_cols`, and `custom_colors`. #AP-328
        +- Changed `height` configuration to apply to the editor frame (including menubar, toolbar, status bar) instead of the content area. #AP-324
        +
        +### Fixed
        +- Fixed styleselect not updating the displayed item as the cursor moved. #AP-388
        +- Fixed preview iframe not expanding to the dialog size. #AP-252
        +- Fixed 'meta' shortcuts not translated into platform-specific text. #AP-270
        +- Fixed tabbed dialogs (Charmap and Emoticons) shrinking when no Buscar results returned.
        +- Fixed a bug where alert banner icons were not retrieved from icon pack. #AP-330
        +- Fixed component styles to flex so they fill large dialogs. #AP-252
        +- Fixed editor flashing unstyled during load (still in progress). #AP-349
        +
        +### Removed
        +- Removed `colorpicker` plugin, it is now in the theme. #AP-328
        +- Removed `textcolor` plugin, it is now in the theme. #AP-328
        +
        +## 5.0.0-preview-1 - 2018-10-01
        +
        +Developer preview 1.
        +
        +Initial list of features and changes is available at https://www.tiny.cloud/docs/tinymce/5/release-notes/release-notes50/.
        +
        +## 4.9.11 - 2020-07-13
        +
        +### Fixed
        +- Fixed the `selection.setContent()` API not running parser filters. #TINY-4002
        +- Fixed content in an iframe element parsing as DOM elements instead of text content. #TINY-5943
        +- Fixed up and down keyboard navigation not working for inline `contenteditable="false"` elements. #TINY-6226
        +
        +## 4.9.10 - 2020-04-23
        +
        +### Fixed
        +- Fixed an issue where the editor selection could end up inside a short ended element (eg br). #TINY-3999
        +- Fixed a security issue related to CDATA sanitization during parsing. #TINY-4669
        +- Fixed `media` embed content not processing safely in some cases. #TINY-4857
        +
        +## 4.9.9 - 2020-03-25
        +
        +### Fixed
        +- Fixed the table selection not functioning correctly in Microsoft Edge 44 or higher. #TINY-3862
        +- Fixed the table resize handles not functioning correctly in Microsoft Edge 44 or higher. #TINY-4160
        +- Fixed the `forced_root_block_attrs` setting not applying attributes to new blocks consistently. #TINY-4564
        +- Fixed the editor failing to initialize if a script tag was used inside an SVG. #TINY-4087
        +
        +## 4.9.8 - 2020-01-28
        +
        +### Fixed
        +- Fixed the `mobile` theme failing to load due to a bundling issue. #TINY-4613
        +- Fixed security issue related to parsing HTML comments and CDATA. #TINY-4544
        +
        +## 4.9.7 - 2019-12-19
        +
        +### Fixed
        +- Fixed the `visualchars` plugin converting HTML-like text to DOM elements in certain cases. #TINY-4507
        +- Fixed an issue with the `paste` plugin not sanitizing content in some cases. #TINY-4510
        +- Fixed HTML comments incorrectly being parsed in certain cases. #TINY-4511
        +
        +## 4.9.6 - 2019-09-02
        +
        +### Fixed
        +- Fixed image browse button sometimes displaying the browse window twice. #TINY-3959
        +
        +## 4.9.5 - 2019-07-02
        +
        +### Changed
        +- Changed annotations navigation to work the same as inline boundaries. #TINY-3396
        +
        +### Fixed
        +- Fixed the print plugin printing from the wrong window in IE11. #TINY-3762
        +- Fixed an exception being thrown when a file or number input has focus during initialization. Patch contributed by t00. #GH-2194
        +- Fixed positioning of the styleselect menu in iOS while using the mobile theme. #TINY-3505
        +- Fixed native context menu not showing with images in IE11. #TINY-3392
        +- Fixed selection incorrectly changing when programmatically setting selection on contenteditable false elements. #TINY-3766
        +- Fixed image browse button not working on touch devices. #TINY-3751
        +- Fixed so that nbsp entities aren't trimmed in white-space: pre-line elements. #TINY-3642
        +- Fixed space key properly inserts a nbsp before/after block elements. #TINY-3745
        +- Fixed infinite loop in the paste plugin when IE11 takes a long time to process paste events. Patch contributed by lRawd. #GH-4987
        +
        +## 4.9.4 - 2019-03-20
        +
        +### Fixed
        +- Fixed an issue where **Home/End** keys wouldn't move the caret correctly before or after `contenteditable=false` inline elements. #TINY-2995
        +- Fixed an issue where content may have been lost when using permanent bookmarks. #TINY-3400
        +- Fixed the mobile editor to clean up properly when removed. #TINY-3445
        +- Fixed an issue where retrieving the selected content as text didn't create newlines. #TINY-3197
        +- Fixed an issue where typing space between images would cause issues with nbsp not being inserted. #TINY-3346
        +
        +## 4.9.3 - 2019-01-31
        +
        +### Added
        +- Added a visualchars_default_state setting to the Visualchars Plugin. Patch contributed by mat3e.
        +
        +### Fixed
        +- Fixed a bug where scrolling on a page with more than one editor would cause a ResizeWindow event to fire. #TINY-3247
        +- Fixed a bug where if a plugin threw an error during initialisation the whole editor would fail to load. #TINY-3243
        +- Fixed a bug where getContent would include bogus elements when valid_elements setting was set up in a specific way. #TINY-3213
        +- Fixed a bug where only a few function key names could be used when creating keyboard shortcuts. #TINY-3146
        +- Fixed a bug where it wasn't possible to enter spaces into an editor after pressing shift+enter. #TINY-3099
        +- Fixed a bug where no caret would be rendered after backspacing to a contenteditable false element. #TINY-2998
        +- Fixed a bug where deletion to/from indented lists would leave list fragments in the editor. #TINY-2981
        +
        +## 4.9.2 - 2018-12-17
        +
        +### Fixed
        +- Fixed a bug with pressing the space key on IE 11 would result in nbsp characters being inserted between words at the end of a block. #TINY-2996
        +- Fixed a bug where character composition using quote and space on US International keyboards would produce a space instead of a quote. #TINY-2999
        +- Fixed a bug where remove format wouldn't remove the inner most inline element in some situations. #TINY-2982
        +- Fixed a bug where outdenting an list item would affect attributes on other list items within the same list. #TINY-2971
        +- Fixed a bug where the DomParser filters wouldn't be applied for elements created when parsing invalid html. #TINY-2978
        +- Fixed a bug where setProgressState wouldn't automatically close floating ui elements like menus. #TINY-2896
        +- Fixed a bug where it wasn't possible to navigate out of a figcaption element using the arrow keys. #TINY-2894
        +- Fixed a bug where enter key before an image inside a link would remove the image. #TINY-2780
        +
        +## 4.9.1 - 2018-12-04
        +
        +### Added
        +- Added functionality to insert html to the replacement feature of the Textpattern Plugin. #TINY-2839
        +
        +### Fixed
        +- Fixed a bug where `editor.selection.getContent({format: 'text'})` didn't work as expected in IE11 on an unfocused editor. #TINY-2862
        +- Fixed a bug in the Textpattern Plugin where the editor would get an incorrect selection after inserting a text pattern on Safari. #TINY-2838
        +- Fixed a bug where the space bar didn't work correctly in editors with the forced_root_block setting set to false. #TINY-2816
        +
        +## 4.9.0 - 2018-11-27
        +
        +### Added
        +- Added a replace feature to the Textpattern Plugin. #TINY-1908
        +- Added functionality to the Lists Plugin that improves the indentation logic. #TINY-1790
        +
        +### Fixed
        +- Fixed a bug where it wasn't possible to delete/backspace when the caret was between a contentEditable=false element and a BR. #TINY-2372
        +- Fixed a bug where copying table cells without a text selection would fail to copy anything. #TINY-1789
        +- Implemented missing `autosave_restore_when_empty` functionality in the Autosave Plugin. Patch contributed by gzzo. #GH-4447
        +- Reduced insertion of unnecessary nonbreaking spaces in the editor. #TINY-1879
        +
        +## 4.8.5 - 2018-10-30
        +
        +### Added
        +- Added a content_css_cors setting to the editor that adds the crossorigin="anonymous" attribute to link tags added by the StyleSheetLoader. #TINY-1909
        +
        +### Fixed
        +- Fixed a bug where trying to remove formatting with a collapsed selection range would throw an exception. #GH-4636
        +- Fixed a bug in the image plugin that caused updating figures to split contenteditable elements. #GH-4563
        +- Fixed a bug that was causing incorrect viewport calculations for fixed position UI elements. #TINY-1897
        +- Fixed a bug where inline formatting would cause the delete key to do nothing. #TINY-1900
        +
        +## 4.8.4 - 2018-10-23
        +
        +### Added
        +- Added support for the HTML5 `main` element. #TINY-1877
        +
        +### Changed
        +- Changed the keyboard shortcut to move focus to contextual toolbars to Ctrl+F9. #TINY-1812
        +
        +### Fixed
        +- Fixed a bug where content css could not be loaded from another domain. #TINY-1891
        +- Fixed a bug on FireFox where the cursor would get stuck between two contenteditable false inline elements located inside of the same block element divided by a BR. #TINY-1878
        +- Fixed a bug with the insertContent method where nonbreaking spaces would be inserted incorrectly. #TINY-1868
        +- Fixed a bug where the toolbar of the inline editor would not be visible in some scenarios. #TINY-1862
        +- Fixed a bug where removing the editor while more than one notification was open would throw an error. #TINY-1845
        +- Fixed a bug where the menubutton would be rendered on top of the menu if the viewport didn't have enough height. #TINY-1678
        +- Fixed a bug with the annotations api where annotating collapsed selections caused problems. #TBS-2449
        +- Fixed a bug where wbr elements were being transformed into whitespace when using the Paste Plugin's paste as text setting. #GH-4638
        +- Fixed a bug where the Buscar and Replace didn't replace spaces correctly. #GH-4632
        +- Fixed a bug with sublist items not persisting selection. #GH-4628
        +- Fixed a bug with mceInsertRawHTML command not working as expected. #GH-4625
        +
        +## 4.8.3 - 2018-09-13
        +
        +### Fixed
        +- Fixed a bug where the Wordcount Plugin didn't correctly count words within Tablas on IE11. #TINY-1770
        +- Fixed a bug where it wasn't possible to move the caret out of a table on IE11 and Firefox. #TINY-1682
        +- Fixed a bug where merging empty blocks didn't work as expected, sometimes causing content to be deleted. #TINY-1781
        +- Fixed a bug where the Textcolor Plugin didn't show the correct current color. #TINY-1810
        +- Fixed a bug where clear formatting with a collapsed selection would sometimes clear formatting from more content than expected. #TINY-1813 #TINY-1821
        +- Fixed a bug with the Table Plugin where it wasn't possible to keyboard navigate to the caption. #TINY-1818
        +
        +## 4.8.2 - 2018-08-09
        +
        +### Changed
        +- Moved annotator from "experimental" to "annotator" object on editor. #TBS-2398
        +- Improved the multiclick normalization across browsers. #TINY-1788
        +
        +### Fixed
        +- Fixed a bug where running getSelectedBlocks with a collapsed selection between block elements would produce incorrect results. #TINY-1787
        +- Fixed a bug where the ScriptLoaders loadScript method would not work as expected in FireFox when loaded on the same page as a ShadowDOM polyfill. #TINY-1786
        +- Removed reference to ShadowDOM event.path as Blink based browsers now support event.composedPath. #TINY-1785
        +- Fixed a bug where a reference to localStorage would throw an "access denied" error in IE11 with strict security settings. #TINY-1782
        +- Fixed a bug where pasting using the toolbar button on an inline editor in IE11 would cause a looping behaviour. #TINY-1768
        +
        +## 4.8.1 - 2018-07-26
        +
        +### Fixed
        +- Fixed a bug where the content of inline editors was being cleaned on every call of `editor.save()`. #TINY-1783
        +- Fixed a bug where the arrow of the Inlite Theme toolbar was being rendered incorrectly in RTL mode. #TINY-1776
        +- Fixed a bug with the Paste Plugin where pasting after inline contenteditable false elements moved the caret to the end of the line. #TINY-1758
        +
        +## 4.8.0 - 2018-06-27
        +
        +### Added
        +- Added new "experimental" object in editor, with initial Annotator API. #TBS-2374
        +
        +### Fixed
        +- Fixed a bug where deleting paragraphs inside of table cells would delete the whole table cell. #TINY-1759
        +- Fixed a bug in the Table Plugin where removing row height set on the row properties dialog did not update the table. #TINY-1730
        +- Fixed a bug with the font select toolbar item didn't update correctly. #TINY-1683
        +- Fixed a bug where all bogus elements would not be deleted when removing an inline editor. #TINY-1669
        +
        +## 4.7.13 - 2018-05-16
        +
        +### Added
        +- Added missing code menu item from the default menu config. #TINY-1648
        +- Added new align button for combining the separate align buttons into a menu button. #TINY-1652
        +
        +### Fixed
        +- Fixed a bug where Edge 17 wouldn't be able to select images or Tablas. #TINY-1679
        +- Fixed issue where whitespace wasn't preserved when the editor was initialized on pre elements. #TINY-1649
        +- Fixed a bug with the fontselect dropdowns throwing an error if the editor was hidden in Firefox. #TINY-1664
        +- Fixed a bug where it wasn't possible to merge table cells on IE 11. #TINY-1671
        +- Fixed a bug where textcolor wasn't applying properly on IE 11 in some situations. #TINY-1663
        +- Fixed a bug where the justifyfull command state wasn't working correctly. #TINY-1677
        +- Fixed a bug where the styles wasn't updated correctly when resizing some Tablas. #TINY-1668
        +
        +## 4.7.12 - 2018-05-03
        +
        +### Added
        +- Added an option to filter out image svg data urls.
        +- Added support for html5 details and summary elements.
        +
        +### Changed
        +- Changed so the mce-abs-layout-item css rule targets html instead of body. Patch contributed by nazar-pc.
        +
        +### Fixed
        +- Fixed a bug where the "read" step on the mobile theme was still present on android mobile browsers.
        +- Fixed a bug where all images in the editor document would reload on any editor change.
        +- Fixed a bug with the Table Plugin where ObjectResized event wasn't being triggered on column resize.
        +- Fixed so the selection is set to the first suitable caret position after editor.setContent called.
        +- Fixed so links with xlink:href attributes are filtered correctly to prevent XSS.
        +- Fixed a bug on IE11 where pasting content into an inline editor initialized on a heading element would create new editable elements.
        +- Fixed a bug where readonly mode would not work as expected when the editor contained contentEditable=true elements.
        +- Fixed a bug where the Link Plugin would throw an error when used together with the webComponentes polyfill. Patch contributed by 4esnog.
        +- Fixed a bug where the "Powered by TinyMCE" branding link would break on XHTML pages. Patch contributed by tistre.
        +- Fixed a bug where the same id would be used in the blobcache for all pasted images. Patch contributed by thorn0.
        +
        +## 4.7.11 - 2018-04-11
        +
        +### Added
        +- Added a new imagetools_credentials_hosts option to the Imagetools Plugin.
        +
        +### Fixed
        +- Fixed a bug where toggling a list containing empty LIs would throw an error. Patch contributed by bradleyke.
        +- Fixed a bug where applying block styles to a text with the caret at the end of the paragraph would select all text in the paragraph.
        +- Fixed a bug where toggling on the Spellchecker Plugin would trigger isDirty on the editor.
        +- Fixed a bug where it was possible to enter content into selection bookmark spans.
        +- Fixed a bug where if a non paragraph block was configured in forced_root_block the editor.getContent method would return incorrect values with an empty editor.
        +- Fixed a bug where dropdown menu panels stayed open and fixed in position when dragging dialog windows.
        +- Fixed a bug where it wasn't possible to extend table cells with the space button in Safari.
        +- Fixed a bug where the setupeditor event would thrown an error when using the Compat3x Plugin.
        +- Fixed a bug where an error was thrown in FontInfo when called on a detached element.
        +
        +## 4.7.10 - 2018-04-03
        +
        +### Added
        +- Added normalization of triple clicks across browsers in the editor.
        +- Added a `hasFocus` method to the editor that checks if the editor has focus.
        +- Added correct icon to the Nonbreaking Plugin menu item.
        +
        +### Fixed
        +- Fixed so the `getContent`/`setContent` methods work even if the editor is not initialized.
        +- Fixed a bug with the Media Plugin where query strings were being stripped from youtube links.
        +- Fixed a bug where image styles were changed/removed when opening and closing the Image Plugin dialog.
        +- Fixed a bug in the Table Plugin where some table cell styles were not correctly added to the content html.
        +- Fixed a bug in the Spellchecker Plugin where it wasn't possible to change the spellchecker language.
        +- Fixed so the the unlink action in the Link Plugin has a menu item and can be added to the contextmenu.
        +- Fixed a bug where it wasn't possible to keyboard navigate to the start of an inline element on a new line within the same block element.
        +- Fixed a bug with the Text Color Plugin where if used with an inline editor located at the bottom of the screen the colorpicker could appear off screen.
        +- Fixed a bug with the UndoManager where undo levels were being added for nbzwsp characters.
        +- Fixed a bug with the Table Plugin where the caret would sometimes be lost when keyboard navigating up through a table.
        +- Fixed a bug where FontInfo.getFontFamily would throw an error when called on a removed editor.
        +- Fixed a bug in Firefox where undo levels were not being added correctly for some specific operations.
        +- Fixed a bug where initializing an inline editor inside of a table would make the whole table resizeable.
        +- Fixed a bug where the fake cursor that appears next to Tablas on Firefox was positioned incorrectly when switching to fullscreen.
        +- Fixed a bug where zwsp's weren't trimmed from the output from `editor.getContent({ format: 'text' })`.
        +- Fixed a bug where the fontsizeselect/fontselect toolbar items showed the body info rather than the first possible caret position info on init.
        +- Fixed a bug where it wasn't possible to select all content if the editor only contained an inline boundary element.
        +- Fixed a bug where `content_css` urls with query strings wasn't working.
        +- Fixed a bug in the Table Plugin where some table row styles were removed when changing other styles in the row properties dialog.
        +
        +### Removed
        +- Removed the "read" step from the mobile theme.
        +
        +## 4.7.9 - 2018-02-27
        +
        +### Fixed
        +- Fixed a bug where the editor target element didn't get the correct style when removing the editor.
        +
        +## 4.7.8 - 2018-02-26
        +
        +### Fixed
        +- Fixed an issue with the Help Plugin where the menuitem name wasn't lowercase.
        +- Fixed an issue on MacOS where text and bold text did not have the same line-height in the autocomplete dropdown in the Link Plugin dialog.
        +- Fixed a bug where the "paste as text" option in the Paste Plugin didn't work.
        +- Fixed a bug where dialog list boxes didn't get positioned correctly in documents with scroll.
        +- Fixed a bug where the Inlite Theme didn't use the Table Plugin api to insert correct Tablas.
        +- Fixed a bug where the Inlite Theme panel didn't hide on blur in a correct way.
        +- Fixed a bug where placing the cursor before a table in Firefox would scroll to the bottom of the table.
        +- Fixed a bug where selecting partial text in table cells with rowspans and deleting would produce faulty Tablas.
        +- Fixed a bug where the Preview Plugin didn't work on Safari due to sandbox security.
        +- Fixed a bug where table cell selection using the keyboard threw an error.
        +- Fixed so the font size and font family doesn't toggle the text but only sets the selected format on the selected text.
        +- Fixed so the built-in spellchecking on Chrome and Safari creates an undo level when replacing words.
        +
        +## 4.7.7 - 2018-02-19
        +
        +### Added
        +- Added a border style selector to the advanced tab of the Image Plugin.
        +- Added better controls for default table inserted by the Table Plugin.
        +- Added new `table_responsive_width` option to the Table Plugin that controls whether to use pixel or percentage widths.
        +
        +### Fixed
        +- Fixed a bug where the Link Plugin text didn't update when a URL was pasted using the context menu.
        +- Fixed a bug with the Spellchecker Plugin where using "Add to dictionary" in the context menu threw an error.
        +- Fixed a bug in the Media Plugin where the preview node for iframes got default width and height attributes that interfered with width/height styles.
        +- Fixed a bug where backslashes were being added to some font family names in Firefox in the fontselect toolbar item.
        +- Fixed a bug where errors would be thrown when trying to remove an editor that had not yet been fully initialized.
        +- Fixed a bug where the Imagetools Plugin didn't update the images atomically.
        +- Fixed a bug where the Fullscreen Plugin was throwing errors when being used on an inline editor.
        +- Fixed a bug where drop down menus weren't positioned correctly in inline editors on scroll.
        +- Fixed a bug with a semicolon missing at the end of the bundled javascript files.
        +- Fixed a bug in the Table Plugin with cursor navigation inside of Tablas where the cursor would sometimes jump into an incorrect table cells.
        +- Fixed a bug where indenting a table that is a list item using the "Increase indent" button would create a nested table.
        +- Fixed a bug where text nodes containing only whitespace were being wrapped by paragraph elements.
        +- Fixed a bug where whitespace was being inserted after br tags inside of paragraph tags.
        +- Fixed a bug where converting an indented paragraph to a list item would cause the list item to have extra padding.
        +- Fixed a bug where Copy/Paste in an editor with a lot of content would cause the editor to scroll to the top of the content in IE11.
        +- Fixed a bug with a memory leak in the DragHelper. Path contributed by ben-mckernan.
        +- Fixed a bug where the advanced tab in the Media Plugin was being shown even if it didn't contain anything. Patch contributed by gabrieeel.
        +- Fixed an outdated eventname in the EventUtils. Patch contributed by nazar-pc.
        +- Fixed an issue where the Json.parse function would throw an error when being used on a page with strict CSP settings.
        +- Fixed so you can place the curser before and after table elements within the editor in Firefox and Edge/IE.
        +
        +## 4.7.6 - 2018-01-29
        +
        +### Fixed
        +- Fixed a bug in the jquery integration where it threw an error saying that "global is not defined".
        +- Fixed a bug where deleting a table cell whose previous sibling was set to contenteditable false would create a corrupted table.
        +- Fixed a bug where highlighting text in an unfocused editor did not work correctly in IE11/Edge.
        +- Fixed a bug where the table resize handles were not being repositioned when activating the Fullscreen Plugin.
        +- Fixed a bug where the Imagetools Plugin dialog didn't honor editor RTL settings.
        +- Fixed a bug where block elements weren't being merged correctly if you deleted from after a contenteditable false element to the beginning of another block element.
        +- Fixed a bug where TinyMCE didn't work with module loaders like webpack.
        +
        +## 4.7.5 - 2018-01-22
        +
        +### Fixed
        +- Fixed bug with the Codesample Plugin where it wasn't possible to edit codesamples when the editor was in inline mode.
        +- Fixed bug where focusing on the status bar broke the keyboard navigation functionality.
        +- Fixed bug where an error would be thrown on Edge by the Table Plugin when pasting using the PowerPaste Plugin.
        +- Fixed bug in the Table Plugin where selecting row border style from the dropdown menu in advanced row properties would throw an error.
        +- Fixed bug with icons being rendered incorrectly on Chrome on Mac OS.
        +- Fixed bug in the Textcolor Plugin where the font color and background color buttons wouldn't trigger an ExecCommand event.
        +- Fixed bug in the Link Plugin where the url field wasn't forced LTR.
        +- Fixed bug where the Nonbreaking Plugin incorrectly inserted spaces into Tablas.
        +- Fixed bug with the inline theme where the toolbar wasn't repositioned on window resize.
        +
        +## 4.7.4 - 2017-12-05
        +
        +### Fixed
        +- Fixed bug in the Nonbreaking Plugin where the nonbreaking_force_tab setting was being ignored.
        +- Fixed bug in the Table Plugin where changing row height incorrectly converted column widths to pixels.
        +- Fixed bug in the Table Plugin on Edge and IE11 where resizing the last column after resizing the table would cause invalid column heights.
        +- Fixed bug in the Table Plugin where keyboard navigation was not normalized between browsers.
        +- Fixed bug in the Table Plugin where the colorpicker button would show even without defining the colorpicker_callback.
        +- Fixed bug in the Table Plugin where it wasn't possible to set the cell background color.
        +- Fixed bug where Firefox would throw an error when intialising an editor on an element that is hidden or not yet added to the DOM.
        +- Fixed bug where Firefox would throw an error when intialising an editor inside of a hidden iframe.
        +
        +## 4.7.3 - 2017-11-23
        +
        +### Added
        +- Added functionality to open the Codesample Plugin dialog when double clicking on a codesample. Patch contributed by dakuzen.
        +
        +### Fixed
        +- Fixed bug where undo/redo didn't work correctly with some formats and caret positions.
        +- Fixed bug where the color picker didn't show up in Table Plugin dialogs.
        +- Fixed bug where it wasn't possible to change the width of a table through the Table Plugin dialog.
        +- Fixed bug where the Charmap Plugin couldn't insert some special characters.
        +- Fixed bug where editing a newly inserted link would not actually edit the link but insert a new link next to it.
        +- Fixed bug where deleting all content in a table cell made it impossible to place the caret into it.
        +- Fixed bug where the vertical alignment field in the Table Plugin cell properties dialog didn't do anything.
        +- Fixed bug where an image with a caption showed two sets of resize handles in IE11.
        +- Fixed bug where pressing the enter button inside of an h1 with contenteditable set to true would sometimes produce a p tag.
        +- Fixed bug with backspace not working as expected before a noneditable element.
        +- Fixed bug where operating on Tablas with invalid rowspans would cause an error to be thrown.
        +- Fixed so a real base64 representation of the image is available on the blobInfo that the images_upload_handler gets called with.
        +- Fixed so the image upload tab is available when the images_upload_handler is defined (and not only when the images_upload_url is defined).
        +
        +## 4.7.2 - 2017-11-07
        +
        +### Added
        +- Added newly rewritten Table Plugin.
        +- Added support for attributes with colon in valid_elements and addValidElements.
        +- Added support for dailymotion short url in the Media Plugin. Patch contributed by maat8.
        +- Added support for converting to half pt when converting font size from px to pt. Patch contributed by danny6514.
        +- Added support for location hash to the Autosave plugin to make it work better with SPAs using hash routing.
        +- Added support for merging table cells when pasting a table into another table.
        +
        +### Changed
        +- Changed so the language packs are only loaded once. Patch contributed by 0xor1.
        +- Simplified the css for inline boundaries selection by switching to an attribute selector.
        +
        +### Fixed
        +- Fixed bug where an error would be thrown on editor initialization if the window.getSelection() returned null.
        +- Fixed bug where holding down control or alt keys made the keyboard navigation inside an inline boundary not work as expected.
        +- Fixed bug where applying formats in IE11 produced extra, empty paragraphs in the editor.
        +- Fixed bug where the Word Count Plugin didn't count some mathematical operators correctly.
        +- Fixed bug where removing an inline editor removed the element that the editor had been initialized on.
        +- Fixed bug where setting the selection to the end of an editable container caused some formatting problems.
        +- Fixed bug where an error would be thrown sometimes when an editor was removed because of the selection bookmark was being stored asynchronously.
        +- Fixed a bug where an editor initialized on an empty list did not contain any valid cursor positions.
        +- Fixed a bug with the Context Menu Plugin and webkit browsers on Mac where right-clicking inside a table would produce an incorrect selection.
        +- Fixed bug where the Image Plugin constrain proportions setting wasn't working as expected.
        +- Fixed bug where deleting the last character in a span with decorations produced an incorrect element when typing.
        +- Fixed bug where focusing on inline editors made the toolbar flicker when moving between elements quickly.
        +- Fixed bug where the selection would be stored incorrectly in inline editors when the mouseup event was fired outside the editor body.
        +- Fixed bug where toggling bold at the end of an inline boundary would toggle off the whole word.
        +- Fixed bug where setting the skin to false would not stop the loading of some skin css files.
        +- Fixed bug in mobile theme where pinch-to-zoom would break after exiting the editor.
        +- Fixed bug where sublists of a fully selected list would not be switched correctly when changing list style.
        +- Fixed bug where inserting media by source would break the UndoManager.
        +- Fixed bug where inserting some content into the editor with a specific selection would replace some content incorrectly.
        +- Fixed bug where selecting all content with ctrl+a in IE11 caused problems with untoggling some formatting.
        +- Fixed bug where the Buscar and Replace Plugin left some marker spans in the editor when undoing and redoing after replacing some content.
        +- Fixed bug where the editor would not get a scrollbar when using the Fullscreen and Autoresize plugins together.
        +- Fixed bug where the font selector would stop working correctly after selecting fonts three times.
        +- Fixed so pressing the enter key inside of an inline boundary inserts a br after the inline boundary element.
        +- Fixed a bug where it wasn't possible to use tab navigation inside of a table that was inside of a list.
        +- Fixed bug where end_container_on_empty_block would incorrectly remove elements.
        +- Fixed bug where content_styles weren't added to the Preview Plugin iframe.
        +- Fixed so the beforeSetContent/beforeGetContent events are preventable.
        +- Fixed bug where changing height value in Table Plugin advanced tab didn't do anything.
        +- Fixed bug where it wasn't possible to remove formatting from content in beginning of table cell.
        +
        +## 4.7.1 - 2017-10-09
        +
        +### Fixed
        +- Fixed bug where theme set to false on an inline editor produced an extra div element after the target element.
        +- Fixed bug where the editor drag icon was misaligned with the branding set to false.
        +- Fixed bug where doubled menu items were not being removed as expected with the removed_menuitems setting.
        +- Fixed bug where the Table of contents plugin threw an error when initialized.
        +- Fixed bug where it wasn't possible to add inline formats to text selected right to left.
        +- Fixed bug where the paste from plain text mode did not work as expected.
        +- Fixed so the style previews do not set color and background color when selected.
        +- Fixed bug where the Autolink plugin didn't work as expected with some formats applied on an empty editor.
        +- Fixed bug where the Textpattern plugin were throwing errors on some patterns.
        +- Fixed bug where the Save plugin saved all editors instead of only the active editor. Patch contributed by dannoe.
        +
        +## 4.7.0 - 2017-10-03
        +
        +### Added
        +- Added new mobile ui that is specifically designed for mobile devices.
        +
        +### Changed
        +- Updated the default skin to be more modern and white since white is preferred by most implementations.
        +- Restructured the default menus to be more similar to common office suites like Google Docs.
        +
        +### Fixed
        +- Fixed so theme can be set to false on both inline and iframe editor modes.
        +- Fixed bug where inline editor would add/remove the visualblocks css multiple times.
        +- Fixed bug where selection wouldn't be properly restored when editor lost focus and commands where invoked.
        +- Fixed bug where toc plugin would generate id:s for headers even though a toc wasn't inserted into the content.
        +- Fixed bug where is wasn't possible to drag/drop contents within the editor if paste_data_images where set to true.
        +- Fixed bug where getParam and close in WindowManager would get the first opened window instead of the last opened window.
        +- Fixed bug where delete would delete between cells inside a table in Firefox.
        +
        +## 4.6.7 - 2017-09-18
        +
        +### Added
        +- Added some missing translations to Image, Link and Help plugins.
        +
        +### Fixed
        +- Fixed bug where paste wasn't working in IOS.
        +- Fixed bug where the Word Count Plugin didn't count some mathematical operators correctly.
        +- Fixed bug where inserting a list in a table caused the cell to expand in height.
        +- Fixed bug where pressing enter in a list located inside of a table deleted list items instead of inserting new list item.
        +- Fixed bug where copy and pasting table cells produced inconsistent results.
        +- Fixed bug where initializing an editor with an ID of 'length' would throw an exception.
        +- Fixed bug where it was possible to split a non merged table cell.
        +- Fixed bug where copy and pasting a list with a very specific selection into another list would produce a nested list.
        +- Fixed bug where copy and pasting ordered lists sometimes produced unordered lists.
        +- Fixed bug where padded elements inside other elements would be treated as empty.
        +- Fixed so you can resize images inside a figure element.
        +- Fixed bug where an inline TinyMCE editor initialized on a table did not set selection on load in Chrome.
        +- Fixed the positioning of the inlite toolbar when the target element wasn't big enough to fit the toolbar.
        +
        +## 4.6.6 - 2017-08-30
        +
        +### Fixed
        +- Fixed so that notifications wrap long text content instead of bleeding outside the notification element.
        +- Fixed so the content_style css is added after the skin and custom stylesheets.
        +- Fixed bug where it wasn't possible to remove a table with the Cut button.
        +- Fixed bug where the center format wasn't getting the same font size as the other formats in the format preview.
        +- Fixed bug where the wordcount plugin wasn't counting hyphenated words correctly.
        +- Fixed bug where all content pasted into the editor was added to the end of the editor.
        +- Fixed bug where enter keydown on list item selection only deleted content and didn't create a new line.
        +- Fixed bug where destroying the editor while the content css was still loading caused error notifications on Firefox.
        +- Fixed bug where undoing cut operation in IE11 left some unwanted html in the editor content.
        +- Fixed bug where enter keydown would throw an error in IE11.
        +- Fixed bug where duplicate instances of an editor were added to the editors array when using the createEditor API.
        +- Fixed bug where the formatter applied formats on the wrong content when spellchecker was activated.
        +- Fixed bug where switching formats would reset font size on child nodes.
        +- Fixed bug where the table caption element weren't always the first descendant to the table tag.
        +- Fixed bug where pasting some content into the editor on chrome some newlines were removed.
        +- Fixed bug where it wasn't possible to remove a list if a list item was a table element.
        +- Fixed bug where copy/pasting partial selections of Tablas wouldn't produce a proper table.
        +- Fixed bug where the Buscarreplace plugin could not find consecutive spaces.
        +- Fixed bug where background color wasn't applied correctly on some partially selected contents.
        +
        +## 4.6.5 - 2017-08-02
        +
        +### Added
        +- Added new inline_boundaries_selector that allows you to specify the elements that should have boundaries.
        +- Added new local upload feature this allows the user to upload images directly from the image dialog.
        +- Added a new api for providing meta data for plugins. It will show up in the help dialog if it's provided.
        +
        +### Fixed
        +- Fixed so that the notifications created by the notification manager are more screen reader accessible.
        +- Fixed bug where changing the list format on multiple selected lists didn't change all of the lists.
        +- Fixed bug where the nonbreaking plugin would insert multiple undo levels when pressing the tab key.
        +- Fixed bug where delete/backspace wouldn't render a caret when all editor contents where deleted.
        +- Fixed bug where delete/backspace wouldn't render a caret if the deleted element was a single contentEditable false element.
        +- Fixed bug where the wordcount plugin wouldn't count words correctly if word where typed after applying a style format.
        +- Fixed bug where the wordcount plugin would count mathematical formulas as multiple words for example 1+1=2.
        +- Fixed bug where formatting of triple clicked blocks on Chrome/Safari would result in styles being added outside the visual selection.
        +- Fixed bug where paste would add the contents to the end of the editor area when inline mode was used.
        +- Fixed bug where toggling off bold formatting on text entered in a new paragraph would add an extra line break.
        +- Fixed bug where autolink plugin would only produce a link on every other consecutive link on Firefox.
        +- Fixed bug where it wasn't possible to select all contents if the content only had one pre element.
        +- Fixed bug where sizzle would produce lagging behavior on some sites due to repaints caused by feature detection.
        +- Fixed bug where toggling off inline formats wouldn't include the space on selected contents with leading or trailing spaces.
        +- Fixed bug where the cut operation in UI wouldn't work in Chrome.
        +- Fixed bug where some legacy editor initialization logic would throw exceptions about editor settings not being defined.
        +- Fixed bug where it wasn't possible to apply text color to links if they where part of a non collapsed selection.
        +- Fixed bug where an exception would be thrown if the user selected a video element and then moved the focus outside the editor.
        +- Fixed bug where list operations didn't work if there where block elements inside the list items.
        +- Fixed bug where applying block formats to lists wrapped in block elements would apply to all elements in that wrapped block.
        +
        +## 4.6.4 - 2017-06-13
        +
        +### Fixed
        +- Fixed bug where the editor would move the caret when clicking on the scrollbar next to a content editable false block.
        +- Fixed bug where the text color select dropdowns wasn't placed correctly when they didn't fit the width of the screen.
        +- Fixed bug where the default editor line height wasn't working for mixed font size contents.
        +- Fixed bug where the content css files for inline editors were loaded multiple times for multiple editor instances.
        +- Fixed bug where the initial value of the font size/font family dropdowns wasn't displayed.
        +- Fixed bug where the I18n api was not supporting arrays as the translation replacement values.
        +- Fixed bug where chrome would display "The given range isn't in document." errors for invalid ranges passed to setRng.
        +- Fixed bug where the compat3x plugin wasn't working since the global tinymce references wasn't resolved correctly.
        +- Fixed bug where the preview plugin wasn't encoding the base url passed into the iframe contents producing a xss bug.
        +- Fixed bug where the dom parser/serializer wasn't handling some special elements like noframes, title and xmp.
        +- Fixed bug where the dom parser/serializer wasn't handling cdata sections with comments inside.
        +- Fixed bug where the editor would scroll to the top of the editable area if a dialog was closed in inline mode.
        +- Fixed bug where the link dialog would not display the right rel value if rel_list was configured.
        +- Fixed bug where the context menu would select images on some platFormularios but not others.
        +- Fixed bug where the filenames of images were not retained on dragged and drop into the editor from the desktop.
        +- Fixed bug where the paste plugin would misrepresent newlines when pasting plain text and having forced_root_block configured.
        +- Fixed so that the error messages for the imagetools plugin is more human readable.
        +- Fixed so the internal validate setting for the parser/serializer can't be set from editor initialization settings.
        +
        +## 4.6.3 - 2017-05-30
        +
        +### Fixed
        +- Fixed bug where the arrow keys didn't work correctly when navigating on nested inline boundary elements.
        +- Fixed bug where delete/backspace didn't work correctly on nested inline boundary elements.
        +- Fixed bug where image editing didn't work on subsequent edits of the same image.
        +- Fixed bug where charmap descriptions wouldn't properly wrap if they exceeded the width of the box.
        +- Fixed bug where the default image upload handler only accepted 200 as a valid http status code.
        +- Fixed so rel on target=_blank links gets forced with only noopener instead of both noopener and noreferrer.
        +
        +## 4.6.2 - 2017-05-23
        +
        +### Fixed
        +- Fixed bug where the SaxParser would run out of memory on very large documents.
        +- Fixed bug with formatting like font size wasn't applied to del elements.
        +- Fixed bug where various api calls would be throwing exceptions if they where invoked on a removed editor instance.
        +- Fixed bug where the branding position would be incorrect if the editor was inside a hidden tab and then later showed.
        +- Fixed bug where the color levels feature in the imagetools dialog wasn't working properly.
        +- Fixed bug where imagetools dialog wouldn't pre-load images from CORS domains, before trying to prepare them for editing.
        +- Fixed bug where the tab key would move the caret to the next table cell if being pressed inside a list inside a table.
        +- Fixed bug where the cut/copy operations would loose parent context like the current format etc.
        +- Fixed bug with format preview not working on invalid elements excluded by valid_elements.
        +- Fixed bug where blocks would be merged in incorrect order on backspace/delete.
        +- Fixed bug where zero length text nodes would cause issues with the undo logic if there where iframes present.
        +- Fixed bug where the font size/family select lists would throw errors if the first node was a comment.
        +- Fixed bug with csp having to allow local script evaluation since it was used to detect global scope.
        +- Fixed bug where CSP required a relaxed option for javascript: URLs in unsupported legacy browsers.
        +- Fixed bug where a fake caret would be rendered for td with the contenteditable=false.
        +- Fixed bug where typing would be blocked on IE 11 when within a nested contenteditable=true/false structure.
        +
        +## 4.6.1 - 2017-05-10
        +
        +### Added
        +- Added configuration option to list plugin to disable tab indentation.
        +
        +### Fixed
        +- Fixed bug where format change on very specific content could cause the selection to change.
        +- Fixed bug where TinyMCE could not be lazyloaded through jquery integration.
        +- Fixed bug where entities in style attributes weren't decoded correctly on paste in webkit.
        +- Fixed bug where fontsize_formats option had been renamed incorrectly.
        +- Fixed bug with broken backspace/delete behaviour between contenteditable=false blocks.
        +- Fixed bug where it wasn't possible to backspace to the previous line with the inline boundaries functionality turned on.
        +- Fixed bug where is wasn't possible to move caret left and right around a linked image with the inline boundaries functionality turned on.
        +- Fixed bug where pressing enter after/before hr element threw exception. Patch contributed bradleyke.
        +- Fixed so the CSS in the visualblocks plugin doesn't overwrite background color. Patch contributed by Christian Rank.
        +- Fixed bug where multibyte characters weren't encoded correctly. Patch contributed by James Tarkenton.
        +- Fixed bug where shift-click to select within contenteditable=true fields wasn't working.
        +
        +## 4.6.0 - 2017-05-04
        +
        +### Added
        +- Added an inline boundary caret position feature that makes it easier to type at the beginning/end of links/code elements.
        +- Added a help plugin that adds a button and a dialog showing the editor shortcuts and loaded plugins.
        +- Added an inline_boundaries option that allows you to disable the inline boundary feature if it's not desired.
        +- Added a new ScrollIntoView event that allows you to override the default scroll to element behavior.
        +- Added role and aria- attributes as valid elements in the default valid elements config.
        +- Added new internal flag for PastePreProcess/PastePostProcess this is useful to know if the paste was coming from an external source.
        +- Added new ignore function to UndoManager this works similar to transact except that it doesn't add an undo level by default.
        +
        +### Fixed
        +- Fixed so that urls gets retained for images when being edited. This url is then passed on to the upload handler.
        +- Fixed so that the editors would be initialized on readyState interactive instead of complete.
        +- Fixed so that the init event of the editor gets fired once all contentCSS files have been properly loaded.
        +- Fixed so that width/height of the editor gets taken from the textarea element if it's explicitly specified in styles.
        +- Fixed so that keep_styles set to false no longer clones class/style from the previous paragraph on enter.
        +- Fixed so that the default line-height is 1.2em to avoid zwnbsp characters from producing text rendering glitches on Windows.
        +- Fixed so that loading errors of content css gets presented by a notification message.
        +- Fixed so figure image elements can be linked when selected this wraps the figure image in a anchor element.
        +- Fixed bug where it wasn't possible to copy/paste rows with colspans by using the table copy/paste feature.
        +- Fixed bug where the protect setting wasn't properly applied to header/footer parts when using the fullpage plugin.
        +- Fixed bug where custom formats that specified upper case element names where not applied correctly.
        +- Fixed bug where some screen readers weren't reading buttons due to an aria specific fix for IE 8.
        +- Fixed bug where cut wasn't working correctly on iOS due to it's clipboard API not working correctly.
        +- Fixed bug where Edge would paste div elements instead of paragraphs when pasting plain text.
        +- Fixed bug where the textpattern plugin wasn't dealing with trailing punctuations correctly.
        +- Fixed bug where image editing would some times change the image format from jpg to png.
        +- Fixed bug where some UI elements could be inserted into the toolbar even if they where not Registroed.
        +- Fixed bug where it was possible to click the TD instead of the character in the character map and that caused an exception.
        +- Fixed bug where the font size/font family dropdowns would sometimes show an incorrect value due to css not being loaded in time.
        +- Fixed bug with the media plugin inserting undefined instead of retaining size when media_dimensions was set to false.
        +- Fixed bug with deleting images when forced_root_blocks where set to false.
        +- Fixed bug where input focus wasn't properly handled on nested content editable elements.
        +- Fixed bug where Chrome/Firefox would throw an exception when selecting images due to recent change of setBaseAndExtent support.
        +- Fixed bug where malformed blobs would throw exceptions now they are simply ignored.
        +- Fixed bug where backspace/delete wouldn't work properly in some cases where all contents was selected in WebKit.
        +- Fixed bug with Angular producing errors since it was expecting events objects to be patched with their custom properties.
        +- Fixed bug where the formatter would apply formatting to spellchecker errors now all bogus elements are excluded.
        +- Fixed bug with backspace/delete inside table caption elements wouldn't behave properly on IE 11.
        +- Fixed bug where typing after a contenteditable false inline element could move the caret to the end of that element.
        +- Fixed bug where backspace before/after contenteditable false blocks wouldn't properly remove the right element.
        +- Fixed bug where backspace before/after contenteditable false inline elements wouldn't properly empty the current block element.
        +- Fixed bug where vertical caret navigation with a custom line-height would sometimes match incorrect positions.
        +- Fixed bug with paste on Edge where character encoding wasn't handled properly due to a browser bug.
        +- Fixed bug with paste on Edge where extra fragment data was inserted into the contents when pasting.
        +- Fixed bug with pasting contents when having a whole block element selected on WebKit could cause WebKit spans to appear.
        +- Fixed bug where the visualchars plugin wasn't working correctly showing invisible nbsp characters.
        +- Fixed bug where browsers would hang if you tried to load some malformed html contents.
        +- Fixed bug where the init call promise wouldn't resolve if the specified selector didn't find any matching elements.
        +- Fixed bug where the Schema isValidChild function was case sensitive.
        +
        +### Removed
        +- Dropped support for IE 8-10 due to market share and lack of support from Microsoft. See tinymce docs for details.
        +
        +## 4.5.3 - 2017-02-01
        +
        +### Added
        +- Added keyboard navigation for menu buttons when the menu is in focus.
        +- Added api to the list plugin for setting custom classes/attributes on lists.
        +- Added validation for the anchor plugin input field according to W3C id naming specifications.
        +
        +### Fixed
        +- Fixed bug where media placeholders were removed after resize with the forced_root_block setting set to false.
        +- Fixed bug where deleting selections with similar sibling nodes sometimes deleted the whole document.
        +- Fixed bug with inlite theme where several toolbars would appear scrolling when more than one instance of the editor was in use.
        +- Fixed bug where the editor would throw error with the fontselect plugin on hidden editor instances in Firefox.
        +- Fixed bug where the background color would not stretch to the font size.
        +- Fixed bug where font size would be removed when changing background color.
        +- Fixed bug where the undomanager trimmed away whitespace between nodes on undo/redo.
        +- Fixed bug where media_dimensions=false in media plugin caused the editor to throw an error.
        +- Fixed bug where IE was producing font/u elements within links on paste.
        +- Fixed bug where some button tooltips were broken when compat3x was in use.
        +- Fixed bug where backspace/delete/typeover would remove the caption element.
        +- Fixed bug where powerspell failed to function when compat3x was enabled.
        +- Fixed bug where it wasn't possible to apply sub/sup on text with large font size.
        +- Fixed bug where pre tags with spaces weren't treated as content.
        +- Fixed bug where Meta+A would select the entire document instead of all contents in nested ce=true elements.
        +
        +## 4.5.2 - 2017-01-04
        +
        +### Fixed
        +- Added missing keyboard shortcut description for the underline menu item in the format menu.
        +- Fixed bug where external blob urls wasn't properly handled by editor upload logic. Patch contributed by David Oviedo.
        +- Fixed bug where urls wasn't treated as a single word by the wordcount plugin.
        +- Fixed bug where nbsp characters wasn't treated as word delimiters by the wordcount plugin.
        +- Fixed bug where editor instance wasn't properly passed to the format preview logic. Patch contributed by NullQuery.
        +- Fixed bug where the fake caret wasn't hidden when you moved selection to a cE=false element.
        +- Fixed bug where it wasn't possible to edit existing code sample blocks.
        +- Fixed bug where it wasn't possible to delete editor contents if the selection included an empty block.
        +- Fixed bug where the formatter wasn't expanding words on some international characters. Patch contributed by Martin Larochelle.
        +- Fixed bug where the open link feature wasn't working correctly on IE 11.
        +- Fixed bug where enter before/after a cE=false block wouldn't properly padd the paragraph with an br element.
        +- Fixed so font size and font family select boxes always displays a value by using the runtime style as a fallback.
        +- Fixed so missing plugins will be logged to console as warnings rather than halting the initialization of the editor.
        +- Fixed so splitbuttons become normal buttons in advlist plugin if styles are empty. Patch contributed by René Schleusner.
        +- Fixed so you can multi insert rows/cols by selecting table cells and using insert rows/columns.
        +
        +## 4.5.1 - 2016-12-07
        +
        +### Fixed
        +- Fixed bug where the lists plugin wouldn't initialize without the advlist plugins if served from cdn.
        +- Fixed bug where selectors with "*" would cause the style format preview to throw an error.
        +- Fixed bug with toggling lists off on lists with empty list items would throw an error.
        +- Fixed bug where editing images would produce non existing blob uris.
        +- Fixed bug where the offscreen toc selection would be treated as the real toc element.
        +- Fixed bug where the aria level attribute for element path would have an incorrect start index.
        +- Fixed bug where the offscreen selection of cE=false that where very wide would be shown onscreen. Patch contributed by Steven Bufton.
        +- Fixed so the default_link_target gets applied to links created by the autolink plugin.
        +- Fixed so that the name attribute gets removed by the anchor plugin if editing anchors.
        +
        +## 4.5.0 - 2016-11-23
        +
        +### Added
        +- Added new toc plugin allows you to insert table of contents based on editor headings.
        +- Added new auto complete menu to all url fields. Adds history, link to anchors etc.
        +- Added new sidebar api that allows you to add custom sidebar panels and buttons to toggle these.
        +- Added new insert menu button that allows you to have multiple insert functions under the same menu button.
        +- Added new open link feature to ctrl+click, alt+enter and context menu.
        +- Added new media_embed_handler option to allow the media plugin to be populated with custom embeds.
        +- Added new support for editing transparent images using the image tools dialog.
        +- Added new images_reuse_filename option to allow filenames of images to be retained for upload.
        +- Added new security feature where links with target="_blank" will by default get rel="noopener noreferrer".
        +- Added new allow_unsafe_link_target to allow you to opt-out of the target="_blank" security feature.
        +- Added new style_formats_autohide option to automatically hide styles based on context.
        +- Added new codesample_content_css option to specify where the code sample prism css is loaded from.
        +- Added new support for Japanese/Chinese word count following the unicode standards on this.
        +- Added new fragmented undo levels this dramatically reduces flicker on contents with iframes.
        +- Added new live previews for complex elements like table or lists.
        +
        +### Fixed
        +- Fixed bug where it wasn't possible to properly tab between controls in a dialog with a disabled form item control.
        +- Fixed bug where firefox would generate a rectangle on elements produced after/before a cE=false elements.
        +- Fixed bug with advlist plugin not switching list element format properly in some edge cases.
        +- Fixed bug where col/rowspans wasn't correctly computed by the table plugin in some cases.
        +- Fixed bug where the table plugin would thrown an error if object_resizing was disabled.
        +- Fixed bug where some invalid markup would cause issues when running in XHTML mode. Patch contributed by Charles Bourasseau.
        +- Fixed bug where the fullscreen class wouldn't be removed properly when closing dialogs.
        +- Fixed bug where the PastePlainTextToggle event wasn't fired by the paste plugin when the state changed.
        +- Fixed bug where table the row type wasn't properly updated in table row dialog. Patch contributed by Matthias Balmer.
        +- Fixed bug where select all and cut wouldn't place caret focus back to the editor in WebKit. Patch contributed by Daniel Jalkut.
        +- Fixed bug where applying cell/row properties to multiple cells/rows would reset other unchanged properties.
        +- Fixed bug where some elements in the schema would have redundant/incorrect children.
        +- Fixed bug where selector and target options would cause issues if used together.
        +- Fixed bug where drag/drop of images from desktop on chrome would thrown an error.
        +- Fixed bug where cut on WebKit/Blink wouldn't add an undo level.
        +- Fixed bug where IE 11 would scroll to the cE=false elements when they where selected.
        +- Fixed bug where keys like F5 wouldn't work when a cE=false element was selected.
        +- Fixed bug where the undo manager wouldn't stop the typing state when commands where executed.
        +- Fixed bug where unlink on wrapped links wouldn't work properly.
        +- Fixed bug with drag/drop of images on WebKit where the image would be deleted form the source editor.
        +- Fixed bug where the visual characters mode would be disabled when contents was extracted from the editor.
        +- Fixed bug where some browsers would toggle of formats applied to the caret when clicking in the editor toolbar.
        +- Fixed bug where the custom theme function wasn't working correctly.
        +- Fixed bug where image option for custom buttons required you to have icon specified as well.
        +- Fixed bug where the context menu and contextual toolbars would be visible at the same time and sometimes overlapping.
        +- Fixed bug where the noneditable plugin would double wrap elements when using the noneditable_regexp option.
        +- Fixed bug where Tablas would get padding instead of margin when you used the indent button.
        +- Fixed bug where the charmap plugin wouldn't properly insert non breaking spaces.
        +- Fixed bug where the color previews in color input boxes wasn't properly updated.
        +- Fixed bug where the list items of previous lists wasn't merged in the right order.
        +- Fixed bug where it wasn't possible to drag/drop inline-block cE=false elements on IE 11.
        +- Fixed bug where some table cell merges would produce incorrect rowspan/colspan.
        +- Fixed so the font size of the editor defaults to 14px instead of 11px this can be overridden by custom css.
        +- Fixed so wordcount is debounced to reduce cpu hogging on larger texts.
        +- Fixed so tinymce global gets properly exported as a module when used with some module bundlers.
        +- Fixed so it's possible to specify what css properties you want to preview on specific formats.
        +- Fixed so anchors are contentEditable=false while within the editor.
        +- Fixed so selected contents gets wrapped in a inline code element by the codesample plugin.
        +- Fixed so conditional comments gets properly stripped independent of case. Patch contributed by Georgii Dolzhykov.
        +- Fixed so some escaped css sequences gets properly handled. Patch contributed by Georgii Dolzhykov.
        +- Fixed so notifications with the same message doesn't get displayed at the same time.
        +- Fixed so F10 can be used as an alternative key to focus to the toolbar.
        +- Fixed various api documentation issues and typos.
        +
        +### Removed
        +- Removed layer plugin since it wasn't really ported from 3.x and there doesn't seem to be much use for it.
        +- Removed moxieplayer.swf from the media plugin since it wasn't used by the media plugin.
        +- Removed format state from the advlist plugin to be more consistent with common word processors.
        +
        +## 4.4.3 - 2016-09-01
        +
        +### Fixed
        +- Fixed bug where copy would produce an exception on Chrome.
        +- Fixed bug where deleting lists on IE 11 would merge in correct text nodes.
        +- Fixed bug where deleting partial lists with indentation wouldn't cause proper normalization.
        +
        +## 4.4.2 - 2016-08-25
        +
        +### Added
        +- Added new importcss_exclusive option to disable unique selectors per group.
        +- Added new group specific selector_converter option to importcss plugin.
        +- Added new codesample_languages option to apply custom languages to codesample plugin.
        +- Added new codesample_dialog_width/codesample_dialog_height options.
        +
        +### Fixed
        +- Fixed bug where fullscreen button had an incorrect keyboard shortcut.
        +- Fixed bug where backspace/delete wouldn't work correctly from a block to a cE=false element.
        +- Fixed bug where smartpaste wasn't detecting links with special characters in them like tilde.
        +- Fixed bug where the editor wouldn't get proper focus if you clicked on a cE=false element.
        +- Fixed bug where it wasn't possible to copy/paste table rows that had merged cells.
        +- Fixed bug where merging cells could some times produce invalid col/rowspan attibute values.
        +- Fixed bug where getBody would sometimes thrown an exception now it just returns null if the iframe is clobbered.
        +- Fixed bug where drag/drop of cE=false element wasn't properly constrained to viewport.
        +- Fixed bug where contextmenu on Mac would collapse any selection to a caret.
        +- Fixed bug where rtl mode wasn't rendered properly when loading a language pack with the rtl flag.
        +- Fixed bug where Kamer word bounderies would be stripped from contents.
        +- Fixed bug where lists would sometimes render two dots or numbers on the same line.
        +- Fixed bug where the skin_url wasn't used by the inlite theme.
        +- Fixed so data attributes are ignored when comparing formats in the formatter.
        +- Fixed so it's possible to disable inline toolbars in the inlite theme.
        +- Fixed so template dialog gets resized if it doesn't fit the window viewport.
        +
        +## 4.4.1 - 2016-07-26
        +
        +### Added
        +- Added smart_paste option to paste plugin to allow disabling the paste behavior if needed.
        +
        +### Fixed
        +- Fixed bug where png urls wasn't properly detected by the smart paste logic.
        +- Fixed bug where the element path wasn't working properly when multiple editor instances where used.
        +- Fixed bug with creating lists out of multiple paragraphs would just create one list item instead of multiple.
        +- Fixed bug where scroll position wasn't properly handled by the inlite theme to place the toolbar properly.
        +- Fixed bug where multiple instances of the editor using the inlite theme didn't render the toolbar properly.
        +- Fixed bug where the shortcut label for fullscreen mode didn't match the actual shortcut key.
        +- Fixed bug where it wasn't possible to select cE=false blocks using touch devices on for example iOS.
        +- Fixed bug where it was possible to select the child image within a cE=false on IE 11.
        +- Fixed so inserts of html containing lists doesn't merge with any existing lists unless it's a paste operation.
        +
        +## 4.4.0 - 2016-06-30
        +
        +### Added
        +- Added new inlite theme this is a more lightweight inline UI.
        +- Added smarter paste logic that auto detects urls in the clipboard and inserts images/links based on that.
        +- Added a better image resize algorithm for better image quality in the imagetools plugin.
        +
        +### Fixed
        +- Fixed bug where it wasn't possible to drag/dropping cE=false elements on FF.
        +- Fixed bug where backspace/delete before/after a cE=false block would produce a new paragraph.
        +- Fixed bug where list style type css property wasn't preserved when indenting lists.
        +- Fixed bug where merging of lists where done even if the list style type was different.
        +- Fixed bug where the image_dataimg_filter function wasn't used when pasting images.
        +- Fixed bug where nested editable within a non editable element would cause scroll on focus in Chrome.
        +- Fixed so invalid targets for inline mode is blocked on initialization. We only support elements that can have children.
        +
        +## 4.3.13 - 2016-06-08
        +
        +### Added
        +- Added characters with a diacritical mark to charmap plugin. Patch contributed by Dominik Schilling.
        +- Added better error handling if the image proxy service would produce errors.
        +
        +### Fixed
        +- Fixed issue with pasting list items into list items would produce nested list rather than a merged list.
        +- Fixed bug where table selection could get stuck in selection mode for inline editors.
        +- Fixed bug where it was possible to place the caret inside the resize grid elements.
        +- Fixed bug where it wasn't possible to place in elements horizontally adjacent cE=false blocks.
        +- Fixed bug where multiple notifications wouldn't be properly placed on screen.
        +- Fixed bug where multiple editor instance of the same id could be produces in some specific integrations.
        +
        +## 4.3.12 - 2016-05-10
        +
        +### Fixed
        +- Fixed bug where focus calls couldn't be made inside the editors PostRender event handler.
        +- Fixed bug where some translations wouldn't work as expected due to a bug in editor.translate.
        +- Fixed bug where the node change event could fire with a node out side the root of the editor.
        +- Fixed bug where Chrome wouldn't properly present the keyboard paste clipboard details when paste was clicked.
        +- Fixed bug where merged cells in Tablas couldn't be selected from right to left.
        +- Fixed bug where insert row wouldn't properly update a merged cells rowspan property.
        +- Fixed bug where the color input boxes preview field wasn't properly set on initialization.
        +- Fixed bug where IME composition inside table cells wouldn't work as expected on IE 11.
        +- Fixed so all shadow dom support is under and experimental flag due to flaky browser support.
        +
        +## 4.3.11 - 2016-04-25
        +
        +### Fixed
        +- Fixed bug where it wasn't possible to insert empty blocks though the API unless they where padded.
        +- Fixed bug where you couldn't type the Euro character on Windows.
        +- Fixed bug where backspace/delete from a cE=false element to a text block didn't work properly.
        +- Fixed bug where the text color default grid would render incorrectly.
        +- Fixed bug where the codesample plugin wouldn't load the css in the editor for multiple editors.
        +- Fixed so the codesample plugin textarea gets focused by default.
        +
        +## 4.3.10 - 2016-04-12
        +
        +### Fixed
        +- Fixed bug where the key "y" on WebKit couldn't be entered due to conflict with keycode for F10 on keypress.
        +
        +## 4.3.9 - 2016-04-12
        +
        +### Added
        +- Added support for focusing the contextual toolbars using keyboard.
        +- Added keyboard support for slider UI controls. You can no increase/decrease using arrow keys.
        +- Added url pattern matching for Dailymotion to media plugin. Patch contributed by Bertrand Darbon.
        +- Added body_class to template plugin preview. Patch contributed by Milen Petrinski.
        +- Added options to better override textcolor pickers with custom colors. Patch contributed by Xavier Boubert.
        +- Added visual arrows to inline contextual toolbars so that they point to the element being active.
        +
        +### Changed
        +- Changed the Meta+Shift+F shortcut to Ctrl+Shift+F since Czech, Slovak, Polish languages used the first one for input.
        +
        +### Fixed
        +- Fixed so toolbars for Tablas or other larger elements get better positioned below the scrollable viewport.
        +- Fixed bug where it was possible to click links inside cE=false blocks.
        +- Fixed bug where event targets wasn't properly handled in Safari Technical Preview.
        +- Fixed bug where drag/drop text in FF 45 would make the editor caret invisible.
        +- Fixed bug where the remove state wasn't properly set on editor instances when detected as clobbered.
        +- Fixed bug where offscreen selection of some cE=false elements would render onscreen. Patch contributed by Steven Bufton
        +- Fixed bug where enter would clone styles out side the root on editors inside a span. Patch contributed by ChristophKaser.
        +- Fixed bug where drag/drop of images into the editor didn't work correctly in FF.
        +- Fixed so the first item in panels for the imagetools dialog gets proper keyboard focus.
        +
        +## 4.3.8 - 2016-03-15
        +
        +### Fixed
        +- Fixed bug where inserting HR at the end of a block element would produce an extra empty block.
        +- Fixed bug where links would be clickable when readonly mode was enabled.
        +- Fixed bug where the formatter would normalize to the wrong node on very specific content.
        +- Fixed bug where some nested list items couldn't be indented properly.
        +- Fixed bug where links where clickable in the preview dialog.
        +- Fixed so the alt attribute doesn't get padded with an empty value by default.
        +- Fixed so nested alignment works more correctly. You will now alter the alignment to the closest block parent.
        +
        +## 4.3.7 - 2016-03-02
        +
        +### Fixed
        +- Fixed bug where incorrect icons would be rendered for imagetools edit and color levels.
        +- Fixed bug where navigation using arrow keys inside a SelectBox didn't move up/down.
        +- Fixed bug where the visualblocks plugin would render borders round internal UI elements.
        +
        +## 4.3.6 - 2016-03-01
        +
        +### Added
        +- Added new paste_remember_plaintext_info option to allow a global disable of the plain text mode notification.
        +- Added new PastePlainTextToggle event that fires when plain text mode toggles on/off.
        +
        +### Fixed
        +- Fixed bug where it wasn't possible to select media elements since the drag logic would snap it to mouse cursor.
        +- Fixed bug where it was hard to place the caret inside nested cE=true elements when the outer cE=false element was focused.
        +- Fixed bug where editors wouldn't properly initialize if both selector and mode where used.
        +- Fixed bug where IME input inside table cells would switch the IME off.
        +- Fixed bug where selection inside the first table cell would cause the whole table cell to get selected.
        +- Fixed bug where error handling of images being uploaded wouldn't properly handle faulty statuses.
        +- Fixed bug where inserting contents before a HR would cause an exception to be thrown.
        +- Fixed bug where copy/paste of Excel data would be inserted as an image.
        +- Fixed caret position issues with copy/paste of inline block cE=false elements.
        +- Fixed issues with various menu item focus bugs in Chrome. Where the focused menu bar item wasn't properly blurred.
        +- Fixed so the notifications have a solid background since it would be hard to read if there where text under it.
        +- Fixed so notifications gets animated similar to the ones used by dialogs.
        +- Fixed so larger images that gets pasted is handled better.
        +- Fixed so the window close button is more uniform on various platform and also increased it's hit area.
        +
        +## 4.3.5 - 2016-02-11
        +
        +Npm version bump due to package not being fully updated.
        +
        +## 4.3.4 - 2016-02-11
        +
        +### Added
        +- Added new OpenWindow/CloseWindow events that gets fired when windows open/close.
        +- Added new NewCell/NewRow events that gets fired when table cells/rows are created.
        +- Added new Promise return value to tinymce.init makes it easier to handle initialization.
        +
        +### Fixed
        +- Fixed various bugs with drag/drop of contentEditable:false elements.
        +- Fixed bug where deleting of very specific nested list items would result in an odd list.
        +- Fixed bug where lists would get merged with adjacent lists outside the editable inline root.
        +- Fixed bug where MS Edge would crash when closing a dialog then clicking a menu item.
        +- Fixed bug where table cell selection would add undo levels.
        +- Fixed bug where table cell selection wasn't removed when inline editor where removed.
        +- Fixed bug where table cell selection wouldn't work properly on nested Tablas.
        +- Fixed bug where table merge menu would be available when merging between thead and tbody.
        +- Fixed bug where table row/column resize wouldn't get properly removed when the editor was removed.
        +- Fixed bug where Chrome would scroll to the editor if there where a empty hash value in document url.
        +- Fixed bug where the cache suffix wouldn't work correctly with the importcss plugin.
        +- Fixed bug where selection wouldn't work properly on MS Edge on Windows Phone 10.
        +- Fixed so adjacent pre blocks gets joined into one pre block since that seems like the user intent.
        +- Fixed so events gets properly dispatched in shadow dom. Patch provided by Nazar Mokrynskyi.
        +
        +### Removed
        +- Removed the jQuery version the jQuery plugin is now moved into the main package.
        +- Removed jscs from build process since eslint can now handle code style checking.
        +
        +## 4.3.3 - 2016-01-14
        +
        +### Added
        +- Added new table_resize_bars configuration setting.  This setting allows you to disable the table resize bars.
        +- Added new beforeInitialize event to tinymce.util.XHR lets you modify XHR properties before open. Patch contributed by Brent Clintel.
        +- Added new autolink_pattern setting to autolink plugin. Enables you to override the default autolink formats. Patch contributed by Ben Tiedt.
        +- Added new charmap option that lets you override the default charmap of the charmap plugin.
        +- Added new charmap_append option that lets you add new characters to the default charmap of the charmap plugin.
        +- Added new insertCustomChar event that gets fired when a character is inserted by the charmap plugin.
        +
        +### Fixed
        +- Fixed bug where table cells started with a superfluous   in IE10+.
        +- Fixed bug where table plugin would retain all BR tags when cells were merged.
        +- Fixed bug where media plugin would strip underscores from youtube urls.
        +- Fixed bug where IME input would fail on IE 11 if you typed within a table.
        +- Fixed bug where double click selection of a word would remove the space before the word on insert contents.
        +- Fixed bug where table plugin would produce exceptions when hovering Tablas with invalid structure.
        +- Fixed bug where fullscreen wouldn't scroll back to it's original position when untoggled.
        +- Fixed so the template plugins templates setting can be a function that gets a callback that can provide templates.
        +
        +## 4.3.2 - 2015-12-14
        +
        +### Fixed
        +- Fixed bug where the resize bars for table cells were not affected by the object_resizing property.
        +- Fixed bug where the contextual table toolbar would appear incorrectly if TinyMCE was initialized inline inside a table.
        +- Fixed bug where resizing table cells did not fire a node change event or add an undo level.
        +- Fixed bug where double click selection of text on IE 11 wouldn't work properly.
        +- Fixed bug where codesample plugin would incorrectly produce br elements inside code elements.
        +- Fixed bug where media plugin would strip dashes from youtube urls.
        +- Fixed bug where it was possible to move the caret into the table resize bars.
        +- Fixed bug where drag/drop into a cE=false element was possible on IE.
        +
        +## 4.3.1 - 2015-11-30
        +
        +### Fixed
        +- Fixed so it's possible to disable the table inline toolbar by setting it to false or an empty string.
        +- Fixed bug where it wasn't possible to resize some Tablas using the drag handles.
        +- Fixed bug where unique id:s would clash for multiple editor instances and cE=false selections.
        +- Fixed bug where the same plugin could be initialized multiple times.
        +- Fixed bug where the table inline toolbars would be displayed at the same time as the image toolbars.
        +- Fixed bug where the table selection rect wouldn't be removed when selecting another control element.
        +
        +## 4.3.0 - 2015-11-23
        +
        +### Added
        +- Added new table column/row resize support. Makes it a lot more easy to resize the columns/rows in a table.
        +- Added new table inline toolbar. Makes it easier to for example add new rows or columns to a table.
        +- Added new notification API. Lets you display floating notifications to the end user.
        +- Added new codesample plugin that lets you insert syntax highlighted pre elements into the editor.
        +- Added new image_caption to images. Lets you create images with captions using a HTML5 figure/figcaption elements.
        +- Added new live previews of embeded videos. Lets you play the video right inside the editor.
        +- Added new setDirty method and "dirty" event to the editor. Makes it easier to track the dirty state change.
        +- Added new setMode method to Editor instances that lets you dynamically switch between design/readonly.
        +- Added new core support for contentEditable=false elements within the editor overrides the browsers broken behavior.
        +
        +### Changed
        +- Rewrote the noneditable plugin to use the new contentEditable false core logic.
        +
        +### Fixed
        +- Fixed so the dirty state doesn't set to false automatically when the undo index is set to 0.
        +- Fixed the Selection.placeCaretAt so it works better on IE when the coordinate is between paragraphs.
        +- Fixed bug where data-mce-bogus="all" element contents where counted by the word count plugin.
        +- Fixed bug where contentEditable=false elements would be indented by the indent buttons.
        +- Fixed bug where images within contentEditable=false would be selected in WebKit on mouse click.
        +- Fixed bug in DOMUntils split method where the replacement parameter wouldn't work on specific cases.
        +- Fixed bug where the importcss plugin would import classes from the skin content css file.
        +- Fixed so all button variants have a wrapping span for it's text to make it easier to skin.
        +- Fixed so it's easier to exit pre block using the arrow keys.
        +- Fixed bug where listboxes with fix widths didn't render correctly.
        +
        +## 4.2.8 - 2015-11-13
        +
        +### Fixed
        +- Fixed bug where it was possible to delete Tablas as the inline root element if all columns where selected.
        +- Fixed bug where the UI buttons active state wasn't properly updated due to recent refactoring of that logic.
        +
        +## 4.2.7 - 2015-10-27
        +
        +### Fixed
        +- Fixed bug where backspace/delete would remove all formats on the last paragraph character in WebKit/Blink.
        +- Fixed bug where backspace within a inline format element with a bogus caret container would move the caret.
        +- Fixed bug where backspace/delete on selected table cells wouldn't add an undo level.
        +- Fixed bug where script tags embedded within the editor could sometimes get a mce- prefix prepended to them
        +- Fixed bug where validate: false option could produce an error to be thrown from the Serialization step.
        +- Fixed bug where inline editing of a table as the root element could let the user delete that table.
        +- Fixed bug where inline editing of a table as the root element wouldn't properly handle enter key.
        +- Fixed bug where inline editing of a table as the root element would normalize the selection incorrectly.
        +- Fixed bug where inline editing of a list as the root element could let the user delete that list.
        +- Fixed bug where inline editing of a list as the root element could let the user split that list.
        +- Fixed bug where resize handles would be rendered on editable root elements such as table.
        +
        +## 4.2.6 - 2015-09-28
        +
        +### Added
        +- Added capability to set request headers when using XHRs.
        +- Added capability to upload local images automatically default delay is set to 30 seconds after editing images.
        +- Added commands ids mceEditImage, mceAchor and mceMedia to be avaiable from execCommand.
        +- Added Edge browser to saucelabs grunt task. Patch contributed by John-David Dalton.
        +
        +### Fixed
        +- Fixed bug where blob uris not produced by tinymce would produce HTML invalid markup.
        +- Fixed bug where selection of contents of a nearly empty editor in Edge would sometimes fail.
        +- Fixed bug where color styles woudln't be retained on copy/paste in Blink/Webkit.
        +- Fixed bug where the table plugin would throw an error when inserting rows after a child table.
        +- Fixed bug where the template plugin wouldn't handle functions as variable replacements.
        +- Fixed bug where undo/redo sometimes wouldn't work properly when applying formatting collapsed ranges.
        +- Fixed bug where shift+delete wouldn't do a cut operation on Blink/WebKit.
        +- Fixed bug where cut action wouldn't properly store the before selection bookmark for the undo level.
        +- Fixed bug where backspace in side an empty list element on IE would loose editor focus.
        +- Fixed bug where the save plugin wouldn't enable the buttons when a change occurred.
        +- Fixed bug where Edge wouldn't initialize the editor if a document.domain was specified.
        +- Fixed bug where enter key before nested images would sometimes not properly expand the previous block.
        +- Fixed bug where the inline toolbars wouldn't get properly hidden when blurring the editor instance.
        +- Fixed bug where Edge would paste Chinese characters on some Windows 10 installations.
        +- Fixed bug where IME would loose focus on IE 11 due to the double trailing br bug fix.
        +- Fixed bug where the proxy url in imagetools was incorrect. Patch contributed by Wong Ho Wang.
        +
        +## 4.2.5 - 2015-08-31
        +
        +### Added
        +- Added fullscreen capability to embedded youtube and vimeo videos.
        +
        +### Fixed
        +- Fixed bug where the uploadImages call didn't work on IE 10.
        +- Fixed bug where image place holders would be uploaded by uploadImages call.
        +- Fixed bug where images marked with bogus would be uploaded by the uploadImages call.
        +- Fixed bug where multiple calls to uploadImages would result in decreased performance.
        +- Fixed bug where pagebreaks were editable to imagetools patch contributed by Rasmus Wallin.
        +- Fixed bug where the element path could cause too much recursion exception.
        +- Fixed bug for domains containing ".min". Patch contributed by Loïc Février.
        +- Fixed so validation of external links to accept a number after www. Patch contributed by Victor Carvalho.
        +- Fixed so the charmap is exposed though execCommand. Patch contributed by Matthew Will.
        +- Fixed so that the image uploads are concurrent for improved performance.
        +- Fixed various grammar problems in inline documentation. Patches provided by nikolas.
        +
        +## 4.2.4 - 2015-08-17
        +
        +### Added
        +- Added picture as a valid element to the HTML 5 schema. Patch contributed by Adam Taylor.
        +
        +### Fixed
        +- Fixed bug where contents would be duplicated on drag/drop within the same editor.
        +- Fixed bug where floating/alignment of images on Edge wouldn't work properly.
        +- Fixed bug where it wasn't possible to drag images on IE 11.
        +- Fixed bug where image selection on Edge would sometimes fail.
        +- Fixed bug where contextual toolbars icons wasn't rendered properly when using the toolbar_items_size.
        +- Fixed bug where Buscarreplace dialog doesn't get prefilled with the selected text.
        +- Fixed bug where fragmented matches wouldn't get properly replaced by the Buscarreplace plugin.
        +- Fixed bug where enter key wouldn't place the caret if was after a trailing space within an inline element.
        +- Fixed bug where the autolink plugin could produce multiple links for the same text on Gecko.
        +- Fixed bug where EditorUpload could sometimes throw an exception if the blob wasn't found.
        +- Fixed xss issues with media plugin not properly filtering out some script attributes.
        +
        +## 4.2.3 - 2015-07-30
        +
        +### Fixed
        +- Fixed bug where image selection wasn't possible on Edge due to incompatible setBaseAndExtend API.
        +- Fixed bug where image blobs urls where not properly destroyed by the imagetools plugin.
        +- Fixed bug where keyboard shortcuts wasn't working correctly on IE 8.
        +- Fixed skin issue where the borders of panels where not visible on IE 8.
        +
        +## 4.2.2 - 2015-07-22
        +
        +### Fixed
        +- Fixed bug where float panels were not being hidden on inline editor blur when fixed_toolbar_container config option was in use.
        +- Fixed bug where combobox states wasn't properly updated if contents where updated without keyboard.
        +- Fixed bug where pasting into textbox or combobox would move the caret to the end of text.
        +- Fixed bug where removal of bogus span elements before block elements would remove whitespace between nodes.
        +- Fixed bug where repositioning of inline toolbars where async and producing errors if the editor was removed from DOM to early. Patch by iseulde.
        +- Fixed bug where element path wasn't working correctly. Patch contributed by iseulde.
        +- Fixed bug where menus wasn't rendered correctly when custom images where added to a menu. Patch contributed by Naim Hammadi.
        +
        +## 4.2.1 - 2015-06-29
        +
        +### Fixed
        +- Fixed bug where back/forward buttons in the browser would render blob images as broken images.
        +- Fixed bug where Firefox would throw regexp to big error when replacing huge base64 chunks.
        +- Fixed bug rendering issues with resize and context toolbars not being placed properly until next animation frame.
        +- Fixed bug where the rendering of the image while cropping would some times not be centered correctly.
        +- Fixed bug where listbox items with submenus would me selected as active.
        +- Fixed bug where context menu where throwing an error when rendering.
        +- Fixed bug where resize both option wasn't working due to resent addClass API change. Patch contributed by Jogai.
        +- Fixed bug where a hideAll call for container rendered inline toolbars would throw an error.
        +- Fixed bug where onclick event handler on combobox could cause issues if element.id was a function by some polluting libraries.
        +- Fixed bug where listboxes wouldn't get proper selected sub menu item when using link_list or image_list.
        +- Fixed so the UI controls are as wide as 4.1.x to avoid wrapping controls in toolbars.
        +- Fixed so the imagetools dialog is adaptive for smaller screen sizes.
        +
        +## 4.2.0 - 2015-06-25
        +
        +### Added
        +- Added new flat default skin to make the UI more modern.
        +- Added new imagetools plugin, lets you crop/resize and apply filters to images.
        +- Added new contextual toolbars support to the API lets you add floating toolbars for specific CSS selectors.
        +- Added new promise feature fill as tinymce.util.Promise.
        +- Added new built in image upload feature lets you upload any base64 encoded image within the editor as files.
        +
        +### Fixed
        +- Fixed bug where resize handles would appear in the right position in the wrong editor when switching between resizable content in different inline editors.
        +- Fixed bug where Tablas would not be inserted in inline mode due to previous float panel fix.
        +- Fixed bug where floating panels would remain open when focus was lost on inline editors.
        +- Fixed bug where cut command on Chrome would thrown a browser security exception.
        +- Fixed bug where IE 11 sometimes would report an incorrect size for images in the image dialog.
        +- Fixed bug where it wasn't possible to remove inline formatting at the end of block elements.
        +- Fixed bug where it wasn't possible to delete table cell contents when cell selection was vertical.
        +- Fixed bug where table cell wasn't emptied from block elements if delete/backspace where pressed in empty cell.
        +- Fixed bug where cmd+shift+arrow didn't work correctly on Firefox mac when selecting to start/end of line.
        +- Fixed bug where removal of bogus elements would sometimes remove whitespace between nodes.
        +- Fixed bug where the resize handles wasn't updated when the main window was resized.
        +- Fixed so script elements gets removed by default to prevent possible XSS issues in default config implementations.
        +- Fixed so the UI doesn't need manual reflows when using non native layout managers.
        +- Fixed so base64 encoded images doesn't slow down the editor on modern browsers while editing.
        +- Fixed so all UI elements uses touch events to improve mobile device support.
        +- Removed the touch click quirks patch for iOS since it did more harm than good.
        +- Removed the non proportional resize handles since. Unproportional resize can still be done by holding the shift key.
        +
        +## 4.1.10 - 2015-05-05
        +
        +### Fixed
        +- Fixed bug where plugins loaded with compat3x would sometimes throw errors when loading using the jQuery version.
        +- Fixed bug where extra empty paragraphs would get deleted in WebKit/Blink due to recent Quriks fix.
        +- Fixed bug where the editor wouldn't work properly on IE 12 due to some required browser sniffing.
        +- Fixed bug where formatting shortcut keys where interfering with Mac OS X screenshot keys.
        +- Fixed bug where the caret wouldn't move to the next/previous line boundary on Cmd+Left/Right on Gecko.
        +- Fixed bug where it wasn't possible to remove formats from very specific nested contents.
        +- Fixed bug where undo levels wasn't produced when typing letters using the shift or alt+ctrl modifiers.
        +- Fixed bug where the dirty state wasn't properly updated when typing using the shift or alt+ctrl modifiers.
        +- Fixed bug where an error would be thrown if an autofocused editor was destroyed quickly after its initialization. Patch provided by thorn0.
        +- Fixed issue with dirty state not being properly updated on redo operation.
        +- Fixed issue with entity decoder not handling incorrectly written numeric entities.
        +- Fixed issue where some PI element values wouldn't be properly encoded.
        +
        +## 4.1.9 - 2015-03-10
        +
        +### Fixed
        +- Fixed bug where indentation wouldn't work properly for non list elements.
        +- Fixed bug with image plugin not pulling the image dimensions out correctly if a custom document_base_url was used.
        +- Fixed bug where ctrl+alt+[1-9] would conflict with the AltGr+[1-9] on Windows. New shortcuts is ctrl+shift+[1-9].
        +- Fixed bug with removing formatting on nodes in inline mode would sometimes include nodes outside the editor body.
        +- Fixed bug where extra nbsp:s would be inserted when you replaced a word surrounded by spaces using insertContent.
        +- Fixed bug with pasting from Google Docs would produce extra strong elements and line feeds.
        +
        +## 4.1.8 - 2015-03-05
        +
        +### Added
        +- Added new html5 sizes attribute to img elements used together with srcset.
        +- Added new elementpath option that makes it possible to disable the element path but keep the statusbar.
        +- Added new option table_style_by_css for the table plugin to set table styling with css rather than table attributes.
        +- Added new link_assume_external_targets option to prompt the user to prepend http:// prefix if the supplied link does not contain a protocol prefix.
        +- Added new image_prepend_url option to allow a custom base path/url to be added to images.
        +- Added new table_appearance_options option to make it possible to disable some options.
        +- Added new image_title option to make it possible to alter the title of the image, disabled by default.
        +
        +### Fixed
        +- Fixed bug where selection starting from out side of the body wouldn't produce a proper selection range on IE 11.
        +- Fixed bug where pressing enter twice before a table moves the cursor in the table and causes a javascript error.
        +- Fixed bug where advanced image styles were not respected.
        +- Fixed bug where the less common Shift+Delete didn't produce a proper cut operation on WebKit browsers.
        +- Fixed bug where image/media size constrain logic would produce NaN when handling non number values.
        +- Fixed bug where internal classes where removed by the removeformat command.
        +- Fixed bug with creating links table cell contents with a specific selection would throw a exceptions on WebKit/Blink.
        +- Fixed bug where valid_classes option didn't work as expected according to docs. Patch provided by thorn0.
        +- Fixed bug where jQuery plugin would patch the internal methods multiple times. Patch provided by Drew Martin.
        +- Fixed bug where backspace key wouldn't delete the current selection of newly formatted content.
        +- Fixed bug where type over of inline formatting elements wouldn't properly keep the format on WebKit/Blink.
        +- Fixed bug where selection needed to be properly normalized on modern IE versions.
        +- Fixed bug where Command+Backspace didn't properly delete the whole line of text but the previous word.
        +- Fixed bug where UI active states wheren't properly updated on IE if you placed caret within the current range.
        +- Fixed bug where delete/backspace on WebKit/Blink would remove span elements created by the user.
        +- Fixed bug where delete/backspace would produce incorrect results when deleting between two text blocks with br elements.
        +- Fixed bug where captions where removed when pasting from MS Office.
        +- Fixed bug where lists plugin wouldn't properly remove fully selected nested lists.
        +- Fixed bug where the ttf font used for icons would throw an warning message on Gecko on Mac OS X.
        +- Fixed a bug where applying a color to text did not update the undo/redo history.
        +- Fixed so shy entities gets displayed when using the visualchars plugin.
        +- Fixed so removeformat removes ins/del by default since these might be used for strikethough.
        +- Fixed so multiple language packs can be loaded and added to the global I18n data structure.
        +- Fixed so transparent color selection gets treated as a normal color selection. Patch contributed by Alexander Hofbauer.
        +- Fixed so it's possible to disable autoresize_overflow_padding, autoresize_bottom_margin options by setting them to false.
        +- Fixed so the charmap plugin shows the description of the character in the dialog. Patch contributed by Jelle Hissink.
        +- Removed address from the default list of block formats since it tends to be missused.
        +- Fixed so the pre block format is called preformatted to make it more verbose.
        +- Fixed so it's possible to context scope translation strings this isn't needed most of the time.
        +- Fixed so the max length of the width/height input fields of the media dialog is 5 instead of 3.
        +- Fixed so drag/dropped contents gets properly processed by paste plugin since it's basically a paste. Patch contributed by Greg Fairbanks.
        +- Fixed so shortcut keys for headers is ctrl+alt+[1-9] instead of ctrl+[1-9] since these are for switching tabs in the browsers.
        +- Fixed so "u" doesn't get converted into a span element by the legacy input filter. Since this is now a valid HTML5 element.
        +- Fixed font families in order to provide appropriate web-safe fonts.
        +
        +## 4.1.7 - 2014-11-27
        +
        +### Added
        +- Added HTML5 schema support for srcset, source and picture. Patch contributed by mattheu.
        +- Added new cache_suffix setting to enable cache busting by producing unique urls.
        +- Added new paste_convert_word_fake_lists option to enable Usuarios to disable the fake lists convert logic.
        +
        +### Fixed
        +- Fixed so advlist style changes adds undo levels for each change.
        +- Fixed bug where WebKit would sometimes produce an exception when the autolink plugin where looking for URLs.
        +- Fixed bug where IE 7 wouldn't be rendered properly due to aggressive css compression.
        +- Fixed bug where DomQuery wouldn't accept window as constructor element.
        +- Fixed bug where the color picker in 3.x dialogs wouldn't work properly. Patch contributed by Callidior.
        +- Fixed bug where the image plugin wouldn't respect the document_base_url.
        +- Fixed bug where the jQuery plugin would fail to append to elements named array prototype names.
        +
        +## 4.1.6 - 2014-10-08
        +
        +### Changed
        +- Replaced jake with grunt since it is more mainstream and has better plugin support.
        +
        +### Fixed
        +- Fixed bug with clicking on the scrollbar of the iframe would cause a JS error to be thrown.
        +- Fixed bug where null would produce an exception if you passed it to selection.setRng.
        +- Fixed bug where Ctrl/Cmd+Tab would indent the current list item if you switched tabs in the browser.
        +- Fixed bug where pasting empty cells from Excel would result in a broken table.
        +- Fixed bug where it wasn't possible to switch back to default list style type.
        +- Fixed issue where the select all quirk fix would fire for other modifiers than Ctrl/Cmd combinations.
        +
        +
        +## 4.1.5 - 2014-09-09
        +
        +### Fixed
        +- Fixed bug where sometimes the resize rectangles wouldn't properly render on images on WebKit/Blink.
        +- Fixed bug in list plugin where delete/backspace would merge empty LI elements in lists incorrectly.
        +- Fixed bug where empty list elements would result in empty LI elements without it's parent container.
        +- Fixed bug where backspace in empty caret formatted element could produce an type error exception of Gecko.
        +- Fixed bug where lists pasted from word with a custom start index above 9 wouldn't be properly handled.
        +- Fixed bug where tabfocus plugin would tab out of the editor instance even if the default action was prevented.
        +- Fixed bug where tabfocus wouldn't tab properly to other adjacent editor instances.
        +- Fixed bug where the DOMUtils setStyles wouldn't properly removed or update the data-mce-style attribute.
        +- Fixed bug where dialog select boxes would be placed incorrectly if document.body wasn't statically positioned.
        +- Fixed bug where pasting would sometimes scroll to the top of page if the user was using the autoresize plugin.
        +- Fixed bug where caret wouldn't be properly rendered by Chrome when clicking on the iframes documentElement.
        +- Fixed so custom images for menubutton/splitbutton can be provided. Patch contributed by Naim Hammadi.
        +- Fixed so the default action of windows closing can be prevented by blocking the default action of the close event.
        +- Fixed so nodeChange and focus of the editor isn't automatically performed when opening sub dialogs.
        +
        +## 4.1.4 - 2014-08-21
        +
        +### Added
        +- Added new media_filter_html option to media plugin that blocks any conditional comments, scripts etc within a video element.
        +- Added new content_security_policy option allows you to set custom policy for iframe contents. Patch contributed by Francois Chagnon.
        +
        +### Fixed
        +- Fixed bug where activate/deactivate events wasn't firing properly when switching between editors.
        +- Fixed bug where placing the caret on iOS was difficult due to a WebKit bug with touch events.
        +- Fixed bug where the resize helper wouldn't render properly on older IE versions.
        +- Fixed bug where resizing images inside Tablas on older IE versions would sometimes fail depending mouse position.
        +- Fixed bug where editor.insertContent would produce an exception when inserting select/option elements.
        +- Fixed bug where extra empty paragraphs would be produced if block elements where inserted inside span elements.
        +- Fixed bug where the spellchecker menu item wouldn't be properly checked if spell checking was started before it was rendered.
        +- Fixed bug where the DomQuery filter function wouldn't remove non elements from collection.
        +- Fixed bug where document with custom document.domain wouldn't properly render the editor.
        +- Fixed bug where IE 8 would throw exception when trying to enter invalid color values into colorboxes.
        +- Fixed bug where undo manager could incorrectly add an extra undo level when custom resize handles was removed.
        +- Fixed bug where it wouldn't be possible to alter cell properties properly on table cells on IE 8.
        +- Fixed so the color picker button in table dialog isn't shown unless you include the colorpicker plugin or add your own custom color picker.
        +- Fixed so activate/deactivate events fire when windowManager opens a window since.
        +- Fixed so the table advtab options isn't separated by an underscore to normalize naming with image_advtab option.
        +- Fixed so the table cell dialog has proper padding when the advanced tab in disabled.
        +
        +## 4.1.3 - 2014-07-29
        +
        +### Added
        +- Added event binding logic to tinymce.util.XHR making it possible to override headers and settings before any request is made.
        +
        +### Fixed
        +- Fixed bug where drag events wasn't fireing properly on older IE versions since the event handlers where bound to document.
        +- Fixed bug where drag/dropping contents within the editor on IE would force the contents into plain text mode even if it was internal content.
        +- Fixed bug where IE 7 wouldn't open menus properly due to a resize bug in the browser auto closing them immediately.
        +- Fixed bug where the DOMUtils getPos logic wouldn't produce a valid coordinate inside the body if the body was positioned non static.
        +- Fixed bug where the element path and format state wasn't properly updated if you had the wordcount plugin enabled.
        +- Fixed bug where a comment at the beginning of source would produce an exception in the formatter logic.
        +- Fixed bug where setAttrib/getAttrib on null would throw exception together with any hooked attributes like style.
        +- Fixed bug where table sizes wasn't properly retained when copy/pasting on WebKit/Blink.
        +- Fixed bug where WebKit/Blink would produce colors in RGB format instead of the forced HEX format when deleting contents.
        +- Fixed bug where the width attribute wasn't updated on Tablas if you changed the size inside the table dialog.
        +- Fixed bug where control selection wasn't properly handled when the caret was placed directly after an image.
        +- Fixed bug where selecting the contents of table cells using the selection.select method wouldn't place the caret properly.
        +- Fixed bug where the selection state for images wasn't removed when placing the caret right after an image on WebKit/Blink.
        +- Fixed bug where all events wasn't properly unbound when and editor instance was removed or destroyed by some external innerHTML call.
        +- Fixed bug where it wasn't possible or very hard to select images on iOS when the onscreen keyboard was visible.
        +- Fixed so auto_focus can take a boolean argument this will auto focus the last initialized editor might be useful for single inits.
        +- Fixed so word auto detect lists logic works better for faked lists that doesn't have specific markup.
        +- Fixed so nodeChange gets fired on mouseup as it used to before 4.1.1 we optimized that event to fire less often.
        +
        +### Removed
        +- Removed the finish menu item from spellchecker menu since it's redundant you can stop spellchecking by toggling menu item or button.
        +
        +## 4.1.2 - 2014-07-15
        +
        +### Added
        +- Added offset/grep to DomQuery class works basically the same as it's jQuery equivalent.
        +
        +### Fixed
        +- Fixed bug where backspace/delete or setContent with an empty string would remove header data when using the fullpage plugin.
        +- Fixed bug where tinymce.remove with a selector not matching any editors would remove all editors.
        +- Fixed bug where resizing of the editor didn't work since the theme was calling setStyles instead of setStyle.
        +- Fixed bug where IE 7 would fail to append html fragments to iframe document when using DomQuery.
        +- Fixed bug where the getStyle DOMUtils method would produce an exception if it was called with null as it's element.
        +- Fixed bug where the paste plugin would remove the element if the none of the paste_webkit_styles rules matched the current style.
        +- Fixed bug where contextmenu table items wouldn't work properly on IE since it would some times fire an incorrect selection change.
        +- Fixed bug where the padding/border values wasn't used in the size calculation for the body size when using autoresize. Patch contributed by Matt Whelan.
        +- Fixed bug where conditional word comments wouldn't be properly removed when pasting plain text.
        +- Fixed bug where resizing would sometime fail on IE 11 when the mouseup occurred inside the resizable element.
        +- Fixed so the iframe gets initialized without any inline event handlers for better CSP support. Patch contributed by Matt Whelan.
        +- Fixed so the tinymce.dom.Sizzle is the latest version of sizzle this resolves the document context bug.
        +
        +## 4.1.1 - 2014-07-08
        +
        +### Fixed
        +- Fixed bug where pasting plain text on some WebKit versions would result in an empty line.
        +- Fixed bug where resizing images inside Tablas on IE 11 wouldn't work properly.
        +- Fixed bug where IE 11 would sometimes throw "Invalid argument" exception when editor contents was set to an empty string.
        +- Fixed bug where document.activeElement would throw exceptions on IE 9 when that element was hidden or removed from dom.
        +- Fixed bug where WebKit/Blink sometimes produced br elements with the Apple-interchange-newline class.
        +- Fixed bug where table cell selection wasn't properly removed when copy/pasting table cells.
        +- Fixed bug where pasting nested list items from Word wouldn't produce proper semantic nested lists.
        +- Fixed bug where right clicking using the contextmenu plugin on WebKit/Blink on Mac OS X would select the target current word or line.
        +- Fixed bug where it wasn't possible to alter table cell properties on IE 8 using the context menu.
        +- Fixed bug where the resize helper wouldn't be correctly positioned on older IE versions.
        +- Fixed bug where fullpage plugin would produce an error if you didn't specify a doctype encoding.
        +- Fixed bug where anchor plugin would get the name/id of the current element even if it wasn't anchor element.
        +- Fixed bug where visual aids for Tablas wouldn't be properly disabled when changing the border size.
        +- Fixed bug where some control selection events wasn't properly fired on older IE versions.
        +- Fixed bug where table cell selection on older IE versions would prevent resizing of images.
        +- Fixed bug with paste_data_images paste option not working properly on modern IE versions.
        +- Fixed bug where custom elements with underscores in the name wasn't properly parsed/serialized.
        +- Fixed bug where applying inline formats to nested list elements would produce an incorrect formatting result.
        +- Fixed so it's possible to hide items from elements path by using preventDefault/stopPropagation.
        +- Fixed so inline mode toolbar gets rendered right aligned if the editable element positioned to the documents right edge.
        +- Fixed so empty inline elements inside empty block elements doesn't get removed if configured to be kept intact.
        +- Fixed so DomQuery parentsUntil/prevUntil/nextUntil supports selectors/elements/filters etc.
        +- Fixed so legacyoutput plugin overrides fontselect and fontsizeselect controls and handles font elements properly.
        +
        +## 4.1.0 - 2014-06-18
        +
        +### Added
        +- Added new file_picker_callback option to replace the old file_browser_callback the latter will still work though.
        +- Added new custom colors to textcolor plugin will be displayed if a color picker is provided also shows the latest colors.
        +- Added new color_picker_callback option to enable you to add custom color pickers to the editor.
        +- Added new advanced tabs to table/cell/row dialogs to enable you to select colors for border/background.
        +- Added new colorpicker plugin that lets you select colors from a hsv color picker.
        +- Added new tinymce.util.Color class to handle color parsing and converting.
        +- Added new colorpicker UI widget element lets you add a hsv color picker to any form/window.
        +- Added new textpattern plugin that allows you to use markdown like text patterns to format contents.
        +- Added new resize helper element that shows the current width & height while resizing.
        +- Added new "once" method to Editor and EventDispatcher enables since callback execution events.
        +- Added new jQuery like class under tinymce.dom.DomQuery it's exposed on editor instances (editor.$) and globally under (tinymce.$).
        +
        +### Fixed
        +- Fixed so the default resize method for images are proportional shift/ctrl can be used to make an unproportional size.
        +- Fixed bug where the image_dimensions option of the image plugin would cause exceptions when it tried to update the size.
        +- Fixed bug where table cell dialog class field wasn't properly updated when editing an a table cell with an existing class.
        +- Fixed bug where Safari on Mac would produce webkit-fake-url for pasted images so these are now removed.
        +- Fixed bug where the nodeChange event would get fired before the selection was changed when clicking inside the current selection range.
        +- Fixed bug where valid_classes option would cause exception when it removed internal prefixed classes like mce-item-.
        +- Fixed bug where backspace would cause navigation in IE 8 on an inline element and after a caret formatting was applied.
        +- Fixed so placeholder images produced by the media plugin gets selected when inserted/edited.
        +- Fixed so it's possible to drag in images when the paste_data_images option is enabled. Might be useful for mail clients.
        +- Fixed so images doesn't get a width/height applied if the image_dimensions option is set to false useful for responsive contents.
        +- Fixed so it's possible to pass in an optional arguments object for the nodeChanged function to be passed to all nodechange event listeners.
        +- Fixed bug where media plugin embed code didn't update correctly.
        diff --git a/Practica-14.5/src/assets/vendor/tinymce/README.md b/Practica-14.5/src/assets/vendor/tinymce/README.md
        new file mode 100644
        index 0000000..026865a
        --- /dev/null
        +++ b/Practica-14.5/src/assets/vendor/tinymce/README.md
        @@ -0,0 +1,71 @@
        +# TinyMCE
        +
        +The world's #1 open source rich text editor.
        +
        +Used and trusted by millions of developers, TinyMCE is the world’s most customizable, scalable, and flexible rich text editor. We’ve helped launch the likes of Atlassian, Medium, Evernote (and lots more that we can’t tell you), by empowering them to create exceptional content and experiences for their Usuarios.
        +
        +With more than 350M+ downloads every year, we’re also one of the most trusted enterprise-grade open source HTML editors on the internet. There’s currently more than 100M+ products worldwide, powered by Tiny. As a high powered WYSIWYG editor, TinyMCE is built to scale, designed to innovate, and thrives on delivering results to difficult edge-cases.
        +
        +You can access a [full featured demo of TinyMCE](https://www.tiny.cloud/docs/tinymce/6/premium-full-featured/) in the docs on the TinyMCE website.
        +
        +

        + Screenshot of the TinyMCE Editor +

        + +## Get started with TinyMCE + +Getting started with the TinyMCE rich text editor is easy, and for simple configurations can be done in less than 5 minutes. + +[TinyMCE Cloud Deployment Quick Start Guide](https://www.tiny.cloud/docs/tinymce/6/cloud-quick-start/) + +[TinyMCE Self-hosted Deployment Guide](https://www.tiny.cloud/docs/tinymce/6/npm-projects/) + +TinyMCE provides a range of configuration options that allow you to integrate it into your application. Start customizing with a [basic setup](https://www.tiny.cloud/docs/tinymce/6/basic-setup/). + +Configure it for one of three modes of editing: + +- [TinyMCE classic editing mode](https://www.tiny.cloud/docs/tinymce/6/use-tinymce-classic/). +- [TinyMCE inline editing mode](https://www.tiny.cloud/docs/tinymce/6/use-tinymce-inline/). +- [TinyMCE distraction-free editing mode](https://www.tiny.cloud/docs/tinymce/6/use-tinymce-distraction-free/). + +## Features + +### Integration + +TinyMCE is easily integrated into your projects with the help of Componentes such as: + +- [tinymce-react](https://github.com/tinymce/tinymce-react) +- [tinymce-vue](https://github.com/tinymce/tinymce-vue) +- [tinymce-angular](https://github.com/tinymce/tinymce-angular) + +With over 29 integrations, and 400+ APIs, see the TinyMCE docs for a full list of editor [integrations](https://www.tiny.cloud/docs/tinymce/6/integrations/). + +### Customization + +It is easy to [configure the UI](https://www.tiny.cloud/docs/tinymce/6/customize-ui/) of your rich text editor to match the design of your site, product or application. Due to its flexibility, you can [configure the editor](https://www.tiny.cloud/docs/tinymce/6/basic-setup/) with as much or as little functionality as you like, depending on your requirements. + +With [50+ powerful plugins available](https://www.tiny.cloud/tinymce/features/), and content editable as the basis of TinyMCE, adding additional functionality is as simple as including a single line of code. + +Realizing the full power of most plugins requires only a few lines more. + +### Extensibility + +Sometimes your editor requirements can be quite unique, and you need the freedom and flexibility to innovate. Thanks to TinyMCE being open source, you can view the source code and develop your own extensions for custom functionality to meet your own requirements. + +The TinyMCE [API](https://www.tiny.cloud/docs/tinymce/6/apis/tinymce.root/) is exposed to make it easier for you to write custom functionality that fits within the existing framework of TinyMCE [UI Componentes](https://www.tiny.cloud/docs/tinymce/6/custom-ui-Componentes/). + +### Extended Features and Support + +For the professional software teams that require more in-depth efficiency, compliance or collaborative features built to enterprise-grade standards, please [get in touch with our team](https://www.tiny.cloud/Contacto/). + +Tiny also offers dedicated SLAs and support for professional development teams. + +## Compiling and contributing + +In 2019 the decision was made to transition our codebase to a monorepo. For information on compiling and contributing, see: [contribution guidelines](https://github.com/tinymce/tinymce/blob/master/CONTRIBUTING.md). + +As an open source product, we encourage and support the active development of our software. + +## Want more information? + +Visit the [TinyMCE website](https://tiny.cloud/) and check out the [TinyMCE documentation](https://www.tiny.cloud/docs/). diff --git a/Practica-14.5/src/assets/vendor/tinymce/bower.json b/Practica-14.5/src/assets/vendor/tinymce/bower.json new file mode 100644 index 0000000..0af3ccf --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/bower.json @@ -0,0 +1,27 @@ +{ + "name": "tinymce", + "description": "Web based JavaScript HTML WYSIWYG editor control.", + "license": "MIT", + "keywords": [ + "wysiwyg", + "tinymce", + "richtext", + "javascript", + "html", + "text", + "rich editor", + "rich text editor", + "rte", + "rich text", + "contenteditable", + "editing" + ], + "homepage": "https://www.tiny.cloud/", + "ignore": [ + "README.md", + "composer.json", + "package.json", + ".npmignore", + "CHANGELOG.md" + ] +} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/composer.json b/Practica-14.5/src/assets/vendor/tinymce/composer.json new file mode 100644 index 0000000..9c32848 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/composer.json @@ -0,0 +1,52 @@ +{ + "name": "tinymce/tinymce", + "version": "6.3.1", + "description": "Web based JavaScript HTML WYSIWYG editor control.", + "license": [ + "MIT-only" + ], + "keywords": [ + "wysiwyg", + "tinymce", + "richtext", + "javascript", + "html", + "text", + "rich editor", + "rich text editor", + "rte", + "rich text", + "contenteditable", + "editing" + ], + "homepage": "https://www.tiny.cloud/", + "type": "component", + "extra": { + "component": { + "scripts": [ + "tinymce.js", + "plugins/*/plugin.js", + "themes/*/theme.js", + "models/*/model.js", + "icons/*/icons.js" + ], + "files": [ + "tinymce.min.js", + "plugins/*/plugin.min.js", + "themes/*/theme.min.js", + "models/*/model.min.js", + "skins/**", + "icons/*/icons.min.js" + ] + } + }, + "archive": { + "exclude": [ + "README.md", + "bower.js", + "package.json", + ".npmignore", + "CHANGELOG.md" + ] + } +} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.js b/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.js new file mode 100644 index 0000000..ae3d04f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.js @@ -0,0 +1,185 @@ +tinymce.IconManager.add('default', { + icons: { + 'accessibility-check': '', + 'action-next': '', + 'action-prev': '', + 'addtag': '', + 'align-center': '', + 'align-justify': '', + 'align-left': '', + 'align-none': '', + 'align-right': '', + 'arrow-left': '', + 'arrow-right': '', + 'bold': '', + 'bookmark': '', + 'border-style': '', + 'border-width': '', + 'brightness': '', + 'browse': '', + 'cancel': '', + 'cell-background-color': '', + 'cell-border-color': '', + 'change-case': '', + 'character-count': '', + 'checklist-rtl': '', + 'checklist': '', + 'checkmark': '', + 'chevron-down': '', + 'chevron-left': '', + 'chevron-right': '', + 'chevron-up': '', + 'close': '', + 'code-sample': '', + 'color-levels': '', + 'color-picker': '', + 'color-swatch-remove-color': '', + 'color-swatch': '', + 'comment-add': '', + 'comment': '', + 'contrast': '', + 'copy': '', + 'crop': '', + 'cut-column': '', + 'cut-row': '', + 'cut': '', + 'document-properties': '', + 'drag': '', + 'duplicate-column': '', + 'duplicate-row': '', + 'duplicate': '', + 'edit-block': '', + 'edit-image': '', + 'embed-page': '', + 'embed': '', + 'emoji': '', + 'export': '', + 'fill': '', + 'flip-horizontally': '', + 'flip-vertically': '', + 'footnote': '', + 'format-painter': '', + 'format': '', + 'fullscreen': '', + 'gallery': '', + 'gamma': '', + 'help': '', + 'highlight-bg-color': '', + 'home': '', + 'horizontal-rule': '', + 'image-options': '', + 'image': '', + 'indent': '', + 'info': '', + 'insert-character': '', + 'insert-time': '', + 'invert': '', + 'italic': '', + 'language': '', + 'line-height': '', + 'line': '', + 'link': '', + 'list-bull-circle': '', + 'list-bull-default': '', + 'list-bull-square': '', + 'list-num-default-rtl': '', + 'list-num-default': '', + 'list-num-lower-alpha-rtl': '', + 'list-num-lower-alpha': '', + 'list-num-lower-greek-rtl': '', + 'list-num-lower-greek': '', + 'list-num-lower-roman-rtl': '', + 'list-num-lower-roman': '', + 'list-num-upper-alpha-rtl': '', + 'list-num-upper-alpha': '', + 'list-num-upper-roman-rtl': '', + 'list-num-upper-roman': '', + 'lock': '', + 'ltr': '', + 'more-drawer': '', + 'new-document': '', + 'new-tab': '', + 'non-breaking': '', + 'notice': '', + 'ordered-list-rtl': '', + 'ordered-list': '', + 'orientation': '', + 'outdent': '', + 'page-break': '', + 'paragraph': '', + 'paste-column-after': '', + 'paste-column-before': '', + 'paste-row-after': '', + 'paste-row-before': '', + 'paste-text': '', + 'paste': '', + 'permanent-pen': '', + 'plus': '', + 'preferences': '', + 'preview': '', + 'print': '', + 'quote': '', + 'redo': '', + 'reload': '', + 'remove-formatting': '', + 'remove': '', + 'resize-handle': '', + 'resize': '', + 'restore-draft': '', + 'rotate-left': '', + 'rotate-right': '', + 'rtl': '', + 'save': '', + 'Buscar': '', + 'select-all': '', + 'selected': '', + 'settings': '', + 'sharpen': '', + 'sourcecode': '', + 'spell-check': '', + 'strike-through': '', + 'subscript': '', + 'superscript': '', + 'table-caption': '', + 'table-cell-classes': '', + 'table-cell-properties': '', + 'table-cell-select-all': '', + 'table-cell-select-inner': '', + 'table-classes': '', + 'table-delete-column': '', + 'table-delete-row': '', + 'table-delete-table': '', + 'table-insert-column-after': '', + 'table-insert-column-before': '', + 'table-insert-row-above': '', + 'table-insert-row-after': '', + 'table-left-header': '', + 'table-merge-cells': '', + 'table-row-numbering-rtl': '', + 'table-row-numbering': '', + 'table-row-properties': '', + 'table-split-cells': '', + 'table-top-header': '', + 'table': '', + 'template': '', + 'temporary-placeholder': '', + 'text-color': '', + 'toc': '', + 'translate': '', + 'typography': '', + 'underline': '', + 'undo': '', + 'unlink': '', + 'unlock': '', + 'unordered-list': '', + 'unselected': '', + 'upload': '', + 'user': '', + 'vertical-align': '', + 'visualblocks': '', + 'visualchars': '', + 'warning': '', + 'zoom-in': '', + 'zoom-out': '', + } +}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.min.js b/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.min.js new file mode 100644 index 0000000..c71b60f --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/icons/default/icons.min.js @@ -0,0 +1 @@ +tinymce.IconManager.add("default",{icons:{"accessibility-check":'',"action-next":'',"action-prev":'',addtag:'',"align-center":'',"align-justify":'',"align-left":'',"align-none":'',"align-right":'',"arrow-left":'',"arrow-right":'',bold:'',bookmark:'',"border-style":'',"border-width":'',brightness:'',browse:'',cancel:'',"cell-background-color":'',"cell-border-color":'',"change-case":'',"character-count":'',"checklist-rtl":'',checklist:'',checkmark:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',close:'',"code-sample":'',"color-levels":'',"color-picker":'',"color-swatch-remove-color":'',"color-swatch":'',"comment-add":'',comment:'',contrast:'',copy:'',crop:'',"cut-column":'',"cut-row":'',cut:'',"document-properties":'',drag:'',"duplicate-column":'',"duplicate-row":'',duplicate:'',"edit-block":'',"edit-image":'',"embed-page":'',embed:'',emoji:'',export:'',fill:'',"flip-horizontally":'',"flip-vertically":'',footnote:'',"format-painter":'',format:'',fullscreen:'',gallery:'',gamma:'',help:'',"highlight-bg-color":'',home:'',"horizontal-rule":'',"image-options":'',image:'',indent:'',info:'',"insert-character":'',"insert-time":'',invert:'',italic:'',language:'',"line-height":'',line:'',link:'',"list-bull-circle":'',"list-bull-default":'',"list-bull-square":'',"list-num-default-rtl":'',"list-num-default":'',"list-num-lower-alpha-rtl":'',"list-num-lower-alpha":'',"list-num-lower-greek-rtl":'',"list-num-lower-greek":'',"list-num-lower-roman-rtl":'',"list-num-lower-roman":'',"list-num-upper-alpha-rtl":'',"list-num-upper-alpha":'',"list-num-upper-roman-rtl":'',"list-num-upper-roman":'',lock:'',ltr:'',"more-drawer":'',"new-document":'',"new-tab":'',"non-breaking":'',notice:'',"ordered-list-rtl":'',"ordered-list":'',orientation:'',outdent:'',"page-break":'',paragraph:'',"paste-column-after":'',"paste-column-before":'',"paste-row-after":'',"paste-row-before":'',"paste-text":'',paste:'',"permanent-pen":'',plus:'',preferences:'',preview:'',print:'',quote:'',redo:'',reload:'',"remove-formatting":'',remove:'',"resize-handle":'',resize:'',"restore-draft":'',"rotate-left":'',"rotate-right":'',rtl:'',save:'',Buscar:'',"select-all":'',selected:'',settings:'',sharpen:'',sourcecode:'',"spell-check":'',"strike-through":'',subscript:'',superscript:'',"table-caption":'',"table-cell-classes":'',"table-cell-properties":'',"table-cell-select-all":'',"table-cell-select-inner":'',"table-classes":'',"table-delete-column":'',"table-delete-row":'',"table-delete-table":'',"table-insert-column-after":'',"table-insert-column-before":'',"table-insert-row-above":'',"table-insert-row-after":'',"table-left-header":'',"table-merge-cells":'',"table-row-numbering-rtl":'',"table-row-numbering":'',"table-row-properties":'',"table-split-cells":'',"table-top-header":'',table:'',template:'',"temporary-placeholder":'',"text-color":'',toc:'',translate:'',typography:'',underline:'',undo:'',unlink:'',unlock:'',"unordered-list":'',unselected:'',upload:'',user:'',"vertical-align":'',visualblocks:'',visualchars:'',warning:'',"zoom-in":'',"zoom-out":''}}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/icons/default/index.js b/Practica-14.5/src/assets/vendor/tinymce/icons/default/index.js new file mode 100644 index 0000000..ca4184a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/icons/default/index.js @@ -0,0 +1,7 @@ +// Exports the "default" icons for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/icons/default') +// ES2015: +// import 'tinymce/icons/default' +require('./icons.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/models/dom/index.js b/Practica-14.5/src/assets/vendor/tinymce/models/dom/index.js new file mode 100644 index 0000000..7ed634a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/models/dom/index.js @@ -0,0 +1,7 @@ +// Exports the "dom" model for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/models/dom') +// ES2015: +// import 'tinymce/models/dom' +require('./model.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.js b/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.js new file mode 100644 index 0000000..01d91b5 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.js @@ -0,0 +1,7979 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.ModelManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType$1 = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq$2 = t => a => t === a; + const isString = isType$1('string'); + const isObject = isType$1('object'); + const isArray = isType$1('array'); + const isNull = eq$2(null); + const isBoolean = isSimpleType('boolean'); + const isUndefined = eq$2(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isNumber = isSimpleType('number'); + + const noop = () => { + }; + const compose = (fa, fb) => { + return (...args) => { + return fa(fb.apply(null, args)); + }; + }; + const compose1 = (fbc, fab) => a => fbc(fab(a)); + const constant = value => { + return () => { + return value; + }; + }; + const identity = x => { + return x; + }; + const tripleEquals = (a, b) => { + return a === b; + }; + function curry(fn, ...initialArgs) { + return (...restArgs) => { + const all = initialArgs.concat(restArgs); + return fn.apply(null, all); + }; + } + const not = f => t => !f(t); + const die = msg => { + return () => { + throw new Error(msg); + }; + }; + const apply = f => { + return f(); + }; + const never = constant(false); + const always = constant(true); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativeSlice = Array.prototype.slice; + const nativeIndexOf = Array.prototype.indexOf; + const nativePush = Array.prototype.push; + const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t); + const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1; + const exists = (xs, pred) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return true; + } + } + return false; + }; + const range$1 = (num, f) => { + const r = []; + for (let i = 0; i < num; i++) { + r.push(f(i)); + } + return r; + }; + const map$1 = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each$2 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const eachr = (xs, f) => { + for (let i = xs.length - 1; i >= 0; i--) { + const x = xs[i]; + f(x, i); + } + }; + const partition = (xs, pred) => { + const pass = []; + const fail = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + const arr = pred(x, i) ? pass : fail; + arr.push(x); + } + return { + pass, + fail + }; + }; + const filter$2 = (xs, pred) => { + const r = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + const foldr = (xs, f, acc) => { + eachr(xs, (x, i) => { + acc = f(acc, x, i); + }); + return acc; + }; + const foldl = (xs, f, acc) => { + each$2(xs, (x, i) => { + acc = f(acc, x, i); + }); + return acc; + }; + const findUntil = (xs, pred, until) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(x); + } else if (until(x, i)) { + break; + } + } + return Optional.none(); + }; + const find$1 = (xs, pred) => { + return findUntil(xs, pred, never); + }; + const findIndex = (xs, pred) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(i); + } + } + return Optional.none(); + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind$2 = (xs, f) => flatten(map$1(xs, f)); + const forall = (xs, pred) => { + for (let i = 0, len = xs.length; i < len; ++i) { + const x = xs[i]; + if (pred(x, i) !== true) { + return false; + } + } + return true; + }; + const reverse = xs => { + const r = nativeSlice.call(xs, 0); + r.reverse(); + return r; + }; + const mapToObject = (xs, f) => { + const r = {}; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + r[String(x)] = f(x, i); + } + return r; + }; + const sort$1 = (xs, comparator) => { + const copy = nativeSlice.call(xs, 0); + copy.sort(comparator); + return copy; + }; + const get$d = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); + const head = xs => get$d(xs, 0); + const last$2 = xs => get$d(xs, xs.length - 1); + const findMap = (arr, f) => { + for (let i = 0; i < arr.length; i++) { + const r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Optional.none(); + }; + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const each$1 = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const map = (obj, f) => { + return tupleMap(obj, (x, i) => ({ + k: i, + v: f(x, i) + })); + }; + const tupleMap = (obj, f) => { + const r = {}; + each$1(obj, (x, i) => { + const tuple = f(x, i); + r[tuple.k] = tuple.v; + }); + return r; + }; + const objAcc = r => (x, i) => { + r[i] = x; + }; + const internalFilter = (obj, pred, onTrue, onFalse) => { + each$1(obj, (x, i) => { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + }; + const filter$1 = (obj, pred) => { + const t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + const mapToArray = (obj, f) => { + const r = []; + each$1(obj, (value, name) => { + r.push(f(value, name)); + }); + return r; + }; + const values = obj => { + return mapToArray(obj, identity); + }; + const get$c = (obj, key) => { + return has$1(obj, key) ? Optional.from(obj[key]) : Optional.none(); + }; + const has$1 = (obj, key) => hasOwnProperty.call(obj, key); + const hasNonNullableKey = (obj, key) => has$1(obj, key) && obj[key] !== undefined && obj[key] !== null; + const isEmpty = r => { + for (const x in r) { + if (hasOwnProperty.call(r, x)) { + return false; + } + } + return true; + }; + + typeof window !== 'undefined' ? window : Function('return this;')(); + + const COMMENT = 8; + const DOCUMENT = 9; + const DOCUMENT_FRAGMENT = 11; + const ELEMENT = 1; + const TEXT = 3; + + const name = element => { + const r = element.dom.nodeName; + return r.toLowerCase(); + }; + const type = element => element.dom.nodeType; + const isType = t => element => type(element) === t; + const isComment = element => type(element) === COMMENT || name(element) === '#comment'; + const isElement = isType(ELEMENT); + const isText = isType(TEXT); + const isDocument = isType(DOCUMENT); + const isDocumentFragment = isType(DOCUMENT_FRAGMENT); + const isTag = tag => e => isElement(e) && name(e) === tag; + + const rawSet = (dom, key, value) => { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + const set$2 = (element, key, value) => { + rawSet(element.dom, key, value); + }; + const setAll$1 = (element, attrs) => { + const dom = element.dom; + each$1(attrs, (v, k) => { + rawSet(dom, k, v); + }); + }; + const setOptions = (element, attrs) => { + each$1(attrs, (v, k) => { + v.fold(() => { + remove$7(element, k); + }, value => { + rawSet(element.dom, k, value); + }); + }); + }; + const get$b = (element, key) => { + const v = element.dom.getAttribute(key); + return v === null ? undefined : v; + }; + const getOpt = (element, key) => Optional.from(get$b(element, key)); + const remove$7 = (element, key) => { + element.dom.removeAttribute(key); + }; + const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => { + acc[attr.name] = attr.value; + return acc; + }, {}); + + const fromHtml$1 = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + const message = 'HTML does not have a single root node'; + console.error(message, html); + throw new Error(message); + } + return fromDom$1(div.childNodes[0]); + }; + const fromTag = (tag, scope) => { + const doc = scope || document; + const node = doc.createElement(tag); + return fromDom$1(node); + }; + const fromText = (text, scope) => { + const doc = scope || document; + const node = doc.createTextNode(text); + return fromDom$1(node); + }; + const fromDom$1 = node => { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: node }; + }; + const fromPoint$1 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1); + const SugarElement = { + fromHtml: fromHtml$1, + fromTag, + fromText, + fromDom: fromDom$1, + fromPoint: fromPoint$1 + }; + + const is$2 = (element, selector) => { + const dom = element.dom; + if (dom.nodeType !== ELEMENT) { + return false; + } else { + const elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0; + const all$1 = (selector, scope) => { + const base = scope === undefined ? document : scope.dom; + return bypassSelector(base) ? [] : map$1(base.querySelectorAll(selector), SugarElement.fromDom); + }; + const one = (selector, scope) => { + const base = scope === undefined ? document : scope.dom; + return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom); + }; + + const eq$1 = (e1, e2) => e1.dom === e2.dom; + const contains$1 = (e1, e2) => { + const d1 = e1.dom; + const d2 = e2.dom; + return d1 === d2 ? false : d1.contains(d2); + }; + const is$1 = is$2; + + const owner = element => SugarElement.fromDom(element.dom.ownerDocument); + const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos); + const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement); + const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView); + const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom); + const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom); + const parents = (element, isRoot) => { + const stop = isFunction(isRoot) ? isRoot : never; + let dom = element.dom; + const ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + const rawParent = dom.parentNode; + const p = SugarElement.fromDom(rawParent); + ret.push(p); + if (stop(p) === true) { + break; + } else { + dom = rawParent; + } + } + return ret; + }; + const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom); + const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom); + const children$2 = element => map$1(element.dom.childNodes, SugarElement.fromDom); + const child$2 = (element, index) => { + const cs = element.dom.childNodes; + return Optional.from(cs[index]).map(SugarElement.fromDom); + }; + const firstChild = element => child$2(element, 0); + + const before$3 = (marker, element) => { + const parent$1 = parent(marker); + parent$1.each(v => { + v.dom.insertBefore(element.dom, marker.dom); + }); + }; + const after$5 = (marker, element) => { + const sibling = nextSibling(marker); + sibling.fold(() => { + const parent$1 = parent(marker); + parent$1.each(v => { + append$1(v, element); + }); + }, v => { + before$3(v, element); + }); + }; + const prepend = (parent, element) => { + const firstChild$1 = firstChild(parent); + firstChild$1.fold(() => { + append$1(parent, element); + }, v => { + parent.dom.insertBefore(element.dom, v.dom); + }); + }; + const append$1 = (parent, element) => { + parent.dom.appendChild(element.dom); + }; + const appendAt = (parent, element, index) => { + child$2(parent, index).fold(() => { + append$1(parent, element); + }, v => { + before$3(v, element); + }); + }; + const wrap = (element, wrapper) => { + before$3(element, wrapper); + append$1(wrapper, element); + }; + + const after$4 = (marker, elements) => { + each$2(elements, (x, i) => { + const e = i === 0 ? marker : elements[i - 1]; + after$5(e, x); + }); + }; + const append = (parent, elements) => { + each$2(elements, x => { + append$1(parent, x); + }); + }; + + const empty = element => { + element.dom.textContent = ''; + each$2(children$2(element), rogue => { + remove$6(rogue); + }); + }; + const remove$6 = element => { + const dom = element.dom; + if (dom.parentNode !== null) { + dom.parentNode.removeChild(dom); + } + }; + const unwrap = wrapper => { + const children = children$2(wrapper); + if (children.length > 0) { + after$4(wrapper, children); + } + remove$6(wrapper); + }; + + const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep)); + const shallow = original => clone$1(original, false); + const deep = original => clone$1(original, true); + const shallowAs = (original, tag) => { + const nu = SugarElement.fromTag(tag); + const attributes = clone$2(original); + setAll$1(nu, attributes); + return nu; + }; + const copy$2 = (original, tag) => { + const nu = shallowAs(original, tag); + const cloneChildren = children$2(deep(original)); + append(nu, cloneChildren); + return nu; + }; + const mutate$1 = (original, tag) => { + const nu = shallowAs(original, tag); + after$5(original, nu); + const children = children$2(original); + append(nu, children); + remove$6(original); + return nu; + }; + + const validSectionList = [ + 'tfoot', + 'thead', + 'tbody', + 'colgroup' + ]; + const isValidSection = parentName => contains$2(validSectionList, parentName); + const grid = (rows, columns) => ({ + rows, + columns + }); + const address = (row, column) => ({ + row, + column + }); + const detail = (element, rowspan, colspan) => ({ + element, + rowspan, + colspan + }); + const detailnew = (element, rowspan, colspan, isNew) => ({ + element, + rowspan, + colspan, + isNew + }); + const extended = (element, rowspan, colspan, row, column, isLocked) => ({ + element, + rowspan, + colspan, + row, + column, + isLocked + }); + const rowdetail = (element, cells, section) => ({ + element, + cells, + section + }); + const rowdetailnew = (element, cells, section, isNew) => ({ + element, + cells, + section, + isNew + }); + const elementnew = (element, isNew, isLocked) => ({ + element, + isNew, + isLocked + }); + const rowcells = (element, cells, section, isNew) => ({ + element, + cells, + section, + isNew + }); + const bounds = (startRow, startCol, finishRow, finishCol) => ({ + startRow, + startCol, + finishRow, + finishCol + }); + const columnext = (element, colspan, column) => ({ + element, + colspan, + column + }); + const colgroup = (element, columns) => ({ + element, + columns + }); + + const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host); + const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode); + const isSupported$1 = constant(supported); + const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner; + const getShadowRoot = e => { + const r = getRootNode(e); + return isShadowRoot(r) ? Optional.some(r) : Optional.none(); + }; + const getShadowHost = e => SugarElement.fromDom(e.dom.host); + const getOriginalEventTarget = event => { + if (isSupported$1() && isNonNullable(event.target)) { + const el = SugarElement.fromDom(event.target); + if (isElement(el) && isOpenShadowHost(el)) { + if (event.composed && event.composedPath) { + const composedPath = event.composedPath(); + if (composedPath) { + return head(composedPath); + } + } + } + } + return Optional.from(event.target); + }; + const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot); + + const inBody = element => { + const dom = isText(element) ? element.dom.parentNode : element.dom; + if (dom === undefined || dom === null || dom.ownerDocument === null) { + return false; + } + const doc = dom.ownerDocument; + return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost)); + }; + const body$1 = () => getBody$1(SugarElement.fromDom(document)); + const getBody$1 = doc => { + const b = doc.dom.body; + if (b === null || b === undefined) { + throw new Error('Body is not available yet'); + } + return SugarElement.fromDom(b); + }; + + const ancestors$4 = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate); + const children$1 = (scope, predicate) => filter$2(children$2(scope), predicate); + const descendants$1 = (scope, predicate) => { + let result = []; + each$2(children$2(scope), x => { + if (predicate(x)) { + result = result.concat([x]); + } + result = result.concat(descendants$1(x, predicate)); + }); + return result; + }; + + const ancestors$3 = (scope, selector, isRoot) => ancestors$4(scope, e => is$2(e, selector), isRoot); + const children = (scope, selector) => children$1(scope, e => is$2(e, selector)); + const descendants = (scope, selector) => all$1(selector, scope); + + var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => { + if (is(scope, a)) { + return Optional.some(scope); + } else if (isFunction(isRoot) && isRoot(scope)) { + return Optional.none(); + } else { + return ancestor(scope, a, isRoot); + } + }; + + const ancestor$2 = (scope, predicate, isRoot) => { + let element = scope.dom; + const stop = isFunction(isRoot) ? isRoot : never; + while (element.parentNode) { + element = element.parentNode; + const el = SugarElement.fromDom(element); + if (predicate(el)) { + return Optional.some(el); + } else if (stop(el)) { + break; + } + } + return Optional.none(); + }; + const closest$2 = (scope, predicate, isRoot) => { + const is = (s, test) => test(s); + return ClosestOrAncestor(is, ancestor$2, scope, predicate, isRoot); + }; + const child$1 = (scope, predicate) => { + const pred = node => predicate(SugarElement.fromDom(node)); + const result = find$1(scope.dom.childNodes, pred); + return result.map(SugarElement.fromDom); + }; + const descendant$1 = (scope, predicate) => { + const descend = node => { + for (let i = 0; i < node.childNodes.length; i++) { + const child = SugarElement.fromDom(node.childNodes[i]); + if (predicate(child)) { + return Optional.some(child); + } + const res = descend(node.childNodes[i]); + if (res.isSome()) { + return res; + } + } + return Optional.none(); + }; + return descend(scope.dom); + }; + + const ancestor$1 = (scope, selector, isRoot) => ancestor$2(scope, e => is$2(e, selector), isRoot); + const child = (scope, selector) => child$1(scope, e => is$2(e, selector)); + const descendant = (scope, selector) => one(selector, scope); + const closest$1 = (scope, selector, isRoot) => { + const is = (element, selector) => is$2(element, selector); + return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot); + }; + + const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs)); + const cat = arr => { + const r = []; + const push = x => { + r.push(x); + }; + for (let i = 0; i < arr.length; i++) { + arr[i].each(push); + } + return r; + }; + const bindFrom = (a, f) => a !== undefined && a !== null ? f(a) : Optional.none(); + const someIf = (b, a) => b ? Optional.some(a) : Optional.none(); + + const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr; + const contains = (str, substr, start = 0, end) => { + const idx = str.indexOf(substr, start); + if (idx !== -1) { + return isUndefined(end) ? true : idx + substr.length <= end; + } else { + return false; + } + }; + const startsWith = (str, prefix) => { + return checkRange(str, prefix, 0); + }; + const endsWith = (str, suffix) => { + return checkRange(str, suffix, str.length - suffix.length); + }; + const blank = r => s => s.replace(r, ''); + const trim = blank(/^\s+|\s+$/g); + const isNotEmpty = s => s.length > 0; + const toFloat = value => { + const num = parseFloat(value); + return isNaN(num) ? Optional.none() : Optional.some(num); + }; + + const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue); + + const internalSet = (dom, property, value) => { + if (!isString(value)) { + console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); + throw new Error('CSS value must be a string: ' + value); + } + if (isSupported(dom)) { + dom.style.setProperty(property, value); + } + }; + const internalRemove = (dom, property) => { + if (isSupported(dom)) { + dom.style.removeProperty(property); + } + }; + const set$1 = (element, property, value) => { + const dom = element.dom; + internalSet(dom, property, value); + }; + const setAll = (element, css) => { + const dom = element.dom; + each$1(css, (v, k) => { + internalSet(dom, k, v); + }); + }; + const get$a = (element, property) => { + const dom = element.dom; + const styles = window.getComputedStyle(dom); + const r = styles.getPropertyValue(property); + return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + }; + const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : ''; + const getRaw$2 = (element, property) => { + const dom = element.dom; + const raw = getUnsafeProperty(dom, property); + return Optional.from(raw).filter(r => r.length > 0); + }; + const remove$5 = (element, property) => { + const dom = element.dom; + internalRemove(dom, property); + if (is(getOpt(element, 'style').map(trim), '')) { + remove$7(element, 'style'); + } + }; + const copy$1 = (source, target) => { + const sourceDom = source.dom; + const targetDom = target.dom; + if (isSupported(sourceDom) && isSupported(targetDom)) { + targetDom.style.cssText = sourceDom.style.cssText; + } + }; + + const getAttrValue = (cell, name, fallback = 0) => getOpt(cell, name).map(value => parseInt(value, 10)).getOr(fallback); + const getSpan = (cell, type) => getAttrValue(cell, type, 1); + const hasColspan = cellOrCol => { + if (isTag('col')(cellOrCol)) { + return getAttrValue(cellOrCol, 'span', 1) > 1; + } else { + return getSpan(cellOrCol, 'colspan') > 1; + } + }; + const hasRowspan = cell => getSpan(cell, 'rowspan') > 1; + const getCssValue = (element, property) => parseInt(get$a(element, property), 10); + const minWidth = constant(10); + const minHeight = constant(10); + + const firstLayer = (scope, selector) => { + return filterFirstLayer(scope, selector, always); + }; + const filterFirstLayer = (scope, selector, predicate) => { + return bind$2(children$2(scope), x => { + if (is$2(x, selector)) { + return predicate(x) ? [x] : []; + } else { + return filterFirstLayer(x, selector, predicate); + } + }); + }; + + const lookup = (tags, element, isRoot = never) => { + if (isRoot(element)) { + return Optional.none(); + } + if (contains$2(tags, name(element))) { + return Optional.some(element); + } + const isRootOrUpperTable = elm => is$2(elm, 'table') || isRoot(elm); + return ancestor$1(element, tags.join(','), isRootOrUpperTable); + }; + const cell = (element, isRoot) => lookup([ + 'td', + 'th' + ], element, isRoot); + const cells$1 = ancestor => firstLayer(ancestor, 'th,td'); + const columns$1 = ancestor => { + if (is$2(ancestor, 'colgroup')) { + return children(ancestor, 'col'); + } else { + return bind$2(columnGroups(ancestor), columnGroup => children(columnGroup, 'col')); + } + }; + const table = (element, isRoot) => closest$1(element, 'table', isRoot); + const rows$1 = ancestor => firstLayer(ancestor, 'tr'); + const columnGroups = ancestor => table(ancestor).fold(constant([]), table => children(table, 'colgroup')); + + const fromRowsOrColGroups = (elems, getSection) => map$1(elems, row => { + if (name(row) === 'colgroup') { + const cells = map$1(columns$1(row), column => { + const colspan = getAttrValue(column, 'span', 1); + return detail(column, 1, colspan); + }); + return rowdetail(row, cells, 'colgroup'); + } else { + const cells = map$1(cells$1(row), cell => { + const rowspan = getAttrValue(cell, 'rowspan', 1); + const colspan = getAttrValue(cell, 'colspan', 1); + return detail(cell, rowspan, colspan); + }); + return rowdetail(row, cells, getSection(row)); + } + }); + const getParentSection = group => parent(group).map(parent => { + const parentName = name(parent); + return isValidSection(parentName) ? parentName : 'tbody'; + }).getOr('tbody'); + const fromTable$1 = table => { + const rows = rows$1(table); + const columnGroups$1 = columnGroups(table); + const elems = [ + ...columnGroups$1, + ...rows + ]; + return fromRowsOrColGroups(elems, getParentSection); + }; + const fromPastedRows = (elems, section) => fromRowsOrColGroups(elems, () => section); + + const cached = f => { + let called = false; + let r; + return (...args) => { + if (!called) { + called = true; + r = f.apply(null, args); + } + return r; + }; + }; + + const DeviceType = (os, browser, userAgent, mediaMatch) => { + const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; + const isiPhone = os.isiOS() && !isiPad; + const isMobile = os.isiOS() || os.isAndroid(); + const isTouch = isMobile || mediaMatch('(pointer:coarse)'); + const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)'); + const isPhone = isiPhone || isMobile && !isTablet; + const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; + const isDesktop = !isPhone && !isTablet && !iOSwebview; + return { + isiPad: constant(isiPad), + isiPhone: constant(isiPhone), + isTablet: constant(isTablet), + isPhone: constant(isPhone), + isTouch: constant(isTouch), + isAndroid: os.isAndroid, + isiOS: os.isiOS, + isWebView: constant(iOSwebview), + isDesktop: constant(isDesktop) + }; + }; + + const firstMatch = (regexes, s) => { + for (let i = 0; i < regexes.length; i++) { + const x = regexes[i]; + if (x.test(s)) { + return x; + } + } + return undefined; + }; + const find = (regexes, agent) => { + const r = firstMatch(regexes, agent); + if (!r) { + return { + major: 0, + minor: 0 + }; + } + const group = i => { + return Number(agent.replace(r, '$' + i)); + }; + return nu$2(group(1), group(2)); + }; + const detect$5 = (versionRegexes, agent) => { + const cleanedAgent = String(agent).toLowerCase(); + if (versionRegexes.length === 0) { + return unknown$2(); + } + return find(versionRegexes, cleanedAgent); + }; + const unknown$2 = () => { + return nu$2(0, 0); + }; + const nu$2 = (major, minor) => { + return { + major, + minor + }; + }; + const Version = { + nu: nu$2, + detect: detect$5, + unknown: unknown$2 + }; + + const detectBrowser$1 = (browsers, userAgentData) => { + return findMap(userAgentData.brands, uaBrand => { + const lcBrand = uaBrand.brand.toLowerCase(); + return find$1(browsers, browser => { + var _a; + return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase()); + }).map(info => ({ + current: info.name, + version: Version.nu(parseInt(uaBrand.version, 10), 0) + })); + }); + }; + + const detect$4 = (candidates, userAgent) => { + const agent = String(userAgent).toLowerCase(); + return find$1(candidates, candidate => { + return candidate.Buscar(agent); + }); + }; + const detectBrowser = (browsers, userAgent) => { + return detect$4(browsers, userAgent).map(browser => { + const version = Version.detect(browser.versionRegexes, userAgent); + return { + current: browser.name, + version + }; + }); + }; + const detectOs = (oses, userAgent) => { + return detect$4(oses, userAgent).map(os => { + const version = Version.detect(os.versionRegexes, userAgent); + return { + current: os.name, + version + }; + }); + }; + + const normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; + const checkContains = target => { + return uastring => { + return contains(uastring, target); + }; + }; + const browsers = [ + { + name: 'Edge', + versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], + Buscar: uastring => { + return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit'); + } + }, + { + name: 'Chromium', + brand: 'Chromium', + versionRegexes: [ + /.*?chrome\/([0-9]+)\.([0-9]+).*/, + normalVersionRegex + ], + Buscar: uastring => { + return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe'); + } + }, + { + name: 'IE', + versionRegexes: [ + /.*?msie\ ?([0-9]+)\.([0-9]+).*/, + /.*?rv:([0-9]+)\.([0-9]+).*/ + ], + Buscar: uastring => { + return contains(uastring, 'msie') || contains(uastring, 'trident'); + } + }, + { + name: 'Opera', + versionRegexes: [ + normalVersionRegex, + /.*?opera\/([0-9]+)\.([0-9]+).*/ + ], + Buscar: checkContains('opera') + }, + { + name: 'Firefox', + versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], + Buscar: checkContains('firefox') + }, + { + name: 'Safari', + versionRegexes: [ + normalVersionRegex, + /.*?cpu os ([0-9]+)_([0-9]+).*/ + ], + Buscar: uastring => { + return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit'); + } + } + ]; + const oses = [ + { + name: 'Windows', + Buscar: checkContains('win'), + versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'iOS', + Buscar: uastring => { + return contains(uastring, 'iphone') || contains(uastring, 'ipad'); + }, + versionRegexes: [ + /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, + /.*cpu os ([0-9]+)_([0-9]+).*/, + /.*cpu iphone os ([0-9]+)_([0-9]+).*/ + ] + }, + { + name: 'Android', + Buscar: checkContains('android'), + versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'macOS', + Buscar: checkContains('mac os x'), + versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] + }, + { + name: 'Linux', + Buscar: checkContains('linux'), + versionRegexes: [] + }, + { + name: 'Solaris', + Buscar: checkContains('sunos'), + versionRegexes: [] + }, + { + name: 'FreeBSD', + Buscar: checkContains('freebsd'), + versionRegexes: [] + }, + { + name: 'ChromeOS', + Buscar: checkContains('cros'), + versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] + } + ]; + const PlatformInfo = { + browsers: constant(browsers), + oses: constant(oses) + }; + + const edge = 'Edge'; + const chromium = 'Chromium'; + const ie = 'IE'; + const opera = 'Opera'; + const firefox = 'Firefox'; + const safari = 'Safari'; + const unknown$1 = () => { + return nu$1({ + current: undefined, + version: Version.unknown() + }); + }; + const nu$1 = info => { + const current = info.current; + const version = info.version; + const isBrowser = name => () => current === name; + return { + current, + version, + isEdge: isBrowser(edge), + isChromium: isBrowser(chromium), + isIE: isBrowser(ie), + isOpera: isBrowser(opera), + isFirefox: isBrowser(firefox), + isSafari: isBrowser(safari) + }; + }; + const Browser = { + unknown: unknown$1, + nu: nu$1, + edge: constant(edge), + chromium: constant(chromium), + ie: constant(ie), + opera: constant(opera), + firefox: constant(firefox), + safari: constant(safari) + }; + + const windows = 'Windows'; + const ios = 'iOS'; + const android = 'Android'; + const linux = 'Linux'; + const macos = 'macOS'; + const solaris = 'Solaris'; + const freebsd = 'FreeBSD'; + const chromeos = 'ChromeOS'; + const unknown = () => { + return nu({ + current: undefined, + version: Version.unknown() + }); + }; + const nu = info => { + const current = info.current; + const version = info.version; + const isOS = name => () => current === name; + return { + current, + version, + isWindows: isOS(windows), + isiOS: isOS(ios), + isAndroid: isOS(android), + isMacOS: isOS(macos), + isLinux: isOS(linux), + isSolaris: isOS(solaris), + isFreeBSD: isOS(freebsd), + isChromeOS: isOS(chromeos) + }; + }; + const OperatingSystem = { + unknown, + nu, + windows: constant(windows), + ios: constant(ios), + android: constant(android), + linux: constant(linux), + macos: constant(macos), + solaris: constant(solaris), + freebsd: constant(freebsd), + chromeos: constant(chromeos) + }; + + const detect$3 = (userAgent, userAgentDataOpt, mediaMatch) => { + const browsers = PlatformInfo.browsers(); + const oses = PlatformInfo.oses(); + const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu); + const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu); + const deviceType = DeviceType(os, browser, userAgent, mediaMatch); + return { + browser, + os, + deviceType + }; + }; + const PlatformDetection = { detect: detect$3 }; + + const mediaMatch = query => window.matchMedia(query).matches; + let platform = cached(() => PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch)); + const detect$2 = () => platform(); + + const Dimension = (name, getOffset) => { + const set = (element, h) => { + if (!isNumber(h) && !h.match(/^[0-9]+$/)) { + throw new Error(name + '.set accepts only positive integer values. Value was ' + h); + } + const dom = element.dom; + if (isSupported(dom)) { + dom.style[name] = h + 'px'; + } + }; + const get = element => { + const r = getOffset(element); + if (r <= 0 || r === null) { + const css = get$a(element, name); + return parseFloat(css) || 0; + } + return r; + }; + const getOuter = get; + const aggregate = (element, properties) => foldl(properties, (acc, property) => { + const val = get$a(element, property); + const value = val === undefined ? 0 : parseInt(val, 10); + return isNaN(value) ? acc : acc + value; + }, 0); + const max = (element, value, properties) => { + const cumulativeInclusions = aggregate(element, properties); + const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0; + return absoluteMax; + }; + return { + set, + get, + getOuter, + aggregate, + max + }; + }; + + const toNumber = (px, fallback) => toFloat(px).getOr(fallback); + const getProp = (element, name, fallback) => toNumber(get$a(element, name), fallback); + const calcContentBoxSize = (element, size, upper, lower) => { + const paddingUpper = getProp(element, `padding-${ upper }`, 0); + const paddingLower = getProp(element, `padding-${ lower }`, 0); + const borderUpper = getProp(element, `border-${ upper }-width`, 0); + const borderLower = getProp(element, `border-${ lower }-width`, 0); + return size - paddingUpper - paddingLower - borderUpper - borderLower; + }; + const getCalculatedWidth = (element, boxSizing) => { + const dom = element.dom; + const width = dom.getBoundingClientRect().width || dom.offsetWidth; + return boxSizing === 'border-box' ? width : calcContentBoxSize(element, width, 'left', 'right'); + }; + const getHeight$1 = element => getProp(element, 'height', element.dom.offsetHeight); + const getWidth = element => getProp(element, 'width', element.dom.offsetWidth); + const getInnerWidth = element => getCalculatedWidth(element, 'content-box'); + + const api$2 = Dimension('width', element => element.dom.offsetWidth); + const get$9 = element => api$2.get(element); + const getOuter$2 = element => api$2.getOuter(element); + const getInner = getInnerWidth; + const getRuntime$1 = getWidth; + + const addCells = (gridRow, index, cells) => { + const existingCells = gridRow.cells; + const before = existingCells.slice(0, index); + const after = existingCells.slice(index); + const newCells = before.concat(cells).concat(after); + return setCells(gridRow, newCells); + }; + const addCell = (gridRow, index, cell) => addCells(gridRow, index, [cell]); + const mutateCell = (gridRow, index, cell) => { + const cells = gridRow.cells; + cells[index] = cell; + }; + const setCells = (gridRow, cells) => rowcells(gridRow.element, cells, gridRow.section, gridRow.isNew); + const mapCells = (gridRow, f) => { + const cells = gridRow.cells; + const r = map$1(cells, f); + return rowcells(gridRow.element, r, gridRow.section, gridRow.isNew); + }; + const getCell = (gridRow, index) => gridRow.cells[index]; + const getCellElement = (gridRow, index) => getCell(gridRow, index).element; + const cellLength = gridRow => gridRow.cells.length; + const extractGridDetails = grid => { + const result = partition(grid, row => row.section === 'colgroup'); + return { + rows: result.fail, + cols: result.pass + }; + }; + const clone = (gridRow, cloneRow, cloneCell) => { + const newCells = map$1(gridRow.cells, cloneCell); + return rowcells(cloneRow(gridRow.element), newCells, gridRow.section, true); + }; + + const LOCKED_COL_ATTR = 'data-snooker-locked-cols'; + const getLockedColumnsFromTable = table => getOpt(table, LOCKED_COL_ATTR).bind(lockedColStr => Optional.from(lockedColStr.match(/\d+/g))).map(lockedCols => mapToObject(lockedCols, always)); + const getLockedColumnsFromGrid = grid => { + const locked = foldl(extractGridDetails(grid).rows, (acc, row) => { + each$2(row.cells, (cell, idx) => { + if (cell.isLocked) { + acc[idx] = true; + } + }); + return acc; + }, {}); + const lockedArr = mapToArray(locked, (_val, key) => parseInt(key, 10)); + return sort$1(lockedArr); + }; + + const key = (row, column) => { + return row + ',' + column; + }; + const getAt = (warehouse, row, column) => Optional.from(warehouse.access[key(row, column)]); + const findItem = (warehouse, item, comparator) => { + const filtered = filterItems(warehouse, detail => { + return comparator(item, detail.element); + }); + return filtered.length > 0 ? Optional.some(filtered[0]) : Optional.none(); + }; + const filterItems = (warehouse, predicate) => { + const all = bind$2(warehouse.all, r => { + return r.cells; + }); + return filter$2(all, predicate); + }; + const generateColumns = rowData => { + const columnsGroup = {}; + let index = 0; + each$2(rowData.cells, column => { + const colspan = column.colspan; + range$1(colspan, columnIndex => { + const colIndex = index + columnIndex; + columnsGroup[colIndex] = columnext(column.element, colspan, colIndex); + }); + index += colspan; + }); + return columnsGroup; + }; + const generate$1 = list => { + const access = {}; + const cells = []; + const tableOpt = head(list).map(rowData => rowData.element).bind(table); + const lockedColumns = tableOpt.bind(getLockedColumnsFromTable).getOr({}); + let maxRows = 0; + let maxColumns = 0; + let rowCount = 0; + const { + pass: colgroupRows, + fail: rows + } = partition(list, rowData => rowData.section === 'colgroup'); + each$2(rows, rowData => { + const currentRow = []; + each$2(rowData.cells, rowCell => { + let start = 0; + while (access[key(rowCount, start)] !== undefined) { + start++; + } + const isLocked = hasNonNullableKey(lockedColumns, start.toString()); + const current = extended(rowCell.element, rowCell.rowspan, rowCell.colspan, rowCount, start, isLocked); + for (let occupiedColumnPosition = 0; occupiedColumnPosition < rowCell.colspan; occupiedColumnPosition++) { + for (let occupiedRowPosition = 0; occupiedRowPosition < rowCell.rowspan; occupiedRowPosition++) { + const rowPosition = rowCount + occupiedRowPosition; + const columnPosition = start + occupiedColumnPosition; + const newpos = key(rowPosition, columnPosition); + access[newpos] = current; + maxColumns = Math.max(maxColumns, columnPosition + 1); + } + } + currentRow.push(current); + }); + maxRows++; + cells.push(rowdetail(rowData.element, currentRow, rowData.section)); + rowCount++; + }); + const {columns, colgroups} = last$2(colgroupRows).map(rowData => { + const columns = generateColumns(rowData); + const colgroup$1 = colgroup(rowData.element, values(columns)); + return { + colgroups: [colgroup$1], + columns + }; + }).getOrThunk(() => ({ + colgroups: [], + columns: {} + })); + const grid$1 = grid(maxRows, maxColumns); + return { + grid: grid$1, + access, + all: cells, + columns, + colgroups + }; + }; + const fromTable = table => { + const list = fromTable$1(table); + return generate$1(list); + }; + const justCells = warehouse => bind$2(warehouse.all, w => w.cells); + const justColumns = warehouse => values(warehouse.columns); + const hasColumns = warehouse => keys(warehouse.columns).length > 0; + const getColumnAt = (warehouse, columnIndex) => Optional.from(warehouse.columns[columnIndex]); + const Warehouse = { + fromTable, + generate: generate$1, + getAt, + findItem, + filterItems, + justCells, + justColumns, + hasColumns, + getColumnAt + }; + + const columns = (warehouse, isValidCell = always) => { + const grid = warehouse.grid; + const cols = range$1(grid.columns, identity); + const rowsArr = range$1(grid.rows, identity); + return map$1(cols, col => { + const getBlock = () => bind$2(rowsArr, r => Warehouse.getAt(warehouse, r, col).filter(detail => detail.column === col).toArray()); + const isValid = detail => detail.colspan === 1 && isValidCell(detail.element); + const getFallback = () => Warehouse.getAt(warehouse, 0, col); + return decide(getBlock, isValid, getFallback); + }); + }; + const decide = (getBlock, isValid, getFallback) => { + const inBlock = getBlock(); + const validInBlock = find$1(inBlock, isValid); + const detailOption = validInBlock.orThunk(() => Optional.from(inBlock[0]).orThunk(getFallback)); + return detailOption.map(detail => detail.element); + }; + const rows = warehouse => { + const grid = warehouse.grid; + const rowsArr = range$1(grid.rows, identity); + const cols = range$1(grid.columns, identity); + return map$1(rowsArr, row => { + const getBlock = () => bind$2(cols, c => Warehouse.getAt(warehouse, row, c).filter(detail => detail.row === row).fold(constant([]), detail => [detail])); + const isSingle = detail => detail.rowspan === 1; + const getFallback = () => Warehouse.getAt(warehouse, row, 0); + return decide(getBlock, isSingle, getFallback); + }); + }; + + const deduce = (xs, index) => { + if (index < 0 || index >= xs.length - 1) { + return Optional.none(); + } + const current = xs[index].fold(() => { + const rest = reverse(xs.slice(0, index)); + return findMap(rest, (a, i) => a.map(aa => ({ + value: aa, + delta: i + 1 + }))); + }, c => Optional.some({ + value: c, + delta: 0 + })); + const next = xs[index + 1].fold(() => { + const rest = xs.slice(index + 1); + return findMap(rest, (a, i) => a.map(aa => ({ + value: aa, + delta: i + 1 + }))); + }, n => Optional.some({ + value: n, + delta: 1 + })); + return current.bind(c => next.map(n => { + const extras = n.delta + c.delta; + return Math.abs(n.value - c.value) / extras; + })); + }; + + const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr; + const getDirection = element => get$a(element, 'direction') === 'rtl' ? 'rtl' : 'ltr'; + + const api$1 = Dimension('height', element => { + const dom = element.dom; + return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight; + }); + const get$8 = element => api$1.get(element); + const getOuter$1 = element => api$1.getOuter(element); + const getRuntime = getHeight$1; + + const r = (left, top) => { + const translate = (x, y) => r(left + x, top + y); + return { + left, + top, + translate + }; + }; + const SugarPosition = r; + + const boxPosition = dom => { + const box = dom.getBoundingClientRect(); + return SugarPosition(box.left, box.top); + }; + const firstDefinedOrZero = (a, b) => { + if (a !== undefined) { + return a; + } else { + return b !== undefined ? b : 0; + } + }; + const absolute = element => { + const doc = element.dom.ownerDocument; + const body = doc.body; + const win = doc.defaultView; + const html = doc.documentElement; + if (body === element.dom) { + return SugarPosition(body.offsetLeft, body.offsetTop); + } + const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop); + const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft); + const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop); + const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft); + return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop); + }; + const viewport = element => { + const dom = element.dom; + const doc = dom.ownerDocument; + const body = doc.body; + if (body === dom) { + return SugarPosition(body.offsetLeft, body.offsetTop); + } + if (!inBody(element)) { + return SugarPosition(0, 0); + } + return boxPosition(dom); + }; + + const rowInfo = (row, y) => ({ + row, + y + }); + const colInfo = (col, x) => ({ + col, + x + }); + const rtlEdge = cell => { + const pos = absolute(cell); + return pos.left + getOuter$2(cell); + }; + const ltrEdge = cell => { + return absolute(cell).left; + }; + const getLeftEdge = (index, cell) => { + return colInfo(index, ltrEdge(cell)); + }; + const getRightEdge = (index, cell) => { + return colInfo(index, rtlEdge(cell)); + }; + const getTop$1 = cell => { + return absolute(cell).top; + }; + const getTopEdge = (index, cell) => { + return rowInfo(index, getTop$1(cell)); + }; + const getBottomEdge = (index, cell) => { + return rowInfo(index, getTop$1(cell) + getOuter$1(cell)); + }; + const findPositions = (getInnerEdge, getOuterEdge, array) => { + if (array.length === 0) { + return []; + } + const lines = map$1(array.slice(1), (cellOption, index) => { + return cellOption.map(cell => { + return getInnerEdge(index, cell); + }); + }); + const lastLine = array[array.length - 1].map(cell => { + return getOuterEdge(array.length - 1, cell); + }); + return lines.concat([lastLine]); + }; + const negate = step => { + return -step; + }; + const height = { + delta: identity, + positions: optElements => findPositions(getTopEdge, getBottomEdge, optElements), + edge: getTop$1 + }; + const ltr$1 = { + delta: identity, + edge: ltrEdge, + positions: optElements => findPositions(getLeftEdge, getRightEdge, optElements) + }; + const rtl$1 = { + delta: negate, + edge: rtlEdge, + positions: optElements => findPositions(getRightEdge, getLeftEdge, optElements) + }; + const detect$1 = onDirection(ltr$1, rtl$1); + const width = { + delta: (amount, table) => detect$1(table).delta(amount, table), + positions: (cols, table) => detect$1(table).positions(cols, table), + edge: cell => detect$1(cell).edge(cell) + }; + + const units = { + unsupportedLength: [ + 'em', + 'ex', + 'cap', + 'ch', + 'ic', + 'rem', + 'lh', + 'rlh', + 'vw', + 'vh', + 'vi', + 'vb', + 'vmin', + 'vmax', + 'cm', + 'mm', + 'Q', + 'in', + 'pc', + 'pt', + 'px' + ], + fixed: [ + 'px', + 'pt' + ], + relative: ['%'], + empty: [''] + }; + const pattern = (() => { + const decimalDigits = '[0-9]+'; + const signedInteger = '[+-]?' + decimalDigits; + const exponentPart = '[eE]' + signedInteger; + const dot = '\\.'; + const opt = input => `(?:${ input })?`; + const unsignedDecimalLiteral = [ + 'Infinity', + decimalDigits + dot + opt(decimalDigits) + opt(exponentPart), + dot + decimalDigits + opt(exponentPart), + decimalDigits + opt(exponentPart) + ].join('|'); + const float = `[+-]?(?:${ unsignedDecimalLiteral })`; + return new RegExp(`^(${ float })(.*)$`); + })(); + const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check)); + const parse = (input, accepted) => { + const match = Optional.from(pattern.exec(input)); + return match.bind(array => { + const value = Number(array[1]); + const unitRaw = array[2]; + if (isUnit(unitRaw, accepted)) { + return Optional.some({ + value, + unit: unitRaw + }); + } else { + return Optional.none(); + } + }); + }; + + const rPercentageBasedSizeRegex = /(\d+(\.\d+)?)%/; + const rPixelBasedSizeRegex = /(\d+(\.\d+)?)px|em/; + const isCol$2 = isTag('col'); + const getPercentSize = (elm, outerGetter, innerGetter) => { + const relativeParent = parentElement(elm).getOrThunk(() => getBody$1(owner(elm))); + return outerGetter(elm) / innerGetter(relativeParent) * 100; + }; + const setPixelWidth = (cell, amount) => { + set$1(cell, 'width', amount + 'px'); + }; + const setPercentageWidth = (cell, amount) => { + set$1(cell, 'width', amount + '%'); + }; + const setHeight = (cell, amount) => { + set$1(cell, 'height', amount + 'px'); + }; + const getHeightValue = cell => getRuntime(cell) + 'px'; + const convert = (cell, number, getter, setter) => { + const newSize = table(cell).map(table => { + const total = getter(table); + return Math.floor(number / 100 * total); + }).getOr(number); + setter(cell, newSize); + return newSize; + }; + const normalizePixelSize = (value, cell, getter, setter) => { + const number = parseFloat(value); + return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number; + }; + const getTotalHeight = cell => { + const value = getHeightValue(cell); + if (!value) { + return get$8(cell); + } + return normalizePixelSize(value, cell, get$8, setHeight); + }; + const get$7 = (cell, type, f) => { + const v = f(cell); + const span = getSpan(cell, type); + return v / span; + }; + const getRaw$1 = (element, prop) => { + return getRaw$2(element, prop).orThunk(() => { + return getOpt(element, prop).map(val => val + 'px'); + }); + }; + const getRawWidth$1 = element => getRaw$1(element, 'width'); + const getRawHeight = element => getRaw$1(element, 'height'); + const getPercentageWidth = cell => getPercentSize(cell, get$9, getInner); + const getPixelWidth$1 = cell => isCol$2(cell) ? get$9(cell) : getRuntime$1(cell); + const getHeight = cell => { + return get$7(cell, 'rowspan', getTotalHeight); + }; + const getGenericWidth = cell => { + const width = getRawWidth$1(cell); + return width.bind(w => parse(w, [ + 'fixed', + 'relative', + 'empty' + ])); + }; + const setGenericWidth = (cell, amount, unit) => { + set$1(cell, 'width', amount + unit); + }; + const getPixelTableWidth = table => get$9(table) + 'px'; + const getPercentTableWidth = table => getPercentSize(table, get$9, getInner) + '%'; + const isPercentSizing$1 = table => getRawWidth$1(table).exists(size => rPercentageBasedSizeRegex.test(size)); + const isPixelSizing$1 = table => getRawWidth$1(table).exists(size => rPixelBasedSizeRegex.test(size)); + const isNoneSizing$1 = table => getRawWidth$1(table).isNone(); + const percentageBasedSizeRegex = constant(rPercentageBasedSizeRegex); + + const isCol$1 = isTag('col'); + const getRawW = cell => { + return getRawWidth$1(cell).getOrThunk(() => getPixelWidth$1(cell) + 'px'); + }; + const getRawH = cell => { + return getRawHeight(cell).getOrThunk(() => getHeight(cell) + 'px'); + }; + const justCols = warehouse => map$1(Warehouse.justColumns(warehouse), column => Optional.from(column.element)); + const isValidColumn = cell => { + const browser = detect$2().browser; + const supportsColWidths = browser.isChromium() || browser.isFirefox(); + return isCol$1(cell) ? supportsColWidths : true; + }; + const getDimension = (cellOpt, index, backups, filter, getter, fallback) => cellOpt.filter(filter).fold(() => fallback(deduce(backups, index)), cell => getter(cell)); + const getWidthFrom = (warehouse, table, getWidth, fallback) => { + const columnCells = columns(warehouse); + const columns$1 = Warehouse.hasColumns(warehouse) ? justCols(warehouse) : columnCells; + const backups = [Optional.some(width.edge(table))].concat(map$1(width.positions(columnCells, table), pos => pos.map(p => p.x))); + const colFilter = not(hasColspan); + return map$1(columns$1, (cellOption, c) => { + return getDimension(cellOption, c, backups, colFilter, column => { + if (isValidColumn(column)) { + return getWidth(column); + } else { + const cell = bindFrom(columnCells[c], identity); + return getDimension(cell, c, backups, colFilter, cell => fallback(Optional.some(get$9(cell))), fallback); + } + }, fallback); + }); + }; + const getDeduced = deduced => { + return deduced.map(d => { + return d + 'px'; + }).getOr(''); + }; + const getRawWidths = (warehouse, table) => { + return getWidthFrom(warehouse, table, getRawW, getDeduced); + }; + const getPercentageWidths = (warehouse, table, Tablasize) => { + return getWidthFrom(warehouse, table, getPercentageWidth, deduced => { + return deduced.fold(() => { + return Tablasize.minCellWidth(); + }, cellWidth => { + return cellWidth / Tablasize.pixelWidth() * 100; + }); + }); + }; + const getPixelWidths = (warehouse, table, Tablasize) => { + return getWidthFrom(warehouse, table, getPixelWidth$1, deduced => { + return deduced.getOrThunk(Tablasize.minCellWidth); + }); + }; + const getHeightFrom = (warehouse, table, direction, getHeight, fallback) => { + const rows$1 = rows(warehouse); + const backups = [Optional.some(direction.edge(table))].concat(map$1(direction.positions(rows$1, table), pos => pos.map(p => p.y))); + return map$1(rows$1, (cellOption, c) => { + return getDimension(cellOption, c, backups, not(hasRowspan), getHeight, fallback); + }); + }; + const getPixelHeights = (warehouse, table, direction) => { + return getHeightFrom(warehouse, table, direction, getHeight, deduced => { + return deduced.getOrThunk(minHeight); + }); + }; + const getRawHeights = (warehouse, table, direction) => { + return getHeightFrom(warehouse, table, direction, getRawH, getDeduced); + }; + + const widthLookup = (table, getter) => () => { + if (inBody(table)) { + return getter(table); + } else { + return parseFloat(getRaw$2(table, 'width').getOr('0')); + } + }; + const noneSize = table => { + const getWidth = widthLookup(table, get$9); + const zero = constant(0); + const getWidths = (warehouse, Tablasize) => getPixelWidths(warehouse, table, Tablasize); + return { + width: getWidth, + pixelWidth: getWidth, + getWidths, + getCellDelta: zero, + singleColumnWidth: constant([0]), + minCellWidth: zero, + setElementWidth: noop, + adjustTableWidth: noop, + isRelative: true, + label: 'none' + }; + }; + const percentageSize = table => { + const getFloatWidth = widthLookup(table, elem => parseFloat(getPercentTableWidth(elem))); + const getWidth = widthLookup(table, get$9); + const getCellDelta = delta => delta / getWidth() * 100; + const singleColumnWidth = (w, _delta) => [100 - w]; + const minCellWidth = () => minWidth() / getWidth() * 100; + const adjustTableWidth = delta => { + const currentWidth = getFloatWidth(); + const change = delta / 100 * currentWidth; + const newWidth = currentWidth + change; + setPercentageWidth(table, newWidth); + }; + const getWidths = (warehouse, Tablasize) => getPercentageWidths(warehouse, table, Tablasize); + return { + width: getFloatWidth, + pixelWidth: getWidth, + getWidths, + getCellDelta, + singleColumnWidth, + minCellWidth, + setElementWidth: setPercentageWidth, + adjustTableWidth, + isRelative: true, + label: 'percent' + }; + }; + const pixelSize = table => { + const getWidth = widthLookup(table, get$9); + const getCellDelta = identity; + const singleColumnWidth = (w, delta) => { + const newNext = Math.max(minWidth(), w + delta); + return [newNext - w]; + }; + const adjustTableWidth = delta => { + const newWidth = getWidth() + delta; + setPixelWidth(table, newWidth); + }; + const getWidths = (warehouse, Tablasize) => getPixelWidths(warehouse, table, Tablasize); + return { + width: getWidth, + pixelWidth: getWidth, + getWidths, + getCellDelta, + singleColumnWidth, + minCellWidth: minWidth, + setElementWidth: setPixelWidth, + adjustTableWidth, + isRelative: false, + label: 'pixel' + }; + }; + const chooseSize = (element, width) => { + const percentMatch = percentageBasedSizeRegex().exec(width); + if (percentMatch !== null) { + return percentageSize(element); + } else { + return pixelSize(element); + } + }; + const getTablasize = table => { + const width = getRawWidth$1(table); + return width.fold(() => noneSize(table), w => chooseSize(table, w)); + }; + const Tablasize = { + getTablasize, + pixelSize, + percentageSize, + noneSize + }; + + const statsStruct = (minRow, minCol, maxRow, maxCol, allCells, selectedCells) => ({ + minRow, + minCol, + maxRow, + maxCol, + allCells, + selectedCells + }); + const findSelectedStats = (house, isSelected) => { + const totalColumns = house.grid.columns; + const totalRows = house.grid.rows; + let minRow = totalRows; + let minCol = totalColumns; + let maxRow = 0; + let maxCol = 0; + const allCells = []; + const selectedCells = []; + each$1(house.access, detail => { + allCells.push(detail); + if (isSelected(detail)) { + selectedCells.push(detail); + const startRow = detail.row; + const endRow = startRow + detail.rowspan - 1; + const startCol = detail.column; + const endCol = startCol + detail.colspan - 1; + if (startRow < minRow) { + minRow = startRow; + } else if (endRow > maxRow) { + maxRow = endRow; + } + if (startCol < minCol) { + minCol = startCol; + } else if (endCol > maxCol) { + maxCol = endCol; + } + } + }); + return statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells); + }; + const makeCell = (list, seenSelected, rowIndex) => { + const row = list[rowIndex].element; + const td = SugarElement.fromTag('td'); + append$1(td, SugarElement.fromTag('br')); + const f = seenSelected ? append$1 : prepend; + f(row, td); + }; + const fillInGaps = (list, house, stats, isSelected) => { + const rows = filter$2(list, row => row.section !== 'colgroup'); + const totalColumns = house.grid.columns; + const totalRows = house.grid.rows; + for (let i = 0; i < totalRows; i++) { + let seenSelected = false; + for (let j = 0; j < totalColumns; j++) { + if (!(i < stats.minRow || i > stats.maxRow || j < stats.minCol || j > stats.maxCol)) { + const needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone(); + if (needCell) { + makeCell(rows, seenSelected, i); + } else { + seenSelected = true; + } + } + } + } + }; + const clean = (replica, stats, house, widthDelta) => { + each$1(house.columns, col => { + if (col.column < stats.minCol || col.column > stats.maxCol) { + remove$6(col.element); + } + }); + const emptyRows = filter$2(firstLayer(replica, 'tr'), row => row.dom.childElementCount === 0); + each$2(emptyRows, remove$6); + if (stats.minCol === stats.maxCol || stats.minRow === stats.maxRow) { + each$2(firstLayer(replica, 'th,td'), cell => { + remove$7(cell, 'rowspan'); + remove$7(cell, 'colspan'); + }); + } + remove$7(replica, LOCKED_COL_ATTR); + remove$7(replica, 'data-snooker-col-series'); + const Tablasize = Tablasize.getTablasize(replica); + Tablasize.adjustTableWidth(widthDelta); + }; + const getTableWidthDelta = (table, warehouse, Tablasize, stats) => { + if (stats.minCol === 0 && warehouse.grid.columns === stats.maxCol + 1) { + return 0; + } + const colWidths = getPixelWidths(warehouse, table, Tablasize); + const allColsWidth = foldl(colWidths, (acc, width) => acc + width, 0); + const selectedColsWidth = foldl(colWidths.slice(stats.minCol, stats.maxCol + 1), (acc, width) => acc + width, 0); + const newWidth = selectedColsWidth / allColsWidth * Tablasize.pixelWidth(); + const delta = newWidth - Tablasize.pixelWidth(); + return Tablasize.getCellDelta(delta); + }; + const extract$1 = (table, selectedSelector) => { + const isSelected = detail => is$2(detail.element, selectedSelector); + const replica = deep(table); + const list = fromTable$1(replica); + const Tablasize = Tablasize.getTablasize(table); + const replicaHouse = Warehouse.generate(list); + const replicaStats = findSelectedStats(replicaHouse, isSelected); + const selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')'; + const unselectedCells = filterFirstLayer(replica, 'th,td', cell => is$2(cell, selector)); + each$2(unselectedCells, remove$6); + fillInGaps(list, replicaHouse, replicaStats, isSelected); + const house = Warehouse.fromTable(table); + const widthDelta = getTableWidthDelta(table, house, Tablasize, replicaStats); + clean(replica, replicaStats, replicaHouse, widthDelta); + return replica; + }; + + const nbsp = '\xA0'; + + const NodeValue = (is, name) => { + const get = element => { + if (!is(element)) { + throw new Error('Can only get ' + name + ' value of a ' + name + ' node'); + } + return getOption(element).getOr(''); + }; + const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none(); + const set = (element, value) => { + if (!is(element)) { + throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node'); + } + element.dom.nodeValue = value; + }; + return { + get, + getOption, + set + }; + }; + + const api = NodeValue(isText, 'text'); + const get$6 = element => api.get(element); + const getOption = element => api.getOption(element); + const set = (element, value) => api.set(element, value); + + const getEnd = element => name(element) === 'img' ? 1 : getOption(element).fold(() => children$2(element).length, v => v.length); + const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome(); + const elementsWithCursorPosition = [ + 'img', + 'br' + ]; + const isCursorPosition = elem => { + const hasCursorPosition = isTextNodeWithCursorPosition(elem); + return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)); + }; + + const first = element => descendant$1(element, isCursorPosition); + const last$1 = element => descendantRtl(element, isCursorPosition); + const descendantRtl = (scope, predicate) => { + const descend = element => { + const children = children$2(element); + for (let i = children.length - 1; i >= 0; i--) { + const child = children[i]; + if (predicate(child)) { + return Optional.some(child); + } + const res = descend(child); + if (res.isSome()) { + return res; + } + } + return Optional.none(); + }; + return descend(scope); + }; + + const transferableAttributes = { + scope: [ + 'row', + 'col' + ] + }; + const createCell = doc => () => { + const td = SugarElement.fromTag('td', doc.dom); + append$1(td, SugarElement.fromTag('br', doc.dom)); + return td; + }; + const createCol = doc => () => { + return SugarElement.fromTag('col', doc.dom); + }; + const createColgroup = doc => () => { + return SugarElement.fromTag('colgroup', doc.dom); + }; + const createRow$1 = doc => () => { + return SugarElement.fromTag('tr', doc.dom); + }; + const replace$1 = (cell, tag, attrs) => { + const replica = copy$2(cell, tag); + each$1(attrs, (v, k) => { + if (v === null) { + remove$7(replica, k); + } else { + set$2(replica, k, v); + } + }); + return replica; + }; + const pasteReplace = cell => { + return cell; + }; + const cloneFormats = (oldCell, newCell, formats) => { + const first$1 = first(oldCell); + return first$1.map(firstText => { + const formatSelector = formats.join(','); + const parents = ancestors$3(firstText, formatSelector, element => { + return eq$1(element, oldCell); + }); + return foldr(parents, (last, parent) => { + const clonedFormat = shallow(parent); + remove$7(clonedFormat, 'contenteditable'); + append$1(last, clonedFormat); + return clonedFormat; + }, newCell); + }).getOr(newCell); + }; + const cloneAppropriateAttributes = (original, clone) => { + each$1(transferableAttributes, (validAttributes, attributeName) => getOpt(original, attributeName).filter(attribute => contains$2(validAttributes, attribute)).each(attribute => set$2(clone, attributeName, attribute))); + }; + const cellOperations = (mutate, doc, formatsToClone) => { + const cloneCss = (prev, clone) => { + copy$1(prev.element, clone); + remove$5(clone, 'height'); + if (prev.colspan !== 1) { + remove$5(clone, 'width'); + } + }; + const newCell = prev => { + const td = SugarElement.fromTag(name(prev.element), doc.dom); + const formats = formatsToClone.getOr([ + 'strong', + 'em', + 'b', + 'i', + 'span', + 'font', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'p', + 'div' + ]); + const lastNode = formats.length > 0 ? cloneFormats(prev.element, td, formats) : td; + append$1(lastNode, SugarElement.fromTag('br')); + cloneCss(prev, td); + cloneAppropriateAttributes(prev.element, td); + mutate(prev.element, td); + return td; + }; + const newCol = prev => { + const col = SugarElement.fromTag(name(prev.element), doc.dom); + cloneCss(prev, col); + mutate(prev.element, col); + return col; + }; + return { + col: newCol, + colgroup: createColgroup(doc), + row: createRow$1(doc), + cell: newCell, + replace: replace$1, + colGap: createCol(doc), + gap: createCell(doc) + }; + }; + const paste$1 = doc => { + return { + col: createCol(doc), + colgroup: createColgroup(doc), + row: createRow$1(doc), + cell: createCell(doc), + replace: pasteReplace, + colGap: createCol(doc), + gap: createCell(doc) + }; + }; + + const fromHtml = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + return children$2(SugarElement.fromDom(div)); + }; + const fromDom = nodes => map$1(nodes, SugarElement.fromDom); + + const getBody = editor => SugarElement.fromDom(editor.getBody()); + const getIsRoot = editor => element => eq$1(element, getBody(editor)); + const removeDataStyle = table => { + remove$7(table, 'data-mce-style'); + const removeStyleAttribute = element => remove$7(element, 'data-mce-style'); + each$2(cells$1(table), removeStyleAttribute); + each$2(columns$1(table), removeStyleAttribute); + each$2(rows$1(table), removeStyleAttribute); + }; + const getSelectionStart = editor => SugarElement.fromDom(editor.selection.getStart()); + const getPixelWidth = elm => elm.getBoundingClientRect().width; + const getPixelHeight = elm => elm.getBoundingClientRect().height; + const getRawWidth = (editor, elm) => { + const raw = editor.dom.getStyle(elm, 'width') || editor.dom.getAttrib(elm, 'width'); + return Optional.from(raw).filter(isNotEmpty); + }; + const isPercentage$1 = value => /^(\d+(\.\d+)?)%$/.test(value); + const isPixel = value => /^(\d+(\.\d+)?)px$/.test(value); + + const inSelection = (bounds, detail) => { + const leftEdge = detail.column; + const rightEdge = detail.column + detail.colspan - 1; + const topEdge = detail.row; + const bottomEdge = detail.row + detail.rowspan - 1; + return leftEdge <= bounds.finishCol && rightEdge >= bounds.startCol && (topEdge <= bounds.finishRow && bottomEdge >= bounds.startRow); + }; + const isWithin = (bounds, detail) => { + return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow; + }; + const isRectangular = (warehouse, bounds) => { + let isRect = true; + const detailIsWithin = curry(isWithin, bounds); + for (let i = bounds.startRow; i <= bounds.finishRow; i++) { + for (let j = bounds.startCol; j <= bounds.finishCol; j++) { + isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin); + } + } + return isRect ? Optional.some(bounds) : Optional.none(); + }; + + const getBounds = (detailA, detailB) => { + return bounds(Math.min(detailA.row, detailB.row), Math.min(detailA.column, detailB.column), Math.max(detailA.row + detailA.rowspan - 1, detailB.row + detailB.rowspan - 1), Math.max(detailA.column + detailA.colspan - 1, detailB.column + detailB.colspan - 1)); + }; + const getAnyBox = (warehouse, startCell, finishCell) => { + const startCoords = Warehouse.findItem(warehouse, startCell, eq$1); + const finishCoords = Warehouse.findItem(warehouse, finishCell, eq$1); + return startCoords.bind(sc => { + return finishCoords.map(fc => { + return getBounds(sc, fc); + }); + }); + }; + const getBox$1 = (warehouse, startCell, finishCell) => { + return getAnyBox(warehouse, startCell, finishCell).bind(bounds => { + return isRectangular(warehouse, bounds); + }); + }; + + const moveBy$1 = (warehouse, cell, row, column) => { + return Warehouse.findItem(warehouse, cell, eq$1).bind(detail => { + const startRow = row > 0 ? detail.row + detail.rowspan - 1 : detail.row; + const startCol = column > 0 ? detail.column + detail.colspan - 1 : detail.column; + const dest = Warehouse.getAt(warehouse, startRow + row, startCol + column); + return dest.map(d => { + return d.element; + }); + }); + }; + const intercepts$1 = (warehouse, start, finish) => { + return getAnyBox(warehouse, start, finish).map(bounds => { + const inside = Warehouse.filterItems(warehouse, curry(inSelection, bounds)); + return map$1(inside, detail => { + return detail.element; + }); + }); + }; + const parentCell = (warehouse, innerCell) => { + const isContainedBy = (c1, c2) => { + return contains$1(c2, c1); + }; + return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(detail => { + return detail.element; + }); + }; + + const moveBy = (cell, deltaRow, deltaColumn) => { + return table(cell).bind(table => { + const warehouse = getWarehouse(table); + return moveBy$1(warehouse, cell, deltaRow, deltaColumn); + }); + }; + const intercepts = (table, first, last) => { + const warehouse = getWarehouse(table); + return intercepts$1(warehouse, first, last); + }; + const nestedIntercepts = (table, first, firstTable, last, lastTable) => { + const warehouse = getWarehouse(table); + const optStartCell = eq$1(table, firstTable) ? Optional.some(first) : parentCell(warehouse, first); + const optLastCell = eq$1(table, lastTable) ? Optional.some(last) : parentCell(warehouse, last); + return optStartCell.bind(startCell => optLastCell.bind(lastCell => intercepts$1(warehouse, startCell, lastCell))); + }; + const getBox = (table, first, last) => { + const warehouse = getWarehouse(table); + return getBox$1(warehouse, first, last); + }; + const getWarehouse = Warehouse.fromTable; + + var TagBoundaries = [ + 'body', + 'p', + 'div', + 'article', + 'aside', + 'figcaption', + 'figure', + 'footer', + 'header', + 'nav', + 'section', + 'ol', + 'ul', + 'li', + 'table', + 'thead', + 'tbody', + 'tfoot', + 'caption', + 'tr', + 'td', + 'th', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'pre', + 'address' + ]; + + var DomUniverse = () => { + const clone = element => { + return SugarElement.fromDom(element.dom.cloneNode(false)); + }; + const document = element => documentOrOwner(element).dom; + const isBoundary = element => { + if (!isElement(element)) { + return false; + } + if (name(element) === 'body') { + return true; + } + return contains$2(TagBoundaries, name(element)); + }; + const isEmptyTag = element => { + if (!isElement(element)) { + return false; + } + return contains$2([ + 'br', + 'img', + 'hr', + 'input' + ], name(element)); + }; + const isNonEditable = element => isElement(element) && get$b(element, 'contenteditable') === 'false'; + const comparePosition = (element, other) => { + return element.dom.compareDocumentPosition(other.dom); + }; + const copyAttributesTo = (source, destination) => { + const as = clone$2(source); + setAll$1(destination, as); + }; + const isSpecial = element => { + const tag = name(element); + return contains$2([ + 'script', + 'noscript', + 'iframe', + 'noframes', + 'noembed', + 'title', + 'style', + 'textarea', + 'xmp' + ], tag); + }; + const getLanguage = element => isElement(element) ? getOpt(element, 'lang') : Optional.none(); + return { + up: constant({ + selector: ancestor$1, + closest: closest$1, + predicate: ancestor$2, + all: parents + }), + down: constant({ + selector: descendants, + predicate: descendants$1 + }), + styles: constant({ + get: get$a, + getRaw: getRaw$2, + set: set$1, + remove: remove$5 + }), + attrs: constant({ + get: get$b, + set: set$2, + remove: remove$7, + copyTo: copyAttributesTo + }), + insert: constant({ + before: before$3, + after: after$5, + afterAll: after$4, + append: append$1, + appendAll: append, + prepend: prepend, + wrap: wrap + }), + remove: constant({ + unwrap: unwrap, + remove: remove$6 + }), + create: constant({ + nu: SugarElement.fromTag, + clone, + text: SugarElement.fromText + }), + query: constant({ + comparePosition, + prevSibling: prevSibling, + nextSibling: nextSibling + }), + property: constant({ + children: children$2, + name: name, + parent: parent, + document, + isText: isText, + isComment: isComment, + isElement: isElement, + isSpecial, + getLanguage, + getText: get$6, + setText: set, + isBoundary, + isEmptyTag, + isNonEditable + }), + eq: eq$1, + is: is$1 + }; + }; + + const all = (universe, look, elements, f) => { + const head = elements[0]; + const tail = elements.slice(1); + return f(universe, look, head, tail); + }; + const oneAll = (universe, look, elements) => { + return elements.length > 0 ? all(universe, look, elements, unsafeOne) : Optional.none(); + }; + const unsafeOne = (universe, look, head, tail) => { + const start = look(universe, head); + return foldr(tail, (b, a) => { + const current = look(universe, a); + return commonElement(universe, b, current); + }, start); + }; + const commonElement = (universe, start, end) => { + return start.bind(s => { + return end.filter(curry(universe.eq, s)); + }); + }; + + const eq = (universe, item) => { + return curry(universe.eq, item); + }; + const ancestors$2 = (universe, start, end, isRoot = never) => { + const ps1 = [start].concat(universe.up().all(start)); + const ps2 = [end].concat(universe.up().all(end)); + const prune = path => { + const index = findIndex(path, isRoot); + return index.fold(() => { + return path; + }, ind => { + return path.slice(0, ind + 1); + }); + }; + const pruned1 = prune(ps1); + const pruned2 = prune(ps2); + const shared = find$1(pruned1, x => { + return exists(pruned2, eq(universe, x)); + }); + return { + firstpath: pruned1, + secondpath: pruned2, + shared + }; + }; + + const sharedOne$1 = oneAll; + const ancestors$1 = ancestors$2; + + const universe$3 = DomUniverse(); + const sharedOne = (look, elements) => { + return sharedOne$1(universe$3, (_universe, element) => { + return look(element); + }, elements); + }; + const ancestors = (start, finish, isRoot) => { + return ancestors$1(universe$3, start, finish, isRoot); + }; + + const lookupTable = container => { + return ancestor$1(container, 'table'); + }; + const identify = (start, finish, isRoot) => { + const getIsRoot = rootTable => { + return element => { + return isRoot !== undefined && isRoot(element) || eq$1(element, rootTable); + }; + }; + if (eq$1(start, finish)) { + return Optional.some({ + boxes: Optional.some([start]), + start, + finish + }); + } else { + return lookupTable(start).bind(startTable => { + return lookupTable(finish).bind(finishTable => { + if (eq$1(startTable, finishTable)) { + return Optional.some({ + boxes: intercepts(startTable, start, finish), + start, + finish + }); + } else if (contains$1(startTable, finishTable)) { + const ancestorCells = ancestors$3(finish, 'td,th', getIsRoot(startTable)); + const finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish; + return Optional.some({ + boxes: nestedIntercepts(startTable, start, startTable, finish, finishTable), + start, + finish: finishCell + }); + } else if (contains$1(finishTable, startTable)) { + const ancestorCells = ancestors$3(start, 'td,th', getIsRoot(finishTable)); + const startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start; + return Optional.some({ + boxes: nestedIntercepts(finishTable, start, startTable, finish, finishTable), + start, + finish: startCell + }); + } else { + return ancestors(start, finish).shared.bind(lca => { + return closest$1(lca, 'table', isRoot).bind(lcaTable => { + const finishAncestorCells = ancestors$3(finish, 'td,th', getIsRoot(lcaTable)); + const finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish; + const startAncestorCells = ancestors$3(start, 'td,th', getIsRoot(lcaTable)); + const startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start; + return Optional.some({ + boxes: nestedIntercepts(lcaTable, start, startTable, finish, finishTable), + start: startCell, + finish: finishCell + }); + }); + }); + } + }); + }); + } + }; + const retrieve$1 = (container, selector) => { + const sels = descendants(container, selector); + return sels.length > 0 ? Optional.some(sels) : Optional.none(); + }; + const getLast = (boxes, lastSelectedSelector) => { + return find$1(boxes, box => { + return is$2(box, lastSelectedSelector); + }); + }; + const getEdges = (container, firstSelectedSelector, lastSelectedSelector) => { + return descendant(container, firstSelectedSelector).bind(first => { + return descendant(container, lastSelectedSelector).bind(last => { + return sharedOne(lookupTable, [ + first, + last + ]).map(table => { + return { + first, + last, + table + }; + }); + }); + }); + }; + const expandTo = (finish, firstSelectedSelector) => { + return ancestor$1(finish, 'table').bind(table => { + return descendant(table, firstSelectedSelector).bind(start => { + return identify(start, finish).bind(identified => { + return identified.boxes.map(boxes => { + return { + boxes, + start: identified.start, + finish: identified.finish + }; + }); + }); + }); + }); + }; + const shiftSelection = (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) => { + return getLast(boxes, lastSelectedSelector).bind(last => { + return moveBy(last, deltaRow, deltaColumn).bind(finish => { + return expandTo(finish, firstSelectedSelector); + }); + }); + }; + + const retrieve = (container, selector) => { + return retrieve$1(container, selector); + }; + const retrieveBox = (container, firstSelectedSelector, lastSelectedSelector) => { + return getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(edges => { + const isRoot = ancestor => { + return eq$1(container, ancestor); + }; + const sectionSelector = 'thead,tfoot,tbody,table'; + const firstAncestor = ancestor$1(edges.first, sectionSelector, isRoot); + const lastAncestor = ancestor$1(edges.last, sectionSelector, isRoot); + return firstAncestor.bind(fA => { + return lastAncestor.bind(lA => { + return eq$1(fA, lA) ? getBox(edges.table, edges.first, edges.last) : Optional.none(); + }); + }); + }); + }; + + const selection = identity; + const unmergable = selectedCells => { + const hasSpan = (elem, type) => getOpt(elem, type).exists(span => parseInt(span, 10) > 1); + const hasRowOrColSpan = elem => hasSpan(elem, 'rowspan') || hasSpan(elem, 'colspan'); + return selectedCells.length > 0 && forall(selectedCells, hasRowOrColSpan) ? Optional.some(selectedCells) : Optional.none(); + }; + const mergable = (table, selectedCells, ephemera) => { + if (selectedCells.length <= 1) { + return Optional.none(); + } else { + return retrieveBox(table, ephemera.firstSelectedSelector, ephemera.lastSelectedSelector).map(bounds => ({ + bounds, + cells: selectedCells + })); + } + }; + + const strSelected = 'data-mce-selected'; + const strSelectedSelector = 'td[' + strSelected + '],th[' + strSelected + ']'; + const strAttributeSelector = '[' + strSelected + ']'; + const strFirstSelected = 'data-mce-first-selected'; + const strFirstSelectedSelector = 'td[' + strFirstSelected + '],th[' + strFirstSelected + ']'; + const strLastSelected = 'data-mce-last-selected'; + const strLastSelectedSelector = 'td[' + strLastSelected + '],th[' + strLastSelected + ']'; + const attributeSelector = strAttributeSelector; + const ephemera = { + selected: strSelected, + selectedSelector: strSelectedSelector, + firstSelected: strFirstSelected, + firstSelectedSelector: strFirstSelectedSelector, + lastSelected: strLastSelected, + lastSelectedSelector: strLastSelectedSelector + }; + + const forMenu = (selectedCells, table, cell) => ({ + element: cell, + mergable: mergable(table, selectedCells, ephemera), + unmergable: unmergable(selectedCells), + selection: selection(selectedCells) + }); + const paste = (element, clipboard, generators) => ({ + element, + clipboard, + generators + }); + const pasteRows = (selectedCells, _cell, clipboard, generators) => ({ + selection: selection(selectedCells), + clipboard, + generators + }); + + const getSelectionCellFallback = element => table(element).bind(table => retrieve(table, ephemera.firstSelectedSelector)).fold(constant(element), cells => cells[0]); + const getSelectionFromSelector = selector => (initCell, isRoot) => { + const cellName = name(initCell); + const cell = cellName === 'col' || cellName === 'colgroup' ? getSelectionCellFallback(initCell) : initCell; + return closest$1(cell, selector, isRoot); + }; + const getSelectionCellOrCaption = getSelectionFromSelector('th,td,caption'); + const getSelectionCell = getSelectionFromSelector('th,td'); + const getCellsFromSelection = editor => fromDom(editor.model.table.getSelectedCells()); + const getCellsFromFakeSelection = editor => filter$2(getCellsFromSelection(editor), cell => is$2(cell, ephemera.selectedSelector)); + + const extractSelected = cells => { + return table(cells[0]).map(table => { + const replica = extract$1(table, attributeSelector); + removeDataStyle(replica); + return [replica]; + }); + }; + const serializeElements = (editor, elements) => map$1(elements, elm => editor.selection.serializer.serialize(elm.dom, {})).join(''); + const getTextContent = elements => map$1(elements, element => element.dom.innerText).join(''); + const RegistroEvents = (editor, actions) => { + editor.on('BeforeGetContent', e => { + const multiCellContext = cells => { + e.preventDefault(); + extractSelected(cells).each(elements => { + e.content = e.format === 'text' ? getTextContent(elements) : serializeElements(editor, elements); + }); + }; + if (e.selection === true) { + const cells = getCellsFromFakeSelection(editor); + if (cells.length >= 1) { + multiCellContext(cells); + } + } + }); + editor.on('BeforeSetContent', e => { + if (e.selection === true && e.paste === true) { + const selectedCells = getCellsFromSelection(editor); + head(selectedCells).each(cell => { + table(cell).each(table => { + const elements = filter$2(fromHtml(e.content), content => { + return name(content) !== 'meta'; + }); + const isTable = isTag('table'); + if (elements.length === 1 && isTable(elements[0])) { + e.preventDefault(); + const doc = SugarElement.fromDom(editor.getDoc()); + const generators = paste$1(doc); + const targets = paste(cell, elements[0], generators); + actions.pasteCells(table, targets).each(() => { + editor.focus(); + }); + } + }); + }); + } + }); + }; + + const point = (element, offset) => ({ + element, + offset + }); + + const scan$1 = (universe, element, direction) => { + if (universe.property().isText(element) && universe.property().getText(element).trim().length === 0 || universe.property().isComment(element)) { + return direction(element).bind(elem => { + return scan$1(universe, elem, direction).orThunk(() => { + return Optional.some(elem); + }); + }); + } else { + return Optional.none(); + } + }; + const toEnd = (universe, element) => { + if (universe.property().isText(element)) { + return universe.property().getText(element).length; + } + const children = universe.property().children(element); + return children.length; + }; + const freefallRtl$2 = (universe, element) => { + const candidate = scan$1(universe, element, universe.query().prevSibling).getOr(element); + if (universe.property().isText(candidate)) { + return point(candidate, toEnd(universe, candidate)); + } + const children = universe.property().children(candidate); + return children.length > 0 ? freefallRtl$2(universe, children[children.length - 1]) : point(candidate, toEnd(universe, candidate)); + }; + + const freefallRtl$1 = freefallRtl$2; + + const universe$2 = DomUniverse(); + const freefallRtl = element => { + return freefallRtl$1(universe$2, element); + }; + + const halve = (main, other) => { + if (!hasColspan(main)) { + const width = getGenericWidth(main); + width.each(w => { + const newWidth = w.value / 2; + setGenericWidth(main, newWidth, w.unit); + setGenericWidth(other, newWidth, w.unit); + }); + } + }; + + const zero = array => map$1(array, constant(0)); + const surround = (sizes, startIndex, endIndex, results, f) => f(sizes.slice(0, startIndex)).concat(results).concat(f(sizes.slice(endIndex))); + const clampDeltaHelper = predicate => (sizes, index, delta, minCellSize) => { + if (!predicate(delta)) { + return delta; + } else { + const newSize = Math.max(minCellSize, sizes[index] - Math.abs(delta)); + const diff = Math.abs(newSize - sizes[index]); + return delta >= 0 ? diff : -diff; + } + }; + const clampNegativeDelta = clampDeltaHelper(delta => delta < 0); + const clampDelta = clampDeltaHelper(always); + const resizeTable = () => { + const calcFixedDeltas = (sizes, index, next, delta, minCellSize) => { + const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize); + return surround(sizes, index, next + 1, [ + clampedDelta, + 0 + ], zero); + }; + const calcRelativeDeltas = (sizes, index, delta, minCellSize) => { + const ratio = (100 + delta) / 100; + const newThis = Math.max(minCellSize, (sizes[index] + delta) / ratio); + return map$1(sizes, (size, idx) => { + const newSize = idx === index ? newThis : size / ratio; + return newSize - size; + }); + }; + const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize, isRelative) => { + if (isRelative) { + return calcRelativeDeltas(sizes, index, delta, minCellSize); + } else { + return calcFixedDeltas(sizes, index, next, delta, minCellSize); + } + }; + const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize, isRelative) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative); + const resizeTable = (resizer, delta) => resizer(delta); + const calcRightEdgeDeltas = (sizes, _prev, index, delta, minCellSize, isRelative) => { + if (isRelative) { + return calcRelativeDeltas(sizes, index, delta, minCellSize); + } else { + const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize); + return zero(sizes.slice(0, index)).concat([clampedDelta]); + } + }; + const calcRedestributedWidths = (sizes, totalWidth, pixelDelta, isRelative) => { + if (isRelative) { + const tableWidth = totalWidth + pixelDelta; + const ratio = tableWidth / totalWidth; + const newSizes = map$1(sizes, size => size / ratio); + return { + delta: ratio * 100 - 100, + newSizes + }; + } else { + return { + delta: pixelDelta, + newSizes: sizes + }; + } + }; + return { + resizeTable, + clampTableDelta: clampNegativeDelta, + calcLeftEdgeDeltas, + calcMiddleDeltas, + calcRightEdgeDeltas, + calcRedestributedWidths + }; + }; + const preserveTable = () => { + const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize) => { + const idx = delta >= 0 ? next : index; + const clampedDelta = clampDelta(sizes, idx, delta, minCellSize); + return surround(sizes, index, next + 1, [ + clampedDelta, + -clampedDelta + ], zero); + }; + const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize); + const resizeTable = (resizer, delta, isLastColumn) => { + if (isLastColumn) { + resizer(delta); + } + }; + const calcRightEdgeDeltas = (sizes, _prev, _index, delta, _minCellSize, isRelative) => { + if (isRelative) { + return zero(sizes); + } else { + const diff = delta / sizes.length; + return map$1(sizes, constant(diff)); + } + }; + const clampTableDelta = (sizes, index, delta, minCellSize, isLastColumn) => { + if (isLastColumn) { + if (delta >= 0) { + return delta; + } else { + const maxDelta = foldl(sizes, (a, b) => a + b - minCellSize, 0); + return Math.max(-maxDelta, delta); + } + } else { + return clampNegativeDelta(sizes, index, delta, minCellSize); + } + }; + const calcRedestributedWidths = (sizes, _totalWidth, _pixelDelta, _isRelative) => ({ + delta: 0, + newSizes: sizes + }); + return { + resizeTable, + clampTableDelta, + calcLeftEdgeDeltas, + calcMiddleDeltas, + calcRightEdgeDeltas, + calcRedestributedWidths + }; + }; + + const getGridSize = table => { + const warehouse = Warehouse.fromTable(table); + return warehouse.grid; + }; + + const isHeaderCell = isTag('th'); + const isHeaderCells = cells => forall(cells, cell => isHeaderCell(cell.element)); + const getRowHeaderType = (isHeaderRow, isHeaderCells) => { + if (isHeaderRow && isHeaderCells) { + return 'sectionCells'; + } else if (isHeaderRow) { + return 'section'; + } else { + return 'cells'; + } + }; + const getRowType = row => { + const isHeaderRow = row.section === 'thead'; + const isHeaderCells = is(findCommonCellType(row.cells), 'th'); + if (row.section === 'tfoot') { + return { type: 'footer' }; + } else if (isHeaderRow || isHeaderCells) { + return { + type: 'header', + subType: getRowHeaderType(isHeaderRow, isHeaderCells) + }; + } else { + return { type: 'body' }; + } + }; + const findCommonCellType = cells => { + const headerCells = filter$2(cells, cell => isHeaderCell(cell.element)); + if (headerCells.length === 0) { + return Optional.some('td'); + } else if (headerCells.length === cells.length) { + return Optional.some('th'); + } else { + return Optional.none(); + } + }; + const findCommonRowType = rows => { + const rowTypes = map$1(rows, row => getRowType(row).type); + const hasHeader = contains$2(rowTypes, 'header'); + const hasFooter = contains$2(rowTypes, 'footer'); + if (!hasHeader && !hasFooter) { + return Optional.some('body'); + } else { + const hasBody = contains$2(rowTypes, 'body'); + if (hasHeader && !hasBody && !hasFooter) { + return Optional.some('header'); + } else if (!hasHeader && !hasBody && hasFooter) { + return Optional.some('footer'); + } else { + return Optional.none(); + } + } + }; + const findTableRowHeaderType = warehouse => findMap(warehouse.all, row => { + const rowType = getRowType(row); + return rowType.type === 'header' ? Optional.from(rowType.subType) : Optional.none(); + }); + + const transformCell = (cell, comparator, substitution) => elementnew(substitution(cell.element, comparator), true, cell.isLocked); + const transformRow = (row, section) => row.section !== section ? rowcells(row.element, row.cells, section, row.isNew) : row; + const section = () => ({ + transformRow, + transformCell: (cell, comparator, substitution) => { + const newCell = substitution(cell.element, comparator); + const fixedCell = name(newCell) !== 'td' ? mutate$1(newCell, 'td') : newCell; + return elementnew(fixedCell, cell.isNew, cell.isLocked); + } + }); + const sectionCells = () => ({ + transformRow, + transformCell + }); + const cells = () => ({ + transformRow: (row, section) => { + const newSection = section === 'thead' ? 'tbody' : section; + return transformRow(row, newSection); + }, + transformCell + }); + const fallback = () => ({ + transformRow: identity, + transformCell + }); + const getTablasectionType = (table, fallback) => { + const warehouse = Warehouse.fromTable(table); + const type = findTableRowHeaderType(warehouse).getOr(fallback); + switch (type) { + case 'section': + return section(); + case 'sectionCells': + return sectionCells(); + case 'cells': + return cells(); + } + }; + const Tablasection = { + getTablasectionType, + section, + sectionCells, + cells, + fallback + }; + + const closest = target => closest$1(target, '[contenteditable]'); + const isEditable$1 = (element, assumeEditable = false) => { + if (inBody(element)) { + return element.dom.isContentEditable; + } else { + return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true'); + } + }; + const getRaw = element => element.dom.contentEditable; + + const setIfNot = (element, property, value, ignore) => { + if (value === ignore) { + remove$7(element, property); + } else { + set$2(element, property, value); + } + }; + const insert$1 = (table, selector, element) => { + last$2(children(table, selector)).fold(() => prepend(table, element), child => after$5(child, element)); + }; + const generateSection = (table, sectionName) => { + const section = child(table, sectionName).getOrThunk(() => { + const newSection = SugarElement.fromTag(sectionName, owner(table).dom); + if (sectionName === 'thead') { + insert$1(table, 'caption,colgroup', newSection); + } else if (sectionName === 'colgroup') { + insert$1(table, 'caption', newSection); + } else { + append$1(table, newSection); + } + return newSection; + }); + empty(section); + return section; + }; + const render$1 = (table, grid) => { + const newRows = []; + const newCells = []; + const syncRows = gridSection => map$1(gridSection, row => { + if (row.isNew) { + newRows.push(row.element); + } + const tr = row.element; + empty(tr); + each$2(row.cells, cell => { + if (cell.isNew) { + newCells.push(cell.element); + } + setIfNot(cell.element, 'colspan', cell.colspan, 1); + setIfNot(cell.element, 'rowspan', cell.rowspan, 1); + append$1(tr, cell.element); + }); + return tr; + }); + const syncColGroup = gridSection => bind$2(gridSection, colGroup => map$1(colGroup.cells, col => { + setIfNot(col.element, 'span', col.colspan, 1); + return col.element; + })); + const renderSection = (gridSection, sectionName) => { + const section = generateSection(table, sectionName); + const sync = sectionName === 'colgroup' ? syncColGroup : syncRows; + const sectionElems = sync(gridSection); + append(section, sectionElems); + }; + const removeSection = sectionName => { + child(table, sectionName).each(remove$6); + }; + const renderOrRemoveSection = (gridSection, sectionName) => { + if (gridSection.length > 0) { + renderSection(gridSection, sectionName); + } else { + removeSection(sectionName); + } + }; + const headSection = []; + const bodySection = []; + const footSection = []; + const columnGroupsSection = []; + each$2(grid, row => { + switch (row.section) { + case 'thead': + headSection.push(row); + break; + case 'tbody': + bodySection.push(row); + break; + case 'tfoot': + footSection.push(row); + break; + case 'colgroup': + columnGroupsSection.push(row); + break; + } + }); + renderOrRemoveSection(columnGroupsSection, 'colgroup'); + renderOrRemoveSection(headSection, 'thead'); + renderOrRemoveSection(bodySection, 'tbody'); + renderOrRemoveSection(footSection, 'tfoot'); + return { + newRows, + newCells + }; + }; + const copy = grid => map$1(grid, row => { + const tr = shallow(row.element); + each$2(row.cells, cell => { + const clonedCell = deep(cell.element); + setIfNot(clonedCell, 'colspan', cell.colspan, 1); + setIfNot(clonedCell, 'rowspan', cell.rowspan, 1); + append$1(tr, clonedCell); + }); + return tr; + }); + + const getColumn = (grid, index) => { + return map$1(grid, row => { + return getCell(row, index); + }); + }; + const getRow = (grid, index) => { + return grid[index]; + }; + const findDiff = (xs, comp) => { + if (xs.length === 0) { + return 0; + } + const first = xs[0]; + const index = findIndex(xs, x => { + return !comp(first.element, x.element); + }); + return index.getOr(xs.length); + }; + const subgrid = (grid, row, column, comparator) => { + const gridRow = getRow(grid, row); + const isColRow = gridRow.section === 'colgroup'; + const colspan = findDiff(gridRow.cells.slice(column), comparator); + const rowspan = isColRow ? 1 : findDiff(getColumn(grid.slice(row), column), comparator); + return { + colspan, + rowspan + }; + }; + + const toDetails = (grid, comparator) => { + const seen = map$1(grid, row => map$1(row.cells, never)); + const updateSeen = (rowIndex, columnIndex, rowspan, colspan) => { + for (let row = rowIndex; row < rowIndex + rowspan; row++) { + for (let column = columnIndex; column < columnIndex + colspan; column++) { + seen[row][column] = true; + } + } + }; + return map$1(grid, (row, rowIndex) => { + const details = bind$2(row.cells, (cell, columnIndex) => { + if (seen[rowIndex][columnIndex] === false) { + const result = subgrid(grid, rowIndex, columnIndex, comparator); + updateSeen(rowIndex, columnIndex, result.rowspan, result.colspan); + return [detailnew(cell.element, result.rowspan, result.colspan, cell.isNew)]; + } else { + return []; + } + }); + return rowdetailnew(row.element, details, row.section, row.isNew); + }); + }; + const toGrid = (warehouse, generators, isNew) => { + const grid = []; + each$2(warehouse.colgroups, colgroup => { + const colgroupCols = []; + for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) { + const element = Warehouse.getColumnAt(warehouse, columnIndex).map(column => elementnew(column.element, isNew, false)).getOrThunk(() => elementnew(generators.colGap(), true, false)); + colgroupCols.push(element); + } + grid.push(rowcells(colgroup.element, colgroupCols, 'colgroup', isNew)); + }); + for (let rowIndex = 0; rowIndex < warehouse.grid.rows; rowIndex++) { + const rowCells = []; + for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) { + const element = Warehouse.getAt(warehouse, rowIndex, columnIndex).map(item => elementnew(item.element, isNew, item.isLocked)).getOrThunk(() => elementnew(generators.gap(), true, false)); + rowCells.push(element); + } + const rowDetail = warehouse.all[rowIndex]; + const row = rowcells(rowDetail.element, rowCells, rowDetail.section, isNew); + grid.push(row); + } + return grid; + }; + + const fromWarehouse = (warehouse, generators) => toGrid(warehouse, generators, false); + const toDetailList = grid => toDetails(grid, eq$1); + const findInWarehouse = (warehouse, element) => findMap(warehouse.all, r => find$1(r.cells, e => eq$1(element, e.element))); + const extractCells = (warehouse, target, predicate) => { + const details = map$1(target.selection, cell$1 => { + return cell(cell$1).bind(lc => findInWarehouse(warehouse, lc)).filter(predicate); + }); + const cells = cat(details); + return someIf(cells.length > 0, cells); + }; + const run = (operation, extract, adjustment, postAction, genWrappers) => (table, target, generators, behaviours) => { + const warehouse = Warehouse.fromTable(table); + const Tablasection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(Tablasection.fallback); + const output = extract(warehouse, target).map(info => { + const model = fromWarehouse(warehouse, generators); + const result = operation(model, info, eq$1, genWrappers(generators), Tablasection); + const lockedColumns = getLockedColumnsFromGrid(result.grid); + const grid = toDetailList(result.grid); + return { + info, + grid, + cursor: result.cursor, + lockedColumns + }; + }); + return output.bind(out => { + const newElements = render$1(table, out.grid); + const Tablasizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(() => Tablasize.getTablasize(table)); + const resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable); + adjustment(table, out.grid, out.info, { + sizing: Tablasizing, + resize: resizing, + section: Tablasection + }); + postAction(table); + remove$7(table, LOCKED_COL_ATTR); + if (out.lockedColumns.length > 0) { + set$2(table, LOCKED_COL_ATTR, out.lockedColumns.join(',')); + } + return Optional.some({ + cursor: out.cursor, + newRows: newElements.newRows, + newCells: newElements.newCells + }); + }); + }; + const onPaste = (warehouse, target) => cell(target.element).bind(cell => findInWarehouse(warehouse, cell).map(details => { + const value = { + ...details, + generators: target.generators, + clipboard: target.clipboard + }; + return value; + })); + const onPasteByEditor = (warehouse, target) => extractCells(warehouse, target, always).map(cells => ({ + cells, + generators: target.generators, + clipboard: target.clipboard + })); + const onMergable = (_warehouse, target) => target.mergable; + const onUnmergable = (_warehouse, target) => target.unmergable; + const onCells = (warehouse, target) => extractCells(warehouse, target, always); + const onUnlockedCells = (warehouse, target) => extractCells(warehouse, target, detail => !detail.isLocked); + const isUnlockedTableCell = (warehouse, cell) => findInWarehouse(warehouse, cell).exists(detail => !detail.isLocked); + const allUnlocked = (warehouse, cells) => forall(cells, cell => isUnlockedTableCell(warehouse, cell)); + const onUnlockedMergable = (warehouse, target) => onMergable(warehouse, target).filter(mergeable => allUnlocked(warehouse, mergeable.cells)); + const onUnlockedUnmergable = (warehouse, target) => onUnmergable(warehouse, target).filter(cells => allUnlocked(warehouse, cells)); + + const merge$2 = (grid, bounds, comparator, substitution) => { + const rows = extractGridDetails(grid).rows; + if (rows.length === 0) { + return grid; + } + for (let i = bounds.startRow; i <= bounds.finishRow; i++) { + for (let j = bounds.startCol; j <= bounds.finishCol; j++) { + const row = rows[i]; + const isLocked = getCell(row, j).isLocked; + mutateCell(row, j, elementnew(substitution(), false, isLocked)); + } + } + return grid; + }; + const unmerge = (grid, target, comparator, substitution) => { + const rows = extractGridDetails(grid).rows; + let first = true; + for (let i = 0; i < rows.length; i++) { + for (let j = 0; j < cellLength(rows[0]); j++) { + const row = rows[i]; + const currentCell = getCell(row, j); + const currentCellElm = currentCell.element; + const isToReplace = comparator(currentCellElm, target); + if (isToReplace && !first) { + mutateCell(row, j, elementnew(substitution(), true, currentCell.isLocked)); + } else if (isToReplace) { + first = false; + } + } + } + return grid; + }; + const uniqueCells = (row, comparator) => { + return foldl(row, (rest, cell) => { + return exists(rest, currentCell => { + return comparator(currentCell.element, cell.element); + }) ? rest : rest.concat([cell]); + }, []); + }; + const splitCols = (grid, index, comparator, substitution) => { + if (index > 0 && index < grid[0].cells.length) { + each$2(grid, row => { + const prevCell = row.cells[index - 1]; + let offset = 0; + const substitute = substitution(); + while (row.cells.length > index + offset && comparator(prevCell.element, row.cells[index + offset].element)) { + mutateCell(row, index + offset, elementnew(substitute, true, row.cells[index + offset].isLocked)); + offset++; + } + }); + } + return grid; + }; + const splitRows = (grid, index, comparator, substitution) => { + const rows = extractGridDetails(grid).rows; + if (index > 0 && index < rows.length) { + const rowPrevCells = rows[index - 1].cells; + const cells = uniqueCells(rowPrevCells, comparator); + each$2(cells, cell => { + let replacement = Optional.none(); + for (let i = index; i < rows.length; i++) { + for (let j = 0; j < cellLength(rows[0]); j++) { + const row = rows[i]; + const current = getCell(row, j); + const isToReplace = comparator(current.element, cell.element); + if (isToReplace) { + if (replacement.isNone()) { + replacement = Optional.some(substitution()); + } + replacement.each(sub => { + mutateCell(row, j, elementnew(sub, true, current.isLocked)); + }); + } + } + } + }); + } + return grid; + }; + + const value$1 = value => { + const applyHelper = fn => fn(value); + const constHelper = constant(value); + const outputHelper = () => output; + const output = { + tag: true, + inner: value, + fold: (_onError, onValue) => onValue(value), + isValue: always, + isError: never, + map: mapper => Result.value(mapper(value)), + mapError: outputHelper, + bind: applyHelper, + exists: applyHelper, + forall: applyHelper, + getOr: constHelper, + or: outputHelper, + getOrThunk: constHelper, + orThunk: outputHelper, + getOrDie: constHelper, + each: fn => { + fn(value); + }, + toOptional: () => Optional.some(value) + }; + return output; + }; + const error = error => { + const outputHelper = () => output; + const output = { + tag: false, + inner: error, + fold: (onError, _onValue) => onError(error), + isValue: never, + isError: always, + map: outputHelper, + mapError: mapper => Result.error(mapper(error)), + bind: outputHelper, + exists: never, + forall: always, + getOr: identity, + or: identity, + getOrThunk: apply, + orThunk: apply, + getOrDie: die(String(error)), + each: noop, + toOptional: Optional.none + }; + return output; + }; + const fromOption = (optional, err) => optional.fold(() => error(err), value$1); + const Result = { + value: value$1, + error, + fromOption + }; + + const measure = (startAddress, gridA, gridB) => { + if (startAddress.row >= gridA.length || startAddress.column > cellLength(gridA[0])) { + return Result.error('invalid start address out of table bounds, row: ' + startAddress.row + ', column: ' + startAddress.column); + } + const rowRemainder = gridA.slice(startAddress.row); + const colRemainder = rowRemainder[0].cells.slice(startAddress.column); + const colRequired = cellLength(gridB[0]); + const rowRequired = gridB.length; + return Result.value({ + rowDelta: rowRemainder.length - rowRequired, + colDelta: colRemainder.length - colRequired + }); + }; + const measureWidth = (gridA, gridB) => { + const colLengthA = cellLength(gridA[0]); + const colLengthB = cellLength(gridB[0]); + return { + rowDelta: 0, + colDelta: colLengthA - colLengthB + }; + }; + const measureHeight = (gridA, gridB) => { + const rowLengthA = gridA.length; + const rowLengthB = gridB.length; + return { + rowDelta: rowLengthA - rowLengthB, + colDelta: 0 + }; + }; + const generateElements = (amount, row, generators, isLocked) => { + const generator = row.section === 'colgroup' ? generators.col : generators.cell; + return range$1(amount, idx => elementnew(generator(), true, isLocked(idx))); + }; + const rowFill = (grid, amount, generators, lockedColumns) => { + const exampleRow = grid[grid.length - 1]; + return grid.concat(range$1(amount, () => { + const generator = exampleRow.section === 'colgroup' ? generators.colgroup : generators.row; + const row = clone(exampleRow, generator, identity); + const elements = generateElements(row.cells.length, row, generators, idx => has$1(lockedColumns, idx.toString())); + return setCells(row, elements); + })); + }; + const colFill = (grid, amount, generators, startIndex) => map$1(grid, row => { + const newChildren = generateElements(amount, row, generators, never); + return addCells(row, startIndex, newChildren); + }); + const lockedColFill = (grid, generators, lockedColumns) => map$1(grid, row => { + return foldl(lockedColumns, (acc, colNum) => { + const newChild = generateElements(1, row, generators, always)[0]; + return addCell(acc, colNum, newChild); + }, row); + }); + const tailor = (gridA, delta, generators) => { + const fillCols = delta.colDelta < 0 ? colFill : identity; + const fillRows = delta.rowDelta < 0 ? rowFill : identity; + const lockedColumns = getLockedColumnsFromGrid(gridA); + const gridWidth = cellLength(gridA[0]); + const isLastColLocked = exists(lockedColumns, locked => locked === gridWidth - 1); + const modifiedCols = fillCols(gridA, Math.abs(delta.colDelta), generators, isLastColLocked ? gridWidth - 1 : gridWidth); + const newLockedColumns = getLockedColumnsFromGrid(modifiedCols); + return fillRows(modifiedCols, Math.abs(delta.rowDelta), generators, mapToObject(newLockedColumns, always)); + }; + + const isSpanning = (grid, row, col, comparator) => { + const candidate = getCell(grid[row], col); + const matching = curry(comparator, candidate.element); + const currentRow = grid[row]; + return grid.length > 1 && cellLength(currentRow) > 1 && (col > 0 && matching(getCellElement(currentRow, col - 1)) || col < currentRow.cells.length - 1 && matching(getCellElement(currentRow, col + 1)) || row > 0 && matching(getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(getCellElement(grid[row + 1], col))); + }; + const mergeTablas = (startAddress, gridA, gridBRows, generator, comparator, lockedColumns) => { + const startRow = startAddress.row; + const startCol = startAddress.column; + const mergeHeight = gridBRows.length; + const mergeWidth = cellLength(gridBRows[0]); + const endRow = startRow + mergeHeight; + const endCol = startCol + mergeWidth + lockedColumns.length; + const lockedColumnObj = mapToObject(lockedColumns, always); + for (let r = startRow; r < endRow; r++) { + let skippedCol = 0; + for (let c = startCol; c < endCol; c++) { + if (lockedColumnObj[c]) { + skippedCol++; + continue; + } + if (isSpanning(gridA, r, c, comparator)) { + unmerge(gridA, getCellElement(gridA[r], c), comparator, generator.cell); + } + const gridBColIndex = c - startCol - skippedCol; + const newCell = getCell(gridBRows[r - startRow], gridBColIndex); + const newCellElm = newCell.element; + const replacement = generator.replace(newCellElm); + mutateCell(gridA[r], c, elementnew(replacement, true, newCell.isLocked)); + } + } + return gridA; + }; + const getValidStartAddress = (currentStartAddress, grid, lockedColumns) => { + const gridColLength = cellLength(grid[0]); + const adjustedRowAddress = extractGridDetails(grid).cols.length + currentStartAddress.row; + const possibleColAddresses = range$1(gridColLength - currentStartAddress.column, num => num + currentStartAddress.column); + const validColAddress = find$1(possibleColAddresses, num => forall(lockedColumns, col => col !== num)).getOr(gridColLength - 1); + return { + row: adjustedRowAddress, + column: validColAddress + }; + }; + const getLockedColumnsWithinBounds = (startAddress, rows, lockedColumns) => filter$2(lockedColumns, colNum => colNum >= startAddress.column && colNum <= cellLength(rows[0]) + startAddress.column); + const merge$1 = (startAddress, gridA, gridB, generator, comparator) => { + const lockedColumns = getLockedColumnsFromGrid(gridA); + const validStartAddress = getValidStartAddress(startAddress, gridA, lockedColumns); + const gridBRows = extractGridDetails(gridB).rows; + const lockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, lockedColumns); + const result = measure(validStartAddress, gridA, gridBRows); + return result.map(diff => { + const delta = { + ...diff, + colDelta: diff.colDelta - lockedColumnsWithinBounds.length + }; + const fittedGrid = tailor(gridA, delta, generator); + const newLockedColumns = getLockedColumnsFromGrid(fittedGrid); + const newLockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, newLockedColumns); + return mergeTablas(validStartAddress, fittedGrid, gridBRows, generator, comparator, newLockedColumnsWithinBounds); + }); + }; + const insertCols = (index, gridA, gridB, generator, comparator) => { + splitCols(gridA, index, comparator, generator.cell); + const delta = measureHeight(gridB, gridA); + const fittedNewGrid = tailor(gridB, delta, generator); + const secondDelta = measureHeight(gridA, fittedNewGrid); + const fittedOldGrid = tailor(gridA, secondDelta, generator); + return map$1(fittedOldGrid, (gridRow, i) => { + return addCells(gridRow, index, fittedNewGrid[i].cells); + }); + }; + const insertRows = (index, gridA, gridB, generator, comparator) => { + splitRows(gridA, index, comparator, generator.cell); + const locked = getLockedColumnsFromGrid(gridA); + const diff = measureWidth(gridA, gridB); + const delta = { + ...diff, + colDelta: diff.colDelta - locked.length + }; + const fittedOldGrid = tailor(gridA, delta, generator); + const { + cols: oldCols, + rows: oldRows + } = extractGridDetails(fittedOldGrid); + const newLocked = getLockedColumnsFromGrid(fittedOldGrid); + const secondDiff = measureWidth(gridB, gridA); + const secondDelta = { + ...secondDiff, + colDelta: secondDiff.colDelta + newLocked.length + }; + const fittedGridB = lockedColFill(gridB, generator, newLocked); + const fittedNewGrid = tailor(fittedGridB, secondDelta, generator); + return [ + ...oldCols, + ...oldRows.slice(0, index), + ...fittedNewGrid, + ...oldRows.slice(index, oldRows.length) + ]; + }; + + const cloneRow = (row, cloneCell, comparator, substitution) => clone(row, elem => substitution(elem, comparator), cloneCell); + const insertRowAt = (grid, index, example, comparator, substitution) => { + const {rows, cols} = extractGridDetails(grid); + const before = rows.slice(0, index); + const after = rows.slice(index); + const newRow = cloneRow(rows[example], (ex, c) => { + const withinSpan = index > 0 && index < rows.length && comparator(getCellElement(rows[index - 1], c), getCellElement(rows[index], c)); + const ret = withinSpan ? getCell(rows[index], c) : elementnew(substitution(ex.element, comparator), true, ex.isLocked); + return ret; + }, comparator, substitution); + return [ + ...cols, + ...before, + newRow, + ...after + ]; + }; + const getElementFor = (row, column, section, withinSpan, example, comparator, substitution) => { + if (section === 'colgroup' || !withinSpan) { + const cell = getCell(row, example); + return elementnew(substitution(cell.element, comparator), true, false); + } else { + return getCell(row, column); + } + }; + const insertColumnAt = (grid, index, example, comparator, substitution) => map$1(grid, row => { + const withinSpan = index > 0 && index < cellLength(row) && comparator(getCellElement(row, index - 1), getCellElement(row, index)); + const sub = getElementFor(row, index, row.section, withinSpan, example, comparator, substitution); + return addCell(row, index, sub); + }); + const deleteColumnsAt = (grid, columns) => bind$2(grid, row => { + const existingCells = row.cells; + const cells = foldr(columns, (acc, column) => column >= 0 && column < acc.length ? acc.slice(0, column).concat(acc.slice(column + 1)) : acc, existingCells); + return cells.length > 0 ? [rowcells(row.element, cells, row.section, row.isNew)] : []; + }); + const deleteRowsAt = (grid, start, finish) => { + const {rows, cols} = extractGridDetails(grid); + return [ + ...cols, + ...rows.slice(0, start), + ...rows.slice(finish + 1) + ]; + }; + + const notInStartRow = (grid, rowIndex, colIndex, comparator) => getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(getCellElement(grid[rowIndex - 1], colIndex), getCellElement(grid[rowIndex], colIndex))); + const notInStartColumn = (row, index, comparator) => index > 0 && comparator(getCellElement(row, index - 1), getCellElement(row, index)); + const isDuplicatedCell = (grid, rowIndex, colIndex, comparator) => notInStartRow(grid, rowIndex, colIndex, comparator) || notInStartColumn(grid[rowIndex], colIndex, comparator); + const rowReplacerPredicate = (targetRow, columnHeaders) => { + const entireTableIsHeader = forall(columnHeaders, identity) && isHeaderCells(targetRow.cells); + return entireTableIsHeader ? always : (cell, _rowIndex, colIndex) => { + const type = name(cell.element); + return !(type === 'th' && columnHeaders[colIndex]); + }; + }; + const columnReplacePredicate = (targetColumn, rowHeaders) => { + const entireTableIsHeader = forall(rowHeaders, identity) && isHeaderCells(targetColumn); + return entireTableIsHeader ? always : (cell, rowIndex, _colIndex) => { + const type = name(cell.element); + return !(type === 'th' && rowHeaders[rowIndex]); + }; + }; + const determineScope = (applyScope, cell, newScope, isInHeader) => { + const hasSpan = scope => scope === 'row' ? hasRowspan(cell) : hasColspan(cell); + const getScope = scope => hasSpan(scope) ? `${ scope }group` : scope; + if (applyScope) { + return isHeaderCell(cell) ? getScope(newScope) : null; + } else if (isInHeader && isHeaderCell(cell)) { + const oppositeScope = newScope === 'row' ? 'col' : 'row'; + return getScope(oppositeScope); + } else { + return null; + } + }; + const rowScopeGenerator = (applyScope, columnHeaders) => (cell, rowIndex, columnIndex) => Optional.some(determineScope(applyScope, cell.element, 'col', columnHeaders[columnIndex])); + const columnScopeGenerator = (applyScope, rowHeaders) => (cell, rowIndex) => Optional.some(determineScope(applyScope, cell.element, 'row', rowHeaders[rowIndex])); + const replace = (cell, comparator, substitute) => elementnew(substitute(cell.element, comparator), true, cell.isLocked); + const replaceIn = (grid, targets, comparator, substitute, replacer, genScope, shouldReplace) => { + const isTarget = cell => { + return exists(targets, target => { + return comparator(cell.element, target.element); + }); + }; + return map$1(grid, (row, rowIndex) => { + return mapCells(row, (cell, colIndex) => { + if (isTarget(cell)) { + const newCell = shouldReplace(cell, rowIndex, colIndex) ? replacer(cell, comparator, substitute) : cell; + genScope(newCell, rowIndex, colIndex).each(scope => { + setOptions(newCell.element, { scope: Optional.from(scope) }); + }); + return newCell; + } else { + return cell; + } + }); + }); + }; + const getColumnCells = (rows, columnIndex, comparator) => bind$2(rows, (row, i) => { + return isDuplicatedCell(rows, i, columnIndex, comparator) ? [] : [getCell(row, columnIndex)]; + }); + const getRowCells = (rows, rowIndex, comparator) => { + const targetRow = rows[rowIndex]; + return bind$2(targetRow.cells, (item, i) => { + return isDuplicatedCell(rows, rowIndex, i, comparator) ? [] : [item]; + }); + }; + const replaceColumns = (grid, indexes, applyScope, comparator, substitution) => { + const rows = extractGridDetails(grid).rows; + const targets = bind$2(indexes, index => getColumnCells(rows, index, comparator)); + const rowHeaders = map$1(rows, row => isHeaderCells(row.cells)); + const shouldReplaceCell = columnReplacePredicate(targets, rowHeaders); + const scopeGenerator = columnScopeGenerator(applyScope, rowHeaders); + return replaceIn(grid, targets, comparator, substitution, replace, scopeGenerator, shouldReplaceCell); + }; + const replaceRows = (grid, indexes, section, applyScope, comparator, substitution, Tablasection) => { + const {cols, rows} = extractGridDetails(grid); + const targetRow = rows[indexes[0]]; + const targets = bind$2(indexes, index => getRowCells(rows, index, comparator)); + const columnHeaders = map$1(targetRow.cells, (_cell, index) => isHeaderCells(getColumnCells(rows, index, comparator))); + const newRows = [...rows]; + each$2(indexes, index => { + newRows[index] = Tablasection.transformRow(rows[index], section); + }); + const newGrid = [ + ...cols, + ...newRows + ]; + const shouldReplaceCell = rowReplacerPredicate(targetRow, columnHeaders); + const scopeGenerator = rowScopeGenerator(applyScope, columnHeaders); + return replaceIn(newGrid, targets, comparator, substitution, Tablasection.transformCell, scopeGenerator, shouldReplaceCell); + }; + const replaceCells = (grid, details, comparator, substitution) => { + const rows = extractGridDetails(grid).rows; + const targetCells = map$1(details, detail => getCell(rows[detail.row], detail.column)); + return replaceIn(grid, targetCells, comparator, substitution, replace, Optional.none, always); + }; + + const generate = cases => { + if (!isArray(cases)) { + throw new Error('cases must be an array'); + } + if (cases.length === 0) { + throw new Error('there must be at least one case'); + } + const constructors = []; + const adt = {}; + each$2(cases, (acase, count) => { + const keys$1 = keys(acase); + if (keys$1.length !== 1) { + throw new Error('one and only one name per case'); + } + const key = keys$1[0]; + const value = acase[key]; + if (adt[key] !== undefined) { + throw new Error('duplicate key detected:' + key); + } else if (key === 'cata') { + throw new Error('cannot have a case named cata (sorry)'); + } else if (!isArray(value)) { + throw new Error('case arguments must be an array'); + } + constructors.push(key); + adt[key] = (...args) => { + const argLength = args.length; + if (argLength !== value.length) { + throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength); + } + const match = branches => { + const branchKeys = keys(branches); + if (constructors.length !== branchKeys.length) { + throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(',')); + } + const allReqd = forall(constructors, reqKey => { + return contains$2(branchKeys, reqKey); + }); + if (!allReqd) { + throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', ')); + } + return branches[key].apply(null, args); + }; + return { + fold: (...foldArgs) => { + if (foldArgs.length !== cases.length) { + throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length); + } + const target = foldArgs[count]; + return target.apply(null, args); + }, + match, + log: label => { + console.log(label, { + constructors, + constructor: key, + params: args + }); + } + }; + }; + }); + return adt; + }; + const Adt = { generate }; + + const adt$6 = Adt.generate([ + { none: [] }, + { only: ['index'] }, + { + left: [ + 'index', + 'next' + ] + }, + { + middle: [ + 'prev', + 'index', + 'next' + ] + }, + { + right: [ + 'prev', + 'index' + ] + } + ]); + const ColumnContext = { ...adt$6 }; + + const neighbours = (input, index) => { + if (input.length === 0) { + return ColumnContext.none(); + } + if (input.length === 1) { + return ColumnContext.only(0); + } + if (index === 0) { + return ColumnContext.left(0, 1); + } + if (index === input.length - 1) { + return ColumnContext.right(index - 1, index); + } + if (index > 0 && index < input.length - 1) { + return ColumnContext.middle(index - 1, index, index + 1); + } + return ColumnContext.none(); + }; + const determine = (input, column, step, Tablasize, resize) => { + const result = input.slice(0); + const context = neighbours(input, column); + const onNone = constant(map$1(result, constant(0))); + const onOnly = index => Tablasize.singleColumnWidth(result[index], step); + const onLeft = (index, next) => resize.calcLeftEdgeDeltas(result, index, next, step, Tablasize.minCellWidth(), Tablasize.isRelative); + const onMiddle = (prev, index, next) => resize.calcMiddleDeltas(result, prev, index, next, step, Tablasize.minCellWidth(), Tablasize.isRelative); + const onRight = (prev, index) => resize.calcRightEdgeDeltas(result, prev, index, step, Tablasize.minCellWidth(), Tablasize.isRelative); + return context.fold(onNone, onOnly, onLeft, onMiddle, onRight); + }; + + const total = (start, end, measures) => { + let r = 0; + for (let i = start; i < end; i++) { + r += measures[i] !== undefined ? measures[i] : 0; + } + return r; + }; + const recalculateWidthForCells = (warehouse, widths) => { + const all = Warehouse.justCells(warehouse); + return map$1(all, cell => { + const width = total(cell.column, cell.column + cell.colspan, widths); + return { + element: cell.element, + width, + colspan: cell.colspan + }; + }); + }; + const recalculateWidthForColumns = (warehouse, widths) => { + const groups = Warehouse.justColumns(warehouse); + return map$1(groups, (column, index) => ({ + element: column.element, + width: widths[index], + colspan: column.colspan + })); + }; + const recalculateHeightForCells = (warehouse, heights) => { + const all = Warehouse.justCells(warehouse); + return map$1(all, cell => { + const height = total(cell.row, cell.row + cell.rowspan, heights); + return { + element: cell.element, + height, + rowspan: cell.rowspan + }; + }); + }; + const matchRowHeight = (warehouse, heights) => { + return map$1(warehouse.all, (row, i) => { + return { + element: row.element, + height: heights[i] + }; + }); + }; + + const sumUp = newSize => foldr(newSize, (b, a) => b + a, 0); + const recalculate = (warehouse, widths) => { + if (Warehouse.hasColumns(warehouse)) { + return recalculateWidthForColumns(warehouse, widths); + } else { + return recalculateWidthForCells(warehouse, widths); + } + }; + const recalculateAndApply = (warehouse, widths, Tablasize) => { + const newSizes = recalculate(warehouse, widths); + each$2(newSizes, cell => { + Tablasize.setElementWidth(cell.element, cell.width); + }); + }; + const adjustWidth = (table, delta, index, resizing, Tablasize) => { + const warehouse = Warehouse.fromTable(table); + const step = Tablasize.getCellDelta(delta); + const widths = Tablasize.getWidths(warehouse, Tablasize); + const isLastColumn = index === warehouse.grid.columns - 1; + const clampedStep = resizing.clampTableDelta(widths, index, step, Tablasize.minCellWidth(), isLastColumn); + const deltas = determine(widths, index, clampedStep, Tablasize, resizing); + const newWidths = map$1(deltas, (dx, i) => dx + widths[i]); + recalculateAndApply(warehouse, newWidths, Tablasize); + resizing.resizeTable(Tablasize.adjustTableWidth, clampedStep, isLastColumn); + }; + const adjustHeight = (table, delta, index, direction) => { + const warehouse = Warehouse.fromTable(table); + const heights = getPixelHeights(warehouse, table, direction); + const newHeights = map$1(heights, (dy, i) => index === i ? Math.max(delta + dy, minHeight()) : dy); + const newCellSizes = recalculateHeightForCells(warehouse, newHeights); + const newRowSizes = matchRowHeight(warehouse, newHeights); + each$2(newRowSizes, row => { + setHeight(row.element, row.height); + }); + each$2(newCellSizes, cell => { + setHeight(cell.element, cell.height); + }); + const total = sumUp(newHeights); + setHeight(table, total); + }; + const adjustAndRedistributeWidths$1 = (_table, list, details, Tablasize, resizeBehaviour) => { + const warehouse = Warehouse.generate(list); + const sizes = Tablasize.getWidths(warehouse, Tablasize); + const tablePixelWidth = Tablasize.pixelWidth(); + const {newSizes, delta} = resizeBehaviour.calcRedestributedWidths(sizes, tablePixelWidth, details.pixelDelta, Tablasize.isRelative); + recalculateAndApply(warehouse, newSizes, Tablasize); + Tablasize.adjustTableWidth(delta); + }; + const adjustWidthTo = (_table, list, _info, Tablasize) => { + const warehouse = Warehouse.generate(list); + const widths = Tablasize.getWidths(warehouse, Tablasize); + recalculateAndApply(warehouse, widths, Tablasize); + }; + + const uniqueColumns = details => { + const uniqueCheck = (rest, detail) => { + const columnExists = exists(rest, currentDetail => currentDetail.column === detail.column); + return columnExists ? rest : rest.concat([detail]); + }; + return foldl(details, uniqueCheck, []).sort((detailA, detailB) => detailA.column - detailB.column); + }; + + const isCol = isTag('col'); + const isColgroup = isTag('colgroup'); + const isRow$1 = element => name(element) === 'tr' || isColgroup(element); + const elementToData = element => { + const colspan = getAttrValue(element, 'colspan', 1); + const rowspan = getAttrValue(element, 'rowspan', 1); + return { + element, + colspan, + rowspan + }; + }; + const modification = (generators, toData = elementToData) => { + const nuCell = data => isCol(data.element) ? generators.col(data) : generators.cell(data); + const nuRow = data => isColgroup(data.element) ? generators.colgroup(data) : generators.row(data); + const add = element => { + if (isRow$1(element)) { + return nuRow({ element }); + } else { + const cell = element; + const replacement = nuCell(toData(cell)); + recent = Optional.some({ + item: cell, + replacement + }); + return replacement; + } + }; + let recent = Optional.none(); + const getOrInit = (element, comparator) => { + return recent.fold(() => { + return add(element); + }, p => { + return comparator(element, p.item) ? p.replacement : add(element); + }); + }; + return { getOrInit }; + }; + const transform$1 = tag => { + return generators => { + const list = []; + const find = (element, comparator) => { + return find$1(list, x => { + return comparator(x.item, element); + }); + }; + const makeNew = element => { + const attrs = tag === 'td' ? { scope: null } : {}; + const cell = generators.replace(element, tag, attrs); + list.push({ + item: element, + sub: cell + }); + return cell; + }; + const replaceOrInit = (element, comparator) => { + if (isRow$1(element) || isCol(element)) { + return element; + } else { + const cell = element; + return find(cell, comparator).fold(() => { + return makeNew(cell); + }, p => { + return comparator(element, p.item) ? p.sub : makeNew(cell); + }); + } + }; + return { replaceOrInit }; + }; + }; + const getScopeAttribute = cell => getOpt(cell, 'scope').map(attribute => attribute.substr(0, 3)); + const merging = generators => { + const unmerge = cell => { + const scope = getScopeAttribute(cell); + scope.each(attribute => set$2(cell, 'scope', attribute)); + return () => { + const raw = generators.cell({ + element: cell, + colspan: 1, + rowspan: 1 + }); + remove$5(raw, 'width'); + remove$5(cell, 'width'); + scope.each(attribute => set$2(raw, 'scope', attribute)); + return raw; + }; + }; + const merge = cells => { + const getScopeProperty = () => { + const stringAttributes = cat(map$1(cells, getScopeAttribute)); + if (stringAttributes.length === 0) { + return Optional.none(); + } else { + const baseScope = stringAttributes[0]; + const scopes = [ + 'row', + 'col' + ]; + const isMixed = exists(stringAttributes, attribute => { + return attribute !== baseScope && contains$2(scopes, attribute); + }); + return isMixed ? Optional.none() : Optional.from(baseScope); + } + }; + remove$5(cells[0], 'width'); + getScopeProperty().fold(() => remove$7(cells[0], 'scope'), attribute => set$2(cells[0], 'scope', attribute + 'group')); + return constant(cells[0]); + }; + return { + unmerge, + merge + }; + }; + const Generators = { + modification, + transform: transform$1, + merging + }; + + const blockList = [ + 'body', + 'p', + 'div', + 'article', + 'aside', + 'figcaption', + 'figure', + 'footer', + 'header', + 'nav', + 'section', + 'ol', + 'ul', + 'table', + 'thead', + 'tfoot', + 'tbody', + 'caption', + 'tr', + 'td', + 'th', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'pre', + 'address' + ]; + const isList$1 = (universe, item) => { + const tagName = universe.property().name(item); + return contains$2([ + 'ol', + 'ul' + ], tagName); + }; + const isBlock$1 = (universe, item) => { + const tagName = universe.property().name(item); + return contains$2(blockList, tagName); + }; + const isEmptyTag$1 = (universe, item) => { + return contains$2([ + 'br', + 'img', + 'hr', + 'input' + ], universe.property().name(item)); + }; + + const universe$1 = DomUniverse(); + const isBlock = element => { + return isBlock$1(universe$1, element); + }; + const isList = element => { + return isList$1(universe$1, element); + }; + const isEmptyTag = element => { + return isEmptyTag$1(universe$1, element); + }; + + const merge = cells => { + const isBr = isTag('br'); + const advancedBr = children => { + return forall(children, c => { + return isBr(c) || isText(c) && get$6(c).trim().length === 0; + }); + }; + const isListItem = el => { + return name(el) === 'li' || ancestor$2(el, isList).isSome(); + }; + const siblingIsBlock = el => { + return nextSibling(el).map(rightSibling => { + if (isBlock(rightSibling)) { + return true; + } + if (isEmptyTag(rightSibling)) { + return name(rightSibling) === 'img' ? false : true; + } + return false; + }).getOr(false); + }; + const markCell = cell => { + return last$1(cell).bind(rightEdge => { + const rightSiblingIsBlock = siblingIsBlock(rightEdge); + return parent(rightEdge).map(parent => { + return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || isBlock(parent) && !eq$1(cell, parent) ? [] : [SugarElement.fromTag('br')]; + }); + }).getOr([]); + }; + const markContent = () => { + const content = bind$2(cells, cell => { + const children = children$2(cell); + return advancedBr(children) ? [] : children.concat(markCell(cell)); + }); + return content.length === 0 ? [SugarElement.fromTag('br')] : content; + }; + const contents = markContent(); + empty(cells[0]); + append(cells[0], contents); + }; + + const isEditable = elem => isEditable$1(elem, true); + const prune = table => { + const cells = cells$1(table); + if (cells.length === 0) { + remove$6(table); + } + }; + const outcome = (grid, cursor) => ({ + grid, + cursor + }); + const findEditableCursorPosition = rows => findMap(rows, row => findMap(row.cells, cell => { + const elem = cell.element; + return someIf(isEditable(elem), elem); + })); + const elementFromGrid = (grid, row, column) => { + var _a, _b; + const rows = extractGridDetails(grid).rows; + return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element).filter(isEditable).orThunk(() => findEditableCursorPosition(rows)); + }; + const bundle = (grid, row, column) => { + const cursorElement = elementFromGrid(grid, row, column); + return outcome(grid, cursorElement); + }; + const uniqueRows = details => { + const rowCompilation = (rest, detail) => { + const rowExists = exists(rest, currentDetail => currentDetail.row === detail.row); + return rowExists ? rest : rest.concat([detail]); + }; + return foldl(details, rowCompilation, []).sort((detailA, detailB) => detailA.row - detailB.row); + }; + const opInsertRowsBefore = (grid, details, comparator, genWrappers) => { + const targetIndex = details[0].row; + const rows = uniqueRows(details); + const newGrid = foldr(rows, (acc, row) => { + const newG = insertRowAt(acc.grid, targetIndex, row.row + acc.delta, comparator, genWrappers.getOrInit); + return { + grid: newG, + delta: acc.delta + 1 + }; + }, { + grid, + delta: 0 + }).grid; + return bundle(newGrid, targetIndex, details[0].column); + }; + const opInsertRowsAfter = (grid, details, comparator, genWrappers) => { + const rows = uniqueRows(details); + const target = rows[rows.length - 1]; + const targetIndex = target.row + target.rowspan; + const newGrid = foldr(rows, (newG, row) => { + return insertRowAt(newG, targetIndex, row.row, comparator, genWrappers.getOrInit); + }, grid); + return bundle(newGrid, targetIndex, details[0].column); + }; + const opInsertColumnsBefore = (grid, extractDetail, comparator, genWrappers) => { + const details = extractDetail.details; + const columns = uniqueColumns(details); + const targetIndex = columns[0].column; + const newGrid = foldr(columns, (acc, col) => { + const newG = insertColumnAt(acc.grid, targetIndex, col.column + acc.delta, comparator, genWrappers.getOrInit); + return { + grid: newG, + delta: acc.delta + 1 + }; + }, { + grid, + delta: 0 + }).grid; + return bundle(newGrid, details[0].row, targetIndex); + }; + const opInsertColumnsAfter = (grid, extractDetail, comparator, genWrappers) => { + const details = extractDetail.details; + const target = details[details.length - 1]; + const targetIndex = target.column + target.colspan; + const columns = uniqueColumns(details); + const newGrid = foldr(columns, (newG, col) => { + return insertColumnAt(newG, targetIndex, col.column, comparator, genWrappers.getOrInit); + }, grid); + return bundle(newGrid, details[0].row, targetIndex); + }; + const opMakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => { + const columns = uniqueColumns(details); + const columnIndexes = map$1(columns, detail => detail.column); + const newGrid = replaceColumns(initialGrid, columnIndexes, true, comparator, genWrappers.replaceOrInit); + return bundle(newGrid, details[0].row, details[0].column); + }; + const opMakeCellsHeader = (initialGrid, details, comparator, genWrappers) => { + const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit); + return bundle(newGrid, details[0].row, details[0].column); + }; + const opUnmakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => { + const columns = uniqueColumns(details); + const columnIndexes = map$1(columns, detail => detail.column); + const newGrid = replaceColumns(initialGrid, columnIndexes, false, comparator, genWrappers.replaceOrInit); + return bundle(newGrid, details[0].row, details[0].column); + }; + const opUnmakeCellsHeader = (initialGrid, details, comparator, genWrappers) => { + const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit); + return bundle(newGrid, details[0].row, details[0].column); + }; + const makeRowsSection = (section, applyScope) => (initialGrid, details, comparator, genWrappers, Tablasection) => { + const rows = uniqueRows(details); + const rowIndexes = map$1(rows, detail => detail.row); + const newGrid = replaceRows(initialGrid, rowIndexes, section, applyScope, comparator, genWrappers.replaceOrInit, Tablasection); + return bundle(newGrid, details[0].row, details[0].column); + }; + const opMakeRowsHeader = makeRowsSection('thead', true); + const opMakeRowsBody = makeRowsSection('tbody', false); + const opMakeRowsFooter = makeRowsSection('tfoot', false); + const opEraseColumns = (grid, extractDetail, _comparator, _genWrappers) => { + const columns = uniqueColumns(extractDetail.details); + const newGrid = deleteColumnsAt(grid, map$1(columns, column => column.column)); + const maxColIndex = newGrid.length > 0 ? newGrid[0].cells.length - 1 : 0; + return bundle(newGrid, columns[0].row, Math.min(columns[0].column, maxColIndex)); + }; + const opEraseRows = (grid, details, _comparator, _genWrappers) => { + const rows = uniqueRows(details); + const newGrid = deleteRowsAt(grid, rows[0].row, rows[rows.length - 1].row); + const maxRowIndex = newGrid.length > 0 ? newGrid.length - 1 : 0; + return bundle(newGrid, Math.min(details[0].row, maxRowIndex), details[0].column); + }; + const opMergeCells = (grid, mergable, comparator, genWrappers) => { + const cells = mergable.cells; + merge(cells); + const newGrid = merge$2(grid, mergable.bounds, comparator, genWrappers.merge(cells)); + return outcome(newGrid, Optional.from(cells[0])); + }; + const opUnmergeCells = (grid, unmergable, comparator, genWrappers) => { + const unmerge$1 = (b, cell) => unmerge(b, cell, comparator, genWrappers.unmerge(cell)); + const newGrid = foldr(unmergable, unmerge$1, grid); + return outcome(newGrid, Optional.from(unmergable[0])); + }; + const opPasteCells = (grid, pasteDetails, comparator, _genWrappers) => { + const gridify = (table, generators) => { + const wh = Warehouse.fromTable(table); + return toGrid(wh, generators, true); + }; + const gridB = gridify(pasteDetails.clipboard, pasteDetails.generators); + const startAddress = address(pasteDetails.row, pasteDetails.column); + const mergedGrid = merge$1(startAddress, grid, gridB, pasteDetails.generators, comparator); + return mergedGrid.fold(() => outcome(grid, Optional.some(pasteDetails.element)), newGrid => { + return bundle(newGrid, pasteDetails.row, pasteDetails.column); + }); + }; + const gridifyRows = (rows, generators, context) => { + const pasteDetails = fromPastedRows(rows, context.section); + const wh = Warehouse.generate(pasteDetails); + return toGrid(wh, generators, true); + }; + const opPasteColsBefore = (grid, pasteDetails, comparator, _genWrappers) => { + const rows = extractGridDetails(grid).rows; + const index = pasteDetails.cells[0].column; + const context = rows[pasteDetails.cells[0].row]; + const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context); + const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator); + return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column); + }; + const opPasteColsAfter = (grid, pasteDetails, comparator, _genWrappers) => { + const rows = extractGridDetails(grid).rows; + const index = pasteDetails.cells[pasteDetails.cells.length - 1].column + pasteDetails.cells[pasteDetails.cells.length - 1].colspan; + const context = rows[pasteDetails.cells[0].row]; + const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context); + const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator); + return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column); + }; + const opPasteRowsBefore = (grid, pasteDetails, comparator, _genWrappers) => { + const rows = extractGridDetails(grid).rows; + const index = pasteDetails.cells[0].row; + const context = rows[index]; + const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context); + const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator); + return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column); + }; + const opPasteRowsAfter = (grid, pasteDetails, comparator, _genWrappers) => { + const rows = extractGridDetails(grid).rows; + const index = pasteDetails.cells[pasteDetails.cells.length - 1].row + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan; + const context = rows[pasteDetails.cells[0].row]; + const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context); + const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator); + return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column); + }; + const opGetColumnsType = (table, target) => { + const house = Warehouse.fromTable(table); + const details = onCells(house, target); + return details.bind(selectedCells => { + const lastSelectedCell = selectedCells[selectedCells.length - 1]; + const minColRange = selectedCells[0].column; + const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan; + const selectedColumnCells = flatten(map$1(house.all, row => filter$2(row.cells, cell => cell.column >= minColRange && cell.column < maxColRange))); + return findCommonCellType(selectedColumnCells); + }).getOr(''); + }; + const opGetCellsType = (table, target) => { + const house = Warehouse.fromTable(table); + const details = onCells(house, target); + return details.bind(findCommonCellType).getOr(''); + }; + const opGetRowsType = (table, target) => { + const house = Warehouse.fromTable(table); + const details = onCells(house, target); + return details.bind(selectedCells => { + const lastSelectedCell = selectedCells[selectedCells.length - 1]; + const minRowRange = selectedCells[0].row; + const maxRowRange = lastSelectedCell.row + lastSelectedCell.rowspan; + const selectedRows = house.all.slice(minRowRange, maxRowRange); + return findCommonRowType(selectedRows); + }).getOr(''); + }; + const resize = (table, list, details, behaviours) => adjustWidthTo(table, list, details, behaviours.sizing); + const adjustAndRedistributeWidths = (table, list, details, behaviours) => adjustAndRedistributeWidths$1(table, list, details, behaviours.sizing, behaviours.resize); + const firstColumnIsLocked = (_warehouse, details) => exists(details, detail => detail.column === 0 && detail.isLocked); + const lastColumnIsLocked = (warehouse, details) => exists(details, detail => detail.column + detail.colspan >= warehouse.grid.columns && detail.isLocked); + const getColumnsWidth = (warehouse, details) => { + const columns$1 = columns(warehouse); + const uniqueCols = uniqueColumns(details); + return foldl(uniqueCols, (acc, detail) => { + const column = columns$1[detail.column]; + const colWidth = column.map(getOuter$2).getOr(0); + return acc + colWidth; + }, 0); + }; + const insertColumnsExtractor = before => (warehouse, target) => onCells(warehouse, target).filter(details => { + const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked; + return !checkLocked(warehouse, details); + }).map(details => ({ + details, + pixelDelta: getColumnsWidth(warehouse, details) + })); + const eraseColumnsExtractor = (warehouse, target) => onUnlockedCells(warehouse, target).map(details => ({ + details, + pixelDelta: -getColumnsWidth(warehouse, details) + })); + const pasteColumnsExtractor = before => (warehouse, target) => onPasteByEditor(warehouse, target).filter(details => { + const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked; + return !checkLocked(warehouse, details.cells); + }); + const headerCellGenerator = Generators.transform('th'); + const bodyCellGenerator = Generators.transform('td'); + const insertRowsBefore = run(opInsertRowsBefore, onCells, noop, noop, Generators.modification); + const insertRowsAfter = run(opInsertRowsAfter, onCells, noop, noop, Generators.modification); + const insertColumnsBefore = run(opInsertColumnsBefore, insertColumnsExtractor(true), adjustAndRedistributeWidths, noop, Generators.modification); + const insertColumnsAfter = run(opInsertColumnsAfter, insertColumnsExtractor(false), adjustAndRedistributeWidths, noop, Generators.modification); + const eraseColumns = run(opEraseColumns, eraseColumnsExtractor, adjustAndRedistributeWidths, prune, Generators.modification); + const eraseRows = run(opEraseRows, onCells, noop, prune, Generators.modification); + const makeColumnsHeader = run(opMakeColumnsHeader, onUnlockedCells, noop, noop, headerCellGenerator); + const unmakeColumnsHeader = run(opUnmakeColumnsHeader, onUnlockedCells, noop, noop, bodyCellGenerator); + const makeRowsHeader = run(opMakeRowsHeader, onUnlockedCells, noop, noop, headerCellGenerator); + const makeRowsBody = run(opMakeRowsBody, onUnlockedCells, noop, noop, bodyCellGenerator); + const makeRowsFooter = run(opMakeRowsFooter, onUnlockedCells, noop, noop, bodyCellGenerator); + const makeCellsHeader = run(opMakeCellsHeader, onUnlockedCells, noop, noop, headerCellGenerator); + const unmakeCellsHeader = run(opUnmakeCellsHeader, onUnlockedCells, noop, noop, bodyCellGenerator); + const mergeCells = run(opMergeCells, onUnlockedMergable, resize, noop, Generators.merging); + const unmergeCells = run(opUnmergeCells, onUnlockedUnmergable, resize, noop, Generators.merging); + const pasteCells = run(opPasteCells, onPaste, resize, noop, Generators.modification); + const pasteColsBefore = run(opPasteColsBefore, pasteColumnsExtractor(true), noop, noop, Generators.modification); + const pasteColsAfter = run(opPasteColsAfter, pasteColumnsExtractor(false), noop, noop, Generators.modification); + const pasteRowsBefore = run(opPasteRowsBefore, onPasteByEditor, noop, noop, Generators.modification); + const pasteRowsAfter = run(opPasteRowsAfter, onPasteByEditor, noop, noop, Generators.modification); + const getColumnsType = opGetColumnsType; + const getCellsType = opGetCellsType; + const getRowsType = opGetRowsType; + + const fireNewRow = (editor, row) => editor.dispatch('NewRow', { node: row }); + const fireNewCell = (editor, cell) => editor.dispatch('NewCell', { node: cell }); + const fireTableModified = (editor, table, data) => { + editor.dispatch('TableModified', { + ...data, + table + }); + }; + const fireTablaselectionChange = (editor, cells, start, finish, otherCells) => { + editor.dispatch('TablaselectionChange', { + cells, + start, + finish, + otherCells + }); + }; + const fireTablaselectionClear = editor => { + editor.dispatch('TablaselectionClear'); + }; + const fireObjectResizeStart = (editor, target, width, height, origin) => { + editor.dispatch('ObjectResizeStart', { + target, + width, + height, + origin + }); + }; + const fireObjectResized = (editor, target, width, height, origin) => { + editor.dispatch('ObjectResized', { + target, + width, + height, + origin + }); + }; + const styleModified = { + structure: false, + style: true + }; + const structureModified = { + structure: true, + style: false + }; + const styleAndStructureModified = { + structure: true, + style: true + }; + + const option = name => editor => editor.options.get(name); + const defaultWidth = '100%'; + const getPixelForcedWidth = editor => { + var _a; + const dom = editor.dom; + const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody(); + return getInner(SugarElement.fromDom(parentBlock)) + 'px'; + }; + const determineDefaultTablastyles = (editor, defaultStyles) => { + if (isTableResponsiveForced(editor) || !shouldStyleWithCss(editor)) { + return defaultStyles; + } else if (isTablePixelsForced(editor)) { + return { + ...defaultStyles, + width: getPixelForcedWidth(editor) + }; + } else { + return { + ...defaultStyles, + width: defaultWidth + }; + } + }; + const determineDefaultTableAttributes = (editor, defaultAttributes) => { + if (isTableResponsiveForced(editor) || shouldStyleWithCss(editor)) { + return defaultAttributes; + } else if (isTablePixelsForced(editor)) { + return { + ...defaultAttributes, + width: getPixelForcedWidth(editor) + }; + } else { + return { + ...defaultAttributes, + width: defaultWidth + }; + } + }; + const Registro = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('table_clone_elements', { processor: 'string[]' }); + RegistroOption('table_use_colgroups', { + processor: 'boolean', + default: true + }); + RegistroOption('table_header_type', { + processor: value => { + const valid = contains$2([ + 'section', + 'cells', + 'sectionCells', + 'auto' + ], value); + return valid ? { + value, + valid + } : { + valid: false, + message: 'Must be one of: section, cells, sectionCells or auto.' + }; + }, + default: 'section' + }); + RegistroOption('table_sizing_mode', { + processor: 'string', + default: 'auto' + }); + RegistroOption('table_default_attributes', { + processor: 'object', + default: { border: '1' } + }); + RegistroOption('table_default_styles', { + processor: 'object', + default: { 'border-collapse': 'collapse' } + }); + RegistroOption('table_column_resizing', { + processor: value => { + const valid = contains$2([ + 'preservetable', + 'resizetable' + ], value); + return valid ? { + value, + valid + } : { + valid: false, + message: 'Must be preservetable, or resizetable.' + }; + }, + default: 'preservetable' + }); + RegistroOption('table_resize_bars', { + processor: 'boolean', + default: true + }); + RegistroOption('table_style_by_css', { + processor: 'boolean', + default: true + }); + }; + const getTableCloneElements = editor => { + return Optional.from(editor.options.get('table_clone_elements')); + }; + const hasTableObjectResizing = editor => { + const objectResizing = editor.options.get('object_resizing'); + return contains$2(objectResizing.split(','), 'table'); + }; + const getTableHeaderType = option('table_header_type'); + const getTableColumnResizingBehaviour = option('table_column_resizing'); + const isPreserveTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'preservetable'; + const isResizeTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'resizetable'; + const getTablasizingMode = option('table_sizing_mode'); + const isTablePercentagesForced = editor => getTablasizingMode(editor) === 'relative'; + const isTablePixelsForced = editor => getTablasizingMode(editor) === 'fixed'; + const isTableResponsiveForced = editor => getTablasizingMode(editor) === 'responsive'; + const hasTableResizeBars = option('table_resize_bars'); + const shouldStyleWithCss = option('table_style_by_css'); + const getTableDefaultAttributes = editor => { + const options = editor.options; + const defaultAttributes = options.get('table_default_attributes'); + return options.isSet('table_default_attributes') ? defaultAttributes : determineDefaultTableAttributes(editor, defaultAttributes); + }; + const getTableDefaultStyles = editor => { + const options = editor.options; + const defaultStyles = options.get('table_default_styles'); + return options.isSet('table_default_styles') ? defaultStyles : determineDefaultTablastyles(editor, defaultStyles); + }; + const tableUseColumnGroup = option('table_use_colgroups'); + + const get$5 = (editor, table) => { + if (isTablePercentagesForced(editor)) { + return Tablasize.percentageSize(table); + } else if (isTablePixelsForced(editor)) { + return Tablasize.pixelSize(table); + } else { + return Tablasize.getTablasize(table); + } + }; + + const TableActions = (editor, resizeHandler, cellSelectionHandler) => { + const isTableBody = editor => name(getBody(editor)) === 'table'; + const lastRowGuard = table => !isTableBody(editor) || getGridSize(table).rows > 1; + const lastColumnGuard = table => !isTableBody(editor) || getGridSize(table).columns > 1; + const cloneFormats = getTableCloneElements(editor); + const colMutationOp = isResizeTableColumnResizing(editor) ? noop : halve; + const getTablasectionType = table => { + switch (getTableHeaderType(editor)) { + case 'section': + return Tablasection.section(); + case 'sectionCells': + return Tablasection.sectionCells(); + case 'cells': + return Tablasection.cells(); + default: + return Tablasection.getTablasectionType(table, 'section'); + } + }; + const setSelectionFromAction = (table, result) => result.cursor.fold(() => { + const cells = cells$1(table); + return head(cells).filter(inBody).map(firstCell => { + cellSelectionHandler.clearSelectedCells(table.dom); + const rng = editor.dom.createRng(); + rng.selectNode(firstCell.dom); + editor.selection.setRng(rng); + set$2(firstCell, 'data-mce-selected', '1'); + return rng; + }); + }, cell => { + const des = freefallRtl(cell); + const rng = editor.dom.createRng(); + rng.setStart(des.element.dom, des.offset); + rng.setEnd(des.element.dom, des.offset); + editor.selection.setRng(rng); + cellSelectionHandler.clearSelectedCells(table.dom); + return Optional.some(rng); + }); + const execute = (operation, guard, mutate, effect) => (table, target, noEvents = false) => { + removeDataStyle(table); + const doc = SugarElement.fromDom(editor.getDoc()); + const generators = cellOperations(mutate, doc, cloneFormats); + const behaviours = { + sizing: get$5(editor, table), + resize: isResizeTableColumnResizing(editor) ? resizeTable() : preserveTable(), + section: getTablasectionType(table) + }; + return guard(table) ? operation(table, target, generators, behaviours).bind(result => { + resizeHandler.refresh(table.dom); + each$2(result.newRows, row => { + fireNewRow(editor, row.dom); + }); + each$2(result.newCells, cell => { + fireNewCell(editor, cell.dom); + }); + const range = setSelectionFromAction(table, result); + if (inBody(table)) { + removeDataStyle(table); + if (!noEvents) { + fireTableModified(editor, table.dom, effect); + } + } + return range.map(rng => ({ + rng, + effect + })); + }) : Optional.none(); + }; + const deleteRow = execute(eraseRows, lastRowGuard, noop, structureModified); + const deleteColumn = execute(eraseColumns, lastColumnGuard, noop, structureModified); + const insertRowsBefore$1 = execute(insertRowsBefore, always, noop, structureModified); + const insertRowsAfter$1 = execute(insertRowsAfter, always, noop, structureModified); + const insertColumnsBefore$1 = execute(insertColumnsBefore, always, colMutationOp, structureModified); + const insertColumnsAfter$1 = execute(insertColumnsAfter, always, colMutationOp, structureModified); + const mergeCells$1 = execute(mergeCells, always, noop, structureModified); + const unmergeCells$1 = execute(unmergeCells, always, noop, structureModified); + const pasteColsBefore$1 = execute(pasteColsBefore, always, noop, structureModified); + const pasteColsAfter$1 = execute(pasteColsAfter, always, noop, structureModified); + const pasteRowsBefore$1 = execute(pasteRowsBefore, always, noop, structureModified); + const pasteRowsAfter$1 = execute(pasteRowsAfter, always, noop, structureModified); + const pasteCells$1 = execute(pasteCells, always, noop, styleAndStructureModified); + const makeCellsHeader$1 = execute(makeCellsHeader, always, noop, structureModified); + const unmakeCellsHeader$1 = execute(unmakeCellsHeader, always, noop, structureModified); + const makeColumnsHeader$1 = execute(makeColumnsHeader, always, noop, structureModified); + const unmakeColumnsHeader$1 = execute(unmakeColumnsHeader, always, noop, structureModified); + const makeRowsHeader$1 = execute(makeRowsHeader, always, noop, structureModified); + const makeRowsBody$1 = execute(makeRowsBody, always, noop, structureModified); + const makeRowsFooter$1 = execute(makeRowsFooter, always, noop, structureModified); + const getTableCellType = getCellsType; + const getTableColType = getColumnsType; + const getTableRowType = getRowsType; + return { + deleteRow, + deleteColumn, + insertRowsBefore: insertRowsBefore$1, + insertRowsAfter: insertRowsAfter$1, + insertColumnsBefore: insertColumnsBefore$1, + insertColumnsAfter: insertColumnsAfter$1, + mergeCells: mergeCells$1, + unmergeCells: unmergeCells$1, + pasteColsBefore: pasteColsBefore$1, + pasteColsAfter: pasteColsAfter$1, + pasteRowsBefore: pasteRowsBefore$1, + pasteRowsAfter: pasteRowsAfter$1, + pasteCells: pasteCells$1, + makeCellsHeader: makeCellsHeader$1, + unmakeCellsHeader: unmakeCellsHeader$1, + makeColumnsHeader: makeColumnsHeader$1, + unmakeColumnsHeader: unmakeColumnsHeader$1, + makeRowsHeader: makeRowsHeader$1, + makeRowsBody: makeRowsBody$1, + makeRowsFooter: makeRowsFooter$1, + getTableRowType, + getTableCellType, + getTableColType + }; + }; + + const constrainSpan = (element, property, value) => { + const currentColspan = getAttrValue(element, property, 1); + if (value === 1 || currentColspan <= 1) { + remove$7(element, property); + } else { + set$2(element, property, Math.min(value, currentColspan)); + } + }; + const isColInRange = (minColRange, maxColRange) => cell => { + const endCol = cell.column + cell.colspan - 1; + const startCol = cell.column; + return endCol >= minColRange && startCol < maxColRange; + }; + const generateColGroup = (house, minColRange, maxColRange) => { + if (Warehouse.hasColumns(house)) { + const colsToCopy = filter$2(Warehouse.justColumns(house), isColInRange(minColRange, maxColRange)); + const copiedCols = map$1(colsToCopy, c => { + const clonedCol = deep(c.element); + constrainSpan(clonedCol, 'span', maxColRange - minColRange); + return clonedCol; + }); + const fakeColgroup = SugarElement.fromTag('colgroup'); + append(fakeColgroup, copiedCols); + return [fakeColgroup]; + } else { + return []; + } + }; + const generateRows = (house, minColRange, maxColRange) => map$1(house.all, row => { + const cellsToCopy = filter$2(row.cells, isColInRange(minColRange, maxColRange)); + const copiedCells = map$1(cellsToCopy, cell => { + const clonedCell = deep(cell.element); + constrainSpan(clonedCell, 'colspan', maxColRange - minColRange); + return clonedCell; + }); + const fakeTR = SugarElement.fromTag('tr'); + append(fakeTR, copiedCells); + return fakeTR; + }); + const copyCols = (table, target) => { + const house = Warehouse.fromTable(table); + const details = onUnlockedCells(house, target); + return details.map(selectedCells => { + const lastSelectedCell = selectedCells[selectedCells.length - 1]; + const minColRange = selectedCells[0].column; + const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan; + const fakeColGroups = generateColGroup(house, minColRange, maxColRange); + const fakeRows = generateRows(house, minColRange, maxColRange); + return [ + ...fakeColGroups, + ...fakeRows + ]; + }); + }; + + const copyRows = (table, target, generators) => { + const warehouse = Warehouse.fromTable(table); + const details = onCells(warehouse, target); + return details.bind(selectedCells => { + const grid = toGrid(warehouse, generators, false); + const rows = extractGridDetails(grid).rows; + const slicedGrid = rows.slice(selectedCells[0].row, selectedCells[selectedCells.length - 1].row + selectedCells[selectedCells.length - 1].rowspan); + const filteredGrid = bind$2(slicedGrid, row => { + const newCells = filter$2(row.cells, cell => !cell.isLocked); + return newCells.length > 0 ? [{ + ...row, + cells: newCells + }] : []; + }); + const slicedDetails = toDetailList(filteredGrid); + return someIf(slicedDetails.length > 0, slicedDetails); + }).map(slicedDetails => copy(slicedDetails)); + }; + + const adt$5 = Adt.generate([ + { invalid: ['raw'] }, + { pixels: ['value'] }, + { percent: ['value'] } + ]); + const validateFor = (suffix, type, value) => { + const rawAmount = value.substring(0, value.length - suffix.length); + const amount = parseFloat(rawAmount); + return rawAmount === amount.toString() ? type(amount) : adt$5.invalid(value); + }; + const from = value => { + if (endsWith(value, '%')) { + return validateFor('%', adt$5.percent, value); + } + if (endsWith(value, 'px')) { + return validateFor('px', adt$5.pixels, value); + } + return adt$5.invalid(value); + }; + const Size = { + ...adt$5, + from + }; + + const redistributeToPercent = (widths, totalWidth) => { + return map$1(widths, w => { + const colType = Size.from(w); + return colType.fold(() => { + return w; + }, px => { + const ratio = px / totalWidth * 100; + return ratio + '%'; + }, pc => { + return pc + '%'; + }); + }); + }; + const redistributeToPx = (widths, totalWidth, newTotalWidth) => { + const scale = newTotalWidth / totalWidth; + return map$1(widths, w => { + const colType = Size.from(w); + return colType.fold(() => { + return w; + }, px => { + return px * scale + 'px'; + }, pc => { + return pc / 100 * newTotalWidth + 'px'; + }); + }); + }; + const redistributeEmpty = (newWidthType, columns) => { + const f = newWidthType.fold(() => constant(''), pixels => { + const num = pixels / columns; + return constant(num + 'px'); + }, () => { + const num = 100 / columns; + return constant(num + '%'); + }); + return range$1(columns, f); + }; + const redistributeValues = (newWidthType, widths, totalWidth) => { + return newWidthType.fold(() => { + return widths; + }, px => { + return redistributeToPx(widths, totalWidth, px); + }, _pc => { + return redistributeToPercent(widths, totalWidth); + }); + }; + const redistribute$1 = (widths, totalWidth, newWidth) => { + const newType = Size.from(newWidth); + const floats = forall(widths, s => { + return s === '0px'; + }) ? redistributeEmpty(newType, widths.length) : redistributeValues(newType, widths, totalWidth); + return normalize(floats); + }; + const sum = (values, fallback) => { + if (values.length === 0) { + return fallback; + } + return foldr(values, (rest, v) => { + return Size.from(v).fold(constant(0), identity, identity) + rest; + }, 0); + }; + const roundDown = (num, unit) => { + const floored = Math.floor(num); + return { + value: floored + unit, + remainder: num - floored + }; + }; + const add$3 = (value, amount) => { + return Size.from(value).fold(constant(value), px => { + return px + amount + 'px'; + }, pc => { + return pc + amount + '%'; + }); + }; + const normalize = values => { + if (values.length === 0) { + return values; + } + const scan = foldr(values, (rest, value) => { + const info = Size.from(value).fold(() => ({ + value, + remainder: 0 + }), num => roundDown(num, 'px'), num => ({ + value: num + '%', + remainder: 0 + })); + return { + output: [info.value].concat(rest.output), + remainder: rest.remainder + info.remainder + }; + }, { + output: [], + remainder: 0 + }); + const r = scan.output; + return r.slice(0, r.length - 1).concat([add$3(r[r.length - 1], Math.round(scan.remainder))]); + }; + const validate = Size.from; + + const redistributeToW = (newWidths, cells, unit) => { + each$2(cells, cell => { + const widths = newWidths.slice(cell.column, cell.colspan + cell.column); + const w = sum(widths, minWidth()); + set$1(cell.element, 'width', w + unit); + }); + }; + const redistributeToColumns = (newWidths, columns, unit) => { + each$2(columns, (column, index) => { + const width = sum([newWidths[index]], minWidth()); + set$1(column.element, 'width', width + unit); + }); + }; + const redistributeToH = (newHeights, rows, cells, unit) => { + each$2(cells, cell => { + const heights = newHeights.slice(cell.row, cell.rowspan + cell.row); + const h = sum(heights, minHeight()); + set$1(cell.element, 'height', h + unit); + }); + each$2(rows, (row, i) => { + set$1(row.element, 'height', newHeights[i]); + }); + }; + const getUnit = newSize => { + return validate(newSize).fold(constant('px'), constant('px'), constant('%')); + }; + const redistribute = (table, optWidth, optHeight) => { + const warehouse = Warehouse.fromTable(table); + const rows = warehouse.all; + const cells = Warehouse.justCells(warehouse); + const columns = Warehouse.justColumns(warehouse); + optWidth.each(newWidth => { + const widthUnit = getUnit(newWidth); + const totalWidth = get$9(table); + const oldWidths = getRawWidths(warehouse, table); + const nuWidths = redistribute$1(oldWidths, totalWidth, newWidth); + if (Warehouse.hasColumns(warehouse)) { + redistributeToColumns(nuWidths, columns, widthUnit); + } else { + redistributeToW(nuWidths, cells, widthUnit); + } + set$1(table, 'width', newWidth); + }); + optHeight.each(newHeight => { + const hUnit = getUnit(newHeight); + const totalHeight = get$8(table); + const oldHeights = getRawHeights(warehouse, table, height); + const nuHeights = redistribute$1(oldHeights, totalHeight, newHeight); + redistributeToH(nuHeights, rows, cells, hUnit); + set$1(table, 'height', newHeight); + }); + }; + const isPercentSizing = isPercentSizing$1; + const isPixelSizing = isPixelSizing$1; + const isNoneSizing = isNoneSizing$1; + + const cleanupLegacyAttributes = element => { + remove$7(element, 'width'); + }; + const convertToPercentSize = table => { + const newWidth = getPercentTableWidth(table); + redistribute(table, Optional.some(newWidth), Optional.none()); + cleanupLegacyAttributes(table); + }; + const convertToPixelSize = table => { + const newWidth = getPixelTableWidth(table); + redistribute(table, Optional.some(newWidth), Optional.none()); + cleanupLegacyAttributes(table); + }; + const convertToNoneSize = table => { + remove$5(table, 'width'); + const columns = columns$1(table); + const rowElements = columns.length > 0 ? columns : cells$1(table); + each$2(rowElements, cell => { + remove$5(cell, 'width'); + cleanupLegacyAttributes(cell); + }); + cleanupLegacyAttributes(table); + }; + + const DefaultRenderOptions = { + styles: { + 'border-collapse': 'collapse', + 'width': '100%' + }, + attributes: { border: '1' }, + colGroups: false + }; + const tableHeaderCell = () => SugarElement.fromTag('th'); + const tableCell = () => SugarElement.fromTag('td'); + const tableColumn = () => SugarElement.fromTag('col'); + const createRow = (columns, rowHeaders, columnHeaders, rowIndex) => { + const tr = SugarElement.fromTag('tr'); + for (let j = 0; j < columns; j++) { + const td = rowIndex < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell(); + if (j < columnHeaders) { + set$2(td, 'scope', 'row'); + } + if (rowIndex < rowHeaders) { + set$2(td, 'scope', 'col'); + } + append$1(td, SugarElement.fromTag('br')); + append$1(tr, td); + } + return tr; + }; + const createGroupRow = columns => { + const columnGroup = SugarElement.fromTag('colgroup'); + range$1(columns, () => append$1(columnGroup, tableColumn())); + return columnGroup; + }; + const createRows = (rows, columns, rowHeaders, columnHeaders) => range$1(rows, r => createRow(columns, rowHeaders, columnHeaders, r)); + const render = (rows, columns, rowHeaders, columnHeaders, headerType, renderOpts = DefaultRenderOptions) => { + const table = SugarElement.fromTag('table'); + const rowHeadersGoInThead = headerType !== 'cells'; + setAll(table, renderOpts.styles); + setAll$1(table, renderOpts.attributes); + if (renderOpts.colGroups) { + append$1(table, createGroupRow(columns)); + } + const actualRowHeaders = Math.min(rows, rowHeaders); + if (rowHeadersGoInThead && rowHeaders > 0) { + const thead = SugarElement.fromTag('thead'); + append$1(table, thead); + const theadRowHeaders = headerType === 'sectionCells' ? actualRowHeaders : 0; + const theadRows = createRows(rowHeaders, columns, theadRowHeaders, columnHeaders); + append(thead, theadRows); + } + const tbody = SugarElement.fromTag('tbody'); + append$1(table, tbody); + const numRows = rowHeadersGoInThead ? rows - actualRowHeaders : rows; + const numRowHeaders = rowHeadersGoInThead ? 0 : rowHeaders; + const tbodyRows = createRows(numRows, columns, numRowHeaders, columnHeaders); + append(tbody, tbodyRows); + return table; + }; + + const get$4 = element => element.dom.innerHTML; + const getOuter = element => { + const container = SugarElement.fromTag('div'); + const clone = SugarElement.fromDom(element.dom.cloneNode(true)); + append$1(container, clone); + return get$4(container); + }; + + const placeCaretInCell = (editor, cell) => { + editor.selection.select(cell.dom, true); + editor.selection.collapse(true); + }; + const selectFirstCellInTable = (editor, tableElm) => { + descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor)); + }; + const fireEvents = (editor, table) => { + each$2(descendants(table, 'tr'), row => { + fireNewRow(editor, row.dom); + each$2(descendants(row, 'th,td'), cell => { + fireNewCell(editor, cell.dom); + }); + }); + }; + const isPercentage = width => isString(width) && width.indexOf('%') !== -1; + const insert = (editor, columns, rows, colHeaders, rowHeaders) => { + const defaultStyles = getTableDefaultStyles(editor); + const options = { + styles: defaultStyles, + attributes: getTableDefaultAttributes(editor), + colGroups: tableUseColumnGroup(editor) + }; + editor.undoManager.ignore(() => { + const table = render(rows, columns, rowHeaders, colHeaders, getTableHeaderType(editor), options); + set$2(table, 'data-mce-id', '__mce'); + const html = getOuter(table); + editor.insertContent(html); + editor.addVisual(); + }); + return descendant(getBody(editor), 'table[data-mce-id="__mce"]').map(table => { + if (isTablePixelsForced(editor)) { + convertToPixelSize(table); + } else if (isTableResponsiveForced(editor)) { + convertToNoneSize(table); + } else if (isTablePercentagesForced(editor) || isPercentage(defaultStyles.width)) { + convertToPercentSize(table); + } + removeDataStyle(table); + remove$7(table, 'data-mce-id'); + fireEvents(editor, table); + selectFirstCellInTable(editor, table); + return table.dom; + }).getOrNull(); + }; + const insertTable = (editor, rows, columns, options = {}) => { + const checkInput = val => isNumber(val) && val > 0; + if (checkInput(rows) && checkInput(columns)) { + const headerRows = options.headerRows || 0; + const headerColumns = options.headerColumns || 0; + return insert(editor, columns, rows, headerColumns, headerRows); + } else { + console.error('Invalid values for mceInsertTable - rows and columns values are required to insert a table.'); + return null; + } + }; + + var global = tinymce.util.Tools.resolve('tinymce.FakeClipboard'); + + const tableTypeBase = 'x-tinymce/dom-table-'; + const tableTypeRow = tableTypeBase + 'rows'; + const tableTypeColumn = tableTypeBase + 'columns'; + const setData = items => { + const fakeClipboardItem = global.FakeClipboardItem(items); + global.write([fakeClipboardItem]); + }; + const getData = type => { + var _a; + const items = (_a = global.read()) !== null && _a !== void 0 ? _a : []; + return findMap(items, item => Optional.from(item.getType(type))); + }; + const clearData = type => { + if (getData(type).isSome()) { + global.clear(); + } + }; + const setRows = rowsOpt => { + rowsOpt.fold(clearRows, rows => setData({ [tableTypeRow]: rows })); + }; + const getRows = () => getData(tableTypeRow); + const clearRows = () => clearData(tableTypeRow); + const setColumns = columnsOpt => { + columnsOpt.fold(clearColumns, columns => setData({ [tableTypeColumn]: columns })); + }; + const getColumns = () => getData(tableTypeColumn); + const clearColumns = () => clearData(tableTypeColumn); + + const getSelectionStartCellOrCaption = editor => getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor)); + const getSelectionStartCell = editor => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)); + const RegistroCommands = (editor, actions) => { + const isRoot = getIsRoot(editor); + const eraseTable = () => getSelectionStartCellOrCaption(editor).each(cellOrCaption => { + table(cellOrCaption, isRoot).filter(not(isRoot)).each(table => { + const cursor = SugarElement.fromText(''); + after$5(table, cursor); + remove$6(table); + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + editor.selection.setCursorLocation(); + } else { + const rng = editor.dom.createRng(); + rng.setStart(cursor.dom, 0); + rng.setEnd(cursor.dom, 0); + editor.selection.setRng(rng); + editor.nodeChanged(); + } + }); + }); + const setSizingMode = sizing => getSelectionStartCellOrCaption(editor).each(cellOrCaption => { + const isForcedSizing = isTableResponsiveForced(editor) || isTablePixelsForced(editor) || isTablePercentagesForced(editor); + if (!isForcedSizing) { + table(cellOrCaption, isRoot).each(table => { + if (sizing === 'relative' && !isPercentSizing(table)) { + convertToPercentSize(table); + } else if (sizing === 'fixed' && !isPixelSizing(table)) { + convertToPixelSize(table); + } else if (sizing === 'responsive' && !isNoneSizing(table)) { + convertToNoneSize(table); + } + removeDataStyle(table); + fireTableModified(editor, table.dom, structureModified); + }); + } + }); + const getTableFromCell = cell => table(cell, isRoot); + const performActionOnSelection = action => getSelectionStartCell(editor).bind(cell => getTableFromCell(cell).map(table => action(table, cell))); + const toggleTableClass = (_ui, clazz) => { + performActionOnSelection(table => { + editor.formatter.toggle('tableclass', { value: clazz }, table.dom); + fireTableModified(editor, table.dom, styleModified); + }); + }; + const toggleTableCellClass = (_ui, clazz) => { + performActionOnSelection(table => { + const selectedCells = getCellsFromSelection(editor); + const allHaveClass = forall(selectedCells, cell => editor.formatter.match('tablecellclass', { value: clazz }, cell.dom)); + const formatterAction = allHaveClass ? editor.formatter.remove : editor.formatter.apply; + each$2(selectedCells, cell => formatterAction('tablecellclass', { value: clazz }, cell.dom)); + fireTableModified(editor, table.dom, styleModified); + }); + }; + const toggleCaption = () => { + getSelectionStartCellOrCaption(editor).each(cellOrCaption => { + table(cellOrCaption, isRoot).each(table => { + child(table, 'caption').fold(() => { + const caption = SugarElement.fromTag('caption'); + append$1(caption, SugarElement.fromText('Caption')); + appendAt(table, caption, 0); + editor.selection.setCursorLocation(caption.dom, 0); + }, caption => { + if (isTag('caption')(cellOrCaption)) { + one('td', table).each(td => editor.selection.setCursorLocation(td.dom, 0)); + } + remove$6(caption); + }); + fireTableModified(editor, table.dom, structureModified); + }); + }); + }; + const postExecute = _data => { + editor.focus(); + }; + const actOnSelection = (execute, noEvents = false) => performActionOnSelection((table, startCell) => { + const targets = forMenu(getCellsFromSelection(editor), table, startCell); + execute(table, targets, noEvents).each(postExecute); + }); + const copyRowSelection = () => performActionOnSelection((table, startCell) => { + const targets = forMenu(getCellsFromSelection(editor), table, startCell); + const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), Optional.none()); + return copyRows(table, targets, generators); + }); + const copyColSelection = () => performActionOnSelection((table, startCell) => { + const targets = forMenu(getCellsFromSelection(editor), table, startCell); + return copyCols(table, targets); + }); + const pasteOnSelection = (execute, getRows) => getRows().each(rows => { + const clonedRows = map$1(rows, row => deep(row)); + performActionOnSelection((table, startCell) => { + const generators = paste$1(SugarElement.fromDom(editor.getDoc())); + const targets = pasteRows(getCellsFromSelection(editor), startCell, clonedRows, generators); + execute(table, targets).each(postExecute); + }); + }); + const actOnType = getAction => (_ui, args) => get$c(args, 'type').each(type => { + actOnSelection(getAction(type), args.no_events); + }); + each$1({ + mceTablasplitCells: () => actOnSelection(actions.unmergeCells), + mceTableMergeCells: () => actOnSelection(actions.mergeCells), + mceTableInsertRowBefore: () => actOnSelection(actions.insertRowsBefore), + mceTableInsertRowAfter: () => actOnSelection(actions.insertRowsAfter), + mceTableInsertColBefore: () => actOnSelection(actions.insertColumnsBefore), + mceTableInsertColAfter: () => actOnSelection(actions.insertColumnsAfter), + mceTableDeleteCol: () => actOnSelection(actions.deleteColumn), + mceTableDeleteRow: () => actOnSelection(actions.deleteRow), + mceTableCutCol: () => copyColSelection().each(selection => { + setColumns(selection); + actOnSelection(actions.deleteColumn); + }), + mceTableCutRow: () => copyRowSelection().each(selection => { + setRows(selection); + actOnSelection(actions.deleteRow); + }), + mceTableCopyCol: () => copyColSelection().each(selection => setColumns(selection)), + mceTableCopyRow: () => copyRowSelection().each(selection => setRows(selection)), + mceTablePasteColBefore: () => pasteOnSelection(actions.pasteColsBefore, getColumns), + mceTablePasteColAfter: () => pasteOnSelection(actions.pasteColsAfter, getColumns), + mceTablePasteRowBefore: () => pasteOnSelection(actions.pasteRowsBefore, getRows), + mceTablePasteRowAfter: () => pasteOnSelection(actions.pasteRowsAfter, getRows), + mceTableDelete: eraseTable, + mceTableCellToggleClass: toggleTableCellClass, + mceTableToggleClass: toggleTableClass, + mceTableToggleCaption: toggleCaption, + mceTablasizingMode: (_ui, sizing) => setSizingMode(sizing), + mceTableCellType: actOnType(type => type === 'th' ? actions.makeCellsHeader : actions.unmakeCellsHeader), + mceTableColType: actOnType(type => type === 'th' ? actions.makeColumnsHeader : actions.unmakeColumnsHeader), + mceTableRowType: actOnType(type => { + switch (type) { + case 'header': + return actions.makeRowsHeader; + case 'footer': + return actions.makeRowsFooter; + default: + return actions.makeRowsBody; + } + }) + }, (func, name) => editor.addCommand(name, func)); + editor.addCommand('mceInsertTable', (_ui, args) => { + insertTable(editor, args.rows, args.columns, args.options); + }); + editor.addCommand('mceTableApplyCellStyle', (_ui, args) => { + const getFormatName = style => 'tablecell' + style.toLowerCase().replace('-', ''); + if (!isObject(args)) { + return; + } + const cells = getCellsFromSelection(editor); + if (cells.length === 0) { + return; + } + const validArgs = filter$1(args, (value, style) => editor.formatter.has(getFormatName(style)) && isString(value)); + if (isEmpty(validArgs)) { + return; + } + each$1(validArgs, (value, style) => { + const formatName = getFormatName(style); + each$2(cells, cell => { + if (value === '') { + editor.formatter.remove(formatName, { value: null }, cell.dom, true); + } else { + editor.formatter.apply(formatName, { value }, cell.dom); + } + }); + }); + getTableFromCell(cells[0]).each(table => fireTableModified(editor, table.dom, styleModified)); + }); + }; + + const RegistroQueryCommands = (editor, actions) => { + const isRoot = getIsRoot(editor); + const lookupOnSelection = action => getSelectionCell(getSelectionStart(editor)).bind(cell => table(cell, isRoot).map(table => { + const targets = forMenu(getCellsFromSelection(editor), table, cell); + return action(table, targets); + })).getOr(''); + each$1({ + mceTableRowType: () => lookupOnSelection(actions.getTableRowType), + mceTableCellType: () => lookupOnSelection(actions.getTableCellType), + mceTableColType: () => lookupOnSelection(actions.getTableColType) + }, (func, name) => editor.addQueryValueHandler(name, func)); + }; + + const adt$4 = Adt.generate([ + { before: ['element'] }, + { + on: [ + 'element', + 'offset' + ] + }, + { after: ['element'] } + ]); + const cata$1 = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter); + const getStart$1 = situ => situ.fold(identity, identity, identity); + const before$2 = adt$4.before; + const on = adt$4.on; + const after$3 = adt$4.after; + const Situ = { + before: before$2, + on, + after: after$3, + cata: cata$1, + getStart: getStart$1 + }; + + const create$4 = (selection, kill) => ({ + selection, + kill + }); + const Response = { create: create$4 }; + + const selectNode = (win, element) => { + const rng = win.document.createRange(); + rng.selectNode(element.dom); + return rng; + }; + const selectNodeContents = (win, element) => { + const rng = win.document.createRange(); + selectNodeContentsUsing(rng, element); + return rng; + }; + const selectNodeContentsUsing = (rng, element) => rng.selectNodeContents(element.dom); + const setStart = (rng, situ) => { + situ.fold(e => { + rng.setStartBefore(e.dom); + }, (e, o) => { + rng.setStart(e.dom, o); + }, e => { + rng.setStartAfter(e.dom); + }); + }; + const setFinish = (rng, situ) => { + situ.fold(e => { + rng.setEndBefore(e.dom); + }, (e, o) => { + rng.setEnd(e.dom, o); + }, e => { + rng.setEndAfter(e.dom); + }); + }; + const relativeToNative = (win, startSitu, finishSitu) => { + const range = win.document.createRange(); + setStart(range, startSitu); + setFinish(range, finishSitu); + return range; + }; + const exactToNative = (win, start, soffset, finish, foffset) => { + const rng = win.document.createRange(); + rng.setStart(start.dom, soffset); + rng.setEnd(finish.dom, foffset); + return rng; + }; + const toRect = rect => ({ + left: rect.left, + top: rect.top, + right: rect.right, + bottom: rect.bottom, + width: rect.width, + height: rect.height + }); + const getFirstRect$1 = rng => { + const rects = rng.getClientRects(); + const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect(); + return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none(); + }; + + const adt$3 = Adt.generate([ + { + ltr: [ + 'start', + 'soffset', + 'finish', + 'foffset' + ] + }, + { + rtl: [ + 'start', + 'soffset', + 'finish', + 'foffset' + ] + } + ]); + const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset); + const getRanges = (win, selection) => selection.match({ + domRange: rng => { + return { + ltr: constant(rng), + rtl: Optional.none + }; + }, + relative: (startSitu, finishSitu) => { + return { + ltr: cached(() => relativeToNative(win, startSitu, finishSitu)), + rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu))) + }; + }, + exact: (start, soffset, finish, foffset) => { + return { + ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)), + rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset))) + }; + } + }); + const doDiagnose = (win, ranges) => { + const rng = ranges.ltr(); + if (rng.collapsed) { + const reversed = ranges.rtl().filter(rev => rev.collapsed === false); + return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng)); + } else { + return fromRange(win, adt$3.ltr, rng); + } + }; + const diagnose = (win, selection) => { + const ranges = getRanges(win, selection); + return doDiagnose(win, ranges); + }; + const asLtrRange = (win, selection) => { + const diagnosis = diagnose(win, selection); + return diagnosis.match({ + ltr: (start, soffset, finish, foffset) => { + const rng = win.document.createRange(); + rng.setStart(start.dom, soffset); + rng.setEnd(finish.dom, foffset); + return rng; + }, + rtl: (start, soffset, finish, foffset) => { + const rng = win.document.createRange(); + rng.setStart(finish.dom, foffset); + rng.setEnd(start.dom, soffset); + return rng; + } + }); + }; + adt$3.ltr; + adt$3.rtl; + + const create$3 = (start, soffset, finish, foffset) => ({ + start, + soffset, + finish, + foffset + }); + const SimRange = { create: create$3 }; + + const create$2 = (start, soffset, finish, foffset) => { + return { + start: Situ.on(start, soffset), + finish: Situ.on(finish, foffset) + }; + }; + const Situs = { create: create$2 }; + + const convertToRange = (win, selection) => { + const rng = asLtrRange(win, selection); + return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset); + }; + const makeSitus = Situs.create; + + const sync = (container, isRoot, start, soffset, finish, foffset, selectRange) => { + if (!(eq$1(start, finish) && soffset === foffset)) { + return closest$1(start, 'td,th', isRoot).bind(s => { + return closest$1(finish, 'td,th', isRoot).bind(f => { + return detect(container, isRoot, s, f, selectRange); + }); + }); + } else { + return Optional.none(); + } + }; + const detect = (container, isRoot, start, finish, selectRange) => { + if (!eq$1(start, finish)) { + return identify(start, finish, isRoot).bind(cellSel => { + const boxes = cellSel.boxes.getOr([]); + if (boxes.length > 1) { + selectRange(container, boxes, cellSel.start, cellSel.finish); + return Optional.some(Response.create(Optional.some(makeSitus(start, 0, start, getEnd(start))), true)); + } else { + return Optional.none(); + } + }); + } else { + return Optional.none(); + } + }; + const update = (rows, columns, container, selected, annotations) => { + const updateSelection = newSels => { + annotations.clearBeforeUpdate(container); + annotations.selectRange(container, newSels.boxes, newSels.start, newSels.finish); + return newSels.boxes; + }; + return shiftSelection(selected, rows, columns, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(updateSelection); + }; + + const traverse = (item, mode) => ({ + item, + mode + }); + const backtrack = (universe, item, _direction, transition = sidestep) => { + return universe.property().parent(item).map(p => { + return traverse(p, transition); + }); + }; + const sidestep = (universe, item, direction, transition = advance) => { + return direction.sibling(universe, item).map(p => { + return traverse(p, transition); + }); + }; + const advance = (universe, item, direction, transition = advance) => { + const children = universe.property().children(item); + const result = direction.first(children); + return result.map(r => { + return traverse(r, transition); + }); + }; + const successors = [ + { + current: backtrack, + next: sidestep, + fallback: Optional.none() + }, + { + current: sidestep, + next: advance, + fallback: Optional.some(backtrack) + }, + { + current: advance, + next: advance, + fallback: Optional.some(sidestep) + } + ]; + const go = (universe, item, mode, direction, rules = successors) => { + const ruleOpt = find$1(rules, succ => { + return succ.current === mode; + }); + return ruleOpt.bind(rule => { + return rule.current(universe, item, direction, rule.next).orThunk(() => { + return rule.fallback.bind(fb => { + return go(universe, item, fb, direction); + }); + }); + }); + }; + + const left$1 = () => { + const sibling = (universe, item) => { + return universe.query().prevSibling(item); + }; + const first = children => { + return children.length > 0 ? Optional.some(children[children.length - 1]) : Optional.none(); + }; + return { + sibling, + first + }; + }; + const right$1 = () => { + const sibling = (universe, item) => { + return universe.query().nextSibling(item); + }; + const first = children => { + return children.length > 0 ? Optional.some(children[0]) : Optional.none(); + }; + return { + sibling, + first + }; + }; + const Walkers = { + left: left$1, + right: right$1 + }; + + const hone = (universe, item, predicate, mode, direction, isRoot) => { + const next = go(universe, item, mode, direction); + return next.bind(n => { + if (isRoot(n.item)) { + return Optional.none(); + } else { + return predicate(n.item) ? Optional.some(n.item) : hone(universe, n.item, predicate, n.mode, direction, isRoot); + } + }); + }; + const left = (universe, item, predicate, isRoot) => { + return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot); + }; + const right = (universe, item, predicate, isRoot) => { + return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot); + }; + + const isLeaf = universe => element => universe.property().children(element).length === 0; + const before$1 = (universe, item, isRoot) => { + return seekLeft$1(universe, item, isLeaf(universe), isRoot); + }; + const after$2 = (universe, item, isRoot) => { + return seekRight$1(universe, item, isLeaf(universe), isRoot); + }; + const seekLeft$1 = left; + const seekRight$1 = right; + + const universe = DomUniverse(); + const before = (element, isRoot) => { + return before$1(universe, element, isRoot); + }; + const after$1 = (element, isRoot) => { + return after$2(universe, element, isRoot); + }; + const seekLeft = (element, predicate, isRoot) => { + return seekLeft$1(universe, element, predicate, isRoot); + }; + const seekRight = (element, predicate, isRoot) => { + return seekRight$1(universe, element, predicate, isRoot); + }; + + const ancestor = (scope, predicate, isRoot) => ancestor$2(scope, predicate, isRoot).isSome(); + + const adt$2 = Adt.generate([ + { none: ['message'] }, + { success: [] }, + { failedUp: ['cell'] }, + { failedDown: ['cell'] } + ]); + const isOverlapping = (bridge, before, after) => { + const beforeBounds = bridge.getRect(before); + const afterBounds = bridge.getRect(after); + return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right; + }; + const isRow = elem => { + return closest$1(elem, 'tr'); + }; + const verify = (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) => { + return closest$1(after, 'td,th', isRoot).bind(afterCell => { + return closest$1(before, 'td,th', isRoot).map(beforeCell => { + if (!eq$1(afterCell, beforeCell)) { + return sharedOne(isRow, [ + afterCell, + beforeCell + ]).fold(() => { + return isOverlapping(bridge, beforeCell, afterCell) ? adt$2.success() : failure(beforeCell); + }, _sharedRow => { + return failure(beforeCell); + }); + } else { + return eq$1(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$2.none('in same cell'); + } + }); + }).getOr(adt$2.none('default')); + }; + const cata = (subject, onNone, onSuccess, onFailedUp, onFailedDown) => { + return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown); + }; + const BeforeAfter = { + ...adt$2, + verify, + cata + }; + + const inParent = (parent, children, element, index) => ({ + parent, + children, + element, + index + }); + const indexInParent = element => parent(element).bind(parent => { + const children = children$2(parent); + return indexOf(children, element).map(index => inParent(parent, children, element, index)); + }); + const indexOf = (elements, element) => findIndex(elements, curry(eq$1, element)); + + const isBr = isTag('br'); + const gatherer = (cand, gather, isRoot) => { + return gather(cand, isRoot).bind(target => { + return isText(target) && get$6(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Optional.some(target); + }); + }; + const handleBr = (isRoot, element, direction) => { + return direction.traverse(element).orThunk(() => { + return gatherer(element, direction.gather, isRoot); + }).map(direction.relative); + }; + const findBr = (element, offset) => { + return child$2(element, offset).filter(isBr).orThunk(() => { + return child$2(element, offset - 1).filter(isBr); + }); + }; + const handleParent = (isRoot, element, offset, direction) => { + return findBr(element, offset).bind(br => { + return direction.traverse(br).fold(() => { + return gatherer(br, direction.gather, isRoot).map(direction.relative); + }, adjacent => { + return indexInParent(adjacent).map(info => { + return Situ.on(info.parent, info.index); + }); + }); + }); + }; + const tryBr = (isRoot, element, offset, direction) => { + const target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction); + return target.map(tgt => { + return { + start: tgt, + finish: tgt + }; + }); + }; + const process = analysis => { + return BeforeAfter.cata(analysis, _message => { + return Optional.none(); + }, () => { + return Optional.none(); + }, cell => { + return Optional.some(point(cell, 0)); + }, cell => { + return Optional.some(point(cell, getEnd(cell))); + }); + }; + + const moveDown = (caret, amount) => { + return { + left: caret.left, + top: caret.top + amount, + right: caret.right, + bottom: caret.bottom + amount + }; + }; + const moveUp = (caret, amount) => { + return { + left: caret.left, + top: caret.top - amount, + right: caret.right, + bottom: caret.bottom - amount + }; + }; + const translate = (caret, xDelta, yDelta) => { + return { + left: caret.left + xDelta, + top: caret.top + yDelta, + right: caret.right + xDelta, + bottom: caret.bottom + yDelta + }; + }; + const getTop = caret => { + return caret.top; + }; + const getBottom = caret => { + return caret.bottom; + }; + + const getPartialBox = (bridge, element, offset) => { + if (offset >= 0 && offset < getEnd(element)) { + return bridge.getRangedRect(element, offset, element, offset + 1); + } else if (offset > 0) { + return bridge.getRangedRect(element, offset - 1, element, offset); + } + return Optional.none(); + }; + const toCaret = rect => ({ + left: rect.left, + top: rect.top, + right: rect.right, + bottom: rect.bottom + }); + const getElemBox = (bridge, element) => { + return Optional.some(bridge.getRect(element)); + }; + const getBoxAt = (bridge, element, offset) => { + if (isElement(element)) { + return getElemBox(bridge, element).map(toCaret); + } else if (isText(element)) { + return getPartialBox(bridge, element, offset).map(toCaret); + } else { + return Optional.none(); + } + }; + const getEntireBox = (bridge, element) => { + if (isElement(element)) { + return getElemBox(bridge, element).map(toCaret); + } else if (isText(element)) { + return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret); + } else { + return Optional.none(); + } + }; + + const JUMP_SIZE = 5; + const NUM_RETRIES = 100; + const adt$1 = Adt.generate([ + { none: [] }, + { retry: ['caret'] } + ]); + const isOutside = (caret, box) => { + return caret.left < box.left || Math.abs(box.right - caret.left) < 1 || caret.left > box.right; + }; + const inOutsideBlock = (bridge, element, caret) => { + return closest$2(element, isBlock).fold(never, cell => { + return getEntireBox(bridge, cell).exists(box => { + return isOutside(caret, box); + }); + }); + }; + const adjustDown = (bridge, element, guessBox, original, caret) => { + const lowerCaret = moveDown(caret, JUMP_SIZE); + if (Math.abs(guessBox.bottom - original.bottom) < 1) { + return adt$1.retry(lowerCaret); + } else if (guessBox.top > caret.bottom) { + return adt$1.retry(lowerCaret); + } else if (guessBox.top === caret.bottom) { + return adt$1.retry(moveDown(caret, 1)); + } else { + return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(lowerCaret, JUMP_SIZE, 0)) : adt$1.none(); + } + }; + const adjustUp = (bridge, element, guessBox, original, caret) => { + const higherCaret = moveUp(caret, JUMP_SIZE); + if (Math.abs(guessBox.top - original.top) < 1) { + return adt$1.retry(higherCaret); + } else if (guessBox.bottom < caret.top) { + return adt$1.retry(higherCaret); + } else if (guessBox.bottom === caret.top) { + return adt$1.retry(moveUp(caret, 1)); + } else { + return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(higherCaret, JUMP_SIZE, 0)) : adt$1.none(); + } + }; + const upMovement = { + point: getTop, + adjuster: adjustUp, + move: moveUp, + gather: before + }; + const downMovement = { + point: getBottom, + adjuster: adjustDown, + move: moveDown, + gather: after$1 + }; + const isAtTable = (bridge, x, y) => { + return bridge.elementFromPoint(x, y).filter(elm => { + return name(elm) === 'table'; + }).isSome(); + }; + const adjustForTable = (bridge, movement, original, caret, numRetries) => { + return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries); + }; + const adjustTil = (bridge, movement, original, caret, numRetries) => { + if (numRetries === 0) { + return Optional.some(caret); + } + if (isAtTable(bridge, caret.left, movement.point(caret))) { + return adjustForTable(bridge, movement, original, caret, numRetries - 1); + } + return bridge.situsFromPoint(caret.left, movement.point(caret)).bind(guess => { + return guess.start.fold(Optional.none, element => { + return getEntireBox(bridge, element).bind(guessBox => { + return movement.adjuster(bridge, element, guessBox, original, caret).fold(Optional.none, newCaret => { + return adjustTil(bridge, movement, original, newCaret, numRetries - 1); + }); + }).orThunk(() => { + return Optional.some(caret); + }); + }, Optional.none); + }); + }; + const checkScroll = (movement, adjusted, bridge) => { + if (movement.point(adjusted) > bridge.getInnerHeight()) { + return Optional.some(movement.point(adjusted) - bridge.getInnerHeight()); + } else if (movement.point(adjusted) < 0) { + return Optional.some(-movement.point(adjusted)); + } else { + return Optional.none(); + } + }; + const retry = (movement, bridge, caret) => { + const moved = movement.move(caret, JUMP_SIZE); + const adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved); + return checkScroll(movement, adjusted, bridge).fold(() => { + return bridge.situsFromPoint(adjusted.left, movement.point(adjusted)); + }, delta => { + bridge.scrollBy(0, delta); + return bridge.situsFromPoint(adjusted.left, movement.point(adjusted) - delta); + }); + }; + const Retries = { + tryUp: curry(retry, upMovement), + tryDown: curry(retry, downMovement), + getJumpSize: constant(JUMP_SIZE) + }; + + const MAX_RETRIES = 20; + const findSpot = (bridge, isRoot, direction) => { + return bridge.getSelection().bind(sel => { + return tryBr(isRoot, sel.finish, sel.foffset, direction).fold(() => { + return Optional.some(point(sel.finish, sel.foffset)); + }, brNeighbour => { + const range = bridge.fromSitus(brNeighbour); + const analysis = BeforeAfter.verify(bridge, sel.finish, sel.foffset, range.finish, range.foffset, direction.failure, isRoot); + return process(analysis); + }); + }); + }; + const scan = (bridge, isRoot, element, offset, direction, numRetries) => { + if (numRetries === 0) { + return Optional.none(); + } + return tryCursor(bridge, isRoot, element, offset, direction).bind(situs => { + const range = bridge.fromSitus(situs); + const analysis = BeforeAfter.verify(bridge, element, offset, range.finish, range.foffset, direction.failure, isRoot); + return BeforeAfter.cata(analysis, () => { + return Optional.none(); + }, () => { + return Optional.some(situs); + }, cell => { + if (eq$1(element, cell) && offset === 0) { + return tryAgain(bridge, element, offset, moveUp, direction); + } else { + return scan(bridge, isRoot, cell, 0, direction, numRetries - 1); + } + }, cell => { + if (eq$1(element, cell) && offset === getEnd(cell)) { + return tryAgain(bridge, element, offset, moveDown, direction); + } else { + return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1); + } + }); + }); + }; + const tryAgain = (bridge, element, offset, move, direction) => { + return getBoxAt(bridge, element, offset).bind(box => { + return tryAt(bridge, direction, move(box, Retries.getJumpSize())); + }); + }; + const tryAt = (bridge, direction, box) => { + const browser = detect$2().browser; + if (browser.isChromium() || browser.isSafari() || browser.isFirefox()) { + return direction.retry(bridge, box); + } else { + return Optional.none(); + } + }; + const tryCursor = (bridge, isRoot, element, offset, direction) => { + return getBoxAt(bridge, element, offset).bind(box => { + return tryAt(bridge, direction, box); + }); + }; + const handle$1 = (bridge, isRoot, direction) => { + return findSpot(bridge, isRoot, direction).bind(spot => { + return scan(bridge, isRoot, spot.element, spot.offset, direction, MAX_RETRIES).map(bridge.fromSitus); + }); + }; + + const inSameTable = (elem, table) => { + return ancestor(elem, e => { + return parent(e).exists(p => { + return eq$1(p, table); + }); + }); + }; + const simulate = (bridge, isRoot, direction, initial, anchor) => { + return closest$1(initial, 'td,th', isRoot).bind(start => { + return closest$1(start, 'table', isRoot).bind(table => { + if (!inSameTable(anchor, table)) { + return Optional.none(); + } + return handle$1(bridge, isRoot, direction).bind(range => { + return closest$1(range.finish, 'td,th', isRoot).map(finish => { + return { + start, + finish, + range + }; + }); + }); + }); + }); + }; + const navigate = (bridge, isRoot, direction, initial, anchor, precheck) => { + return precheck(initial, isRoot).orThunk(() => { + return simulate(bridge, isRoot, direction, initial, anchor).map(info => { + const range = info.range; + return Response.create(Optional.some(makeSitus(range.start, range.soffset, range.finish, range.foffset)), true); + }); + }); + }; + const firstUpCheck = (initial, isRoot) => { + return closest$1(initial, 'tr', isRoot).bind(startRow => { + return closest$1(startRow, 'table', isRoot).bind(table => { + const rows = descendants(table, 'tr'); + if (eq$1(startRow, rows[0])) { + return seekLeft(table, element => { + return last$1(element).isSome(); + }, isRoot).map(last => { + const lastOffset = getEnd(last); + return Response.create(Optional.some(makeSitus(last, lastOffset, last, lastOffset)), true); + }); + } else { + return Optional.none(); + } + }); + }); + }; + const lastDownCheck = (initial, isRoot) => { + return closest$1(initial, 'tr', isRoot).bind(startRow => { + return closest$1(startRow, 'table', isRoot).bind(table => { + const rows = descendants(table, 'tr'); + if (eq$1(startRow, rows[rows.length - 1])) { + return seekRight(table, element => { + return first(element).isSome(); + }, isRoot).map(first => { + return Response.create(Optional.some(makeSitus(first, 0, first, 0)), true); + }); + } else { + return Optional.none(); + } + }); + }); + }; + const select = (bridge, container, isRoot, direction, initial, anchor, selectRange) => { + return simulate(bridge, isRoot, direction, initial, anchor).bind(info => { + return detect(container, isRoot, info.start, info.finish, selectRange); + }); + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + const singleton = doRevoke => { + const subject = Cell(Optional.none()); + const revoke = () => subject.get().each(doRevoke); + const clear = () => { + revoke(); + subject.set(Optional.none()); + }; + const isSet = () => subject.get().isSome(); + const get = () => subject.get(); + const set = s => { + revoke(); + subject.set(Optional.some(s)); + }; + return { + clear, + isSet, + get, + set + }; + }; + const value = () => { + const subject = singleton(noop); + const on = f => subject.get().each(f); + return { + ...subject, + on + }; + }; + + const findCell = (target, isRoot) => closest$1(target, 'td,th', isRoot); + const MouseSelection = (bridge, container, isRoot, annotations) => { + const cursor = value(); + const clearstate = cursor.clear; + const applySelection = event => { + cursor.on(start => { + annotations.clearBeforeUpdate(container); + findCell(event.target, isRoot).each(finish => { + identify(start, finish, isRoot).each(cellSel => { + const boxes = cellSel.boxes.getOr([]); + if (boxes.length === 1) { + const singleCell = boxes[0]; + const isNonEditableCell = getRaw(singleCell) === 'false'; + const isCellClosestContentEditable = is(closest(event.target), singleCell, eq$1); + if (isNonEditableCell && isCellClosestContentEditable) { + annotations.selectRange(container, boxes, singleCell, singleCell); + bridge.selectContents(singleCell); + } + } else if (boxes.length > 1) { + annotations.selectRange(container, boxes, cellSel.start, cellSel.finish); + bridge.selectContents(finish); + } + }); + }); + }); + }; + const mousedown = event => { + annotations.clear(container); + findCell(event.target, isRoot).each(cursor.set); + }; + const mouseover = event => { + applySelection(event); + }; + const mouseup = event => { + applySelection(event); + clearstate(); + }; + return { + clearstate, + mousedown, + mouseover, + mouseup + }; + }; + + const down = { + traverse: nextSibling, + gather: after$1, + relative: Situ.before, + retry: Retries.tryDown, + failure: BeforeAfter.failedDown + }; + const up = { + traverse: prevSibling, + gather: before, + relative: Situ.before, + retry: Retries.tryUp, + failure: BeforeAfter.failedUp + }; + + const isKey = key => { + return keycode => { + return keycode === key; + }; + }; + const isUp = isKey(38); + const isDown = isKey(40); + const isNavigation = keycode => { + return keycode >= 37 && keycode <= 40; + }; + const ltr = { + isBackward: isKey(37), + isForward: isKey(39) + }; + const rtl = { + isBackward: isKey(39), + isForward: isKey(37) + }; + + const get$3 = _DOC => { + const doc = _DOC !== undefined ? _DOC.dom : document; + const x = doc.body.scrollLeft || doc.documentElement.scrollLeft; + const y = doc.body.scrollTop || doc.documentElement.scrollTop; + return SugarPosition(x, y); + }; + const by = (x, y, _DOC) => { + const doc = _DOC !== undefined ? _DOC.dom : document; + const win = doc.defaultView; + if (win) { + win.scrollBy(x, y); + } + }; + + const adt = Adt.generate([ + { domRange: ['rng'] }, + { + relative: [ + 'startSitu', + 'finishSitu' + ] + }, + { + exact: [ + 'start', + 'soffset', + 'finish', + 'foffset' + ] + } + ]); + const exactFromRange = simRange => adt.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset); + const getStart = selection => selection.match({ + domRange: rng => SugarElement.fromDom(rng.startContainer), + relative: (startSitu, _finishSitu) => Situ.getStart(startSitu), + exact: (start, _soffset, _finish, _foffset) => start + }); + const domRange = adt.domRange; + const relative = adt.relative; + const exact = adt.exact; + const getWin = selection => { + const start = getStart(selection); + return defaultView(start); + }; + const range = SimRange.create; + const SimSelection = { + domRange, + relative, + exact, + exactFromRange, + getWin, + range + }; + + const caretPositionFromPoint = (doc, x, y) => { + var _a, _b; + return Optional.from((_b = (_a = doc.dom).caretPositionFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y)).bind(pos => { + if (pos.offsetNode === null) { + return Optional.none(); + } + const r = doc.dom.createRange(); + r.setStart(pos.offsetNode, pos.offset); + r.collapse(); + return Optional.some(r); + }); + }; + const caretRangeFromPoint = (doc, x, y) => { + var _a, _b; + return Optional.from((_b = (_a = doc.dom).caretRangeFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y)); + }; + const availableBuscar = (() => { + if (document.caretPositionFromPoint) { + return caretPositionFromPoint; + } else if (document.caretRangeFromPoint) { + return caretRangeFromPoint; + } else { + return Optional.none; + } + })(); + const fromPoint = (win, x, y) => { + const doc = SugarElement.fromDom(win.document); + return availableBuscar(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset)); + }; + + const beforeSpecial = (element, offset) => { + const name$1 = name(element); + if ('input' === name$1) { + return Situ.after(element); + } else if (!contains$2([ + 'br', + 'img' + ], name$1)) { + return Situ.on(element, offset); + } else { + return offset === 0 ? Situ.before(element) : Situ.after(element); + } + }; + const preprocessRelative = (startSitu, finishSitu) => { + const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after); + const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after); + return SimSelection.relative(start, finish); + }; + const preprocessExact = (start, soffset, finish, foffset) => { + const startSitu = beforeSpecial(start, soffset); + const finishSitu = beforeSpecial(finish, foffset); + return SimSelection.relative(startSitu, finishSitu); + }; + + const makeRange = (start, soffset, finish, foffset) => { + const doc = owner(start); + const rng = doc.dom.createRange(); + rng.setStart(start.dom, soffset); + rng.setEnd(finish.dom, foffset); + return rng; + }; + const after = (start, soffset, finish, foffset) => { + const r = makeRange(start, soffset, finish, foffset); + const same = eq$1(start, finish) && soffset === foffset; + return r.collapsed && !same; + }; + + const getNativeSelection = win => Optional.from(win.getSelection()); + const doSetNativeRange = (win, rng) => { + getNativeSelection(win).each(selection => { + selection.removeAllRanges(); + selection.addRange(rng); + }); + }; + const doSetRange = (win, start, soffset, finish, foffset) => { + const rng = exactToNative(win, start, soffset, finish, foffset); + doSetNativeRange(win, rng); + }; + const setLegacyRtlRange = (win, selection, start, soffset, finish, foffset) => { + selection.collapse(start.dom, soffset); + selection.extend(finish.dom, foffset); + }; + const setRangeFromRelative = (win, relative) => diagnose(win, relative).match({ + ltr: (start, soffset, finish, foffset) => { + doSetRange(win, start, soffset, finish, foffset); + }, + rtl: (start, soffset, finish, foffset) => { + getNativeSelection(win).each(selection => { + if (selection.setBaseAndExtent) { + selection.setBaseAndExtent(start.dom, soffset, finish.dom, foffset); + } else if (selection.extend) { + try { + setLegacyRtlRange(win, selection, start, soffset, finish, foffset); + } catch (e) { + doSetRange(win, finish, foffset, start, soffset); + } + } else { + doSetRange(win, finish, foffset, start, soffset); + } + }); + } + }); + const setExact = (win, start, soffset, finish, foffset) => { + const relative = preprocessExact(start, soffset, finish, foffset); + setRangeFromRelative(win, relative); + }; + const setRelative = (win, startSitu, finishSitu) => { + const relative = preprocessRelative(startSitu, finishSitu); + setRangeFromRelative(win, relative); + }; + const readRange = selection => { + if (selection.rangeCount > 0) { + const firstRng = selection.getRangeAt(0); + const lastRng = selection.getRangeAt(selection.rangeCount - 1); + return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset)); + } else { + return Optional.none(); + } + }; + const doGetExact = selection => { + if (selection.anchorNode === null || selection.focusNode === null) { + return readRange(selection); + } else { + const anchor = SugarElement.fromDom(selection.anchorNode); + const focus = SugarElement.fromDom(selection.focusNode); + return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection); + } + }; + const setToElement = (win, element, selectNodeContents$1 = true) => { + const rngGetter = selectNodeContents$1 ? selectNodeContents : selectNode; + const rng = rngGetter(win, element); + doSetNativeRange(win, rng); + }; + const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact); + const get$2 = win => getExact(win).map(range => SimSelection.exact(range.start, range.soffset, range.finish, range.foffset)); + const getFirstRect = (win, selection) => { + const rng = asLtrRange(win, selection); + return getFirstRect$1(rng); + }; + const getAtPoint = (win, x, y) => fromPoint(win, x, y); + const clear = win => { + getNativeSelection(win).each(selection => selection.removeAllRanges()); + }; + + const WindowBridge = win => { + const elementFromPoint = (x, y) => { + return SugarElement.fromPoint(SugarElement.fromDom(win.document), x, y); + }; + const getRect = element => { + return element.dom.getBoundingClientRect(); + }; + const getRangedRect = (start, soffset, finish, foffset) => { + const sel = SimSelection.exact(start, soffset, finish, foffset); + return getFirstRect(win, sel); + }; + const getSelection = () => { + return get$2(win).map(exactAdt => { + return convertToRange(win, exactAdt); + }); + }; + const fromSitus = situs => { + const relative = SimSelection.relative(situs.start, situs.finish); + return convertToRange(win, relative); + }; + const situsFromPoint = (x, y) => { + return getAtPoint(win, x, y).map(exact => { + return Situs.create(exact.start, exact.soffset, exact.finish, exact.foffset); + }); + }; + const clearSelection = () => { + clear(win); + }; + const collapseSelection = (toStart = false) => { + get$2(win).each(sel => sel.fold(rng => rng.collapse(toStart), (startSitu, finishSitu) => { + const situ = toStart ? startSitu : finishSitu; + setRelative(win, situ, situ); + }, (start, soffset, finish, foffset) => { + const node = toStart ? start : finish; + const offset = toStart ? soffset : foffset; + setExact(win, node, offset, node, offset); + })); + }; + const selectNode = element => { + setToElement(win, element, false); + }; + const selectContents = element => { + setToElement(win, element); + }; + const setSelection = sel => { + setExact(win, sel.start, sel.soffset, sel.finish, sel.foffset); + }; + const setRelativeSelection = (start, finish) => { + setRelative(win, start, finish); + }; + const getInnerHeight = () => { + return win.innerHeight; + }; + const getScrollY = () => { + const pos = get$3(SugarElement.fromDom(win.document)); + return pos.top; + }; + const scrollBy = (x, y) => { + by(x, y, SugarElement.fromDom(win.document)); + }; + return { + elementFromPoint, + getRect, + getRangedRect, + getSelection, + fromSitus, + situsFromPoint, + clearSelection, + collapseSelection, + setSelection, + setRelativeSelection, + selectNode, + selectContents, + getInnerHeight, + getScrollY, + scrollBy + }; + }; + + const rc = (rows, cols) => ({ + rows, + cols + }); + const mouse = (win, container, isRoot, annotations) => { + const bridge = WindowBridge(win); + const handlers = MouseSelection(bridge, container, isRoot, annotations); + return { + clearstate: handlers.clearstate, + mousedown: handlers.mousedown, + mouseover: handlers.mouseover, + mouseup: handlers.mouseup + }; + }; + const keyboard = (win, container, isRoot, annotations) => { + const bridge = WindowBridge(win); + const clearToNavigate = () => { + annotations.clear(container); + return Optional.none(); + }; + const keydown = (event, start, soffset, finish, foffset, direction) => { + const realEvent = event.raw; + const keycode = realEvent.which; + const shiftKey = realEvent.shiftKey === true; + const handler = retrieve$1(container, annotations.selectedSelector).fold(() => { + if (isNavigation(keycode) && !shiftKey) { + annotations.clearBeforeUpdate(container); + } + if (isDown(keycode) && shiftKey) { + return curry(select, bridge, container, isRoot, down, finish, start, annotations.selectRange); + } else if (isUp(keycode) && shiftKey) { + return curry(select, bridge, container, isRoot, up, finish, start, annotations.selectRange); + } else if (isDown(keycode)) { + return curry(navigate, bridge, isRoot, down, finish, start, lastDownCheck); + } else if (isUp(keycode)) { + return curry(navigate, bridge, isRoot, up, finish, start, firstUpCheck); + } else { + return Optional.none; + } + }, selected => { + const update$1 = attempts => { + return () => { + const navigation = findMap(attempts, delta => { + return update(delta.rows, delta.cols, container, selected, annotations); + }); + return navigation.fold(() => { + return getEdges(container, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(edges => { + const relative = isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before; + bridge.setRelativeSelection(Situ.on(edges.first, 0), relative(edges.table)); + annotations.clear(container); + return Response.create(Optional.none(), true); + }); + }, _ => { + return Optional.some(Response.create(Optional.none(), true)); + }); + }; + }; + if (isDown(keycode) && shiftKey) { + return update$1([rc(+1, 0)]); + } else if (isUp(keycode) && shiftKey) { + return update$1([rc(-1, 0)]); + } else if (direction.isBackward(keycode) && shiftKey) { + return update$1([ + rc(0, -1), + rc(-1, 0) + ]); + } else if (direction.isForward(keycode) && shiftKey) { + return update$1([ + rc(0, +1), + rc(+1, 0) + ]); + } else if (isNavigation(keycode) && !shiftKey) { + return clearToNavigate; + } else { + return Optional.none; + } + }); + return handler(); + }; + const keyup = (event, start, soffset, finish, foffset) => { + return retrieve$1(container, annotations.selectedSelector).fold(() => { + const realEvent = event.raw; + const keycode = realEvent.which; + const shiftKey = realEvent.shiftKey === true; + if (!shiftKey) { + return Optional.none(); + } + if (isNavigation(keycode)) { + return sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange); + } else { + return Optional.none(); + } + }, Optional.none); + }; + return { + keydown, + keyup + }; + }; + const external = (win, container, isRoot, annotations) => { + const bridge = WindowBridge(win); + return (start, finish) => { + annotations.clearBeforeUpdate(container); + identify(start, finish, isRoot).each(cellSel => { + const boxes = cellSel.boxes.getOr([]); + annotations.selectRange(container, boxes, cellSel.start, cellSel.finish); + bridge.selectContents(finish); + bridge.collapseSelection(); + }); + }; + }; + + const read = (element, attr) => { + const value = get$b(element, attr); + return value === undefined || value === '' ? [] : value.split(' '); + }; + const add$2 = (element, attr, id) => { + const old = read(element, attr); + const nu = old.concat([id]); + set$2(element, attr, nu.join(' ')); + return true; + }; + const remove$4 = (element, attr, id) => { + const nu = filter$2(read(element, attr), v => v !== id); + if (nu.length > 0) { + set$2(element, attr, nu.join(' ')); + } else { + remove$7(element, attr); + } + return false; + }; + + const supports = element => element.dom.classList !== undefined; + const get$1 = element => read(element, 'class'); + const add$1 = (element, clazz) => add$2(element, 'class', clazz); + const remove$3 = (element, clazz) => remove$4(element, 'class', clazz); + + const add = (element, clazz) => { + if (supports(element)) { + element.dom.classList.add(clazz); + } else { + add$1(element, clazz); + } + }; + const cleanClass = element => { + const classList = supports(element) ? element.dom.classList : get$1(element); + if (classList.length === 0) { + remove$7(element, 'class'); + } + }; + const remove$2 = (element, clazz) => { + if (supports(element)) { + const classList = element.dom.classList; + classList.remove(clazz); + } else { + remove$3(element, clazz); + } + cleanClass(element); + }; + const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz); + + const remove$1 = (element, classes) => { + each$2(classes, x => { + remove$2(element, x); + }); + }; + + const addClass = clazz => element => { + add(element, clazz); + }; + const removeClasses = classes => element => { + remove$1(element, classes); + }; + + const byClass = ephemera => { + const addSelectionClass = addClass(ephemera.selected); + const removeSelectionClasses = removeClasses([ + ephemera.selected, + ephemera.lastSelected, + ephemera.firstSelected + ]); + const clear = container => { + const sels = descendants(container, ephemera.selectedSelector); + each$2(sels, removeSelectionClasses); + }; + const selectRange = (container, cells, start, finish) => { + clear(container); + each$2(cells, addSelectionClass); + add(start, ephemera.firstSelected); + add(finish, ephemera.lastSelected); + }; + return { + clearBeforeUpdate: clear, + clear, + selectRange, + selectedSelector: ephemera.selectedSelector, + firstSelectedSelector: ephemera.firstSelectedSelector, + lastSelectedSelector: ephemera.lastSelectedSelector + }; + }; + const byAttr = (ephemera, onSelection, onClear) => { + const removeSelectionAttributes = element => { + remove$7(element, ephemera.selected); + remove$7(element, ephemera.firstSelected); + remove$7(element, ephemera.lastSelected); + }; + const addSelectionAttribute = element => { + set$2(element, ephemera.selected, '1'); + }; + const clear = container => { + clearBeforeUpdate(container); + onClear(); + }; + const clearBeforeUpdate = container => { + const sels = descendants(container, `${ ephemera.selectedSelector },${ ephemera.firstSelectedSelector },${ ephemera.lastSelectedSelector }`); + each$2(sels, removeSelectionAttributes); + }; + const selectRange = (container, cells, start, finish) => { + clear(container); + each$2(cells, addSelectionAttribute); + set$2(start, ephemera.firstSelected, '1'); + set$2(finish, ephemera.lastSelected, '1'); + onSelection(cells, start, finish); + }; + return { + clearBeforeUpdate, + clear, + selectRange, + selectedSelector: ephemera.selectedSelector, + firstSelectedSelector: ephemera.firstSelectedSelector, + lastSelectedSelector: ephemera.lastSelectedSelector + }; + }; + const SelectionAnnotation = { + byClass, + byAttr + }; + + const fold = (subject, onNone, onMultiple, onSingle) => { + switch (subject.tag) { + case 'none': + return onNone(); + case 'single': + return onSingle(subject.element); + case 'multiple': + return onMultiple(subject.elements); + } + }; + const none = () => ({ tag: 'none' }); + const multiple = elements => ({ + tag: 'multiple', + elements + }); + const single = element => ({ + tag: 'single', + element + }); + + const Selections = (lazyRoot, getStart, selectedSelector) => { + const get = () => retrieve(lazyRoot(), selectedSelector).fold(() => getStart().fold(none, single), multiple); + return { get }; + }; + + const getUpOrLeftCells = (grid, selectedCells) => { + const upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row + 1); + const upDetails = toDetailList(upGrid); + return bind$2(upDetails, detail => { + const slicedCells = detail.cells.slice(0, selectedCells[selectedCells.length - 1].column + 1); + return map$1(slicedCells, cell => cell.element); + }); + }; + const getDownOrRightCells = (grid, selectedCells) => { + const downGrid = grid.slice(selectedCells[0].row + selectedCells[0].rowspan - 1, grid.length); + const downDetails = toDetailList(downGrid); + return bind$2(downDetails, detail => { + const slicedCells = detail.cells.slice(selectedCells[0].column + selectedCells[0].colspan - 1, detail.cells.length); + return map$1(slicedCells, cell => cell.element); + }); + }; + const getOtherCells = (table, target, generators) => { + const warehouse = Warehouse.fromTable(table); + const details = onCells(warehouse, target); + return details.map(selectedCells => { + const grid = toGrid(warehouse, generators, false); + const {rows} = extractGridDetails(grid); + const upOrLeftCells = getUpOrLeftCells(rows, selectedCells); + const downOrRightCells = getDownOrRightCells(rows, selectedCells); + return { + upOrLeftCells, + downOrRightCells + }; + }); + }; + + const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({ + target, + x, + y, + stop, + prevent, + kill, + raw + }); + const fromRawEvent$1 = rawEvent => { + const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target)); + const stop = () => rawEvent.stopPropagation(); + const prevent = () => rawEvent.preventDefault(); + const kill = compose(prevent, stop); + return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent); + }; + const handle = (filter, handler) => rawEvent => { + if (filter(rawEvent)) { + handler(fromRawEvent$1(rawEvent)); + } + }; + const binder = (element, event, filter, handler, useCapture) => { + const wrapped = handle(filter, handler); + element.dom.addEventListener(event, wrapped, useCapture); + return { unbind: curry(unbind, element, event, wrapped, useCapture) }; + }; + const bind$1 = (element, event, filter, handler) => binder(element, event, filter, handler, false); + const unbind = (element, event, handler, useCapture) => { + element.dom.removeEventListener(event, handler, useCapture); + }; + + const filter = always; + const bind = (element, event, handler) => bind$1(element, event, filter, handler); + const fromRawEvent = fromRawEvent$1; + + const hasInternalTarget = e => !has(SugarElement.fromDom(e.target), 'ephox-snooker-resizer-bar'); + const TableCellSelectionHandler = (editor, resizeHandler) => { + const cellSelection = Selections(() => SugarElement.fromDom(editor.getBody()), () => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)), ephemera.selectedSelector); + const onSelection = (cells, start, finish) => { + const tableOpt = table(start); + tableOpt.each(table => { + const cloneFormats = getTableCloneElements(editor); + const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), cloneFormats); + const selectedCells = getCellsFromSelection(editor); + const otherCells = getOtherCells(table, { selection: selectedCells }, generators); + fireTablaselectionChange(editor, cells, start, finish, otherCells); + }); + }; + const onClear = () => fireTablaselectionClear(editor); + const annotations = SelectionAnnotation.byAttr(ephemera, onSelection, onClear); + editor.on('init', _e => { + const win = editor.getWin(); + const body = getBody(editor); + const isRoot = getIsRoot(editor); + const syncSelection = () => { + const sel = editor.selection; + const start = SugarElement.fromDom(sel.getStart()); + const end = SugarElement.fromDom(sel.getEnd()); + const shared = sharedOne(table, [ + start, + end + ]); + shared.fold(() => annotations.clear(body), noop); + }; + const mouseHandlers = mouse(win, body, isRoot, annotations); + const keyHandlers = keyboard(win, body, isRoot, annotations); + const external$1 = external(win, body, isRoot, annotations); + const hasShiftKey = event => event.raw.shiftKey === true; + editor.on('TablaselectorChange', e => external$1(e.start, e.finish)); + const handleResponse = (event, response) => { + if (!hasShiftKey(event)) { + return; + } + if (response.kill) { + event.kill(); + } + response.selection.each(ns => { + const relative = SimSelection.relative(ns.start, ns.finish); + const rng = asLtrRange(win, relative); + editor.selection.setRng(rng); + }); + }; + const keyup = event => { + const wrappedEvent = fromRawEvent(event); + if (wrappedEvent.raw.shiftKey && isNavigation(wrappedEvent.raw.which)) { + const rng = editor.selection.getRng(); + const start = SugarElement.fromDom(rng.startContainer); + const end = SugarElement.fromDom(rng.endContainer); + keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(response => { + handleResponse(wrappedEvent, response); + }); + } + }; + const keydown = event => { + const wrappedEvent = fromRawEvent(event); + resizeHandler.hide(); + const rng = editor.selection.getRng(); + const start = SugarElement.fromDom(rng.startContainer); + const end = SugarElement.fromDom(rng.endContainer); + const direction = onDirection(ltr, rtl)(SugarElement.fromDom(editor.selection.getStart())); + keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(response => { + handleResponse(wrappedEvent, response); + }); + resizeHandler.show(); + }; + const isLeftMouse = raw => raw.button === 0; + const isLeftButtonPressed = raw => { + if (raw.buttons === undefined) { + return true; + } + return (raw.buttons & 1) !== 0; + }; + const dragStart = _e => { + mouseHandlers.clearstate(); + }; + const mouseDown = e => { + if (isLeftMouse(e) && hasInternalTarget(e)) { + mouseHandlers.mousedown(fromRawEvent(e)); + } + }; + const mouseOver = e => { + if (isLeftButtonPressed(e) && hasInternalTarget(e)) { + mouseHandlers.mouseover(fromRawEvent(e)); + } + }; + const mouseUp = e => { + if (isLeftMouse(e) && hasInternalTarget(e)) { + mouseHandlers.mouseup(fromRawEvent(e)); + } + }; + const getDoubleTap = () => { + const lastTarget = Cell(SugarElement.fromDom(body)); + const lastTimeStamp = Cell(0); + const touchEnd = t => { + const target = SugarElement.fromDom(t.target); + if (isTag('td')(target) || isTag('th')(target)) { + const lT = lastTarget.get(); + const lTS = lastTimeStamp.get(); + if (eq$1(lT, target) && t.timeStamp - lTS < 300) { + t.preventDefault(); + external$1(target, target); + } + } + lastTarget.set(target); + lastTimeStamp.set(t.timeStamp); + }; + return { touchEnd }; + }; + const doubleTap = getDoubleTap(); + editor.on('dragstart', dragStart); + editor.on('mousedown', mouseDown); + editor.on('mouseover', mouseOver); + editor.on('mouseup', mouseUp); + editor.on('touchend', doubleTap.touchEnd); + editor.on('keyup', keyup); + editor.on('keydown', keydown); + editor.on('NodeChange', syncSelection); + }); + editor.on('PreInit', () => { + editor.serializer.addTempAttr(ephemera.firstSelected); + editor.serializer.addTempAttr(ephemera.lastSelected); + }); + const clearSelectedCells = container => annotations.clear(SugarElement.fromDom(container)); + const getSelectedCells = () => fold(cellSelection.get(), constant([]), cells => { + return map$1(cells, cell => cell.dom); + }, cell => [cell.dom]); + return { + getSelectedCells, + clearSelectedCells + }; + }; + + const Event = fields => { + let handlers = []; + const bind = handler => { + if (handler === undefined) { + throw new Error('Event bind error: undefined handler'); + } + handlers.push(handler); + }; + const unbind = handler => { + handlers = filter$2(handlers, h => { + return h !== handler; + }); + }; + const trigger = (...args) => { + const event = {}; + each$2(fields, (name, i) => { + event[name] = args[i]; + }); + each$2(handlers, handler => { + handler(event); + }); + }; + return { + bind, + unbind, + trigger + }; + }; + + const create$1 = typeDefs => { + const registry = map(typeDefs, event => { + return { + bind: event.bind, + unbind: event.unbind + }; + }); + const trigger = map(typeDefs, event => { + return event.trigger; + }); + return { + registry, + trigger + }; + }; + + const last = (fn, rate) => { + let timer = null; + const cancel = () => { + if (!isNull(timer)) { + clearTimeout(timer); + timer = null; + } + }; + const throttle = (...args) => { + cancel(); + timer = setTimeout(() => { + timer = null; + fn.apply(null, args); + }, rate); + }; + return { + cancel, + throttle + }; + }; + + const sort = arr => { + return arr.slice(0).sort(); + }; + const reqMessage = (required, keys) => { + throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.'); + }; + const unsuppMessage = unsupported => { + throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', ')); + }; + const validateStrArr = (label, array) => { + if (!isArray(array)) { + throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.'); + } + each$2(array, a => { + if (!isString(a)) { + throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.'); + } + }); + }; + const invalidTypeMessage = (incorrect, type) => { + throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.'); + }; + const checkDupes = everything => { + const sorted = sort(everything); + const dupe = find$1(sorted, (s, i) => { + return i < sorted.length - 1 && s === sorted[i + 1]; + }); + dupe.each(d => { + throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].'); + }); + }; + + const base = (handleUnsupported, required) => { + return baseWith(handleUnsupported, required, { + validate: isFunction, + label: 'function' + }); + }; + const baseWith = (handleUnsupported, required, pred) => { + if (required.length === 0) { + throw new Error('You must specify at least one required field.'); + } + validateStrArr('required', required); + checkDupes(required); + return obj => { + const keys$1 = keys(obj); + const allReqd = forall(required, req => { + return contains$2(keys$1, req); + }); + if (!allReqd) { + reqMessage(required, keys$1); + } + handleUnsupported(required, keys$1); + const invalidKeys = filter$2(required, key => { + return !pred.validate(obj[key], key); + }); + if (invalidKeys.length > 0) { + invalidTypeMessage(invalidKeys, pred.label); + } + return obj; + }; + }; + const handleExact = (required, keys) => { + const unsupported = filter$2(keys, key => { + return !contains$2(required, key); + }); + if (unsupported.length > 0) { + unsuppMessage(unsupported); + } + }; + const exactly = required => base(handleExact, required); + + const DragMode = exactly([ + 'compare', + 'extract', + 'mutate', + 'sink' + ]); + const DragSink = exactly([ + 'element', + 'start', + 'stop', + 'destroy' + ]); + const DragApi = exactly([ + 'forceDrop', + 'drop', + 'move', + 'delayDrop' + ]); + + const InDrag = () => { + let previous = Optional.none(); + const reset = () => { + previous = Optional.none(); + }; + const update = (mode, nu) => { + const result = previous.map(old => { + return mode.compare(old, nu); + }); + previous = Optional.some(nu); + return result; + }; + const onEvent = (event, mode) => { + const dataOption = mode.extract(event); + dataOption.each(data => { + const offset = update(mode, data); + offset.each(d => { + events.trigger.move(d); + }); + }); + }; + const events = create$1({ move: Event(['info']) }); + return { + onEvent, + reset, + events: events.registry + }; + }; + + const NoDrag = () => { + const events = create$1({ move: Event(['info']) }); + return { + onEvent: noop, + reset: noop, + events: events.registry + }; + }; + + const Movement = () => { + const noDragState = NoDrag(); + const inDragState = InDrag(); + let dragState = noDragState; + const on = () => { + dragState.reset(); + dragState = inDragState; + }; + const off = () => { + dragState.reset(); + dragState = noDragState; + }; + const onEvent = (event, mode) => { + dragState.onEvent(event, mode); + }; + const isOn = () => { + return dragState === inDragState; + }; + return { + on, + off, + isOn, + onEvent, + events: inDragState.events + }; + }; + + const setup = (mutation, mode, settings) => { + let active = false; + const events = create$1({ + start: Event([]), + stop: Event([]) + }); + const movement = Movement(); + const drop = () => { + sink.stop(); + if (movement.isOn()) { + movement.off(); + events.trigger.stop(); + } + }; + const throttledDrop = last(drop, 200); + const go = parent => { + sink.start(parent); + movement.on(); + events.trigger.start(); + }; + const mousemove = event => { + throttledDrop.cancel(); + movement.onEvent(event, mode); + }; + movement.events.move.bind(event => { + mode.mutate(mutation, event.info); + }); + const on = () => { + active = true; + }; + const off = () => { + active = false; + }; + const runIfActive = f => { + return (...args) => { + if (active) { + f.apply(null, args); + } + }; + }; + const sink = mode.sink(DragApi({ + forceDrop: drop, + drop: runIfActive(drop), + move: runIfActive(mousemove), + delayDrop: runIfActive(throttledDrop.throttle) + }), settings); + const destroy = () => { + sink.destroy(); + }; + return { + element: sink.element, + go, + on, + off, + destroy, + events: events.registry + }; + }; + + const css = namespace => { + const dashNamespace = namespace.replace(/\./g, '-'); + const resolve = str => { + return dashNamespace + '-' + str; + }; + return { resolve }; + }; + + const styles$1 = css('ephox-dragster'); + const resolve$1 = styles$1.resolve; + + const Blocker = options => { + const settings = { + layerClass: resolve$1('blocker'), + ...options + }; + const div = SugarElement.fromTag('div'); + set$2(div, 'role', 'presentation'); + setAll(div, { + position: 'fixed', + left: '0px', + top: '0px', + width: '100%', + height: '100%' + }); + add(div, resolve$1('blocker')); + add(div, settings.layerClass); + const element = constant(div); + const destroy = () => { + remove$6(div); + }; + return { + element, + destroy + }; + }; + + const compare = (old, nu) => { + return SugarPosition(nu.left - old.left, nu.top - old.top); + }; + const extract = event => { + return Optional.some(SugarPosition(event.x, event.y)); + }; + const mutate = (mutation, info) => { + mutation.mutate(info.left, info.top); + }; + const sink = (dragApi, settings) => { + const blocker = Blocker(settings); + const mdown = bind(blocker.element(), 'mousedown', dragApi.forceDrop); + const mup = bind(blocker.element(), 'mouseup', dragApi.drop); + const mmove = bind(blocker.element(), 'mousemove', dragApi.move); + const mout = bind(blocker.element(), 'mouseout', dragApi.delayDrop); + const destroy = () => { + blocker.destroy(); + mup.unbind(); + mmove.unbind(); + mout.unbind(); + mdown.unbind(); + }; + const start = parent => { + append$1(parent, blocker.element()); + }; + const stop = () => { + remove$6(blocker.element()); + }; + return DragSink({ + element: blocker.element, + start, + stop, + destroy + }); + }; + var MouseDrag = DragMode({ + compare, + extract, + sink, + mutate + }); + + const transform = (mutation, settings = {}) => { + var _a; + const mode = (_a = settings.mode) !== null && _a !== void 0 ? _a : MouseDrag; + return setup(mutation, mode, settings); + }; + + const styles = css('ephox-snooker'); + const resolve = styles.resolve; + + const Mutation = () => { + const events = create$1({ + drag: Event([ + 'xDelta', + 'yDelta' + ]) + }); + const mutate = (x, y) => { + events.trigger.drag(x, y); + }; + return { + mutate, + events: events.registry + }; + }; + + const BarMutation = () => { + const events = create$1({ + drag: Event([ + 'xDelta', + 'yDelta', + 'target' + ]) + }); + let target = Optional.none(); + const delegate = Mutation(); + delegate.events.drag.bind(event => { + target.each(t => { + events.trigger.drag(event.xDelta, event.yDelta, t); + }); + }); + const assign = t => { + target = Optional.some(t); + }; + const get = () => { + return target; + }; + return { + assign, + get, + mutate: delegate.mutate, + events: events.registry + }; + }; + + const col = (column, x, y, w, h) => { + const bar = SugarElement.fromTag('div'); + setAll(bar, { + position: 'absolute', + left: x - w / 2 + 'px', + top: y + 'px', + height: h + 'px', + width: w + 'px' + }); + setAll$1(bar, { + 'data-column': column, + 'role': 'presentation' + }); + return bar; + }; + const row = (r, x, y, w, h) => { + const bar = SugarElement.fromTag('div'); + setAll(bar, { + position: 'absolute', + left: x + 'px', + top: y - h / 2 + 'px', + height: h + 'px', + width: w + 'px' + }); + setAll$1(bar, { + 'data-row': r, + 'role': 'presentation' + }); + return bar; + }; + + const resizeBar = resolve('resizer-bar'); + const resizeRowBar = resolve('resizer-rows'); + const resizeColBar = resolve('resizer-cols'); + const BAR_THICKNESS = 7; + const resizableRows = (warehouse, isResizable) => bind$2(warehouse.all, (row, i) => isResizable(row.element) ? [i] : []); + const resizableColumns = (warehouse, isResizable) => { + const resizableCols = []; + range$1(warehouse.grid.columns, index => { + const colElmOpt = Warehouse.getColumnAt(warehouse, index).map(col => col.element); + if (colElmOpt.forall(isResizable)) { + resizableCols.push(index); + } + }); + return filter$2(resizableCols, colIndex => { + const columnCells = Warehouse.filterItems(warehouse, cell => cell.column === colIndex); + return forall(columnCells, cell => isResizable(cell.element)); + }); + }; + const destroy = wire => { + const previous = descendants(wire.parent(), '.' + resizeBar); + each$2(previous, remove$6); + }; + const drawBar = (wire, positions, create) => { + const origin = wire.origin(); + each$2(positions, cpOption => { + cpOption.each(cp => { + const bar = create(origin, cp); + add(bar, resizeBar); + append$1(wire.parent(), bar); + }); + }); + }; + const refreshCol = (wire, colPositions, position, tableHeight) => { + drawBar(wire, colPositions, (origin, cp) => { + const colBar = col(cp.col, cp.x - origin.left, position.top - origin.top, BAR_THICKNESS, tableHeight); + add(colBar, resizeColBar); + return colBar; + }); + }; + const refreshRow = (wire, rowPositions, position, tableWidth) => { + drawBar(wire, rowPositions, (origin, cp) => { + const rowBar = row(cp.row, position.left - origin.left, cp.y - origin.top, tableWidth, BAR_THICKNESS); + add(rowBar, resizeRowBar); + return rowBar; + }); + }; + const refreshGrid = (warhouse, wire, table, rows, cols) => { + const position = absolute(table); + const isResizable = wire.isResizable; + const rowPositions = rows.length > 0 ? height.positions(rows, table) : []; + const resizableRowBars = rowPositions.length > 0 ? resizableRows(warhouse, isResizable) : []; + const resizableRowPositions = filter$2(rowPositions, (_pos, i) => exists(resizableRowBars, barIndex => i === barIndex)); + refreshRow(wire, resizableRowPositions, position, getOuter$2(table)); + const colPositions = cols.length > 0 ? width.positions(cols, table) : []; + const resizableColBars = colPositions.length > 0 ? resizableColumns(warhouse, isResizable) : []; + const resizableColPositions = filter$2(colPositions, (_pos, i) => exists(resizableColBars, barIndex => i === barIndex)); + refreshCol(wire, resizableColPositions, position, getOuter$1(table)); + }; + const refresh = (wire, table) => { + destroy(wire); + if (wire.isResizable(table)) { + const warehouse = Warehouse.fromTable(table); + const rows$1 = rows(warehouse); + const cols = columns(warehouse); + refreshGrid(warehouse, wire, table, rows$1, cols); + } + }; + const each = (wire, f) => { + const bars = descendants(wire.parent(), '.' + resizeBar); + each$2(bars, f); + }; + const hide = wire => { + each(wire, bar => { + set$1(bar, 'display', 'none'); + }); + }; + const show = wire => { + each(wire, bar => { + set$1(bar, 'display', 'block'); + }); + }; + const isRowBar = element => { + return has(element, resizeRowBar); + }; + const isColBar = element => { + return has(element, resizeColBar); + }; + + const resizeBarDragging = resolve('resizer-bar-dragging'); + const BarManager = wire => { + const mutation = BarMutation(); + const resizing = transform(mutation, {}); + let hoverTable = Optional.none(); + const getResizer = (element, type) => { + return Optional.from(get$b(element, type)); + }; + mutation.events.drag.bind(event => { + getResizer(event.target, 'data-row').each(_dataRow => { + const currentRow = getCssValue(event.target, 'top'); + set$1(event.target, 'top', currentRow + event.yDelta + 'px'); + }); + getResizer(event.target, 'data-column').each(_dataCol => { + const currentCol = getCssValue(event.target, 'left'); + set$1(event.target, 'left', currentCol + event.xDelta + 'px'); + }); + }); + const getDelta = (target, dir) => { + const newX = getCssValue(target, dir); + const oldX = getAttrValue(target, 'data-initial-' + dir, 0); + return newX - oldX; + }; + resizing.events.stop.bind(() => { + mutation.get().each(target => { + hoverTable.each(table => { + getResizer(target, 'data-row').each(row => { + const delta = getDelta(target, 'top'); + remove$7(target, 'data-initial-top'); + events.trigger.adjustHeight(table, delta, parseInt(row, 10)); + }); + getResizer(target, 'data-column').each(column => { + const delta = getDelta(target, 'left'); + remove$7(target, 'data-initial-left'); + events.trigger.adjustWidth(table, delta, parseInt(column, 10)); + }); + refresh(wire, table); + }); + }); + }); + const handler = (target, dir) => { + events.trigger.startAdjust(); + mutation.assign(target); + set$2(target, 'data-initial-' + dir, getCssValue(target, dir)); + add(target, resizeBarDragging); + set$1(target, 'opacity', '0.2'); + resizing.go(wire.parent()); + }; + const mousedown = bind(wire.parent(), 'mousedown', event => { + if (isRowBar(event.target)) { + handler(event.target, 'top'); + } + if (isColBar(event.target)) { + handler(event.target, 'left'); + } + }); + const isRoot = e => { + return eq$1(e, wire.view()); + }; + const findClosestEditableTable = target => closest$1(target, 'table', isRoot).filter(isEditable$1); + const mouseover = bind(wire.view(), 'mouseover', event => { + findClosestEditableTable(event.target).fold(() => { + if (inBody(event.target)) { + destroy(wire); + } + }, table => { + hoverTable = Optional.some(table); + refresh(wire, table); + }); + }); + const destroy$1 = () => { + mousedown.unbind(); + mouseover.unbind(); + resizing.destroy(); + destroy(wire); + }; + const refresh$1 = tbl => { + refresh(wire, tbl); + }; + const events = create$1({ + adjustHeight: Event([ + 'table', + 'delta', + 'row' + ]), + adjustWidth: Event([ + 'table', + 'delta', + 'column' + ]), + startAdjust: Event([]) + }); + return { + destroy: destroy$1, + refresh: refresh$1, + on: resizing.on, + off: resizing.off, + hideBars: curry(hide, wire), + showBars: curry(show, wire), + events: events.registry + }; + }; + + const create = (wire, resizing, lazySizing) => { + const hdirection = height; + const vdirection = width; + const manager = BarManager(wire); + const events = create$1({ + beforeResize: Event([ + 'table', + 'type' + ]), + afterResize: Event([ + 'table', + 'type' + ]), + startDrag: Event([]) + }); + manager.events.adjustHeight.bind(event => { + const table = event.table; + events.trigger.beforeResize(table, 'row'); + const delta = hdirection.delta(event.delta, table); + adjustHeight(table, delta, event.row, hdirection); + events.trigger.afterResize(table, 'row'); + }); + manager.events.startAdjust.bind(_event => { + events.trigger.startDrag(); + }); + manager.events.adjustWidth.bind(event => { + const table = event.table; + events.trigger.beforeResize(table, 'col'); + const delta = vdirection.delta(event.delta, table); + const Tablasize = lazySizing(table); + adjustWidth(table, delta, event.column, resizing, Tablasize); + events.trigger.afterResize(table, 'col'); + }); + return { + on: manager.on, + off: manager.off, + refreshBars: manager.refresh, + hideBars: manager.hideBars, + showBars: manager.showBars, + destroy: manager.destroy, + events: events.registry + }; + }; + const TableResize = { create }; + + const only = (element, isResizable) => { + const parent = isDocument(element) ? documentElement(element) : element; + return { + parent: constant(parent), + view: constant(element), + origin: constant(SugarPosition(0, 0)), + isResizable + }; + }; + const detached = (editable, chrome, isResizable) => { + const origin = () => absolute(chrome); + return { + parent: constant(chrome), + view: constant(editable), + origin, + isResizable + }; + }; + const body = (editable, chrome, isResizable) => { + return { + parent: constant(chrome), + view: constant(editable), + origin: constant(SugarPosition(0, 0)), + isResizable + }; + }; + const ResizeWire = { + only, + detached, + body + }; + + const createContainer = () => { + const container = SugarElement.fromTag('div'); + setAll(container, { + position: 'static', + height: '0', + width: '0', + padding: '0', + margin: '0', + border: '0' + }); + append$1(body$1(), container); + return container; + }; + const get = (editor, isResizable) => { + return editor.inline ? ResizeWire.body(SugarElement.fromDom(editor.getBody()), createContainer(), isResizable) : ResizeWire.only(SugarElement.fromDom(editor.getDoc()), isResizable); + }; + const remove = (editor, wire) => { + if (editor.inline) { + remove$6(wire.parent()); + } + }; + + const isTable = node => isNonNullable(node) && node.nodeName === 'TABLE'; + const barResizerPrefix = 'bar-'; + const isResizable = elm => get$b(elm, 'data-mce-resize') !== 'false'; + const syncPixels = table => { + const warehouse = Warehouse.fromTable(table); + if (!Warehouse.hasColumns(warehouse)) { + each$2(cells$1(table), cell => { + const computedWidth = get$a(cell, 'width'); + set$1(cell, 'width', computedWidth); + remove$7(cell, 'width'); + }); + } + }; + const TableResizeHandler = editor => { + const selectionRng = value(); + const tableResize = value(); + const resizeWire = value(); + let startW; + let startRawW; + const lazySizing = table => get$5(editor, table); + const lazyResizingBehaviour = () => isPreserveTableColumnResizing(editor) ? preserveTable() : resizeTable(); + const getNumColumns = table => getGridSize(table).columns; + const afterCornerResize = (table, origin, width) => { + const isRightEdgeResize = endsWith(origin, 'e'); + if (startRawW === '') { + convertToPercentSize(table); + } + if (width !== startW && startRawW !== '') { + set$1(table, 'width', startRawW); + const resizing = lazyResizingBehaviour(); + const Tablasize = lazySizing(table); + const col = isPreserveTableColumnResizing(editor) || isRightEdgeResize ? getNumColumns(table) - 1 : 0; + adjustWidth(table, width - startW, col, resizing, Tablasize); + } else if (isPercentage$1(startRawW)) { + const percentW = parseFloat(startRawW.replace('%', '')); + const targetPercentW = width * percentW / startW; + set$1(table, 'width', targetPercentW + '%'); + } + if (isPixel(startRawW)) { + syncPixels(table); + } + }; + const destroy = () => { + tableResize.on(sz => { + sz.destroy(); + }); + resizeWire.on(w => { + remove(editor, w); + }); + }; + editor.on('init', () => { + const rawWire = get(editor, isResizable); + resizeWire.set(rawWire); + if (hasTableObjectResizing(editor) && hasTableResizeBars(editor)) { + const resizing = lazyResizingBehaviour(); + const sz = TableResize.create(rawWire, resizing, lazySizing); + sz.on(); + sz.events.startDrag.bind(_event => { + selectionRng.set(editor.selection.getRng()); + }); + sz.events.beforeResize.bind(event => { + const rawTable = event.table.dom; + fireObjectResizeStart(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type); + }); + sz.events.afterResize.bind(event => { + const table = event.table; + const rawTable = table.dom; + removeDataStyle(table); + selectionRng.on(rng => { + editor.selection.setRng(rng); + editor.focus(); + }); + fireObjectResized(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type); + editor.undoManager.add(); + }); + tableResize.set(sz); + } + }); + editor.on('ObjectResizeStart', e => { + const targetElm = e.target; + if (isTable(targetElm)) { + const table = SugarElement.fromDom(targetElm); + each$2(editor.dom.select('.mce-clonedresizable'), clone => { + editor.dom.addClass(clone, 'mce-' + getTableColumnResizingBehaviour(editor) + '-columns'); + }); + if (!isPixelSizing(table) && isTablePixelsForced(editor)) { + convertToPixelSize(table); + } else if (!isPercentSizing(table) && isTablePercentagesForced(editor)) { + convertToPercentSize(table); + } + if (isNoneSizing(table) && startsWith(e.origin, barResizerPrefix)) { + convertToPercentSize(table); + } + startW = e.width; + startRawW = isTableResponsiveForced(editor) ? '' : getRawWidth(editor, targetElm).getOr(''); + } + }); + editor.on('ObjectResized', e => { + const targetElm = e.target; + if (isTable(targetElm)) { + const table = SugarElement.fromDom(targetElm); + const origin = e.origin; + if (startsWith(origin, 'corner-')) { + afterCornerResize(table, origin, e.width); + } + removeDataStyle(table); + fireTableModified(editor, table.dom, styleModified); + } + }); + editor.on('SwitchMode', () => { + tableResize.on(resize => { + if (editor.mode.isReadOnly()) { + resize.hideBars(); + } else { + resize.showBars(); + } + }); + }); + editor.on('remove', () => { + destroy(); + }); + const refresh = table => { + tableResize.on(resize => resize.refreshBars(SugarElement.fromDom(table))); + }; + const hide = () => { + tableResize.on(resize => resize.hideBars()); + }; + const show = () => { + tableResize.on(resize => resize.showBars()); + }; + return { + refresh, + hide, + show + }; + }; + + const setupTable = editor => { + Registro(editor); + const resizeHandler = TableResizeHandler(editor); + const cellSelectionHandler = TableCellSelectionHandler(editor, resizeHandler); + const actions = TableActions(editor, resizeHandler, cellSelectionHandler); + RegistroCommands(editor, actions); + RegistroQueryCommands(editor, actions); + RegistroEvents(editor, actions); + return { + getSelectedCells: cellSelectionHandler.getSelectedCells, + clearSelectedCells: cellSelectionHandler.clearSelectedCells + }; + }; + + const DomModel = editor => { + const table = setupTable(editor); + return { table }; + }; + var Model = () => { + global$1.add('dom', DomModel); + }; + + Model(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.min.js b/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.min.js new file mode 100644 index 0000000..b518603 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/models/dom/model.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.ModelManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var o,n,r,s})(t)===e,o=e=>t=>typeof t===e,n=e=>t=>e===t,r=t("string"),s=t("object"),l=t("array"),a=n(null),c=o("boolean"),i=n(void 0),m=e=>!(e=>null==e)(e),d=o("function"),u=o("number"),f=()=>{},g=e=>()=>e,h=e=>e,p=(e,t)=>e===t;function w(e,...t){return(...o)=>{const n=t.concat(o);return e.apply(null,n)}}const b=e=>t=>!e(t),v=e=>e(),y=g(!1),x=g(!0);class C{constructor(e,t){this.tag=e,this.value=t}static some(e){return new C(!0,e)}static none(){return C.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?C.some(e(this.value)):C.none()}bind(e){return this.tag?e(this.value):C.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:C.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return m(e)?C.some(e):C.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}C.singletonNone=new C(!1);const S=Array.prototype.slice,T=Array.prototype.indexOf,R=Array.prototype.push,D=(e,t)=>{return o=e,n=t,T.call(o,n)>-1;var o,n},O=(e,t)=>{for(let o=0,n=e.length;o{const o=[];for(let n=0;n{const o=e.length,n=new Array(o);for(let r=0;r{for(let o=0,n=e.length;o{const o=[],n=[];for(let r=0,s=e.length;r{const o=[];for(let n=0,r=e.length;n(((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(e,((e,n)=>{o=t(o,e,n)})),o),W=(e,t,o)=>(N(e,((e,n)=>{o=t(o,e,n)})),o),L=(e,t)=>((e,t,o)=>{for(let n=0,r=e.length;n{for(let o=0,n=e.length;o{const t=[];for(let o=0,n=e.length;oM(E(e,t)),I=(e,t)=>{for(let o=0,n=e.length;o{const o={};for(let n=0,r=e.length;nt>=0&&tF(e,0),q=e=>F(e,e.length-1),V=(e,t)=>{for(let o=0;o{const o=$(e);for(let n=0,r=o.length;nY(e,((e,o)=>({k:o,v:t(e,o)}))),Y=(e,t)=>{const o={};return G(e,((e,n)=>{const r=t(e,n);o[r.k]=r.v})),o},J=(e,t)=>{const o=[];return G(e,((e,n)=>{o.push(t(e,n))})),o},Q=e=>J(e,h),X=(e,t)=>U.call(e,t);"undefined"!=typeof window?window:Function("return this;")();const Z=e=>e.dom.nodeName.toLowerCase(),ee=e=>e.dom.nodeType,te=e=>t=>ee(t)===e,oe=e=>8===ee(e)||"#comment"===Z(e),ne=te(1),re=te(3),se=te(9),le=te(11),ae=e=>t=>ne(t)&&Z(t)===e,ce=(e,t,o)=>{if(!(r(o)||c(o)||u(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},ie=(e,t,o)=>{ce(e.dom,t,o)},me=(e,t)=>{const o=e.dom;G(t,((e,t)=>{ce(o,t,e)}))},de=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},ue=(e,t)=>C.from(de(e,t)),fe=(e,t)=>{e.dom.removeAttribute(t)},ge=e=>W(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),he=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},pe={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return he(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return he(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return he(o)},fromDom:he,fromPoint:(e,t,o)=>C.from(e.dom.elementFromPoint(t,o)).map(he)},we=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},be=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,ve=(e,t)=>{const o=void 0===t?document:t.dom;return be(o)?C.none():C.from(o.querySelector(e)).map(pe.fromDom)},ye=(e,t)=>e.dom===t.dom,xe=(e,t)=>{const o=e.dom,n=t.dom;return o!==n&&o.contains(n)},Ce=we,Se=e=>pe.fromDom(e.dom.ownerDocument),Te=e=>se(e)?e:Se(e),Re=e=>C.from(e.dom.parentNode).map(pe.fromDom),De=(e,t)=>{const o=d(t)?t:y;let n=e.dom;const r=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=pe.fromDom(e);if(r.push(t),!0===o(t))break;n=e}return r},Oe=e=>C.from(e.dom.previousSibling).map(pe.fromDom),ke=e=>C.from(e.dom.nextSibling).map(pe.fromDom),Ee=e=>E(e.dom.childNodes,pe.fromDom),Ne=(e,t)=>{const o=e.dom.childNodes;return C.from(o[t]).map(pe.fromDom)},Be=(e,t)=>{Re(e).each((o=>{o.dom.insertBefore(t.dom,e.dom)}))},ze=(e,t)=>{ke(e).fold((()=>{Re(e).each((e=>{We(e,t)}))}),(e=>{Be(e,t)}))},Ae=(e,t)=>{const o=(e=>Ne(e,0))(e);o.fold((()=>{We(e,t)}),(o=>{e.dom.insertBefore(t.dom,o.dom)}))},We=(e,t)=>{e.dom.appendChild(t.dom)},Le=(e,t)=>{Be(e,t),We(t,e)},_e=(e,t)=>{N(t,((o,n)=>{const r=0===n?e:t[n-1];ze(r,o)}))},Me=(e,t)=>{N(t,(t=>{We(e,t)}))},je=e=>{e.dom.textContent="",N(Ee(e),(e=>{Ie(e)}))},Ie=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Pe=e=>{const t=Ee(e);t.length>0&&_e(e,t),Ie(e)},Fe=(e,t)=>pe.fromDom(e.dom.cloneNode(t)),He=e=>Fe(e,!1),qe=e=>Fe(e,!0),Ve=(e,t)=>{const o=pe.fromTag(t),n=ge(e);return me(o,n),o},$e=["tfoot","thead","tbody","colgroup"],Ue=(e,t,o)=>({element:e,rowspan:t,colspan:o}),Ge=(e,t,o)=>({element:e,cells:t,section:o}),Ke=(e,t,o)=>({element:e,isNew:t,isLocked:o}),Ye=(e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}),Je=d(Element.prototype.attachShadow)&&d(Node.prototype.getRootNode),Qe=g(Je),Xe=Je?e=>pe.fromDom(e.dom.getRootNode()):Te,Ze=e=>pe.fromDom(e.dom.host),et=e=>{const t=re(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=Xe(e);return le(o=t)&&m(o.dom.host)?C.some(t):C.none();var o})(pe.fromDom(t)).fold((()=>o.body.contains(t)),(n=et,r=Ze,e=>n(r(e))));var n,r},tt=e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return pe.fromDom(t)},ot=(e,t)=>{let o=[];return N(Ee(e),(e=>{t(e)&&(o=o.concat([e])),o=o.concat(ot(e,t))})),o},nt=(e,t,o)=>((e,o,n)=>z(De(e,n),(e=>we(e,t))))(e,0,o),rt=(e,t)=>((e,o)=>z(Ee(e),(e=>we(e,t))))(e),st=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return be(o)?[]:E(o.querySelectorAll(e),pe.fromDom)})(t,e);var lt=(e,t,o,n,r)=>e(o,n)?C.some(o):d(r)&&r(o)?C.none():t(o,n,r);const at=(e,t,o)=>{let n=e.dom;const r=d(o)?o:y;for(;n.parentNode;){n=n.parentNode;const e=pe.fromDom(n);if(t(e))return C.some(e);if(r(e))break}return C.none()},ct=(e,t,o)=>at(e,(e=>we(e,t)),o),it=(e,t)=>((e,o)=>L(e.dom.childNodes,(e=>{return o=pe.fromDom(e),we(o,t);var o})).map(pe.fromDom))(e),mt=(e,t)=>ve(t,e),dt=(e,t,o)=>lt(((e,t)=>we(e,t)),ct,e,t,o),ut=(e,t,o=p)=>e.exists((e=>o(e,t))),ft=e=>{const t=[],o=e=>{t.push(e)};for(let t=0;te?C.some(t):C.none(),ht=(e,t,o)=>""===t||e.length>=t.length&&e.substr(o,o+t.length)===t,pt=(e,t,o=0,n)=>{const r=e.indexOf(t,o);return-1!==r&&(!!i(n)||r+t.length<=n)},wt=(e,t)=>ht(e,t,0),bt=(e,t)=>ht(e,t,e.length-t.length),vt=(e=>t=>t.replace(e,""))(/^\s+|\s+$/g),yt=e=>e.length>0,xt=e=>void 0!==e.style&&d(e.style.getPropertyValue),Ct=(e,t,o)=>{if(!r(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);xt(e)&&e.style.setProperty(t,o)},St=(e,t,o)=>{const n=e.dom;Ct(n,t,o)},Tt=(e,t)=>{const o=e.dom;G(t,((e,t)=>{Ct(o,t,e)}))},Rt=(e,t)=>{const o=e.dom,n=window.getComputedStyle(o).getPropertyValue(t);return""!==n||et(e)?n:Dt(o,t)},Dt=(e,t)=>xt(e)?e.style.getPropertyValue(t):"",Ot=(e,t)=>{const o=e.dom,n=Dt(o,t);return C.from(n).filter((e=>e.length>0))},kt=(e,t)=>{((e,t)=>{xt(e)&&e.style.removeProperty(t)})(e.dom,t),ut(ue(e,"style").map(vt),"")&&fe(e,"style")},Et=(e,t,o=0)=>ue(e,t).map((e=>parseInt(e,10))).getOr(o),Nt=(e,t)=>Et(e,t,1),Bt=e=>ae("col")(e)?Et(e,"span",1)>1:Nt(e,"colspan")>1,zt=e=>Nt(e,"rowspan")>1,At=(e,t)=>parseInt(Rt(e,t),10),Wt=g(10),Lt=g(10),_t=(e,t)=>Mt(e,t,x),Mt=(e,t,o)=>j(Ee(e),(e=>we(e,t)?o(e)?[e]:[]:Mt(e,t,o))),jt=(e,t)=>((e,t,o=y)=>o(t)?C.none():D(e,Z(t))?C.some(t):ct(t,e.join(","),(e=>we(e,"table")||o(e))))(["td","th"],e,t),It=e=>_t(e,"th,td"),Pt=e=>we(e,"colgroup")?rt(e,"col"):j(qt(e),(e=>rt(e,"col"))),Ft=(e,t)=>dt(e,"table",t),Ht=e=>_t(e,"tr"),qt=e=>Ft(e).fold(g([]),(e=>rt(e,"colgroup"))),Vt=(e,t)=>E(e,(e=>{if("colgroup"===Z(e)){const t=E(Pt(e),(e=>{const t=Et(e,"span",1);return Ue(e,1,t)}));return Ge(e,t,"colgroup")}{const o=E(It(e),(e=>{const t=Et(e,"rowspan",1),o=Et(e,"colspan",1);return Ue(e,t,o)}));return Ge(e,o,t(e))}})),$t=e=>Re(e).map((e=>{const t=Z(e);return(e=>D($e,e))(t)?t:"tbody"})).getOr("tbody"),Ut=e=>{const t=Ht(e),o=[...qt(e),...t];return Vt(o,$t)},Gt=e=>{let t,o=!1;return(...n)=>(o||(o=!0,t=e.apply(null,n)),t)},Kt=()=>Yt(0,0),Yt=(e,t)=>({major:e,minor:t}),Jt={nu:Yt,detect:(e,t)=>{const o=String(t).toLowerCase();return 0===e.length?Kt():((e,t)=>{const o=((e,t)=>{for(let o=0;oNumber(t.replace(o,"$"+e));return Yt(n(1),n(2))})(e,o)},unknown:Kt},Qt=(e,t)=>{const o=String(t).toLowerCase();return L(e,(e=>e.Buscar(o)))},Xt=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Zt=e=>t=>pt(t,e),eo=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],Buscar:e=>pt(e,"edge/")&&pt(e,"chrome")&&pt(e,"safari")&&pt(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,Xt],Buscar:e=>pt(e,"chrome")&&!pt(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],Buscar:e=>pt(e,"msie")||pt(e,"trident")},{name:"Opera",versionRegexes:[Xt,/.*?opera\/([0-9]+)\.([0-9]+).*/],Buscar:Zt("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],Buscar:Zt("firefox")},{name:"Safari",versionRegexes:[Xt,/.*?cpu os ([0-9]+)_([0-9]+).*/],Buscar:e=>(pt(e,"safari")||pt(e,"mobile/"))&&pt(e,"applewebkit")}],to=[{name:"Windows",Buscar:Zt("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",Buscar:e=>pt(e,"iphone")||pt(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",Buscar:Zt("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",Buscar:Zt("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",Buscar:Zt("linux"),versionRegexes:[]},{name:"Solaris",Buscar:Zt("sunos"),versionRegexes:[]},{name:"FreeBSD",Buscar:Zt("freebsd"),versionRegexes:[]},{name:"ChromeOS",Buscar:Zt("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],oo={browsers:g(eo),oses:g(to)},no="Edge",ro="Chromium",so="Opera",lo="Firefox",ao="Safari",co=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isEdge:n(no),isChromium:n(ro),isIE:n("IE"),isOpera:n(so),isFirefox:n(lo),isSafari:n(ao)}},io=()=>co({current:void 0,version:Jt.unknown()}),mo=co,uo=(g(no),g(ro),g("IE"),g(so),g(lo),g(ao),"Windows"),fo="Android",go="Linux",ho="macOS",po="Solaris",wo="FreeBSD",bo="ChromeOS",vo=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isWindows:n(uo),isiOS:n("iOS"),isAndroid:n(fo),isMacOS:n(ho),isLinux:n(go),isSolaris:n(po),isFreeBSD:n(wo),isChromeOS:n(bo)}},yo=()=>vo({current:void 0,version:Jt.unknown()}),xo=vo,Co=(g(uo),g("iOS"),g(fo),g(go),g(ho),g(po),g(wo),g(bo),e=>window.matchMedia(e).matches);let So=Gt((()=>((e,t,o)=>{const n=oo.browsers(),r=oo.oses(),s=t.bind((e=>((e,t)=>V(t.brands,(t=>{const o=t.brand.toLowerCase();return L(e,(e=>{var t;return o===(null===(t=e.brand)||void 0===t?void 0:t.toLowerCase())})).map((e=>({current:e.name,version:Jt.nu(parseInt(t.version,10),0)})))})))(n,e))).orThunk((()=>((e,t)=>Qt(e,t).map((e=>{const o=Jt.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(n,e))).fold(io,mo),l=((e,t)=>Qt(e,t).map((e=>{const o=Jt.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(r,e).fold(yo,xo),a=((e,t,o,n)=>{const r=e.isiOS()&&!0===/ipad/i.test(o),s=e.isiOS()&&!r,l=e.isiOS()||e.isAndroid(),a=l||n("(pointer:coarse)"),c=r||!s&&l&&n("(min-device-width:768px)"),i=s||l&&!c,m=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(o),d=!i&&!c&&!m;return{isiPad:g(r),isiPhone:g(s),isTablet:g(c),isPhone:g(i),isTouch:g(a),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:g(m),isDesktop:g(d)}})(l,s,e,o);return{browser:s,os:l,deviceType:a}})(navigator.userAgent,C.from(navigator.userAgentData),Co)));const To=()=>So(),Ro=(e,t)=>{const o=o=>{const n=t(o);if(n<=0||null===n){const t=Rt(o,e);return parseFloat(t)||0}return n},n=(e,t)=>W(t,((t,o)=>{const n=Rt(e,o),r=void 0===n?0:parseInt(n,10);return isNaN(r)?t:t+r}),0);return{set:(t,o)=>{if(!u(o)&&!o.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+o);const n=t.dom;xt(n)&&(n.style[e]=o+"px")},get:o,getOuter:o,aggregate:n,max:(e,t,o)=>{const r=n(e,o);return t>r?t-r:0}}},Do=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?C.none():C.some(t)})(e).getOr(t))(Rt(e,t),o),Oo=Ro("width",(e=>e.dom.offsetWidth)),ko=e=>Oo.get(e),Eo=e=>Oo.getOuter(e),No=e=>((e,t)=>{const o=e.dom,n=o.getBoundingClientRect().width||o.offsetWidth;return"border-box"===t?n:((e,t,o,n)=>t-Do(e,"padding-left",0)-Do(e,"padding-right",0)-Do(e,"border-left-width",0)-Do(e,"border-right-width",0))(e,n)})(e,"content-box"),Bo=(e,t,o)=>{const n=e.cells,r=n.slice(0,t),s=n.slice(t),l=r.concat(o).concat(s);return Wo(e,l)},zo=(e,t,o)=>Bo(e,t,[o]),Ao=(e,t,o)=>{e.cells[t]=o},Wo=(e,t)=>Ye(e.element,t,e.section,e.isNew),Lo=(e,t)=>e.cells[t],_o=(e,t)=>Lo(e,t).element,Mo=e=>e.cells.length,jo=e=>{const t=B(e,(e=>"colgroup"===e.section));return{rows:t.fail,cols:t.pass}},Io=(e,t,o)=>{const n=E(e.cells,o);return Ye(t(e.element),n,e.section,!0)},Po="data-snooker-locked-cols",Fo=e=>ue(e,Po).bind((e=>C.from(e.match(/\d+/g)))).map((e=>P(e,x))),Ho=e=>{const t=W(jo(e).rows,((e,t)=>(N(t.cells,((t,o)=>{t.isLocked&&(e[o]=!0)})),e)),{}),o=J(t,((e,t)=>parseInt(t,10)));return((e,t)=>{const o=S.call(e,0);return o.sort(void 0),o})(o)},qo=(e,t)=>e+","+t,Vo=(e,t)=>{const o=j(e.all,(e=>e.cells));return z(o,t)},$o=e=>{const t={},o=[],n=H(e).map((e=>e.element)).bind(Ft).bind(Fo).getOr({});let r=0,s=0,l=0;const{pass:a,fail:c}=B(e,(e=>"colgroup"===e.section));N(c,(e=>{const a=[];N(e.cells,(e=>{let o=0;for(;void 0!==t[qo(l,o)];)o++;const r=((e,t)=>X(e,t)&&void 0!==e[t]&&null!==e[t])(n,o.toString()),c=((e,t,o,n,r,s)=>({element:e,rowspan:t,colspan:o,row:n,column:r,isLocked:s}))(e.element,e.rowspan,e.colspan,l,o,r);for(let n=0;n{const t=(e=>{const t={};let o=0;return N(e.cells,(e=>{const n=e.colspan;k(n,(r=>{const s=o+r;t[s]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,n,s)})),o+=n})),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,Q(t));return{colgroups:[o],columns:t}})).getOrThunk((()=>({colgroups:[],columns:{}}))),d=((e,t)=>({rows:e,columns:t}))(r,s);return{grid:d,access:t,all:o,columns:i,colgroups:m}},Uo=e=>{const t=Ut(e);return $o(t)},Go=$o,Ko=(e,t,o)=>C.from(e.access[qo(t,o)]),Yo=(e,t,o)=>{const n=Vo(e,(e=>o(t,e.element)));return n.length>0?C.some(n[0]):C.none()},Jo=Vo,Qo=e=>j(e.all,(e=>e.cells)),Xo=e=>Q(e.columns),Zo=e=>$(e.columns).length>0,en=(e,t)=>C.from(e.columns[t]),tn=(e,t=x)=>{const o=e.grid,n=k(o.columns,h),r=k(o.rows,h);return E(n,(o=>on((()=>j(r,(t=>Ko(e,t,o).filter((e=>e.column===o)).toArray()))),(e=>1===e.colspan&&t(e.element)),(()=>Ko(e,0,o)))))},on=(e,t,o)=>{const n=e();return L(n,t).orThunk((()=>C.from(n[0]).orThunk(o))).map((e=>e.element))},nn=e=>{const t=e.grid,o=k(t.rows,h),n=k(t.columns,h);return E(o,(t=>on((()=>j(n,(o=>Ko(e,t,o).filter((e=>e.row===t)).fold(g([]),(e=>[e]))))),(e=>1===e.rowspan),(()=>Ko(e,t,0)))))},rn=(e,t)=>o=>"rtl"===sn(o)?t:e,sn=e=>"rtl"===Rt(e,"direction")?"rtl":"ltr",ln=Ro("height",(e=>{const t=e.dom;return et(e)?t.getBoundingClientRect().height:t.offsetHeight})),an=e=>ln.get(e),cn=e=>ln.getOuter(e),mn=(e,t)=>({left:e,top:t,translate:(o,n)=>mn(e+o,t+n)}),dn=mn,un=(e,t)=>void 0!==e?e:void 0!==t?t:0,fn=e=>{const t=e.dom.ownerDocument,o=t.body,n=t.defaultView,r=t.documentElement;if(o===e.dom)return dn(o.offsetLeft,o.offsetTop);const s=un(null==n?void 0:n.pageYOffset,r.scrollTop),l=un(null==n?void 0:n.pageXOffset,r.scrollLeft),a=un(r.clientTop,o.clientTop),c=un(r.clientLeft,o.clientLeft);return gn(e).translate(l-c,s-a)},gn=e=>{const t=e.dom,o=t.ownerDocument.body;return o===t?dn(o.offsetLeft,o.offsetTop):et(e)?(e=>{const t=e.getBoundingClientRect();return dn(t.left,t.top)})(t):dn(0,0)},hn=(e,t)=>({row:e,y:t}),pn=(e,t)=>({col:e,x:t}),wn=e=>fn(e).left+Eo(e),bn=e=>fn(e).left,vn=(e,t)=>pn(e,bn(t)),yn=(e,t)=>pn(e,wn(t)),xn=e=>fn(e).top,Cn=(e,t)=>hn(e,xn(t)),Sn=(e,t)=>hn(e,xn(t)+cn(t)),Tn=(e,t,o)=>{if(0===o.length)return[];const n=E(o.slice(1),((t,o)=>t.map((t=>e(o,t))))),r=o[o.length-1].map((e=>t(o.length-1,e)));return n.concat([r])},Rn={delta:h,positions:e=>Tn(Cn,Sn,e),edge:xn},Dn=rn({delta:h,edge:bn,positions:e=>Tn(vn,yn,e)},{delta:e=>-e,edge:wn,positions:e=>Tn(yn,vn,e)}),On={delta:(e,t)=>Dn(t).delta(e,t),positions:(e,t)=>Dn(t).positions(e,t),edge:e=>Dn(e).edge(e)},kn={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},En=(()=>{const e="[0-9]+",t="[eE][+-]?[0-9]+",o=e=>`(?:${e})?`,n=["Infinity","[0-9]+\\."+o(e)+o(t),"\\.[0-9]+"+o(t),e+o(t)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})(),Nn=/(\d+(\.\d+)?)%/,Bn=/(\d+(\.\d+)?)px|em/,zn=ae("col"),An=(e,t,o)=>{const n=(r=e,C.from(r.dom.parentElement).map(pe.fromDom)).getOrThunk((()=>tt(Se(e))));var r;return t(e)/o(n)*100},Wn=(e,t)=>{St(e,"width",t+"px")},Ln=(e,t)=>{St(e,"width",t+"%")},_n=(e,t)=>{St(e,"height",t+"px")},Mn=e=>{const t=(e=>{return Do(t=e,"height",t.dom.offsetHeight)+"px";var t})(e);return t?((e,t,o,n)=>{const r=parseFloat(e);return bt(e,"%")&&"table"!==Z(t)?((e,t,o,n)=>{const r=Ft(e).map((e=>{const n=o(e);return Math.floor(t/100*n)})).getOr(t);return n(e,r),r})(t,r,o,n):r})(t,e,an,_n):an(e)},jn=(e,t)=>Ot(e,t).orThunk((()=>ue(e,t).map((e=>e+"px")))),In=e=>jn(e,"width"),Pn=e=>An(e,ko,No),Fn=e=>{return zn(e)?ko(e):Do(t=e,"width",t.dom.offsetWidth);var t},Hn=e=>((e,t,o)=>o(e)/Nt(e,"rowspan"))(e,0,Mn),qn=(e,t,o)=>{St(e,"width",t+o)},Vn=e=>An(e,ko,No)+"%",$n=g(Nn),Un=ae("col"),Gn=e=>In(e).getOrThunk((()=>Fn(e)+"px")),Kn=e=>{return(t=e,jn(t,"height")).getOrThunk((()=>Hn(e)+"px"));var t},Yn=(e,t,o,n,r,s)=>e.filter(n).fold((()=>s(((e,t)=>{if(t<0||t>=e.length-1)return C.none();const o=e[t].fold((()=>{const o=(e=>{const t=S.call(e,0);return t.reverse(),t})(e.slice(0,t));return V(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>C.some({value:e,delta:0}))),n=e[t+1].fold((()=>{const o=e.slice(t+1);return V(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>C.some({value:e,delta:1})));return o.bind((e=>n.map((t=>{const o=t.delta+e.delta;return Math.abs(t.value-e.value)/o}))))})(o,t))),(e=>r(e))),Jn=(e,t,o,n)=>{const r=tn(e),s=Zo(e)?(e=>E(Xo(e),(e=>C.from(e.element))))(e):r,l=[C.some(On.edge(t))].concat(E(On.positions(r,t),(e=>e.map((e=>e.x))))),a=b(Bt);return E(s,((e,t)=>Yn(e,t,l,a,(e=>{if((e=>{const t=To().browser,o=t.isChromium()||t.isFirefox();return!Un(e)||o})(e))return o(e);{const e=null!=(s=r[t])?h(s):C.none();return Yn(e,t,l,a,(e=>n(C.some(ko(e)))),n)}var s}),n)))},Qn=e=>e.map((e=>e+"px")).getOr(""),Xn=(e,t,o)=>Jn(e,t,Fn,(e=>e.getOrThunk(o.minCellWidth))),Zn=(e,t,o,n,r)=>{const s=nn(e),l=[C.some(o.edge(t))].concat(E(o.positions(s,t),(e=>e.map((e=>e.y)))));return E(s,((e,t)=>Yn(e,t,l,b(zt),n,r)))},er=(e,t)=>()=>et(e)?t(e):parseFloat(Ot(e,"width").getOr("0")),tr=e=>{const t=er(e,(e=>parseFloat(Vn(e)))),o=er(e,ko);return{width:t,pixelWidth:o,getWidths:(t,o)=>((e,t,o)=>Jn(e,t,Pn,(e=>e.fold((()=>o.minCellWidth()),(e=>e/o.pixelWidth()*100)))))(t,e,o),getCellDelta:e=>e/o()*100,singleColumnWidth:(e,t)=>[100-e],minCellWidth:()=>Wt()/o()*100,setElementWidth:Ln,adjustTableWidth:o=>{const n=t();Ln(e,n+o/100*n)},isRelative:!0,label:"percent"}},or=e=>{const t=er(e,ko);return{width:t,pixelWidth:t,getWidths:(t,o)=>Xn(t,e,o),getCellDelta:h,singleColumnWidth:(e,t)=>[Math.max(Wt(),e+t)-e],minCellWidth:Wt,setElementWidth:Wn,adjustTableWidth:o=>{const n=t()+o;Wn(e,n)},isRelative:!1,label:"pixel"}},nr=e=>In(e).fold((()=>(e=>{const t=er(e,ko),o=g(0);return{width:t,pixelWidth:t,getWidths:(t,o)=>Xn(t,e,o),getCellDelta:o,singleColumnWidth:g([0]),minCellWidth:o,setElementWidth:f,adjustTableWidth:f,isRelative:!0,label:"none"}})(e)),(t=>((e,t)=>null!==$n().exec(t)?tr(e):or(e))(e,t))),rr=or,sr=tr,lr=(e,t,o)=>{const n=e[o].element,r=pe.fromTag("td");We(r,pe.fromTag("br")),(t?We:Ae)(n,r)},ar=((e,t)=>{const o=t=>e(t)?C.from(t.dom.nodeValue):C.none();return{get:t=>{if(!e(t))throw new Error("Can only get text value of a text node");return o(t).getOr("")},getOption:o,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(re),cr=e=>ar.get(e),ir=e=>ar.getOption(e),mr=(e,t)=>ar.set(e,t),dr=e=>"img"===Z(e)?1:ir(e).fold((()=>Ee(e).length),(e=>e.length)),ur=["img","br"],fr=e=>ir(e).filter((e=>0!==e.trim().length||e.indexOf("\xa0")>-1)).isSome()||D(ur,Z(e)),gr=e=>((e,t)=>{const o=e=>{for(let n=0;npr(e,fr),pr=(e,t)=>{const o=e=>{const n=Ee(e);for(let e=n.length-1;e>=0;e--){const r=n[e];if(t(r))return C.some(r);const s=o(r);if(s.isSome())return s}return C.none()};return o(e)},wr={scope:["row","col"]},br=e=>()=>{const t=pe.fromTag("td",e.dom);return We(t,pe.fromTag("br",e.dom)),t},vr=e=>()=>pe.fromTag("col",e.dom),yr=e=>()=>pe.fromTag("colgroup",e.dom),xr=e=>()=>pe.fromTag("tr",e.dom),Cr=(e,t,o)=>{const n=((e,t)=>{const o=Ve(e,t),n=Ee(qe(e));return Me(o,n),o})(e,t);return G(o,((e,t)=>{null===e?fe(n,t):ie(n,t,e)})),n},Sr=e=>e,Tr=(e,t,o)=>{const n=(e,t)=>{((e,t)=>{const o=e.dom,n=t.dom;xt(o)&&xt(n)&&(n.style.cssText=o.style.cssText)})(e.element,t),kt(t,"height"),1!==e.colspan&&kt(t,"width")};return{col:o=>{const r=pe.fromTag(Z(o.element),t.dom);return n(o,r),e(o.element,r),r},colgroup:yr(t),row:xr(t),cell:r=>{const s=pe.fromTag(Z(r.element),t.dom),l=o.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),a=l.length>0?((e,t,o)=>gr(e).map((n=>{const r=o.join(","),s=nt(n,r,(t=>ye(t,e)));return A(s,((e,t)=>{const o=He(t);return fe(o,"contenteditable"),We(e,o),o}),t)})).getOr(t))(r.element,s,l):s;return We(a,pe.fromTag("br")),n(r,s),((e,t)=>{G(wr,((o,n)=>ue(e,n).filter((e=>D(o,e))).each((e=>ie(t,n,e)))))})(r.element,s),e(r.element,s),s},replace:Cr,colGap:vr(t),gap:br(t)}},Rr=e=>({col:vr(e),colgroup:yr(e),row:xr(e),cell:br(e),replace:Sr,colGap:vr(e),gap:br(e)}),Dr=e=>pe.fromDom(e.getBody()),Or=e=>t=>ye(t,Dr(e)),kr=e=>{fe(e,"data-mce-style");const t=e=>fe(e,"data-mce-style");N(It(e),t),N(Pt(e),t),N(Ht(e),t)},Er=e=>pe.fromDom(e.selection.getStart()),Nr=e=>e.getBoundingClientRect().width,Br=e=>e.getBoundingClientRect().height,zr=(e,t)=>{const o=t.column,n=t.column+t.colspan-1,r=t.row,s=t.row+t.rowspan-1;return o<=e.finishCol&&n>=e.startCol&&r<=e.finishRow&&s>=e.startRow},Ar=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Wr=(e,t,o)=>{const n=Yo(e,t,ye),r=Yo(e,o,ye);return n.bind((e=>r.map((t=>{return o=e,n=t,{startRow:Math.min(o.row,n.row),startCol:Math.min(o.column,n.column),finishRow:Math.max(o.row+o.rowspan-1,n.row+n.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,n.column+n.colspan-1)};var o,n}))))},Lr=(e,t,o)=>Wr(e,t,o).map((t=>{const o=Jo(e,w(zr,t));return E(o,(e=>e.element))})),_r=(e,t)=>Yo(e,t,((e,t)=>xe(t,e))).map((e=>e.element)),Mr=(e,t,o)=>{const n=Ir(e);return Lr(n,t,o)},jr=(e,t,o,n,r)=>{const s=Ir(e),l=ye(e,o)?C.some(t):_r(s,t),a=ye(e,r)?C.some(n):_r(s,n);return l.bind((e=>a.bind((t=>Lr(s,e,t)))))},Ir=Uo;var Pr=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Fr=()=>({up:g({selector:ct,closest:dt,predicate:at,all:De}),down:g({selector:st,predicate:ot}),styles:g({get:Rt,getRaw:Ot,set:St,remove:kt}),attrs:g({get:de,set:ie,remove:fe,copyTo:(e,t)=>{const o=ge(e);me(t,o)}}),insert:g({before:Be,after:ze,afterAll:_e,append:We,appendAll:Me,prepend:Ae,wrap:Le}),remove:g({unwrap:Pe,remove:Ie}),create:g({nu:pe.fromTag,clone:e=>pe.fromDom(e.dom.cloneNode(!1)),text:pe.fromText}),query:g({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:Oe,nextSibling:ke}),property:g({children:Ee,name:Z,parent:Re,document:e=>Te(e).dom,isText:re,isComment:oe,isElement:ne,isSpecial:e=>{const t=Z(e);return D(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>ne(e)?ue(e,"lang"):C.none(),getText:cr,setText:mr,isBoundary:e=>!!ne(e)&&("body"===Z(e)||D(Pr,Z(e))),isEmptyTag:e=>!!ne(e)&&D(["br","img","hr","input"],Z(e)),isNonEditable:e=>ne(e)&&"false"===de(e,"contenteditable")}),eq:ye,is:Ce});const Hr=(e,t,o,n)=>{const r=t(e,o);return A(n,((o,n)=>{const r=t(e,n);return qr(e,o,r)}),r)},qr=(e,t,o)=>t.bind((t=>o.filter(w(e.eq,t)))),Vr=Fr(),$r=(e,t)=>((e,t,o)=>o.length>0?((e,t,o,n)=>n(e,t,o[0],o.slice(1)))(e,t,o,Hr):C.none())(Vr,((t,o)=>e(o)),t),Ur=e=>ct(e,"table"),Gr=(e,t,o)=>{const n=e=>t=>void 0!==o&&o(t)||ye(t,e);return ye(e,t)?C.some({boxes:C.some([e]),start:e,finish:t}):Ur(e).bind((r=>Ur(t).bind((s=>{if(ye(r,s))return C.some({boxes:Mr(r,e,t),start:e,finish:t});if(xe(r,s)){const o=nt(t,"td,th",n(r)),l=o.length>0?o[o.length-1]:t;return C.some({boxes:jr(r,e,r,t,s),start:e,finish:l})}if(xe(s,r)){const o=nt(e,"td,th",n(s)),l=o.length>0?o[o.length-1]:e;return C.some({boxes:jr(s,e,r,t,s),start:e,finish:l})}return((e,t,o)=>((e,t,o,n=y)=>{const r=[t].concat(e.up().all(t)),s=[o].concat(e.up().all(o)),l=e=>_(e,n).fold((()=>e),(t=>e.slice(0,t+1))),a=l(r),c=l(s),i=L(a,(t=>O(c,((e,t)=>w(e.eq,t))(e,t))));return{firstpath:a,secondpath:c,shared:i}})(Vr,e,t,void 0))(e,t).shared.bind((l=>dt(l,"table",o).bind((o=>{const l=nt(t,"td,th",n(o)),a=l.length>0?l[l.length-1]:t,c=nt(e,"td,th",n(o)),i=c.length>0?c[c.length-1]:e;return C.some({boxes:jr(o,e,r,t,s),start:i,finish:a})}))))}))))},Kr=(e,t)=>{const o=st(e,t);return o.length>0?C.some(o):C.none()},Yr=(e,t,o)=>mt(e,t).bind((t=>mt(e,o).bind((e=>$r(Ur,[t,e]).map((o=>({first:t,last:e,table:o}))))))),Jr=(e,t,o,n,r)=>((e,t)=>L(e,(e=>we(e,t))))(e,r).bind((e=>((e,t,o)=>Ft(e).bind((n=>((e,t,o,n)=>Yo(e,t,ye).bind((t=>{const r=o>0?t.row+t.rowspan-1:t.row,s=n>0?t.column+t.colspan-1:t.column;return Ko(e,r+o,s+n).map((e=>e.element))})))(Ir(n),e,t,o))))(e,t,o).bind((e=>((e,t)=>ct(e,"table").bind((o=>mt(o,t).bind((t=>Gr(t,e).bind((e=>e.boxes.map((t=>({boxes:t,start:e.start,finish:e.finish}))))))))))(e,n))))),Qr=(e,t)=>Kr(e,t),Xr=(e,t,o)=>Yr(e,t,o).bind((t=>{const o=t=>ye(e,t),n="thead,tfoot,tbody,table",r=ct(t.first,n,o),s=ct(t.last,n,o);return r.bind((e=>s.bind((o=>ye(e,o)?((e,t,o)=>((e,t,o)=>Wr(e,t,o).bind((t=>((e,t)=>{let o=!0;const n=w(Ar,t);for(let r=t.startRow;r<=t.finishRow;r++)for(let s=t.startCol;s<=t.finishCol;s++)o=o&&Ko(e,r,s).exists(n);return o?C.some(t):C.none()})(e,t))))(Ir(e),t,o))(t.table,t.first,t.last):C.none()))))})),Zr=h,es=e=>{const t=(e,t)=>ue(e,t).exists((e=>parseInt(e,10)>1));return e.length>0&&I(e,(e=>t(e,"rowspan")||t(e,"colspan")))?C.some(e):C.none()},ts=(e,t,o)=>t.length<=1?C.none():Xr(e,o.firstSelectedSelector,o.lastSelectedSelector).map((e=>({bounds:e,cells:t}))),os={selected:"data-mce-selected",selectedSelector:"td[data-mce-selected],th[data-mce-selected]",firstSelected:"data-mce-first-selected",firstSelectedSelector:"td[data-mce-first-selected],th[data-mce-first-selected]",lastSelected:"data-mce-last-selected",lastSelectedSelector:"td[data-mce-last-selected],th[data-mce-last-selected]"},ns=(e,t,o)=>({element:o,mergable:ts(t,e,os),unmergable:es(e),selection:Zr(e)}),rs=e=>(t,o)=>{const n=Z(t),r="col"===n||"colgroup"===n?Ft(s=t).bind((e=>Qr(e,os.firstSelectedSelector))).fold(g(s),(e=>e[0])):t;var s;return dt(r,e,o)},ss=rs("th,td,caption"),ls=rs("th,td"),as=e=>{return t=e.model.table.getSelectedCells(),E(t,pe.fromDom);var t},cs=(e,t)=>{e.on("BeforeGetContent",(t=>{const o=o=>{t.preventDefault(),(e=>Ft(e[0]).map((e=>{const t=((e,t)=>{const o=e=>we(e.element,t),n=qe(e),r=Ut(n),s=nr(e),l=Go(r),a=((e,t)=>{const o=e.grid.columns;let n=e.grid.rows,r=o,s=0,l=0;const a=[],c=[];return G(e.access,(e=>{if(a.push(e),t(e)){c.push(e);const t=e.row,o=t+e.rowspan-1,a=e.column,i=a+e.colspan-1;ts&&(s=o),al&&(l=i)}})),((e,t,o,n,r,s)=>({minRow:e,minCol:t,maxRow:o,maxCol:n,allCells:r,selectedCells:s}))(n,r,s,l,a,c)})(l,o),c="th:not("+t+"),td:not("+t+")",i=Mt(n,"th,td",(e=>we(e,c)));N(i,Ie),((e,t,o,n)=>{const r=z(e,(e=>"colgroup"!==e.section)),s=t.grid.columns,l=t.grid.rows;for(let e=0;eo.maxRow||ao.maxCol||(Ko(t,e,a).filter(n).isNone()?lr(r,l,e):l=!0)}})(r,l,a,o);const m=((e,t,o,n)=>{if(0===n.minCol&&t.grid.columns===n.maxCol+1)return 0;const r=Xn(t,e,o),s=W(r,((e,t)=>e+t),0),l=W(r.slice(n.minCol,n.maxCol+1),((e,t)=>e+t),0),a=l/s*o.pixelWidth()-o.pixelWidth();return o.getCellDelta(a)})(e,Uo(e),s,a);return((e,t,o,n)=>{G(o.columns,(e=>{(e.columnt.maxCol)&&Ie(e.element)}));const r=z(_t(e,"tr"),(e=>0===e.dom.childElementCount));N(r,Ie),t.minCol!==t.maxCol&&t.minRow!==t.maxRow||N(_t(e,"th,td"),(e=>{fe(e,"rowspan"),fe(e,"colspan")})),fe(e,Po),fe(e,"data-snooker-col-series"),nr(e).adjustTableWidth(n)})(n,a,l,m),n})(e,"[data-mce-selected]");return kr(t),[t]})))(o).each((o=>{t.content="text"===t.format?(e=>E(e,(e=>e.dom.innerText)).join(""))(o):((e,t)=>E(t,(t=>e.selection.serializer.serialize(t.dom,{}))).join(""))(e,o)}))};if(!0===t.selection){const t=(e=>z(as(e),(e=>we(e,os.selectedSelector))))(e);t.length>=1&&o(t)}})),e.on("BeforeSetContent",(o=>{if(!0===o.selection&&!0===o.paste){const n=as(e);H(n).each((n=>{Ft(n).each((r=>{const s=z(((e,t)=>{const o=document.createElement("div");return o.innerHTML=e,Ee(pe.fromDom(o))})(o.content),(e=>"meta"!==Z(e))),l=ae("table");if(1===s.length&&l(s[0])){o.preventDefault();const l=pe.fromDom(e.getDoc()),a=Rr(l),c=((e,t,o)=>({element:e,clipboard:t,generators:o}))(n,s[0],a);t.pasteCells(r,c).each((()=>{e.focus()}))}}))}))}}))},is=(e,t)=>({element:e,offset:t}),ms=(e,t,o)=>e.property().isText(t)&&0===e.property().getText(t).trim().length||e.property().isComment(t)?o(t).bind((t=>ms(e,t,o).orThunk((()=>C.some(t))))):C.none(),ds=(e,t)=>e.property().isText(t)?e.property().getText(t).length:e.property().children(t).length,us=(e,t)=>{const o=ms(e,t,e.query().prevSibling).getOr(t);if(e.property().isText(o))return is(o,ds(e,o));const n=e.property().children(o);return n.length>0?us(e,n[n.length-1]):is(o,ds(e,o))},fs=us,gs=Fr(),hs=(e,t)=>{if(!Bt(e)){const o=(e=>In(e).bind((e=>{return t=e,o=["fixed","relative","empty"],C.from(En.exec(t)).bind((e=>{const t=Number(e[1]),n=e[2];return((e,t)=>O(t,(t=>O(kn[t],(t=>e===t)))))(n,o)?C.some({value:t,unit:n}):C.none()}));var t,o})))(e);o.each((o=>{const n=o.value/2;qn(e,n,o.unit),qn(t,n,o.unit)}))}},ps=e=>E(e,g(0)),ws=(e,t,o,n,r)=>r(e.slice(0,t)).concat(n).concat(r(e.slice(o))),bs=e=>(t,o,n,r)=>{if(e(n)){const e=Math.max(r,t[o]-Math.abs(n)),s=Math.abs(e-t[o]);return n>=0?s:-s}return n},vs=bs((e=>e<0)),ys=bs(x),xs=()=>{const e=(e,t,o,n)=>{const r=(100+o)/100,s=Math.max(n,(e[t]+o)/r);return E(e,((e,o)=>(o===t?s:e/r)-e))},t=(t,o,n,r,s,l)=>l?e(t,o,r,s):((e,t,o,n,r)=>{const s=vs(e,t,n,r);return ws(e,t,o+1,[s,0],ps)})(t,o,n,r,s);return{resizeTable:(e,t)=>e(t),clampTableDelta:vs,calcLeftEdgeDeltas:t,calcMiddleDeltas:(e,o,n,r,s,l,a)=>t(e,n,r,s,l,a),calcRightEdgeDeltas:(t,o,n,r,s,l)=>{if(l)return e(t,n,r,s);{const e=vs(t,n,r,s);return ps(t.slice(0,n)).concat([e])}},calcRedestributedWidths:(e,t,o,n)=>{if(n){const n=(t+o)/t,r=E(e,(e=>e/n));return{delta:100*n-100,newSizes:r}}return{delta:o,newSizes:e}}}},Cs=()=>{const e=(e,t,o,n,r)=>{const s=ys(e,n>=0?o:t,n,r);return ws(e,t,o+1,[s,-s],ps)};return{resizeTable:(e,t,o)=>{o&&e(t)},clampTableDelta:(e,t,o,n,r)=>{if(r){if(o>=0)return o;{const t=W(e,((e,t)=>e+t-n),0);return Math.max(-t,o)}}return vs(e,t,o,n)},calcLeftEdgeDeltas:e,calcMiddleDeltas:(t,o,n,r,s,l)=>e(t,n,r,s,l),calcRightEdgeDeltas:(e,t,o,n,r,s)=>{if(s)return ps(e);{const t=n/e.length;return E(e,g(t))}},calcRedestributedWidths:(e,t,o,n)=>({delta:0,newSizes:e})}},Ss=e=>Uo(e).grid,Ts=ae("th"),Rs=e=>I(e,(e=>Ts(e.element))),Ds=(e,t)=>e&&t?"sectionCells":e?"section":"cells",Os=e=>{const t="thead"===e.section,o=ut(ks(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:Ds(t,o)}:{type:"body"}},ks=e=>{const t=z(e,(e=>Ts(e.element)));return 0===t.length?C.some("td"):t.length===e.length?C.some("th"):C.none()},Es=(e,t,o)=>Ke(o(e.element,t),!0,e.isLocked),Ns=(e,t)=>e.section!==t?Ye(e.element,e.cells,t,e.isNew):e,Bs=()=>({transformRow:Ns,transformCell:(e,t,o)=>{const n=o(e.element,t),r="td"!==Z(n)?((e,t)=>{const o=Ve(e,"td");ze(e,o);const n=Ee(e);return Me(o,n),Ie(e),o})(n):n;return Ke(r,e.isNew,e.isLocked)}}),zs=()=>({transformRow:Ns,transformCell:Es}),As=()=>({transformRow:(e,t)=>Ns(e,"thead"===t?"tbody":t),transformCell:Es}),Ws=Bs,Ls=zs,_s=As,Ms=()=>({transformRow:h,transformCell:Es}),js=e=>dt(e,"[contenteditable]"),Is=(e,t=!1)=>et(e)?e.dom.isContentEditable:js(e).fold(g(t),(e=>"true"===Ps(e))),Ps=e=>e.dom.contentEditable,Fs=(e,t,o,n)=>{o===n?fe(e,t):ie(e,t,o)},Hs=(e,t,o)=>{q(rt(e,t)).fold((()=>Ae(e,o)),(e=>ze(e,o)))},qs=(e,t)=>{const o=[],n=[],r=e=>E(e,(e=>{e.isNew&&o.push(e.element);const t=e.element;return je(t),N(e.cells,(e=>{e.isNew&&n.push(e.element),Fs(e.element,"colspan",e.colspan,1),Fs(e.element,"rowspan",e.rowspan,1),We(t,e.element)})),t})),s=e=>j(e,(e=>E(e.cells,(e=>(Fs(e.element,"span",e.colspan,1),e.element))))),l=(t,o)=>{const n=((e,t)=>{const o=it(e,t).getOrThunk((()=>{const o=pe.fromTag(t,Se(e).dom);return"thead"===t?Hs(e,"caption,colgroup",o):"colgroup"===t?Hs(e,"caption",o):We(e,o),o}));return je(o),o})(e,o),l=("colgroup"===o?s:r)(t);Me(n,l)},a=(t,o)=>{t.length>0?l(t,o):(t=>{it(e,t).each(Ie)})(o)},c=[],i=[],m=[],d=[];return N(t,(e=>{switch(e.section){case"thead":c.push(e);break;case"tbody":i.push(e);break;case"tfoot":m.push(e);break;case"colgroup":d.push(e)}})),a(d,"colgroup"),a(c,"thead"),a(i,"tbody"),a(m,"tfoot"),{newRows:o,newCells:n}},Vs=(e,t)=>{if(0===e.length)return 0;const o=e[0];return _(e,(e=>!t(o.element,e.element))).getOr(e.length)},$s=(e,t)=>{const o=E(e,(e=>E(e.cells,y)));return E(e,((n,r)=>{const s=j(n.cells,((n,s)=>{if(!1===o[r][s]){const m=((e,t,o,n)=>{const r=((e,t)=>e[t])(e,t),s="colgroup"===r.section,l=Vs(r.cells.slice(o),n),a=s?1:Vs(((e,t)=>E(e,(e=>Lo(e,t))))(e.slice(t),o),n);return{colspan:l,rowspan:a}})(e,r,s,t);return((e,t,n,r)=>{for(let s=e;s({element:e,cells:t,section:o,isNew:n}))(n.element,s,n.section,n.isNew)}))},Us=(e,t,o)=>{const n=[];N(e.colgroups,(r=>{const s=[];for(let n=0;nKe(e.element,o,!1))).getOrThunk((()=>Ke(t.colGap(),!0,!1)));s.push(r)}n.push(Ye(r.element,s,"colgroup",o))}));for(let r=0;rKe(e.element,o,e.isLocked))).getOrThunk((()=>Ke(t.gap(),!0,!1)));s.push(l)}const l=e.all[r],a=Ye(l.element,s,l.section,o);n.push(a)}return n},Gs=e=>$s(e,ye),Ks=(e,t)=>V(e.all,(e=>L(e.cells,(e=>ye(t,e.element))))),Ys=(e,t,o)=>{const n=E(t.selection,(t=>jt(t).bind((t=>Ks(e,t))).filter(o))),r=ft(n);return gt(r.length>0,r)},Js=(e,t,o,n,r)=>(s,l,a,c)=>{const i=Uo(s),m=C.from(null==c?void 0:c.section).getOrThunk(Ms);return t(i,l).map((t=>{const o=((e,t)=>Us(e,t,!1))(i,a),n=e(o,t,ye,r(a),m),s=Ho(n.grid);return{info:t,grid:Gs(n.grid),cursor:n.cursor,lockedColumns:s}})).bind((e=>{const t=qs(s,e.grid),r=C.from(null==c?void 0:c.sizing).getOrThunk((()=>nr(s))),l=C.from(null==c?void 0:c.resize).getOrThunk(Cs);return o(s,e.grid,e.info,{sizing:r,resize:l,section:m}),n(s),fe(s,Po),e.lockedColumns.length>0&&ie(s,Po,e.lockedColumns.join(",")),C.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})}))},Qs=(e,t)=>Ys(e,t,x).map((e=>({cells:e,generators:t.generators,clipboard:t.clipboard}))),Xs=(e,t)=>Ys(e,t,x),Zs=(e,t)=>Ys(e,t,(e=>!e.isLocked)),el=(e,t)=>I(t,(t=>((e,t)=>Ks(e,t).exists((e=>!e.isLocked)))(e,t))),tl=(e,t,o,n)=>{const r=jo(e).rows;let s=!0;for(let e=0;e{const t=t=>t(e),o=g(e),n=()=>r,r={tag:!0,inner:e,fold:(t,o)=>o(e),isValue:x,isError:y,map:t=>rl.value(t(e)),mapError:n,bind:t,exists:t,forall:t,getOr:o,or:n,getOrThunk:o,orThunk:n,getOrDie:o,each:t=>{t(e)},toOptional:()=>C.some(e)};return r},nl=e=>{const t=()=>o,o={tag:!1,inner:e,fold:(t,o)=>t(e),isValue:y,isError:x,map:t,mapError:t=>rl.error(t(e)),bind:t,exists:y,forall:x,getOr:h,or:h,getOrThunk:v,orThunk:v,getOrDie:(n=String(e),()=>{throw new Error(n)}),each:f,toOptional:C.none};var n;return o},rl={value:ol,error:nl,fromOption:(e,t)=>e.fold((()=>nl(t)),ol)},sl=(e,t)=>({rowDelta:0,colDelta:Mo(e[0])-Mo(t[0])}),ll=(e,t)=>({rowDelta:e.length-t.length,colDelta:0}),al=(e,t,o,n)=>{const r="colgroup"===t.section?o.col:o.cell;return k(e,(e=>Ke(r(),!0,n(e))))},cl=(e,t,o,n)=>{const r=e[e.length-1];return e.concat(k(t,(()=>{const e="colgroup"===r.section?o.colgroup:o.row,t=Io(r,e,h),s=al(t.cells.length,t,o,(e=>X(n,e.toString())));return Wo(t,s)})))},il=(e,t,o,n)=>E(e,(e=>{const r=al(t,e,o,y);return Bo(e,n,r)})),ml=(e,t,o)=>{const n=t.colDelta<0?il:h,r=t.rowDelta<0?cl:h,s=Ho(e),l=Mo(e[0]),a=O(s,(e=>e===l-1)),c=n(e,Math.abs(t.colDelta),o,a?l-1:l),i=Ho(c);return r(c,Math.abs(t.rowDelta),o,P(i,x))},dl=(e,t,o,n)=>{const r=w(n,Lo(e[t],o).element),s=e[t];return e.length>1&&Mo(s)>1&&(o>0&&r(_o(s,o-1))||o0&&r(_o(e[t-1],o))||tz(o,(o=>o>=e.column&&o<=Mo(t[0])+e.column)),fl=(e,t,o,n,r)=>{((e,t,o,n)=>{t>0&&t{const r=e.cells[t-1];let s=0;const l=n();for(;e.cells.length>t+s&&o(r.element,e.cells[t+s].element);)Ao(e,t+s,Ke(l,!0,e.cells[t+s].isLocked)),s++}))})(t,e,r,n.cell);const s=ll(o,t),l=ml(o,s,n),a=ll(t,l),c=ml(t,a,n);return E(c,((t,o)=>Bo(t,e,l[o].cells)))},gl=(e,t,o,n,r)=>{((e,t,o,n)=>{const r=jo(e).rows;if(t>0&&tW(e,((e,o)=>O(e,(e=>t(e.element,o.element)))?e:e.concat([o])),[]))(r[t-1].cells,o);N(e,(e=>{let s=C.none();for(let l=t;l{Ao(a,t,Ke(e,!0,c.isLocked))})))}}))}})(t,e,r,n.cell);const s=Ho(t),l=sl(t,o),a={...l,colDelta:l.colDelta-s.length},c=ml(t,a,n),{cols:i,rows:m}=jo(c),d=Ho(c),u=sl(o,t),f={...u,colDelta:u.colDelta+d.length},g=(p=n,w=d,E(o,(e=>W(w,((t,o)=>{const n=al(1,e,p,x)[0];return zo(t,o,n)}),e)))),h=ml(g,f,n);var p,w;return[...i,...m.slice(0,e),...h,...m.slice(e,m.length)]},hl=(e,t,o,n,r)=>{const{rows:s,cols:l}=jo(e),a=s.slice(0,t),c=s.slice(t);return[...l,...a,((e,t,o,n)=>Io(e,(e=>n(e,o)),t))(s[o],((e,o)=>t>0&&tE(e,(e=>{const s=t>0&&t{if("colgroup"!==o&&n)return Lo(e,t);{const t=Lo(e,r);return Ke(l(t.element,s),!0,!1)}})(e,t,e.section,s,o,n,r);return zo(e,t,l)})),wl=(e,t,o,n)=>((e,t,o,n)=>void 0!==_o(e[t],o)&&t>0&&n(_o(e[t-1],o),_o(e[t],o)))(e,t,o,n)||((e,t,o)=>t>0&&o(_o(e,t-1),_o(e,t)))(e[t],o,n),bl=(e,t,o,n)=>{const r=e=>(e=>"row"===e?zt(t):Bt(t))(e)?`${e}group`:e;return e?Ts(t)?r(o):null:n&&Ts(t)?r("row"===o?"col":"row"):null},vl=(e,t,o)=>Ke(o(e.element,t),!0,e.isLocked),yl=(e,t,o,n,r,s,l)=>E(e,((e,a)=>((e,c)=>{const i=e.cells,m=E(i,((e,c)=>{if((e=>O(t,(t=>o(e.element,t.element))))(e)){const t=l(e,a,c)?r(e,o,n):e;return s(t,a,c).each((e=>{var o,n;o=t.element,n={scope:C.from(e)},G(n,((e,t)=>{e.fold((()=>{fe(o,t)}),(e=>{ce(o.dom,t,e)}))}))})),t}return e}));return Ye(e.element,m,e.section,e.isNew)})(e))),xl=(e,t,o)=>j(e,((n,r)=>wl(e,r,t,o)?[]:[Lo(n,t)])),Cl=(e,t,o,n,r)=>{const s=jo(e).rows,l=j(t,(e=>xl(s,e,n))),a=E(s,(e=>Rs(e.cells))),c=((e,t)=>I(t,h)&&Rs(e)?x:(e,o,n)=>!("th"===Z(e.element)&&t[o]))(l,a),i=((e,t)=>(o,n)=>C.some(bl(e,o.element,"row",t[n])))(o,a);return yl(e,l,n,r,vl,i,c)},Sl=(e,t,o,n)=>{const r=jo(e).rows,s=E(t,(e=>Lo(r[e.row],e.column)));return yl(e,s,o,n,vl,C.none,x)},Tl=e=>{if(!l(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};return N(e,((n,r)=>{const s=$(n);if(1!==s.length)throw new Error("one and only one name per case");const a=s[0],c=n[a];if(void 0!==o[a])throw new Error("duplicate key detected:"+a);if("cata"===a)throw new Error("cannot have a case named cata (sorry)");if(!l(c))throw new Error("case arguments must be an array");t.push(a),o[a]=(...o)=>{const n=o.length;if(n!==c.length)throw new Error("Wrong number of arguments to case "+a+". Expected "+c.length+" ("+c+"), got "+n);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const n=$(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!I(t,(e=>D(n,e))))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[a].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:a,params:o})}}}})),o},Rl={...Tl([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}])},Dl=(e,t,o)=>{let n=0;for(let r=e;r{const o=Qo(e);return E(o,(e=>{const o=Dl(e.row,e.row+e.rowspan,t);return{element:e.element,height:o,rowspan:e.rowspan}}))},kl=(e,t,o)=>{const n=((e,t)=>Zo(e)?((e,t)=>{const o=Xo(e);return E(o,((e,o)=>({element:e.element,width:t[o],colspan:e.colspan})))})(e,t):((e,t)=>{const o=Qo(e);return E(o,(e=>{const o=Dl(e.column,e.column+e.colspan,t);return{element:e.element,width:o,colspan:e.colspan}}))})(e,t))(e,t);N(n,(e=>{o.setElementWidth(e.element,e.width)}))},El=(e,t,o,n,r)=>{const s=Uo(e),l=r.getCellDelta(t),a=r.getWidths(s,r),c=o===s.grid.columns-1,i=n.clampTableDelta(a,o,l,r.minCellWidth(),c),m=((e,t,o,n,r)=>{const s=e.slice(0),l=((e,t)=>0===e.length?Rl.none():1===e.length?Rl.only(0):0===t?Rl.left(0,1):t===e.length-1?Rl.right(t-1,t):t>0&&tn.singleColumnWidth(s[e],o)),((e,t)=>r.calcLeftEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)),((e,t,l)=>r.calcMiddleDeltas(s,e,t,l,o,n.minCellWidth(),n.isRelative)),((e,t)=>r.calcRightEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)))})(a,o,i,r,n),d=E(m,((e,t)=>e+a[t]));kl(s,d,r),n.resizeTable(r.adjustTableWidth,i,c)},Nl=e=>W(e,((e,t)=>O(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),Bl=ae("col"),zl=ae("colgroup"),Al=e=>"tr"===Z(e)||zl(e),Wl=e=>({element:e,colspan:Et(e,"colspan",1),rowspan:Et(e,"rowspan",1)}),Ll=e=>ue(e,"scope").map((e=>e.substr(0,3))),_l=(e,t=Wl)=>{const o=o=>{if(Al(o))return zl((r={element:o}).element)?e.colgroup(r):e.row(r);{const r=o,s=(t=>Bl(t.element)?e.col(t):e.cell(t))(t(r));return n=C.some({item:r,replacement:s}),s}var r};let n=C.none();return{getOrInit:(e,t)=>n.fold((()=>o(e)),(n=>t(e,n.item)?n.replacement:o(e)))}},Ml=e=>t=>{const o=[],n=n=>{const r="td"===e?{scope:null}:{},s=t.replace(n,e,r);return o.push({item:n,sub:s}),s};return{replaceOrInit:(e,t)=>{if(Al(e)||Bl(e))return e;{const r=e;return((e,t)=>L(o,(o=>t(o.item,e))))(r,t).fold((()=>n(r)),(o=>t(e,o.item)?o.sub:n(r)))}}}},jl=e=>({unmerge:t=>{const o=Ll(t);return o.each((e=>ie(t,"scope",e))),()=>{const n=e.cell({element:t,colspan:1,rowspan:1});return kt(n,"width"),kt(t,"width"),o.each((e=>ie(n,"scope",e))),n}},merge:e=>(kt(e[0],"width"),(()=>{const t=ft(E(e,Ll));if(0===t.length)return C.none();{const e=t[0],o=["row","col"];return O(t,(t=>t!==e&&D(o,t)))?C.none():C.from(e)}})().fold((()=>fe(e[0],"scope")),(t=>ie(e[0],"scope",t+"group"))),g(e[0]))}),Il=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Pl=Fr(),Fl=e=>((e,t)=>{const o=e.property().name(t);return D(Il,o)})(Pl,e),Hl=e=>((e,t)=>{const o=e.property().name(t);return D(["ol","ul"],o)})(Pl,e),ql=e=>{const t=ae("br"),o=e=>hr(e).bind((o=>{const n=ke(o).map((e=>!!Fl(e)||!!((e,t)=>D(["br","img","hr","input"],e.property().name(t)))(Pl,e)&&"img"!==Z(e))).getOr(!1);return Re(o).map((r=>{return!0===n||("li"===Z(s=r)||at(s,Hl).isSome())||t(o)||Fl(r)&&!ye(e,r)?[]:[pe.fromTag("br")];var s}))})).getOr([]),n=(()=>{const n=j(e,(e=>{const n=Ee(e);return(e=>I(e,(e=>t(e)||re(e)&&0===cr(e).trim().length)))(n)?[]:n.concat(o(e))}));return 0===n.length?[pe.fromTag("br")]:n})();je(e[0]),Me(e[0],n)},Vl=e=>Is(e,!0),$l=e=>{0===It(e).length&&Ie(e)},Ul=(e,t)=>({grid:e,cursor:t}),Gl=(e,t,o)=>{const n=((e,t,o)=>{var n,r;const s=jo(e).rows;return C.from(null===(r=null===(n=s[t])||void 0===n?void 0:n.cells[o])||void 0===r?void 0:r.element).filter(Vl).orThunk((()=>(e=>V(e,(e=>V(e.cells,(e=>{const t=e.element;return gt(Vl(t),t)})))))(s)))})(e,t,o);return Ul(e,n)},Kl=e=>W(e,((e,t)=>O(e,(e=>e.row===t.row))?e:e.concat([t])),[]).sort(((e,t)=>e.row-t.row)),Yl=(e,t)=>(o,n,r,s,l)=>{const a=Kl(n),c=E(a,(e=>e.row)),i=((e,t,o,n,r,s,l)=>{const{cols:a,rows:c}=jo(e),i=c[t[0]],m=j(t,(e=>((e,t,o)=>{const n=e[t];return j(n.cells,((n,r)=>wl(e,t,r,o)?[]:[n]))})(c,e,r))),d=E(i.cells,((e,t)=>Rs(xl(c,t,r)))),u=[...c];N(t,(e=>{u[e]=l.transformRow(c[e],o)}));const f=[...a,...u],g=((e,t)=>I(t,h)&&Rs(e.cells)?x:(e,o,n)=>!("th"===Z(e.element)&&t[n]))(i,d),p=((e,t)=>(o,n,r)=>C.some(bl(e,o.element,"col",t[r])))(n,d);return yl(f,m,r,s,l.transformCell,p,g)})(o,c,e,t,r,s.replaceOrInit,l);return Gl(i,n[0].row,n[0].column)},Jl=Yl("thead",!0),Ql=Yl("tbody",!1),Xl=Yl("tfoot",!1),Zl=(e,t,o)=>{const n=((e,t)=>Vt(e,(()=>t)))(e,o.section),r=Go(n);return Us(r,t,!0)},ea=(e,t,o,n)=>((e,t,o,n)=>{const r=Go(t),s=n.getWidths(r,n);kl(r,s,n)})(0,t,0,n.sizing),ta=(e,t,o,n)=>((e,t,o,n,r)=>{const s=Go(t),l=n.getWidths(s,n),a=n.pixelWidth(),{newSizes:c,delta:i}=r.calcRedestributedWidths(l,a,o.pixelDelta,n.isRelative);kl(s,c,n),n.adjustTableWidth(i)})(0,t,o,n.sizing,n.resize),oa=(e,t)=>O(t,(e=>0===e.column&&e.isLocked)),na=(e,t)=>O(t,(t=>t.column+t.colspan>=e.grid.columns&&t.isLocked)),ra=(e,t)=>{const o=tn(e),n=Nl(t);return W(n,((e,t)=>e+o[t.column].map(Eo).getOr(0)),0)},sa=e=>(t,o)=>Xs(t,o).filter((o=>!(e?oa:na)(t,o))).map((e=>({details:e,pixelDelta:ra(t,e)}))),la=e=>(t,o)=>Qs(t,o).filter((o=>!(e?oa:na)(t,o.cells))),aa=Ml("th"),ca=Ml("td"),ia=Js(((e,t,o,n)=>{const r=t[0].row,s=Kl(t),l=A(s,((e,t)=>({grid:hl(e.grid,r,t.row+e.delta,o,n.getOrInit),delta:e.delta+1})),{grid:e,delta:0}).grid;return Gl(l,r,t[0].column)}),Xs,f,f,_l),ma=Js(((e,t,o,n)=>{const r=Kl(t),s=r[r.length-1],l=s.row+s.rowspan,a=A(r,((e,t)=>hl(e,l,t.row,o,n.getOrInit)),e);return Gl(a,l,t[0].column)}),Xs,f,f,_l),da=Js(((e,t,o,n)=>{const r=t.details,s=Nl(r),l=s[0].column,a=A(s,((e,t)=>({grid:pl(e.grid,l,t.column+e.delta,o,n.getOrInit),delta:e.delta+1})),{grid:e,delta:0}).grid;return Gl(a,r[0].row,l)}),sa(!0),ta,f,_l),ua=Js(((e,t,o,n)=>{const r=t.details,s=r[r.length-1],l=s.column+s.colspan,a=Nl(r),c=A(a,((e,t)=>pl(e,l,t.column,o,n.getOrInit)),e);return Gl(c,r[0].row,l)}),sa(!1),ta,f,_l),fa=Js(((e,t,o,n)=>{const r=Nl(t.details),s=((e,t)=>j(e,(e=>{const o=e.cells,n=A(t,((e,t)=>t>=0&&t0?[Ye(e.element,n,e.section,e.isNew)]:[]})))(e,E(r,(e=>e.column))),l=s.length>0?s[0].cells.length-1:0;return Gl(s,r[0].row,Math.min(r[0].column,l))}),((e,t)=>Zs(e,t).map((t=>({details:t,pixelDelta:-ra(e,t)})))),ta,$l,_l),ga=Js(((e,t,o,n)=>{const r=Kl(t),s=((e,t,o)=>{const{rows:n,cols:r}=jo(e);return[...r,...n.slice(0,t),...n.slice(o+1)]})(e,r[0].row,r[r.length-1].row),l=s.length>0?s.length-1:0;return Gl(s,Math.min(t[0].row,l),t[0].column)}),Xs,f,$l,_l),ha=Js(((e,t,o,n)=>{const r=Nl(t),s=E(r,(e=>e.column)),l=Cl(e,s,!0,o,n.replaceOrInit);return Gl(l,t[0].row,t[0].column)}),Zs,f,f,aa),pa=Js(((e,t,o,n)=>{const r=Nl(t),s=E(r,(e=>e.column)),l=Cl(e,s,!1,o,n.replaceOrInit);return Gl(l,t[0].row,t[0].column)}),Zs,f,f,ca),wa=Js(Jl,Zs,f,f,aa),ba=Js(Ql,Zs,f,f,ca),va=Js(Xl,Zs,f,f,ca),ya=Js(((e,t,o,n)=>{const r=Sl(e,t,o,n.replaceOrInit);return Gl(r,t[0].row,t[0].column)}),Zs,f,f,aa),xa=Js(((e,t,o,n)=>{const r=Sl(e,t,o,n.replaceOrInit);return Gl(r,t[0].row,t[0].column)}),Zs,f,f,ca),Ca=Js(((e,t,o,n)=>{const r=t.cells;ql(r);const s=((e,t,o,n)=>{const r=jo(e).rows;if(0===r.length)return e;for(let e=t.startRow;e<=t.finishRow;e++)for(let o=t.startCol;o<=t.finishCol;o++){const t=r[e],s=Lo(t,o).isLocked;Ao(t,o,Ke(n(),!1,s))}return e})(e,t.bounds,0,n.merge(r));return Ul(s,C.from(r[0]))}),((e,t)=>((e,t)=>t.mergable)(0,t).filter((t=>el(e,t.cells)))),ea,f,jl),Sa=Js(((e,t,o,n)=>{const r=A(t,((e,t)=>tl(e,t,o,n.unmerge(t))),e);return Ul(r,C.from(t[0]))}),((e,t)=>((e,t)=>t.unmergable)(0,t).filter((t=>el(e,t)))),ea,f,jl),Ta=Js(((e,t,o,n)=>{const r=((e,t)=>{const o=Uo(e);return Us(o,t,!0)})(t.clipboard,t.generators);var s,l;return((e,t,o,n,r)=>{const s=Ho(t),l=((e,t,o)=>{const n=Mo(t[0]),r=jo(t).cols.length+e.row,s=k(n-e.column,(t=>t+e.column));return{row:r,column:L(s,(e=>I(o,(t=>t!==e)))).getOr(n-1)}})(e,t,s),a=jo(o).rows,c=ul(l,a,s),i=((e,t,o)=>{if(e.row>=t.length||e.column>Mo(t[0]))return rl.error("invalid start address out of table bounds, row: "+e.row+", column: "+e.column);const n=t.slice(e.row),r=n[0].cells.slice(e.column),s=Mo(o[0]),l=o.length;return rl.value({rowDelta:n.length-l,colDelta:r.length-s})})(l,t,a);return i.map((e=>{const o={...e,colDelta:e.colDelta-c.length},s=ml(t,o,n),i=Ho(s),m=ul(l,a,i);return((e,t,o,n,r,s)=>{const l=e.row,a=e.column,c=l+o.length,i=a+Mo(o[0])+s.length,m=P(s,x);for(let e=l;eUl(e,C.some(t.element))),(e=>Gl(e,t.row,t.column)))}),((e,t)=>jt(t.element).bind((o=>Ks(e,o).map((e=>({...e,generators:t.generators,clipboard:t.clipboard})))))),ea,f,_l),Ra=Js(((e,t,o,n)=>{const r=jo(e).rows,s=t.cells[0].column,l=r[t.cells[0].row],a=Zl(t.clipboard,t.generators,l),c=fl(s,e,a,t.generators,o);return Gl(c,t.cells[0].row,t.cells[0].column)}),la(!0),f,f,_l),Da=Js(((e,t,o,n)=>{const r=jo(e).rows,s=t.cells[t.cells.length-1].column+t.cells[t.cells.length-1].colspan,l=r[t.cells[0].row],a=Zl(t.clipboard,t.generators,l),c=fl(s,e,a,t.generators,o);return Gl(c,t.cells[0].row,t.cells[0].column)}),la(!1),f,f,_l),Oa=Js(((e,t,o,n)=>{const r=jo(e).rows,s=t.cells[0].row,l=r[s],a=Zl(t.clipboard,t.generators,l),c=gl(s,e,a,t.generators,o);return Gl(c,t.cells[0].row,t.cells[0].column)}),Qs,f,f,_l),ka=Js(((e,t,o,n)=>{const r=jo(e).rows,s=t.cells[t.cells.length-1].row+t.cells[t.cells.length-1].rowspan,l=r[t.cells[0].row],a=Zl(t.clipboard,t.generators,l),c=gl(s,e,a,t.generators,o);return Gl(c,t.cells[0].row,t.cells[0].column)}),Qs,f,f,_l),Ea=(e,t)=>{const o=Uo(e);return Xs(o,t).bind((e=>{const t=e[e.length-1],n=e[0].column,r=t.column+t.colspan,s=M(E(o.all,(e=>z(e.cells,(e=>e.column>=n&&e.column{const o=Uo(e);return Xs(o,t).bind(ks).getOr("")},Ba=(e,t)=>{const o=Uo(e);return Xs(o,t).bind((e=>{const t=e[e.length-1],n=e[0].row,r=t.row+t.rowspan;return(e=>{const t=E(e,(e=>Os(e).type)),o=D(t,"header"),n=D(t,"footer");if(o||n){const e=D(t,"body");return!o||e||n?o||e||!n?C.none():C.some("footer"):C.some("header")}return C.some("body")})(o.all.slice(n,r))})).getOr("")},za=(e,t)=>e.dispatch("NewRow",{node:t}),Aa=(e,t)=>e.dispatch("NewCell",{node:t}),Wa=(e,t,o)=>{e.dispatch("TableModified",{...o,table:t})},La={structure:!1,style:!0},_a={structure:!0,style:!1},Ma={structure:!0,style:!0},ja=e=>t=>t.options.get(e),Ia="100%",Pa=e=>{var t;const o=e.dom,n=null!==(t=o.getParent(e.selection.getStart(),o.isBlock))&&void 0!==t?t:e.getBody();return No(pe.fromDom(n))+"px"},Fa=e=>C.from(e.options.get("table_clone_elements")),Ha=ja("table_header_type"),qa=ja("table_column_resizing"),Va=e=>"preservetable"===qa(e),$a=e=>"resizetable"===qa(e),Ua=ja("table_sizing_mode"),Ga=e=>"relative"===Ua(e),Ka=e=>"fixed"===Ua(e),Ya=e=>"responsive"===Ua(e),Ja=ja("table_resize_bars"),Qa=ja("table_style_by_css"),Xa=e=>{const t=e.options,o=t.get("table_default_attributes");return t.isSet("table_default_attributes")?o:((e,t)=>Ya(e)||Qa(e)?t:Ka(e)?{...t,width:Pa(e)}:{...t,width:Ia})(e,o)},Za=ja("table_use_colgroups"),ec=(e,t)=>Ga(e)?sr(t):Ka(e)?rr(t):nr(t),tc=(e,t,o)=>{const n=e=>"table"===Z(Dr(e)),r=Fa(e),s=$a(e)?f:hs,l=t=>{switch(Ha(e)){case"section":return Ws();case"sectionCells":return Ls();case"cells":return _s();default:return((e,t)=>{var o;switch((o=Uo(e),V(o.all,(e=>{const t=Os(e);return"header"===t.type?C.from(t.subType):C.none()}))).getOr(t)){case"section":return Bs();case"sectionCells":return zs();case"cells":return As()}})(t,"section")}},a=(n,s,a,c)=>(i,m,d=!1)=>{kr(i);const u=pe.fromDom(e.getDoc()),f=Tr(a,u,r),g={sizing:ec(e,i),resize:$a(e)?xs():Cs(),section:l(i)};return s(i)?n(i,m,f,g).bind((n=>{t.refresh(i.dom),N(n.newRows,(t=>{za(e,t.dom)})),N(n.newCells,(t=>{Aa(e,t.dom)}));const r=((t,n)=>n.cursor.fold((()=>{const n=It(t);return H(n).filter(et).map((n=>{o.clearSelectedCells(t.dom);const r=e.dom.createRng();return r.selectNode(n.dom),e.selection.setRng(r),ie(n,"data-mce-selected","1"),r}))}),(n=>{const r=fs(gs,n),s=e.dom.createRng();return s.setStart(r.element.dom,r.offset),s.setEnd(r.element.dom,r.offset),e.selection.setRng(s),o.clearSelectedCells(t.dom),C.some(s)})))(i,n);return et(i)&&(kr(i),d||Wa(e,i.dom,c)),r.map((e=>({rng:e,effect:c})))})):C.none()},c=a(ga,(t=>!n(e)||Ss(t).rows>1),f,_a),i=a(fa,(t=>!n(e)||Ss(t).columns>1),f,_a);return{deleteRow:c,deleteColumn:i,insertRowsBefore:a(ia,x,f,_a),insertRowsAfter:a(ma,x,f,_a),insertColumnsBefore:a(da,x,s,_a),insertColumnsAfter:a(ua,x,s,_a),mergeCells:a(Ca,x,f,_a),unmergeCells:a(Sa,x,f,_a),pasteColsBefore:a(Ra,x,f,_a),pasteColsAfter:a(Da,x,f,_a),pasteRowsBefore:a(Oa,x,f,_a),pasteRowsAfter:a(ka,x,f,_a),pasteCells:a(Ta,x,f,Ma),makeCellsHeader:a(ya,x,f,_a),unmakeCellsHeader:a(xa,x,f,_a),makeColumnsHeader:a(ha,x,f,_a),unmakeColumnsHeader:a(pa,x,f,_a),makeRowsHeader:a(wa,x,f,_a),makeRowsBody:a(ba,x,f,_a),makeRowsFooter:a(va,x,f,_a),getTableRowType:Ba,getTableCellType:Na,getTableColType:Ea}},oc=(e,t,o)=>{const n=Et(e,t,1);1===o||n<=1?fe(e,t):ie(e,t,Math.min(o,n))},nc=(e,t)=>o=>{const n=o.column+o.colspan-1,r=o.column;return n>=e&&r{const n=o.substring(0,o.length-e.length),r=parseFloat(n);return n===r.toString()?t(r):rc.invalid(o)},lc={...rc,from:e=>bt(e,"%")?sc("%",rc.percent,e):bt(e,"px")?sc("px",rc.pixels,e):rc.invalid(e)},ac=(e,t,o)=>{const n=lc.from(o),r=I(e,(e=>"0px"===e))?((e,t)=>{const o=e.fold((()=>g("")),(e=>g(e/t+"px")),(()=>g(100/t+"%")));return k(t,o)})(n,e.length):((e,t,o)=>e.fold((()=>t),(e=>((e,t,o)=>{const n=o/t;return E(e,(e=>lc.from(e).fold((()=>e),(e=>e*n+"px"),(e=>e/100*o+"px"))))})(t,o,e)),(e=>((e,t)=>E(e,(e=>lc.from(e).fold((()=>e),(e=>e/t*100+"%"),(e=>e+"%")))))(t,o))))(n,e,t);return mc(r)},cc=(e,t)=>0===e.length?t:A(e,((e,t)=>lc.from(t).fold(g(0),h,h)+e),0),ic=(e,t)=>lc.from(e).fold(g(e),(e=>e+t+"px"),(e=>e+t+"%")),mc=e=>{if(0===e.length)return e;const t=A(e,((e,t)=>{const o=lc.from(t).fold((()=>({value:t,remainder:0})),(e=>((e,t)=>{const o=Math.floor(e);return{value:o+"px",remainder:e-o}})(e)),(e=>({value:e+"%",remainder:0})));return{output:[o.value].concat(e.output),remainder:e.remainder+o.remainder}}),{output:[],remainder:0}),o=t.output;return o.slice(0,o.length-1).concat([ic(o[o.length-1],Math.round(t.remainder))])},dc=lc.from,uc=e=>dc(e).fold(g("px"),g("px"),g("%")),fc=(e,t,o)=>{const n=Uo(e),r=n.all,s=Qo(n),l=Xo(n);t.each((t=>{const o=uc(t),r=ko(e),a=((e,t)=>Jn(e,t,Gn,Qn))(n,e),c=ac(a,r,t);Zo(n)?((e,t,o)=>{N(t,((t,n)=>{const r=cc([e[n]],Wt());St(t.element,"width",r+o)}))})(c,l,o):((e,t,o)=>{N(t,(t=>{const n=e.slice(t.column,t.colspan+t.column),r=cc(n,Wt());St(t.element,"width",r+o)}))})(c,s,o),St(e,"width",t)})),o.each((t=>{const o=uc(t),l=an(e),a=((e,t,o)=>Zn(e,t,o,Kn,Qn))(n,e,Rn);((e,t,o,n)=>{N(o,(t=>{const o=e.slice(t.row,t.rowspan+t.row),r=cc(o,Lt());St(t.element,"height",r+n)})),N(t,((t,o)=>{St(t.element,"height",e[o])}))})(ac(a,l,t),r,s,o),St(e,"height",t)}))},gc=e=>In(e).exists((e=>Nn.test(e))),hc=e=>In(e).exists((e=>Bn.test(e))),pc=e=>In(e).isNone(),wc=e=>{fe(e,"width")},bc=e=>{const t=Vn(e);fc(e,C.some(t),C.none()),wc(e)},vc=e=>{const t=(e=>ko(e)+"px")(e);fc(e,C.some(t),C.none()),wc(e)},yc=e=>{kt(e,"width");const t=Pt(e),o=t.length>0?t:It(e);N(o,(e=>{kt(e,"width"),wc(e)})),wc(e)},xc={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},colGroups:!1},Cc=(e,t,o,n)=>k(e,(e=>((e,t,o,n)=>{const r=pe.fromTag("tr");for(let s=0;s{e.selection.select(t.dom,!0),e.selection.collapse(!0)},Tc=(e,t,o,n,s)=>{const l=(e=>{const t=e.options,o=t.get("table_default_styles");return t.isSet("table_default_styles")?o:((e,t)=>Ya(e)||!Qa(e)?t:Ka(e)?{...t,width:Pa(e)}:{...t,width:Ia})(e,o)})(e),a={styles:l,attributes:Xa(e),colGroups:Za(e)};return e.undoManager.ignore((()=>{const r=((e,t,o,n,r,s=xc)=>{const l=pe.fromTag("table"),a="cells"!==r;Tt(l,s.styles),me(l,s.attributes),s.colGroups&&We(l,(e=>{const t=pe.fromTag("colgroup");return k(e,(()=>We(t,pe.fromTag("col")))),t})(t));const c=Math.min(e,o);if(a&&o>0){const e=pe.fromTag("thead");We(l,e);const s=Cc(o,t,"sectionCells"===r?c:0,n);Me(e,s)}const i=pe.fromTag("tbody");We(l,i);const m=Cc(a?e-c:e,t,a?0:o,n);return Me(i,m),l})(o,t,s,n,Ha(e),a);ie(r,"data-mce-id","__mce");const l=(e=>{const t=pe.fromTag("div"),o=pe.fromDom(e.dom.cloneNode(!0));return We(t,o),(e=>e.dom.innerHTML)(t)})(r);e.insertContent(l),e.addVisual()})),mt(Dr(e),'table[data-mce-id="__mce"]').map((t=>(Ka(e)?vc(t):Ya(e)?yc(t):(Ga(e)||(e=>r(e)&&-1!==e.indexOf("%"))(l.width))&&bc(t),kr(t),fe(t,"data-mce-id"),((e,t)=>{N(st(t,"tr"),(t=>{za(e,t.dom),N(st(t,"th,td"),(t=>{Aa(e,t.dom)}))}))})(e,t),((e,t)=>{mt(t,"td,th").each(w(Sc,e))})(e,t),t.dom))).getOrNull()};var Rc=tinymce.util.Tools.resolve("tinymce.FakeClipboard");const Dc="x-tinymce/dom-table-",Oc=Dc+"rows",kc=Dc+"columns",Ec=e=>{const t=Rc.FakeClipboardItem(e);Rc.write([t])},Nc=e=>{var t;const o=null!==(t=Rc.read())&&void 0!==t?t:[];return V(o,(t=>C.from(t.getType(e))))},Bc=e=>{Nc(e).isSome()&&Rc.clear()},zc=e=>{e.fold(Wc,(e=>Ec({[Oc]:e})))},Ac=()=>Nc(Oc),Wc=()=>Bc(Oc),Lc=e=>{e.fold(Mc,(e=>Ec({[kc]:e})))},_c=()=>Nc(kc),Mc=()=>Bc(kc),jc=e=>ss(Er(e),Or(e)),Ic=(e,t)=>{const o=Or(e),n=e=>Ft(e,o),l=t=>(e=>ls(Er(e),Or(e)))(e).bind((e=>n(e).map((o=>t(o,e))))),a=t=>{e.focus()},c=(t,o=!1)=>l(((n,r)=>{const s=ns(as(e),n,r);t(n,s,o).each(a)})),i=()=>l(((t,o)=>((e,t,o)=>{const n=Uo(e);return Xs(n,t).bind((e=>{const t=Us(n,o,!1),r=jo(t).rows.slice(e[0].row,e[e.length-1].row+e[e.length-1].rowspan),s=j(r,(e=>{const t=z(e.cells,(e=>!e.isLocked));return t.length>0?[{...e,cells:t}]:[]})),l=Gs(s);return gt(l.length>0,l)})).map((e=>E(e,(e=>{const t=He(e.element);return N(e.cells,(e=>{const o=qe(e.element);Fs(o,"colspan",e.colspan,1),Fs(o,"rowspan",e.rowspan,1),We(t,o)})),t}))))})(t,ns(as(e),t,o),Tr(f,pe.fromDom(e.getDoc()),C.none())))),m=()=>l(((t,o)=>((e,t)=>{const o=Uo(e);return Zs(o,t).map((e=>{const t=e[e.length-1],n=e[0].column,r=t.column+t.colspan,s=((e,t,o)=>{if(Zo(e)){const n=z(Xo(e),nc(t,o)),r=E(n,(e=>{const n=qe(e.element);return oc(n,"span",o-t),n})),s=pe.fromTag("colgroup");return Me(s,r),[s]}return[]})(o,n,r),l=((e,t,o)=>E(e.all,(e=>{const n=z(e.cells,nc(t,o)),r=E(n,(e=>{const n=qe(e.element);return oc(n,"colspan",o-t),n})),s=pe.fromTag("tr");return Me(s,r),s})))(o,n,r);return[...s,...l]}))})(t,ns(as(e),t,o)))),d=(t,o)=>o().each((o=>{const n=E(o,(e=>qe(e)));l(((o,r)=>{const s=Rr(pe.fromDom(e.getDoc())),l=((e,t,o,n)=>({selection:Zr(e),clipboard:o,generators:n}))(as(e),0,n,s);t(o,l).each(a)}))})),g=e=>(t,o)=>((e,t)=>X(e,t)?C.from(e.type):C.none())(o,"type").each((t=>{c(e(t),o.no_events)}));G({mceTablasplitCells:()=>c(t.unmergeCells),mceTableMergeCells:()=>c(t.mergeCells),mceTableInsertRowBefore:()=>c(t.insertRowsBefore),mceTableInsertRowAfter:()=>c(t.insertRowsAfter),mceTableInsertColBefore:()=>c(t.insertColumnsBefore),mceTableInsertColAfter:()=>c(t.insertColumnsAfter),mceTableDeleteCol:()=>c(t.deleteColumn),mceTableDeleteRow:()=>c(t.deleteRow),mceTableCutCol:()=>m().each((e=>{Lc(e),c(t.deleteColumn)})),mceTableCutRow:()=>i().each((e=>{zc(e),c(t.deleteRow)})),mceTableCopyCol:()=>m().each((e=>Lc(e))),mceTableCopyRow:()=>i().each((e=>zc(e))),mceTablePasteColBefore:()=>d(t.pasteColsBefore,_c),mceTablePasteColAfter:()=>d(t.pasteColsAfter,_c),mceTablePasteRowBefore:()=>d(t.pasteRowsBefore,Ac),mceTablePasteRowAfter:()=>d(t.pasteRowsAfter,Ac),mceTableDelete:()=>jc(e).each((t=>{Ft(t,o).filter(b(o)).each((t=>{const o=pe.fromText("");if(ze(t,o),Ie(t),e.dom.isEmpty(e.getBody()))e.setContent(""),e.selection.setCursorLocation();else{const t=e.dom.createRng();t.setStart(o.dom,0),t.setEnd(o.dom,0),e.selection.setRng(t),e.nodeChanged()}}))})),mceTableCellToggleClass:(t,o)=>{l((t=>{const n=as(e),r=I(n,(t=>e.formatter.match("tablecellclass",{value:o},t.dom))),s=r?e.formatter.remove:e.formatter.apply;N(n,(e=>s("tablecellclass",{value:o},e.dom))),Wa(e,t.dom,La)}))},mceTableToggleClass:(t,o)=>{l((t=>{e.formatter.toggle("tableclass",{value:o},t.dom),Wa(e,t.dom,La)}))},mceTableToggleCaption:()=>{jc(e).each((t=>{Ft(t,o).each((o=>{it(o,"caption").fold((()=>{const t=pe.fromTag("caption");We(t,pe.fromText("Caption")),((e,t,o)=>{Ne(e,0).fold((()=>{We(e,t)}),(e=>{Be(e,t)}))})(o,t),e.selection.setCursorLocation(t.dom,0)}),(n=>{ae("caption")(t)&&ve("td",o).each((t=>e.selection.setCursorLocation(t.dom,0))),Ie(n)})),Wa(e,o.dom,_a)}))}))},mceTablasizingMode:(t,n)=>(t=>jc(e).each((n=>{Ya(e)||Ka(e)||Ga(e)||Ft(n,o).each((o=>{"relative"!==t||gc(o)?"fixed"!==t||hc(o)?"responsive"!==t||pc(o)||yc(o):vc(o):bc(o),kr(o),Wa(e,o.dom,_a)}))})))(n),mceTableCellType:g((e=>"th"===e?t.makeCellsHeader:t.unmakeCellsHeader)),mceTableColType:g((e=>"th"===e?t.makeColumnsHeader:t.unmakeColumnsHeader)),mceTableRowType:g((e=>{switch(e){case"header":return t.makeRowsHeader;case"footer":return t.makeRowsFooter;default:return t.makeRowsBody}}))},((t,o)=>e.addCommand(o,t))),e.addCommand("mceInsertTable",((t,o)=>{((e,t,o,n={})=>{const r=e=>u(e)&&e>0;if(r(t)&&r(o)){const r=n.headerRows||0,s=n.headerColumns||0;return Tc(e,o,t,s,r)}console.error("Invalid values for mceInsertTable - rows and columns values are required to insert a table.")})(e,o.rows,o.columns,o.options)})),e.addCommand("mceTableApplyCellStyle",((t,o)=>{const l=e=>"tablecell"+e.toLowerCase().replace("-","");if(!s(o))return;const a=as(e);if(0===a.length)return;const c=((e,t)=>{const o={};return((e,t,o,n)=>{G(e,((e,r)=>{(t(e,r)?o:n)(e,r)}))})(e,t,(e=>(t,o)=>{e[o]=t})(o),f),o})(o,((t,o)=>e.formatter.has(l(o))&&r(t)));(e=>{for(const t in e)if(U.call(e,t))return!1;return!0})(c)||(G(c,((t,o)=>{const n=l(o);N(a,(o=>{""===t?e.formatter.remove(n,{value:null},o.dom,!0):e.formatter.apply(n,{value:t},o.dom)}))})),n(a[0]).each((t=>Wa(e,t.dom,La))))}))},Pc=Tl([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Fc={before:Pc.before,on:Pc.on,after:Pc.after,cata:(e,t,o,n)=>e.fold(t,o,n),getStart:e=>e.fold(h,h,h)},Hc=(e,t)=>({selection:e,kill:t}),qc=(e,t)=>{const o=e.document.createRange();return o.selectNode(t.dom),o},Vc=(e,t)=>{const o=e.document.createRange();return $c(o,t),o},$c=(e,t)=>e.selectNodeContents(t.dom),Uc=(e,t,o)=>{const n=e.document.createRange();var r;return r=n,t.fold((e=>{r.setStartBefore(e.dom)}),((e,t)=>{r.setStart(e.dom,t)}),(e=>{r.setStartAfter(e.dom)})),((e,t)=>{t.fold((t=>{e.setEndBefore(t.dom)}),((t,o)=>{e.setEnd(t.dom,o)}),(t=>{e.setEndAfter(t.dom)}))})(n,o),n},Gc=(e,t,o,n,r)=>{const s=e.document.createRange();return s.setStart(t.dom,o),s.setEnd(n.dom,r),s},Kc=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom,width:e.width,height:e.height}),Yc=Tl([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Jc=(e,t,o)=>t(pe.fromDom(o.startContainer),o.startOffset,pe.fromDom(o.endContainer),o.endOffset),Qc=(e,t)=>{const o=((e,t)=>t.match({domRange:e=>({ltr:g(e),rtl:C.none}),relative:(t,o)=>({ltr:Gt((()=>Uc(e,t,o))),rtl:Gt((()=>C.some(Uc(e,o,t))))}),exact:(t,o,n,r)=>({ltr:Gt((()=>Gc(e,t,o,n,r))),rtl:Gt((()=>C.some(Gc(e,n,r,t,o))))})}))(e,t);return((e,t)=>{const o=t.ltr();return o.collapsed?t.rtl().filter((e=>!1===e.collapsed)).map((e=>Yc.rtl(pe.fromDom(e.endContainer),e.endOffset,pe.fromDom(e.startContainer),e.startOffset))).getOrThunk((()=>Jc(0,Yc.ltr,o))):Jc(0,Yc.ltr,o)})(0,o)},Xc=(e,t)=>Qc(e,t).match({ltr:(t,o,n,r)=>{const s=e.document.createRange();return s.setStart(t.dom,o),s.setEnd(n.dom,r),s},rtl:(t,o,n,r)=>{const s=e.document.createRange();return s.setStart(n.dom,r),s.setEnd(t.dom,o),s}});Yc.ltr,Yc.rtl;const Zc=(e,t,o,n)=>({start:e,soffset:t,finish:o,foffset:n}),ei=(e,t,o,n)=>({start:Fc.on(e,t),finish:Fc.on(o,n)}),ti=(e,t)=>{const o=Xc(e,t);return Zc(pe.fromDom(o.startContainer),o.startOffset,pe.fromDom(o.endContainer),o.endOffset)},oi=ei,ni=(e,t,o,n,r)=>ye(o,n)?C.none():Gr(o,n,t).bind((t=>{const n=t.boxes.getOr([]);return n.length>1?(r(e,n,t.start,t.finish),C.some(Hc(C.some(oi(o,0,o,dr(o))),!0))):C.none()})),ri=(e,t)=>({item:e,mode:t}),si=(e,t,o,n=li)=>e.property().parent(t).map((e=>ri(e,n))),li=(e,t,o,n=ai)=>o.sibling(e,t).map((e=>ri(e,n))),ai=(e,t,o,n=ai)=>{const r=e.property().children(t);return o.first(r).map((e=>ri(e,n)))},ci=[{current:si,next:li,fallback:C.none()},{current:li,next:ai,fallback:C.some(si)},{current:ai,next:ai,fallback:C.some(li)}],ii=(e,t,o,n,r=ci)=>L(r,(e=>e.current===o)).bind((o=>o.current(e,t,n,o.next).orThunk((()=>o.fallback.bind((o=>ii(e,t,o,n))))))),mi=(e,t,o,n,r,s)=>ii(e,t,n,r).bind((t=>s(t.item)?C.none():o(t.item)?C.some(t.item):mi(e,t.item,o,t.mode,r,s))),di=e=>t=>0===e.property().children(t).length,ui=(e,t,o,n)=>mi(e,t,o,li,{sibling:(e,t)=>e.query().prevSibling(t),first:e=>e.length>0?C.some(e[e.length-1]):C.none()},n),fi=(e,t,o,n)=>mi(e,t,o,li,{sibling:(e,t)=>e.query().nextSibling(t),first:e=>e.length>0?C.some(e[0]):C.none()},n),gi=Fr(),hi=(e,t)=>((e,t,o)=>ui(e,t,di(e),o))(gi,e,t),pi=(e,t)=>((e,t,o)=>fi(e,t,di(e),o))(gi,e,t),wi=Tl([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}]),bi=e=>dt(e,"tr"),vi={...wi,verify:(e,t,o,n,r,s,l)=>dt(n,"td,th",l).bind((o=>dt(t,"td,th",l).map((t=>ye(o,t)?ye(n,o)&&dr(o)===r?s(t):wi.none("in same cell"):$r(bi,[o,t]).fold((()=>((e,t,o)=>{const n=e.getRect(t),r=e.getRect(o);return r.right>n.left&&r.lefts(t))))))).getOr(wi.none("default")),cata:(e,t,o,n,r)=>e.fold(t,o,n,r)},yi=ae("br"),xi=(e,t,o)=>t(e,o).bind((e=>re(e)&&0===cr(e).trim().length?xi(e,t,o):C.some(e))),Ci=(e,t,o,n)=>((e,t)=>Ne(e,t).filter(yi).orThunk((()=>Ne(e,t-1).filter(yi))))(t,o).bind((t=>n.traverse(t).fold((()=>xi(t,n.gather,e).map(n.relative)),(e=>(e=>Re(e).bind((t=>{const o=Ee(t);return((e,t)=>_(e,w(ye,t)))(o,e).map((n=>((e,t,o,n)=>({parent:e,children:t,element:o,index:n}))(t,o,e,n)))})))(e).map((e=>Fc.on(e.parent,e.index))))))),Si=(e,t)=>({left:e.left,top:e.top+t,right:e.right,bottom:e.bottom+t}),Ti=(e,t)=>({left:e.left,top:e.top-t,right:e.right,bottom:e.bottom-t}),Ri=(e,t,o)=>({left:e.left+t,top:e.top+o,right:e.right+t,bottom:e.bottom+o}),Di=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom}),Oi=(e,t)=>C.some(e.getRect(t)),ki=(e,t,o)=>ne(t)?Oi(e,t).map(Di):re(t)?((e,t,o)=>o>=0&&o0?e.getRangedRect(t,o-1,t,o):C.none())(e,t,o).map(Di):C.none(),Ei=(e,t)=>ne(t)?Oi(e,t).map(Di):re(t)?e.getRangedRect(t,0,t,dr(t)).map(Di):C.none(),Ni=Tl([{none:[]},{retry:["caret"]}]),Bi=(e,t,o)=>{return(n=t,r=Fl,lt(((e,t)=>t(e)),at,n,r,undefined)).fold(y,(t=>Ei(e,t).exists((e=>((e,t)=>e.leftt.right)(o,e)))));var n,r},zi={point:e=>e.bottom,adjuster:(e,t,o,n,r)=>{const s=Si(r,5);return Math.abs(o.bottom-n.bottom)<1||o.top>r.bottom?Ni.retry(s):o.top===r.bottom?Ni.retry(Si(r,1)):Bi(e,t,r)?Ni.retry(Ri(s,5,0)):Ni.none()},move:Si,gather:pi},Ai=(e,t,o,n,r)=>0===r?C.some(n):((e,t,o)=>e.elementFromPoint(t,o).filter((e=>"table"===Z(e))).isSome())(e,n.left,t.point(n))?((e,t,o,n,r)=>Ai(e,t,o,t.move(n,5),r))(e,t,o,n,r-1):e.situsFromPoint(n.left,t.point(n)).bind((s=>s.start.fold(C.none,(s=>Ei(e,s).bind((l=>t.adjuster(e,s,l,o,n).fold(C.none,(n=>Ai(e,t,o,n,r-1))))).orThunk((()=>C.some(n)))),C.none))),Wi=(e,t,o)=>{const n=e.move(o,5),r=Ai(t,e,o,n,100).getOr(n);return((e,t,o)=>e.point(t)>o.getInnerHeight()?C.some(e.point(t)-o.getInnerHeight()):e.point(t)<0?C.some(-e.point(t)):C.none())(e,r,t).fold((()=>t.situsFromPoint(r.left,e.point(r))),(o=>(t.scrollBy(0,o),t.situsFromPoint(r.left,e.point(r)-o))))},Li={tryUp:w(Wi,{point:e=>e.top,adjuster:(e,t,o,n,r)=>{const s=Ti(r,5);return Math.abs(o.top-n.top)<1||o.bottome.getSelection().bind((n=>((e,t,o,n)=>{const r=yi(t)?((e,t,o)=>o.traverse(t).orThunk((()=>xi(t,o.gather,e))).map(o.relative))(e,t,n):Ci(e,t,o,n);return r.map((e=>({start:e,finish:e})))})(t,n.finish,n.foffset,o).fold((()=>C.some(is(n.finish,n.foffset))),(r=>{const s=e.fromSitus(r);return l=vi.verify(e,n.finish,n.foffset,s.finish,s.foffset,o.failure,t),vi.cata(l,(e=>C.none()),(()=>C.none()),(e=>C.some(is(e,0))),(e=>C.some(is(e,dr(e)))));var l})))),Mi=(e,t,o,n,r,s)=>0===s?C.none():Pi(e,t,o,n,r).bind((l=>{const a=e.fromSitus(l),c=vi.verify(e,o,n,a.finish,a.foffset,r.failure,t);return vi.cata(c,(()=>C.none()),(()=>C.some(l)),(l=>ye(o,l)&&0===n?ji(e,o,n,Ti,r):Mi(e,t,l,0,r,s-1)),(l=>ye(o,l)&&n===dr(l)?ji(e,o,n,Si,r):Mi(e,t,l,dr(l),r,s-1)))})),ji=(e,t,o,n,r)=>ki(e,t,o).bind((t=>Ii(e,r,n(t,Li.getJumpSize())))),Ii=(e,t,o)=>{const n=To().browser;return n.isChromium()||n.isSafari()||n.isFirefox()?t.retry(e,o):C.none()},Pi=(e,t,o,n,r)=>ki(e,o,n).bind((t=>Ii(e,r,t))),Fi=(e,t,o,n,r)=>dt(n,"td,th",t).bind((n=>dt(n,"table",t).bind((s=>((e,t)=>at(e,(e=>Re(e).exists((e=>ye(e,t)))),void 0).isSome())(r,s)?((e,t,o)=>_i(e,t,o).bind((n=>Mi(e,t,n.element,n.offset,o,20).map(e.fromSitus))))(e,t,o).bind((e=>dt(e.finish,"td,th",t).map((t=>({start:n,finish:t,range:e}))))):C.none())))),Hi=(e,t,o,n,r,s)=>s(n,t).orThunk((()=>Fi(e,t,o,n,r).map((e=>{const t=e.range;return Hc(C.some(oi(t.start,t.soffset,t.finish,t.foffset)),!0)})))),qi=(e,t)=>dt(e,"tr",t).bind((e=>dt(e,"table",t).bind((o=>{const n=st(o,"tr");return ye(e,n[0])?((e,t,o)=>ui(gi,e,(e=>hr(e).isSome()),o))(o,0,t).map((e=>{const t=dr(e);return Hc(C.some(oi(e,t,e,t)),!0)})):C.none()})))),Vi=(e,t)=>dt(e,"tr",t).bind((e=>dt(e,"table",t).bind((o=>{const n=st(o,"tr");return ye(e,n[n.length-1])?((e,t,o)=>fi(gi,e,(e=>gr(e).isSome()),o))(o,0,t).map((e=>Hc(C.some(oi(e,0,e,0)),!0))):C.none()})))),$i=(e,t,o,n,r,s,l)=>Fi(e,o,n,r,s).bind((e=>ni(t,o,e.start,e.finish,l))),Ui=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},Gi=()=>{const e=(e=>{const t=Ui(C.none()),o=()=>t.get().each(e);return{clear:()=>{o(),t.set(C.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{o(),t.set(C.some(e))}}})(f);return{...e,on:t=>e.get().each(t)}},Ki=(e,t)=>dt(e,"td,th",t),Yi={traverse:ke,gather:pi,relative:Fc.before,retry:Li.tryDown,failure:vi.failedDown},Ji={traverse:Oe,gather:hi,relative:Fc.before,retry:Li.tryUp,failure:vi.failedUp},Qi=e=>t=>t===e,Xi=Qi(38),Zi=Qi(40),em=e=>e>=37&&e<=40,tm={isBackward:Qi(37),isForward:Qi(39)},om={isBackward:Qi(39),isForward:Qi(37)},nm=Tl([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),rm={domRange:nm.domRange,relative:nm.relative,exact:nm.exact,exactFromRange:e=>nm.exact(e.start,e.soffset,e.finish,e.foffset),getWin:e=>{const t=(e=>e.match({domRange:e=>pe.fromDom(e.startContainer),relative:(e,t)=>Fc.getStart(e),exact:(e,t,o,n)=>e}))(e);return pe.fromDom(Te(t).dom.defaultView)},range:Zc},sm=document.caretPositionFromPoint?(e,t,o)=>{var n,r;return C.from(null===(r=(n=e.dom).caretPositionFromPoint)||void 0===r?void 0:r.call(n,t,o)).bind((t=>{if(null===t.offsetNode)return C.none();const o=e.dom.createRange();return o.setStart(t.offsetNode,t.offset),o.collapse(),C.some(o)}))}:document.caretRangeFromPoint?(e,t,o)=>{var n,r;return C.from(null===(r=(n=e.dom).caretRangeFromPoint)||void 0===r?void 0:r.call(n,t,o))}:C.none,lm=(e,t)=>{const o=Z(e);return"input"===o?Fc.after(e):D(["br","img"],o)?0===t?Fc.before(e):Fc.after(e):Fc.on(e,t)},am=e=>C.from(e.getSelection()),cm=(e,t)=>{am(e).each((e=>{e.removeAllRanges(),e.addRange(t)}))},im=(e,t,o,n,r)=>{const s=Gc(e,t,o,n,r);cm(e,s)},mm=(e,t)=>Qc(e,t).match({ltr:(t,o,n,r)=>{im(e,t,o,n,r)},rtl:(t,o,n,r)=>{am(e).each((s=>{if(s.setBaseAndExtent)s.setBaseAndExtent(t.dom,o,n.dom,r);else if(s.extend)try{((e,t,o,n,r,s)=>{t.collapse(o.dom,n),t.extend(r.dom,s)})(0,s,t,o,n,r)}catch(s){im(e,n,r,t,o)}else im(e,n,r,t,o)}))}}),dm=(e,t,o,n,r)=>{const s=((e,t,o,n)=>{const r=lm(e,t),s=lm(o,n);return rm.relative(r,s)})(t,o,n,r);mm(e,s)},um=(e,t,o)=>{const n=((e,t)=>{const o=e.fold(Fc.before,lm,Fc.after),n=t.fold(Fc.before,lm,Fc.after);return rm.relative(o,n)})(t,o);mm(e,n)},fm=e=>{if(e.rangeCount>0){const t=e.getRangeAt(0),o=e.getRangeAt(e.rangeCount-1);return C.some(Zc(pe.fromDom(t.startContainer),t.startOffset,pe.fromDom(o.endContainer),o.endOffset))}return C.none()},gm=e=>{if(null===e.anchorNode||null===e.focusNode)return fm(e);{const t=pe.fromDom(e.anchorNode),o=pe.fromDom(e.focusNode);return((e,t,o,n)=>{const r=((e,t,o,n)=>{const r=Se(e).dom.createRange();return r.setStart(e.dom,t),r.setEnd(o.dom,n),r})(e,t,o,n),s=ye(e,o)&&t===n;return r.collapsed&&!s})(t,e.anchorOffset,o,e.focusOffset)?C.some(Zc(t,e.anchorOffset,o,e.focusOffset)):fm(e)}},hm=(e,t,o=!0)=>{const n=(o?Vc:qc)(e,t);cm(e,n)},pm=e=>(e=>am(e).filter((e=>e.rangeCount>0)).bind(gm))(e).map((e=>rm.exact(e.start,e.soffset,e.finish,e.foffset))),wm=e=>({elementFromPoint:(t,o)=>pe.fromPoint(pe.fromDom(e.document),t,o),getRect:e=>e.dom.getBoundingClientRect(),getRangedRect:(t,o,n,r)=>{const s=rm.exact(t,o,n,r);return((e,t)=>(e=>{const t=e.getClientRects(),o=t.length>0?t[0]:e.getBoundingClientRect();return o.width>0||o.height>0?C.some(o).map(Kc):C.none()})(Xc(e,t)))(e,s)},getSelection:()=>pm(e).map((t=>ti(e,t))),fromSitus:t=>{const o=rm.relative(t.start,t.finish);return ti(e,o)},situsFromPoint:(t,o)=>((e,t,o)=>((e,t,o)=>{const n=pe.fromDom(e.document);return sm(n,t,o).map((e=>Zc(pe.fromDom(e.startContainer),e.startOffset,pe.fromDom(e.endContainer),e.endOffset)))})(e,t,o))(e,t,o).map((e=>ei(e.start,e.soffset,e.finish,e.foffset))),clearSelection:()=>{(e=>{am(e).each((e=>e.removeAllRanges()))})(e)},collapseSelection:(t=!1)=>{pm(e).each((o=>o.fold((e=>e.collapse(t)),((o,n)=>{const r=t?o:n;um(e,r,r)}),((o,n,r,s)=>{const l=t?o:r,a=t?n:s;dm(e,l,a,l,a)}))))},setSelection:t=>{dm(e,t.start,t.soffset,t.finish,t.foffset)},setRelativeSelection:(t,o)=>{um(e,t,o)},selectNode:t=>{hm(e,t,!1)},selectContents:t=>{hm(e,t)},getInnerHeight:()=>e.innerHeight,getScrollY:()=>(e=>{const t=void 0!==e?e.dom:document,o=t.body.scrollLeft||t.documentElement.scrollLeft,n=t.body.scrollTop||t.documentElement.scrollTop;return dn(o,n)})(pe.fromDom(e.document)).top,scrollBy:(t,o)=>{((e,t,o)=>{const n=(void 0!==o?o.dom:document).defaultView;n&&n.scrollBy(e,t)})(t,o,pe.fromDom(e.document))}}),bm=(e,t)=>({rows:e,cols:t}),vm=e=>void 0!==e.dom.classList,ym=(e,t)=>((e,t,o)=>{const n=((e,t)=>{const o=de(e,t);return void 0===o||""===o?[]:o.split(" ")})(e,t).concat([o]);return ie(e,t,n.join(" ")),!0})(e,"class",t),xm=(e,t)=>{vm(e)?e.dom.classList.add(t):ym(e,t)},Cm=(e,t)=>vm(e)&&e.dom.classList.contains(t),Sm=()=>({tag:"none"}),Tm=e=>({tag:"multiple",elements:e}),Rm=e=>({tag:"single",element:e}),Dm=e=>{const t=pe.fromDom((e=>{if(Qe()&&m(e.target)){const t=pe.fromDom(e.target);if(ne(t)&&m(t.dom.shadowRoot)&&e.composed&&e.composedPath){const t=e.composedPath();if(t)return H(t)}}return C.from(e.target)})(e).getOr(e.target)),o=()=>e.stopPropagation(),n=()=>e.preventDefault(),r=(s=n,l=o,(...e)=>s(l.apply(null,e)));var s,l;return((e,t,o,n,r,s,l)=>({target:e,x:t,y:o,stop:n,prevent:r,kill:s,raw:l}))(t,e.clientX,e.clientY,o,n,r,e)},Om=(e,t,o,n)=>{e.dom.removeEventListener(t,o,n)},km=x,Em=(e,t,o)=>((e,t,o,n)=>((e,t,o,n,r)=>{const s=((e,t)=>o=>{e(o)&&t(Dm(o))})(o,n);return e.dom.addEventListener(t,s,r),{unbind:w(Om,e,t,s,r)}})(e,t,o,n,!1))(e,t,km,o),Nm=Dm,Bm=e=>!Cm(pe.fromDom(e.target),"ephox-snooker-resizer-bar"),zm=(e,t)=>{const o=(r=os.selectedSelector,{get:()=>Qr(pe.fromDom(e.getBody()),r).fold((()=>ls(Er(e),Or(e)).fold(Sm,Rm)),Tm)}),n=((e,t,o)=>{const n=t=>{fe(t,e.selected),fe(t,e.firstSelected),fe(t,e.lastSelected)},r=t=>{ie(t,e.selected,"1")},s=e=>{l(e),o()},l=t=>{const o=st(t,`${e.selectedSelector},${e.firstSelectedSelector},${e.lastSelectedSelector}`);N(o,n)};return{clearBeforeUpdate:l,clear:s,selectRange:(o,n,l,a)=>{s(o),N(n,r),ie(l,e.firstSelected,"1"),ie(a,e.lastSelected,"1"),t(n,l,a)},selectedSelector:e.selectedSelector,firstSelectedSelector:e.firstSelectedSelector,lastSelectedSelector:e.lastSelectedSelector}})(os,((t,o,n)=>{Ft(o).each((r=>{const s=Fa(e),l=Tr(f,pe.fromDom(e.getDoc()),s),a=((e,t,o)=>{const n=Uo(e);return Xs(n,t).map((e=>{const t=Us(n,o,!1),{rows:r}=jo(t),s=((e,t)=>{const o=e.slice(0,t[t.length-1].row+1),n=Gs(o);return j(n,(e=>{const o=e.cells.slice(0,t[t.length-1].column+1);return E(o,(e=>e.element))}))})(r,e),l=((e,t)=>{const o=e.slice(t[0].row+t[0].rowspan-1,e.length),n=Gs(o);return j(n,(e=>{const o=e.cells.slice(t[0].column+t[0].colspan-1,e.cells.length);return E(o,(e=>e.element))}))})(r,e);return{upOrLeftCells:s,downOrRightCells:l}}))})(r,{selection:as(e)},l);((e,t,o,n,r)=>{e.dispatch("TablaselectionChange",{cells:t,start:o,finish:n,otherCells:r})})(e,t,o,n,a)}))}),(()=>(e=>{e.dispatch("TablaselectionClear")})(e)));var r;return e.on("init",(o=>{const r=e.getWin(),s=Dr(e),l=Or(e),a=((e,t,o,n)=>{const r=((e,t,o,n)=>{const r=Gi(),s=r.clear,l=s=>{r.on((r=>{n.clearBeforeUpdate(t),Ki(s.target,o).each((l=>{Gr(r,l,o).each((o=>{const r=o.boxes.getOr([]);if(1===r.length){const o=r[0],l="false"===Ps(o),a=ut(js(s.target),o,ye);l&&a&&(n.selectRange(t,r,o,o),e.selectContents(o))}else r.length>1&&(n.selectRange(t,r,o.start,o.finish),e.selectContents(l))}))}))}))};return{clearstate:s,mousedown:e=>{n.clear(t),Ki(e.target,o).each(r.set)},mouseover:e=>{l(e)},mouseup:e=>{l(e),s()}}})(wm(e),t,o,n);return{clearstate:r.clearstate,mousedown:r.mousedown,mouseover:r.mouseover,mouseup:r.mouseup}})(r,s,l,n),c=((e,t,o,n)=>{const r=wm(e),s=()=>(n.clear(t),C.none());return{keydown:(e,l,a,c,i,m)=>{const d=e.raw,u=d.which,f=!0===d.shiftKey,g=Kr(t,n.selectedSelector).fold((()=>(em(u)&&!f&&n.clearBeforeUpdate(t),Zi(u)&&f?w($i,r,t,o,Yi,c,l,n.selectRange):Xi(u)&&f?w($i,r,t,o,Ji,c,l,n.selectRange):Zi(u)?w(Hi,r,o,Yi,c,l,Vi):Xi(u)?w(Hi,r,o,Ji,c,l,qi):C.none)),(e=>{const o=o=>()=>{const s=V(o,(o=>((e,t,o,n,r)=>Jr(n,e,t,r.firstSelectedSelector,r.lastSelectedSelector).map((e=>(r.clearBeforeUpdate(o),r.selectRange(o,e.boxes,e.start,e.finish),e.boxes))))(o.rows,o.cols,t,e,n)));return s.fold((()=>Yr(t,n.firstSelectedSelector,n.lastSelectedSelector).map((e=>{const o=Zi(u)||m.isForward(u)?Fc.after:Fc.before;return r.setRelativeSelection(Fc.on(e.first,0),o(e.table)),n.clear(t),Hc(C.none(),!0)}))),(e=>C.some(Hc(C.none(),!0))))};return Zi(u)&&f?o([bm(1,0)]):Xi(u)&&f?o([bm(-1,0)]):m.isBackward(u)&&f?o([bm(0,-1),bm(-1,0)]):m.isForward(u)&&f?o([bm(0,1),bm(1,0)]):em(u)&&!f?s:C.none}));return g()},keyup:(e,r,s,l,a)=>Kr(t,n.selectedSelector).fold((()=>{const c=e.raw,i=c.which;return!0===c.shiftKey&&em(i)?((e,t,o,n,r,s,l)=>ye(o,r)&&n===s?C.none():dt(o,"td,th",t).bind((o=>dt(r,"td,th",t).bind((n=>ni(e,t,o,n,l))))))(t,o,r,s,l,a,n.selectRange):C.none()}),C.none)}})(r,s,l,n),i=((e,t,o,n)=>{const r=wm(e);return(e,s)=>{n.clearBeforeUpdate(t),Gr(e,s,o).each((e=>{const o=e.boxes.getOr([]);n.selectRange(t,o,e.start,e.finish),r.selectContents(s),r.collapseSelection()}))}})(r,s,l,n);e.on("TablaselectorChange",(e=>i(e.start,e.finish)));const m=(t,o)=>{(e=>!0===e.raw.shiftKey)(t)&&(o.kill&&t.kill(),o.selection.each((t=>{const o=rm.relative(t.start,t.finish),n=Xc(r,o);e.selection.setRng(n)})))},d=e=>0===e.button,u=(()=>{const e=Ui(pe.fromDom(s)),t=Ui(0);return{touchEnd:o=>{const n=pe.fromDom(o.target);if(ae("td")(n)||ae("th")(n)){const r=e.get(),s=t.get();ye(r,n)&&o.timeStamp-s<300&&(o.preventDefault(),i(n,n))}e.set(n),t.set(o.timeStamp)}}})();e.on("dragstart",(e=>{a.clearstate()})),e.on("mousedown",(e=>{d(e)&&Bm(e)&&a.mousedown(Nm(e))})),e.on("mouseover",(e=>{var t;void 0!==(t=e).buttons&&0==(1&t.buttons)||!Bm(e)||a.mouseover(Nm(e))})),e.on("mouseup",(e=>{d(e)&&Bm(e)&&a.mouseup(Nm(e))})),e.on("touchend",u.touchEnd),e.on("keyup",(t=>{const o=Nm(t);if(o.raw.shiftKey&&em(o.raw.which)){const t=e.selection.getRng(),n=pe.fromDom(t.startContainer),r=pe.fromDom(t.endContainer);c.keyup(o,n,t.startOffset,r,t.endOffset).each((e=>{m(o,e)}))}})),e.on("keydown",(o=>{const n=Nm(o);t.hide();const r=e.selection.getRng(),s=pe.fromDom(r.startContainer),l=pe.fromDom(r.endContainer),a=rn(tm,om)(pe.fromDom(e.selection.getStart()));c.keydown(n,s,r.startOffset,l,r.endOffset,a).each((e=>{m(n,e)})),t.show()})),e.on("NodeChange",(()=>{const t=e.selection,o=pe.fromDom(t.getStart()),r=pe.fromDom(t.getEnd());$r(Ft,[o,r]).fold((()=>n.clear(s)),f)}))})),e.on("PreInit",(()=>{e.serializer.addTempAttr(os.firstSelected),e.serializer.addTempAttr(os.lastSelected)})),{getSelectedCells:()=>((e,t,o,n)=>{switch(e.tag){case"none":return t();case"single":return(e=>[e.dom])(e.element);case"multiple":return(e=>E(e,(e=>e.dom)))(e.elements)}})(o.get(),g([])),clearSelectedCells:e=>n.clear(pe.fromDom(e))}},Am=e=>{let t=[];return{bind:e=>{if(void 0===e)throw new Error("Event bind error: undefined handler");t.push(e)},unbind:e=>{t=z(t,(t=>t!==e))},trigger:(...o)=>{const n={};N(e,((e,t)=>{n[e]=o[t]})),N(t,(e=>{e(n)}))}}},Wm=e=>({registry:K(e,(e=>({bind:e.bind,unbind:e.unbind}))),trigger:K(e,(e=>e.trigger))}),Lm=e=>e.slice(0).sort(),_m=(e,t)=>{const o=z(t,(t=>!D(e,t)));o.length>0&&(e=>{throw new Error("Unsupported keys for object: "+Lm(e).join(", "))})(o)},Mm=e=>((e,t)=>((e,t,o)=>{if(0===t.length)throw new Error("You must specify at least one required field.");return((e,t)=>{if(!l(t))throw new Error("The required fields must be an array. Was: "+t+".");N(t,(t=>{if(!r(t))throw new Error("The value "+t+" in the "+e+" fields was not a string.")}))})("required",t),(e=>{const t=Lm(e);L(t,((e,o)=>o{throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+t.join(", ")+"].")}))})(t),n=>{const r=$(n);I(t,(e=>D(r,e)))||((e,t)=>{throw new Error("All required keys ("+Lm(e).join(", ")+") were not specified. Specified keys were: "+Lm(t).join(", ")+".")})(t,r),e(t,r);const s=z(t,(e=>!o.validate(n[e],e)));return s.length>0&&((e,t)=>{throw new Error("All values need to be of type: "+t+". Keys ("+Lm(e).join(", ")+") were not.")})(s,o.label),n}})(e,t,{validate:d,label:"function"}))(_m,e),jm=Mm(["compare","extract","mutate","sink"]),Im=Mm(["element","start","stop","destroy"]),Pm=Mm(["forceDrop","drop","move","delayDrop"]),Fm=()=>{const e=(()=>{const e=Wm({move:Am(["info"])});return{onEvent:f,reset:f,events:e.registry}})(),t=(()=>{let e=C.none();const t=Wm({move:Am(["info"])});return{onEvent:(o,n)=>{n.extract(o).each((o=>{const r=((t,o)=>{const n=e.map((e=>t.compare(e,o)));return e=C.some(o),n})(n,o);r.each((e=>{t.trigger.move(e)}))}))},reset:()=>{e=C.none()},events:t.registry}})();let o=e;return{on:()=>{o.reset(),o=t},off:()=>{o.reset(),o=e},isOn:()=>o===t,onEvent:(e,t)=>{o.onEvent(e,t)},events:t.events}},Hm=e=>{const t=e.replace(/\./g,"-");return{resolve:e=>t+"-"+e}},qm=Hm("ephox-dragster").resolve;var Vm=jm({compare:(e,t)=>dn(t.left-e.left,t.top-e.top),extract:e=>C.some(dn(e.x,e.y)),sink:(e,t)=>{const o=(e=>{const t={layerClass:qm("blocker"),...e},o=pe.fromTag("div");return ie(o,"role","presentation"),Tt(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),xm(o,qm("blocker")),xm(o,t.layerClass),{element:g(o),destroy:()=>{Ie(o)}}})(t),n=Em(o.element(),"mousedown",e.forceDrop),r=Em(o.element(),"mouseup",e.drop),s=Em(o.element(),"mousemove",e.move),l=Em(o.element(),"mouseout",e.delayDrop);return Im({element:o.element,start:e=>{We(e,o.element())},stop:()=>{Ie(o.element())},destroy:()=>{o.destroy(),r.unbind(),s.unbind(),l.unbind(),n.unbind()}})},mutate:(e,t)=>{e.mutate(t.left,t.top)}});const $m=Hm("ephox-snooker").resolve,Um=$m("resizer-bar"),Gm=$m("resizer-rows"),Km=$m("resizer-cols"),Ym=e=>{const t=st(e.parent(),"."+Um);N(t,Ie)},Jm=(e,t,o)=>{const n=e.origin();N(t,(t=>{t.each((t=>{const r=o(n,t);xm(r,Um),We(e.parent(),r)}))}))},Qm=(e,t,o,n,r)=>{const s=fn(o),l=t.isResizable,a=n.length>0?Rn.positions(n,o):[],c=a.length>0?((e,t)=>j(e.all,((e,o)=>t(e.element)?[o]:[])))(e,l):[];((e,t,o,n)=>{Jm(e,t,((e,t)=>{const r=((e,t,o,n,r)=>{const s=pe.fromTag("div");return Tt(s,{position:"absolute",left:t+"px",top:o-3.5+"px",height:"7px",width:n+"px"}),me(s,{"data-row":e,role:"presentation"}),s})(t.row,o.left-e.left,t.y-e.top,n);return xm(r,Gm),r}))})(t,z(a,((e,t)=>O(c,(e=>t===e)))),s,Eo(o));const i=r.length>0?On.positions(r,o):[],m=i.length>0?((e,t)=>{const o=[];return k(e.grid.columns,(n=>{en(e,n).map((e=>e.element)).forall(t)&&o.push(n)})),z(o,(o=>{const n=Jo(e,(e=>e.column===o));return I(n,(e=>t(e.element)))}))})(e,l):[];((e,t,o,n)=>{Jm(e,t,((e,t)=>{const r=((e,t,o,n,r)=>{const s=pe.fromTag("div");return Tt(s,{position:"absolute",left:t-3.5+"px",top:o+"px",height:r+"px",width:"7px"}),me(s,{"data-column":e,role:"presentation"}),s})(t.col,t.x-e.left,o.top-e.top,0,n);return xm(r,Km),r}))})(t,z(i,((e,t)=>O(m,(e=>t===e)))),s,cn(o))},Xm=(e,t)=>{if(Ym(e),e.isResizable(t)){const o=Uo(t),n=nn(o),r=tn(o);Qm(o,e,t,n,r)}},Zm=(e,t)=>{const o=st(e.parent(),"."+Um);N(o,t)},ed=e=>{Zm(e,(e=>{St(e,"display","none")}))},td=e=>{Zm(e,(e=>{St(e,"display","block")}))},od=$m("resizer-bar-dragging"),nd=e=>{const t=(()=>{const e=Wm({drag:Am(["xDelta","yDelta","target"])});let t=C.none();const o=(()=>{const e=Wm({drag:Am(["xDelta","yDelta"])});return{mutate:(t,o)=>{e.trigger.drag(t,o)},events:e.registry}})();return o.events.drag.bind((o=>{t.each((t=>{e.trigger.drag(o.xDelta,o.yDelta,t)}))})),{assign:e=>{t=C.some(e)},get:()=>t,mutate:o.mutate,events:e.registry}})(),o=((e,t={})=>{var o;return((e,t,o)=>{let n=!1;const r=Wm({start:Am([]),stop:Am([])}),s=Fm(),l=()=>{m.stop(),s.isOn()&&(s.off(),r.trigger.stop())},c=((e,t)=>{let o=null;const n=()=>{a(o)||(clearTimeout(o),o=null)};return{cancel:n,throttle:(...t)=>{n(),o=setTimeout((()=>{o=null,e.apply(null,t)}),200)}}})(l);s.events.move.bind((o=>{t.mutate(e,o.info)}));const i=e=>(...t)=>{n&&e.apply(null,t)},m=t.sink(Pm({forceDrop:l,drop:i(l),move:i((e=>{c.cancel(),s.onEvent(e,t)})),delayDrop:i(c.throttle)}),o);return{element:m.element,go:e=>{m.start(e),s.on(),r.trigger.start()},on:()=>{n=!0},off:()=>{n=!1},destroy:()=>{m.destroy()},events:r.registry}})(e,null!==(o=t.mode)&&void 0!==o?o:Vm,t)})(t,{});let n=C.none();const r=(e,t)=>C.from(de(e,t));t.events.drag.bind((e=>{r(e.target,"data-row").each((t=>{const o=At(e.target,"top");St(e.target,"top",o+e.yDelta+"px")})),r(e.target,"data-column").each((t=>{const o=At(e.target,"left");St(e.target,"left",o+e.xDelta+"px")}))}));const s=(e,t)=>At(e,t)-Et(e,"data-initial-"+t,0);o.events.stop.bind((()=>{t.get().each((t=>{n.each((o=>{r(t,"data-row").each((e=>{const n=s(t,"top");fe(t,"data-initial-top"),d.trigger.adjustHeight(o,n,parseInt(e,10))})),r(t,"data-column").each((e=>{const n=s(t,"left");fe(t,"data-initial-left"),d.trigger.adjustWidth(o,n,parseInt(e,10))})),Xm(e,o)}))}))}));const l=(n,r)=>{d.trigger.startAdjust(),t.assign(n),ie(n,"data-initial-"+r,At(n,r)),xm(n,od),St(n,"opacity","0.2"),o.go(e.parent())},c=Em(e.parent(),"mousedown",(e=>{var t;t=e.target,Cm(t,Gm)&&l(e.target,"top"),(e=>Cm(e,Km))(e.target)&&l(e.target,"left")})),i=t=>ye(t,e.view()),m=Em(e.view(),"mouseover",(t=>{var o;(o=t.target,dt(o,"table",i).filter(Is)).fold((()=>{et(t.target)&&Ym(e)}),(t=>{n=C.some(t),Xm(e,t)}))})),d=Wm({adjustHeight:Am(["table","delta","row"]),adjustWidth:Am(["table","delta","column"]),startAdjust:Am([])});return{destroy:()=>{c.unbind(),m.unbind(),o.destroy(),Ym(e)},refresh:t=>{Xm(e,t)},on:o.on,off:o.off,hideBars:w(ed,e),showBars:w(td,e),events:d.registry}},rd=(e,t,o)=>{const n=Rn,r=On,s=nd(e),l=Wm({beforeResize:Am(["table","type"]),afterResize:Am(["table","type"]),startDrag:Am([])});return s.events.adjustHeight.bind((e=>{const t=e.table;l.trigger.beforeResize(t,"row");((e,t,o,n)=>{const r=Uo(e),s=((e,t,o)=>Zn(e,t,o,Hn,(e=>e.getOrThunk(Lt))))(r,e,n),l=E(s,((e,n)=>o===n?Math.max(t+e,Lt()):e)),a=Ol(r,l),c=((e,t)=>E(e.all,((e,o)=>({element:e.element,height:t[o]}))))(r,l);N(c,(e=>{_n(e.element,e.height)})),N(a,(e=>{_n(e.element,e.height)}));const i=A(l,((e,t)=>e+t),0);_n(e,i)})(t,n.delta(e.delta,t),e.row,n),l.trigger.afterResize(t,"row")})),s.events.startAdjust.bind((e=>{l.trigger.startDrag()})),s.events.adjustWidth.bind((e=>{const n=e.table;l.trigger.beforeResize(n,"col");const s=r.delta(e.delta,n),a=o(n);El(n,s,e.column,t,a),l.trigger.afterResize(n,"col")})),{on:s.on,off:s.off,refreshBars:s.refresh,hideBars:s.hideBars,showBars:s.showBars,destroy:s.destroy,events:l.registry}},sd=e=>m(e)&&"TABLE"===e.nodeName,ld="bar-",ad=e=>"false"!==de(e,"data-mce-resize"),cd=e=>{const t=Gi(),o=Gi(),n=Gi();let r,s;const l=t=>ec(e,t),a=()=>Va(e)?Cs():xs();return e.on("init",(()=>{const r=((e,t)=>e.inline?((e,t,o)=>({parent:g(t),view:g(e),origin:g(dn(0,0)),isResizable:o}))(pe.fromDom(e.getBody()),(()=>{const e=pe.fromTag("div");return Tt(e,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),We(tt(pe.fromDom(document)),e),e})(),t):((e,t)=>{const o=se(e)?(e=>pe.fromDom(Te(e).dom.documentElement))(e):e;return{parent:g(o),view:g(e),origin:g(dn(0,0)),isResizable:t}})(pe.fromDom(e.getDoc()),t))(e,ad);if(n.set(r),(e=>{const t=e.options.get("object_resizing");return D(t.split(","),"table")})(e)&&Ja(e)){const n=a(),s=rd(r,n,l);s.on(),s.events.startDrag.bind((o=>{t.set(e.selection.getRng())})),s.events.beforeResize.bind((t=>{const o=t.table.dom;((e,t,o,n,r)=>{e.dispatch("ObjectResizeStart",{target:t,width:o,height:n,origin:r})})(e,o,Nr(o),Br(o),ld+t.type)})),s.events.afterResize.bind((o=>{const n=o.table,r=n.dom;kr(n),t.on((t=>{e.selection.setRng(t),e.focus()})),((e,t,o,n,r)=>{e.dispatch("ObjectResized",{target:t,width:o,height:n,origin:r})})(e,r,Nr(r),Br(r),ld+o.type),e.undoManager.add()})),o.set(s)}})),e.on("ObjectResizeStart",(t=>{const o=t.target;if(sd(o)){const n=pe.fromDom(o);N(e.dom.select(".mce-clonedresizable"),(t=>{e.dom.addClass(t,"mce-"+qa(e)+"-columns")})),!hc(n)&&Ka(e)?vc(n):!gc(n)&&Ga(e)&&bc(n),pc(n)&&wt(t.origin,ld)&&bc(n),r=t.width,s=Ya(e)?"":((e,t)=>{const o=e.dom.getStyle(t,"width")||e.dom.getAttrib(t,"width");return C.from(o).filter(yt)})(e,o).getOr("")}})),e.on("ObjectResized",(t=>{const o=t.target;if(sd(o)){const n=pe.fromDom(o),c=t.origin;wt(c,"corner-")&&((t,o,n)=>{const c=bt(o,"e");if(""===s&&bc(t),n!==r&&""!==s){St(t,"width",s);const o=a(),i=l(t),m=Va(e)||c?(e=>Ss(e).columns)(t)-1:0;El(t,n-r,m,o,i)}else if((e=>/^(\d+(\.\d+)?)%$/.test(e))(s)){const e=parseFloat(s.replace("%",""));St(t,"width",n*e/r+"%")}(e=>/^(\d+(\.\d+)?)px$/.test(e))(s)&&(e=>{const t=Uo(e);Zo(t)||N(It(e),(e=>{const t=Rt(e,"width");St(e,"width",t),fe(e,"width")}))})(t)})(n,c,t.width),kr(n),Wa(e,n.dom,La)}})),e.on("SwitchMode",(()=>{o.on((t=>{e.mode.isReadOnly()?t.hideBars():t.showBars()}))})),e.on("remove",(()=>{o.on((e=>{e.destroy()})),n.on((t=>{((e,t)=>{e.inline&&Ie(t.parent())})(e,t)}))})),{refresh:e=>{o.on((t=>t.refreshBars(pe.fromDom(e))))},hide:()=>{o.on((e=>e.hideBars()))},show:()=>{o.on((e=>e.showBars()))}}},id=e=>{(e=>{const t=e.options.Registro;t("table_clone_elements",{processor:"string[]"}),t("table_use_colgroups",{processor:"boolean",default:!0}),t("table_header_type",{processor:e=>{const t=D(["section","cells","sectionCells","auto"],e);return t?{value:e,valid:t}:{valid:!1,message:"Must be one of: section, cells, sectionCells or auto."}},default:"section"}),t("table_sizing_mode",{processor:"string",default:"auto"}),t("table_default_attributes",{processor:"object",default:{border:"1"}}),t("table_default_styles",{processor:"object",default:{"border-collapse":"collapse"}}),t("table_column_resizing",{processor:e=>{const t=D(["preservetable","resizetable"],e);return t?{value:e,valid:t}:{valid:!1,message:"Must be preservetable, or resizetable."}},default:"preservetable"}),t("table_resize_bars",{processor:"boolean",default:!0}),t("table_style_by_css",{processor:"boolean",default:!0})})(e);const t=cd(e),o=zm(e,t),n=tc(e,t,o);return Ic(e,n),((e,t)=>{const o=Or(e),n=t=>ls(Er(e)).bind((n=>Ft(n,o).map((o=>{const r=ns(as(e),o,n);return t(o,r)})))).getOr("");G({mceTableRowType:()=>n(t.getTableRowType),mceTableCellType:()=>n(t.getTableCellType),mceTableColType:()=>n(t.getTableColType)},((t,o)=>e.addQueryValueHandler(o,t)))})(e,n),cs(e,n),{getSelectedCells:o.getSelectedCells,clearSelectedCells:o.clearSelectedCells}};e.add("dom",(e=>({table:id(e)})))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/package.json b/Practica-14.5/src/assets/vendor/tinymce/package.json new file mode 100644 index 0000000..f7cc5e8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/package.json @@ -0,0 +1,32 @@ +{ + "name": "tinymce", + "version": "6.3.1", + "repository": { + "type": "git", + "url": "https://github.com/tinymce/tinymce.git", + "directory": "modules/tinymce" + }, + "description": "Web based JavaScript HTML WYSIWYG editor control.", + "author": "Ephox Corporation DBA Tiny Technologies, Inc", + "main": "tinymce.js", + "types": "tinymce.d.ts", + "license": "MIT", + "keywords": [ + "wysiwyg", + "tinymce", + "richtext", + "javascript", + "html", + "text", + "rich editor", + "rich text editor", + "rte", + "rich text", + "contenteditable", + "editing" + ], + "homepage": "https://www.tiny.cloud/", + "bugs": { + "url": "https://github.com/tinymce/tinymce/issues" + } +} \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/index.js new file mode 100644 index 0000000..7428d10 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/index.js @@ -0,0 +1,7 @@ +// Exports the "advlist" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/advlist') +// ES2015: +// import 'tinymce/plugins/advlist' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.js new file mode 100644 index 0000000..8ecac15 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.js @@ -0,0 +1,253 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const applyListFormat = (editor, listName, styleValue) => { + const cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList'; + editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue }); + }; + + const Registro$2 = editor => { + editor.addCommand('ApplyUnorderedListStyle', (ui, value) => { + applyListFormat(editor, 'UL', value['list-style-type']); + }); + editor.addCommand('ApplyOrderedListStyle', (ui, value) => { + applyListFormat(editor, 'OL', value['list-style-type']); + }); + }; + + const option = name => editor => editor.options.get(name); + const Registro$1 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('advlist_number_styles', { + processor: 'string[]', + default: 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman'.split(',') + }); + RegistroOption('advlist_bullet_styles', { + processor: 'string[]', + default: 'default,circle,square'.split(',') + }); + }; + const getNumberStyles = option('advlist_number_styles'); + const getBulletStyles = option('advlist_bullet_styles'); + + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const isChildOfBody = (editor, elm) => { + return editor.dom.isChildOf(elm, editor.getBody()); + }; + const isTableCellNode = node => { + return isNonNullable(node) && /^(TH|TD)$/.test(node.nodeName); + }; + const isListNode = editor => node => { + return isNonNullable(node) && /^(OL|UL|DL)$/.test(node.nodeName) && isChildOfBody(editor, node); + }; + const getSelectedStyleType = editor => { + const listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul'); + const style = editor.dom.getStyle(listElm, 'listStyleType'); + return Optional.from(style); + }; + const isWithinNonEditable = (editor, element) => element !== null && editor.dom.getContentEditableParent(element) === 'false'; + const isWithinNonEditableList = (editor, element) => { + const parentList = editor.dom.getParent(element, 'ol,ul,dl'); + return isWithinNonEditable(editor, parentList); + }; + + const findIndex = (list, predicate) => { + for (let index = 0; index < list.length; index++) { + const element = list[index]; + if (predicate(element)) { + return index; + } + } + return -1; + }; + const styleValueToText = styleValue => { + return styleValue.replace(/\-/g, ' ').replace(/\b\w/g, chr => { + return chr.toUpperCase(); + }); + }; + const normalizeStyleValue = styleValue => isNullable(styleValue) || styleValue === 'default' ? '' : styleValue; + const isWithinList = (editor, e, nodeName) => { + const tableCellIndex = findIndex(e.parents, isTableCellNode); + const parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents; + const lists = global.grep(parents, isListNode(editor)); + return lists.length > 0 && lists[0].nodeName === nodeName; + }; + const makeSetupHandler = (editor, nodeName) => api => { + const nodeChangeHandler = e => { + api.setActive(isWithinList(editor, e, nodeName)); + api.setEnabled(!isWithinNonEditableList(editor, e.element)); + }; + editor.on('NodeChange', nodeChangeHandler); + return () => editor.off('NodeChange', nodeChangeHandler); + }; + const addSplitButton = (editor, id, tooltip, cmd, nodeName, styles) => { + editor.ui.registry.addSplitButton(id, { + tooltip, + icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list', + presets: 'listpreview', + columns: 3, + fetch: callback => { + const items = global.map(styles, styleValue => { + const iconstyle = nodeName === 'OL' ? 'num' : 'bull'; + const iconName = styleValue === 'disc' || styleValue === 'decimal' ? 'default' : styleValue; + const itemValue = normalizeStyleValue(styleValue); + const displayText = styleValueToText(styleValue); + return { + type: 'choiceitem', + value: itemValue, + icon: 'list-' + iconstyle + '-' + iconName, + text: displayText + }; + }); + callback(items); + }, + onAction: () => editor.execCommand(cmd), + onItemAction: (_splitButtonApi, value) => { + applyListFormat(editor, nodeName, value); + }, + select: value => { + const listStyleType = getSelectedStyleType(editor); + return listStyleType.map(listStyle => value === listStyle).getOr(false); + }, + onSetup: makeSetupHandler(editor, nodeName) + }); + }; + const addButton = (editor, id, tooltip, cmd, nodeName, styleValue) => { + editor.ui.registry.addToggleButton(id, { + active: false, + tooltip, + icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list', + onSetup: makeSetupHandler(editor, nodeName), + onAction: () => editor.queryCommandState(cmd) || styleValue === '' ? editor.execCommand(cmd) : applyListFormat(editor, nodeName, styleValue) + }); + }; + const addControl = (editor, id, tooltip, cmd, nodeName, styles) => { + if (styles.length > 1) { + addSplitButton(editor, id, tooltip, cmd, nodeName, styles); + } else { + addButton(editor, id, tooltip, cmd, nodeName, normalizeStyleValue(styles[0])); + } + }; + const Registro = editor => { + addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', getNumberStyles(editor)); + addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', getBulletStyles(editor)); + }; + + var Plugin = () => { + global$1.add('advlist', editor => { + if (editor.hasPlugin('lists')) { + Registro$1(editor); + Registro(editor); + Registro$2(editor); + } else { + console.error('Please use the Lists plugin together with the Advanced List plugin.'); + } + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.min.js new file mode 100644 index 0000000..ac76cf4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/advlist/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=(t,e,r)=>{const s="UL"===e?"InsertUnorderedList":"InsertOrderedList";t.execCommand(s,!1,!1===r?null:{"list-style-type":r})},r=t=>e=>e.options.get(t),s=r("advlist_number_styles"),n=r("advlist_bullet_styles"),l=t=>null==t,i=t=>!l(t);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return i(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=t=>i(t)&&/^(TH|TD)$/.test(t.nodeName),d=t=>l(t)||"default"===t?"":t,g=(t,e)=>r=>{const s=s=>{r.setActive(((t,e,r)=>{const s=((t,e)=>{for(let r=0;re=>i(e)&&/^(OL|UL|DL)$/.test(e.nodeName)&&((t,e)=>t.dom.isChildOf(e,t.getBody()))(t,e))(t));return l.length>0&&l[0].nodeName===r})(t,s,e)),r.setEnabled(!((t,e)=>{const r=t.dom.getParent(e,"ol,ul,dl");return((t,e)=>null!==e&&"false"===t.dom.getContentEditableParent(e))(t,r)})(t,s.element))};return t.on("NodeChange",s),()=>t.off("NodeChange",s)},h=(t,r,s,n,l,i)=>{i.length>1?((t,r,s,n,l,i)=>{t.ui.registry.addSplitButton(r,{tooltip:s,icon:"OL"===l?"ordered-list":"unordered-list",presets:"listpreview",columns:3,fetch:t=>{t(o.map(i,(t=>{const e="OL"===l?"num":"bull",r="disc"===t||"decimal"===t?"default":t,s=d(t),n=(t=>t.replace(/\-/g," ").replace(/\b\w/g,(t=>t.toUpperCase())))(t);return{type:"choiceitem",value:s,icon:"list-"+e+"-"+r,text:n}})))},onAction:()=>t.execCommand(n),onItemAction:(r,s)=>{e(t,l,s)},select:e=>{const r=(t=>{const e=t.dom.getParent(t.selection.getNode(),"ol,ul"),r=t.dom.getStyle(e,"listStyleType");return a.from(r)})(t);return r.map((t=>e===t)).getOr(!1)},onSetup:g(t,l)})})(t,r,s,n,l,i):((t,r,s,n,l,i)=>{t.ui.registry.addToggleButton(r,{active:!1,tooltip:s,icon:"OL"===l?"ordered-list":"unordered-list",onSetup:g(t,l),onAction:()=>t.queryCommandState(n)||""===i?t.execCommand(n):e(t,l,i)})})(t,r,s,n,l,d(i[0]))};t.add("advlist",(t=>{t.hasPlugin("lists")?((t=>{const e=t.options.Registro;e("advlist_number_styles",{processor:"string[]",default:"default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman".split(",")}),e("advlist_bullet_styles",{processor:"string[]",default:"default,circle,square".split(",")})})(t),(t=>{h(t,"numlist","Numbered list","InsertOrderedList","OL",s(t)),h(t,"bullist","Bullet list","InsertUnorderedList","UL",n(t))})(t),(t=>{t.addCommand("ApplyUnorderedListStyle",((r,s)=>{e(t,"UL",s["list-style-type"])})),t.addCommand("ApplyOrderedListStyle",((r,s)=>{e(t,"OL",s["list-style-type"])}))})(t)):console.error("Please use the Lists plugin together with the Advanced List plugin.")}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/index.js new file mode 100644 index 0000000..ceddfe3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/index.js @@ -0,0 +1,7 @@ +// Exports the "anchor" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/anchor') +// ES2015: +// import 'tinymce/plugins/anchor' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.js new file mode 100644 index 0000000..01dd2dd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.js @@ -0,0 +1,196 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('allow_html_in_named_anchor', { + processor: 'boolean', + default: false + }); + }; + const allowHtmlInNamedAnchor = option('allow_html_in_named_anchor'); + + const namedAnchorSelector = 'a:not([href])'; + const isEmptyString = str => !str; + const getIdFromAnchor = elm => { + const id = elm.getAttribute('id') || elm.getAttribute('name'); + return id || ''; + }; + const isAnchor = elm => elm.nodeName.toLowerCase() === 'a'; + const isNamedAnchor = elm => isAnchor(elm) && !elm.getAttribute('href') && getIdFromAnchor(elm) !== ''; + const isEmptyNamedAnchor = elm => isNamedAnchor(elm) && !elm.firstChild; + + const removeEmptyNamedAnchorsInSelection = editor => { + const dom = editor.dom; + global$1(dom).walk(editor.selection.getRng(), nodes => { + global.each(nodes, node => { + if (isEmptyNamedAnchor(node)) { + dom.remove(node, false); + } + }); + }); + }; + const isValidId = id => /^[A-Za-z][A-Za-z0-9\-:._]*$/.test(id); + const getNamedAnchor = editor => editor.dom.getParent(editor.selection.getStart(), namedAnchorSelector); + const getId = editor => { + const anchor = getNamedAnchor(editor); + if (anchor) { + return getIdFromAnchor(anchor); + } else { + return ''; + } + }; + const createAnchor = (editor, id) => { + editor.undoManager.transact(() => { + if (!allowHtmlInNamedAnchor(editor)) { + editor.selection.collapse(true); + } + if (editor.selection.isCollapsed()) { + editor.insertContent(editor.dom.createHTML('a', { id })); + } else { + removeEmptyNamedAnchorsInSelection(editor); + editor.formatter.remove('namedAnchor', undefined, undefined, true); + editor.formatter.apply('namedAnchor', { value: id }); + editor.addVisual(); + } + }); + }; + const updateAnchor = (editor, id, anchorElement) => { + anchorElement.removeAttribute('name'); + anchorElement.id = id; + editor.addVisual(); + editor.undoManager.add(); + }; + const insert = (editor, id) => { + const anchor = getNamedAnchor(editor); + if (anchor) { + updateAnchor(editor, id, anchor); + } else { + createAnchor(editor, id); + } + editor.focus(); + }; + + const insertAnchor = (editor, newId) => { + if (!isValidId(newId)) { + editor.windowManager.alert('ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.'); + return false; + } else { + insert(editor, newId); + return true; + } + }; + const open = editor => { + const currentId = getId(editor); + editor.windowManager.open({ + title: 'Anchor', + size: 'normal', + body: { + type: 'panel', + items: [{ + name: 'id', + type: 'input', + label: 'ID', + placeholder: 'example' + }] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: { id: currentId }, + onSubmit: api => { + if (insertAnchor(editor, api.getData().id)) { + api.close(); + } + } + }); + }; + + const Registro$1 = editor => { + editor.addCommand('mceAnchor', () => { + open(editor); + }); + }; + + const isNamedAnchorNode = node => isEmptyString(node.attr('href')) && !isEmptyString(node.attr('id') || node.attr('name')); + const isEmptyNamedAnchorNode = node => isNamedAnchorNode(node) && !node.firstChild; + const setContentEditable = state => nodes => { + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isEmptyNamedAnchorNode(node)) { + node.attr('contenteditable', state); + } + } + }; + const setup = editor => { + editor.on('PreInit', () => { + editor.parser.addNodeFilter('a', setContentEditable('false')); + editor.serializer.addNodeFilter('a', setContentEditable(null)); + }); + }; + + const RegistroFormats = editor => { + editor.formatter.Registro('namedAnchor', { + inline: 'a', + selector: namedAnchorSelector, + remove: 'all', + split: true, + deep: true, + attributes: { id: '%value' }, + onmatch: (node, _fmt, _itemName) => { + return isNamedAnchor(node); + } + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceAnchor'); + editor.ui.registry.addToggleButton('anchor', { + icon: 'bookmark', + tooltip: 'Anchor', + onAction, + onSetup: buttonApi => editor.selection.selectorChangedWithUnbind('a:not([href])', buttonApi.setActive).unbind + }); + editor.ui.registry.addMenuItem('anchor', { + icon: 'bookmark', + text: 'Anchor...', + onAction + }); + }; + + var Plugin = () => { + global$2.add('anchor', editor => { + Registro$2(editor); + setup(editor); + Registro$1(editor); + Registro(editor); + editor.on('PreInit', () => { + RegistroFormats(editor); + }); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.min.js new file mode 100644 index 0000000..b8e6a1c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/anchor/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=("allow_html_in_named_anchor",e=>e.options.get("allow_html_in_named_anchor"));const a="a:not([href])",r=e=>!e,i=e=>e.getAttribute("id")||e.getAttribute("name")||"",l=e=>(e=>"a"===e.nodeName.toLowerCase())(e)&&!e.getAttribute("href")&&""!==i(e),s=e=>e.dom.getParent(e.selection.getStart(),a),d=(e,a)=>{const r=s(e);r?((e,t,o)=>{o.removeAttribute("name"),o.id=t,e.addVisual(),e.undoManager.add()})(e,a,r):((e,a)=>{e.undoManager.transact((()=>{n(e)||e.selection.collapse(!0),e.selection.isCollapsed()?e.insertContent(e.dom.createHTML("a",{id:a})):((e=>{const n=e.dom;t(n).walk(e.selection.getRng(),(e=>{o.each(e,(e=>{var t;l(t=e)&&!t.firstChild&&n.remove(e,!1)}))}))})(e),e.formatter.remove("namedAnchor",void 0,void 0,!0),e.formatter.apply("namedAnchor",{value:a}),e.addVisual())}))})(e,a),e.focus()},c=e=>(e=>r(e.attr("href"))&&!r(e.attr("id")||e.attr("name")))(e)&&!e.firstChild,m=e=>t=>{for(let o=0;o{(e=>{(0,e.options.Registro)("allow_html_in_named_anchor",{processor:"boolean",default:!1})})(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("a",m("false")),e.serializer.addNodeFilter("a",m(null))}))})(e),(e=>{e.addCommand("mceAnchor",(()=>{(e=>{const t=(e=>{const t=s(e);return t?i(t):""})(e);e.windowManager.open({title:"Anchor",size:"normal",body:{type:"panel",items:[{name:"id",type:"input",label:"ID",placeholder:"example"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{id:t},onSubmit:t=>{((e,t)=>/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)?(d(e,t),!0):(e.windowManager.alert("ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!1))(e,t.getData().id)&&t.close()}})})(e)}))})(e),(e=>{const t=()=>e.execCommand("mceAnchor");e.ui.registry.addToggleButton("anchor",{icon:"bookmark",tooltip:"Anchor",onAction:t,onSetup:t=>e.selection.selectorChangedWithUnbind("a:not([href])",t.setActive).unbind}),e.ui.registry.addMenuItem("anchor",{icon:"bookmark",text:"Anchor...",onAction:t})})(e),e.on("PreInit",(()=>{(e=>{e.formatter.Registro("namedAnchor",{inline:"a",selector:a,remove:"all",split:!0,deep:!0,attributes:{id:"%value"},onmatch:(e,t,o)=>l(e)})})(e)}))}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/index.js new file mode 100644 index 0000000..ae8a759 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/index.js @@ -0,0 +1,7 @@ +// Exports the "autolink" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/autolink') +// ES2015: +// import 'tinymce/plugins/autolink' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.js new file mode 100644 index 0000000..3b79542 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.js @@ -0,0 +1,228 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const link = () => /(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g; + + const option = name => editor => editor.options.get(name); + const Registro = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('autolink_pattern', { + processor: 'regexp', + default: new RegExp('^' + link().source + '$', 'i') + }); + RegistroOption('link_default_target', { processor: 'string' }); + RegistroOption('link_default_protocol', { + processor: 'string', + default: 'https' + }); + }; + const getAutoLinkPattern = option('autolink_pattern'); + const getDefaultLinkTarget = option('link_default_target'); + const getDefaultLinkProtocol = option('link_default_protocol'); + const allowUnsafeLinkTarget = option('allow_unsafe_link_target'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const eq = t => a => t === a; + const isString = isType('string'); + const isUndefined = eq(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + + const not = f => t => !f(t); + + const hasOwnProperty = Object.hasOwnProperty; + const has = (obj, key) => hasOwnProperty.call(obj, key); + + const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr; + const contains = (str, substr, start = 0, end) => { + const idx = str.indexOf(substr, start); + if (idx !== -1) { + return isUndefined(end) ? true : idx + substr.length <= end; + } else { + return false; + } + }; + const startsWith = (str, prefix) => { + return checkRange(str, prefix, 0); + }; + + const zeroWidth = '\uFEFF'; + const isZwsp = char => char === zeroWidth; + const removeZwsp = s => s.replace(/\uFEFF/g, ''); + + var global = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker'); + + const isTextNode = node => node.nodeType === 3; + const isElement = node => node.nodeType === 1; + const isBracketOrSpace = char => /^[(\[{ \u00a0]$/.test(char); + const hasProtocol = url => /^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(url); + const isPunctuation = char => /[?!,.;:]/.test(char); + const findChar = (text, index, predicate) => { + for (let i = index - 1; i >= 0; i--) { + const char = text.charAt(i); + if (!isZwsp(char) && predicate(char)) { + return i; + } + } + return -1; + }; + const freefallRtl = (container, offset) => { + let tempNode = container; + let tempOffset = offset; + while (isElement(tempNode) && tempNode.childNodes[tempOffset]) { + tempNode = tempNode.childNodes[tempOffset]; + tempOffset = isTextNode(tempNode) ? tempNode.data.length : tempNode.childNodes.length; + } + return { + container: tempNode, + offset: tempOffset + }; + }; + + const parseCurrentLine = (editor, offset) => { + var _a; + const voidElements = editor.schema.getVoidElements(); + const autoLinkPattern = getAutoLinkPattern(editor); + const {dom, selection} = editor; + if (dom.getParent(selection.getNode(), 'a[href]') !== null) { + return null; + } + const rng = selection.getRng(); + const textSeeker = global(dom, node => { + return dom.isBlock(node) || has(voidElements, node.nodeName.toLowerCase()) || dom.getContentEditable(node) === 'false'; + }); + const { + container: endContainer, + offset: endOffset + } = freefallRtl(rng.endContainer, rng.endOffset); + const root = (_a = dom.getParent(endContainer, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot(); + const endSpot = textSeeker.backwards(endContainer, endOffset + offset, (node, offset) => { + const text = node.data; + const idx = findChar(text, offset, not(isBracketOrSpace)); + return idx === -1 || isPunctuation(text[idx]) ? idx : idx + 1; + }, root); + if (!endSpot) { + return null; + } + let lastTextNode = endSpot.container; + const startSpot = textSeeker.backwards(endSpot.container, endSpot.offset, (node, offset) => { + lastTextNode = node; + const idx = findChar(node.data, offset, isBracketOrSpace); + return idx === -1 ? idx : idx + 1; + }, root); + const newRng = dom.createRng(); + if (!startSpot) { + newRng.setStart(lastTextNode, 0); + } else { + newRng.setStart(startSpot.container, startSpot.offset); + } + newRng.setEnd(endSpot.container, endSpot.offset); + const rngText = removeZwsp(newRng.toString()); + const matches = rngText.match(autoLinkPattern); + if (matches) { + let url = matches[0]; + if (startsWith(url, 'www.')) { + const protocol = getDefaultLinkProtocol(editor); + url = protocol + '://' + url; + } else if (contains(url, '@') && !hasProtocol(url)) { + url = 'mailto:' + url; + } + return { + rng: newRng, + url + }; + } else { + return null; + } + }; + const convertToLink = (editor, result) => { + const {dom, selection} = editor; + const {rng, url} = result; + const bookmark = selection.getBookmark(); + selection.setRng(rng); + const command = 'createlink'; + const args = { + command, + ui: false, + value: url + }; + const beforeExecEvent = editor.dispatch('BeforeExecCommand', args); + if (!beforeExecEvent.isDefaultPrevented()) { + editor.getDoc().execCommand(command, false, url); + editor.dispatch('ExecCommand', args); + const defaultLinkTarget = getDefaultLinkTarget(editor); + if (isString(defaultLinkTarget)) { + const anchor = selection.getNode(); + dom.setAttrib(anchor, 'target', defaultLinkTarget); + if (defaultLinkTarget === '_blank' && !allowUnsafeLinkTarget(editor)) { + dom.setAttrib(anchor, 'rel', 'noopener'); + } + } + } + selection.moveToBookmark(bookmark); + editor.nodeChanged(); + }; + const handleSpacebar = editor => { + const result = parseCurrentLine(editor, -1); + if (isNonNullable(result)) { + convertToLink(editor, result); + } + }; + const handleBracket = handleSpacebar; + const handleEnter = editor => { + const result = parseCurrentLine(editor, 0); + if (isNonNullable(result)) { + convertToLink(editor, result); + } + }; + const setup = editor => { + editor.on('keydown', e => { + if (e.keyCode === 13 && !e.isDefaultPrevented()) { + handleEnter(editor); + } + }); + editor.on('keyup', e => { + if (e.keyCode === 32) { + handleSpacebar(editor); + } else if (e.keyCode === 48 && e.shiftKey || e.keyCode === 221) { + handleBracket(editor); + } + }); + }; + + var Plugin = () => { + global$1.add('autolink', editor => { + Registro(editor); + setup(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.min.js new file mode 100644 index 0000000..e45096c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autolink/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),h=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),w=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),h);if(!w)return null;let v=w.container;const _=k.backwards(w.container,w.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),h),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(w.container,w.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=$.length&&b.substr(0,0+$.length)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.Registro;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/index.js new file mode 100644 index 0000000..a4a7a42 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/index.js @@ -0,0 +1,7 @@ +// Exports the "autoresize" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/autoresize') +// ES2015: +// import 'tinymce/plugins/autoresize' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.js new file mode 100644 index 0000000..d9c8e90 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.js @@ -0,0 +1,157 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global = tinymce.util.Tools.resolve('tinymce.Env'); + + const fireResizeEditor = editor => editor.dispatch('ResizeEditor'); + + const option = name => editor => editor.options.get(name); + const Registro$1 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('autoresize_overflow_padding', { + processor: 'number', + default: 1 + }); + RegistroOption('autoresize_bottom_margin', { + processor: 'number', + default: 50 + }); + }; + const getMinHeight = option('min_height'); + const getMaxHeight = option('max_height'); + const getAutoResizeOverflowPadding = option('autoresize_overflow_padding'); + const getAutoResizeBottomMargin = option('autoresize_bottom_margin'); + + const isFullscreen = editor => editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen(); + const toggleScrolling = (editor, state) => { + const body = editor.getBody(); + if (body) { + body.style.overflowY = state ? '' : 'hidden'; + if (!state) { + body.scrollTop = 0; + } + } + }; + const parseCssValueToInt = (dom, elm, name, computed) => { + var _a; + const value = parseInt((_a = dom.getStyle(elm, name, computed)) !== null && _a !== void 0 ? _a : '', 10); + return isNaN(value) ? 0 : value; + }; + const shouldScrollIntoView = trigger => { + if ((trigger === null || trigger === void 0 ? void 0 : trigger.type.toLowerCase()) === 'setcontent') { + const setContentEvent = trigger; + return setContentEvent.selection === true || setContentEvent.paste === true; + } else { + return false; + } + }; + const resize = (editor, oldSize, trigger) => { + var _a; + const dom = editor.dom; + const doc = editor.getDoc(); + if (!doc) { + return; + } + if (isFullscreen(editor)) { + toggleScrolling(editor, true); + return; + } + const docEle = doc.documentElement; + const resizeBottomMargin = getAutoResizeBottomMargin(editor); + const minHeight = (_a = getMinHeight(editor)) !== null && _a !== void 0 ? _a : editor.getElement().offsetHeight; + let resizeHeight = minHeight; + const marginTop = parseCssValueToInt(dom, docEle, 'margin-top', true); + const marginBottom = parseCssValueToInt(dom, docEle, 'margin-bottom', true); + let contentHeight = docEle.offsetHeight + marginTop + marginBottom + resizeBottomMargin; + if (contentHeight < 0) { + contentHeight = 0; + } + const containerHeight = editor.getContainer().offsetHeight; + const contentAreaHeight = editor.getContentAreaContainer().offsetHeight; + const chromeHeight = containerHeight - contentAreaHeight; + if (contentHeight + chromeHeight > minHeight) { + resizeHeight = contentHeight + chromeHeight; + } + const maxHeight = getMaxHeight(editor); + if (maxHeight && resizeHeight > maxHeight) { + resizeHeight = maxHeight; + toggleScrolling(editor, true); + } else { + toggleScrolling(editor, false); + } + if (resizeHeight !== oldSize.get()) { + const deltaSize = resizeHeight - oldSize.get(); + dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px'); + oldSize.set(resizeHeight); + fireResizeEditor(editor); + if (global.browser.isSafari() && (global.os.isMacOS() || global.os.isiOS())) { + const win = editor.getWin(); + win.scrollTo(win.pageXOffset, win.pageYOffset); + } + if (editor.hasFocus() && shouldScrollIntoView(trigger)) { + editor.selection.scrollIntoView(); + } + if ((global.browser.isSafari() || global.browser.isChromium()) && deltaSize < 0) { + resize(editor, oldSize, trigger); + } + } + }; + const setup = (editor, oldSize) => { + editor.on('init', () => { + const overflowPadding = getAutoResizeOverflowPadding(editor); + const dom = editor.dom; + dom.setStyles(editor.getDoc().documentElement, { height: 'auto' }); + dom.setStyles(editor.getBody(), { + 'paddingLeft': overflowPadding, + 'paddingRight': overflowPadding, + 'min-height': 0 + }); + }); + editor.on('NodeChange SetContent keyup FullscreenStateChanged ResizeContent', e => { + resize(editor, oldSize, e); + }); + }; + + const Registro = (editor, oldSize) => { + editor.addCommand('mceAutoResize', () => { + resize(editor, oldSize); + }); + }; + + var Plugin = () => { + global$1.add('autoresize', editor => { + Registro$1(editor); + if (!editor.options.isSet('resize')) { + editor.options.set('resize', false); + } + if (!editor.inline) { + const oldSize = Cell(0); + Registro(editor, oldSize); + setup(editor, oldSize); + } + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.min.js new file mode 100644 index 0000000..3182ac8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autoresize/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),n=o("min_height"),s=o("max_height"),i=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),l=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},a=(e,t,o,n)=>{var s;const i=parseInt(null!==(s=e.getStyle(t,o,n))&&void 0!==s?s:"",10);return isNaN(i)?0:i},g=(e,o,i)=>{var c;const u=e.dom,d=e.getDoc();if(!d)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void l(e,!0);const f=d.documentElement,m=r(e),p=null!==(c=n(e))&&void 0!==c?c:e.getElement().offsetHeight;let h=p;const v=a(u,f,"margin-top",!0),y=a(u,f,"margin-bottom",!0);let C=f.offsetHeight+v+y+m;C<0&&(C=0);const S=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+S>p&&(h=C+S);const z=s(e);if(z&&h>z?(h=z,l(e,!0)):l(e,!1),h!==o.get()){const n=h-o.get();if(u.setStyle(e.getContainer(),"height",h+"px"),o.set(h),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(i)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&n<0&&g(e,o,i)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.Registro;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const t=(e=>{let t=0;return{get:()=>t,set:e=>{t=e}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{g(e,t)}))})(e,t),((e,t)=>{e.on("init",(()=>{const t=i(e),o=e.dom;o.setStyles(e.getDoc().documentElement,{height:"auto"}),o.setStyles(e.getBody(),{paddingLeft:t,paddingRight:t,"min-height":0})})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(o=>{g(e,t,o)}))})(e,t)}}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/index.js new file mode 100644 index 0000000..261d5c9 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/index.js @@ -0,0 +1,7 @@ +// Exports the "autosave" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/autosave') +// ES2015: +// import 'tinymce/plugins/autosave' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.js new file mode 100644 index 0000000..5c2ae22 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.js @@ -0,0 +1,233 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const eq = t => a => t === a; + const isString = isType('string'); + const isUndefined = eq(undefined); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const fireRestoreDraft = editor => editor.dispatch('RestoreDraft'); + const fireStoreDraft = editor => editor.dispatch('StoreDraft'); + const fireRemoveDraft = editor => editor.dispatch('RemoveDraft'); + + const parse = timeString => { + const multiples = { + s: 1000, + m: 60000 + }; + const parsedTime = /^(\d+)([ms]?)$/.exec(timeString); + return (parsedTime && parsedTime[2] ? multiples[parsedTime[2]] : 1) * parseInt(timeString, 10); + }; + + const option = name => editor => editor.options.get(name); + const Registro$1 = editor => { + const RegistroOption = editor.options.Registro; + const timeProcessor = value => { + const valid = isString(value); + if (valid) { + return { + value: parse(value), + valid + }; + } else { + return { + valid: false, + message: 'Must be a string.' + }; + } + }; + RegistroOption('autosave_ask_before_unload', { + processor: 'boolean', + default: true + }); + RegistroOption('autosave_prefix', { + processor: 'string', + default: 'tinymce-autosave-{path}{query}{hash}-{id}-' + }); + RegistroOption('autosave_restore_when_empty', { + processor: 'boolean', + default: false + }); + RegistroOption('autosave_interval', { + processor: timeProcessor, + default: '30s' + }); + RegistroOption('autosave_retention', { + processor: timeProcessor, + default: '20m' + }); + }; + const shouldAskBeforeUnload = option('autosave_ask_before_unload'); + const shouldRestoreWhenEmpty = option('autosave_restore_when_empty'); + const getAutoSaveInterval = option('autosave_interval'); + const getAutoSaveRetention = option('autosave_retention'); + const getAutoSavePrefix = editor => { + const location = document.location; + return editor.options.get('autosave_prefix').replace(/{path}/g, location.pathname).replace(/{query}/g, location.Buscar).replace(/{hash}/g, location.hash).replace(/{id}/g, editor.id); + }; + + const isEmpty = (editor, html) => { + if (isUndefined(html)) { + return editor.dom.isEmpty(editor.getBody()); + } else { + const trimmedHtml = global$1.trim(html); + if (trimmedHtml === '') { + return true; + } else { + const fragment = new DOMParser().parseFromString(trimmedHtml, 'text/html'); + return editor.dom.isEmpty(fragment); + } + } + }; + const hasDraft = editor => { + var _a; + const time = parseInt((_a = global$2.getItem(getAutoSavePrefix(editor) + 'time')) !== null && _a !== void 0 ? _a : '0', 10) || 0; + if (new Date().getTime() - time > getAutoSaveRetention(editor)) { + removeDraft(editor, false); + return false; + } + return true; + }; + const removeDraft = (editor, fire) => { + const prefix = getAutoSavePrefix(editor); + global$2.removeItem(prefix + 'draft'); + global$2.removeItem(prefix + 'time'); + if (fire !== false) { + fireRemoveDraft(editor); + } + }; + const storeDraft = editor => { + const prefix = getAutoSavePrefix(editor); + if (!isEmpty(editor) && editor.isDirty()) { + global$2.setItem(prefix + 'draft', editor.getContent({ + format: 'raw', + no_events: true + })); + global$2.setItem(prefix + 'time', new Date().getTime().toString()); + fireStoreDraft(editor); + } + }; + const restoreDraft = editor => { + var _a; + const prefix = getAutoSavePrefix(editor); + if (hasDraft(editor)) { + editor.setContent((_a = global$2.getItem(prefix + 'draft')) !== null && _a !== void 0 ? _a : '', { format: 'raw' }); + fireRestoreDraft(editor); + } + }; + const startStoreDraft = editor => { + const interval = getAutoSaveInterval(editor); + global$3.setEditorInterval(editor, () => { + storeDraft(editor); + }, interval); + }; + const restoreLastDraft = editor => { + editor.undoManager.transact(() => { + restoreDraft(editor); + removeDraft(editor); + }); + editor.focus(); + }; + + const get = editor => ({ + hasDraft: () => hasDraft(editor), + storeDraft: () => storeDraft(editor), + restoreDraft: () => restoreDraft(editor), + removeDraft: fire => removeDraft(editor, fire), + isEmpty: html => isEmpty(editor, html) + }); + + var global = tinymce.util.Tools.resolve('tinymce.EditorManager'); + + const setup = editor => { + editor.editorManager.on('BeforeUnload', e => { + let msg; + global$1.each(global.get(), editor => { + if (editor.plugins.autosave) { + editor.plugins.autosave.storeDraft(); + } + if (!msg && editor.isDirty() && shouldAskBeforeUnload(editor)) { + msg = editor.translate('You have unsaved changes are you sure you want to navigate away?'); + } + }); + if (msg) { + e.preventDefault(); + e.returnValue = msg; + } + }); + }; + + const makeSetupHandler = editor => api => { + api.setEnabled(hasDraft(editor)); + const editorEventCallback = () => api.setEnabled(hasDraft(editor)); + editor.on('StoreDraft RestoreDraft RemoveDraft', editorEventCallback); + return () => editor.off('StoreDraft RestoreDraft RemoveDraft', editorEventCallback); + }; + const Registro = editor => { + startStoreDraft(editor); + const onAction = () => { + restoreLastDraft(editor); + }; + editor.ui.registry.addButton('restoredraft', { + tooltip: 'Restore last draft', + icon: 'restore-draft', + onAction, + onSetup: makeSetupHandler(editor) + }); + editor.ui.registry.addMenuItem('restoredraft', { + text: 'Restore last draft', + icon: 'restore-draft', + onAction, + onSetup: makeSetupHandler(editor) + }); + }; + + var Plugin = () => { + global$4.add('autosave', editor => { + Registro$1(editor); + setup(editor); + Registro(editor); + editor.on('init', () => { + if (shouldRestoreWhenEmpty(editor) && editor.dom.isEmpty(editor.getBody())) { + restoreDraft(editor); + } + }); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.min.js new file mode 100644 index 0000000..9493f55 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/autosave/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=("string",t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(r=o=t,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":e;var r,o,a,s})(t));const r=(void 0,t=>undefined===t);var o=tinymce.util.Tools.resolve("tinymce.util.Delay"),a=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),s=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=t=>{const e=/^(\d+)([ms]?)$/.exec(t);return(e&&e[2]?{s:1e3,m:6e4}[e[2]]:1)*parseInt(t,10)},i=t=>e=>e.options.get(t),u=i("autosave_ask_before_unload"),l=i("autosave_restore_when_empty"),c=i("autosave_interval"),d=i("autosave_retention"),m=t=>{const e=document.location;return t.options.get("autosave_prefix").replace(/{path}/g,e.pathname).replace(/{query}/g,e.Buscar).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},v=(t,e)=>{if(r(e))return t.dom.isEmpty(t.getBody());{const r=s.trim(e);if(""===r)return!0;{const e=(new DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(e)}}},f=t=>{var e;const r=parseInt(null!==(e=a.getItem(m(t)+"time"))&&void 0!==e?e:"0",10)||0;return!((new Date).getTime()-r>d(t)&&(p(t,!1),1))},p=(t,e)=>{const r=m(t);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==e&&(t=>{t.dispatch("RemoveDraft")})(t)},g=t=>{const e=m(t);!v(t)&&t.isDirty()&&(a.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),a.setItem(e+"time",(new Date).getTime().toString()),(t=>{t.dispatch("StoreDraft")})(t))},y=t=>{var e;const r=m(t);f(t)&&(t.setContent(null!==(e=a.getItem(r+"draft"))&&void 0!==e?e:"",{format:"raw"}),(t=>{t.dispatch("RestoreDraft")})(t))};var D=tinymce.util.Tools.resolve("tinymce.EditorManager");const h=t=>e=>{e.setEnabled(f(t));const r=()=>e.setEnabled(f(t));return t.on("StoreDraft RestoreDraft RemoveDraft",r),()=>t.off("StoreDraft RestoreDraft RemoveDraft",r)};t.add("autosave",(t=>((t=>{const r=t.options.Registro,o=t=>{const r=e(t);return r?{value:n(t),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"tinymce-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(t),(t=>{t.editorManager.on("BeforeUnload",(t=>{let e;s.each(D.get(),(t=>{t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&u(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))})),e&&(t.preventDefault(),t.returnValue=e)}))})(t),(t=>{(t=>{const e=c(t);o.setEditorInterval(t,(()=>{g(t)}),e)})(t);const e=()=>{(t=>{t.undoManager.transact((()=>{y(t),p(t)})),t.focus()})(t)};t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)})})(t),t.on("init",(()=>{l(t)&&t.dom.isEmpty(t.getBody())&&y(t)})),(t=>({hasDraft:()=>f(t),storeDraft:()=>g(t),restoreDraft:()=>y(t),removeDraft:e=>p(t,e),isEmpty:e=>v(t,e)}))(t))))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/index.js new file mode 100644 index 0000000..13a1673 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/index.js @@ -0,0 +1,7 @@ +// Exports the "charmap" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/charmap') +// ES2015: +// import 'tinymce/plugins/charmap' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.js new file mode 100644 index 0000000..d1ef37b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.js @@ -0,0 +1,1646 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const fireInsertCustomChar = (editor, chr) => { + return editor.dispatch('insertCustomChar', { chr }); + }; + + const insertChar = (editor, chr) => { + const evtChr = fireInsertCustomChar(editor, chr).chr; + editor.execCommand('mceInsertContent', false, evtChr); + }; + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq = t => a => t === a; + const isArray$1 = isType('array'); + const isNull = eq(null); + const isUndefined = eq(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + + const constant = value => { + return () => { + return value; + }; + }; + const never = constant(false); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativePush = Array.prototype.push; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const findUntil = (xs, pred, until) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(x); + } else if (until(x, i)) { + break; + } + } + return Optional.none(); + }; + const find = (xs, pred) => { + return findUntil(xs, pred, never); + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray$1(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind = (xs, f) => flatten(map(xs, f)); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + const charMapProcessor = value => isFunction(value) || isArray$1(value); + RegistroOption('charmap', { processor: charMapProcessor }); + RegistroOption('charmap_append', { processor: charMapProcessor }); + }; + const getCharMap$1 = option('charmap'); + const getCharMapAppend = option('charmap_append'); + + const isArray = global.isArray; + const UserDefined = 'User Defined'; + const getDefaultCharMap = () => { + return [ + { + name: 'Currency', + characters: [ + [ + 36, + 'dollar sign' + ], + [ + 162, + 'cent sign' + ], + [ + 8364, + 'euro sign' + ], + [ + 163, + 'pound sign' + ], + [ + 165, + 'yen sign' + ], + [ + 164, + 'currency sign' + ], + [ + 8352, + 'euro-currency sign' + ], + [ + 8353, + 'colon sign' + ], + [ + 8354, + 'cruzeiro sign' + ], + [ + 8355, + 'french franc sign' + ], + [ + 8356, + 'lira sign' + ], + [ + 8357, + 'mill sign' + ], + [ + 8358, + 'naira sign' + ], + [ + 8359, + 'peseta sign' + ], + [ + 8360, + 'rupee sign' + ], + [ + 8361, + 'won sign' + ], + [ + 8362, + 'new sheqel sign' + ], + [ + 8363, + 'dong sign' + ], + [ + 8365, + 'kip sign' + ], + [ + 8366, + 'tugrik sign' + ], + [ + 8367, + 'drachma sign' + ], + [ + 8368, + 'german penny symbol' + ], + [ + 8369, + 'peso sign' + ], + [ + 8370, + 'guarani sign' + ], + [ + 8371, + 'austral sign' + ], + [ + 8372, + 'hryvnia sign' + ], + [ + 8373, + 'cedi sign' + ], + [ + 8374, + 'livre tournois sign' + ], + [ + 8375, + 'spesmilo sign' + ], + [ + 8376, + 'tenge sign' + ], + [ + 8377, + 'indian rupee sign' + ], + [ + 8378, + 'turkish lira sign' + ], + [ + 8379, + 'nordic mark sign' + ], + [ + 8380, + 'manat sign' + ], + [ + 8381, + 'ruble sign' + ], + [ + 20870, + 'yen character' + ], + [ + 20803, + 'yuan character' + ], + [ + 22291, + 'yuan character, in hong kong and taiwan' + ], + [ + 22278, + 'yen/yuan character variant one' + ] + ] + }, + { + name: 'Text', + characters: [ + [ + 169, + 'copyright sign' + ], + [ + 174, + 'Registroed sign' + ], + [ + 8482, + 'trade mark sign' + ], + [ + 8240, + 'per mille sign' + ], + [ + 181, + 'micro sign' + ], + [ + 183, + 'middle dot' + ], + [ + 8226, + 'bullet' + ], + [ + 8230, + 'three dot leader' + ], + [ + 8242, + 'minutes / feet' + ], + [ + 8243, + 'seconds / inches' + ], + [ + 167, + 'section sign' + ], + [ + 182, + 'paragraph sign' + ], + [ + 223, + 'sharp s / ess-zed' + ] + ] + }, + { + name: 'Quotations', + characters: [ + [ + 8249, + 'single left-pointing angle quotation mark' + ], + [ + 8250, + 'single right-pointing angle quotation mark' + ], + [ + 171, + 'left pointing guillemet' + ], + [ + 187, + 'right pointing guillemet' + ], + [ + 8216, + 'left single quotation mark' + ], + [ + 8217, + 'right single quotation mark' + ], + [ + 8220, + 'left double quotation mark' + ], + [ + 8221, + 'right double quotation mark' + ], + [ + 8218, + 'single low-9 quotation mark' + ], + [ + 8222, + 'double low-9 quotation mark' + ], + [ + 60, + 'less-than sign' + ], + [ + 62, + 'greater-than sign' + ], + [ + 8804, + 'less-than or equal to' + ], + [ + 8805, + 'greater-than or equal to' + ], + [ + 8211, + 'en dash' + ], + [ + 8212, + 'em dash' + ], + [ + 175, + 'macron' + ], + [ + 8254, + 'overline' + ], + [ + 164, + 'currency sign' + ], + [ + 166, + 'broken bar' + ], + [ + 168, + 'diaeresis' + ], + [ + 161, + 'inverted exclamation mark' + ], + [ + 191, + 'turned question mark' + ], + [ + 710, + 'circumflex accent' + ], + [ + 732, + 'small tilde' + ], + [ + 176, + 'degree sign' + ], + [ + 8722, + 'minus sign' + ], + [ + 177, + 'plus-minus sign' + ], + [ + 247, + 'division sign' + ], + [ + 8260, + 'fraction slash' + ], + [ + 215, + 'multiplication sign' + ], + [ + 185, + 'superscript one' + ], + [ + 178, + 'superscript two' + ], + [ + 179, + 'superscript three' + ], + [ + 188, + 'fraction one quarter' + ], + [ + 189, + 'fraction one half' + ], + [ + 190, + 'fraction three quarters' + ] + ] + }, + { + name: 'Mathematical', + characters: [ + [ + 402, + 'function / florin' + ], + [ + 8747, + 'integral' + ], + [ + 8721, + 'n-ary sumation' + ], + [ + 8734, + 'infinity' + ], + [ + 8730, + 'square root' + ], + [ + 8764, + 'similar to' + ], + [ + 8773, + 'approximately equal to' + ], + [ + 8776, + 'almost equal to' + ], + [ + 8800, + 'not equal to' + ], + [ + 8801, + 'identical to' + ], + [ + 8712, + 'element of' + ], + [ + 8713, + 'not an element of' + ], + [ + 8715, + 'contains as member' + ], + [ + 8719, + 'n-ary product' + ], + [ + 8743, + 'logical and' + ], + [ + 8744, + 'logical or' + ], + [ + 172, + 'not sign' + ], + [ + 8745, + 'intersection' + ], + [ + 8746, + 'union' + ], + [ + 8706, + 'partial differential' + ], + [ + 8704, + 'for all' + ], + [ + 8707, + 'there exists' + ], + [ + 8709, + 'diameter' + ], + [ + 8711, + 'backward difference' + ], + [ + 8727, + 'asterisk operator' + ], + [ + 8733, + 'proportional to' + ], + [ + 8736, + 'angle' + ] + ] + }, + { + name: 'Extended Latin', + characters: [ + [ + 192, + 'A - grave' + ], + [ + 193, + 'A - acute' + ], + [ + 194, + 'A - circumflex' + ], + [ + 195, + 'A - tilde' + ], + [ + 196, + 'A - diaeresis' + ], + [ + 197, + 'A - ring above' + ], + [ + 256, + 'A - macron' + ], + [ + 198, + 'ligature AE' + ], + [ + 199, + 'C - cedilla' + ], + [ + 200, + 'E - grave' + ], + [ + 201, + 'E - acute' + ], + [ + 202, + 'E - circumflex' + ], + [ + 203, + 'E - diaeresis' + ], + [ + 274, + 'E - macron' + ], + [ + 204, + 'I - grave' + ], + [ + 205, + 'I - acute' + ], + [ + 206, + 'I - circumflex' + ], + [ + 207, + 'I - diaeresis' + ], + [ + 298, + 'I - macron' + ], + [ + 208, + 'ETH' + ], + [ + 209, + 'N - tilde' + ], + [ + 210, + 'O - grave' + ], + [ + 211, + 'O - acute' + ], + [ + 212, + 'O - circumflex' + ], + [ + 213, + 'O - tilde' + ], + [ + 214, + 'O - diaeresis' + ], + [ + 216, + 'O - slash' + ], + [ + 332, + 'O - macron' + ], + [ + 338, + 'ligature OE' + ], + [ + 352, + 'S - caron' + ], + [ + 217, + 'U - grave' + ], + [ + 218, + 'U - acute' + ], + [ + 219, + 'U - circumflex' + ], + [ + 220, + 'U - diaeresis' + ], + [ + 362, + 'U - macron' + ], + [ + 221, + 'Y - acute' + ], + [ + 376, + 'Y - diaeresis' + ], + [ + 562, + 'Y - macron' + ], + [ + 222, + 'THORN' + ], + [ + 224, + 'a - grave' + ], + [ + 225, + 'a - acute' + ], + [ + 226, + 'a - circumflex' + ], + [ + 227, + 'a - tilde' + ], + [ + 228, + 'a - diaeresis' + ], + [ + 229, + 'a - ring above' + ], + [ + 257, + 'a - macron' + ], + [ + 230, + 'ligature ae' + ], + [ + 231, + 'c - cedilla' + ], + [ + 232, + 'e - grave' + ], + [ + 233, + 'e - acute' + ], + [ + 234, + 'e - circumflex' + ], + [ + 235, + 'e - diaeresis' + ], + [ + 275, + 'e - macron' + ], + [ + 236, + 'i - grave' + ], + [ + 237, + 'i - acute' + ], + [ + 238, + 'i - circumflex' + ], + [ + 239, + 'i - diaeresis' + ], + [ + 299, + 'i - macron' + ], + [ + 240, + 'eth' + ], + [ + 241, + 'n - tilde' + ], + [ + 242, + 'o - grave' + ], + [ + 243, + 'o - acute' + ], + [ + 244, + 'o - circumflex' + ], + [ + 245, + 'o - tilde' + ], + [ + 246, + 'o - diaeresis' + ], + [ + 248, + 'o slash' + ], + [ + 333, + 'o macron' + ], + [ + 339, + 'ligature oe' + ], + [ + 353, + 's - caron' + ], + [ + 249, + 'u - grave' + ], + [ + 250, + 'u - acute' + ], + [ + 251, + 'u - circumflex' + ], + [ + 252, + 'u - diaeresis' + ], + [ + 363, + 'u - macron' + ], + [ + 253, + 'y - acute' + ], + [ + 254, + 'thorn' + ], + [ + 255, + 'y - diaeresis' + ], + [ + 563, + 'y - macron' + ], + [ + 913, + 'Alpha' + ], + [ + 914, + 'Beta' + ], + [ + 915, + 'Gamma' + ], + [ + 916, + 'Delta' + ], + [ + 917, + 'Epsilon' + ], + [ + 918, + 'Zeta' + ], + [ + 919, + 'Eta' + ], + [ + 920, + 'Theta' + ], + [ + 921, + 'Iota' + ], + [ + 922, + 'Kappa' + ], + [ + 923, + 'Lambda' + ], + [ + 924, + 'Mu' + ], + [ + 925, + 'Nu' + ], + [ + 926, + 'Xi' + ], + [ + 927, + 'Omicron' + ], + [ + 928, + 'Pi' + ], + [ + 929, + 'Rho' + ], + [ + 931, + 'Sigma' + ], + [ + 932, + 'Tau' + ], + [ + 933, + 'Upsilon' + ], + [ + 934, + 'Phi' + ], + [ + 935, + 'Chi' + ], + [ + 936, + 'Psi' + ], + [ + 937, + 'Omega' + ], + [ + 945, + 'alpha' + ], + [ + 946, + 'beta' + ], + [ + 947, + 'gamma' + ], + [ + 948, + 'delta' + ], + [ + 949, + 'epsilon' + ], + [ + 950, + 'zeta' + ], + [ + 951, + 'eta' + ], + [ + 952, + 'theta' + ], + [ + 953, + 'iota' + ], + [ + 954, + 'kappa' + ], + [ + 955, + 'lambda' + ], + [ + 956, + 'mu' + ], + [ + 957, + 'nu' + ], + [ + 958, + 'xi' + ], + [ + 959, + 'omicron' + ], + [ + 960, + 'pi' + ], + [ + 961, + 'rho' + ], + [ + 962, + 'final sigma' + ], + [ + 963, + 'sigma' + ], + [ + 964, + 'tau' + ], + [ + 965, + 'upsilon' + ], + [ + 966, + 'phi' + ], + [ + 967, + 'chi' + ], + [ + 968, + 'psi' + ], + [ + 969, + 'omega' + ] + ] + }, + { + name: 'Symbols', + characters: [ + [ + 8501, + 'alef symbol' + ], + [ + 982, + 'pi symbol' + ], + [ + 8476, + 'real part symbol' + ], + [ + 978, + 'upsilon - hook symbol' + ], + [ + 8472, + 'Weierstrass p' + ], + [ + 8465, + 'imaginary part' + ] + ] + }, + { + name: 'Arrows', + characters: [ + [ + 8592, + 'leftwards arrow' + ], + [ + 8593, + 'upwards arrow' + ], + [ + 8594, + 'rightwards arrow' + ], + [ + 8595, + 'downwards arrow' + ], + [ + 8596, + 'left right arrow' + ], + [ + 8629, + 'carriage return' + ], + [ + 8656, + 'leftwards double arrow' + ], + [ + 8657, + 'upwards double arrow' + ], + [ + 8658, + 'rightwards double arrow' + ], + [ + 8659, + 'downwards double arrow' + ], + [ + 8660, + 'left right double arrow' + ], + [ + 8756, + 'therefore' + ], + [ + 8834, + 'subset of' + ], + [ + 8835, + 'superset of' + ], + [ + 8836, + 'not a subset of' + ], + [ + 8838, + 'subset of or equal to' + ], + [ + 8839, + 'superset of or equal to' + ], + [ + 8853, + 'circled plus' + ], + [ + 8855, + 'circled times' + ], + [ + 8869, + 'perpendicular' + ], + [ + 8901, + 'dot operator' + ], + [ + 8968, + 'left ceiling' + ], + [ + 8969, + 'right ceiling' + ], + [ + 8970, + 'left floor' + ], + [ + 8971, + 'right floor' + ], + [ + 9001, + 'left-pointing angle bracket' + ], + [ + 9002, + 'right-pointing angle bracket' + ], + [ + 9674, + 'lozenge' + ], + [ + 9824, + 'black spade suit' + ], + [ + 9827, + 'black club suit' + ], + [ + 9829, + 'black heart suit' + ], + [ + 9830, + 'black diamond suit' + ], + [ + 8194, + 'en space' + ], + [ + 8195, + 'em space' + ], + [ + 8201, + 'thin space' + ], + [ + 8204, + 'zero width non-joiner' + ], + [ + 8205, + 'zero width joiner' + ], + [ + 8206, + 'left-to-right mark' + ], + [ + 8207, + 'right-to-left mark' + ] + ] + } + ]; + }; + const charmapFilter = charmap => { + return global.grep(charmap, item => { + return isArray(item) && item.length === 2; + }); + }; + const getCharsFromOption = optionValue => { + if (isArray(optionValue)) { + return charmapFilter(optionValue); + } + if (typeof optionValue === 'function') { + return optionValue(); + } + return []; + }; + const extendCharMap = (editor, charmap) => { + const userCharMap = getCharMap$1(editor); + if (userCharMap) { + charmap = [{ + name: UserDefined, + characters: getCharsFromOption(userCharMap) + }]; + } + const userCharMapAppend = getCharMapAppend(editor); + if (userCharMapAppend) { + const userDefinedGroup = global.grep(charmap, cg => cg.name === UserDefined); + if (userDefinedGroup.length) { + userDefinedGroup[0].characters = [ + ...userDefinedGroup[0].characters, + ...getCharsFromOption(userCharMapAppend) + ]; + return charmap; + } + return charmap.concat({ + name: UserDefined, + characters: getCharsFromOption(userCharMapAppend) + }); + } + return charmap; + }; + const getCharMap = editor => { + const groups = extendCharMap(editor, getDefaultCharMap()); + return groups.length > 1 ? [{ + name: 'All', + characters: bind(groups, g => g.characters) + }].concat(groups) : groups; + }; + + const get = editor => { + const getCharMap$1 = () => { + return getCharMap(editor); + }; + const insertChar$1 = chr => { + insertChar(editor, chr); + }; + return { + getCharMap: getCharMap$1, + insertChar: insertChar$1 + }; + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + const last = (fn, rate) => { + let timer = null; + const cancel = () => { + if (!isNull(timer)) { + clearTimeout(timer); + timer = null; + } + }; + const throttle = (...args) => { + cancel(); + timer = setTimeout(() => { + timer = null; + fn.apply(null, args); + }, rate); + }; + return { + cancel, + throttle + }; + }; + + const contains = (str, substr, start = 0, end) => { + const idx = str.indexOf(substr, start); + if (idx !== -1) { + return isUndefined(end) ? true : idx + substr.length <= end; + } else { + return false; + } + }; + const fromCodePoint = String.fromCodePoint; + + const charMatches = (charCode, name, lowerCasePattern) => { + if (contains(fromCodePoint(charCode).toLowerCase(), lowerCasePattern)) { + return true; + } else { + return contains(name.toLowerCase(), lowerCasePattern) || contains(name.toLowerCase().replace(/\s+/g, ''), lowerCasePattern); + } + }; + const scan = (group, pattern) => { + const matches = []; + const lowerCasePattern = pattern.toLowerCase(); + each(group.characters, g => { + if (charMatches(g[0], g[1], lowerCasePattern)) { + matches.push(g); + } + }); + return map(matches, m => ({ + text: m[1], + value: fromCodePoint(m[0]), + icon: fromCodePoint(m[0]) + })); + }; + + const patternName = 'pattern'; + const open = (editor, charMap) => { + const makeGroupItems = () => [ + { + label: 'Buscar', + type: 'input', + name: patternName + }, + { + type: 'collection', + name: 'results' + } + ]; + const makeTabs = () => map(charMap, charGroup => ({ + title: charGroup.name, + name: charGroup.name, + items: makeGroupItems() + })); + const makePanel = () => ({ + type: 'panel', + items: makeGroupItems() + }); + const makeTabPanel = () => ({ + type: 'tabpanel', + tabs: makeTabs() + }); + const currentTab = charMap.length === 1 ? Cell(UserDefined) : Cell('All'); + const scanAndSet = (dialogApi, pattern) => { + find(charMap, group => group.name === currentTab.get()).each(f => { + const items = scan(f, pattern); + dialogApi.setData({ results: items }); + }); + }; + const Buscar_DELAY = 40; + const updateFilter = last(dialogApi => { + const pattern = dialogApi.getData().pattern; + scanAndSet(dialogApi, pattern); + }, Buscar_DELAY); + const body = charMap.length === 1 ? makePanel() : makeTabPanel(); + const initialData = { + pattern: '', + results: scan(charMap[0], '') + }; + const bridgeSpec = { + title: 'Special Character', + size: 'normal', + body, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData, + onAction: (api, details) => { + if (details.name === 'results') { + insertChar(editor, details.value); + api.close(); + } + }, + onTabChange: (dialogApi, details) => { + currentTab.set(details.newTabName); + updateFilter.throttle(dialogApi); + }, + onChange: (dialogApi, changeData) => { + if (changeData.name === patternName) { + updateFilter.throttle(dialogApi); + } + } + }; + const dialogApi = editor.windowManager.open(bridgeSpec); + dialogApi.focus(patternName); + }; + + const Registro$1 = (editor, charMap) => { + editor.addCommand('mceShowCharmap', () => { + open(editor, charMap); + }); + }; + + const init = (editor, all) => { + editor.ui.registry.addAutocompleter('charmap', { + trigger: ':', + columns: 'auto', + minChars: 2, + fetch: (pattern, _maxResults) => new Promise((resolve, _reject) => { + resolve(scan(all, pattern)); + }), + onAction: (autocompleteApi, rng, value) => { + editor.selection.setRng(rng); + editor.insertContent(value); + autocompleteApi.hide(); + } + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceShowCharmap'); + editor.ui.registry.addButton('charmap', { + icon: 'insert-character', + tooltip: 'Special character', + onAction + }); + editor.ui.registry.addMenuItem('charmap', { + icon: 'insert-character', + text: 'Special character...', + onAction + }); + }; + + var Plugin = () => { + global$1.add('charmap', editor => { + Registro$2(editor); + const charMap = getCharMap(editor); + Registro$1(editor, charMap); + Registro(editor); + init(editor, charMap[0]); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.min.js new file mode 100644 index 0000000..c7d2374 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/charmap/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=(e,t)=>{const r=((e,t)=>e.dispatch("insertCustomChar",{chr:t}))(e,t).chr;e.execCommand("mceInsertContent",!1,r)},r=e=>t=>e===t,a=("array",e=>"array"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=a=e,(n=String).prototype.isPrototypeOf(r)||(null===(i=a.constructor)||void 0===i?void 0:i.name)===n.name)?"string":t;var r,a,n,i})(e));const n=r(null),i=r(void 0),o=e=>"function"==typeof e,s=(!1,()=>false);class l{constructor(e,t){this.tag=e,this.value=t}static some(e){return new l(!0,e)}static none(){return l.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?l.some(e(this.value)):l.none()}bind(e){return this.tag?e(this.value):l.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:l.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?l.none():l.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}l.singletonNone=new l(!1);const c=Array.prototype.push,u=(e,t)=>{const r=e.length,a=new Array(r);for(let n=0;nt=>t.options.get(e),m=h("charmap"),p=h("charmap_append"),d=g.isArray,f="User Defined",y=e=>{return d(e)?(t=e,g.grep(t,(e=>d(e)&&2===e.length))):"function"==typeof e?e():[];var t},w=e=>{const t=((e,t)=>{const r=m(e);r&&(t=[{name:f,characters:y(r)}]);const a=p(e);if(a){const e=g.grep(t,(e=>e.name===f));return e.length?(e[0].characters=[...e[0].characters,...y(a)],t):t.concat({name:f,characters:y(a)})}return t})(e,[{name:"Currency",characters:[[36,"dollar sign"],[162,"cent sign"],[8364,"euro sign"],[163,"pound sign"],[165,"yen sign"],[164,"currency sign"],[8352,"euro-currency sign"],[8353,"colon sign"],[8354,"cruzeiro sign"],[8355,"french franc sign"],[8356,"lira sign"],[8357,"mill sign"],[8358,"naira sign"],[8359,"peseta sign"],[8360,"rupee sign"],[8361,"won sign"],[8362,"new sheqel sign"],[8363,"dong sign"],[8365,"kip sign"],[8366,"tugrik sign"],[8367,"drachma sign"],[8368,"german penny symbol"],[8369,"peso sign"],[8370,"guarani sign"],[8371,"austral sign"],[8372,"hryvnia sign"],[8373,"cedi sign"],[8374,"livre tournois sign"],[8375,"spesmilo sign"],[8376,"tenge sign"],[8377,"indian rupee sign"],[8378,"turkish lira sign"],[8379,"nordic mark sign"],[8380,"manat sign"],[8381,"ruble sign"],[20870,"yen character"],[20803,"yuan character"],[22291,"yuan character, in hong kong and taiwan"],[22278,"yen/yuan character variant one"]]},{name:"Text",characters:[[169,"copyright sign"],[174,"Registroed sign"],[8482,"trade mark sign"],[8240,"per mille sign"],[181,"micro sign"],[183,"middle dot"],[8226,"bullet"],[8230,"three dot leader"],[8242,"minutes / feet"],[8243,"seconds / inches"],[167,"section sign"],[182,"paragraph sign"],[223,"sharp s / ess-zed"]]},{name:"Quotations",characters:[[8249,"single left-pointing angle quotation mark"],[8250,"single right-pointing angle quotation mark"],[171,"left pointing guillemet"],[187,"right pointing guillemet"],[8216,"left single quotation mark"],[8217,"right single quotation mark"],[8220,"left double quotation mark"],[8221,"right double quotation mark"],[8218,"single low-9 quotation mark"],[8222,"double low-9 quotation mark"],[60,"less-than sign"],[62,"greater-than sign"],[8804,"less-than or equal to"],[8805,"greater-than or equal to"],[8211,"en dash"],[8212,"em dash"],[175,"macron"],[8254,"overline"],[164,"currency sign"],[166,"broken bar"],[168,"diaeresis"],[161,"inverted exclamation mark"],[191,"turned question mark"],[710,"circumflex accent"],[732,"small tilde"],[176,"degree sign"],[8722,"minus sign"],[177,"plus-minus sign"],[247,"division sign"],[8260,"fraction slash"],[215,"multiplication sign"],[185,"superscript one"],[178,"superscript two"],[179,"superscript three"],[188,"fraction one quarter"],[189,"fraction one half"],[190,"fraction three quarters"]]},{name:"Mathematical",characters:[[402,"function / florin"],[8747,"integral"],[8721,"n-ary sumation"],[8734,"infinity"],[8730,"square root"],[8764,"similar to"],[8773,"approximately equal to"],[8776,"almost equal to"],[8800,"not equal to"],[8801,"identical to"],[8712,"element of"],[8713,"not an element of"],[8715,"contains as member"],[8719,"n-ary product"],[8743,"logical and"],[8744,"logical or"],[172,"not sign"],[8745,"intersection"],[8746,"union"],[8706,"partial differential"],[8704,"for all"],[8707,"there exists"],[8709,"diameter"],[8711,"backward difference"],[8727,"asterisk operator"],[8733,"proportional to"],[8736,"angle"]]},{name:"Extended Latin",characters:[[192,"A - grave"],[193,"A - acute"],[194,"A - circumflex"],[195,"A - tilde"],[196,"A - diaeresis"],[197,"A - ring above"],[256,"A - macron"],[198,"ligature AE"],[199,"C - cedilla"],[200,"E - grave"],[201,"E - acute"],[202,"E - circumflex"],[203,"E - diaeresis"],[274,"E - macron"],[204,"I - grave"],[205,"I - acute"],[206,"I - circumflex"],[207,"I - diaeresis"],[298,"I - macron"],[208,"ETH"],[209,"N - tilde"],[210,"O - grave"],[211,"O - acute"],[212,"O - circumflex"],[213,"O - tilde"],[214,"O - diaeresis"],[216,"O - slash"],[332,"O - macron"],[338,"ligature OE"],[352,"S - caron"],[217,"U - grave"],[218,"U - acute"],[219,"U - circumflex"],[220,"U - diaeresis"],[362,"U - macron"],[221,"Y - acute"],[376,"Y - diaeresis"],[562,"Y - macron"],[222,"THORN"],[224,"a - grave"],[225,"a - acute"],[226,"a - circumflex"],[227,"a - tilde"],[228,"a - diaeresis"],[229,"a - ring above"],[257,"a - macron"],[230,"ligature ae"],[231,"c - cedilla"],[232,"e - grave"],[233,"e - acute"],[234,"e - circumflex"],[235,"e - diaeresis"],[275,"e - macron"],[236,"i - grave"],[237,"i - acute"],[238,"i - circumflex"],[239,"i - diaeresis"],[299,"i - macron"],[240,"eth"],[241,"n - tilde"],[242,"o - grave"],[243,"o - acute"],[244,"o - circumflex"],[245,"o - tilde"],[246,"o - diaeresis"],[248,"o slash"],[333,"o macron"],[339,"ligature oe"],[353,"s - caron"],[249,"u - grave"],[250,"u - acute"],[251,"u - circumflex"],[252,"u - diaeresis"],[363,"u - macron"],[253,"y - acute"],[254,"thorn"],[255,"y - diaeresis"],[563,"y - macron"],[913,"Alpha"],[914,"Beta"],[915,"Gamma"],[916,"Delta"],[917,"Epsilon"],[918,"Zeta"],[919,"Eta"],[920,"Theta"],[921,"Iota"],[922,"Kappa"],[923,"Lambda"],[924,"Mu"],[925,"Nu"],[926,"Xi"],[927,"Omicron"],[928,"Pi"],[929,"Rho"],[931,"Sigma"],[932,"Tau"],[933,"Upsilon"],[934,"Phi"],[935,"Chi"],[936,"Psi"],[937,"Omega"],[945,"alpha"],[946,"beta"],[947,"gamma"],[948,"delta"],[949,"epsilon"],[950,"zeta"],[951,"eta"],[952,"theta"],[953,"iota"],[954,"kappa"],[955,"lambda"],[956,"mu"],[957,"nu"],[958,"xi"],[959,"omicron"],[960,"pi"],[961,"rho"],[962,"final sigma"],[963,"sigma"],[964,"tau"],[965,"upsilon"],[966,"phi"],[967,"chi"],[968,"psi"],[969,"omega"]]},{name:"Symbols",characters:[[8501,"alef symbol"],[982,"pi symbol"],[8476,"real part symbol"],[978,"upsilon - hook symbol"],[8472,"Weierstrass p"],[8465,"imaginary part"]]},{name:"Arrows",characters:[[8592,"leftwards arrow"],[8593,"upwards arrow"],[8594,"rightwards arrow"],[8595,"downwards arrow"],[8596,"left right arrow"],[8629,"carriage return"],[8656,"leftwards double arrow"],[8657,"upwards double arrow"],[8658,"rightwards double arrow"],[8659,"downwards double arrow"],[8660,"left right double arrow"],[8756,"therefore"],[8834,"subset of"],[8835,"superset of"],[8836,"not a subset of"],[8838,"subset of or equal to"],[8839,"superset of or equal to"],[8853,"circled plus"],[8855,"circled times"],[8869,"perpendicular"],[8901,"dot operator"],[8968,"left ceiling"],[8969,"right ceiling"],[8970,"left floor"],[8971,"right floor"],[9001,"left-pointing angle bracket"],[9002,"right-pointing angle bracket"],[9674,"lozenge"],[9824,"black spade suit"],[9827,"black club suit"],[9829,"black heart suit"],[9830,"black diamond suit"],[8194,"en space"],[8195,"em space"],[8201,"thin space"],[8204,"zero width non-joiner"],[8205,"zero width joiner"],[8206,"left-to-right mark"],[8207,"right-to-left mark"]]}]);return t.length>1?[{name:"All",characters:(r=t,n=e=>e.characters,(e=>{const t=[];for(let r=0,n=e.length;r{let t=e;return{get:()=>t,set:e=>{t=e}}},b=(e,t,r=0,a)=>{const n=e.indexOf(t,r);return-1!==n&&(!!i(a)||n+t.length<=a)},k=String.fromCodePoint,C=(e,t)=>{const r=[],a=t.toLowerCase();return((e,t)=>{for(let t=0,i=e.length;t!!b(k(e).toLowerCase(),r)||b(t.toLowerCase(),r)||b(t.toLowerCase().replace(/\s+/g,""),r))((n=e[t])[0],n[1],a)&&r.push(n);var n})(e.characters),u(r,(e=>({text:e[1],value:k(e[0]),icon:k(e[0])})))},x="pattern",A=(e,r)=>{const a=()=>[{label:"Buscar",type:"input",name:x},{type:"collection",name:"results"}],i=1===r.length?v(f):v("All"),o=((e,t)=>{let r=null;const a=()=>{n(r)||(clearTimeout(r),r=null)};return{cancel:a,throttle:(...t)=>{a(),r=setTimeout((()=>{r=null,e.apply(null,t)}),40)}}})((e=>{const t=e.getData().pattern;((e,t)=>{var a,n;(a=r,n=e=>e.name===i.get(),((e,t,r)=>{for(let a=0,n=e.length;a{const a=C(r,t);e.setData({results:a})}))})(e,t)})),c={title:"Special Character",size:"normal",body:1===r.length?{type:"panel",items:a()}:{type:"tabpanel",tabs:u(r,(e=>({title:e.name,name:e.name,items:a()})))},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{pattern:"",results:C(r[0],"")},onAction:(r,a)=>{"results"===a.name&&(t(e,a.value),r.close())},onTabChange:(e,t)=>{i.set(t.newTabName),o.throttle(e)},onChange:(e,t)=>{t.name===x&&o.throttle(e)}};e.windowManager.open(c).focus(x)};e.add("charmap",(e=>{(e=>{const t=e.options.Registro,r=e=>o(e)||a(e);t("charmap",{processor:r}),t("charmap_append",{processor:r})})(e);const r=w(e);return((e,t)=>{e.addCommand("mceShowCharmap",(()=>{A(e,t)}))})(e,r),(e=>{const t=()=>e.execCommand("mceShowCharmap");e.ui.registry.addButton("charmap",{icon:"insert-character",tooltip:"Special character",onAction:t}),e.ui.registry.addMenuItem("charmap",{icon:"insert-character",text:"Special character...",onAction:t})})(e),((e,t)=>{e.ui.registry.addAutocompleter("charmap",{trigger:":",columns:"auto",minChars:2,fetch:(e,r)=>new Promise(((r,a)=>{r(C(t,e))})),onAction:(t,r,a)=>{e.selection.setRng(r),e.insertContent(a),t.hide()}})})(e,r[0]),(e=>({getCharMap:()=>w(e),insertChar:r=>{t(e,r)}}))(e)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/code/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/index.js new file mode 100644 index 0000000..1e412f3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/index.js @@ -0,0 +1,7 @@ +// Exports the "code" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/code') +// ES2015: +// import 'tinymce/plugins/code' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.js new file mode 100644 index 0000000..6771178 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.js @@ -0,0 +1,85 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const setContent = (editor, html) => { + editor.focus(); + editor.undoManager.transact(() => { + editor.setContent(html); + }); + editor.selection.setCursorLocation(); + editor.nodeChanged(); + }; + const getContent = editor => { + return editor.getContent({ source_view: true }); + }; + + const open = editor => { + const editorContent = getContent(editor); + editor.windowManager.open({ + title: 'Source Code', + size: 'large', + body: { + type: 'panel', + items: [{ + type: 'textarea', + name: 'code' + }] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: { code: editorContent }, + onSubmit: api => { + setContent(editor, api.getData().code); + api.close(); + } + }); + }; + + const Registro$1 = editor => { + editor.addCommand('mceCodeEditor', () => { + open(editor); + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceCodeEditor'); + editor.ui.registry.addButton('code', { + icon: 'sourcecode', + tooltip: 'Source code', + onAction + }); + editor.ui.registry.addMenuItem('code', { + icon: 'sourcecode', + text: 'Source code', + onAction + }); + }; + + var Plugin = () => { + global.add('code', editor => { + Registro$1(editor); + Registro(editor); + return {}; + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.min.js new file mode 100644 index 0000000..20af256 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/code/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const o=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:o},onSubmit:o=>{((e,o)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(o)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,o.getData().code),o.close()}})})(e)}))})(e),(e=>{const o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:o})})(e),{})))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/index.js new file mode 100644 index 0000000..c400ec3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/index.js @@ -0,0 +1,7 @@ +// Exports the "codesample" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/codesample') +// ES2015: +// import 'tinymce/plugins/codesample' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.js new file mode 100644 index 0000000..a574b30 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.js @@ -0,0 +1,2449 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + + const constant = value => { + return () => { + return value; + }; + }; + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const get$1 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); + const head = xs => get$1(xs, 0); + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + const Global = typeof window !== 'undefined' ? window : Function('return this;')(); + + const prismjs = function (global, module, exports) { + const oldprism = window.Prism; + window.Prism = { manual: true }; + var _self = typeof window !== 'undefined' ? window : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self : {}; + var Prism = function (_self) { + var lang = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i; + var uniqueId = 0; + var plainTextGrammar = {}; + var _ = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode: function encode(tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, encode(tokens.content), tokens.alias); + } else if (Array.isArray(tokens)) { + return tokens.map(encode); + } else { + return tokens.replace(/&/g, '&').replace(/' + env.content + ''; + }; + function matchPattern(pattern, pos, text, lookbehind) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (match && lookbehind && match[1]) { + var lookbehindLength = match[1].length; + match.index += lookbehindLength; + match[0] = match[0].slice(lookbehindLength); + } + return match; + } + function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) { + for (var token in grammar) { + if (!grammar.hasOwnProperty(token) || !grammar[token]) { + continue; + } + var patterns = grammar[token]; + patterns = Array.isArray(patterns) ? patterns : [patterns]; + for (var j = 0; j < patterns.length; ++j) { + if (rematch && rematch.cause == token + ',' + j) { + return; + } + var patternObj = patterns[j]; + var inside = patternObj.inside; + var lookbehind = !!patternObj.lookbehind; + var greedy = !!patternObj.greedy; + var alias = patternObj.alias; + if (greedy && !patternObj.pattern.global) { + var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0]; + patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g'); + } + var pattern = patternObj.pattern || patternObj; + for (var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) { + if (rematch && pos >= rematch.reach) { + break; + } + var str = currentNode.value; + if (tokenList.length > text.length) { + return; + } + if (str instanceof Token) { + continue; + } + var removeCount = 1; + var match; + if (greedy) { + match = matchPattern(pattern, pos, text, lookbehind); + if (!match || match.index >= text.length) { + break; + } + var from = match.index; + var to = match.index + match[0].length; + var p = pos; + p += currentNode.value.length; + while (from >= p) { + currentNode = currentNode.next; + p += currentNode.value.length; + } + p -= currentNode.value.length; + pos = p; + if (currentNode.value instanceof Token) { + continue; + } + for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) { + removeCount++; + p += k.value.length; + } + removeCount--; + str = text.slice(pos, p); + match.index -= pos; + } else { + match = matchPattern(pattern, 0, str, lookbehind); + if (!match) { + continue; + } + } + var from = match.index; + var matchStr = match[0]; + var before = str.slice(0, from); + var after = str.slice(from + matchStr.length); + var reach = pos + str.length; + if (rematch && reach > rematch.reach) { + rematch.reach = reach; + } + var removeFrom = currentNode.prev; + if (before) { + removeFrom = addAfter(tokenList, removeFrom, before); + pos += before.length; + } + removeRange(tokenList, removeFrom, removeCount); + var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr); + currentNode = addAfter(tokenList, removeFrom, wrapped); + if (after) { + addAfter(tokenList, currentNode, after); + } + if (removeCount > 1) { + var nestedRematch = { + cause: token + ',' + j, + reach: reach + }; + matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch); + if (rematch && nestedRematch.reach > rematch.reach) { + rematch.reach = nestedRematch.reach; + } + } + } + } + } + } + function LinkedList() { + var head = { + value: null, + prev: null, + next: null + }; + var tail = { + value: null, + prev: head, + next: null + }; + head.next = tail; + this.head = head; + this.tail = tail; + this.length = 0; + } + function addAfter(list, node, value) { + var next = node.next; + var newNode = { + value: value, + prev: node, + next: next + }; + node.next = newNode; + next.prev = newNode; + list.length++; + return newNode; + } + function removeRange(list, node, count) { + var next = node.next; + for (var i = 0; i < count && next !== list.tail; i++) { + next = next.next; + } + node.next = next; + next.prev = node; + list.length -= i; + } + function toArray(list) { + var array = []; + var node = list.head.next; + while (node !== list.tail) { + array.push(node.value); + node = node.next; + } + return array; + } + if (!_self.document) { + if (!_self.addEventListener) { + return _; + } + if (!_.disableWorkerMessageHandler) { + _self.addEventListener('message', function (evt) { + var message = JSON.parse(evt.data); + var lang = message.language; + var code = message.code; + var immediateClose = message.immediateClose; + _self.postMessage(_.highlight(code, _.languages[lang], lang)); + if (immediateClose) { + _self.close(); + } + }, false); + } + return _; + } + var script = _.util.currentScript(); + if (script) { + _.filename = script.src; + if (script.hasAttribute('data-manual')) { + _.manual = true; + } + } + function highlightAutomaticallyCallback() { + if (!_.manual) { + _.highlightAll(); + } + } + if (!_.manual) { + var readyState = document.readyState; + if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) { + document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback); + } else { + if (window.requestAnimationFrame) { + window.requestAnimationFrame(highlightAutomaticallyCallback); + } else { + window.setTimeout(highlightAutomaticallyCallback, 16); + } + } + } + return _; + }(_self); + if (typeof module !== 'undefined' && module.exports) { + module.exports = Prism; + } + if (typeof global !== 'undefined') { + global.Prism = Prism; + } + Prism.languages.clike = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true, + greedy: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true + } + ], + 'string': { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'class-name': { + pattern: /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: true, + inside: { 'punctuation': /[.\\]/ } + }, + 'keyword': /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/, + 'boolean': /\b(?:false|true)\b/, + 'function': /\b\w+(?=\()/, + 'number': /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, + 'operator': /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, + 'punctuation': /[{}[\];(),.:]/ + }; + (function (Prism) { + function getPlaceholder(language, index) { + return '___' + language.toUpperCase() + index + '___'; + } + Object.defineProperties(Prism.languages['markup-templating'] = {}, { + buildPlaceholders: { + value: function (env, language, placeholderPattern, replaceFilter) { + if (env.language !== language) { + return; + } + var tokenStack = env.tokenStack = []; + env.code = env.code.replace(placeholderPattern, function (match) { + if (typeof replaceFilter === 'function' && !replaceFilter(match)) { + return match; + } + var i = tokenStack.length; + var placeholder; + while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) { + ++i; + } + tokenStack[i] = match; + return placeholder; + }); + env.grammar = Prism.languages.markup; + } + }, + tokenizePlaceholders: { + value: function (env, language) { + if (env.language !== language || !env.tokenStack) { + return; + } + env.grammar = Prism.languages[language]; + var j = 0; + var keys = Object.keys(env.tokenStack); + function walkTokens(tokens) { + for (var i = 0; i < tokens.length; i++) { + if (j >= keys.length) { + break; + } + var token = tokens[i]; + if (typeof token === 'string' || token.content && typeof token.content === 'string') { + var k = keys[j]; + var t = env.tokenStack[k]; + var s = typeof token === 'string' ? token : token.content; + var placeholder = getPlaceholder(language, k); + var index = s.indexOf(placeholder); + if (index > -1) { + ++j; + var before = s.substring(0, index); + var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t); + var after = s.substring(index + placeholder.length); + var replacement = []; + if (before) { + replacement.push.apply(replacement, walkTokens([before])); + } + replacement.push(middle); + if (after) { + replacement.push.apply(replacement, walkTokens([after])); + } + if (typeof token === 'string') { + tokens.splice.apply(tokens, [ + i, + 1 + ].concat(replacement)); + } else { + token.content = replacement; + } + } + } else if (token.content) { + walkTokens(token.content); + } + } + return tokens; + } + walkTokens(env.tokens); + } + } + }); + }(Prism)); + Prism.languages.c = Prism.languages.extend('clike', { + 'comment': { + pattern: /\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/, + greedy: true + }, + 'string': { + pattern: /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/, + greedy: true + }, + 'class-name': { + pattern: /(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/, + lookbehind: true + }, + 'keyword': /\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|Registro|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/, + 'function': /\b[a-z_]\w*(?=\s*\()/i, + 'number': /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i, + 'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/ + }); + Prism.languages.insertBefore('c', 'string', { + 'char': { + pattern: /'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/, + greedy: true + } + }); + Prism.languages.insertBefore('c', 'string', { + 'macro': { + pattern: /(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im, + lookbehind: true, + greedy: true, + alias: 'property', + inside: { + 'string': [ + { + pattern: /^(#\s*include\s*)<[^>]+>/, + lookbehind: true + }, + Prism.languages.c['string'] + ], + 'char': Prism.languages.c['char'], + 'comment': Prism.languages.c['comment'], + 'macro-name': [ + { + pattern: /(^#\s*define\s+)\w+\b(?!\()/i, + lookbehind: true + }, + { + pattern: /(^#\s*define\s+)\w+\b(?=\()/i, + lookbehind: true, + alias: 'function' + } + ], + 'directive': { + pattern: /^(#\s*)[a-z]+/, + lookbehind: true, + alias: 'keyword' + }, + 'directive-hash': /^#/, + 'punctuation': /##|\\(?=[\r\n])/, + 'expression': { + pattern: /\S[\s\S]*/, + inside: Prism.languages.c + } + } + } + }); + Prism.languages.insertBefore('c', 'function', { 'constant': /\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/ }); + delete Prism.languages.c['boolean']; + (function (Prism) { + var keyword = /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|Registro|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/; + var modName = /\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g, function () { + return keyword.source; + }); + Prism.languages.cpp = Prism.languages.extend('c', { + 'class-name': [ + { + pattern: RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g, function () { + return keyword.source; + })), + lookbehind: true + }, + /\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/, + /\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i, + /\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/ + ], + 'keyword': keyword, + 'number': { + pattern: /(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i, + greedy: true + }, + 'operator': />>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/, + 'boolean': /\b(?:false|true)\b/ + }); + Prism.languages.insertBefore('cpp', 'string', { + 'module': { + pattern: RegExp(/(\b(?:import|module)\s+)/.source + '(?:' + /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source + '|' + /(?:\s*:\s*)?|:\s*/.source.replace(//g, function () { + return modName; + }) + ')'), + lookbehind: true, + greedy: true, + inside: { + 'string': /^[<"][\s\S]+/, + 'operator': /:/, + 'punctuation': /\./ + } + }, + 'raw-string': { + pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/, + alias: 'string', + greedy: true + } + }); + Prism.languages.insertBefore('cpp', 'keyword', { + 'generic-function': { + pattern: /\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i, + inside: { + 'function': /^\w+/, + 'generic': { + pattern: /<[\s\S]+/, + alias: 'class-name', + inside: Prism.languages.cpp + } + } + } + }); + Prism.languages.insertBefore('cpp', 'operator', { + 'double-colon': { + pattern: /::/, + alias: 'punctuation' + } + }); + Prism.languages.insertBefore('cpp', 'class-name', { + 'base-clause': { + pattern: /(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/, + lookbehind: true, + greedy: true, + inside: Prism.languages.extend('cpp', {}) + } + }); + Prism.languages.insertBefore('inside', 'double-colon', { 'class-name': /\b[a-z_]\w*\b(?!\s*::)/i }, Prism.languages.cpp['base-clause']); + }(Prism)); + (function (Prism) { + function replace(pattern, replacements) { + return pattern.replace(/<<(\d+)>>/g, function (m, index) { + return '(?:' + replacements[+index] + ')'; + }); + } + function re(pattern, replacements, flags) { + return RegExp(replace(pattern, replacements), flags || ''); + } + function nested(pattern, depthLog2) { + for (var i = 0; i < depthLog2; i++) { + pattern = pattern.replace(/<>/g, function () { + return '(?:' + pattern + ')'; + }); + } + return pattern.replace(/<>/g, '[^\\s\\S]'); + } + var keywordKinds = { + type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void', + typeDeclaration: 'class enum interface record struct', + contextual: 'add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)', + other: 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield' + }; + function keywordsToPattern(words) { + return '\\b(?:' + words.trim().replace(/ /g, '|') + ')\\b'; + } + var typeDeclarationKeywords = keywordsToPattern(keywordKinds.typeDeclaration); + var keywords = RegExp(keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other)); + var nonTypeKeywords = keywordsToPattern(keywordKinds.typeDeclaration + ' ' + keywordKinds.contextual + ' ' + keywordKinds.other); + var nonContextualKeywords = keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.typeDeclaration + ' ' + keywordKinds.other); + var generic = nested(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source, 2); + var nestedRound = nested(/\((?:[^()]|<>)*\)/.source, 2); + var name = /@?\b[A-Za-z_]\w*\b/.source; + var genericName = replace(/<<0>>(?:\s*<<1>>)?/.source, [ + name, + generic + ]); + var identifier = replace(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source, [ + nonTypeKeywords, + genericName + ]); + var array = /\[\s*(?:,\s*)*\]/.source; + var typeExpressionWithoutTuple = replace(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source, [ + identifier, + array + ]); + var tupleElement = replace(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source, [ + generic, + nestedRound, + array + ]); + var tuple = replace(/\(<<0>>+(?:,<<0>>+)+\)/.source, [tupleElement]); + var typeExpression = replace(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source, [ + tuple, + identifier, + array + ]); + var typeInside = { + 'keyword': keywords, + 'punctuation': /[<>()?,.:[\]]/ + }; + var character = /'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source; + var regularString = /"(?:\\.|[^\\"\r\n])*"/.source; + var verbatimString = /@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source; + Prism.languages.csharp = Prism.languages.extend('clike', { + 'string': [ + { + pattern: re(/(^|[^$\\])<<0>>/.source, [verbatimString]), + lookbehind: true, + greedy: true + }, + { + pattern: re(/(^|[^@$\\])<<0>>/.source, [regularString]), + lookbehind: true, + greedy: true + } + ], + 'class-name': [ + { + pattern: re(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source, [identifier]), + lookbehind: true, + inside: typeInside + }, + { + pattern: re(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source, [ + name, + typeExpression + ]), + lookbehind: true, + inside: typeInside + }, + { + pattern: re(/(\busing\s+)<<0>>(?=\s*=)/.source, [name]), + lookbehind: true + }, + { + pattern: re(/(\b<<0>>\s+)<<1>>/.source, [ + typeDeclarationKeywords, + genericName + ]), + lookbehind: true, + inside: typeInside + }, + { + pattern: re(/(\bcatch\s*\(\s*)<<0>>/.source, [identifier]), + lookbehind: true, + inside: typeInside + }, + { + pattern: re(/(\bwhere\s+)<<0>>/.source, [name]), + lookbehind: true + }, + { + pattern: re(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source, [typeExpressionWithoutTuple]), + lookbehind: true, + inside: typeInside + }, + { + pattern: re(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source, [ + typeExpression, + nonContextualKeywords, + name + ]), + inside: typeInside + } + ], + 'keyword': keywords, + 'number': /(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i, + 'operator': />>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/, + 'punctuation': /\?\.?|::|[{}[\];(),.:]/ + }); + Prism.languages.insertBefore('csharp', 'number', { + 'range': { + pattern: /\.\./, + alias: 'operator' + } + }); + Prism.languages.insertBefore('csharp', 'punctuation', { + 'named-parameter': { + pattern: re(/([(,]\s*)<<0>>(?=\s*:)/.source, [name]), + lookbehind: true, + alias: 'punctuation' + } + }); + Prism.languages.insertBefore('csharp', 'class-name', { + 'namespace': { + pattern: re(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source, [name]), + lookbehind: true, + inside: { 'punctuation': /\./ } + }, + 'type-expression': { + pattern: re(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source, [nestedRound]), + lookbehind: true, + alias: 'class-name', + inside: typeInside + }, + 'return-type': { + pattern: re(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source, [ + typeExpression, + identifier + ]), + inside: typeInside, + alias: 'class-name' + }, + 'constructor-invocation': { + pattern: re(/(\bnew\s+)<<0>>(?=\s*[[({])/.source, [typeExpression]), + lookbehind: true, + inside: typeInside, + alias: 'class-name' + }, + 'generic-method': { + pattern: re(/<<0>>\s*<<1>>(?=\s*\()/.source, [ + name, + generic + ]), + inside: { + 'function': re(/^<<0>>/.source, [name]), + 'generic': { + pattern: RegExp(generic), + alias: 'class-name', + inside: typeInside + } + } + }, + 'type-list': { + pattern: re(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source, [ + typeDeclarationKeywords, + genericName, + name, + typeExpression, + keywords.source, + nestedRound, + /\bnew\s*\(\s*\)/.source + ]), + lookbehind: true, + inside: { + 'record-arguments': { + pattern: re(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source, [ + genericName, + nestedRound + ]), + lookbehind: true, + greedy: true, + inside: Prism.languages.csharp + }, + 'keyword': keywords, + 'class-name': { + pattern: RegExp(typeExpression), + greedy: true, + inside: typeInside + }, + 'punctuation': /[,()]/ + } + }, + 'preprocessor': { + pattern: /(^[\t ]*)#.*/m, + lookbehind: true, + alias: 'property', + inside: { + 'directive': { + pattern: /(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/, + lookbehind: true, + alias: 'keyword' + } + } + } + }); + var regularStringOrCharacter = regularString + '|' + character; + var regularStringCharacterOrComment = replace(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source, [regularStringOrCharacter]); + var roundExpression = nested(replace(/[^"'/()]|<<0>>|\(<>*\)/.source, [regularStringCharacterOrComment]), 2); + var attrTarget = /\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source; + var attr = replace(/<<0>>(?:\s*\(<<1>>*\))?/.source, [ + identifier, + roundExpression + ]); + Prism.languages.insertBefore('csharp', 'class-name', { + 'attribute': { + pattern: re(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source, [ + attrTarget, + attr + ]), + lookbehind: true, + greedy: true, + inside: { + 'target': { + pattern: re(/^<<0>>(?=\s*:)/.source, [attrTarget]), + alias: 'keyword' + }, + 'attribute-arguments': { + pattern: re(/\(<<0>>*\)/.source, [roundExpression]), + inside: Prism.languages.csharp + }, + 'class-name': { + pattern: RegExp(identifier), + inside: { 'punctuation': /\./ } + }, + 'punctuation': /[:,]/ + } + } + }); + var formatString = /:[^}\r\n]+/.source; + var mInterpolationRound = nested(replace(/[^"'/()]|<<0>>|\(<>*\)/.source, [regularStringCharacterOrComment]), 2); + var mInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [ + mInterpolationRound, + formatString + ]); + var sInterpolationRound = nested(replace(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source, [regularStringOrCharacter]), 2); + var sInterpolation = replace(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source, [ + sInterpolationRound, + formatString + ]); + function createInterpolationInside(interpolation, interpolationRound) { + return { + 'interpolation': { + pattern: re(/((?:^|[^{])(?:\{\{)*)<<0>>/.source, [interpolation]), + lookbehind: true, + inside: { + 'format-string': { + pattern: re(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source, [ + interpolationRound, + formatString + ]), + lookbehind: true, + inside: { 'punctuation': /^:/ } + }, + 'punctuation': /^\{|\}$/, + 'expression': { + pattern: /[\s\S]+/, + alias: 'language-csharp', + inside: Prism.languages.csharp + } + } + }, + 'string': /[\s\S]+/ + }; + } + Prism.languages.insertBefore('csharp', 'string', { + 'interpolation-string': [ + { + pattern: re(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source, [mInterpolation]), + lookbehind: true, + greedy: true, + inside: createInterpolationInside(mInterpolation, mInterpolationRound) + }, + { + pattern: re(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source, [sInterpolation]), + lookbehind: true, + greedy: true, + inside: createInterpolationInside(sInterpolation, sInterpolationRound) + } + ], + 'char': { + pattern: RegExp(character), + greedy: true + } + }); + Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp; + }(Prism)); + (function (Prism) { + var string = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/; + Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/, + inside: { + 'rule': /^@[\w-]+/, + 'selector-function-argument': { + pattern: /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/, + lookbehind: true, + alias: 'selector' + }, + 'keyword': { + pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/, + lookbehind: true + } + } + }, + 'url': { + pattern: RegExp('\\burl\\((?:' + string.source + '|' + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ')\\)', 'i'), + greedy: true, + inside: { + 'function': /^url/i, + 'punctuation': /^\(|\)$/, + 'string': { + pattern: RegExp('^' + string.source + '$'), + alias: 'url' + } + } + }, + 'selector': { + pattern: RegExp('(^|[{}\\s])[^{}\\s](?:[^{};"\'\\s]|\\s+(?![\\s{])|' + string.source + ')*(?=\\s*\\{)'), + lookbehind: true + }, + 'string': { + pattern: string, + greedy: true + }, + 'property': { + pattern: /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i, + lookbehind: true + }, + 'important': /!important\b/i, + 'function': { + pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i, + lookbehind: true + }, + 'punctuation': /[(){};:,]/ + }; + Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + var markup = Prism.languages.markup; + if (markup) { + markup.tag.addInlined('style', 'css'); + markup.tag.addAttribute('style', 'css'); + } + }(Prism)); + (function (Prism) { + var keywords = /\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/; + var classNamePrefix = /(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source; + var className = { + pattern: RegExp(/(^|[^\w.])/.source + classNamePrefix + /[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source), + lookbehind: true, + inside: { + 'namespace': { + pattern: /^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/, + inside: { 'punctuation': /\./ } + }, + 'punctuation': /\./ + } + }; + Prism.languages.java = Prism.languages.extend('clike', { + 'string': { + pattern: /(^|[^\\])"(?:\\.|[^"\\\r\n])*"/, + lookbehind: true, + greedy: true + }, + 'class-name': [ + className, + { + pattern: RegExp(/(^|[^\w.])/.source + classNamePrefix + /[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source), + lookbehind: true, + inside: className.inside + }, + { + pattern: RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source + classNamePrefix + /[A-Z]\w*\b/.source), + lookbehind: true, + inside: className.inside + } + ], + 'keyword': keywords, + 'function': [ + Prism.languages.clike.function, + { + pattern: /(::\s*)[a-z_]\w*/, + lookbehind: true + } + ], + 'number': /\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i, + 'operator': { + pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, + lookbehind: true + } + }); + Prism.languages.insertBefore('java', 'string', { + 'triple-quoted-string': { + pattern: /"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/, + greedy: true, + alias: 'string' + }, + 'char': { + pattern: /'(?:\\.|[^'\\\r\n]){1,6}'/, + greedy: true + } + }); + Prism.languages.insertBefore('java', 'class-name', { + 'annotation': { + pattern: /(^|[^.])@\w+(?:\s*\.\s*\w+)*/, + lookbehind: true, + alias: 'punctuation' + }, + 'generics': { + pattern: /<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/, + inside: { + 'class-name': className, + 'keyword': keywords, + 'punctuation': /[<>(),.:]/, + 'operator': /[?&|]/ + } + }, + 'import': [ + { + pattern: RegExp(/(\bimport\s+)/.source + classNamePrefix + /(?:[A-Z]\w*|\*)(?=\s*;)/.source), + lookbehind: true, + inside: { + 'namespace': className.inside.namespace, + 'punctuation': /\./, + 'operator': /\*/, + 'class-name': /\w+/ + } + }, + { + pattern: RegExp(/(\bimport\s+static\s+)/.source + classNamePrefix + /(?:\w+|\*)(?=\s*;)/.source), + lookbehind: true, + alias: 'static', + inside: { + 'namespace': className.inside.namespace, + 'static': /\b\w+$/, + 'punctuation': /\./, + 'operator': /\*/, + 'class-name': /\w+/ + } + } + ], + 'namespace': { + pattern: RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g, function () { + return keywords.source; + })), + lookbehind: true, + inside: { 'punctuation': /\./ } + } + }); + }(Prism)); + Prism.languages.javascript = Prism.languages.extend('clike', { + 'class-name': [ + Prism.languages.clike['class-name'], + { + pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/, + lookbehind: true + } + ], + 'keyword': [ + { + pattern: /((?:^|\})\s*)catch\b/, + lookbehind: true + }, + { + pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: true + } + ], + 'function': /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + 'number': { + pattern: RegExp(/(^|[^\w$])/.source + '(?:' + (/NaN|Infinity/.source + '|' + /0[bB][01]+(?:_[01]+)*n?/.source + '|' + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + '|' + /0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source + '|' + /\d+(?:_\d+)*n/.source + '|' + /(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source) + ')' + /(?![\w$])/.source), + lookbehind: true + }, + 'operator': /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/ + }); + Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/; + Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source + /\//.source + '(?:' + /(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source + '|' + /(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + ')' + /(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source), + lookbehind: true, + greedy: true, + inside: { + 'regex-source': { + pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/, + lookbehind: true, + alias: 'language-regex', + inside: Prism.languages.regex + }, + 'regex-delimiter': /^\/|\/$/, + 'regex-flags': /^[a-z]+$/ + } + }, + 'function-variable': { + pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/, + alias: 'function' + }, + 'parameter': [ + { + pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/, + lookbehind: true, + inside: Prism.languages.javascript + } + ], + 'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/ + }); + Prism.languages.insertBefore('javascript', 'string', { + 'hashbang': { + pattern: /^#!.*/, + greedy: true, + alias: 'comment' + }, + 'template-string': { + pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/, + greedy: true, + inside: { + 'template-punctuation': { + pattern: /^`|`$/, + alias: 'string' + }, + 'interpolation': { + pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/, + lookbehind: true, + inside: { + 'interpolation-punctuation': { + pattern: /^\$\{|\}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + }, + 'string-property': { + pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m, + lookbehind: true, + greedy: true, + alias: 'property' + } + }); + Prism.languages.insertBefore('javascript', 'operator', { + 'literal-property': { + pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m, + lookbehind: true, + alias: 'property' + } + }); + if (Prism.languages.markup) { + Prism.languages.markup.tag.addInlined('script', 'javascript'); + Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, 'javascript'); + } + Prism.languages.js = Prism.languages.javascript; + Prism.languages.markup = { + 'comment': { + pattern: //, + greedy: true + }, + 'prolog': { + pattern: /<\?[\s\S]+?\?>/, + greedy: true + }, + 'doctype': { + pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i, + greedy: true, + inside: { + 'internal-subset': { + pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/, + lookbehind: true, + greedy: true, + inside: null + }, + 'string': { + pattern: /"[^"]*"|'[^']*'/, + greedy: true + }, + 'punctuation': /^$|[[\]]/, + 'doctype-tag': /^DOCTYPE/i, + 'name': /[^\s<>'"]+/ + } + }, + 'cdata': { + pattern: //i, + greedy: true + }, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'special-attr': [], + 'attr-value': { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/, + inside: { + 'punctuation': [ + { + pattern: /^=/, + alias: 'attr-equals' + }, + /"|'/ + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { 'namespace': /^[^\s>\/:]+:/ } + } + } + }, + 'entity': [ + { + pattern: /&[\da-z]{1,8};/i, + alias: 'named-entity' + }, + /&#x?[\da-f]{1,8};/i + ] + }; + Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity']; + Prism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup; + Prism.hooks.add('wrap', function (env) { + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } + }); + Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { + value: function addInlined(tagName, lang) { + var includedCdataInside = {}; + includedCdataInside['language-' + lang] = { + pattern: /(^$)/i, + lookbehind: true, + inside: Prism.languages[lang] + }; + includedCdataInside['cdata'] = /^$/i; + var inside = { + 'included-cdata': { + pattern: //i, + inside: includedCdataInside + } + }; + inside['language-' + lang] = { + pattern: /[\s\S]+/, + inside: Prism.languages[lang] + }; + var def = {}; + def[tagName] = { + pattern: RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g, function () { + return tagName; + }), 'i'), + lookbehind: true, + greedy: true, + inside: inside + }; + Prism.languages.insertBefore('markup', 'cdata', def); + } + }); + Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', { + value: function (attrName, lang) { + Prism.languages.markup.tag.inside['special-attr'].push({ + pattern: RegExp(/(^|["'\s])/.source + '(?:' + attrName + ')' + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source, 'i'), + lookbehind: true, + inside: { + 'attr-name': /^[^\s=]+/, + 'attr-value': { + pattern: /=[\s\S]+/, + inside: { + 'value': { + pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/, + lookbehind: true, + alias: [ + lang, + 'language-' + lang + ], + inside: Prism.languages[lang] + }, + 'punctuation': [ + { + pattern: /^=/, + alias: 'attr-equals' + }, + /"|'/ + ] + } + } + } + }); + } + }); + Prism.languages.html = Prism.languages.markup; + Prism.languages.mathml = Prism.languages.markup; + Prism.languages.svg = Prism.languages.markup; + Prism.languages.xml = Prism.languages.extend('markup', {}); + Prism.languages.ssml = Prism.languages.xml; + Prism.languages.atom = Prism.languages.xml; + Prism.languages.rss = Prism.languages.xml; + (function (Prism) { + var comment = /\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/; + var constant = [ + { + pattern: /\b(?:false|true)\b/i, + alias: 'boolean' + }, + { + pattern: /(::\s*)\b[a-z_]\w*\b(?!\s*\()/i, + greedy: true, + lookbehind: true + }, + { + pattern: /(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i, + greedy: true, + lookbehind: true + }, + /\b(?:null)\b/i, + /\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/ + ]; + var number = /\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i; + var operator = /|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/; + var punctuation = /[{}\[\](),:;]/; + Prism.languages.php = { + 'delimiter': { + pattern: /\?>$|^<\?(?:php(?=\s)|=)?/i, + alias: 'important' + }, + 'comment': comment, + 'variable': /\$+(?:\w+\b|(?=\{))/, + 'package': { + pattern: /(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, + lookbehind: true, + inside: { 'punctuation': /\\/ } + }, + 'class-name-definition': { + pattern: /(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i, + lookbehind: true, + alias: 'class-name' + }, + 'function-definition': { + pattern: /(\bfunction\s+)[a-z_]\w*(?=\s*\()/i, + lookbehind: true, + alias: 'function' + }, + 'keyword': [ + { + pattern: /(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i, + alias: 'type-casting', + greedy: true, + lookbehind: true + }, + { + pattern: /([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i, + alias: 'type-hint', + greedy: true, + lookbehind: true + }, + { + pattern: /(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i, + alias: 'return-type', + greedy: true, + lookbehind: true + }, + { + pattern: /\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i, + alias: 'type-declaration', + greedy: true + }, + { + pattern: /(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i, + alias: 'type-declaration', + greedy: true, + lookbehind: true + }, + { + pattern: /\b(?:parent|self|static)(?=\s*::)/i, + alias: 'static-context', + greedy: true + }, + { + pattern: /(\byield\s+)from\b/i, + lookbehind: true + }, + /\bclass\b/i, + { + pattern: /((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i, + lookbehind: true + } + ], + 'argument-name': { + pattern: /([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i, + lookbehind: true + }, + 'class-name': [ + { + pattern: /(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i, + greedy: true, + lookbehind: true + }, + { + pattern: /(\|\s*)\b[a-z_]\w*(?!\\)\b/i, + greedy: true, + lookbehind: true + }, + { + pattern: /\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i, + greedy: true + }, + { + pattern: /(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i, + alias: 'class-name-fully-qualified', + greedy: true, + lookbehind: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i, + alias: 'class-name-fully-qualified', + greedy: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, + alias: 'class-name-fully-qualified', + greedy: true, + lookbehind: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /\b[a-z_]\w*(?=\s*\$)/i, + alias: 'type-declaration', + greedy: true + }, + { + pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i, + alias: [ + 'class-name-fully-qualified', + 'type-declaration' + ], + greedy: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /\b[a-z_]\w*(?=\s*::)/i, + alias: 'static-context', + greedy: true + }, + { + pattern: /(?:\\?\b[a-z_]\w*)+(?=\s*::)/i, + alias: [ + 'class-name-fully-qualified', + 'static-context' + ], + greedy: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /([(,?]\s*)[a-z_]\w*(?=\s*\$)/i, + alias: 'type-hint', + greedy: true, + lookbehind: true + }, + { + pattern: /([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i, + alias: [ + 'class-name-fully-qualified', + 'type-hint' + ], + greedy: true, + lookbehind: true, + inside: { 'punctuation': /\\/ } + }, + { + pattern: /(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i, + alias: 'return-type', + greedy: true, + lookbehind: true + }, + { + pattern: /(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i, + alias: [ + 'class-name-fully-qualified', + 'return-type' + ], + greedy: true, + lookbehind: true, + inside: { 'punctuation': /\\/ } + } + ], + 'constant': constant, + 'function': { + pattern: /(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i, + lookbehind: true, + inside: { 'punctuation': /\\/ } + }, + 'property': { + pattern: /(->\s*)\w+/, + lookbehind: true + }, + 'number': number, + 'operator': operator, + 'punctuation': punctuation + }; + var string_interpolation = { + pattern: /\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/, + lookbehind: true, + inside: Prism.languages.php + }; + var string = [ + { + pattern: /<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/, + alias: 'nowdoc-string', + greedy: true, + inside: { + 'delimiter': { + pattern: /^<<<'[^']+'|[a-z_]\w*;$/i, + alias: 'symbol', + inside: { 'punctuation': /^<<<'?|[';]$/ } + } + } + }, + { + pattern: /<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i, + alias: 'heredoc-string', + greedy: true, + inside: { + 'delimiter': { + pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i, + alias: 'symbol', + inside: { 'punctuation': /^<<<"?|[";]$/ } + }, + 'interpolation': string_interpolation + } + }, + { + pattern: /`(?:\\[\s\S]|[^\\`])*`/, + alias: 'backtick-quoted-string', + greedy: true + }, + { + pattern: /'(?:\\[\s\S]|[^\\'])*'/, + alias: 'single-quoted-string', + greedy: true + }, + { + pattern: /"(?:\\[\s\S]|[^\\"])*"/, + alias: 'double-quoted-string', + greedy: true, + inside: { 'interpolation': string_interpolation } + } + ]; + Prism.languages.insertBefore('php', 'variable', { + 'string': string, + 'attribute': { + pattern: /#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im, + greedy: true, + inside: { + 'attribute-content': { + pattern: /^(#\[)[\s\S]+(?=\]$)/, + lookbehind: true, + inside: { + 'comment': comment, + 'string': string, + 'attribute-class-name': [ + { + pattern: /([^:]|^)\b[a-z_]\w*(?!\\)\b/i, + alias: 'class-name', + greedy: true, + lookbehind: true + }, + { + pattern: /([^:]|^)(?:\\?\b[a-z_]\w*)+/i, + alias: [ + 'class-name', + 'class-name-fully-qualified' + ], + greedy: true, + lookbehind: true, + inside: { 'punctuation': /\\/ } + } + ], + 'constant': constant, + 'number': number, + 'operator': operator, + 'punctuation': punctuation + } + }, + 'delimiter': { + pattern: /^#\[|\]$/, + alias: 'punctuation' + } + } + } + }); + Prism.hooks.add('before-tokenize', function (env) { + if (!/<\?/.test(env.code)) { + return; + } + var phpPattern = /<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g; + Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern); + }); + Prism.hooks.add('after-tokenize', function (env) { + Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php'); + }); + }(Prism)); + Prism.languages.python = { + 'comment': { + pattern: /(^|[^\\])#.*/, + lookbehind: true, + greedy: true + }, + 'string-interpolation': { + pattern: /(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i, + greedy: true, + inside: { + 'interpolation': { + pattern: /((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/, + lookbehind: true, + inside: { + 'format-spec': { + pattern: /(:)[^:(){}]+(?=\}$)/, + lookbehind: true + }, + 'conversion-option': { + pattern: /![sra](?=[:}]$)/, + alias: 'punctuation' + }, + rest: null + } + }, + 'string': /[\s\S]+/ + } + }, + 'triple-quoted-string': { + pattern: /(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i, + greedy: true, + alias: 'string' + }, + 'string': { + pattern: /(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i, + greedy: true + }, + 'function': { + pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g, + lookbehind: true + }, + 'class-name': { + pattern: /(\bclass\s+)\w+/i, + lookbehind: true + }, + 'decorator': { + pattern: /(^[\t ]*)@\w+(?:\.\w+)*/m, + lookbehind: true, + alias: [ + 'annotation', + 'punctuation' + ], + inside: { 'punctuation': /\./ } + }, + 'keyword': /\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/, + 'builtin': /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/, + 'boolean': /\b(?:False|None|True)\b/, + 'number': /\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i, + 'operator': /[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/, + 'punctuation': /[{}[\];(),.:]/ + }; + Prism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python; + Prism.languages.py = Prism.languages.python; + (function (Prism) { + Prism.languages.ruby = Prism.languages.extend('clike', { + 'comment': { + pattern: /#.*|^=begin\s[\s\S]*?^=end/m, + greedy: true + }, + 'class-name': { + pattern: /(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/, + lookbehind: true, + inside: { 'punctuation': /[.\\]/ } + }, + 'keyword': /\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/, + 'operator': /\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/, + 'punctuation': /[(){}[\].,;]/ + }); + Prism.languages.insertBefore('ruby', 'operator', { + 'double-colon': { + pattern: /::/, + alias: 'punctuation' + } + }); + var interpolation = { + pattern: /((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/, + lookbehind: true, + inside: { + 'content': { + pattern: /^(#\{)[\s\S]+(?=\}$)/, + lookbehind: true, + inside: Prism.languages.ruby + }, + 'delimiter': { + pattern: /^#\{|\}$/, + alias: 'punctuation' + } + } + }; + delete Prism.languages.ruby.function; + var percentExpression = '(?:' + [ + /([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source, + /\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source, + /\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source, + /\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source, + /<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source + ].join('|') + ')'; + var symbolName = /(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source; + Prism.languages.insertBefore('ruby', 'keyword', { + 'regex-literal': [ + { + pattern: RegExp(/%r/.source + percentExpression + /[egimnosux]{0,6}/.source), + greedy: true, + inside: { + 'interpolation': interpolation, + 'regex': /[\s\S]+/ + } + }, + { + pattern: /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/, + lookbehind: true, + greedy: true, + inside: { + 'interpolation': interpolation, + 'regex': /[\s\S]+/ + } + } + ], + 'variable': /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/, + 'symbol': [ + { + pattern: RegExp(/(^|[^:]):/.source + symbolName), + lookbehind: true, + greedy: true + }, + { + pattern: RegExp(/([\r\n{(,][ \t]*)/.source + symbolName + /(?=:(?!:))/.source), + lookbehind: true, + greedy: true + } + ], + 'method-definition': { + pattern: /(\bdef\s+)\w+(?:\s*\.\s*\w+)?/, + lookbehind: true, + inside: { + 'function': /\b\w+$/, + 'keyword': /^self\b/, + 'class-name': /^\w+/, + 'punctuation': /\./ + } + } + }); + Prism.languages.insertBefore('ruby', 'string', { + 'string-literal': [ + { + pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression), + greedy: true, + inside: { + 'interpolation': interpolation, + 'string': /[\s\S]+/ + } + }, + { + pattern: /("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/, + greedy: true, + inside: { + 'interpolation': interpolation, + 'string': /[\s\S]+/ + } + }, + { + pattern: /<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i, + alias: 'heredoc-string', + greedy: true, + inside: { + 'delimiter': { + pattern: /^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i, + inside: { + 'symbol': /\b\w+/, + 'punctuation': /^<<[-~]?/ + } + }, + 'interpolation': interpolation, + 'string': /[\s\S]+/ + } + }, + { + pattern: /<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i, + alias: 'heredoc-string', + greedy: true, + inside: { + 'delimiter': { + pattern: /^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i, + inside: { + 'symbol': /\b\w+/, + 'punctuation': /^<<[-~]?'|'$/ + } + }, + 'string': /[\s\S]+/ + } + } + ], + 'command-literal': [ + { + pattern: RegExp(/%x/.source + percentExpression), + greedy: true, + inside: { + 'interpolation': interpolation, + 'command': { + pattern: /[\s\S]+/, + alias: 'string' + } + } + }, + { + pattern: /`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/, + greedy: true, + inside: { + 'interpolation': interpolation, + 'command': { + pattern: /[\s\S]+/, + alias: 'string' + } + } + } + ] + }); + delete Prism.languages.ruby.string; + Prism.languages.insertBefore('ruby', 'number', { + 'builtin': /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/, + 'constant': /\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/ + }); + Prism.languages.rb = Prism.languages.ruby; + }(Prism)); + window.Prism = oldprism; + return Prism; + }(undefined, undefined); + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('codesample_languages', { processor: 'object[]' }); + RegistroOption('codesample_global_prismjs', { + processor: 'boolean', + default: false + }); + }; + const getLanguages$1 = option('codesample_languages'); + const useGlobalPrismJS = option('codesample_global_prismjs'); + + const get = editor => Global.Prism && useGlobalPrismJS(editor) ? Global.Prism : prismjs; + + const isCodeSample = elm => { + return isNonNullable(elm) && elm.nodeName === 'PRE' && elm.className.indexOf('language-') !== -1; + }; + + const getSelectedCodeSample = editor => { + const node = editor.selection ? editor.selection.getNode() : null; + return isCodeSample(node) ? Optional.some(node) : Optional.none(); + }; + const insertCodeSample = (editor, language, code) => { + const dom = editor.dom; + editor.undoManager.transact(() => { + const node = getSelectedCodeSample(editor); + code = global$1.DOM.encode(code); + return node.fold(() => { + editor.insertContent('
        ' + code + '
        '); + const newPre = dom.select('#__new')[0]; + dom.setAttrib(newPre, 'id', null); + editor.selection.select(newPre); + }, n => { + dom.setAttrib(n, 'class', 'language-' + language); + n.innerHTML = code; + get(editor).highlightElement(n); + editor.selection.select(n); + }); + }); + }; + const getCurrentCode = editor => { + const node = getSelectedCodeSample(editor); + return node.bind(n => Optional.from(n.textContent)).getOr(''); + }; + + const getLanguages = editor => { + const defaultLanguages = [ + { + text: 'HTML/XML', + value: 'markup' + }, + { + text: 'JavaScript', + value: 'javascript' + }, + { + text: 'CSS', + value: 'css' + }, + { + text: 'PHP', + value: 'php' + }, + { + text: 'Ruby', + value: 'ruby' + }, + { + text: 'Python', + value: 'python' + }, + { + text: 'Java', + value: 'java' + }, + { + text: 'C', + value: 'c' + }, + { + text: 'C#', + value: 'csharp' + }, + { + text: 'C++', + value: 'cpp' + } + ]; + const customLanguages = getLanguages$1(editor); + return customLanguages ? customLanguages : defaultLanguages; + }; + const getCurrentLanguage = (editor, fallback) => { + const node = getSelectedCodeSample(editor); + return node.fold(() => fallback, n => { + const matches = n.className.match(/language-(\w+)/); + return matches ? matches[1] : fallback; + }); + }; + + const open = editor => { + const languages = getLanguages(editor); + const defaultLanguage = head(languages).fold(constant(''), l => l.value); + const currentLanguage = getCurrentLanguage(editor, defaultLanguage); + const currentCode = getCurrentCode(editor); + editor.windowManager.open({ + title: 'Insert/Edit Code Sample', + size: 'large', + body: { + type: 'panel', + items: [ + { + type: 'selectbox', + name: 'language', + label: 'Language', + items: languages + }, + { + type: 'textarea', + name: 'code', + label: 'Code view' + } + ] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: { + language: currentLanguage, + code: currentCode + }, + onSubmit: api => { + const data = api.getData(); + insertCodeSample(editor, data.language, data.code); + api.close(); + } + }); + }; + + const Registro$1 = editor => { + editor.addCommand('codesample', () => { + const node = editor.selection.getNode(); + if (editor.selection.isCollapsed() || isCodeSample(node)) { + open(editor); + } else { + editor.formatter.toggle('code'); + } + }); + }; + + const blank = r => s => s.replace(r, ''); + const trim = blank(/^\s+|\s+$/g); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const setup = editor => { + editor.on('PreProcess', e => { + const dom = editor.dom; + const pres = dom.select('pre[contenteditable=false]', e.node); + global.each(global.grep(pres, isCodeSample), elm => { + const code = elm.textContent; + dom.setAttrib(elm, 'class', trim(dom.getAttrib(elm, 'class'))); + dom.setAttrib(elm, 'contentEditable', null); + dom.setAttrib(elm, 'data-mce-highlighted', null); + let child; + while (child = elm.firstChild) { + elm.removeChild(child); + } + const codeElm = dom.add(elm, 'code'); + codeElm.textContent = code; + }); + }); + editor.on('SetContent', () => { + const dom = editor.dom; + const unprocessedCodeSamples = global.grep(dom.select('pre'), elm => { + return isCodeSample(elm) && dom.getAttrib(elm, 'data-mce-highlighted') !== 'true'; + }); + if (unprocessedCodeSamples.length) { + editor.undoManager.transact(() => { + global.each(unprocessedCodeSamples, elm => { + var _a; + global.each(dom.select('br', elm), elm => { + dom.replace(editor.getDoc().createTextNode('\n'), elm); + }); + elm.innerHTML = dom.encode((_a = elm.textContent) !== null && _a !== void 0 ? _a : ''); + get(editor).highlightElement(elm); + dom.setAttrib(elm, 'data-mce-highlighted', true); + elm.className = trim(elm.className); + }); + }); + } + }); + editor.on('PreInit', () => { + editor.parser.addNodeFilter('pre', nodes => { + var _a; + for (let i = 0, l = nodes.length; i < l; i++) { + const node = nodes[i]; + const isCodeSample = ((_a = node.attr('class')) !== null && _a !== void 0 ? _a : '').indexOf('language-') !== -1; + if (isCodeSample) { + node.attr('contenteditable', 'false'); + node.attr('data-mce-highlighted', 'false'); + } + } + }); + }); + }; + + const isCodeSampleSelection = editor => { + const node = editor.selection.getStart(); + return editor.dom.is(node, 'pre[class*="language-"]'); + }; + const Registro = editor => { + const onAction = () => editor.execCommand('codesample'); + editor.ui.registry.addToggleButton('codesample', { + icon: 'code-sample', + tooltip: 'Insert/edit code sample', + onAction, + onSetup: api => { + const nodeChangeHandler = () => { + api.setActive(isCodeSampleSelection(editor)); + }; + editor.on('NodeChange', nodeChangeHandler); + return () => editor.off('NodeChange', nodeChangeHandler); + } + }); + editor.ui.registry.addMenuItem('codesample', { + text: 'Code sample...', + icon: 'code-sample', + onAction + }); + }; + + var Plugin = () => { + global$2.add('codesample', editor => { + Registro$2(editor); + setup(editor); + Registro(editor); + Registro$1(editor); + editor.on('dblclick', ev => { + if (isCodeSample(ev.target)) { + open(editor); + } + }); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.min.js new file mode 100644 index 0000000..c253cf0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/codesample/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>!(e=>null==e)(e);class n{constructor(e,t){this.tag=e,this.value=t}static some(e){return new n(!0,e)}static none(){return n.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?n.some(e(this.value)):n.none()}bind(e){return this.tag?e(this.value):n.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:n.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return t(e)?n.some(e):n.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}n.singletonNone=new n(!1);var a=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils");const s="undefined"!=typeof window?window:Function("return this;")(),r=function(e,t,n){const a=window.Prism;window.Prism={manual:!0};var s=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,a={},s={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof r?new r(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);x+=_.value.length,_=_.next){var F=_.value;if(t.length>e.length)return;if(!(F instanceof r)){var A,S=1;if(y){if(!(A=i(v,x,e,m))||A.index>=e.length)break;var $=A.index,z=A.index+A[0].length,E=x;for(E+=_.value.length;$>=E;)E+=(_=_.next).value.length;if(x=E-=_.value.length,_.value instanceof r)continue;for(var C=_;C!==t.tail&&(Ed.reach&&(d.reach=O);var P=_.prev;if(B&&(P=u(t,P,B),x+=B.length),c(t,P,S),_=u(t,P,new r(g,f?s.tokenize(j,f):j,w,j)),T&&u(t,_,T),S>1){var N={cause:g+","+b,reach:O};o(e,t,n,_.prev,x,N),d&&N.reach>d.reach&&(d.reach=N.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function u(e,t,n){var a=t.next,s={value:n,prev:t,next:a};return t.next=s,a.prev=s,e.length++,s}function c(e,t,n){for(var a=t.next,s=0;s"+r.content+""},!e.document)return e.addEventListener?(s.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),a=n.language,r=n.code,i=n.immediateClose;e.postMessage(s.highlight(r,s.languages[a],a)),i&&e.close()}),!1),s):s;var d=s.util.currentScript();function g(){s.manual||s.highlightAll()}if(d&&(s.filename=d.src,d.hasAttribute("data-manual")&&(s.manual=!0)),!s.manual){var p=document.readyState;"loading"===p||"interactive"===p&&d&&d.defer?document.addEventListener("DOMContentLoaded",g):window.requestAnimationFrame?window.requestAnimationFrame(g):window.setTimeout(g,16)}return s}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});return s.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,a,s,r){if(n.language===a){var i=n.tokenStack=[];n.code=n.code.replace(s,(function(e){if("function"==typeof r&&!r(e))return e;for(var s,o=i.length;-1!==n.code.indexOf(s=t(a,o));)++o;return i[o]=e,s})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,a){if(n.language===a&&n.tokenStack){n.grammar=e.languages[a];var s=0,r=Object.keys(n.tokenStack);!function i(o){for(var l=0;l=r.length);l++){var u=o[l];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=r[s],d=n.tokenStack[c],g="string"==typeof u?u:u.content,p=t(a,c),b=g.indexOf(p);if(b>-1){++s;var h=g.substring(0,b),f=new e.Token(a,e.tokenize(d,n.grammar),"language-"+a,d),m=g.substring(b+p.length),y=[];h&&y.push.apply(y,i([h])),y.push(f),m&&y.push.apply(y,i([m])),"string"==typeof u?o.splice.apply(o,[l,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return o}(n.tokens)}}}})}(s),s.languages.c=s.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|Registro|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),s.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),s.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},s.languages.c.string],char:s.languages.c.char,comment:s.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:s.languages.c}}}}),s.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete s.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|Registro|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(s),function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,a){return RegExp(t(e,n),a||"")}function a(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var s="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",r="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var u=l(r),c=RegExp(l(s+" "+r+" "+i+" "+o)),d=l(r+" "+i+" "+o),g=l(s+" "+r+" "+o),p=a(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),b=a(/\((?:[^()]|<>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,f=t(/<<0>>(?:\s*<<1>>)?/.source,[h,p]),m=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,f]),y=/\[\s*(?:,\s*)*\]/.source,w=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[m,y]),k=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[p,b,y]),v=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[k]),_=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[v,m,y]),x={keyword:c,punctuation:/[<>()?,.:[\]]/},F=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,A=/"(?:\\.|[^\\"\r\n])*"/.source,S=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[A]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[m]),lookbehind:!0,inside:x},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,_]),lookbehind:!0,inside:x},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[u,f]),lookbehind:!0,inside:x},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[m]),lookbehind:!0,inside:x},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[w]),lookbehind:!0,inside:x},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[_,g,h]),inside:x}],keyword:c,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[b]),lookbehind:!0,alias:"class-name",inside:x},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[_,m]),inside:x,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[_]),lookbehind:!0,inside:x,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,p]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(p),alias:"class-name",inside:x}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[u,f,h,_,c.source,b,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,b]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:c,"class-name":{pattern:RegExp(_),greedy:!0,inside:x},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var $=A+"|"+F,z=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[$]),E=a(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[z]),2),C=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,j=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[m,E]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[C,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[C]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[E]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var B=/:[^}\r\n]+/.source,T=a(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[z]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[T,B]),P=a(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[$]),2),N=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[P,B]);function R(t,a){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[a,B]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:R(O,T)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[N]),lookbehind:!0,greedy:!0,inside:R(N,P)}],char:{pattern:RegExp(F),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(s),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(s),function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,a={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:a.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:a.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:a.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:a.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(s),s.languages.javascript=s.languages.extend("clike",{"class-name":[s.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),s.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,s.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:s.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:s.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:s.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:s.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:s.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),s.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:s.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),s.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),s.languages.markup&&(s.languages.markup.tag.addInlined("script","javascript"),s.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),s.languages.js=s.languages.javascript,s.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},s.languages.markup.tag.inside["attr-value"].inside.entity=s.languages.markup.entity,s.languages.markup.doctype.inside["internal-subset"].inside=s.languages.markup,s.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(s.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:s.languages[t]},n.cdata=/^$/i;var a={"included-cdata":{pattern://i,inside:n}};a["language-"+t]={pattern:/[\s\S]+/,inside:s.languages[t]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:a},s.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(s.languages.markup.tag,"addAttribute",{value:function(e,t){s.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:s.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),s.languages.html=s.languages.markup,s.languages.mathml=s.languages.markup,s.languages.svg=s.languages.markup,s.languages.xml=s.languages.extend("markup",{}),s.languages.ssml=s.languages.xml,s.languages.atom=s.languages.xml,s.languages.rss=s.languages.xml,function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],a=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,s=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,r=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:a,operator:s,punctuation:r};var i={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},o=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:i}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:i}}];e.languages.insertBefore("php","variable",{string:o,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:o,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:a,operator:s,punctuation:r}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){/<\?/.test(t.code)&&e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(s),s.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},s.languages.python["string-interpolation"].inside.interpolation.inside.rest=s.languages.python,s.languages.py=s.languages.python,function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===||[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var n="(?:"+[/([^a-zA-Z0-9\s{(\[<=])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S]|\((?:[^()\\]|\\[\s\S])*\))*\)/.source,/\{(?:[^{}\\]|\\[\s\S]|\{(?:[^{}\\]|\\[\s\S])*\})*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S]|\[(?:[^\[\]\\]|\\[\s\S])*\])*\]/.source,/<(?:[^<>\\]|\\[\s\S]|<(?:[^<>\\]|\\[\s\S])*>)*>/.source].join("|")+")",a=/(?:"(?:\\.|[^"\\\r\n])*"|(?:\b[a-zA-Z_]\w*|[^\s\0-\x7F]+)[?!]?|\$.)/.source;e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp(/%r/.source+n+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(/(^|[^:]):/.source+a),lookbehind:!0,greedy:!0},{pattern:RegExp(/([\r\n{(,][ \t]*)/.source+a+/(?=:(?!:))/.source),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp(/%[qQiIwWs]?/.source+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(/%x/.source+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(s),window.Prism=a,s}(),i=e=>t=>t.options.get(e),o=i("codesample_languages"),l=i("codesample_global_prismjs"),u=e=>s.Prism&&l(e)?s.Prism:r,c=e=>t(e)&&"PRE"===e.nodeName&&-1!==e.className.indexOf("language-"),d=e=>{const t=e.selection?e.selection.getNode():null;return c(t)?n.some(t):n.none()},g=e=>{const t=(e=>o(e)||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}])(e),s=(r=t,((e,t)=>0""),(e=>e.value));var r;const i=((e,t)=>d(e).fold((()=>t),(e=>{const n=e.className.match(/language-(\w+)/);return n?n[1]:t})))(e,s),l=(e=>d(e).bind((e=>n.from(e.textContent))).getOr(""))(e);e.windowManager.open({title:"Insert/Edit Code Sample",size:"large",body:{type:"panel",items:[{type:"selectbox",name:"language",label:"Language",items:t},{type:"textarea",name:"code",label:"Code view"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{language:i,code:l},onSubmit:t=>{const n=t.getData();((e,t,n)=>{const s=e.dom;e.undoManager.transact((()=>{const r=d(e);return n=a.DOM.encode(n),r.fold((()=>{e.insertContent('
        '+n+"
        ");const a=s.select("#__new")[0];s.setAttrib(a,"id",null),e.selection.select(a)}),(a=>{s.setAttrib(a,"class","language-"+t),a.innerHTML=n,u(e).highlightElement(a),e.selection.select(a)}))}))})(e,n.language,n.code),t.close()}})},p=(b=/^\s+|\s+$/g,e=>e.replace(b,""));var b,h=tinymce.util.Tools.resolve("tinymce.util.Tools");e.add("codesample",(e=>{(e=>{const t=e.options.Registro;t("codesample_languages",{processor:"object[]"}),t("codesample_global_prismjs",{processor:"boolean",default:!1})})(e),(e=>{e.on("PreProcess",(t=>{const n=e.dom,a=n.select("pre[contenteditable=false]",t.node);h.each(h.grep(a,c),(e=>{const t=e.textContent;let a;for(n.setAttrib(e,"class",p(n.getAttrib(e,"class"))),n.setAttrib(e,"contentEditable",null),n.setAttrib(e,"data-mce-highlighted",null);a=e.firstChild;)e.removeChild(a);n.add(e,"code").textContent=t}))})),e.on("SetContent",(()=>{const t=e.dom,n=h.grep(t.select("pre"),(e=>c(e)&&"true"!==t.getAttrib(e,"data-mce-highlighted")));n.length&&e.undoManager.transact((()=>{h.each(n,(n=>{var a;h.each(t.select("br",n),(n=>{t.replace(e.getDoc().createTextNode("\n"),n)})),n.innerHTML=t.encode(null!==(a=n.textContent)&&void 0!==a?a:""),u(e).highlightElement(n),t.setAttrib(n,"data-mce-highlighted",!0),n.className=p(n.className)}))}))})),e.on("PreInit",(()=>{e.parser.addNodeFilter("pre",(e=>{var t;for(let n=0,a=e.length;n{const t=()=>e.execCommand("codesample");e.ui.registry.addToggleButton("codesample",{icon:"code-sample",tooltip:"Insert/edit code sample",onAction:t,onSetup:t=>{const n=()=>{t.setActive((e=>{const t=e.selection.getStart();return e.dom.is(t,'pre[class*="language-"]')})(e))};return e.on("NodeChange",n),()=>e.off("NodeChange",n)}}),e.ui.registry.addMenuItem("codesample",{text:"Code sample...",icon:"code-sample",onAction:t})})(e),(e=>{e.addCommand("codesample",(()=>{const t=e.selection.getNode();e.selection.isCollapsed()||c(t)?g(e):e.formatter.toggle("code")}))})(e),e.on("dblclick",(t=>{c(t.target)&&g(e)}))}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/index.js new file mode 100644 index 0000000..e2740c3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/index.js @@ -0,0 +1,7 @@ +// Exports the "directionality" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/directionality') +// ES2015: +// import 'tinymce/plugins/directionality' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.js new file mode 100644 index 0000000..e52edc4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.js @@ -0,0 +1,384 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType$1 = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const isString = isType$1('string'); + const isBoolean = isSimpleType('boolean'); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isNumber = isSimpleType('number'); + + const compose1 = (fbc, fab) => a => fbc(fab(a)); + const constant = value => { + return () => { + return value; + }; + }; + const never = constant(false); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const filter = (xs, pred) => { + const r = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + + const DOCUMENT = 9; + const DOCUMENT_FRAGMENT = 11; + const ELEMENT = 1; + const TEXT = 3; + + const fromHtml = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + const message = 'HTML does not have a single root node'; + console.error(message, html); + throw new Error(message); + } + return fromDom(div.childNodes[0]); + }; + const fromTag = (tag, scope) => { + const doc = scope || document; + const node = doc.createElement(tag); + return fromDom(node); + }; + const fromText = (text, scope) => { + const doc = scope || document; + const node = doc.createTextNode(text); + return fromDom(node); + }; + const fromDom = node => { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: node }; + }; + const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom); + const SugarElement = { + fromHtml, + fromTag, + fromText, + fromDom, + fromPoint + }; + + const is = (element, selector) => { + const dom = element.dom; + if (dom.nodeType !== ELEMENT) { + return false; + } else { + const elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + + typeof window !== 'undefined' ? window : Function('return this;')(); + + const name = element => { + const r = element.dom.nodeName; + return r.toLowerCase(); + }; + const type = element => element.dom.nodeType; + const isType = t => element => type(element) === t; + const isElement = isType(ELEMENT); + const isText = isType(TEXT); + const isDocument = isType(DOCUMENT); + const isDocumentFragment = isType(DOCUMENT_FRAGMENT); + const isTag = tag => e => isElement(e) && name(e) === tag; + + const owner = element => SugarElement.fromDom(element.dom.ownerDocument); + const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos); + const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom); + const children$2 = element => map(element.dom.childNodes, SugarElement.fromDom); + + const rawSet = (dom, key, value) => { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + const set = (element, key, value) => { + rawSet(element.dom, key, value); + }; + const remove = (element, key) => { + element.dom.removeAttribute(key); + }; + + const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host); + const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode); + const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner; + const getShadowRoot = e => { + const r = getRootNode(e); + return isShadowRoot(r) ? Optional.some(r) : Optional.none(); + }; + const getShadowHost = e => SugarElement.fromDom(e.dom.host); + + const inBody = element => { + const dom = isText(element) ? element.dom.parentNode : element.dom; + if (dom === undefined || dom === null || dom.ownerDocument === null) { + return false; + } + const doc = dom.ownerDocument; + return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost)); + }; + + const ancestor$1 = (scope, predicate, isRoot) => { + let element = scope.dom; + const stop = isFunction(isRoot) ? isRoot : never; + while (element.parentNode) { + element = element.parentNode; + const el = SugarElement.fromDom(element); + if (predicate(el)) { + return Optional.some(el); + } else if (stop(el)) { + break; + } + } + return Optional.none(); + }; + + const ancestor = (scope, selector, isRoot) => ancestor$1(scope, e => is(e, selector), isRoot); + + const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue); + + const get = (element, property) => { + const dom = element.dom; + const styles = window.getComputedStyle(dom); + const r = styles.getPropertyValue(property); + return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + }; + const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : ''; + + const getDirection = element => get(element, 'direction') === 'rtl' ? 'rtl' : 'ltr'; + + const children$1 = (scope, predicate) => filter(children$2(scope), predicate); + + const children = (scope, selector) => children$1(scope, e => is(e, selector)); + + const getParentElement = element => parent(element).filter(isElement); + const getNormalizedBlock = (element, isListItem) => { + const normalizedElement = isListItem ? ancestor(element, 'ol,ul') : Optional.some(element); + return normalizedElement.getOr(element); + }; + const isListItem = isTag('li'); + const setDir = (editor, dir) => { + const selectedBlocks = editor.selection.getSelectedBlocks(); + if (selectedBlocks.length > 0) { + each(selectedBlocks, block => { + const blockElement = SugarElement.fromDom(block); + const isBlockElementListItem = isListItem(blockElement); + const normalizedBlock = getNormalizedBlock(blockElement, isBlockElementListItem); + const normalizedBlockParent = getParentElement(normalizedBlock); + normalizedBlockParent.each(parent => { + const parentDirection = getDirection(parent); + if (parentDirection !== dir) { + set(normalizedBlock, 'dir', dir); + } else if (getDirection(normalizedBlock) !== dir) { + remove(normalizedBlock, 'dir'); + } + if (isBlockElementListItem) { + const listItems = children(normalizedBlock, 'li[dir]'); + each(listItems, listItem => remove(listItem, 'dir')); + } + }); + }); + editor.nodeChanged(); + } + }; + + const Registro$1 = editor => { + editor.addCommand('mceDirectionLTR', () => { + setDir(editor, 'ltr'); + }); + editor.addCommand('mceDirectionRTL', () => { + setDir(editor, 'rtl'); + }); + }; + + const getNodeChangeHandler = (editor, dir) => api => { + const nodeChangeHandler = e => { + const element = SugarElement.fromDom(e.element); + api.setActive(getDirection(element) === dir); + }; + editor.on('NodeChange', nodeChangeHandler); + return () => editor.off('NodeChange', nodeChangeHandler); + }; + const Registro = editor => { + editor.ui.registry.addToggleButton('ltr', { + tooltip: 'Left to right', + icon: 'ltr', + onAction: () => editor.execCommand('mceDirectionLTR'), + onSetup: getNodeChangeHandler(editor, 'ltr') + }); + editor.ui.registry.addToggleButton('rtl', { + tooltip: 'Right to left', + icon: 'rtl', + onAction: () => editor.execCommand('mceDirectionRTL'), + onSetup: getNodeChangeHandler(editor, 'rtl') + }); + }; + + var Plugin = () => { + global.add('directionality', editor => { + Registro$1(editor); + Registro(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.min.js new file mode 100644 index 0000000..4e7f890 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/directionality/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=r=t,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":e;var o,r,n,i})(t),r=e("boolean"),n=t=>!(t=>null==t)(t),i=e("function"),s=e("number"),l=(!1,()=>false);class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return n(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=(t,e)=>{for(let o=0,r=t.length;o{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},d=c,h=(t,e)=>{const o=t.dom;if(1!==o.nodeType)return!1;{const t=o;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}};"undefined"!=typeof window?window:Function("return this;")();const m=t=>e=>(t=>t.dom.nodeType)(e)===t,g=m(1),f=m(3),v=m(9),p=m(11),y=(t,e)=>{t.dom.removeAttribute(e)},w=i(Element.prototype.attachShadow)&&i(Node.prototype.getRootNode)?t=>d(t.dom.getRootNode()):t=>v(t)?t:d(t.dom.ownerDocument),N=t=>d(t.dom.host),b=t=>{const e=f(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const o=e.ownerDocument;return(t=>{const e=w(t);return p(o=e)&&n(o.dom.host)?a.some(e):a.none();var o})(d(e)).fold((()=>o.body.contains(e)),(r=b,i=N,t=>r(i(t))));var r,i},S=t=>"rtl"===((t,e)=>{const o=t.dom,r=window.getComputedStyle(o).getPropertyValue(e);return""!==r||b(t)?r:((t,e)=>(t=>void 0!==t.style&&i(t.style.getPropertyValue))(t)?t.style.getPropertyValue(e):"")(o,e)})(t,"direction")?"rtl":"ltr",A=(t,e)=>((t,o)=>((t,e)=>{const o=[];for(let r=0,n=t.length;r{const o=t.length,r=new Array(o);for(let n=0;nh(t,e))))(t),T=("li",t=>g(t)&&"li"===t.dom.nodeName.toLowerCase());const C=(t,e)=>{const n=t.selection.getSelectedBlocks();n.length>0&&(u(n,(t=>{const n=d(t),c=T(n),m=((t,e)=>{return(e?(o=t,r="ol,ul",((t,e,o)=>{let n=t.dom;const s=i(o)?o:l;for(;n.parentNode;){n=n.parentNode;const t=d(n);if(h(t,r))return a.some(t);if(s(t))break}return a.none()})(o,0,n)):a.some(t)).getOr(t);var o,r,n})(n,c);var f;(f=m,(t=>a.from(t.dom.parentNode).map(d))(f).filter(g)).each((t=>{if(S(t)!==e?((t,e,n)=>{((t,e,n)=>{if(!(o(n)||r(n)||s(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(t.dom,e,n)})(m,"dir",e):S(m)!==e&&y(m,"dir"),c){const t=A(m,"li[dir]");u(t,(t=>y(t,"dir")))}}))})),t.nodeChanged())},D=(t,e)=>o=>{const r=t=>{const r=d(t.element);o.setActive(S(r)===e)};return t.on("NodeChange",r),()=>t.off("NodeChange",r)};t.add("directionality",(t=>{(t=>{t.addCommand("mceDirectionLTR",(()=>{C(t,"ltr")})),t.addCommand("mceDirectionRTL",(()=>{C(t,"rtl")}))})(t),(t=>{t.ui.registry.addToggleButton("ltr",{tooltip:"Left to right",icon:"ltr",onAction:()=>t.execCommand("mceDirectionLTR"),onSetup:D(t,"ltr")}),t.ui.registry.addToggleButton("rtl",{tooltip:"Right to left",icon:"rtl",onAction:()=>t.execCommand("mceDirectionRTL"),onSetup:D(t,"rtl")})})(t)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/index.js new file mode 100644 index 0000000..7a97379 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/index.js @@ -0,0 +1,7 @@ +// Exports the "emoticons" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/emoticons') +// ES2015: +// import 'tinymce/plugins/emoticons' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.js new file mode 100644 index 0000000..10ffbdd --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.js @@ -0,0 +1 @@ +window.tinymce.Resource.add("tinymce.plugins.emoticons",{100:{keywords:["score","perfect","numbers","century","exam","quiz","test","pass","hundred"],char:'💯',fitzpatrick_scale:false,category:"symbols"},1234:{keywords:["numbers","blue-square"],char:'🔢',fitzpatrick_scale:false,category:"symbols"},grinning:{keywords:["face","smile","happy","joy",":D","grin"],char:'😀',fitzpatrick_scale:false,category:"people"},grimacing:{keywords:["face","grimace","teeth"],char:'😬',fitzpatrick_scale:false,category:"people"},grin:{keywords:["face","happy","smile","joy","kawaii"],char:'😁',fitzpatrick_scale:false,category:"people"},joy:{keywords:["face","cry","tears","weep","happy","happytears","haha"],char:'😂',fitzpatrick_scale:false,category:"people"},rofl:{keywords:["face","rolling","floor","laughing","lol","haha"],char:'🤣',fitzpatrick_scale:false,category:"people"},partying:{keywords:["face","celebration","woohoo"],char:'🥳',fitzpatrick_scale:false,category:"people"},smiley:{keywords:["face","happy","joy","haha",":D",":)","smile","funny"],char:'😃',fitzpatrick_scale:false,category:"people"},smile:{keywords:["face","happy","joy","funny","haha","laugh","like",":D",":)"],char:'😄',fitzpatrick_scale:false,category:"people"},sweat_smile:{keywords:["face","hot","happy","laugh","sweat","smile","relief"],char:'😅',fitzpatrick_scale:false,category:"people"},laughing:{keywords:["happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],char:'😆',fitzpatrick_scale:false,category:"people"},innocent:{keywords:["face","angel","heaven","halo"],char:'😇',fitzpatrick_scale:false,category:"people"},wink:{keywords:["face","happy","mischievous","secret",";)","smile","eye"],char:'😉',fitzpatrick_scale:false,category:"people"},blush:{keywords:["face","smile","happy","flushed","crush","embarrassed","shy","joy"],char:'😊',fitzpatrick_scale:false,category:"people"},slightly_smiling_face:{keywords:["face","smile"],char:'🙂',fitzpatrick_scale:false,category:"people"},upside_down_face:{keywords:["face","flipped","silly","smile"],char:'🙃',fitzpatrick_scale:false,category:"people"},relaxed:{keywords:["face","blush","massage","happiness"],char:'☺️',fitzpatrick_scale:false,category:"people"},yum:{keywords:["happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],char:'😋',fitzpatrick_scale:false,category:"people"},relieved:{keywords:["face","relaxed","phew","massage","happiness"],char:'😌',fitzpatrick_scale:false,category:"people"},heart_eyes:{keywords:["face","love","like","affection","valentines","infatuation","crush","heart"],char:'😍',fitzpatrick_scale:false,category:"people"},smiling_face_with_three_hearts:{keywords:["face","love","like","affection","valentines","infatuation","crush","hearts","adore"],char:'🥰',fitzpatrick_scale:false,category:"people"},kissing_heart:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:'😘',fitzpatrick_scale:false,category:"people"},kissing:{keywords:["love","like","face","3","valentines","infatuation","kiss"],char:'😗',fitzpatrick_scale:false,category:"people"},kissing_smiling_eyes:{keywords:["face","affection","valentines","infatuation","kiss"],char:'😙',fitzpatrick_scale:false,category:"people"},kissing_closed_eyes:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:'😚',fitzpatrick_scale:false,category:"people"},stuck_out_tongue_winking_eye:{keywords:["face","prank","childish","playful","mischievous","smile","wink","tongue"],char:'😜',fitzpatrick_scale:false,category:"people"},zany:{keywords:["face","goofy","crazy"],char:'🤪',fitzpatrick_scale:false,category:"people"},raised_eyebrow:{keywords:["face","distrust","scepticism","disapproval","disbelief","surprise"],char:'🤨',fitzpatrick_scale:false,category:"people"},monocle:{keywords:["face","stuffy","wealthy"],char:'🧐',fitzpatrick_scale:false,category:"people"},stuck_out_tongue_closed_eyes:{keywords:["face","prank","playful","mischievous","smile","tongue"],char:'😝',fitzpatrick_scale:false,category:"people"},stuck_out_tongue:{keywords:["face","prank","childish","playful","mischievous","smile","tongue"],char:'😛',fitzpatrick_scale:false,category:"people"},money_mouth_face:{keywords:["face","rich","dollar","money"],char:'🤑',fitzpatrick_scale:false,category:"people"},nerd_face:{keywords:["face","nerdy","geek","dork"],char:'🤓',fitzpatrick_scale:false,category:"people"},sunglasses:{keywords:["face","cool","smile","summer","beach","sunglass"],char:'😎',fitzpatrick_scale:false,category:"people"},star_struck:{keywords:["face","smile","starry","eyes","grinning"],char:'🤩',fitzpatrick_scale:false,category:"people"},clown_face:{keywords:["face"],char:'🤡',fitzpatrick_scale:false,category:"people"},cowboy_hat_face:{keywords:["face","cowgirl","hat"],char:'🤠',fitzpatrick_scale:false,category:"people"},hugs:{keywords:["face","smile","hug"],char:'🤗',fitzpatrick_scale:false,category:"people"},smirk:{keywords:["face","smile","mean","prank","smug","sarcasm"],char:'😏',fitzpatrick_scale:false,category:"people"},no_mouth:{keywords:["face","hellokitty"],char:'😶',fitzpatrick_scale:false,category:"people"},neutral_face:{keywords:["indifference","meh",":|","neutral"],char:'😐',fitzpatrick_scale:false,category:"people"},expressionless:{keywords:["face","indifferent","-_-","meh","deadpan"],char:'😑',fitzpatrick_scale:false,category:"people"},unamused:{keywords:["indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","side_eye"],char:'😒',fitzpatrick_scale:false,category:"people"},roll_eyes:{keywords:["face","eyeroll","frustrated"],char:'🙄',fitzpatrick_scale:false,category:"people"},thinking:{keywords:["face","hmmm","think","consider"],char:'🤔',fitzpatrick_scale:false,category:"people"},lying_face:{keywords:["face","lie","pinocchio"],char:'🤥',fitzpatrick_scale:false,category:"people"},hand_over_mouth:{keywords:["face","whoops","shock","surprise"],char:'🤭',fitzpatrick_scale:false,category:"people"},shushing:{keywords:["face","quiet","shhh"],char:'🤫',fitzpatrick_scale:false,category:"people"},symbols_over_mouth:{keywords:["face","swearing","cursing","cussing","profanity","expletive"],char:'🤬',fitzpatrick_scale:false,category:"people"},exploding_head:{keywords:["face","shocked","mind","blown"],char:'🤯',fitzpatrick_scale:false,category:"people"},flushed:{keywords:["face","blush","shy","flattered"],char:'😳',fitzpatrick_scale:false,category:"people"},disappointed:{keywords:["face","sad","upset","depressed",":("],char:'😞',fitzpatrick_scale:false,category:"people"},worried:{keywords:["face","concern","nervous",":("],char:'😟',fitzpatrick_scale:false,category:"people"},angry:{keywords:["mad","face","annoyed","frustrated"],char:'😠',fitzpatrick_scale:false,category:"people"},rage:{keywords:["angry","mad","hate","despise"],char:'😡',fitzpatrick_scale:false,category:"people"},pensive:{keywords:["face","sad","depressed","upset"],char:'😔',fitzpatrick_scale:false,category:"people"},confused:{keywords:["face","indifference","huh","weird","hmmm",":/"],char:'😕',fitzpatrick_scale:false,category:"people"},slightly_frowning_face:{keywords:["face","frowning","disappointed","sad","upset"],char:'🙁',fitzpatrick_scale:false,category:"people"},frowning_face:{keywords:["face","sad","upset","frown"],char:'☹',fitzpatrick_scale:false,category:"people"},persevere:{keywords:["face","sick","no","upset","oops"],char:'😣',fitzpatrick_scale:false,category:"people"},confounded:{keywords:["face","confused","sick","unwell","oops",":S"],char:'😖',fitzpatrick_scale:false,category:"people"},tired_face:{keywords:["sick","whine","upset","frustrated"],char:'😫',fitzpatrick_scale:false,category:"people"},weary:{keywords:["face","tired","sleepy","sad","frustrated","upset"],char:'😩',fitzpatrick_scale:false,category:"people"},pleading:{keywords:["face","begging","mercy"],char:'🥺',fitzpatrick_scale:false,category:"people"},triumph:{keywords:["face","gas","phew","proud","pride"],char:'😤',fitzpatrick_scale:false,category:"people"},open_mouth:{keywords:["face","surprise","impressed","wow","whoa",":O"],char:'😮',fitzpatrick_scale:false,category:"people"},scream:{keywords:["face","munch","scared","omg"],char:'😱',fitzpatrick_scale:false,category:"people"},fearful:{keywords:["face","scared","terrified","nervous","oops","huh"],char:'😨',fitzpatrick_scale:false,category:"people"},cold_sweat:{keywords:["face","nervous","sweat"],char:'😰',fitzpatrick_scale:false,category:"people"},hushed:{keywords:["face","woo","shh"],char:'😯',fitzpatrick_scale:false,category:"people"},frowning:{keywords:["face","aw","what"],char:'😦',fitzpatrick_scale:false,category:"people"},anguished:{keywords:["face","stunned","nervous"],char:'😧',fitzpatrick_scale:false,category:"people"},cry:{keywords:["face","tears","sad","depressed","upset",":'("],char:'😢',fitzpatrick_scale:false,category:"people"},disappointed_relieved:{keywords:["face","phew","sweat","nervous"],char:'😥',fitzpatrick_scale:false,category:"people"},drooling_face:{keywords:["face"],char:'🤤',fitzpatrick_scale:false,category:"people"},sleepy:{keywords:["face","tired","rest","nap"],char:'😪',fitzpatrick_scale:false,category:"people"},sweat:{keywords:["face","hot","sad","tired","exercise"],char:'😓',fitzpatrick_scale:false,category:"people"},hot:{keywords:["face","feverish","heat","red","sweating"],char:'🥵',fitzpatrick_scale:false,category:"people"},cold:{keywords:["face","blue","freezing","frozen","frostbite","icicles"],char:'🥶',fitzpatrick_scale:false,category:"people"},sob:{keywords:["face","cry","tears","sad","upset","depressed"],char:'😭',fitzpatrick_scale:false,category:"people"},dizzy_face:{keywords:["spent","unconscious","xox","dizzy"],char:'😵',fitzpatrick_scale:false,category:"people"},astonished:{keywords:["face","xox","surprised","poisoned"],char:'😲',fitzpatrick_scale:false,category:"people"},zipper_mouth_face:{keywords:["face","sealed","zipper","secret"],char:'🤐',fitzpatrick_scale:false,category:"people"},nauseated_face:{keywords:["face","vomit","gross","green","sick","throw up","ill"],char:'🤢',fitzpatrick_scale:false,category:"people"},sneezing_face:{keywords:["face","gesundheit","sneeze","sick","allergy"],char:'🤧',fitzpatrick_scale:false,category:"people"},vomiting:{keywords:["face","sick"],char:'🤮',fitzpatrick_scale:false,category:"people"},mask:{keywords:["face","sick","ill","disease"],char:'😷',fitzpatrick_scale:false,category:"people"},face_with_thermometer:{keywords:["sick","temperature","thermometer","cold","fever"],char:'🤒',fitzpatrick_scale:false,category:"people"},face_with_head_bandage:{keywords:["injured","clumsy","bandage","hurt"],char:'🤕',fitzpatrick_scale:false,category:"people"},woozy:{keywords:["face","dizzy","intoxicated","tipsy","wavy"],char:'🥴',fitzpatrick_scale:false,category:"people"},sleeping:{keywords:["face","tired","sleepy","night","zzz"],char:'😴',fitzpatrick_scale:false,category:"people"},zzz:{keywords:["sleepy","tired","dream"],char:'💤',fitzpatrick_scale:false,category:"people"},poop:{keywords:["hankey","shitface","fail","turd","shit"],char:'💩',fitzpatrick_scale:false,category:"people"},smiling_imp:{keywords:["devil","horns"],char:'😈',fitzpatrick_scale:false,category:"people"},imp:{keywords:["devil","angry","horns"],char:'👿',fitzpatrick_scale:false,category:"people"},japanese_ogre:{keywords:["monster","red","mask","halloween","scary","creepy","devil","demon","japanese","ogre"],char:'👹',fitzpatrick_scale:false,category:"people"},japanese_goblin:{keywords:["red","evil","mask","monster","scary","creepy","japanese","goblin"],char:'👺',fitzpatrick_scale:false,category:"people"},skull:{keywords:["dead","skeleton","creepy","death"],char:'💀',fitzpatrick_scale:false,category:"people"},ghost:{keywords:["halloween","spooky","scary"],char:'👻',fitzpatrick_scale:false,category:"people"},alien:{keywords:["UFO","paul","weird","outer_space"],char:'👽',fitzpatrick_scale:false,category:"people"},robot:{keywords:["computer","machine","bot"],char:'🤖',fitzpatrick_scale:false,category:"people"},smiley_cat:{keywords:["animal","cats","happy","smile"],char:'😺',fitzpatrick_scale:false,category:"people"},smile_cat:{keywords:["animal","cats","smile"],char:'😸',fitzpatrick_scale:false,category:"people"},joy_cat:{keywords:["animal","cats","haha","happy","tears"],char:'😹',fitzpatrick_scale:false,category:"people"},heart_eyes_cat:{keywords:["animal","love","like","affection","cats","valentines","heart"],char:'😻',fitzpatrick_scale:false,category:"people"},smirk_cat:{keywords:["animal","cats","smirk"],char:'😼',fitzpatrick_scale:false,category:"people"},kissing_cat:{keywords:["animal","cats","kiss"],char:'😽',fitzpatrick_scale:false,category:"people"},scream_cat:{keywords:["animal","cats","munch","scared","scream"],char:'🙀',fitzpatrick_scale:false,category:"people"},crying_cat_face:{keywords:["animal","tears","weep","sad","cats","upset","cry"],char:'😿',fitzpatrick_scale:false,category:"people"},pouting_cat:{keywords:["animal","cats"],char:'😾',fitzpatrick_scale:false,category:"people"},palms_up:{keywords:["hands","gesture","cupped","prayer"],char:'🤲',fitzpatrick_scale:true,category:"people"},raised_hands:{keywords:["gesture","hooray","yea","celebration","hands"],char:'🙌',fitzpatrick_scale:true,category:"people"},clap:{keywords:["hands","praise","applause","congrats","yay"],char:'👏',fitzpatrick_scale:true,category:"people"},wave:{keywords:["hands","gesture","goodbye","solong","farewell","hello","hi","palm"],char:'👋',fitzpatrick_scale:true,category:"people"},call_me_hand:{keywords:["hands","gesture"],char:'🤙',fitzpatrick_scale:true,category:"people"},"+1":{keywords:["thumbsup","yes","awesome","good","agree","accept","cool","hand","like"],char:'👍',fitzpatrick_scale:true,category:"people"},"-1":{keywords:["thumbsdown","no","dislike","hand"],char:'👎',fitzpatrick_scale:true,category:"people"},facepunch:{keywords:["angry","violence","fist","hit","attack","hand"],char:'👊',fitzpatrick_scale:true,category:"people"},fist:{keywords:["fingers","hand","grasp"],char:'✊',fitzpatrick_scale:true,category:"people"},fist_left:{keywords:["hand","fistbump"],char:'🤛',fitzpatrick_scale:true,category:"people"},fist_right:{keywords:["hand","fistbump"],char:'🤜',fitzpatrick_scale:true,category:"people"},v:{keywords:["fingers","ohyeah","hand","peace","victory","two"],char:'✌',fitzpatrick_scale:true,category:"people"},ok_hand:{keywords:["fingers","limbs","perfect","ok","okay"],char:'👌',fitzpatrick_scale:true,category:"people"},raised_hand:{keywords:["fingers","stop","highfive","palm","ban"],char:'✋',fitzpatrick_scale:true,category:"people"},raised_back_of_hand:{keywords:["fingers","raised","backhand"],char:'🤚',fitzpatrick_scale:true,category:"people"},open_hands:{keywords:["fingers","butterfly","hands","open"],char:'👐',fitzpatrick_scale:true,category:"people"},muscle:{keywords:["arm","flex","hand","summer","strong","biceps"],char:'💪',fitzpatrick_scale:true,category:"people"},pray:{keywords:["please","hope","wish","namaste","highfive"],char:'🙏',fitzpatrick_scale:true,category:"people"},foot:{keywords:["kick","stomp"],char:'🦶',fitzpatrick_scale:true,category:"people"},leg:{keywords:["kick","limb"],char:'🦵',fitzpatrick_scale:true,category:"people"},handshake:{keywords:["agreement","shake"],char:'🤝',fitzpatrick_scale:false,category:"people"},point_up:{keywords:["hand","fingers","direction","up"],char:'☝',fitzpatrick_scale:true,category:"people"},point_up_2:{keywords:["fingers","hand","direction","up"],char:'👆',fitzpatrick_scale:true,category:"people"},point_down:{keywords:["fingers","hand","direction","down"],char:'👇',fitzpatrick_scale:true,category:"people"},point_left:{keywords:["direction","fingers","hand","left"],char:'👈',fitzpatrick_scale:true,category:"people"},point_right:{keywords:["fingers","hand","direction","right"],char:'👉',fitzpatrick_scale:true,category:"people"},fu:{keywords:["hand","fingers","rude","middle","flipping"],char:'🖕',fitzpatrick_scale:true,category:"people"},raised_hand_with_fingers_splayed:{keywords:["hand","fingers","palm"],char:'🖐',fitzpatrick_scale:true,category:"people"},love_you:{keywords:["hand","fingers","gesture"],char:'🤟',fitzpatrick_scale:true,category:"people"},metal:{keywords:["hand","fingers","evil_eye","sign_of_horns","rock_on"],char:'🤘',fitzpatrick_scale:true,category:"people"},crossed_fingers:{keywords:["good","lucky"],char:'🤞',fitzpatrick_scale:true,category:"people"},vulcan_salute:{keywords:["hand","fingers","spock","star trek"],char:'🖖',fitzpatrick_scale:true,category:"people"},writing_hand:{keywords:["lower_left_ballpoint_pen","stationery","write","compose"],char:'✍',fitzpatrick_scale:true,category:"people"},selfie:{keywords:["camera","phone"],char:'🤳',fitzpatrick_scale:true,category:"people"},nail_care:{keywords:["beauty","manicure","finger","fashion","nail"],char:'💅',fitzpatrick_scale:true,category:"people"},lips:{keywords:["mouth","kiss"],char:'👄',fitzpatrick_scale:false,category:"people"},tooth:{keywords:["teeth","dentist"],char:'🦷',fitzpatrick_scale:false,category:"people"},tongue:{keywords:["mouth","playful"],char:'👅',fitzpatrick_scale:false,category:"people"},ear:{keywords:["face","hear","sound","listen"],char:'👂',fitzpatrick_scale:true,category:"people"},nose:{keywords:["smell","sniff"],char:'👃',fitzpatrick_scale:true,category:"people"},eye:{keywords:["face","look","see","watch","stare"],char:'👁',fitzpatrick_scale:false,category:"people"},eyes:{keywords:["look","watch","stalk","peek","see"],char:'👀',fitzpatrick_scale:false,category:"people"},brain:{keywords:["smart","intelligent"],char:'🧠',fitzpatrick_scale:false,category:"people"},bust_in_silhouette:{keywords:["user","person","human"],char:'👤',fitzpatrick_scale:false,category:"people"},busts_in_silhouette:{keywords:["user","person","human","group","team"],char:'👥',fitzpatrick_scale:false,category:"people"},speaking_head:{keywords:["user","person","human","sing","say","talk"],char:'🗣',fitzpatrick_scale:false,category:"people"},baby:{keywords:["child","boy","girl","toddler"],char:'👶',fitzpatrick_scale:true,category:"people"},child:{keywords:["gender-neutral","young"],char:'🧒',fitzpatrick_scale:true,category:"people"},boy:{keywords:["man","male","guy","teenager"],char:'👦',fitzpatrick_scale:true,category:"people"},girl:{keywords:["female","woman","teenager"],char:'👧',fitzpatrick_scale:true,category:"people"},adult:{keywords:["gender-neutral","person"],char:'🧑',fitzpatrick_scale:true,category:"people"},man:{keywords:["mustache","father","dad","guy","classy","sir","moustache"],char:'👨',fitzpatrick_scale:true,category:"people"},woman:{keywords:["female","girls","lady"],char:'👩',fitzpatrick_scale:true,category:"people"},blonde_woman:{keywords:["woman","female","girl","blonde","person"],char:'👱‍♀️',fitzpatrick_scale:true,category:"people"},blonde_man:{keywords:["man","male","boy","blonde","guy","person"],char:'👱',fitzpatrick_scale:true,category:"people"},bearded_person:{keywords:["person","bewhiskered"],char:'🧔',fitzpatrick_scale:true,category:"people"},older_adult:{keywords:["human","elder","senior","gender-neutral"],char:'🧓',fitzpatrick_scale:true,category:"people"},older_man:{keywords:["human","male","men","old","elder","senior"],char:'👴',fitzpatrick_scale:true,category:"people"},older_woman:{keywords:["human","female","women","lady","old","elder","senior"],char:'👵',fitzpatrick_scale:true,category:"people"},man_with_gua_pi_mao:{keywords:["male","boy","chinese"],char:'👲',fitzpatrick_scale:true,category:"people"},woman_with_headscarf:{keywords:["female","hijab","mantilla","tichel"],char:'🧕',fitzpatrick_scale:true,category:"people"},woman_with_turban:{keywords:["female","indian","hinduism","arabs","woman"],char:'👳‍♀️',fitzpatrick_scale:true,category:"people"},man_with_turban:{keywords:["male","indian","hinduism","arabs"],char:'👳',fitzpatrick_scale:true,category:"people"},policewoman:{keywords:["woman","police","law","legal","enforcement","arrest","911","female"],char:'👮‍♀️',fitzpatrick_scale:true,category:"people"},policeman:{keywords:["man","police","law","legal","enforcement","arrest","911"],char:'👮',fitzpatrick_scale:true,category:"people"},construction_worker_woman:{keywords:["female","human","wip","build","construction","worker","labor","woman"],char:'👷‍♀️',fitzpatrick_scale:true,category:"people"},construction_worker_man:{keywords:["male","human","wip","guy","build","construction","worker","labor"],char:'👷',fitzpatrick_scale:true,category:"people"},guardswoman:{keywords:["uk","gb","british","female","royal","woman"],char:'💂‍♀️',fitzpatrick_scale:true,category:"people"},guardsman:{keywords:["uk","gb","british","male","guy","royal"],char:'💂',fitzpatrick_scale:true,category:"people"},female_detective:{keywords:["human","spy","detective","female","woman"],char:'🕵️‍♀️',fitzpatrick_scale:true,category:"people"},male_detective:{keywords:["human","spy","detective"],char:'🕵',fitzpatrick_scale:true,category:"people"},woman_health_worker:{keywords:["doctor","nurse","therapist","healthcare","woman","human"],char:'👩‍⚕️',fitzpatrick_scale:true,category:"people"},man_health_worker:{keywords:["doctor","nurse","therapist","healthcare","man","human"],char:'👨‍⚕️',fitzpatrick_scale:true,category:"people"},woman_farmer:{keywords:["rancher","gardener","woman","human"],char:'👩‍🌾',fitzpatrick_scale:true,category:"people"},man_farmer:{keywords:["rancher","gardener","man","human"],char:'👨‍🌾',fitzpatrick_scale:true,category:"people"},woman_cook:{keywords:["chef","woman","human"],char:'👩‍🍳',fitzpatrick_scale:true,category:"people"},man_cook:{keywords:["chef","man","human"],char:'👨‍🍳',fitzpatrick_scale:true,category:"people"},woman_student:{keywords:["graduate","woman","human"],char:'👩‍🎓',fitzpatrick_scale:true,category:"people"},man_student:{keywords:["graduate","man","human"],char:'👨‍🎓',fitzpatrick_scale:true,category:"people"},woman_singer:{keywords:["rockstar","entertainer","woman","human"],char:'👩‍🎤',fitzpatrick_scale:true,category:"people"},man_singer:{keywords:["rockstar","entertainer","man","human"],char:'👨‍🎤',fitzpatrick_scale:true,category:"people"},woman_teacher:{keywords:["instructor","professor","woman","human"],char:'👩‍🏫',fitzpatrick_scale:true,category:"people"},man_teacher:{keywords:["instructor","professor","man","human"],char:'👨‍🏫',fitzpatrick_scale:true,category:"people"},woman_factory_worker:{keywords:["assembly","industrial","woman","human"],char:'👩‍🏭',fitzpatrick_scale:true,category:"people"},man_factory_worker:{keywords:["assembly","industrial","man","human"],char:'👨‍🏭',fitzpatrick_scale:true,category:"people"},woman_technologist:{keywords:["coder","developer","engineer","programmer","software","woman","human","laptop","computer"],char:'👩‍💻',fitzpatrick_scale:true,category:"people"},man_technologist:{keywords:["coder","developer","engineer","programmer","software","man","human","laptop","computer"],char:'👨‍💻',fitzpatrick_scale:true,category:"people"},woman_office_worker:{keywords:["business","manager","woman","human"],char:'👩‍💼',fitzpatrick_scale:true,category:"people"},man_office_worker:{keywords:["business","manager","man","human"],char:'👨‍💼',fitzpatrick_scale:true,category:"people"},woman_mechanic:{keywords:["plumber","woman","human","wrench"],char:'👩‍🔧',fitzpatrick_scale:true,category:"people"},man_mechanic:{keywords:["plumber","man","human","wrench"],char:'👨‍🔧',fitzpatrick_scale:true,category:"people"},woman_scientist:{keywords:["biologist","chemist","engineer","physicist","woman","human"],char:'👩‍🔬',fitzpatrick_scale:true,category:"people"},man_scientist:{keywords:["biologist","chemist","engineer","physicist","man","human"],char:'👨‍🔬',fitzpatrick_scale:true,category:"people"},woman_artist:{keywords:["painter","woman","human"],char:'👩‍🎨',fitzpatrick_scale:true,category:"people"},man_artist:{keywords:["painter","man","human"],char:'👨‍🎨',fitzpatrick_scale:true,category:"people"},woman_firefighter:{keywords:["fireman","woman","human"],char:'👩‍🚒',fitzpatrick_scale:true,category:"people"},man_firefighter:{keywords:["fireman","man","human"],char:'👨‍🚒',fitzpatrick_scale:true,category:"people"},woman_pilot:{keywords:["aviator","plane","woman","human"],char:'👩‍✈️',fitzpatrick_scale:true,category:"people"},man_pilot:{keywords:["aviator","plane","man","human"],char:'👨‍✈️',fitzpatrick_scale:true,category:"people"},woman_astronaut:{keywords:["space","rocket","woman","human"],char:'👩‍🚀',fitzpatrick_scale:true,category:"people"},man_astronaut:{keywords:["space","rocket","man","human"],char:'👨‍🚀',fitzpatrick_scale:true,category:"people"},woman_judge:{keywords:["justice","court","woman","human"],char:'👩‍⚖️',fitzpatrick_scale:true,category:"people"},man_judge:{keywords:["justice","court","man","human"],char:'👨‍⚖️',fitzpatrick_scale:true,category:"people"},woman_superhero:{keywords:["woman","female","good","heroine","superpowers"],char:'🦸‍♀️',fitzpatrick_scale:true,category:"people"},man_superhero:{keywords:["man","male","good","hero","superpowers"],char:'🦸‍♂️',fitzpatrick_scale:true,category:"people"},woman_supervillain:{keywords:["woman","female","evil","bad","criminal","heroine","superpowers"],char:'🦹‍♀️',fitzpatrick_scale:true,category:"people"},man_supervillain:{keywords:["man","male","evil","bad","criminal","hero","superpowers"],char:'🦹‍♂️',fitzpatrick_scale:true,category:"people"},mrs_claus:{keywords:["woman","female","xmas","mother christmas"],char:'🤶',fitzpatrick_scale:true,category:"people"},santa:{keywords:["festival","man","male","xmas","father christmas"],char:'🎅',fitzpatrick_scale:true,category:"people"},sorceress:{keywords:["woman","female","mage","witch"],char:'🧙‍♀️',fitzpatrick_scale:true,category:"people"},wizard:{keywords:["man","male","mage","sorcerer"],char:'🧙‍♂️',fitzpatrick_scale:true,category:"people"},woman_elf:{keywords:["woman","female"],char:'🧝‍♀️',fitzpatrick_scale:true,category:"people"},man_elf:{keywords:["man","male"],char:'🧝‍♂️',fitzpatrick_scale:true,category:"people"},woman_vampire:{keywords:["woman","female"],char:'🧛‍♀️',fitzpatrick_scale:true,category:"people"},man_vampire:{keywords:["man","male","dracula"],char:'🧛‍♂️',fitzpatrick_scale:true,category:"people"},woman_zombie:{keywords:["woman","female","undead","walking dead"],char:'🧟‍♀️',fitzpatrick_scale:false,category:"people"},man_zombie:{keywords:["man","male","dracula","undead","walking dead"],char:'🧟‍♂️',fitzpatrick_scale:false,category:"people"},woman_genie:{keywords:["woman","female"],char:'🧞‍♀️',fitzpatrick_scale:false,category:"people"},man_genie:{keywords:["man","male"],char:'🧞‍♂️',fitzpatrick_scale:false,category:"people"},mermaid:{keywords:["woman","female","merwoman","ariel"],char:'🧜‍♀️',fitzpatrick_scale:true,category:"people"},merman:{keywords:["man","male","triton"],char:'🧜‍♂️',fitzpatrick_scale:true,category:"people"},woman_fairy:{keywords:["woman","female"],char:'🧚‍♀️',fitzpatrick_scale:true,category:"people"},man_fairy:{keywords:["man","male"],char:'🧚‍♂️',fitzpatrick_scale:true,category:"people"},angel:{keywords:["heaven","wings","halo"],char:'👼',fitzpatrick_scale:true,category:"people"},pregnant_woman:{keywords:["baby"],char:'🤰',fitzpatrick_scale:true,category:"people"},breastfeeding:{keywords:["nursing","baby"],char:'🤱',fitzpatrick_scale:true,category:"people"},princess:{keywords:["girl","woman","female","blond","crown","royal","queen"],char:'👸',fitzpatrick_scale:true,category:"people"},prince:{keywords:["boy","man","male","crown","royal","king"],char:'🤴',fitzpatrick_scale:true,category:"people"},bride_with_veil:{keywords:["couple","marriage","wedding","woman","bride"],char:'👰',fitzpatrick_scale:true,category:"people"},man_in_tuxedo:{keywords:["couple","marriage","wedding","groom"],char:'🤵',fitzpatrick_scale:true,category:"people"},running_woman:{keywords:["woman","walking","exercise","race","running","female"],char:'🏃‍♀️',fitzpatrick_scale:true,category:"people"},running_man:{keywords:["man","walking","exercise","race","running"],char:'🏃',fitzpatrick_scale:true,category:"people"},walking_woman:{keywords:["human","feet","steps","woman","female"],char:'🚶‍♀️',fitzpatrick_scale:true,category:"people"},walking_man:{keywords:["human","feet","steps"],char:'🚶',fitzpatrick_scale:true,category:"people"},dancer:{keywords:["female","girl","woman","fun"],char:'💃',fitzpatrick_scale:true,category:"people"},man_dancing:{keywords:["male","boy","fun","dancer"],char:'🕺',fitzpatrick_scale:true,category:"people"},dancing_women:{keywords:["female","bunny","women","girls"],char:'👯',fitzpatrick_scale:false,category:"people"},dancing_men:{keywords:["male","bunny","men","boys"],char:'👯‍♂️',fitzpatrick_scale:false,category:"people"},couple:{keywords:["pair","people","human","love","date","dating","like","affection","valentines","marriage"],char:'👫',fitzpatrick_scale:false,category:"people"},two_men_holding_hands:{keywords:["pair","couple","love","like","bromance","friendship","people","human"],char:'👬',fitzpatrick_scale:false,category:"people"},two_women_holding_hands:{keywords:["pair","friendship","couple","love","like","female","people","human"],char:'👭',fitzpatrick_scale:false,category:"people"},bowing_woman:{keywords:["woman","female","girl"],char:'🙇‍♀️',fitzpatrick_scale:true,category:"people"},bowing_man:{keywords:["man","male","boy"],char:'🙇',fitzpatrick_scale:true,category:"people"},man_facepalming:{keywords:["man","male","boy","disbelief"],char:'🤦‍♂️',fitzpatrick_scale:true,category:"people"},woman_facepalming:{keywords:["woman","female","girl","disbelief"],char:'🤦‍♀️',fitzpatrick_scale:true,category:"people"},woman_shrugging:{keywords:["woman","female","girl","confused","indifferent","doubt"],char:'🤷',fitzpatrick_scale:true,category:"people"},man_shrugging:{keywords:["man","male","boy","confused","indifferent","doubt"],char:'🤷‍♂️',fitzpatrick_scale:true,category:"people"},tipping_hand_woman:{keywords:["female","girl","woman","human","information"],char:'💁',fitzpatrick_scale:true,category:"people"},tipping_hand_man:{keywords:["male","boy","man","human","information"],char:'💁‍♂️',fitzpatrick_scale:true,category:"people"},no_good_woman:{keywords:["female","girl","woman","nope"],char:'🙅',fitzpatrick_scale:true,category:"people"},no_good_man:{keywords:["male","boy","man","nope"],char:'🙅‍♂️',fitzpatrick_scale:true,category:"people"},ok_woman:{keywords:["women","girl","female","pink","human","woman"],char:'🙆',fitzpatrick_scale:true,category:"people"},ok_man:{keywords:["men","boy","male","blue","human","man"],char:'🙆‍♂️',fitzpatrick_scale:true,category:"people"},raising_hand_woman:{keywords:["female","girl","woman"],char:'🙋',fitzpatrick_scale:true,category:"people"},raising_hand_man:{keywords:["male","boy","man"],char:'🙋‍♂️',fitzpatrick_scale:true,category:"people"},pouting_woman:{keywords:["female","girl","woman"],char:'🙎',fitzpatrick_scale:true,category:"people"},pouting_man:{keywords:["male","boy","man"],char:'🙎‍♂️',fitzpatrick_scale:true,category:"people"},frowning_woman:{keywords:["female","girl","woman","sad","depressed","discouraged","unhappy"],char:'🙍',fitzpatrick_scale:true,category:"people"},frowning_man:{keywords:["male","boy","man","sad","depressed","discouraged","unhappy"],char:'🙍‍♂️',fitzpatrick_scale:true,category:"people"},haircut_woman:{keywords:["female","girl","woman"],char:'💇',fitzpatrick_scale:true,category:"people"},haircut_man:{keywords:["male","boy","man"],char:'💇‍♂️',fitzpatrick_scale:true,category:"people"},massage_woman:{keywords:["female","girl","woman","head"],char:'💆',fitzpatrick_scale:true,category:"people"},massage_man:{keywords:["male","boy","man","head"],char:'💆‍♂️',fitzpatrick_scale:true,category:"people"},woman_in_steamy_room:{keywords:["female","woman","spa","steamroom","sauna"],char:'🧖‍♀️',fitzpatrick_scale:true,category:"people"},man_in_steamy_room:{keywords:["male","man","spa","steamroom","sauna"],char:'🧖‍♂️',fitzpatrick_scale:true,category:"people"},couple_with_heart_woman_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'💑',fitzpatrick_scale:false,category:"people"},couple_with_heart_woman_woman:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'👩‍❤️‍👩',fitzpatrick_scale:false,category:"people"},couple_with_heart_man_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'👨‍❤️‍👨',fitzpatrick_scale:false,category:"people"},couplekiss_man_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:'💏',fitzpatrick_scale:false,category:"people"},couplekiss_woman_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:'👩‍❤️‍💋‍👩',fitzpatrick_scale:false,category:"people"},couplekiss_man_man:{keywords:["pair","valentines","love","like","dating","marriage"],char:'👨‍❤️‍💋‍👨',fitzpatrick_scale:false,category:"people"},family_man_woman_boy:{keywords:["home","parents","child","mom","dad","father","mother","people","human"],char:'👪',fitzpatrick_scale:false,category:"people"},family_man_woman_girl:{keywords:["home","parents","people","human","child"],char:'👨‍👩‍👧',fitzpatrick_scale:false,category:"people"},family_man_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:'👨‍👩‍👧‍👦',fitzpatrick_scale:false,category:"people"},family_man_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:'👨‍👩‍👦‍👦',fitzpatrick_scale:false,category:"people"},family_man_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:'👨‍👩‍👧‍👧',fitzpatrick_scale:false,category:"people"},family_woman_woman_boy:{keywords:["home","parents","people","human","children"],char:'👩‍👩‍👦',fitzpatrick_scale:false,category:"people"},family_woman_woman_girl:{keywords:["home","parents","people","human","children"],char:'👩‍👩‍👧',fitzpatrick_scale:false,category:"people"},family_woman_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:'👩‍👩‍👧‍👦',fitzpatrick_scale:false,category:"people"},family_woman_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:'👩‍👩‍👦‍👦',fitzpatrick_scale:false,category:"people"},family_woman_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:'👩‍👩‍👧‍👧',fitzpatrick_scale:false,category:"people"},family_man_man_boy:{keywords:["home","parents","people","human","children"],char:'👨‍👨‍👦',fitzpatrick_scale:false,category:"people"},family_man_man_girl:{keywords:["home","parents","people","human","children"],char:'👨‍👨‍👧',fitzpatrick_scale:false,category:"people"},family_man_man_girl_boy:{keywords:["home","parents","people","human","children"],char:'👨‍👨‍👧‍👦',fitzpatrick_scale:false,category:"people"},family_man_man_boy_boy:{keywords:["home","parents","people","human","children"],char:'👨‍👨‍👦‍👦',fitzpatrick_scale:false,category:"people"},family_man_man_girl_girl:{keywords:["home","parents","people","human","children"],char:'👨‍👨‍👧‍👧',fitzpatrick_scale:false,category:"people"},family_woman_boy:{keywords:["home","parent","people","human","child"],char:'👩‍👦',fitzpatrick_scale:false,category:"people"},family_woman_girl:{keywords:["home","parent","people","human","child"],char:'👩‍👧',fitzpatrick_scale:false,category:"people"},family_woman_girl_boy:{keywords:["home","parent","people","human","children"],char:'👩‍👧‍👦',fitzpatrick_scale:false,category:"people"},family_woman_boy_boy:{keywords:["home","parent","people","human","children"],char:'👩‍👦‍👦',fitzpatrick_scale:false,category:"people"},family_woman_girl_girl:{keywords:["home","parent","people","human","children"],char:'👩‍👧‍👧',fitzpatrick_scale:false,category:"people"},family_man_boy:{keywords:["home","parent","people","human","child"],char:'👨‍👦',fitzpatrick_scale:false,category:"people"},family_man_girl:{keywords:["home","parent","people","human","child"],char:'👨‍👧',fitzpatrick_scale:false,category:"people"},family_man_girl_boy:{keywords:["home","parent","people","human","children"],char:'👨‍👧‍👦',fitzpatrick_scale:false,category:"people"},family_man_boy_boy:{keywords:["home","parent","people","human","children"],char:'👨‍👦‍👦',fitzpatrick_scale:false,category:"people"},family_man_girl_girl:{keywords:["home","parent","people","human","children"],char:'👨‍👧‍👧',fitzpatrick_scale:false,category:"people"},yarn:{keywords:["ball","crochet","knit"],char:'🧶',fitzpatrick_scale:false,category:"people"},thread:{keywords:["needle","sewing","spool","string"],char:'🧵',fitzpatrick_scale:false,category:"people"},coat:{keywords:["jacket"],char:'🧥',fitzpatrick_scale:false,category:"people"},labcoat:{keywords:["doctor","experiment","scientist","chemist"],char:'🥼',fitzpatrick_scale:false,category:"people"},womans_clothes:{keywords:["fashion","shopping_bags","female"],char:'👚',fitzpatrick_scale:false,category:"people"},tshirt:{keywords:["fashion","cloth","casual","shirt","tee"],char:'👕',fitzpatrick_scale:false,category:"people"},jeans:{keywords:["fashion","shopping"],char:'👖',fitzpatrick_scale:false,category:"people"},necktie:{keywords:["shirt","suitup","formal","fashion","cloth","business"],char:'👔',fitzpatrick_scale:false,category:"people"},dress:{keywords:["clothes","fashion","shopping"],char:'👗',fitzpatrick_scale:false,category:"people"},bikini:{keywords:["swimming","female","woman","girl","fashion","beach","summer"],char:'👙',fitzpatrick_scale:false,category:"people"},kimono:{keywords:["dress","fashion","women","female","japanese"],char:'👘',fitzpatrick_scale:false,category:"people"},lipstick:{keywords:["female","girl","fashion","woman"],char:'💄',fitzpatrick_scale:false,category:"people"},kiss:{keywords:["face","lips","love","like","affection","valentines"],char:'💋',fitzpatrick_scale:false,category:"people"},footprints:{keywords:["feet","tracking","walking","beach"],char:'👣',fitzpatrick_scale:false,category:"people"},flat_shoe:{keywords:["ballet","slip-on","slipper"],char:'🥿',fitzpatrick_scale:false,category:"people"},high_heel:{keywords:["fashion","shoes","female","pumps","stiletto"],char:'👠',fitzpatrick_scale:false,category:"people"},sandal:{keywords:["shoes","fashion","flip flops"],char:'👡',fitzpatrick_scale:false,category:"people"},boot:{keywords:["shoes","fashion"],char:'👢',fitzpatrick_scale:false,category:"people"},mans_shoe:{keywords:["fashion","male"],char:'👞',fitzpatrick_scale:false,category:"people"},athletic_shoe:{keywords:["shoes","sports","sneakers"],char:'👟',fitzpatrick_scale:false,category:"people"},hiking_boot:{keywords:["backpacking","camping","hiking"],char:'🥾',fitzpatrick_scale:false,category:"people"},socks:{keywords:["stockings","clothes"],char:'🧦',fitzpatrick_scale:false,category:"people"},gloves:{keywords:["hands","winter","clothes"],char:'🧤',fitzpatrick_scale:false,category:"people"},scarf:{keywords:["neck","winter","clothes"],char:'🧣',fitzpatrick_scale:false,category:"people"},womans_hat:{keywords:["fashion","accessories","female","lady","spring"],char:'👒',fitzpatrick_scale:false,category:"people"},tophat:{keywords:["magic","gentleman","classy","circus"],char:'🎩',fitzpatrick_scale:false,category:"people"},billed_hat:{keywords:["cap","baseball"],char:'🧢',fitzpatrick_scale:false,category:"people"},rescue_worker_helmet:{keywords:["construction","build"],char:'⛑',fitzpatrick_scale:false,category:"people"},mortar_board:{keywords:["school","college","degree","university","graduation","cap","hat","legal","learn","education"],char:'🎓',fitzpatrick_scale:false,category:"people"},crown:{keywords:["king","kod","leader","royalty","lord"],char:'👑',fitzpatrick_scale:false,category:"people"},school_satchel:{keywords:["student","education","bag","backpack"],char:'🎒',fitzpatrick_scale:false,category:"people"},luggage:{keywords:["packing","travel"],char:'🧳',fitzpatrick_scale:false,category:"people"},pouch:{keywords:["bag","accessories","shopping"],char:'👝',fitzpatrick_scale:false,category:"people"},purse:{keywords:["fashion","accessories","money","sales","shopping"],char:'👛',fitzpatrick_scale:false,category:"people"},handbag:{keywords:["fashion","accessory","accessories","shopping"],char:'👜',fitzpatrick_scale:false,category:"people"},briefcase:{keywords:["business","documents","work","law","legal","job","career"],char:'💼',fitzpatrick_scale:false,category:"people"},eyeglasses:{keywords:["fashion","accessories","eyesight","nerdy","dork","geek"],char:'👓',fitzpatrick_scale:false,category:"people"},dark_sunglasses:{keywords:["face","cool","accessories"],char:'🕶',fitzpatrick_scale:false,category:"people"},goggles:{keywords:["eyes","protection","safety"],char:'🥽',fitzpatrick_scale:false,category:"people"},ring:{keywords:["wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],char:'💍',fitzpatrick_scale:false,category:"people"},closed_umbrella:{keywords:["weather","rain","drizzle"],char:'🌂',fitzpatrick_scale:false,category:"people"},dog:{keywords:["animal","friend","nature","woof","puppy","pet","faithful"],char:'🐶',fitzpatrick_scale:false,category:"animals_and_nature"},cat:{keywords:["animal","meow","nature","pet","kitten"],char:'🐱',fitzpatrick_scale:false,category:"animals_and_nature"},mouse:{keywords:["animal","nature","cheese_wedge","rodent"],char:'🐭',fitzpatrick_scale:false,category:"animals_and_nature"},hamster:{keywords:["animal","nature"],char:'🐹',fitzpatrick_scale:false,category:"animals_and_nature"},rabbit:{keywords:["animal","nature","pet","spring","magic","bunny"],char:'🐰',fitzpatrick_scale:false,category:"animals_and_nature"},fox_face:{keywords:["animal","nature","face"],char:'🦊',fitzpatrick_scale:false,category:"animals_and_nature"},bear:{keywords:["animal","nature","wild"],char:'🐻',fitzpatrick_scale:false,category:"animals_and_nature"},panda_face:{keywords:["animal","nature","panda"],char:'🐼',fitzpatrick_scale:false,category:"animals_and_nature"},koala:{keywords:["animal","nature"],char:'🐨',fitzpatrick_scale:false,category:"animals_and_nature"},tiger:{keywords:["animal","cat","danger","wild","nature","roar"],char:'🐯',fitzpatrick_scale:false,category:"animals_and_nature"},lion:{keywords:["animal","nature"],char:'🦁',fitzpatrick_scale:false,category:"animals_and_nature"},cow:{keywords:["beef","ox","animal","nature","moo","milk"],char:'🐮',fitzpatrick_scale:false,category:"animals_and_nature"},pig:{keywords:["animal","oink","nature"],char:'🐷',fitzpatrick_scale:false,category:"animals_and_nature"},pig_nose:{keywords:["animal","oink"],char:'🐽',fitzpatrick_scale:false,category:"animals_and_nature"},frog:{keywords:["animal","nature","croak","toad"],char:'🐸',fitzpatrick_scale:false,category:"animals_and_nature"},squid:{keywords:["animal","nature","ocean","sea"],char:'🦑',fitzpatrick_scale:false,category:"animals_and_nature"},octopus:{keywords:["animal","creature","ocean","sea","nature","beach"],char:'🐙',fitzpatrick_scale:false,category:"animals_and_nature"},shrimp:{keywords:["animal","ocean","nature","seafood"],char:'🦐',fitzpatrick_scale:false,category:"animals_and_nature"},monkey_face:{keywords:["animal","nature","circus"],char:'🐵',fitzpatrick_scale:false,category:"animals_and_nature"},gorilla:{keywords:["animal","nature","circus"],char:'🦍',fitzpatrick_scale:false,category:"animals_and_nature"},see_no_evil:{keywords:["monkey","animal","nature","haha"],char:'🙈',fitzpatrick_scale:false,category:"animals_and_nature"},hear_no_evil:{keywords:["animal","monkey","nature"],char:'🙉',fitzpatrick_scale:false,category:"animals_and_nature"},speak_no_evil:{keywords:["monkey","animal","nature","omg"],char:'🙊',fitzpatrick_scale:false,category:"animals_and_nature"},monkey:{keywords:["animal","nature","banana","circus"],char:'🐒',fitzpatrick_scale:false,category:"animals_and_nature"},chicken:{keywords:["animal","cluck","nature","bird"],char:'🐔',fitzpatrick_scale:false,category:"animals_and_nature"},penguin:{keywords:["animal","nature"],char:'🐧',fitzpatrick_scale:false,category:"animals_and_nature"},bird:{keywords:["animal","nature","fly","tweet","spring"],char:'🐦',fitzpatrick_scale:false,category:"animals_and_nature"},baby_chick:{keywords:["animal","chicken","bird"],char:'🐤',fitzpatrick_scale:false,category:"animals_and_nature"},hatching_chick:{keywords:["animal","chicken","egg","born","baby","bird"],char:'🐣',fitzpatrick_scale:false,category:"animals_and_nature"},hatched_chick:{keywords:["animal","chicken","baby","bird"],char:'🐥',fitzpatrick_scale:false,category:"animals_and_nature"},duck:{keywords:["animal","nature","bird","mallard"],char:'🦆',fitzpatrick_scale:false,category:"animals_and_nature"},eagle:{keywords:["animal","nature","bird"],char:'🦅',fitzpatrick_scale:false,category:"animals_and_nature"},owl:{keywords:["animal","nature","bird","hoot"],char:'🦉',fitzpatrick_scale:false,category:"animals_and_nature"},bat:{keywords:["animal","nature","blind","vampire"],char:'🦇',fitzpatrick_scale:false,category:"animals_and_nature"},wolf:{keywords:["animal","nature","wild"],char:'🐺',fitzpatrick_scale:false,category:"animals_and_nature"},boar:{keywords:["animal","nature"],char:'🐗',fitzpatrick_scale:false,category:"animals_and_nature"},horse:{keywords:["animal","brown","nature"],char:'🐴',fitzpatrick_scale:false,category:"animals_and_nature"},unicorn:{keywords:["animal","nature","mystical"],char:'🦄',fitzpatrick_scale:false,category:"animals_and_nature"},honeybee:{keywords:["animal","insect","nature","bug","spring","honey"],char:'🐝',fitzpatrick_scale:false,category:"animals_and_nature"},bug:{keywords:["animal","insect","nature","worm"],char:'🐛',fitzpatrick_scale:false,category:"animals_and_nature"},butterfly:{keywords:["animal","insect","nature","caterpillar"],char:'🦋',fitzpatrick_scale:false,category:"animals_and_nature"},snail:{keywords:["slow","animal","shell"],char:'🐌',fitzpatrick_scale:false,category:"animals_and_nature"},beetle:{keywords:["animal","insect","nature","ladybug"],char:'🐞',fitzpatrick_scale:false,category:"animals_and_nature"},ant:{keywords:["animal","insect","nature","bug"],char:'🐜',fitzpatrick_scale:false,category:"animals_and_nature"},grasshopper:{keywords:["animal","cricket","chirp"],char:'🦗',fitzpatrick_scale:false,category:"animals_and_nature"},spider:{keywords:["animal","arachnid"],char:'🕷',fitzpatrick_scale:false,category:"animals_and_nature"},scorpion:{keywords:["animal","arachnid"],char:'🦂',fitzpatrick_scale:false,category:"animals_and_nature"},crab:{keywords:["animal","crustacean"],char:'🦀',fitzpatrick_scale:false,category:"animals_and_nature"},snake:{keywords:["animal","evil","nature","hiss","python"],char:'🐍',fitzpatrick_scale:false,category:"animals_and_nature"},lizard:{keywords:["animal","nature","reptile"],char:'🦎',fitzpatrick_scale:false,category:"animals_and_nature"},"t-rex":{keywords:["animal","nature","dinosaur","tyrannosaurus","extinct"],char:'🦖',fitzpatrick_scale:false,category:"animals_and_nature"},sauropod:{keywords:["animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],char:'🦕',fitzpatrick_scale:false,category:"animals_and_nature"},turtle:{keywords:["animal","slow","nature","tortoise"],char:'🐢',fitzpatrick_scale:false,category:"animals_and_nature"},tropical_fish:{keywords:["animal","swim","ocean","beach","nemo"],char:'🐠',fitzpatrick_scale:false,category:"animals_and_nature"},fish:{keywords:["animal","food","nature"],char:'🐟',fitzpatrick_scale:false,category:"animals_and_nature"},blowfish:{keywords:["animal","nature","food","sea","ocean"],char:'🐡',fitzpatrick_scale:false,category:"animals_and_nature"},dolphin:{keywords:["animal","nature","fish","sea","ocean","flipper","fins","beach"],char:'🐬',fitzpatrick_scale:false,category:"animals_and_nature"},shark:{keywords:["animal","nature","fish","sea","ocean","jaws","fins","beach"],char:'🦈',fitzpatrick_scale:false,category:"animals_and_nature"},whale:{keywords:["animal","nature","sea","ocean"],char:'🐳',fitzpatrick_scale:false,category:"animals_and_nature"},whale2:{keywords:["animal","nature","sea","ocean"],char:'🐋',fitzpatrick_scale:false,category:"animals_and_nature"},crocodile:{keywords:["animal","nature","reptile","lizard","alligator"],char:'🐊',fitzpatrick_scale:false,category:"animals_and_nature"},leopard:{keywords:["animal","nature"],char:'🐆',fitzpatrick_scale:false,category:"animals_and_nature"},zebra:{keywords:["animal","nature","stripes","safari"],char:'🦓',fitzpatrick_scale:false,category:"animals_and_nature"},tiger2:{keywords:["animal","nature","roar"],char:'🐅',fitzpatrick_scale:false,category:"animals_and_nature"},water_buffalo:{keywords:["animal","nature","ox","cow"],char:'🐃',fitzpatrick_scale:false,category:"animals_and_nature"},ox:{keywords:["animal","cow","beef"],char:'🐂',fitzpatrick_scale:false,category:"animals_and_nature"},cow2:{keywords:["beef","ox","animal","nature","moo","milk"],char:'🐄',fitzpatrick_scale:false,category:"animals_and_nature"},deer:{keywords:["animal","nature","horns","venison"],char:'🦌',fitzpatrick_scale:false,category:"animals_and_nature"},dromedary_camel:{keywords:["animal","hot","desert","hump"],char:'🐪',fitzpatrick_scale:false,category:"animals_and_nature"},camel:{keywords:["animal","nature","hot","desert","hump"],char:'🐫',fitzpatrick_scale:false,category:"animals_and_nature"},giraffe:{keywords:["animal","nature","spots","safari"],char:'🦒',fitzpatrick_scale:false,category:"animals_and_nature"},elephant:{keywords:["animal","nature","nose","th","circus"],char:'🐘',fitzpatrick_scale:false,category:"animals_and_nature"},rhinoceros:{keywords:["animal","nature","horn"],char:'🦏',fitzpatrick_scale:false,category:"animals_and_nature"},goat:{keywords:["animal","nature"],char:'🐐',fitzpatrick_scale:false,category:"animals_and_nature"},ram:{keywords:["animal","sheep","nature"],char:'🐏',fitzpatrick_scale:false,category:"animals_and_nature"},sheep:{keywords:["animal","nature","wool","shipit"],char:'🐑',fitzpatrick_scale:false,category:"animals_and_nature"},racehorse:{keywords:["animal","gamble","luck"],char:'🐎',fitzpatrick_scale:false,category:"animals_and_nature"},pig2:{keywords:["animal","nature"],char:'🐖',fitzpatrick_scale:false,category:"animals_and_nature"},rat:{keywords:["animal","mouse","rodent"],char:'🐀',fitzpatrick_scale:false,category:"animals_and_nature"},mouse2:{keywords:["animal","nature","rodent"],char:'🐁',fitzpatrick_scale:false,category:"animals_and_nature"},rooster:{keywords:["animal","nature","chicken"],char:'🐓',fitzpatrick_scale:false,category:"animals_and_nature"},turkey:{keywords:["animal","bird"],char:'🦃',fitzpatrick_scale:false,category:"animals_and_nature"},dove:{keywords:["animal","bird"],char:'🕊',fitzpatrick_scale:false,category:"animals_and_nature"},dog2:{keywords:["animal","nature","friend","doge","pet","faithful"],char:'🐕',fitzpatrick_scale:false,category:"animals_and_nature"},poodle:{keywords:["dog","animal","101","nature","pet"],char:'🐩',fitzpatrick_scale:false,category:"animals_and_nature"},cat2:{keywords:["animal","meow","pet","cats"],char:'🐈',fitzpatrick_scale:false,category:"animals_and_nature"},rabbit2:{keywords:["animal","nature","pet","magic","spring"],char:'🐇',fitzpatrick_scale:false,category:"animals_and_nature"},chipmunk:{keywords:["animal","nature","rodent","squirrel"],char:'🐿',fitzpatrick_scale:false,category:"animals_and_nature"},hedgehog:{keywords:["animal","nature","spiny"],char:'🦔',fitzpatrick_scale:false,category:"animals_and_nature"},raccoon:{keywords:["animal","nature"],char:'🦝',fitzpatrick_scale:false,category:"animals_and_nature"},llama:{keywords:["animal","nature","alpaca"],char:'🦙',fitzpatrick_scale:false,category:"animals_and_nature"},hippopotamus:{keywords:["animal","nature"],char:'🦛',fitzpatrick_scale:false,category:"animals_and_nature"},kangaroo:{keywords:["animal","nature","australia","joey","hop","marsupial"],char:'🦘',fitzpatrick_scale:false,category:"animals_and_nature"},badger:{keywords:["animal","nature","honey"],char:'🦡',fitzpatrick_scale:false,category:"animals_and_nature"},swan:{keywords:["animal","nature","bird"],char:'🦢',fitzpatrick_scale:false,category:"animals_and_nature"},peacock:{keywords:["animal","nature","peahen","bird"],char:'🦚',fitzpatrick_scale:false,category:"animals_and_nature"},parrot:{keywords:["animal","nature","bird","pirate","talk"],char:'🦜',fitzpatrick_scale:false,category:"animals_and_nature"},lobster:{keywords:["animal","nature","bisque","claws","seafood"],char:'🦞',fitzpatrick_scale:false,category:"animals_and_nature"},mosquito:{keywords:["animal","nature","insect","malaria"],char:'🦟',fitzpatrick_scale:false,category:"animals_and_nature"},paw_prints:{keywords:["animal","tracking","footprints","dog","cat","pet","feet"],char:'🐾',fitzpatrick_scale:false,category:"animals_and_nature"},dragon:{keywords:["animal","myth","nature","chinese","green"],char:'🐉',fitzpatrick_scale:false,category:"animals_and_nature"},dragon_face:{keywords:["animal","myth","nature","chinese","green"],char:'🐲',fitzpatrick_scale:false,category:"animals_and_nature"},cactus:{keywords:["vegetable","plant","nature"],char:'🌵',fitzpatrick_scale:false,category:"animals_and_nature"},christmas_tree:{keywords:["festival","vacation","december","xmas","celebration"],char:'🎄',fitzpatrick_scale:false,category:"animals_and_nature"},evergreen_tree:{keywords:["plant","nature"],char:'🌲',fitzpatrick_scale:false,category:"animals_and_nature"},deciduous_tree:{keywords:["plant","nature"],char:'🌳',fitzpatrick_scale:false,category:"animals_and_nature"},palm_tree:{keywords:["plant","vegetable","nature","summer","beach","mojito","tropical"],char:'🌴',fitzpatrick_scale:false,category:"animals_and_nature"},seedling:{keywords:["plant","nature","grass","lawn","spring"],char:'🌱',fitzpatrick_scale:false,category:"animals_and_nature"},herb:{keywords:["vegetable","plant","medicine","weed","grass","lawn"],char:'🌿',fitzpatrick_scale:false,category:"animals_and_nature"},shamrock:{keywords:["vegetable","plant","nature","irish","clover"],char:'☘',fitzpatrick_scale:false,category:"animals_and_nature"},four_leaf_clover:{keywords:["vegetable","plant","nature","lucky","irish"],char:'🍀',fitzpatrick_scale:false,category:"animals_and_nature"},bamboo:{keywords:["plant","nature","vegetable","panda","pine_decoration"],char:'🎍',fitzpatrick_scale:false,category:"animals_and_nature"},tanabata_tree:{keywords:["plant","nature","branch","summer"],char:'🎋',fitzpatrick_scale:false,category:"animals_and_nature"},leaves:{keywords:["nature","plant","tree","vegetable","grass","lawn","spring"],char:'🍃',fitzpatrick_scale:false,category:"animals_and_nature"},fallen_leaf:{keywords:["nature","plant","vegetable","leaves"],char:'🍂',fitzpatrick_scale:false,category:"animals_and_nature"},maple_leaf:{keywords:["nature","plant","vegetable","ca","fall"],char:'🍁',fitzpatrick_scale:false,category:"animals_and_nature"},ear_of_rice:{keywords:["nature","plant"],char:'🌾',fitzpatrick_scale:false,category:"animals_and_nature"},hibiscus:{keywords:["plant","vegetable","flowers","beach"],char:'🌺',fitzpatrick_scale:false,category:"animals_and_nature"},sunflower:{keywords:["nature","plant","fall"],char:'🌻',fitzpatrick_scale:false,category:"animals_and_nature"},rose:{keywords:["flowers","valentines","love","spring"],char:'🌹',fitzpatrick_scale:false,category:"animals_and_nature"},wilted_flower:{keywords:["plant","nature","flower"],char:'🥀',fitzpatrick_scale:false,category:"animals_and_nature"},tulip:{keywords:["flowers","plant","nature","summer","spring"],char:'🌷',fitzpatrick_scale:false,category:"animals_and_nature"},blossom:{keywords:["nature","flowers","yellow"],char:'🌼',fitzpatrick_scale:false,category:"animals_and_nature"},cherry_blossom:{keywords:["nature","plant","spring","flower"],char:'🌸',fitzpatrick_scale:false,category:"animals_and_nature"},bouquet:{keywords:["flowers","nature","spring"],char:'💐',fitzpatrick_scale:false,category:"animals_and_nature"},mushroom:{keywords:["plant","vegetable"],char:'🍄',fitzpatrick_scale:false,category:"animals_and_nature"},chestnut:{keywords:["food","squirrel"],char:'🌰',fitzpatrick_scale:false,category:"animals_and_nature"},jack_o_lantern:{keywords:["halloween","light","pumpkin","creepy","fall"],char:'🎃',fitzpatrick_scale:false,category:"animals_and_nature"},shell:{keywords:["nature","sea","beach"],char:'🐚',fitzpatrick_scale:false,category:"animals_and_nature"},spider_web:{keywords:["animal","insect","arachnid","silk"],char:'🕸',fitzpatrick_scale:false,category:"animals_and_nature"},earth_americas:{keywords:["globe","world","USA","international"],char:'🌎',fitzpatrick_scale:false,category:"animals_and_nature"},earth_africa:{keywords:["globe","world","international"],char:'🌍',fitzpatrick_scale:false,category:"animals_and_nature"},earth_asia:{keywords:["globe","world","east","international"],char:'🌏',fitzpatrick_scale:false,category:"animals_and_nature"},full_moon:{keywords:["nature","yellow","twilight","planet","space","night","evening","sleep"],char:'🌕',fitzpatrick_scale:false,category:"animals_and_nature"},waning_gibbous_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],char:'🌖',fitzpatrick_scale:false,category:"animals_and_nature"},last_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌗',fitzpatrick_scale:false,category:"animals_and_nature"},waning_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌘',fitzpatrick_scale:false,category:"animals_and_nature"},new_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌑',fitzpatrick_scale:false,category:"animals_and_nature"},waxing_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌒',fitzpatrick_scale:false,category:"animals_and_nature"},first_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌓',fitzpatrick_scale:false,category:"animals_and_nature"},waxing_gibbous_moon:{keywords:["nature","night","sky","gray","twilight","planet","space","evening","sleep"],char:'🌔',fitzpatrick_scale:false,category:"animals_and_nature"},new_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌚',fitzpatrick_scale:false,category:"animals_and_nature"},full_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌝',fitzpatrick_scale:false,category:"animals_and_nature"},first_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌛',fitzpatrick_scale:false,category:"animals_and_nature"},last_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'🌜',fitzpatrick_scale:false,category:"animals_and_nature"},sun_with_face:{keywords:["nature","morning","sky"],char:'🌞',fitzpatrick_scale:false,category:"animals_and_nature"},crescent_moon:{keywords:["night","sleep","sky","evening","magic"],char:'🌙',fitzpatrick_scale:false,category:"animals_and_nature"},star:{keywords:["night","yellow"],char:'⭐',fitzpatrick_scale:false,category:"animals_and_nature"},star2:{keywords:["night","sparkle","awesome","good","magic"],char:'🌟',fitzpatrick_scale:false,category:"animals_and_nature"},dizzy:{keywords:["star","sparkle","shoot","magic"],char:'💫',fitzpatrick_scale:false,category:"animals_and_nature"},sparkles:{keywords:["stars","shine","shiny","cool","awesome","good","magic"],char:'✨',fitzpatrick_scale:false,category:"animals_and_nature"},comet:{keywords:["space"],char:'☄',fitzpatrick_scale:false,category:"animals_and_nature"},sunny:{keywords:["weather","nature","brightness","summer","beach","spring"],char:'☀️',fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_small_cloud:{keywords:["weather"],char:'🌤',fitzpatrick_scale:false,category:"animals_and_nature"},partly_sunny:{keywords:["weather","nature","cloudy","morning","fall","spring"],char:'⛅',fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_large_cloud:{keywords:["weather"],char:'🌥',fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_rain_cloud:{keywords:["weather"],char:'🌦',fitzpatrick_scale:false,category:"animals_and_nature"},cloud:{keywords:["weather","sky"],char:'☁️',fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_rain:{keywords:["weather"],char:'🌧',fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_lightning_and_rain:{keywords:["weather","lightning"],char:'⛈',fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_lightning:{keywords:["weather","thunder"],char:'🌩',fitzpatrick_scale:false,category:"animals_and_nature"},zap:{keywords:["thunder","weather","lightning bolt","fast"],char:'⚡',fitzpatrick_scale:false,category:"animals_and_nature"},fire:{keywords:["hot","cook","flame"],char:'🔥',fitzpatrick_scale:false,category:"animals_and_nature"},boom:{keywords:["bomb","explode","explosion","collision","blown"],char:'💥',fitzpatrick_scale:false,category:"animals_and_nature"},snowflake:{keywords:["winter","season","cold","weather","christmas","xmas"],char:'❄️',fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_snow:{keywords:["weather"],char:'🌨',fitzpatrick_scale:false,category:"animals_and_nature"},snowman:{keywords:["winter","season","cold","weather","christmas","xmas","frozen","without_snow"],char:'⛄',fitzpatrick_scale:false,category:"animals_and_nature"},snowman_with_snow:{keywords:["winter","season","cold","weather","christmas","xmas","frozen"],char:'☃',fitzpatrick_scale:false,category:"animals_and_nature"},wind_face:{keywords:["gust","air"],char:'🌬',fitzpatrick_scale:false,category:"animals_and_nature"},dash:{keywords:["wind","air","fast","shoo","fart","smoke","puff"],char:'💨',fitzpatrick_scale:false,category:"animals_and_nature"},tornado:{keywords:["weather","cyclone","twister"],char:'🌪',fitzpatrick_scale:false,category:"animals_and_nature"},fog:{keywords:["weather"],char:'🌫',fitzpatrick_scale:false,category:"animals_and_nature"},open_umbrella:{keywords:["weather","spring"],char:'☂',fitzpatrick_scale:false,category:"animals_and_nature"},umbrella:{keywords:["rainy","weather","spring"],char:'☔',fitzpatrick_scale:false,category:"animals_and_nature"},droplet:{keywords:["water","drip","faucet","spring"],char:'💧',fitzpatrick_scale:false,category:"animals_and_nature"},sweat_drops:{keywords:["water","drip","oops"],char:'💦',fitzpatrick_scale:false,category:"animals_and_nature"},ocean:{keywords:["sea","water","wave","nature","tsunami","disaster"],char:'🌊',fitzpatrick_scale:false,category:"animals_and_nature"},green_apple:{keywords:["fruit","nature"],char:'🍏',fitzpatrick_scale:false,category:"food_and_drink"},apple:{keywords:["fruit","mac","school"],char:'🍎',fitzpatrick_scale:false,category:"food_and_drink"},pear:{keywords:["fruit","nature","food"],char:'🍐',fitzpatrick_scale:false,category:"food_and_drink"},tangerine:{keywords:["food","fruit","nature","orange"],char:'🍊',fitzpatrick_scale:false,category:"food_and_drink"},lemon:{keywords:["fruit","nature"],char:'🍋',fitzpatrick_scale:false,category:"food_and_drink"},banana:{keywords:["fruit","food","monkey"],char:'🍌',fitzpatrick_scale:false,category:"food_and_drink"},watermelon:{keywords:["fruit","food","picnic","summer"],char:'🍉',fitzpatrick_scale:false,category:"food_and_drink"},grapes:{keywords:["fruit","food","wine"],char:'🍇',fitzpatrick_scale:false,category:"food_and_drink"},strawberry:{keywords:["fruit","food","nature"],char:'🍓',fitzpatrick_scale:false,category:"food_and_drink"},melon:{keywords:["fruit","nature","food"],char:'🍈',fitzpatrick_scale:false,category:"food_and_drink"},cherries:{keywords:["food","fruit"],char:'🍒',fitzpatrick_scale:false,category:"food_and_drink"},peach:{keywords:["fruit","nature","food"],char:'🍑',fitzpatrick_scale:false,category:"food_and_drink"},pineapple:{keywords:["fruit","nature","food"],char:'🍍',fitzpatrick_scale:false,category:"food_and_drink"},coconut:{keywords:["fruit","nature","food","palm"],char:'🥥',fitzpatrick_scale:false,category:"food_and_drink"},kiwi_fruit:{keywords:["fruit","food"],char:'🥝',fitzpatrick_scale:false,category:"food_and_drink"},mango:{keywords:["fruit","food","tropical"],char:'🥭',fitzpatrick_scale:false,category:"food_and_drink"},avocado:{keywords:["fruit","food"],char:'🥑',fitzpatrick_scale:false,category:"food_and_drink"},broccoli:{keywords:["fruit","food","vegetable"],char:'🥦',fitzpatrick_scale:false,category:"food_and_drink"},tomato:{keywords:["fruit","vegetable","nature","food"],char:'🍅',fitzpatrick_scale:false,category:"food_and_drink"},eggplant:{keywords:["vegetable","nature","food","aubergine"],char:'🍆',fitzpatrick_scale:false,category:"food_and_drink"},cucumber:{keywords:["fruit","food","pickle"],char:'🥒',fitzpatrick_scale:false,category:"food_and_drink"},carrot:{keywords:["vegetable","food","orange"],char:'🥕',fitzpatrick_scale:false,category:"food_and_drink"},hot_pepper:{keywords:["food","spicy","chilli","chili"],char:'🌶',fitzpatrick_scale:false,category:"food_and_drink"},potato:{keywords:["food","tuber","vegatable","starch"],char:'🥔',fitzpatrick_scale:false,category:"food_and_drink"},corn:{keywords:["food","vegetable","plant"],char:'🌽',fitzpatrick_scale:false,category:"food_and_drink"},leafy_greens:{keywords:["food","vegetable","plant","bok choy","cabbage","kale","lettuce"],char:'🥬',fitzpatrick_scale:false,category:"food_and_drink"},sweet_potato:{keywords:["food","nature"],char:'🍠',fitzpatrick_scale:false,category:"food_and_drink"},peanuts:{keywords:["food","nut"],char:'🥜',fitzpatrick_scale:false,category:"food_and_drink"},honey_pot:{keywords:["bees","sweet","kitchen"],char:'🍯',fitzpatrick_scale:false,category:"food_and_drink"},croissant:{keywords:["food","bread","french"],char:'🥐',fitzpatrick_scale:false,category:"food_and_drink"},bread:{keywords:["food","wheat","breakfast","toast"],char:'🍞',fitzpatrick_scale:false,category:"food_and_drink"},baguette_bread:{keywords:["food","bread","french"],char:'🥖',fitzpatrick_scale:false,category:"food_and_drink"},bagel:{keywords:["food","bread","bakery","schmear"],char:'🥯',fitzpatrick_scale:false,category:"food_and_drink"},pretzel:{keywords:["food","bread","twisted"],char:'🥨',fitzpatrick_scale:false,category:"food_and_drink"},cheese:{keywords:["food","chadder"],char:'🧀',fitzpatrick_scale:false,category:"food_and_drink"},egg:{keywords:["food","chicken","breakfast"],char:'🥚',fitzpatrick_scale:false,category:"food_and_drink"},bacon:{keywords:["food","breakfast","pork","pig","meat"],char:'🥓',fitzpatrick_scale:false,category:"food_and_drink"},steak:{keywords:["food","cow","meat","cut","chop","lambchop","porkchop"],char:'🥩',fitzpatrick_scale:false,category:"food_and_drink"},pancakes:{keywords:["food","breakfast","flapjacks","hotcakes"],char:'🥞',fitzpatrick_scale:false,category:"food_and_drink"},poultry_leg:{keywords:["food","meat","drumstick","bird","chicken","turkey"],char:'🍗',fitzpatrick_scale:false,category:"food_and_drink"},meat_on_bone:{keywords:["good","food","drumstick"],char:'🍖',fitzpatrick_scale:false,category:"food_and_drink"},bone:{keywords:["skeleton"],char:'🦴',fitzpatrick_scale:false,category:"food_and_drink"},fried_shrimp:{keywords:["food","animal","appetizer","summer"],char:'🍤',fitzpatrick_scale:false,category:"food_and_drink"},fried_egg:{keywords:["food","breakfast","kitchen","egg"],char:'🍳',fitzpatrick_scale:false,category:"food_and_drink"},hamburger:{keywords:["meat","fast food","beef","cheeseburger","mcdonalds","burger king"],char:'🍔',fitzpatrick_scale:false,category:"food_and_drink"},fries:{keywords:["chips","snack","fast food"],char:'🍟',fitzpatrick_scale:false,category:"food_and_drink"},stuffed_flatbread:{keywords:["food","flatbread","stuffed","gyro"],char:'🥙',fitzpatrick_scale:false,category:"food_and_drink"},hotdog:{keywords:["food","frankfurter"],char:'🌭',fitzpatrick_scale:false,category:"food_and_drink"},pizza:{keywords:["food","party"],char:'🍕',fitzpatrick_scale:false,category:"food_and_drink"},sandwich:{keywords:["food","lunch","bread"],char:'🥪',fitzpatrick_scale:false,category:"food_and_drink"},canned_food:{keywords:["food","soup"],char:'🥫',fitzpatrick_scale:false,category:"food_and_drink"},spaghetti:{keywords:["food","italian","noodle"],char:'🍝',fitzpatrick_scale:false,category:"food_and_drink"},taco:{keywords:["food","mexican"],char:'🌮',fitzpatrick_scale:false,category:"food_and_drink"},burrito:{keywords:["food","mexican"],char:'🌯',fitzpatrick_scale:false,category:"food_and_drink"},green_salad:{keywords:["food","healthy","lettuce"],char:'🥗',fitzpatrick_scale:false,category:"food_and_drink"},shallow_pan_of_food:{keywords:["food","cooking","casserole","paella"],char:'🥘',fitzpatrick_scale:false,category:"food_and_drink"},ramen:{keywords:["food","japanese","noodle","chopsticks"],char:'🍜',fitzpatrick_scale:false,category:"food_and_drink"},stew:{keywords:["food","meat","soup"],char:'🍲',fitzpatrick_scale:false,category:"food_and_drink"},fish_cake:{keywords:["food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],char:'🍥',fitzpatrick_scale:false,category:"food_and_drink"},fortune_cookie:{keywords:["food","prophecy"],char:'🥠',fitzpatrick_scale:false,category:"food_and_drink"},sushi:{keywords:["food","fish","japanese","rice"],char:'🍣',fitzpatrick_scale:false,category:"food_and_drink"},bento:{keywords:["food","japanese","box"],char:'🍱',fitzpatrick_scale:false,category:"food_and_drink"},curry:{keywords:["food","spicy","hot","indian"],char:'🍛',fitzpatrick_scale:false,category:"food_and_drink"},rice_ball:{keywords:["food","japanese"],char:'🍙',fitzpatrick_scale:false,category:"food_and_drink"},rice:{keywords:["food","china","asian"],char:'🍚',fitzpatrick_scale:false,category:"food_and_drink"},rice_cracker:{keywords:["food","japanese"],char:'🍘',fitzpatrick_scale:false,category:"food_and_drink"},oden:{keywords:["food","japanese"],char:'🍢',fitzpatrick_scale:false,category:"food_and_drink"},dango:{keywords:["food","dessert","sweet","japanese","barbecue","meat"],char:'🍡',fitzpatrick_scale:false,category:"food_and_drink"},shaved_ice:{keywords:["hot","dessert","summer"],char:'🍧',fitzpatrick_scale:false,category:"food_and_drink"},ice_cream:{keywords:["food","hot","dessert"],char:'🍨',fitzpatrick_scale:false,category:"food_and_drink"},icecream:{keywords:["food","hot","dessert","summer"],char:'🍦',fitzpatrick_scale:false,category:"food_and_drink"},pie:{keywords:["food","dessert","pastry"],char:'🥧',fitzpatrick_scale:false,category:"food_and_drink"},cake:{keywords:["food","dessert"],char:'🍰',fitzpatrick_scale:false,category:"food_and_drink"},cupcake:{keywords:["food","dessert","bakery","sweet"],char:'🧁',fitzpatrick_scale:false,category:"food_and_drink"},moon_cake:{keywords:["food","autumn"],char:'🥮',fitzpatrick_scale:false,category:"food_and_drink"},birthday:{keywords:["food","dessert","cake"],char:'🎂',fitzpatrick_scale:false,category:"food_and_drink"},custard:{keywords:["dessert","food"],char:'🍮',fitzpatrick_scale:false,category:"food_and_drink"},candy:{keywords:["snack","dessert","sweet","lolly"],char:'🍬',fitzpatrick_scale:false,category:"food_and_drink"},lollipop:{keywords:["food","snack","candy","sweet"],char:'🍭',fitzpatrick_scale:false,category:"food_and_drink"},chocolate_bar:{keywords:["food","snack","dessert","sweet"],char:'🍫',fitzpatrick_scale:false,category:"food_and_drink"},popcorn:{keywords:["food","movie theater","films","snack"],char:'🍿',fitzpatrick_scale:false,category:"food_and_drink"},dumpling:{keywords:["food","empanada","pierogi","potsticker"],char:'🥟',fitzpatrick_scale:false,category:"food_and_drink"},doughnut:{keywords:["food","dessert","snack","sweet","donut"],char:'🍩',fitzpatrick_scale:false,category:"food_and_drink"},cookie:{keywords:["food","snack","oreo","chocolate","sweet","dessert"],char:'🍪',fitzpatrick_scale:false,category:"food_and_drink"},milk_glass:{keywords:["beverage","drink","cow"],char:'🥛',fitzpatrick_scale:false,category:"food_and_drink"},beer:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:'🍺',fitzpatrick_scale:false,category:"food_and_drink"},beers:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:'🍻',fitzpatrick_scale:false,category:"food_and_drink"},clinking_glasses:{keywords:["beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],char:'🥂',fitzpatrick_scale:false,category:"food_and_drink"},wine_glass:{keywords:["drink","beverage","drunk","alcohol","booze"],char:'🍷',fitzpatrick_scale:false,category:"food_and_drink"},tumbler_glass:{keywords:["drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],char:'🥃',fitzpatrick_scale:false,category:"food_and_drink"},cocktail:{keywords:["drink","drunk","alcohol","beverage","booze","mojito"],char:'🍸',fitzpatrick_scale:false,category:"food_and_drink"},tropical_drink:{keywords:["beverage","cocktail","summer","beach","alcohol","booze","mojito"],char:'🍹',fitzpatrick_scale:false,category:"food_and_drink"},champagne:{keywords:["drink","wine","bottle","celebration"],char:'🍾',fitzpatrick_scale:false,category:"food_and_drink"},sake:{keywords:["wine","drink","drunk","beverage","japanese","alcohol","booze"],char:'🍶',fitzpatrick_scale:false,category:"food_and_drink"},tea:{keywords:["drink","bowl","breakfast","green","british"],char:'🍵',fitzpatrick_scale:false,category:"food_and_drink"},cup_with_straw:{keywords:["drink","soda"],char:'🥤',fitzpatrick_scale:false,category:"food_and_drink"},coffee:{keywords:["beverage","caffeine","latte","espresso"],char:'☕',fitzpatrick_scale:false,category:"food_and_drink"},baby_bottle:{keywords:["food","container","milk"],char:'🍼',fitzpatrick_scale:false,category:"food_and_drink"},salt:{keywords:["condiment","shaker"],char:'🧂',fitzpatrick_scale:false,category:"food_and_drink"},spoon:{keywords:["cutlery","kitchen","tableware"],char:'🥄',fitzpatrick_scale:false,category:"food_and_drink"},fork_and_knife:{keywords:["cutlery","kitchen"],char:'🍴',fitzpatrick_scale:false,category:"food_and_drink"},plate_with_cutlery:{keywords:["food","eat","meal","lunch","dinner","restaurant"],char:'🍽',fitzpatrick_scale:false,category:"food_and_drink"},bowl_with_spoon:{keywords:["food","breakfast","cereal","oatmeal","porridge"],char:'🥣',fitzpatrick_scale:false,category:"food_and_drink"},takeout_box:{keywords:["food","leftovers"],char:'🥡',fitzpatrick_scale:false,category:"food_and_drink"},chopsticks:{keywords:["food"],char:'🥢',fitzpatrick_scale:false,category:"food_and_drink"},soccer:{keywords:["sports","football"],char:'⚽',fitzpatrick_scale:false,category:"activity"},basketball:{keywords:["sports","balls","NBA"],char:'🏀',fitzpatrick_scale:false,category:"activity"},football:{keywords:["sports","balls","NFL"],char:'🏈',fitzpatrick_scale:false,category:"activity"},baseball:{keywords:["sports","balls"],char:'⚾',fitzpatrick_scale:false,category:"activity"},softball:{keywords:["sports","balls"],char:'🥎',fitzpatrick_scale:false,category:"activity"},tennis:{keywords:["sports","balls","green"],char:'🎾',fitzpatrick_scale:false,category:"activity"},volleyball:{keywords:["sports","balls"],char:'🏐',fitzpatrick_scale:false,category:"activity"},rugby_football:{keywords:["sports","team"],char:'🏉',fitzpatrick_scale:false,category:"activity"},flying_disc:{keywords:["sports","frisbee","ultimate"],char:'🥏',fitzpatrick_scale:false,category:"activity"},"8ball":{keywords:["pool","hobby","game","luck","magic"],char:'🎱',fitzpatrick_scale:false,category:"activity"},golf:{keywords:["sports","business","flag","hole","summer"],char:'⛳',fitzpatrick_scale:false,category:"activity"},golfing_woman:{keywords:["sports","business","woman","female"],char:'🏌️‍♀️',fitzpatrick_scale:false,category:"activity"},golfing_man:{keywords:["sports","business"],char:'🏌',fitzpatrick_scale:true,category:"activity"},ping_pong:{keywords:["sports","pingpong"],char:'🏓',fitzpatrick_scale:false,category:"activity"},badminton:{keywords:["sports"],char:'🏸',fitzpatrick_scale:false,category:"activity"},goal_net:{keywords:["sports"],char:'🥅',fitzpatrick_scale:false,category:"activity"},ice_hockey:{keywords:["sports"],char:'🏒',fitzpatrick_scale:false,category:"activity"},field_hockey:{keywords:["sports"],char:'🏑',fitzpatrick_scale:false,category:"activity"},lacrosse:{keywords:["sports","ball","stick"],char:'🥍',fitzpatrick_scale:false,category:"activity"},cricket:{keywords:["sports"],char:'🏏',fitzpatrick_scale:false,category:"activity"},ski:{keywords:["sports","winter","cold","snow"],char:'🎿',fitzpatrick_scale:false,category:"activity"},skier:{keywords:["sports","winter","snow"],char:'⛷',fitzpatrick_scale:false,category:"activity"},snowboarder:{keywords:["sports","winter"],char:'🏂',fitzpatrick_scale:true,category:"activity"},person_fencing:{keywords:["sports","fencing","sword"],char:'🤺',fitzpatrick_scale:false,category:"activity"},women_wrestling:{keywords:["sports","wrestlers"],char:'🤼‍♀️',fitzpatrick_scale:false,category:"activity"},men_wrestling:{keywords:["sports","wrestlers"],char:'🤼‍♂️',fitzpatrick_scale:false,category:"activity"},woman_cartwheeling:{keywords:["gymnastics"],char:'🤸‍♀️',fitzpatrick_scale:true,category:"activity"},man_cartwheeling:{keywords:["gymnastics"],char:'🤸‍♂️',fitzpatrick_scale:true,category:"activity"},woman_playing_handball:{keywords:["sports"],char:'🤾‍♀️',fitzpatrick_scale:true,category:"activity"},man_playing_handball:{keywords:["sports"],char:'🤾‍♂️',fitzpatrick_scale:true,category:"activity"},ice_skate:{keywords:["sports"],char:'⛸',fitzpatrick_scale:false,category:"activity"},curling_stone:{keywords:["sports"],char:'🥌',fitzpatrick_scale:false,category:"activity"},skateboard:{keywords:["board"],char:'🛹',fitzpatrick_scale:false,category:"activity"},sled:{keywords:["sleigh","luge","toboggan"],char:'🛷',fitzpatrick_scale:false,category:"activity"},bow_and_arrow:{keywords:["sports"],char:'🏹',fitzpatrick_scale:false,category:"activity"},fishing_pole_and_fish:{keywords:["food","hobby","summer"],char:'🎣',fitzpatrick_scale:false,category:"activity"},boxing_glove:{keywords:["sports","fighting"],char:'🥊',fitzpatrick_scale:false,category:"activity"},martial_arts_uniform:{keywords:["judo","karate","taekwondo"],char:'🥋',fitzpatrick_scale:false,category:"activity"},rowing_woman:{keywords:["sports","hobby","water","ship","woman","female"],char:'🚣‍♀️',fitzpatrick_scale:true,category:"activity"},rowing_man:{keywords:["sports","hobby","water","ship"],char:'🚣',fitzpatrick_scale:true,category:"activity"},climbing_woman:{keywords:["sports","hobby","woman","female","rock"],char:'🧗‍♀️',fitzpatrick_scale:true,category:"activity"},climbing_man:{keywords:["sports","hobby","man","male","rock"],char:'🧗‍♂️',fitzpatrick_scale:true,category:"activity"},swimming_woman:{keywords:["sports","exercise","human","athlete","water","summer","woman","female"],char:'🏊‍♀️',fitzpatrick_scale:true,category:"activity"},swimming_man:{keywords:["sports","exercise","human","athlete","water","summer"],char:'🏊',fitzpatrick_scale:true,category:"activity"},woman_playing_water_polo:{keywords:["sports","pool"],char:'🤽‍♀️',fitzpatrick_scale:true,category:"activity"},man_playing_water_polo:{keywords:["sports","pool"],char:'🤽‍♂️',fitzpatrick_scale:true,category:"activity"},woman_in_lotus_position:{keywords:["woman","female","meditation","yoga","serenity","zen","mindfulness"],char:'🧘‍♀️',fitzpatrick_scale:true,category:"activity"},man_in_lotus_position:{keywords:["man","male","meditation","yoga","serenity","zen","mindfulness"],char:'🧘‍♂️',fitzpatrick_scale:true,category:"activity"},surfing_woman:{keywords:["sports","ocean","sea","summer","beach","woman","female"],char:'🏄‍♀️',fitzpatrick_scale:true,category:"activity"},surfing_man:{keywords:["sports","ocean","sea","summer","beach"],char:'🏄',fitzpatrick_scale:true,category:"activity"},bath:{keywords:["clean","shower","bathroom"],char:'🛀',fitzpatrick_scale:true,category:"activity"},basketball_woman:{keywords:["sports","human","woman","female"],char:'⛹️‍♀️',fitzpatrick_scale:true,category:"activity"},basketball_man:{keywords:["sports","human"],char:'⛹',fitzpatrick_scale:true,category:"activity"},weight_lifting_woman:{keywords:["sports","training","exercise","woman","female"],char:'🏋️‍♀️',fitzpatrick_scale:true,category:"activity"},weight_lifting_man:{keywords:["sports","training","exercise"],char:'🏋',fitzpatrick_scale:true,category:"activity"},biking_woman:{keywords:["sports","bike","exercise","hipster","woman","female"],char:'🚴‍♀️',fitzpatrick_scale:true,category:"activity"},biking_man:{keywords:["sports","bike","exercise","hipster"],char:'🚴',fitzpatrick_scale:true,category:"activity"},mountain_biking_woman:{keywords:["transportation","sports","human","race","bike","woman","female"],char:'🚵‍♀️',fitzpatrick_scale:true,category:"activity"},mountain_biking_man:{keywords:["transportation","sports","human","race","bike"],char:'🚵',fitzpatrick_scale:true,category:"activity"},horse_racing:{keywords:["animal","betting","competition","gambling","luck"],char:'🏇',fitzpatrick_scale:true,category:"activity"},business_suit_levitating:{keywords:["suit","business","levitate","hover","jump"],char:'🕴',fitzpatrick_scale:true,category:"activity"},trophy:{keywords:["win","award","contest","place","ftw","ceremony"],char:'🏆',fitzpatrick_scale:false,category:"activity"},running_shirt_with_sash:{keywords:["play","pageant"],char:'🎽',fitzpatrick_scale:false,category:"activity"},medal_sports:{keywords:["award","winning"],char:'🏅',fitzpatrick_scale:false,category:"activity"},medal_military:{keywords:["award","winning","army"],char:'🎖',fitzpatrick_scale:false,category:"activity"},"1st_place_medal":{keywords:["award","winning","first"],char:'🥇',fitzpatrick_scale:false,category:"activity"},"2nd_place_medal":{keywords:["award","second"],char:'🥈',fitzpatrick_scale:false,category:"activity"},"3rd_place_medal":{keywords:["award","third"],char:'🥉',fitzpatrick_scale:false,category:"activity"},reminder_ribbon:{keywords:["sports","cause","support","awareness"],char:'🎗',fitzpatrick_scale:false,category:"activity"},rosette:{keywords:["flower","decoration","military"],char:'🏵',fitzpatrick_scale:false,category:"activity"},ticket:{keywords:["event","concert","pass"],char:'🎫',fitzpatrick_scale:false,category:"activity"},tickets:{keywords:["sports","concert","entrance"],char:'🎟',fitzpatrick_scale:false,category:"activity"},performing_arts:{keywords:["acting","theater","drama"],char:'🎭',fitzpatrick_scale:false,category:"activity"},art:{keywords:["design","paint","draw","colors"],char:'🎨',fitzpatrick_scale:false,category:"activity"},circus_tent:{keywords:["festival","carnival","party"],char:'🎪',fitzpatrick_scale:false,category:"activity"},woman_juggling:{keywords:["juggle","balance","skill","multitask"],char:'🤹‍♀️',fitzpatrick_scale:true,category:"activity"},man_juggling:{keywords:["juggle","balance","skill","multitask"],char:'🤹‍♂️',fitzpatrick_scale:true,category:"activity"},microphone:{keywords:["sound","music","PA","sing","talkshow"],char:'🎤',fitzpatrick_scale:false,category:"activity"},headphones:{keywords:["music","score","gadgets"],char:'🎧',fitzpatrick_scale:false,category:"activity"},musical_score:{keywords:["treble","clef","compose"],char:'🎼',fitzpatrick_scale:false,category:"activity"},musical_keyboard:{keywords:["piano","instrument","compose"],char:'🎹',fitzpatrick_scale:false,category:"activity"},drum:{keywords:["music","instrument","drumsticks","snare"],char:'🥁',fitzpatrick_scale:false,category:"activity"},saxophone:{keywords:["music","instrument","jazz","blues"],char:'🎷',fitzpatrick_scale:false,category:"activity"},trumpet:{keywords:["music","brass"],char:'🎺',fitzpatrick_scale:false,category:"activity"},guitar:{keywords:["music","instrument"],char:'🎸',fitzpatrick_scale:false,category:"activity"},violin:{keywords:["music","instrument","orchestra","symphony"],char:'🎻',fitzpatrick_scale:false,category:"activity"},clapper:{keywords:["movie","film","record"],char:'🎬',fitzpatrick_scale:false,category:"activity"},video_game:{keywords:["play","console","PS4","controller"],char:'🎮',fitzpatrick_scale:false,category:"activity"},space_invader:{keywords:["game","arcade","play"],char:'👾',fitzpatrick_scale:false,category:"activity"},dart:{keywords:["game","play","bar","target","bullseye"],char:'🎯',fitzpatrick_scale:false,category:"activity"},game_die:{keywords:["dice","random","tabletop","play","luck"],char:'🎲',fitzpatrick_scale:false,category:"activity"},chess_pawn:{keywords:["expendable"],char:"♟",fitzpatrick_scale:false,category:"activity"},slot_machine:{keywords:["bet","gamble","vegas","fruit machine","luck","casino"],char:'🎰',fitzpatrick_scale:false,category:"activity"},jigsaw:{keywords:["interlocking","puzzle","piece"],char:'🧩',fitzpatrick_scale:false,category:"activity"},bowling:{keywords:["sports","fun","play"],char:'🎳',fitzpatrick_scale:false,category:"activity"},red_car:{keywords:["red","transportation","vehicle"],char:'🚗',fitzpatrick_scale:false,category:"travel_and_places"},taxi:{keywords:["uber","vehicle","cars","transportation"],char:'🚕',fitzpatrick_scale:false,category:"travel_and_places"},blue_car:{keywords:["transportation","vehicle"],char:'🚙',fitzpatrick_scale:false,category:"travel_and_places"},bus:{keywords:["car","vehicle","transportation"],char:'🚌',fitzpatrick_scale:false,category:"travel_and_places"},trolleybus:{keywords:["bart","transportation","vehicle"],char:'🚎',fitzpatrick_scale:false,category:"travel_and_places"},racing_car:{keywords:["sports","race","fast","formula","f1"],char:'🏎',fitzpatrick_scale:false,category:"travel_and_places"},police_car:{keywords:["vehicle","cars","transportation","law","legal","enforcement"],char:'🚓',fitzpatrick_scale:false,category:"travel_and_places"},ambulance:{keywords:["health","911","hospital"],char:'🚑',fitzpatrick_scale:false,category:"travel_and_places"},fire_engine:{keywords:["transportation","cars","vehicle"],char:'🚒',fitzpatrick_scale:false,category:"travel_and_places"},minibus:{keywords:["vehicle","car","transportation"],char:'🚐',fitzpatrick_scale:false,category:"travel_and_places"},truck:{keywords:["cars","transportation"],char:'🚚',fitzpatrick_scale:false,category:"travel_and_places"},articulated_lorry:{keywords:["vehicle","cars","transportation","express"],char:'🚛',fitzpatrick_scale:false,category:"travel_and_places"},tractor:{keywords:["vehicle","car","farming","agriculture"],char:'🚜',fitzpatrick_scale:false,category:"travel_and_places"},kick_scooter:{keywords:["vehicle","kick","razor"],char:'🛴',fitzpatrick_scale:false,category:"travel_and_places"},motorcycle:{keywords:["race","sports","fast"],char:'🏍',fitzpatrick_scale:false,category:"travel_and_places"},bike:{keywords:["sports","bicycle","exercise","hipster"],char:'🚲',fitzpatrick_scale:false,category:"travel_and_places"},motor_scooter:{keywords:["vehicle","vespa","sasha"],char:'🛵',fitzpatrick_scale:false,category:"travel_and_places"},rotating_light:{keywords:["police","ambulance","911","emergency","alert","error","pinged","law","legal"],char:'🚨',fitzpatrick_scale:false,category:"travel_and_places"},oncoming_police_car:{keywords:["vehicle","law","legal","enforcement","911"],char:'🚔',fitzpatrick_scale:false,category:"travel_and_places"},oncoming_bus:{keywords:["vehicle","transportation"],char:'🚍',fitzpatrick_scale:false,category:"travel_and_places"},oncoming_automobile:{keywords:["car","vehicle","transportation"],char:'🚘',fitzpatrick_scale:false,category:"travel_and_places"},oncoming_taxi:{keywords:["vehicle","cars","uber"],char:'🚖',fitzpatrick_scale:false,category:"travel_and_places"},aerial_tramway:{keywords:["transportation","vehicle","ski"],char:'🚡',fitzpatrick_scale:false,category:"travel_and_places"},mountain_cableway:{keywords:["transportation","vehicle","ski"],char:'🚠',fitzpatrick_scale:false,category:"travel_and_places"},suspension_railway:{keywords:["vehicle","transportation"],char:'🚟',fitzpatrick_scale:false,category:"travel_and_places"},railway_car:{keywords:["transportation","vehicle"],char:'🚃',fitzpatrick_scale:false,category:"travel_and_places"},train:{keywords:["transportation","vehicle","carriage","public","travel"],char:'🚋',fitzpatrick_scale:false,category:"travel_and_places"},monorail:{keywords:["transportation","vehicle"],char:'🚝',fitzpatrick_scale:false,category:"travel_and_places"},bullettrain_side:{keywords:["transportation","vehicle"],char:'🚄',fitzpatrick_scale:false,category:"travel_and_places"},bullettrain_front:{keywords:["transportation","vehicle","speed","fast","public","travel"],char:'🚅',fitzpatrick_scale:false,category:"travel_and_places"},light_rail:{keywords:["transportation","vehicle"],char:'🚈',fitzpatrick_scale:false,category:"travel_and_places"},mountain_railway:{keywords:["transportation","vehicle"],char:'🚞',fitzpatrick_scale:false,category:"travel_and_places"},steam_locomotive:{keywords:["transportation","vehicle","train"],char:'🚂',fitzpatrick_scale:false,category:"travel_and_places"},train2:{keywords:["transportation","vehicle"],char:'🚆',fitzpatrick_scale:false,category:"travel_and_places"},metro:{keywords:["transportation","blue-square","mrt","underground","tube"],char:'🚇',fitzpatrick_scale:false,category:"travel_and_places"},tram:{keywords:["transportation","vehicle"],char:'🚊',fitzpatrick_scale:false,category:"travel_and_places"},station:{keywords:["transportation","vehicle","public"],char:'🚉',fitzpatrick_scale:false,category:"travel_and_places"},flying_saucer:{keywords:["transportation","vehicle","ufo"],char:'🛸',fitzpatrick_scale:false,category:"travel_and_places"},helicopter:{keywords:["transportation","vehicle","fly"],char:'🚁',fitzpatrick_scale:false,category:"travel_and_places"},small_airplane:{keywords:["flight","transportation","fly","vehicle"],char:'🛩',fitzpatrick_scale:false,category:"travel_and_places"},airplane:{keywords:["vehicle","transportation","flight","fly"],char:'✈️',fitzpatrick_scale:false,category:"travel_and_places"},flight_departure:{keywords:["airport","flight","landing"],char:'🛫',fitzpatrick_scale:false,category:"travel_and_places"},flight_arrival:{keywords:["airport","flight","boarding"],char:'🛬',fitzpatrick_scale:false,category:"travel_and_places"},sailboat:{keywords:["ship","summer","transportation","water","sailing"],char:'⛵',fitzpatrick_scale:false,category:"travel_and_places"},motor_boat:{keywords:["ship"],char:'🛥',fitzpatrick_scale:false,category:"travel_and_places"},speedboat:{keywords:["ship","transportation","vehicle","summer"],char:'🚤',fitzpatrick_scale:false,category:"travel_and_places"},ferry:{keywords:["boat","ship","yacht"],char:'⛴',fitzpatrick_scale:false,category:"travel_and_places"},passenger_ship:{keywords:["yacht","cruise","ferry"],char:'🛳',fitzpatrick_scale:false,category:"travel_and_places"},rocket:{keywords:["launch","ship","staffmode","NASA","outer space","outer_space","fly"],char:'🚀',fitzpatrick_scale:false,category:"travel_and_places"},artificial_satellite:{keywords:["communication","gps","orbit","spaceflight","NASA","ISS"],char:'🛰',fitzpatrick_scale:false,category:"travel_and_places"},seat:{keywords:["sit","airplane","transport","bus","flight","fly"],char:'💺',fitzpatrick_scale:false,category:"travel_and_places"},canoe:{keywords:["boat","paddle","water","ship"],char:'🛶',fitzpatrick_scale:false,category:"travel_and_places"},anchor:{keywords:["ship","ferry","sea","boat"],char:'⚓',fitzpatrick_scale:false,category:"travel_and_places"},construction:{keywords:["wip","progress","caution","warning"],char:'🚧',fitzpatrick_scale:false,category:"travel_and_places"},fuelpump:{keywords:["gas station","petroleum"],char:'⛽',fitzpatrick_scale:false,category:"travel_and_places"},busstop:{keywords:["transportation","wait"],char:'🚏',fitzpatrick_scale:false,category:"travel_and_places"},vertical_traffic_light:{keywords:["transportation","driving"],char:'🚦',fitzpatrick_scale:false,category:"travel_and_places"},traffic_light:{keywords:["transportation","signal"],char:'🚥',fitzpatrick_scale:false,category:"travel_and_places"},checkered_flag:{keywords:["contest","finishline","race","gokart"],char:'🏁',fitzpatrick_scale:false,category:"travel_and_places"},ship:{keywords:["transportation","titanic","deploy"],char:'🚢',fitzpatrick_scale:false,category:"travel_and_places"},ferris_wheel:{keywords:["photo","carnival","londoneye"],char:'🎡',fitzpatrick_scale:false,category:"travel_and_places"},roller_coaster:{keywords:["carnival","playground","photo","fun"],char:'🎢',fitzpatrick_scale:false,category:"travel_and_places"},carousel_horse:{keywords:["photo","carnival"],char:'🎠',fitzpatrick_scale:false,category:"travel_and_places"},building_construction:{keywords:["wip","working","progress"],char:'🏗',fitzpatrick_scale:false,category:"travel_and_places"},foggy:{keywords:["photo","mountain"],char:'🌁',fitzpatrick_scale:false,category:"travel_and_places"},tokyo_tower:{keywords:["photo","japanese"],char:'🗼',fitzpatrick_scale:false,category:"travel_and_places"},factory:{keywords:["building","industry","pollution","smoke"],char:'🏭',fitzpatrick_scale:false,category:"travel_and_places"},fountain:{keywords:["photo","summer","water","fresh"],char:'⛲',fitzpatrick_scale:false,category:"travel_and_places"},rice_scene:{keywords:["photo","japan","asia","tsukimi"],char:'🎑',fitzpatrick_scale:false,category:"travel_and_places"},mountain:{keywords:["photo","nature","environment"],char:'⛰',fitzpatrick_scale:false,category:"travel_and_places"},mountain_snow:{keywords:["photo","nature","environment","winter","cold"],char:'🏔',fitzpatrick_scale:false,category:"travel_and_places"},mount_fuji:{keywords:["photo","mountain","nature","japanese"],char:'🗻',fitzpatrick_scale:false,category:"travel_and_places"},volcano:{keywords:["photo","nature","disaster"],char:'🌋',fitzpatrick_scale:false,category:"travel_and_places"},japan:{keywords:["nation","country","japanese","asia"],char:'🗾',fitzpatrick_scale:false,category:"travel_and_places"},camping:{keywords:["photo","outdoors","tent"],char:'🏕',fitzpatrick_scale:false,category:"travel_and_places"},tent:{keywords:["photo","camping","outdoors"],char:'⛺',fitzpatrick_scale:false,category:"travel_and_places"},national_park:{keywords:["photo","environment","nature"],char:'🏞',fitzpatrick_scale:false,category:"travel_and_places"},motorway:{keywords:["road","cupertino","interstate","highway"],char:'🛣',fitzpatrick_scale:false,category:"travel_and_places"},railway_track:{keywords:["train","transportation"],char:'🛤',fitzpatrick_scale:false,category:"travel_and_places"},sunrise:{keywords:["morning","view","vacation","photo"],char:'🌅',fitzpatrick_scale:false,category:"travel_and_places"},sunrise_over_mountains:{keywords:["view","vacation","photo"],char:'🌄',fitzpatrick_scale:false,category:"travel_and_places"},desert:{keywords:["photo","warm","saharah"],char:'🏜',fitzpatrick_scale:false,category:"travel_and_places"},beach_umbrella:{keywords:["weather","summer","sunny","sand","mojito"],char:'🏖',fitzpatrick_scale:false,category:"travel_and_places"},desert_island:{keywords:["photo","tropical","mojito"],char:'🏝',fitzpatrick_scale:false,category:"travel_and_places"},city_sunrise:{keywords:["photo","good morning","dawn"],char:'🌇',fitzpatrick_scale:false,category:"travel_and_places"},city_sunset:{keywords:["photo","evening","sky","buildings"],char:'🌆',fitzpatrick_scale:false,category:"travel_and_places"},cityscape:{keywords:["photo","night life","urban"],char:'🏙',fitzpatrick_scale:false,category:"travel_and_places"},night_with_stars:{keywords:["evening","city","downtown"],char:'🌃',fitzpatrick_scale:false,category:"travel_and_places"},bridge_at_night:{keywords:["photo","sanfrancisco"],char:'🌉',fitzpatrick_scale:false,category:"travel_and_places"},milky_way:{keywords:["photo","space","stars"],char:'🌌',fitzpatrick_scale:false,category:"travel_and_places"},stars:{keywords:["night","photo"],char:'🌠',fitzpatrick_scale:false,category:"travel_and_places"},sparkler:{keywords:["stars","night","shine"],char:'🎇',fitzpatrick_scale:false,category:"travel_and_places"},fireworks:{keywords:["photo","festival","carnival","congratulations"],char:'🎆',fitzpatrick_scale:false,category:"travel_and_places"},rainbow:{keywords:["nature","happy","unicorn_face","photo","sky","spring"],char:'🌈',fitzpatrick_scale:false,category:"travel_and_places"},houses:{keywords:["buildings","photo"],char:'🏘',fitzpatrick_scale:false,category:"travel_and_places"},european_castle:{keywords:["building","royalty","history"],char:'🏰',fitzpatrick_scale:false,category:"travel_and_places"},japanese_castle:{keywords:["photo","building"],char:'🏯',fitzpatrick_scale:false,category:"travel_and_places"},stadium:{keywords:["photo","place","sports","concert","venue"],char:'🏟',fitzpatrick_scale:false,category:"travel_and_places"},statue_of_liberty:{keywords:["american","newyork"],char:'🗽',fitzpatrick_scale:false,category:"travel_and_places"},house:{keywords:["building","home"],char:'🏠',fitzpatrick_scale:false,category:"travel_and_places"},house_with_garden:{keywords:["home","plant","nature"],char:'🏡',fitzpatrick_scale:false,category:"travel_and_places"},derelict_house:{keywords:["abandon","evict","broken","building"],char:'🏚',fitzpatrick_scale:false,category:"travel_and_places"},office:{keywords:["building","bureau","work"],char:'🏢',fitzpatrick_scale:false,category:"travel_and_places"},department_store:{keywords:["building","shopping","mall"],char:'🏬',fitzpatrick_scale:false,category:"travel_and_places"},post_office:{keywords:["building","envelope","communication"],char:'🏣',fitzpatrick_scale:false,category:"travel_and_places"},european_post_office:{keywords:["building","email"],char:'🏤',fitzpatrick_scale:false,category:"travel_and_places"},hospital:{keywords:["building","health","surgery","doctor"],char:'🏥',fitzpatrick_scale:false,category:"travel_and_places"},bank:{keywords:["building","money","sales","cash","business","enterprise"],char:'🏦',fitzpatrick_scale:false,category:"travel_and_places"},hotel:{keywords:["building","accomodation","checkin"],char:'🏨',fitzpatrick_scale:false,category:"travel_and_places"},convenience_store:{keywords:["building","shopping","groceries"],char:'🏪',fitzpatrick_scale:false,category:"travel_and_places"},school:{keywords:["building","student","education","learn","teach"],char:'🏫',fitzpatrick_scale:false,category:"travel_and_places"},love_hotel:{keywords:["like","affection","dating"],char:'🏩',fitzpatrick_scale:false,category:"travel_and_places"},wedding:{keywords:["love","like","affection","couple","marriage","bride","groom"],char:'💒',fitzpatrick_scale:false,category:"travel_and_places"},classical_building:{keywords:["art","culture","history"],char:'🏛',fitzpatrick_scale:false,category:"travel_and_places"},church:{keywords:["building","religion","christ"],char:'⛪',fitzpatrick_scale:false,category:"travel_and_places"},mosque:{keywords:["islam","worship","minaret"],char:'🕌',fitzpatrick_scale:false,category:"travel_and_places"},synagogue:{keywords:["judaism","worship","temple","jewish"],char:'🕍',fitzpatrick_scale:false,category:"travel_and_places"},kaaba:{keywords:["mecca","mosque","islam"],char:'🕋',fitzpatrick_scale:false,category:"travel_and_places"},shinto_shrine:{keywords:["temple","japan","kyoto"],char:'⛩',fitzpatrick_scale:false,category:"travel_and_places"},watch:{keywords:["time","accessories"],char:'⌚',fitzpatrick_scale:false,category:"objects"},iphone:{keywords:["technology","apple","gadgets","dial"],char:'📱',fitzpatrick_scale:false,category:"objects"},calling:{keywords:["iphone","incoming"],char:'📲',fitzpatrick_scale:false,category:"objects"},computer:{keywords:["technology","laptop","screen","display","monitor"],char:'💻',fitzpatrick_scale:false,category:"objects"},keyboard:{keywords:["technology","computer","type","input","text"],char:'⌨',fitzpatrick_scale:false,category:"objects"},desktop_computer:{keywords:["technology","computing","screen"],char:'🖥',fitzpatrick_scale:false,category:"objects"},printer:{keywords:["paper","ink"],char:'🖨',fitzpatrick_scale:false,category:"objects"},computer_mouse:{keywords:["click"],char:'🖱',fitzpatrick_scale:false,category:"objects"},trackball:{keywords:["technology","trackpad"],char:'🖲',fitzpatrick_scale:false,category:"objects"},joystick:{keywords:["game","play"],char:'🕹',fitzpatrick_scale:false,category:"objects"},clamp:{keywords:["tool"],char:'🗜',fitzpatrick_scale:false,category:"objects"},minidisc:{keywords:["technology","record","data","disk","90s"],char:'💽',fitzpatrick_scale:false,category:"objects"},floppy_disk:{keywords:["oldschool","technology","save","90s","80s"],char:'💾',fitzpatrick_scale:false,category:"objects"},cd:{keywords:["technology","dvd","disk","disc","90s"],char:'💿',fitzpatrick_scale:false,category:"objects"},dvd:{keywords:["cd","disk","disc"],char:'📀',fitzpatrick_scale:false,category:"objects"},vhs:{keywords:["record","video","oldschool","90s","80s"],char:'📼',fitzpatrick_scale:false,category:"objects"},camera:{keywords:["gadgets","photography"],char:'📷',fitzpatrick_scale:false,category:"objects"},camera_flash:{keywords:["photography","gadgets"],char:'📸',fitzpatrick_scale:false,category:"objects"},video_camera:{keywords:["film","record"],char:'📹',fitzpatrick_scale:false,category:"objects"},movie_camera:{keywords:["film","record"],char:'🎥',fitzpatrick_scale:false,category:"objects"},film_projector:{keywords:["video","tape","record","movie"],char:'📽',fitzpatrick_scale:false,category:"objects"},film_strip:{keywords:["movie"],char:'🎞',fitzpatrick_scale:false,category:"objects"},telephone_receiver:{keywords:["technology","communication","dial"],char:'📞',fitzpatrick_scale:false,category:"objects"},phone:{keywords:["technology","communication","dial","telephone"],char:'☎️',fitzpatrick_scale:false,category:"objects"},pager:{keywords:["bbcall","oldschool","90s"],char:'📟',fitzpatrick_scale:false,category:"objects"},fax:{keywords:["communication","technology"],char:'📠',fitzpatrick_scale:false,category:"objects"},tv:{keywords:["technology","program","oldschool","show","television"],char:'📺',fitzpatrick_scale:false,category:"objects"},radio:{keywords:["communication","music","podcast","program"],char:'📻',fitzpatrick_scale:false,category:"objects"},studio_microphone:{keywords:["sing","recording","artist","talkshow"],char:'🎙',fitzpatrick_scale:false,category:"objects"},level_slider:{keywords:["scale"],char:'🎚',fitzpatrick_scale:false,category:"objects"},control_knobs:{keywords:["dial"],char:'🎛',fitzpatrick_scale:false,category:"objects"},compass:{keywords:["magnetic","navigation","orienteering"],char:'🧭',fitzpatrick_scale:false,category:"objects"},stopwatch:{keywords:["time","deadline"],char:'⏱',fitzpatrick_scale:false,category:"objects"},timer_clock:{keywords:["alarm"],char:'⏲',fitzpatrick_scale:false,category:"objects"},alarm_clock:{keywords:["time","wake"],char:'⏰',fitzpatrick_scale:false,category:"objects"},mantelpiece_clock:{keywords:["time"],char:'🕰',fitzpatrick_scale:false,category:"objects"},hourglass_flowing_sand:{keywords:["oldschool","time","countdown"],char:'⏳',fitzpatrick_scale:false,category:"objects"},hourglass:{keywords:["time","clock","oldschool","limit","exam","quiz","test"],char:'⌛',fitzpatrick_scale:false,category:"objects"},satellite:{keywords:["communication","future","radio","space"],char:'📡',fitzpatrick_scale:false,category:"objects"},battery:{keywords:["power","energy","sustain"],char:'🔋',fitzpatrick_scale:false,category:"objects"},electric_plug:{keywords:["charger","power"],char:'🔌',fitzpatrick_scale:false,category:"objects"},bulb:{keywords:["light","electricity","idea"],char:'💡',fitzpatrick_scale:false,category:"objects"},flashlight:{keywords:["dark","camping","sight","night"],char:'🔦',fitzpatrick_scale:false,category:"objects"},candle:{keywords:["fire","wax"],char:'🕯',fitzpatrick_scale:false,category:"objects"},fire_extinguisher:{keywords:["quench"],char:'🧯',fitzpatrick_scale:false,category:"objects"},wastebasket:{keywords:["bin","trash","rubbish","garbage","toss"],char:'🗑',fitzpatrick_scale:false,category:"objects"},oil_drum:{keywords:["barrell"],char:'🛢',fitzpatrick_scale:false,category:"objects"},money_with_wings:{keywords:["dollar","bills","payment","sale"],char:'💸',fitzpatrick_scale:false,category:"objects"},dollar:{keywords:["money","sales","bill","currency"],char:'💵',fitzpatrick_scale:false,category:"objects"},yen:{keywords:["money","sales","japanese","dollar","currency"],char:'💴',fitzpatrick_scale:false,category:"objects"},euro:{keywords:["money","sales","dollar","currency"],char:'💶',fitzpatrick_scale:false,category:"objects"},pound:{keywords:["british","sterling","money","sales","bills","uk","england","currency"],char:'💷',fitzpatrick_scale:false,category:"objects"},moneybag:{keywords:["dollar","payment","coins","sale"],char:'💰',fitzpatrick_scale:false,category:"objects"},credit_card:{keywords:["money","sales","dollar","bill","payment","shopping"],char:'💳',fitzpatrick_scale:false,category:"objects"},gem:{keywords:["blue","ruby","diamond","jewelry"],char:'💎',fitzpatrick_scale:false,category:"objects"},balance_scale:{keywords:["law","fairness","weight"],char:'⚖',fitzpatrick_scale:false,category:"objects"},toolbox:{keywords:["tools","diy","fix","maintainer","mechanic"],char:'🧰',fitzpatrick_scale:false,category:"objects"},wrench:{keywords:["tools","diy","ikea","fix","maintainer"],char:'🔧',fitzpatrick_scale:false,category:"objects"},hammer:{keywords:["tools","build","create"],char:'🔨',fitzpatrick_scale:false,category:"objects"},hammer_and_pick:{keywords:["tools","build","create"],char:'⚒',fitzpatrick_scale:false,category:"objects"},hammer_and_wrench:{keywords:["tools","build","create"],char:'🛠',fitzpatrick_scale:false,category:"objects"},pick:{keywords:["tools","dig"],char:'⛏',fitzpatrick_scale:false,category:"objects"},nut_and_bolt:{keywords:["handy","tools","fix"],char:'🔩',fitzpatrick_scale:false,category:"objects"},gear:{keywords:["cog"],char:'⚙',fitzpatrick_scale:false,category:"objects"},brick:{keywords:["bricks"],char:'🧱',fitzpatrick_scale:false,category:"objects"},chains:{keywords:["lock","arrest"],char:'⛓',fitzpatrick_scale:false,category:"objects"},magnet:{keywords:["attraction","magnetic"],char:'🧲',fitzpatrick_scale:false,category:"objects"},gun:{keywords:["violence","weapon","pistol","revolver"],char:'🔫',fitzpatrick_scale:false,category:"objects"},bomb:{keywords:["boom","explode","explosion","terrorism"],char:'💣',fitzpatrick_scale:false,category:"objects"},firecracker:{keywords:["dynamite","boom","explode","explosion","explosive"],char:'🧨',fitzpatrick_scale:false,category:"objects"},hocho:{keywords:["knife","blade","cutlery","kitchen","weapon"],char:'🔪',fitzpatrick_scale:false,category:"objects"},dagger:{keywords:["weapon"],char:'🗡',fitzpatrick_scale:false,category:"objects"},crossed_swords:{keywords:["weapon"],char:'⚔',fitzpatrick_scale:false,category:"objects"},shield:{keywords:["protection","security"],char:'🛡',fitzpatrick_scale:false,category:"objects"},smoking:{keywords:["kills","tobacco","cigarette","joint","smoke"],char:'🚬',fitzpatrick_scale:false,category:"objects"},skull_and_crossbones:{keywords:["poison","danger","deadly","scary","death","pirate","evil"],char:'☠',fitzpatrick_scale:false,category:"objects"},coffin:{keywords:["vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],char:'⚰',fitzpatrick_scale:false,category:"objects"},funeral_urn:{keywords:["dead","die","death","rip","ashes"],char:'⚱',fitzpatrick_scale:false,category:"objects"},amphora:{keywords:["vase","jar"],char:'🏺',fitzpatrick_scale:false,category:"objects"},crystal_ball:{keywords:["disco","party","magic","circus","fortune_teller"],char:'🔮',fitzpatrick_scale:false,category:"objects"},prayer_beads:{keywords:["dhikr","religious"],char:'📿',fitzpatrick_scale:false,category:"objects"},nazar_amulet:{keywords:["bead","charm"],char:'🧿',fitzpatrick_scale:false,category:"objects"},barber:{keywords:["hair","salon","style"],char:'💈',fitzpatrick_scale:false,category:"objects"},alembic:{keywords:["distilling","science","experiment","chemistry"],char:'⚗',fitzpatrick_scale:false,category:"objects"},telescope:{keywords:["stars","space","zoom","science","astronomy"],char:'🔭',fitzpatrick_scale:false,category:"objects"},microscope:{keywords:["laboratory","experiment","zoomin","science","study"],char:'🔬',fitzpatrick_scale:false,category:"objects"},hole:{keywords:["embarrassing"],char:'🕳',fitzpatrick_scale:false,category:"objects"},pill:{keywords:["health","medicine","doctor","pharmacy","drug"],char:'💊',fitzpatrick_scale:false,category:"objects"},syringe:{keywords:["health","hospital","drugs","blood","medicine","needle","doctor","nurse"],char:'💉',fitzpatrick_scale:false,category:"objects"},dna:{keywords:["biologist","genetics","life"],char:'🧬',fitzpatrick_scale:false,category:"objects"},microbe:{keywords:["amoeba","bacteria","germs"],char:'🦠',fitzpatrick_scale:false,category:"objects"},petri_dish:{keywords:["bacteria","biology","culture","lab"],char:'🧫',fitzpatrick_scale:false,category:"objects"},test_tube:{keywords:["chemistry","experiment","lab","science"],char:'🧪',fitzpatrick_scale:false,category:"objects"},thermometer:{keywords:["weather","temperature","hot","cold"],char:'🌡',fitzpatrick_scale:false,category:"objects"},broom:{keywords:["cleaning","sweeping","witch"],char:'🧹',fitzpatrick_scale:false,category:"objects"},basket:{keywords:["laundry"],char:'🧺',fitzpatrick_scale:false,category:"objects"},toilet_paper:{keywords:["roll"],char:'🧻',fitzpatrick_scale:false,category:"objects"},label:{keywords:["sale","tag"],char:'🏷',fitzpatrick_scale:false,category:"objects"},bookmark:{keywords:["favorite","label","save"],char:'🔖',fitzpatrick_scale:false,category:"objects"},toilet:{keywords:["restroom","wc","washroom","bathroom","potty"],char:'🚽',fitzpatrick_scale:false,category:"objects"},shower:{keywords:["clean","water","bathroom"],char:'🚿',fitzpatrick_scale:false,category:"objects"},bathtub:{keywords:["clean","shower","bathroom"],char:'🛁',fitzpatrick_scale:false,category:"objects"},soap:{keywords:["bar","bathing","cleaning","lather"],char:'🧼',fitzpatrick_scale:false,category:"objects"},sponge:{keywords:["absorbing","cleaning","porous"],char:'🧽',fitzpatrick_scale:false,category:"objects"},lotion_bottle:{keywords:["moisturizer","sunscreen"],char:'🧴',fitzpatrick_scale:false,category:"objects"},key:{keywords:["lock","door","password"],char:'🔑',fitzpatrick_scale:false,category:"objects"},old_key:{keywords:["lock","door","password"],char:'🗝',fitzpatrick_scale:false,category:"objects"},couch_and_lamp:{keywords:["read","chill"],char:'🛋',fitzpatrick_scale:false,category:"objects"},sleeping_bed:{keywords:["bed","rest"],char:'🛌',fitzpatrick_scale:true,category:"objects"},bed:{keywords:["sleep","rest"],char:'🛏',fitzpatrick_scale:false,category:"objects"},door:{keywords:["house","entry","exit"],char:'🚪',fitzpatrick_scale:false,category:"objects"},bellhop_bell:{keywords:["service"],char:'🛎',fitzpatrick_scale:false,category:"objects"},teddy_bear:{keywords:["plush","stuffed"],char:'🧸',fitzpatrick_scale:false,category:"objects"},framed_picture:{keywords:["photography"],char:'🖼',fitzpatrick_scale:false,category:"objects"},world_map:{keywords:["location","direction"],char:'🗺',fitzpatrick_scale:false,category:"objects"},parasol_on_ground:{keywords:["weather","summer"],char:'⛱',fitzpatrick_scale:false,category:"objects"},moyai:{keywords:["rock","easter island","moai"],char:'🗿',fitzpatrick_scale:false,category:"objects"},shopping:{keywords:["mall","buy","purchase"],char:'🛍',fitzpatrick_scale:false,category:"objects"},shopping_cart:{keywords:["trolley"],char:'🛒',fitzpatrick_scale:false,category:"objects"},balloon:{keywords:["party","celebration","birthday","circus"],char:'🎈',fitzpatrick_scale:false,category:"objects"},flags:{keywords:["fish","japanese","koinobori","carp","banner"],char:'🎏',fitzpatrick_scale:false,category:"objects"},ribbon:{keywords:["decoration","pink","girl","bowtie"],char:'🎀',fitzpatrick_scale:false,category:"objects"},gift:{keywords:["present","birthday","christmas","xmas"],char:'🎁',fitzpatrick_scale:false,category:"objects"},confetti_ball:{keywords:["festival","party","birthday","circus"],char:'🎊',fitzpatrick_scale:false,category:"objects"},tada:{keywords:["party","congratulations","birthday","magic","circus","celebration"],char:'🎉',fitzpatrick_scale:false,category:"objects"},dolls:{keywords:["japanese","toy","kimono"],char:'🎎',fitzpatrick_scale:false,category:"objects"},wind_chime:{keywords:["nature","ding","spring","bell"],char:'🎐',fitzpatrick_scale:false,category:"objects"},crossed_flags:{keywords:["japanese","nation","country","border"],char:'🎌',fitzpatrick_scale:false,category:"objects"},izakaya_lantern:{keywords:["light","paper","halloween","spooky"],char:'🏮',fitzpatrick_scale:false,category:"objects"},red_envelope:{keywords:["gift"],char:'🧧',fitzpatrick_scale:false,category:"objects"},email:{keywords:["letter","postal","inbox","communication"],char:'✉️',fitzpatrick_scale:false,category:"objects"},envelope_with_arrow:{keywords:["email","communication"],char:'📩',fitzpatrick_scale:false,category:"objects"},incoming_envelope:{keywords:["email","inbox"],char:'📨',fitzpatrick_scale:false,category:"objects"},"e-mail":{keywords:["communication","inbox"],char:'📧',fitzpatrick_scale:false,category:"objects"},love_letter:{keywords:["email","like","affection","envelope","valentines"],char:'💌',fitzpatrick_scale:false,category:"objects"},postbox:{keywords:["email","letter","envelope"],char:'📮',fitzpatrick_scale:false,category:"objects"},mailbox_closed:{keywords:["email","communication","inbox"],char:'📪',fitzpatrick_scale:false,category:"objects"},mailbox:{keywords:["email","inbox","communication"],char:'📫',fitzpatrick_scale:false,category:"objects"},mailbox_with_mail:{keywords:["email","inbox","communication"],char:'📬',fitzpatrick_scale:false,category:"objects"},mailbox_with_no_mail:{keywords:["email","inbox"],char:'📭',fitzpatrick_scale:false,category:"objects"},package:{keywords:["mail","gift","cardboard","box","moving"],char:'📦',fitzpatrick_scale:false,category:"objects"},postal_horn:{keywords:["instrument","music"],char:'📯',fitzpatrick_scale:false,category:"objects"},inbox_tray:{keywords:["email","documents"],char:'📥',fitzpatrick_scale:false,category:"objects"},outbox_tray:{keywords:["inbox","email"],char:'📤',fitzpatrick_scale:false,category:"objects"},scroll:{keywords:["documents","ancient","history","paper"],char:'📜',fitzpatrick_scale:false,category:"objects"},page_with_curl:{keywords:["documents","office","paper"],char:'📃',fitzpatrick_scale:false,category:"objects"},bookmark_tabs:{keywords:["favorite","save","order","tidy"],char:'📑',fitzpatrick_scale:false,category:"objects"},receipt:{keywords:["accounting","expenses"],char:'🧾',fitzpatrick_scale:false,category:"objects"},bar_chart:{keywords:["graph","presentation","stats"],char:'📊',fitzpatrick_scale:false,category:"objects"},chart_with_upwards_trend:{keywords:["graph","presentation","stats","recovery","business","economics","money","sales","good","success"],char:'📈',fitzpatrick_scale:false,category:"objects"},chart_with_downwards_trend:{keywords:["graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],char:'📉',fitzpatrick_scale:false,category:"objects"},page_facing_up:{keywords:["documents","office","paper","information"],char:'📄',fitzpatrick_scale:false,category:"objects"},date:{keywords:["calendar","schedule"],char:'📅',fitzpatrick_scale:false,category:"objects"},calendar:{keywords:["schedule","date","planning"],char:'📆',fitzpatrick_scale:false,category:"objects"},spiral_calendar:{keywords:["date","schedule","planning"],char:'🗓',fitzpatrick_scale:false,category:"objects"},card_index:{keywords:["business","stationery"],char:'📇',fitzpatrick_scale:false,category:"objects"},card_file_box:{keywords:["business","stationery"],char:'🗃',fitzpatrick_scale:false,category:"objects"},ballot_box:{keywords:["election","vote"],char:'🗳',fitzpatrick_scale:false,category:"objects"},file_cabinet:{keywords:["filing","organizing"],char:'🗄',fitzpatrick_scale:false,category:"objects"},clipboard:{keywords:["stationery","documents"],char:'📋',fitzpatrick_scale:false,category:"objects"},spiral_notepad:{keywords:["memo","stationery"],char:'🗒',fitzpatrick_scale:false,category:"objects"},file_folder:{keywords:["documents","business","office"],char:'📁',fitzpatrick_scale:false,category:"objects"},open_file_folder:{keywords:["documents","load"],char:'📂',fitzpatrick_scale:false,category:"objects"},card_index_dividers:{keywords:["organizing","business","stationery"],char:'🗂',fitzpatrick_scale:false,category:"objects"},newspaper_roll:{keywords:["press","headline"],char:'🗞',fitzpatrick_scale:false,category:"objects"},newspaper:{keywords:["press","headline"],char:'📰',fitzpatrick_scale:false,category:"objects"},notebook:{keywords:["stationery","record","notes","paper","study"],char:'📓',fitzpatrick_scale:false,category:"objects"},closed_book:{keywords:["read","library","knowledge","textbook","learn"],char:'📕',fitzpatrick_scale:false,category:"objects"},green_book:{keywords:["read","library","knowledge","study"],char:'📗',fitzpatrick_scale:false,category:"objects"},blue_book:{keywords:["read","library","knowledge","learn","study"],char:'📘',fitzpatrick_scale:false,category:"objects"},orange_book:{keywords:["read","library","knowledge","textbook","study"],char:'📙',fitzpatrick_scale:false,category:"objects"},notebook_with_decorative_cover:{keywords:["classroom","notes","record","paper","study"],char:'📔',fitzpatrick_scale:false,category:"objects"},ledger:{keywords:["notes","paper"],char:'📒',fitzpatrick_scale:false,category:"objects"},books:{keywords:["literature","library","study"],char:'📚',fitzpatrick_scale:false,category:"objects"},open_book:{keywords:["book","read","library","knowledge","literature","learn","study"],char:'📖',fitzpatrick_scale:false,category:"objects"},safety_pin:{keywords:["diaper"],char:'🧷',fitzpatrick_scale:false,category:"objects"},link:{keywords:["rings","url"],char:'🔗',fitzpatrick_scale:false,category:"objects"},paperclip:{keywords:["documents","stationery"],char:'📎',fitzpatrick_scale:false,category:"objects"},paperclips:{keywords:["documents","stationery"],char:'🖇',fitzpatrick_scale:false,category:"objects"},scissors:{keywords:["stationery","cut"],char:'✂️',fitzpatrick_scale:false,category:"objects"},triangular_ruler:{keywords:["stationery","math","architect","sketch"],char:'📐',fitzpatrick_scale:false,category:"objects"},straight_ruler:{keywords:["stationery","calculate","length","math","school","drawing","architect","sketch"],char:'📏',fitzpatrick_scale:false,category:"objects"},abacus:{keywords:["calculation"],char:'🧮',fitzpatrick_scale:false,category:"objects"},pushpin:{keywords:["stationery","mark","here"],char:'📌',fitzpatrick_scale:false,category:"objects"},round_pushpin:{keywords:["stationery","location","map","here"],char:'📍',fitzpatrick_scale:false,category:"objects"},triangular_flag_on_post:{keywords:["mark","milestone","place"],char:'🚩',fitzpatrick_scale:false,category:"objects"},white_flag:{keywords:["losing","loser","lost","surrender","give up","fail"],char:'🏳',fitzpatrick_scale:false,category:"objects"},black_flag:{keywords:["pirate"],char:'🏴',fitzpatrick_scale:false,category:"objects"},rainbow_flag:{keywords:["flag","rainbow","pride","gay","lgbt","glbt","queer","homosexual","lesbian","bisexual","transgender"],char:'🏳️‍🌈',fitzpatrick_scale:false,category:"objects"},closed_lock_with_key:{keywords:["security","privacy"],char:'🔐',fitzpatrick_scale:false,category:"objects"},lock:{keywords:["security","password","padlock"],char:'🔒',fitzpatrick_scale:false,category:"objects"},unlock:{keywords:["privacy","security"],char:'🔓',fitzpatrick_scale:false,category:"objects"},lock_with_ink_pen:{keywords:["security","secret"],char:'🔏',fitzpatrick_scale:false,category:"objects"},pen:{keywords:["stationery","writing","write"],char:'🖊',fitzpatrick_scale:false,category:"objects"},fountain_pen:{keywords:["stationery","writing","write"],char:'🖋',fitzpatrick_scale:false,category:"objects"},black_nib:{keywords:["pen","stationery","writing","write"],char:'✒️',fitzpatrick_scale:false,category:"objects"},memo:{keywords:["write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],char:'📝',fitzpatrick_scale:false,category:"objects"},pencil2:{keywords:["stationery","write","paper","writing","school","study"],char:'✏️',fitzpatrick_scale:false,category:"objects"},crayon:{keywords:["drawing","creativity"],char:'🖍',fitzpatrick_scale:false,category:"objects"},paintbrush:{keywords:["drawing","creativity","art"],char:'🖌',fitzpatrick_scale:false,category:"objects"},mag:{keywords:["Buscar","zoom","find","detective"],char:'🔍',fitzpatrick_scale:false,category:"objects"},mag_right:{keywords:["Buscar","zoom","find","detective"],char:'🔎',fitzpatrick_scale:false,category:"objects"},heart:{keywords:["love","like","valentines"],char:'❤️',fitzpatrick_scale:false,category:"symbols"},orange_heart:{keywords:["love","like","affection","valentines"],char:'🧡',fitzpatrick_scale:false,category:"symbols"},yellow_heart:{keywords:["love","like","affection","valentines"],char:'💛',fitzpatrick_scale:false,category:"symbols"},green_heart:{keywords:["love","like","affection","valentines"],char:'💚',fitzpatrick_scale:false,category:"symbols"},blue_heart:{keywords:["love","like","affection","valentines"],char:'💙',fitzpatrick_scale:false,category:"symbols"},purple_heart:{keywords:["love","like","affection","valentines"],char:'💜',fitzpatrick_scale:false,category:"symbols"},black_heart:{keywords:["evil"],char:'🖤',fitzpatrick_scale:false,category:"symbols"},broken_heart:{keywords:["sad","sorry","break","heart","heartbreak"],char:'💔',fitzpatrick_scale:false,category:"symbols"},heavy_heart_exclamation:{keywords:["decoration","love"],char:'❣',fitzpatrick_scale:false,category:"symbols"},two_hearts:{keywords:["love","like","affection","valentines","heart"],char:'💕',fitzpatrick_scale:false,category:"symbols"},revolving_hearts:{keywords:["love","like","affection","valentines"],char:'💞',fitzpatrick_scale:false,category:"symbols"},heartbeat:{keywords:["love","like","affection","valentines","pink","heart"],char:'💓',fitzpatrick_scale:false,category:"symbols"},heartpulse:{keywords:["like","love","affection","valentines","pink"],char:'💗',fitzpatrick_scale:false,category:"symbols"},sparkling_heart:{keywords:["love","like","affection","valentines"],char:'💖',fitzpatrick_scale:false,category:"symbols"},cupid:{keywords:["love","like","heart","affection","valentines"],char:'💘',fitzpatrick_scale:false,category:"symbols"},gift_heart:{keywords:["love","valentines"],char:'💝',fitzpatrick_scale:false,category:"symbols"},heart_decoration:{keywords:["purple-square","love","like"],char:'💟',fitzpatrick_scale:false,category:"symbols"},peace_symbol:{keywords:["hippie"],char:'☮',fitzpatrick_scale:false,category:"symbols"},latin_cross:{keywords:["christianity"],char:'✝',fitzpatrick_scale:false,category:"symbols"},star_and_crescent:{keywords:["islam"],char:'☪',fitzpatrick_scale:false,category:"symbols"},om:{keywords:["hinduism","buddhism","sikhism","jainism"],char:'🕉',fitzpatrick_scale:false,category:"symbols"},wheel_of_dharma:{keywords:["hinduism","buddhism","sikhism","jainism"],char:'☸',fitzpatrick_scale:false,category:"symbols"},star_of_david:{keywords:["judaism"],char:'✡',fitzpatrick_scale:false,category:"symbols"},six_pointed_star:{keywords:["purple-square","religion","jewish","hexagram"],char:'🔯',fitzpatrick_scale:false,category:"symbols"},menorah:{keywords:["hanukkah","candles","jewish"],char:'🕎',fitzpatrick_scale:false,category:"symbols"},yin_yang:{keywords:["balance"],char:'☯',fitzpatrick_scale:false,category:"symbols"},orthodox_cross:{keywords:["suppedaneum","religion"],char:'☦',fitzpatrick_scale:false,category:"symbols"},place_of_worship:{keywords:["religion","church","temple","prayer"],char:'🛐',fitzpatrick_scale:false,category:"symbols"},ophiuchus:{keywords:["sign","purple-square","constellation","astrology"],char:'⛎',fitzpatrick_scale:false,category:"symbols"},aries:{keywords:["sign","purple-square","zodiac","astrology"],char:'♈',fitzpatrick_scale:false,category:"symbols"},taurus:{keywords:["purple-square","sign","zodiac","astrology"],char:'♉',fitzpatrick_scale:false,category:"symbols"},gemini:{keywords:["sign","zodiac","purple-square","astrology"],char:'♊',fitzpatrick_scale:false,category:"symbols"},cancer:{keywords:["sign","zodiac","purple-square","astrology"],char:'♋',fitzpatrick_scale:false,category:"symbols"},leo:{keywords:["sign","purple-square","zodiac","astrology"],char:'♌',fitzpatrick_scale:false,category:"symbols"},virgo:{keywords:["sign","zodiac","purple-square","astrology"],char:'♍',fitzpatrick_scale:false,category:"symbols"},libra:{keywords:["sign","purple-square","zodiac","astrology"],char:'♎',fitzpatrick_scale:false,category:"symbols"},scorpius:{keywords:["sign","zodiac","purple-square","astrology","scorpio"],char:'♏',fitzpatrick_scale:false,category:"symbols"},sagittarius:{keywords:["sign","zodiac","purple-square","astrology"],char:'♐',fitzpatrick_scale:false,category:"symbols"},capricorn:{keywords:["sign","zodiac","purple-square","astrology"],char:'♑',fitzpatrick_scale:false,category:"symbols"},aquarius:{keywords:["sign","purple-square","zodiac","astrology"],char:'♒',fitzpatrick_scale:false,category:"symbols"},pisces:{keywords:["purple-square","sign","zodiac","astrology"],char:'♓',fitzpatrick_scale:false,category:"symbols"},id:{keywords:["purple-square","words"],char:'🆔',fitzpatrick_scale:false,category:"symbols"},atom_symbol:{keywords:["science","physics","chemistry"],char:'⚛',fitzpatrick_scale:false,category:"symbols"},u7a7a:{keywords:["kanji","japanese","chinese","empty","sky","blue-square"],char:'🈳',fitzpatrick_scale:false,category:"symbols"},u5272:{keywords:["cut","divide","chinese","kanji","pink-square"],char:'🈹',fitzpatrick_scale:false,category:"symbols"},radioactive:{keywords:["nuclear","danger"],char:'☢',fitzpatrick_scale:false,category:"symbols"},biohazard:{keywords:["danger"],char:'☣',fitzpatrick_scale:false,category:"symbols"},mobile_phone_off:{keywords:["mute","orange-square","silence","quiet"],char:'📴',fitzpatrick_scale:false,category:"symbols"},vibration_mode:{keywords:["orange-square","phone"],char:'📳',fitzpatrick_scale:false,category:"symbols"},u6709:{keywords:["orange-square","chinese","have","kanji"],char:'🈶',fitzpatrick_scale:false,category:"symbols"},u7121:{keywords:["nothing","chinese","kanji","japanese","orange-square"],char:'🈚',fitzpatrick_scale:false,category:"symbols"},u7533:{keywords:["chinese","japanese","kanji","orange-square"],char:'🈸',fitzpatrick_scale:false,category:"symbols"},u55b6:{keywords:["japanese","opening hours","orange-square"],char:'🈺',fitzpatrick_scale:false,category:"symbols"},u6708:{keywords:["chinese","month","moon","japanese","orange-square","kanji"],char:'🈷️',fitzpatrick_scale:false,category:"symbols"},eight_pointed_black_star:{keywords:["orange-square","shape","polygon"],char:'✴️',fitzpatrick_scale:false,category:"symbols"},vs:{keywords:["words","orange-square"],char:'🆚',fitzpatrick_scale:false,category:"symbols"},accept:{keywords:["ok","good","chinese","kanji","agree","yes","orange-circle"],char:'🉑',fitzpatrick_scale:false,category:"symbols"},white_flower:{keywords:["japanese","spring"],char:'💮',fitzpatrick_scale:false,category:"symbols"},ideograph_advantage:{keywords:["chinese","kanji","obtain","get","circle"],char:'🉐',fitzpatrick_scale:false,category:"symbols"},secret:{keywords:["privacy","chinese","sshh","kanji","red-circle"],char:'㊙️',fitzpatrick_scale:false,category:"symbols"},congratulations:{keywords:["chinese","kanji","japanese","red-circle"],char:'㊗️',fitzpatrick_scale:false,category:"symbols"},u5408:{keywords:["japanese","chinese","join","kanji","red-square"],char:'🈴',fitzpatrick_scale:false,category:"symbols"},u6e80:{keywords:["full","chinese","japanese","red-square","kanji"],char:'🈵',fitzpatrick_scale:false,category:"symbols"},u7981:{keywords:["kanji","japanese","chinese","forbidden","limit","restricted","red-square"],char:'🈲',fitzpatrick_scale:false,category:"symbols"},a:{keywords:["red-square","alphabet","letter"],char:'🅰️',fitzpatrick_scale:false,category:"symbols"},b:{keywords:["red-square","alphabet","letter"],char:'🅱️',fitzpatrick_scale:false,category:"symbols"},ab:{keywords:["red-square","alphabet"],char:'🆎',fitzpatrick_scale:false,category:"symbols"},cl:{keywords:["alphabet","words","red-square"],char:'🆑',fitzpatrick_scale:false,category:"symbols"},o2:{keywords:["alphabet","red-square","letter"],char:'🅾️',fitzpatrick_scale:false,category:"symbols"},sos:{keywords:["help","red-square","words","emergency","911"],char:'🆘',fitzpatrick_scale:false,category:"symbols"},no_entry:{keywords:["limit","security","privacy","bad","denied","stop","circle"],char:'⛔',fitzpatrick_scale:false,category:"symbols"},name_badge:{keywords:["fire","forbid"],char:'📛',fitzpatrick_scale:false,category:"symbols"},no_entry_sign:{keywords:["forbid","stop","limit","denied","disallow","circle"],char:'🚫',fitzpatrick_scale:false,category:"symbols"},x:{keywords:["no","delete","remove","cancel","red"],char:'❌',fitzpatrick_scale:false,category:"symbols"},o:{keywords:["circle","round"],char:'⭕',fitzpatrick_scale:false,category:"symbols"},stop_sign:{keywords:["stop"],char:'🛑',fitzpatrick_scale:false,category:"symbols"},anger:{keywords:["angry","mad"],char:'💢',fitzpatrick_scale:false,category:"symbols"},hotsprings:{keywords:["bath","warm","relax"],char:'♨️',fitzpatrick_scale:false,category:"symbols"},no_pedestrians:{keywords:["rules","crossing","walking","circle"],char:'🚷',fitzpatrick_scale:false,category:"symbols"},do_not_litter:{keywords:["trash","bin","garbage","circle"],char:'🚯',fitzpatrick_scale:false,category:"symbols"},no_bicycles:{keywords:["cyclist","prohibited","circle"],char:'🚳',fitzpatrick_scale:false,category:"symbols"},"non-potable_water":{keywords:["drink","faucet","tap","circle"],char:'🚱',fitzpatrick_scale:false,category:"symbols"},underage:{keywords:["18","drink","pub","night","minor","circle"],char:'🔞',fitzpatrick_scale:false,category:"symbols"},no_mobile_phones:{keywords:["iphone","mute","circle"],char:'📵',fitzpatrick_scale:false,category:"symbols"},exclamation:{keywords:["heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],char:'❗',fitzpatrick_scale:false,category:"symbols"},grey_exclamation:{keywords:["surprise","punctuation","gray","wow","warning"],char:'❕',fitzpatrick_scale:false,category:"symbols"},question:{keywords:["doubt","confused"],char:'❓',fitzpatrick_scale:false,category:"symbols"},grey_question:{keywords:["doubts","gray","huh","confused"],char:'❔',fitzpatrick_scale:false,category:"symbols"},bangbang:{keywords:["exclamation","surprise"],char:'‼️',fitzpatrick_scale:false,category:"symbols"},interrobang:{keywords:["wat","punctuation","surprise"],char:'⁉️',fitzpatrick_scale:false,category:"symbols"},low_brightness:{keywords:["sun","afternoon","warm","summer"],char:'🔅',fitzpatrick_scale:false,category:"symbols"},high_brightness:{keywords:["sun","light"],char:'🔆',fitzpatrick_scale:false,category:"symbols"},trident:{keywords:["weapon","spear"],char:'🔱',fitzpatrick_scale:false,category:"symbols"},fleur_de_lis:{keywords:["decorative","scout"],char:'⚜',fitzpatrick_scale:false,category:"symbols"},part_alternation_mark:{keywords:["graph","presentation","stats","business","economics","bad"],char:'〽️',fitzpatrick_scale:false,category:"symbols"},warning:{keywords:["exclamation","wip","alert","error","problem","issue"],char:'⚠️',fitzpatrick_scale:false,category:"symbols"},children_crossing:{keywords:["school","warning","danger","sign","driving","yellow-diamond"],char:'🚸',fitzpatrick_scale:false,category:"symbols"},beginner:{keywords:["badge","shield"],char:'🔰',fitzpatrick_scale:false,category:"symbols"},recycle:{keywords:["arrow","environment","garbage","trash"],char:'♻️',fitzpatrick_scale:false,category:"symbols"},u6307:{keywords:["chinese","point","green-square","kanji"],char:'🈯',fitzpatrick_scale:false,category:"symbols"},chart:{keywords:["green-square","graph","presentation","stats"],char:'💹',fitzpatrick_scale:false,category:"symbols"},sparkle:{keywords:["stars","green-square","awesome","good","fireworks"],char:'❇️',fitzpatrick_scale:false,category:"symbols"},eight_spoked_asterisk:{keywords:["star","sparkle","green-square"],char:'✳️',fitzpatrick_scale:false,category:"symbols"},negative_squared_cross_mark:{keywords:["x","green-square","no","deny"],char:'❎',fitzpatrick_scale:false,category:"symbols"},white_check_mark:{keywords:["green-square","ok","agree","vote","election","answer","tick"],char:'✅',fitzpatrick_scale:false,category:"symbols"},diamond_shape_with_a_dot_inside:{keywords:["jewel","blue","gem","crystal","fancy"],char:'💠',fitzpatrick_scale:false,category:"symbols"},cyclone:{keywords:["weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],char:'🌀',fitzpatrick_scale:false,category:"symbols"},loop:{keywords:["tape","cassette"],char:'➿',fitzpatrick_scale:false,category:"symbols"},globe_with_meridians:{keywords:["earth","international","world","internet","interweb","i18n"],char:'🌐',fitzpatrick_scale:false,category:"symbols"},m:{keywords:["alphabet","blue-circle","letter"],char:'Ⓜ️',fitzpatrick_scale:false,category:"symbols"},atm:{keywords:["money","sales","cash","blue-square","payment","bank"],char:'🏧',fitzpatrick_scale:false,category:"symbols"},sa:{keywords:["japanese","blue-square","katakana"],char:'🈂️',fitzpatrick_scale:false,category:"symbols"},passport_control:{keywords:["custom","blue-square"],char:'🛂',fitzpatrick_scale:false,category:"symbols"},customs:{keywords:["passport","border","blue-square"],char:'🛃',fitzpatrick_scale:false,category:"symbols"},baggage_claim:{keywords:["blue-square","airport","transport"],char:'🛄',fitzpatrick_scale:false,category:"symbols"},left_luggage:{keywords:["blue-square","travel"],char:'🛅',fitzpatrick_scale:false,category:"symbols"},wheelchair:{keywords:["blue-square","disabled","a11y","accessibility"],char:'♿',fitzpatrick_scale:false,category:"symbols"},no_smoking:{keywords:["cigarette","blue-square","smell","smoke"],char:'🚭',fitzpatrick_scale:false,category:"symbols"},wc:{keywords:["toilet","restroom","blue-square"],char:'🚾',fitzpatrick_scale:false,category:"symbols"},parking:{keywords:["cars","blue-square","alphabet","letter"],char:'🅿️',fitzpatrick_scale:false,category:"symbols"},potable_water:{keywords:["blue-square","liquid","restroom","cleaning","faucet"],char:'🚰',fitzpatrick_scale:false,category:"symbols"},mens:{keywords:["toilet","restroom","wc","blue-square","gender","male"],char:'🚹',fitzpatrick_scale:false,category:"symbols"},womens:{keywords:["purple-square","woman","female","toilet","loo","restroom","gender"],char:'🚺',fitzpatrick_scale:false,category:"symbols"},baby_symbol:{keywords:["orange-square","child"],char:'🚼',fitzpatrick_scale:false,category:"symbols"},restroom:{keywords:["blue-square","toilet","refresh","wc","gender"],char:'🚻',fitzpatrick_scale:false,category:"symbols"},put_litter_in_its_place:{keywords:["blue-square","sign","human","info"],char:'🚮',fitzpatrick_scale:false,category:"symbols"},cinema:{keywords:["blue-square","record","film","movie","curtain","stage","theater"],char:'🎦',fitzpatrick_scale:false,category:"symbols"},signal_strength:{keywords:["blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],char:'📶',fitzpatrick_scale:false,category:"symbols"},koko:{keywords:["blue-square","here","katakana","japanese","destination"],char:'🈁',fitzpatrick_scale:false,category:"symbols"},ng:{keywords:["blue-square","words","shape","icon"],char:'🆖',fitzpatrick_scale:false,category:"symbols"},ok:{keywords:["good","agree","yes","blue-square"],char:'🆗',fitzpatrick_scale:false,category:"symbols"},up:{keywords:["blue-square","above","high"],char:'🆙',fitzpatrick_scale:false,category:"symbols"},cool:{keywords:["words","blue-square"],char:'🆒',fitzpatrick_scale:false,category:"symbols"},new:{keywords:["blue-square","words","start"],char:'🆕',fitzpatrick_scale:false,category:"symbols"},free:{keywords:["blue-square","words"],char:'🆓',fitzpatrick_scale:false,category:"symbols"},zero:{keywords:["0","numbers","blue-square","null"],char:'0️⃣',fitzpatrick_scale:false,category:"symbols"},one:{keywords:["blue-square","numbers","1"],char:'1️⃣',fitzpatrick_scale:false,category:"symbols"},two:{keywords:["numbers","2","prime","blue-square"],char:'2️⃣',fitzpatrick_scale:false,category:"symbols"},three:{keywords:["3","numbers","prime","blue-square"],char:'3️⃣',fitzpatrick_scale:false,category:"symbols"},four:{keywords:["4","numbers","blue-square"],char:'4️⃣',fitzpatrick_scale:false,category:"symbols"},five:{keywords:["5","numbers","blue-square","prime"],char:'5️⃣',fitzpatrick_scale:false,category:"symbols"},six:{keywords:["6","numbers","blue-square"],char:'6️⃣',fitzpatrick_scale:false,category:"symbols"},seven:{keywords:["7","numbers","blue-square","prime"],char:'7️⃣',fitzpatrick_scale:false,category:"symbols"},eight:{keywords:["8","blue-square","numbers"],char:'8️⃣',fitzpatrick_scale:false,category:"symbols"},nine:{keywords:["blue-square","numbers","9"],char:'9️⃣',fitzpatrick_scale:false,category:"symbols"},keycap_ten:{keywords:["numbers","10","blue-square"],char:'🔟',fitzpatrick_scale:false,category:"symbols"},asterisk:{keywords:["star","keycap"],char:'*⃣',fitzpatrick_scale:false,category:"symbols"},eject_button:{keywords:["blue-square"],char:'⏏️',fitzpatrick_scale:false,category:"symbols"},arrow_forward:{keywords:["blue-square","right","direction","play"],char:'▶️',fitzpatrick_scale:false,category:"symbols"},pause_button:{keywords:["pause","blue-square"],char:'⏸',fitzpatrick_scale:false,category:"symbols"},next_track_button:{keywords:["forward","next","blue-square"],char:'⏭',fitzpatrick_scale:false,category:"symbols"},stop_button:{keywords:["blue-square"],char:'⏹',fitzpatrick_scale:false,category:"symbols"},record_button:{keywords:["blue-square"],char:'⏺',fitzpatrick_scale:false,category:"symbols"},play_or_pause_button:{keywords:["blue-square","play","pause"],char:'⏯',fitzpatrick_scale:false,category:"symbols"},previous_track_button:{keywords:["backward"],char:'⏮',fitzpatrick_scale:false,category:"symbols"},fast_forward:{keywords:["blue-square","play","speed","continue"],char:'⏩',fitzpatrick_scale:false,category:"symbols"},rewind:{keywords:["play","blue-square"],char:'⏪',fitzpatrick_scale:false,category:"symbols"},twisted_rightwards_arrows:{keywords:["blue-square","shuffle","music","random"],char:'🔀',fitzpatrick_scale:false,category:"symbols"},repeat:{keywords:["loop","record"],char:'🔁',fitzpatrick_scale:false,category:"symbols"},repeat_one:{keywords:["blue-square","loop"],char:'🔂',fitzpatrick_scale:false,category:"symbols"},arrow_backward:{keywords:["blue-square","left","direction"],char:'◀️',fitzpatrick_scale:false,category:"symbols"},arrow_up_small:{keywords:["blue-square","triangle","direction","point","forward","top"],char:'🔼',fitzpatrick_scale:false,category:"symbols"},arrow_down_small:{keywords:["blue-square","direction","bottom"],char:'🔽',fitzpatrick_scale:false,category:"symbols"},arrow_double_up:{keywords:["blue-square","direction","top"],char:'⏫',fitzpatrick_scale:false,category:"symbols"},arrow_double_down:{keywords:["blue-square","direction","bottom"],char:'⏬',fitzpatrick_scale:false,category:"symbols"},arrow_right:{keywords:["blue-square","next"],char:'➡️',fitzpatrick_scale:false,category:"symbols"},arrow_left:{keywords:["blue-square","previous","back"],char:'⬅️',fitzpatrick_scale:false,category:"symbols"},arrow_up:{keywords:["blue-square","continue","top","direction"],char:'⬆️',fitzpatrick_scale:false,category:"symbols"},arrow_down:{keywords:["blue-square","direction","bottom"],char:'⬇️',fitzpatrick_scale:false,category:"symbols"},arrow_upper_right:{keywords:["blue-square","point","direction","diagonal","northeast"],char:'↗️',fitzpatrick_scale:false,category:"symbols"},arrow_lower_right:{keywords:["blue-square","direction","diagonal","southeast"],char:'↘️',fitzpatrick_scale:false,category:"symbols"},arrow_lower_left:{keywords:["blue-square","direction","diagonal","southwest"],char:'↙️',fitzpatrick_scale:false,category:"symbols"},arrow_upper_left:{keywords:["blue-square","point","direction","diagonal","northwest"],char:'↖️',fitzpatrick_scale:false,category:"symbols"},arrow_up_down:{keywords:["blue-square","direction","way","vertical"],char:'↕️',fitzpatrick_scale:false,category:"symbols"},left_right_arrow:{keywords:["shape","direction","horizontal","sideways"],char:'↔️',fitzpatrick_scale:false,category:"symbols"},arrows_counterclockwise:{keywords:["blue-square","sync","cycle"],char:'🔄',fitzpatrick_scale:false,category:"symbols"},arrow_right_hook:{keywords:["blue-square","return","rotate","direction"],char:'↪️',fitzpatrick_scale:false,category:"symbols"},leftwards_arrow_with_hook:{keywords:["back","return","blue-square","undo","enter"],char:'↩️',fitzpatrick_scale:false,category:"symbols"},arrow_heading_up:{keywords:["blue-square","direction","top"],char:'⤴️',fitzpatrick_scale:false,category:"symbols"},arrow_heading_down:{keywords:["blue-square","direction","bottom"],char:'⤵️',fitzpatrick_scale:false,category:"symbols"},hash:{keywords:["symbol","blue-square","twitter"],char:'#️⃣',fitzpatrick_scale:false,category:"symbols"},information_source:{keywords:["blue-square","alphabet","letter"],char:'ℹ️',fitzpatrick_scale:false,category:"symbols"},abc:{keywords:["blue-square","alphabet"],char:'🔤',fitzpatrick_scale:false,category:"symbols"},abcd:{keywords:["blue-square","alphabet"],char:'🔡',fitzpatrick_scale:false,category:"symbols"},capital_abcd:{keywords:["alphabet","words","blue-square"],char:'🔠',fitzpatrick_scale:false,category:"symbols"},symbols:{keywords:["blue-square","music","note","ampersand","percent","glyphs","characters"],char:'🔣',fitzpatrick_scale:false,category:"symbols"},musical_note:{keywords:["score","tone","sound"],char:'🎵',fitzpatrick_scale:false,category:"symbols"},notes:{keywords:["music","score"],char:'🎶',fitzpatrick_scale:false,category:"symbols"},wavy_dash:{keywords:["draw","line","moustache","mustache","squiggle","scribble"],char:'〰️',fitzpatrick_scale:false,category:"symbols"},curly_loop:{keywords:["scribble","draw","shape","squiggle"],char:'➰',fitzpatrick_scale:false,category:"symbols"},heavy_check_mark:{keywords:["ok","nike","answer","yes","tick"],char:'✔️',fitzpatrick_scale:false,category:"symbols"},arrows_clockwise:{keywords:["sync","cycle","round","repeat"],char:'🔃',fitzpatrick_scale:false,category:"symbols"},heavy_plus_sign:{keywords:["math","calculation","addition","more","increase"],char:'➕',fitzpatrick_scale:false,category:"symbols"},heavy_minus_sign:{keywords:["math","calculation","subtract","less"],char:'➖',fitzpatrick_scale:false,category:"symbols"},heavy_division_sign:{keywords:["divide","math","calculation"],char:'➗',fitzpatrick_scale:false,category:"symbols"},heavy_multiplication_x:{keywords:["math","calculation"],char:'✖️',fitzpatrick_scale:false,category:"symbols"},infinity:{keywords:["forever"],char:'♾',fitzpatrick_scale:false,category:"symbols"},heavy_dollar_sign:{keywords:["money","sales","payment","currency","buck"],char:'💲',fitzpatrick_scale:false,category:"symbols"},currency_exchange:{keywords:["money","sales","dollar","travel"],char:'💱',fitzpatrick_scale:false,category:"symbols"},copyright:{keywords:["ip","license","circle","law","legal"],char:'©️',fitzpatrick_scale:false,category:"symbols"},Registroed:{keywords:["alphabet","circle"],char:'®️',fitzpatrick_scale:false,category:"symbols"},tm:{keywords:["trademark","brand","law","legal"],char:'™️',fitzpatrick_scale:false,category:"symbols"},end:{keywords:["words","arrow"],char:'🔚',fitzpatrick_scale:false,category:"symbols"},back:{keywords:["arrow","words","return"],char:'🔙',fitzpatrick_scale:false,category:"symbols"},on:{keywords:["arrow","words"],char:'🔛',fitzpatrick_scale:false,category:"symbols"},top:{keywords:["words","blue-square"],char:'🔝',fitzpatrick_scale:false,category:"symbols"},soon:{keywords:["arrow","words"],char:'🔜',fitzpatrick_scale:false,category:"symbols"},ballot_box_with_check:{keywords:["ok","agree","confirm","black-square","vote","election","yes","tick"],char:'☑️',fitzpatrick_scale:false,category:"symbols"},radio_button:{keywords:["input","old","music","circle"],char:'🔘',fitzpatrick_scale:false,category:"symbols"},white_circle:{keywords:["shape","round"],char:'⚪',fitzpatrick_scale:false,category:"symbols"},black_circle:{keywords:["shape","button","round"],char:'⚫',fitzpatrick_scale:false,category:"symbols"},red_circle:{keywords:["shape","error","danger"],char:'🔴',fitzpatrick_scale:false,category:"symbols"},large_blue_circle:{keywords:["shape","icon","button"],char:'🔵',fitzpatrick_scale:false,category:"symbols"},small_orange_diamond:{keywords:["shape","jewel","gem"],char:'🔸',fitzpatrick_scale:false,category:"symbols"},small_blue_diamond:{keywords:["shape","jewel","gem"],char:'🔹',fitzpatrick_scale:false,category:"symbols"},large_orange_diamond:{keywords:["shape","jewel","gem"],char:'🔶',fitzpatrick_scale:false,category:"symbols"},large_blue_diamond:{keywords:["shape","jewel","gem"],char:'🔷',fitzpatrick_scale:false,category:"symbols"},small_red_triangle:{keywords:["shape","direction","up","top"],char:'🔺',fitzpatrick_scale:false,category:"symbols"},black_small_square:{keywords:["shape","icon"],char:'▪️',fitzpatrick_scale:false,category:"symbols"},white_small_square:{keywords:["shape","icon"],char:'▫️',fitzpatrick_scale:false,category:"symbols"},black_large_square:{keywords:["shape","icon","button"],char:'⬛',fitzpatrick_scale:false,category:"symbols"},white_large_square:{keywords:["shape","icon","stone","button"],char:'⬜',fitzpatrick_scale:false,category:"symbols"},small_red_triangle_down:{keywords:["shape","direction","bottom"],char:'🔻',fitzpatrick_scale:false,category:"symbols"},black_medium_square:{keywords:["shape","button","icon"],char:'◼️',fitzpatrick_scale:false,category:"symbols"},white_medium_square:{keywords:["shape","stone","icon"],char:'◻️',fitzpatrick_scale:false,category:"symbols"},black_medium_small_square:{keywords:["icon","shape","button"],char:'◾',fitzpatrick_scale:false,category:"symbols"},white_medium_small_square:{keywords:["shape","stone","icon","button"],char:'◽',fitzpatrick_scale:false,category:"symbols"},black_square_button:{keywords:["shape","input","frame"],char:'🔲',fitzpatrick_scale:false,category:"symbols"},white_square_button:{keywords:["shape","input"],char:'🔳',fitzpatrick_scale:false,category:"symbols"},speaker:{keywords:["sound","volume","silence","broadcast"],char:'🔈',fitzpatrick_scale:false,category:"symbols"},sound:{keywords:["volume","speaker","broadcast"],char:'🔉',fitzpatrick_scale:false,category:"symbols"},loud_sound:{keywords:["volume","noise","noisy","speaker","broadcast"],char:'🔊',fitzpatrick_scale:false,category:"symbols"},mute:{keywords:["sound","volume","silence","quiet"],char:'🔇',fitzpatrick_scale:false,category:"symbols"},mega:{keywords:["sound","speaker","volume"],char:'📣',fitzpatrick_scale:false,category:"symbols"},loudspeaker:{keywords:["volume","sound"],char:'📢',fitzpatrick_scale:false,category:"symbols"},bell:{keywords:["sound","notification","christmas","xmas","chime"],char:'🔔',fitzpatrick_scale:false,category:"symbols"},no_bell:{keywords:["sound","volume","mute","quiet","silent"],char:'🔕',fitzpatrick_scale:false,category:"symbols"},black_joker:{keywords:["poker","cards","game","play","magic"],char:'🃏',fitzpatrick_scale:false,category:"symbols"},mahjong:{keywords:["game","play","chinese","kanji"],char:'🀄',fitzpatrick_scale:false,category:"symbols"},spades:{keywords:["poker","cards","suits","magic"],char:'♠️',fitzpatrick_scale:false,category:"symbols"},clubs:{keywords:["poker","cards","magic","suits"],char:'♣️',fitzpatrick_scale:false,category:"symbols"},hearts:{keywords:["poker","cards","magic","suits"],char:'♥️',fitzpatrick_scale:false,category:"symbols"},diamonds:{keywords:["poker","cards","magic","suits"],char:'♦️',fitzpatrick_scale:false,category:"symbols"},flower_playing_cards:{keywords:["game","sunset","red"],char:'🎴',fitzpatrick_scale:false,category:"symbols"},thought_balloon:{keywords:["bubble","cloud","speech","thinking","dream"],char:'💭',fitzpatrick_scale:false,category:"symbols"},right_anger_bubble:{keywords:["caption","speech","thinking","mad"],char:'🗯',fitzpatrick_scale:false,category:"symbols"},speech_balloon:{keywords:["bubble","words","message","talk","chatting"],char:'💬',fitzpatrick_scale:false,category:"symbols"},left_speech_bubble:{keywords:["words","message","talk","chatting"],char:'🗨',fitzpatrick_scale:false,category:"symbols"},clock1:{keywords:["time","late","early","schedule"],char:'🕐',fitzpatrick_scale:false,category:"symbols"},clock2:{keywords:["time","late","early","schedule"],char:'🕑',fitzpatrick_scale:false,category:"symbols"},clock3:{keywords:["time","late","early","schedule"],char:'🕒',fitzpatrick_scale:false,category:"symbols"},clock4:{keywords:["time","late","early","schedule"],char:'🕓',fitzpatrick_scale:false,category:"symbols"},clock5:{keywords:["time","late","early","schedule"],char:'🕔',fitzpatrick_scale:false,category:"symbols"},clock6:{keywords:["time","late","early","schedule","dawn","dusk"],char:'🕕',fitzpatrick_scale:false,category:"symbols"},clock7:{keywords:["time","late","early","schedule"],char:'🕖',fitzpatrick_scale:false,category:"symbols"},clock8:{keywords:["time","late","early","schedule"],char:'🕗',fitzpatrick_scale:false,category:"symbols"},clock9:{keywords:["time","late","early","schedule"],char:'🕘',fitzpatrick_scale:false,category:"symbols"},clock10:{keywords:["time","late","early","schedule"],char:'🕙',fitzpatrick_scale:false,category:"symbols"},clock11:{keywords:["time","late","early","schedule"],char:'🕚',fitzpatrick_scale:false,category:"symbols"},clock12:{keywords:["time","noon","midnight","midday","late","early","schedule"],char:'🕛',fitzpatrick_scale:false,category:"symbols"},clock130:{keywords:["time","late","early","schedule"],char:'🕜',fitzpatrick_scale:false,category:"symbols"},clock230:{keywords:["time","late","early","schedule"],char:'🕝',fitzpatrick_scale:false,category:"symbols"},clock330:{keywords:["time","late","early","schedule"],char:'🕞',fitzpatrick_scale:false,category:"symbols"},clock430:{keywords:["time","late","early","schedule"],char:'🕟',fitzpatrick_scale:false,category:"symbols"},clock530:{keywords:["time","late","early","schedule"],char:'🕠',fitzpatrick_scale:false,category:"symbols"},clock630:{keywords:["time","late","early","schedule"],char:'🕡',fitzpatrick_scale:false,category:"symbols"},clock730:{keywords:["time","late","early","schedule"],char:'🕢',fitzpatrick_scale:false,category:"symbols"},clock830:{keywords:["time","late","early","schedule"],char:'🕣',fitzpatrick_scale:false,category:"symbols"},clock930:{keywords:["time","late","early","schedule"],char:'🕤',fitzpatrick_scale:false,category:"symbols"},clock1030:{keywords:["time","late","early","schedule"],char:'🕥',fitzpatrick_scale:false,category:"symbols"},clock1130:{keywords:["time","late","early","schedule"],char:'🕦',fitzpatrick_scale:false,category:"symbols"},clock1230:{keywords:["time","late","early","schedule"],char:'🕧',fitzpatrick_scale:false,category:"symbols"},afghanistan:{keywords:["af","flag","nation","country","banner"],char:'🇦🇫',fitzpatrick_scale:false,category:"flags"},aland_islands:{keywords:["Åland","islands","flag","nation","country","banner"],char:'🇦🇽',fitzpatrick_scale:false,category:"flags"},albania:{keywords:["al","flag","nation","country","banner"],char:'🇦🇱',fitzpatrick_scale:false,category:"flags"},algeria:{keywords:["dz","flag","nation","country","banner"],char:'🇩🇿',fitzpatrick_scale:false,category:"flags"},american_samoa:{keywords:["american","ws","flag","nation","country","banner"],char:'🇦🇸',fitzpatrick_scale:false,category:"flags"},andorra:{keywords:["ad","flag","nation","country","banner"],char:'🇦🇩',fitzpatrick_scale:false,category:"flags"},angola:{keywords:["ao","flag","nation","country","banner"],char:'🇦🇴',fitzpatrick_scale:false,category:"flags"},anguilla:{keywords:["ai","flag","nation","country","banner"],char:'🇦🇮',fitzpatrick_scale:false,category:"flags"},antarctica:{keywords:["aq","flag","nation","country","banner"],char:'🇦🇶',fitzpatrick_scale:false,category:"flags"},antigua_barbuda:{keywords:["antigua","barbuda","flag","nation","country","banner"],char:'🇦🇬',fitzpatrick_scale:false,category:"flags"},argentina:{keywords:["ar","flag","nation","country","banner"],char:'🇦🇷',fitzpatrick_scale:false,category:"flags"},armenia:{keywords:["am","flag","nation","country","banner"],char:'🇦🇲',fitzpatrick_scale:false,category:"flags"},aruba:{keywords:["aw","flag","nation","country","banner"],char:'🇦🇼',fitzpatrick_scale:false,category:"flags"},australia:{keywords:["au","flag","nation","country","banner"],char:'🇦🇺',fitzpatrick_scale:false,category:"flags"},austria:{keywords:["at","flag","nation","country","banner"],char:'🇦🇹',fitzpatrick_scale:false,category:"flags"},azerbaijan:{keywords:["az","flag","nation","country","banner"],char:'🇦🇿',fitzpatrick_scale:false,category:"flags"},bahamas:{keywords:["bs","flag","nation","country","banner"],char:'🇧🇸',fitzpatrick_scale:false,category:"flags"},bahrain:{keywords:["bh","flag","nation","country","banner"],char:'🇧🇭',fitzpatrick_scale:false,category:"flags"},bangladesh:{keywords:["bd","flag","nation","country","banner"],char:'🇧🇩',fitzpatrick_scale:false,category:"flags"},barbados:{keywords:["bb","flag","nation","country","banner"],char:'🇧🇧',fitzpatrick_scale:false,category:"flags"},belarus:{keywords:["by","flag","nation","country","banner"],char:'🇧🇾',fitzpatrick_scale:false,category:"flags"},belgium:{keywords:["be","flag","nation","country","banner"],char:'🇧🇪',fitzpatrick_scale:false,category:"flags"},belize:{keywords:["bz","flag","nation","country","banner"],char:'🇧🇿',fitzpatrick_scale:false,category:"flags"},benin:{keywords:["bj","flag","nation","country","banner"],char:'🇧🇯',fitzpatrick_scale:false,category:"flags"},bermuda:{keywords:["bm","flag","nation","country","banner"],char:'🇧🇲',fitzpatrick_scale:false,category:"flags"},bhutan:{keywords:["bt","flag","nation","country","banner"],char:'🇧🇹',fitzpatrick_scale:false,category:"flags"},bolivia:{keywords:["bo","flag","nation","country","banner"],char:'🇧🇴',fitzpatrick_scale:false,category:"flags"},caribbean_netherlands:{keywords:["bonaire","flag","nation","country","banner"],char:'🇧🇶',fitzpatrick_scale:false,category:"flags"},bosnia_herzegovina:{keywords:["bosnia","herzegovina","flag","nation","country","banner"],char:'🇧🇦',fitzpatrick_scale:false,category:"flags"},botswana:{keywords:["bw","flag","nation","country","banner"],char:'🇧🇼',fitzpatrick_scale:false,category:"flags"},brazil:{keywords:["br","flag","nation","country","banner"],char:'🇧🇷',fitzpatrick_scale:false,category:"flags"},british_indian_ocean_territory:{keywords:["british","indian","ocean","territory","flag","nation","country","banner"],char:'🇮🇴',fitzpatrick_scale:false,category:"flags"},british_virgin_islands:{keywords:["british","virgin","islands","bvi","flag","nation","country","banner"],char:'🇻🇬',fitzpatrick_scale:false,category:"flags"},brunei:{keywords:["bn","darussalam","flag","nation","country","banner"],char:'🇧🇳',fitzpatrick_scale:false,category:"flags"},bulgaria:{keywords:["bg","flag","nation","country","banner"],char:'🇧🇬',fitzpatrick_scale:false,category:"flags"},burkina_faso:{keywords:["burkina","faso","flag","nation","country","banner"],char:'🇧🇫',fitzpatrick_scale:false,category:"flags"},burundi:{keywords:["bi","flag","nation","country","banner"],char:'🇧🇮',fitzpatrick_scale:false,category:"flags"},cape_verde:{keywords:["cabo","verde","flag","nation","country","banner"],char:'🇨🇻',fitzpatrick_scale:false,category:"flags"},cambodia:{keywords:["kh","flag","nation","country","banner"],char:'🇰🇭',fitzpatrick_scale:false,category:"flags"},cameroon:{keywords:["cm","flag","nation","country","banner"],char:'🇨🇲',fitzpatrick_scale:false,category:"flags"},canada:{keywords:["ca","flag","nation","country","banner"],char:'🇨🇦',fitzpatrick_scale:false,category:"flags"},canary_islands:{keywords:["canary","islands","flag","nation","country","banner"],char:'🇮🇨',fitzpatrick_scale:false,category:"flags"},cayman_islands:{keywords:["cayman","islands","flag","nation","country","banner"],char:'🇰🇾',fitzpatrick_scale:false,category:"flags"},central_african_republic:{keywords:["central","african","republic","flag","nation","country","banner"],char:'🇨🇫',fitzpatrick_scale:false,category:"flags"},chad:{keywords:["td","flag","nation","country","banner"],char:'🇹🇩',fitzpatrick_scale:false,category:"flags"},chile:{keywords:["flag","nation","country","banner"],char:'🇨🇱',fitzpatrick_scale:false,category:"flags"},cn:{keywords:["china","chinese","prc","flag","country","nation","banner"],char:'🇨🇳',fitzpatrick_scale:false,category:"flags"},christmas_island:{keywords:["christmas","island","flag","nation","country","banner"],char:'🇨🇽',fitzpatrick_scale:false,category:"flags"},cocos_islands:{keywords:["cocos","keeling","islands","flag","nation","country","banner"],char:'🇨🇨',fitzpatrick_scale:false,category:"flags"},colombia:{keywords:["co","flag","nation","country","banner"],char:'🇨🇴',fitzpatrick_scale:false,category:"flags"},comoros:{keywords:["km","flag","nation","country","banner"],char:'🇰🇲',fitzpatrick_scale:false,category:"flags"},congo_brazzaville:{keywords:["congo","flag","nation","country","banner"],char:'🇨🇬',fitzpatrick_scale:false,category:"flags"},congo_kinshasa:{keywords:["congo","democratic","republic","flag","nation","country","banner"],char:'🇨🇩',fitzpatrick_scale:false,category:"flags"},cook_islands:{keywords:["cook","islands","flag","nation","country","banner"],char:'🇨🇰',fitzpatrick_scale:false,category:"flags"},costa_rica:{keywords:["costa","rica","flag","nation","country","banner"],char:'🇨🇷',fitzpatrick_scale:false,category:"flags"},croatia:{keywords:["hr","flag","nation","country","banner"],char:'🇭🇷',fitzpatrick_scale:false,category:"flags"},cuba:{keywords:["cu","flag","nation","country","banner"],char:'🇨🇺',fitzpatrick_scale:false,category:"flags"},curacao:{keywords:["curaçao","flag","nation","country","banner"],char:'🇨🇼',fitzpatrick_scale:false,category:"flags"},cyprus:{keywords:["cy","flag","nation","country","banner"],char:'🇨🇾',fitzpatrick_scale:false,category:"flags"},czech_republic:{keywords:["cz","flag","nation","country","banner"],char:'🇨🇿',fitzpatrick_scale:false,category:"flags"},denmark:{keywords:["dk","flag","nation","country","banner"],char:'🇩🇰',fitzpatrick_scale:false,category:"flags"},djibouti:{keywords:["dj","flag","nation","country","banner"],char:'🇩🇯',fitzpatrick_scale:false,category:"flags"},dominica:{keywords:["dm","flag","nation","country","banner"],char:'🇩🇲',fitzpatrick_scale:false,category:"flags"},dominican_republic:{keywords:["dominican","republic","flag","nation","country","banner"],char:'🇩🇴',fitzpatrick_scale:false,category:"flags"},ecuador:{keywords:["ec","flag","nation","country","banner"],char:'🇪🇨',fitzpatrick_scale:false,category:"flags"},egypt:{keywords:["eg","flag","nation","country","banner"],char:'🇪🇬',fitzpatrick_scale:false,category:"flags"},el_salvador:{keywords:["el","salvador","flag","nation","country","banner"],char:'🇸🇻',fitzpatrick_scale:false,category:"flags"},equatorial_guinea:{keywords:["equatorial","gn","flag","nation","country","banner"],char:'🇬🇶',fitzpatrick_scale:false,category:"flags"},eritrea:{keywords:["er","flag","nation","country","banner"],char:'🇪🇷',fitzpatrick_scale:false,category:"flags"},estonia:{keywords:["ee","flag","nation","country","banner"],char:'🇪🇪',fitzpatrick_scale:false,category:"flags"},ethiopia:{keywords:["et","flag","nation","country","banner"],char:'🇪🇹',fitzpatrick_scale:false,category:"flags"},eu:{keywords:["european","union","flag","banner"],char:'🇪🇺',fitzpatrick_scale:false,category:"flags"},falkland_islands:{keywords:["falkland","islands","malvinas","flag","nation","country","banner"],char:'🇫🇰',fitzpatrick_scale:false,category:"flags"},faroe_islands:{keywords:["faroe","islands","flag","nation","country","banner"],char:'🇫🇴',fitzpatrick_scale:false,category:"flags"},fiji:{keywords:["fj","flag","nation","country","banner"],char:'🇫🇯',fitzpatrick_scale:false,category:"flags"},finland:{keywords:["fi","flag","nation","country","banner"],char:'🇫🇮',fitzpatrick_scale:false,category:"flags"},fr:{keywords:["banner","flag","nation","france","french","country"],char:'🇫🇷',fitzpatrick_scale:false,category:"flags"},french_guiana:{keywords:["french","guiana","flag","nation","country","banner"],char:'🇬🇫',fitzpatrick_scale:false,category:"flags"},french_polynesia:{keywords:["french","polynesia","flag","nation","country","banner"],char:'🇵🇫',fitzpatrick_scale:false,category:"flags"},french_southern_territories:{keywords:["french","southern","territories","flag","nation","country","banner"],char:'🇹🇫',fitzpatrick_scale:false,category:"flags"},gabon:{keywords:["ga","flag","nation","country","banner"],char:'🇬🇦',fitzpatrick_scale:false,category:"flags"},gambia:{keywords:["gm","flag","nation","country","banner"],char:'🇬🇲',fitzpatrick_scale:false,category:"flags"},georgia:{keywords:["ge","flag","nation","country","banner"],char:'🇬🇪',fitzpatrick_scale:false,category:"flags"},de:{keywords:["german","nation","flag","country","banner"],char:'🇩🇪',fitzpatrick_scale:false,category:"flags"},ghana:{keywords:["gh","flag","nation","country","banner"],char:'🇬🇭',fitzpatrick_scale:false,category:"flags"},gibraltar:{keywords:["gi","flag","nation","country","banner"],char:'🇬🇮',fitzpatrick_scale:false,category:"flags"},greece:{keywords:["gr","flag","nation","country","banner"],char:'🇬🇷',fitzpatrick_scale:false,category:"flags"},greenland:{keywords:["gl","flag","nation","country","banner"],char:'🇬🇱',fitzpatrick_scale:false,category:"flags"},grenada:{keywords:["gd","flag","nation","country","banner"],char:'🇬🇩',fitzpatrick_scale:false,category:"flags"},guadeloupe:{keywords:["gp","flag","nation","country","banner"],char:'🇬🇵',fitzpatrick_scale:false,category:"flags"},guam:{keywords:["gu","flag","nation","country","banner"],char:'🇬🇺',fitzpatrick_scale:false,category:"flags"},guatemala:{keywords:["gt","flag","nation","country","banner"],char:'🇬🇹',fitzpatrick_scale:false,category:"flags"},guernsey:{keywords:["gg","flag","nation","country","banner"],char:'🇬🇬',fitzpatrick_scale:false,category:"flags"},guinea:{keywords:["gn","flag","nation","country","banner"],char:'🇬🇳',fitzpatrick_scale:false,category:"flags"},guinea_bissau:{keywords:["gw","bissau","flag","nation","country","banner"],char:'🇬🇼',fitzpatrick_scale:false,category:"flags"},guyana:{keywords:["gy","flag","nation","country","banner"],char:'🇬🇾',fitzpatrick_scale:false,category:"flags"},haiti:{keywords:["ht","flag","nation","country","banner"],char:'🇭🇹',fitzpatrick_scale:false,category:"flags"},honduras:{keywords:["hn","flag","nation","country","banner"],char:'🇭🇳',fitzpatrick_scale:false,category:"flags"},hong_kong:{keywords:["hong","kong","flag","nation","country","banner"],char:'🇭🇰',fitzpatrick_scale:false,category:"flags"},hungary:{keywords:["hu","flag","nation","country","banner"],char:'🇭🇺',fitzpatrick_scale:false,category:"flags"},iceland:{keywords:["is","flag","nation","country","banner"],char:'🇮🇸',fitzpatrick_scale:false,category:"flags"},india:{keywords:["in","flag","nation","country","banner"],char:'🇮🇳',fitzpatrick_scale:false,category:"flags"},indonesia:{keywords:["flag","nation","country","banner"],char:'🇮🇩',fitzpatrick_scale:false,category:"flags"},iran:{keywords:["iran,","islamic","republic","flag","nation","country","banner"],char:'🇮🇷',fitzpatrick_scale:false,category:"flags"},iraq:{keywords:["iq","flag","nation","country","banner"],char:'🇮🇶',fitzpatrick_scale:false,category:"flags"},ireland:{keywords:["ie","flag","nation","country","banner"],char:'🇮🇪',fitzpatrick_scale:false,category:"flags"},isle_of_man:{keywords:["isle","man","flag","nation","country","banner"],char:'🇮🇲',fitzpatrick_scale:false,category:"flags"},israel:{keywords:["il","flag","nation","country","banner"],char:'🇮🇱',fitzpatrick_scale:false,category:"flags"},it:{keywords:["italy","flag","nation","country","banner"],char:'🇮🇹',fitzpatrick_scale:false,category:"flags"},cote_divoire:{keywords:["ivory","coast","flag","nation","country","banner"],char:'🇨🇮',fitzpatrick_scale:false,category:"flags"},jamaica:{keywords:["jm","flag","nation","country","banner"],char:'🇯🇲',fitzpatrick_scale:false,category:"flags"},jp:{keywords:["japanese","nation","flag","country","banner"],char:'🇯🇵',fitzpatrick_scale:false,category:"flags"},jersey:{keywords:["je","flag","nation","country","banner"],char:'🇯🇪',fitzpatrick_scale:false,category:"flags"},jordan:{keywords:["jo","flag","nation","country","banner"],char:'🇯🇴',fitzpatrick_scale:false,category:"flags"},kazakhstan:{keywords:["kz","flag","nation","country","banner"],char:'🇰🇿',fitzpatrick_scale:false,category:"flags"},kenya:{keywords:["ke","flag","nation","country","banner"],char:'🇰🇪',fitzpatrick_scale:false,category:"flags"},kiribati:{keywords:["ki","flag","nation","country","banner"],char:'🇰🇮',fitzpatrick_scale:false,category:"flags"},kosovo:{keywords:["xk","flag","nation","country","banner"],char:'🇽🇰',fitzpatrick_scale:false,category:"flags"},kuwait:{keywords:["kw","flag","nation","country","banner"],char:'🇰🇼',fitzpatrick_scale:false,category:"flags"},kyrgyzstan:{keywords:["kg","flag","nation","country","banner"],char:'🇰🇬',fitzpatrick_scale:false,category:"flags"},laos:{keywords:["lao","democratic","republic","flag","nation","country","banner"],char:'🇱🇦',fitzpatrick_scale:false,category:"flags"},latvia:{keywords:["lv","flag","nation","country","banner"],char:'🇱🇻',fitzpatrick_scale:false,category:"flags"},lebanon:{keywords:["lb","flag","nation","country","banner"],char:'🇱🇧',fitzpatrick_scale:false,category:"flags"},lesotho:{keywords:["ls","flag","nation","country","banner"],char:'🇱🇸',fitzpatrick_scale:false,category:"flags"},liberia:{keywords:["lr","flag","nation","country","banner"],char:'🇱🇷',fitzpatrick_scale:false,category:"flags"},libya:{keywords:["ly","flag","nation","country","banner"],char:'🇱🇾',fitzpatrick_scale:false,category:"flags"},liechtenstein:{keywords:["li","flag","nation","country","banner"],char:'🇱🇮',fitzpatrick_scale:false,category:"flags"},lithuania:{keywords:["lt","flag","nation","country","banner"],char:'🇱🇹',fitzpatrick_scale:false,category:"flags"},luxembourg:{keywords:["lu","flag","nation","country","banner"],char:'🇱🇺',fitzpatrick_scale:false,category:"flags"},macau:{keywords:["macao","flag","nation","country","banner"],char:'🇲🇴',fitzpatrick_scale:false,category:"flags"},macedonia:{keywords:["macedonia,","flag","nation","country","banner"],char:'🇲🇰',fitzpatrick_scale:false,category:"flags"},madagascar:{keywords:["mg","flag","nation","country","banner"],char:'🇲🇬',fitzpatrick_scale:false,category:"flags"},malawi:{keywords:["mw","flag","nation","country","banner"],char:'🇲🇼',fitzpatrick_scale:false,category:"flags"},malaysia:{keywords:["my","flag","nation","country","banner"],char:'🇲🇾',fitzpatrick_scale:false,category:"flags"},maldives:{keywords:["mv","flag","nation","country","banner"],char:'🇲🇻',fitzpatrick_scale:false,category:"flags"},mali:{keywords:["ml","flag","nation","country","banner"],char:'🇲🇱',fitzpatrick_scale:false,category:"flags"},malta:{keywords:["mt","flag","nation","country","banner"],char:'🇲🇹',fitzpatrick_scale:false,category:"flags"},marshall_islands:{keywords:["marshall","islands","flag","nation","country","banner"],char:'🇲🇭',fitzpatrick_scale:false,category:"flags"},martinique:{keywords:["mq","flag","nation","country","banner"],char:'🇲🇶',fitzpatrick_scale:false,category:"flags"},mauritania:{keywords:["mr","flag","nation","country","banner"],char:'🇲🇷',fitzpatrick_scale:false,category:"flags"},mauritius:{keywords:["mu","flag","nation","country","banner"],char:'🇲🇺',fitzpatrick_scale:false,category:"flags"},mayotte:{keywords:["yt","flag","nation","country","banner"],char:'🇾🇹',fitzpatrick_scale:false,category:"flags"},mexico:{keywords:["mx","flag","nation","country","banner"],char:'🇲🇽',fitzpatrick_scale:false,category:"flags"},micronesia:{keywords:["micronesia,","federated","states","flag","nation","country","banner"],char:'🇫🇲',fitzpatrick_scale:false,category:"flags"},moldova:{keywords:["moldova,","republic","flag","nation","country","banner"],char:'🇲🇩',fitzpatrick_scale:false,category:"flags"},monaco:{keywords:["mc","flag","nation","country","banner"],char:'🇲🇨',fitzpatrick_scale:false,category:"flags"},mongolia:{keywords:["mn","flag","nation","country","banner"],char:'🇲🇳',fitzpatrick_scale:false,category:"flags"},montenegro:{keywords:["me","flag","nation","country","banner"],char:'🇲🇪',fitzpatrick_scale:false,category:"flags"},montserrat:{keywords:["ms","flag","nation","country","banner"],char:'🇲🇸',fitzpatrick_scale:false,category:"flags"},morocco:{keywords:["ma","flag","nation","country","banner"],char:'🇲🇦',fitzpatrick_scale:false,category:"flags"},mozambique:{keywords:["mz","flag","nation","country","banner"],char:'🇲🇿',fitzpatrick_scale:false,category:"flags"},myanmar:{keywords:["mm","flag","nation","country","banner"],char:'🇲🇲',fitzpatrick_scale:false,category:"flags"},namibia:{keywords:["na","flag","nation","country","banner"],char:'🇳🇦',fitzpatrick_scale:false,category:"flags"},nauru:{keywords:["nr","flag","nation","country","banner"],char:'🇳🇷',fitzpatrick_scale:false,category:"flags"},nepal:{keywords:["np","flag","nation","country","banner"],char:'🇳🇵',fitzpatrick_scale:false,category:"flags"},netherlands:{keywords:["nl","flag","nation","country","banner"],char:'🇳🇱',fitzpatrick_scale:false,category:"flags"},new_caledonia:{keywords:["new","caledonia","flag","nation","country","banner"],char:'🇳🇨',fitzpatrick_scale:false,category:"flags"},new_zealand:{keywords:["new","zealand","flag","nation","country","banner"],char:'🇳🇿',fitzpatrick_scale:false,category:"flags"},nicaragua:{keywords:["ni","flag","nation","country","banner"],char:'🇳🇮',fitzpatrick_scale:false,category:"flags"},niger:{keywords:["ne","flag","nation","country","banner"],char:'🇳🇪',fitzpatrick_scale:false,category:"flags"},nigeria:{keywords:["flag","nation","country","banner"],char:'🇳🇬',fitzpatrick_scale:false,category:"flags"},niue:{keywords:["nu","flag","nation","country","banner"],char:'🇳🇺',fitzpatrick_scale:false,category:"flags"},norfolk_island:{keywords:["norfolk","island","flag","nation","country","banner"],char:'🇳🇫',fitzpatrick_scale:false,category:"flags"},northern_mariana_islands:{keywords:["northern","mariana","islands","flag","nation","country","banner"],char:'🇲🇵',fitzpatrick_scale:false,category:"flags"},north_korea:{keywords:["north","korea","nation","flag","country","banner"],char:'🇰🇵',fitzpatrick_scale:false,category:"flags"},norway:{keywords:["no","flag","nation","country","banner"],char:'🇳🇴',fitzpatrick_scale:false,category:"flags"},oman:{keywords:["om_symbol","flag","nation","country","banner"],char:'🇴🇲',fitzpatrick_scale:false,category:"flags"},pakistan:{keywords:["pk","flag","nation","country","banner"],char:'🇵🇰',fitzpatrick_scale:false,category:"flags"},palau:{keywords:["pw","flag","nation","country","banner"],char:'🇵🇼',fitzpatrick_scale:false,category:"flags"},palestinian_territories:{keywords:["palestine","palestinian","territories","flag","nation","country","banner"],char:'🇵🇸',fitzpatrick_scale:false,category:"flags"},panama:{keywords:["pa","flag","nation","country","banner"],char:'🇵🇦',fitzpatrick_scale:false,category:"flags"},papua_new_guinea:{keywords:["papua","new","guinea","flag","nation","country","banner"],char:'🇵🇬',fitzpatrick_scale:false,category:"flags"},paraguay:{keywords:["py","flag","nation","country","banner"],char:'🇵🇾',fitzpatrick_scale:false,category:"flags"},peru:{keywords:["pe","flag","nation","country","banner"],char:'🇵🇪',fitzpatrick_scale:false,category:"flags"},philippines:{keywords:["ph","flag","nation","country","banner"],char:'🇵🇭',fitzpatrick_scale:false,category:"flags"},pitcairn_islands:{keywords:["pitcairn","flag","nation","country","banner"],char:'🇵🇳',fitzpatrick_scale:false,category:"flags"},poland:{keywords:["pl","flag","nation","country","banner"],char:'🇵🇱',fitzpatrick_scale:false,category:"flags"},portugal:{keywords:["pt","flag","nation","country","banner"],char:'🇵🇹',fitzpatrick_scale:false,category:"flags"},puerto_rico:{keywords:["puerto","rico","flag","nation","country","banner"],char:'🇵🇷',fitzpatrick_scale:false,category:"flags"},qatar:{keywords:["qa","flag","nation","country","banner"],char:'🇶🇦',fitzpatrick_scale:false,category:"flags"},reunion:{keywords:["réunion","flag","nation","country","banner"],char:'🇷🇪',fitzpatrick_scale:false,category:"flags"},romania:{keywords:["ro","flag","nation","country","banner"],char:'🇷🇴',fitzpatrick_scale:false,category:"flags"},ru:{keywords:["russian","federation","flag","nation","country","banner"],char:'🇷🇺',fitzpatrick_scale:false,category:"flags"},rwanda:{keywords:["rw","flag","nation","country","banner"],char:'🇷🇼',fitzpatrick_scale:false,category:"flags"},st_barthelemy:{keywords:["saint","barthélemy","flag","nation","country","banner"],char:'🇧🇱',fitzpatrick_scale:false,category:"flags"},st_helena:{keywords:["saint","helena","ascension","tristan","cunha","flag","nation","country","banner"],char:'🇸🇭',fitzpatrick_scale:false,category:"flags"},st_kitts_nevis:{keywords:["saint","kitts","nevis","flag","nation","country","banner"],char:'🇰🇳',fitzpatrick_scale:false,category:"flags"},st_lucia:{keywords:["saint","lucia","flag","nation","country","banner"],char:'🇱🇨',fitzpatrick_scale:false,category:"flags"},st_pierre_miquelon:{keywords:["saint","pierre","miquelon","flag","nation","country","banner"],char:'🇵🇲',fitzpatrick_scale:false,category:"flags"},st_vincent_grenadines:{keywords:["saint","vincent","grenadines","flag","nation","country","banner"],char:'🇻🇨',fitzpatrick_scale:false,category:"flags"},samoa:{keywords:["ws","flag","nation","country","banner"],char:'🇼🇸',fitzpatrick_scale:false,category:"flags"},san_marino:{keywords:["san","marino","flag","nation","country","banner"],char:'🇸🇲',fitzpatrick_scale:false,category:"flags"},sao_tome_principe:{keywords:["sao","tome","principe","flag","nation","country","banner"],char:'🇸🇹',fitzpatrick_scale:false,category:"flags"},saudi_arabia:{keywords:["flag","nation","country","banner"],char:'🇸🇦',fitzpatrick_scale:false,category:"flags"},senegal:{keywords:["sn","flag","nation","country","banner"],char:'🇸🇳',fitzpatrick_scale:false,category:"flags"},serbia:{keywords:["rs","flag","nation","country","banner"],char:'🇷🇸',fitzpatrick_scale:false,category:"flags"},seychelles:{keywords:["sc","flag","nation","country","banner"],char:'🇸🇨',fitzpatrick_scale:false,category:"flags"},sierra_leone:{keywords:["sierra","leone","flag","nation","country","banner"],char:'🇸🇱',fitzpatrick_scale:false,category:"flags"},singapore:{keywords:["sg","flag","nation","country","banner"],char:'🇸🇬',fitzpatrick_scale:false,category:"flags"},sint_maarten:{keywords:["sint","maarten","dutch","flag","nation","country","banner"],char:'🇸🇽',fitzpatrick_scale:false,category:"flags"},slovakia:{keywords:["sk","flag","nation","country","banner"],char:'🇸🇰',fitzpatrick_scale:false,category:"flags"},slovenia:{keywords:["si","flag","nation","country","banner"],char:'🇸🇮',fitzpatrick_scale:false,category:"flags"},solomon_islands:{keywords:["solomon","islands","flag","nation","country","banner"],char:'🇸🇧',fitzpatrick_scale:false,category:"flags"},somalia:{keywords:["so","flag","nation","country","banner"],char:'🇸🇴',fitzpatrick_scale:false,category:"flags"},south_africa:{keywords:["south","africa","flag","nation","country","banner"],char:'🇿🇦',fitzpatrick_scale:false,category:"flags"},south_georgia_south_sandwich_islands:{keywords:["south","georgia","sandwich","islands","flag","nation","country","banner"],char:'🇬🇸',fitzpatrick_scale:false,category:"flags"},kr:{keywords:["south","korea","nation","flag","country","banner"],char:'🇰🇷',fitzpatrick_scale:false,category:"flags"},south_sudan:{keywords:["south","sd","flag","nation","country","banner"],char:'🇸🇸',fitzpatrick_scale:false,category:"flags"},es:{keywords:["spain","flag","nation","country","banner"],char:'🇪🇸',fitzpatrick_scale:false,category:"flags"},sri_lanka:{keywords:["sri","lanka","flag","nation","country","banner"],char:'🇱🇰',fitzpatrick_scale:false,category:"flags"},sudan:{keywords:["sd","flag","nation","country","banner"],char:'🇸🇩',fitzpatrick_scale:false,category:"flags"},suriname:{keywords:["sr","flag","nation","country","banner"],char:'🇸🇷',fitzpatrick_scale:false,category:"flags"},swaziland:{keywords:["sz","flag","nation","country","banner"],char:'🇸🇿',fitzpatrick_scale:false,category:"flags"},sweden:{keywords:["se","flag","nation","country","banner"],char:'🇸🇪',fitzpatrick_scale:false,category:"flags"},switzerland:{keywords:["ch","flag","nation","country","banner"],char:'🇨🇭',fitzpatrick_scale:false,category:"flags"},syria:{keywords:["syrian","arab","republic","flag","nation","country","banner"],char:'🇸🇾',fitzpatrick_scale:false,category:"flags"},taiwan:{keywords:["tw","flag","nation","country","banner"],char:'🇹🇼',fitzpatrick_scale:false,category:"flags"},tajikistan:{keywords:["tj","flag","nation","country","banner"],char:'🇹🇯',fitzpatrick_scale:false,category:"flags"},tanzania:{keywords:["tanzania,","united","republic","flag","nation","country","banner"],char:'🇹🇿',fitzpatrick_scale:false,category:"flags"},thailand:{keywords:["th","flag","nation","country","banner"],char:'🇹🇭',fitzpatrick_scale:false,category:"flags"},timor_leste:{keywords:["timor","leste","flag","nation","country","banner"],char:'🇹🇱',fitzpatrick_scale:false,category:"flags"},togo:{keywords:["tg","flag","nation","country","banner"],char:'🇹🇬',fitzpatrick_scale:false,category:"flags"},tokelau:{keywords:["tk","flag","nation","country","banner"],char:'🇹🇰',fitzpatrick_scale:false,category:"flags"},tonga:{keywords:["to","flag","nation","country","banner"],char:'🇹🇴',fitzpatrick_scale:false,category:"flags"},trinidad_tobago:{keywords:["trinidad","tobago","flag","nation","country","banner"],char:'🇹🇹',fitzpatrick_scale:false,category:"flags"},tunisia:{keywords:["tn","flag","nation","country","banner"],char:'🇹🇳',fitzpatrick_scale:false,category:"flags"},tr:{keywords:["turkey","flag","nation","country","banner"],char:'🇹🇷',fitzpatrick_scale:false,category:"flags"},turkmenistan:{keywords:["flag","nation","country","banner"],char:'🇹🇲',fitzpatrick_scale:false,category:"flags"},turks_caicos_islands:{keywords:["turks","caicos","islands","flag","nation","country","banner"],char:'🇹🇨',fitzpatrick_scale:false,category:"flags"},tuvalu:{keywords:["flag","nation","country","banner"],char:'🇹🇻',fitzpatrick_scale:false,category:"flags"},uganda:{keywords:["ug","flag","nation","country","banner"],char:'🇺🇬',fitzpatrick_scale:false,category:"flags"},ukraine:{keywords:["ua","flag","nation","country","banner"],char:'🇺🇦',fitzpatrick_scale:false,category:"flags"},united_arab_emirates:{keywords:["united","arab","emirates","flag","nation","country","banner"],char:'🇦🇪',fitzpatrick_scale:false,category:"flags"},uk:{keywords:["united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack"],char:'🇬🇧',fitzpatrick_scale:false,category:"flags"},england:{keywords:["flag","english"],char:'🏴󠁧󠁢󠁥󠁮󠁧󠁿',fitzpatrick_scale:false,category:"flags"},scotland:{keywords:["flag","scottish"],char:'🏴󠁧󠁢󠁳󠁣󠁴󠁿',fitzpatrick_scale:false,category:"flags"},wales:{keywords:["flag","welsh"],char:'🏴󠁧󠁢󠁷󠁬󠁳󠁿',fitzpatrick_scale:false,category:"flags"},us:{keywords:["united","states","america","flag","nation","country","banner"],char:'🇺🇸',fitzpatrick_scale:false,category:"flags"},us_virgin_islands:{keywords:["virgin","islands","us","flag","nation","country","banner"],char:'🇻🇮',fitzpatrick_scale:false,category:"flags"},uruguay:{keywords:["uy","flag","nation","country","banner"],char:'🇺🇾',fitzpatrick_scale:false,category:"flags"},uzbekistan:{keywords:["uz","flag","nation","country","banner"],char:'🇺🇿',fitzpatrick_scale:false,category:"flags"},vanuatu:{keywords:["vu","flag","nation","country","banner"],char:'🇻🇺',fitzpatrick_scale:false,category:"flags"},vatican_city:{keywords:["vatican","city","flag","nation","country","banner"],char:'🇻🇦',fitzpatrick_scale:false,category:"flags"},venezuela:{keywords:["ve","bolivarian","republic","flag","nation","country","banner"],char:'🇻🇪',fitzpatrick_scale:false,category:"flags"},vietnam:{keywords:["viet","nam","flag","nation","country","banner"],char:'🇻🇳',fitzpatrick_scale:false,category:"flags"},wallis_futuna:{keywords:["wallis","futuna","flag","nation","country","banner"],char:'🇼🇫',fitzpatrick_scale:false,category:"flags"},western_sahara:{keywords:["western","sahara","flag","nation","country","banner"],char:'🇪🇭',fitzpatrick_scale:false,category:"flags"},yemen:{keywords:["ye","flag","nation","country","banner"],char:'🇾🇪',fitzpatrick_scale:false,category:"flags"},zambia:{keywords:["zm","flag","nation","country","banner"],char:'🇿🇲',fitzpatrick_scale:false,category:"flags"},zimbabwe:{keywords:["zw","flag","nation","country","banner"],char:'🇿🇼',fitzpatrick_scale:false,category:"flags"},united_nations:{keywords:["un","flag","banner"],char:'🇺🇳',fitzpatrick_scale:false,category:"flags"},pirate_flag:{keywords:["skull","crossbones","flag","banner"],char:'🏴‍☠️',fitzpatrick_scale:false,category:"flags"}}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.min.js new file mode 100644 index 0000000..e8e3b59 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojiimages.min.js @@ -0,0 +1,3 @@ +// Source: npm package: emojilib +// Images provided by twemoji: https://github.com/twitter/twemoji +window.tinymce.Resource.add("tinymce.plugins.emoticons",{100:{keywords:["score","perfect","numbers","century","exam","quiz","test","pass","hundred"],char:'\u{1f4af}',fitzpatrick_scale:!1,category:"symbols"},1234:{keywords:["numbers","blue-square"],char:'\u{1f522}',fitzpatrick_scale:!1,category:"symbols"},grinning:{keywords:["face","smile","happy","joy",":D","grin"],char:'\u{1f600}',fitzpatrick_scale:!1,category:"people"},grimacing:{keywords:["face","grimace","teeth"],char:'\u{1f62c}',fitzpatrick_scale:!1,category:"people"},grin:{keywords:["face","happy","smile","joy","kawaii"],char:'\u{1f601}',fitzpatrick_scale:!1,category:"people"},joy:{keywords:["face","cry","tears","weep","happy","happytears","haha"],char:'\u{1f602}',fitzpatrick_scale:!1,category:"people"},rofl:{keywords:["face","rolling","floor","laughing","lol","haha"],char:'\u{1f923}',fitzpatrick_scale:!1,category:"people"},partying:{keywords:["face","celebration","woohoo"],char:'\u{1f973}',fitzpatrick_scale:!1,category:"people"},smiley:{keywords:["face","happy","joy","haha",":D",":)","smile","funny"],char:'\u{1f603}',fitzpatrick_scale:!1,category:"people"},smile:{keywords:["face","happy","joy","funny","haha","laugh","like",":D",":)"],char:'\u{1f604}',fitzpatrick_scale:!1,category:"people"},sweat_smile:{keywords:["face","hot","happy","laugh","sweat","smile","relief"],char:'\u{1f605}',fitzpatrick_scale:!1,category:"people"},laughing:{keywords:["happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],char:'\u{1f606}',fitzpatrick_scale:!1,category:"people"},innocent:{keywords:["face","angel","heaven","halo"],char:'\u{1f607}',fitzpatrick_scale:!1,category:"people"},wink:{keywords:["face","happy","mischievous","secret",";)","smile","eye"],char:'\u{1f609}',fitzpatrick_scale:!1,category:"people"},blush:{keywords:["face","smile","happy","flushed","crush","embarrassed","shy","joy"],char:'\u{1f60a}',fitzpatrick_scale:!1,category:"people"},slightly_smiling_face:{keywords:["face","smile"],char:'\u{1f642}',fitzpatrick_scale:!1,category:"people"},upside_down_face:{keywords:["face","flipped","silly","smile"],char:'\u{1f643}',fitzpatrick_scale:!1,category:"people"},relaxed:{keywords:["face","blush","massage","happiness"],char:'\u263a\ufe0f',fitzpatrick_scale:!1,category:"people"},yum:{keywords:["happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],char:'\u{1f60b}',fitzpatrick_scale:!1,category:"people"},relieved:{keywords:["face","relaxed","phew","massage","happiness"],char:'\u{1f60c}',fitzpatrick_scale:!1,category:"people"},heart_eyes:{keywords:["face","love","like","affection","valentines","infatuation","crush","heart"],char:'\u{1f60d}',fitzpatrick_scale:!1,category:"people"},smiling_face_with_three_hearts:{keywords:["face","love","like","affection","valentines","infatuation","crush","hearts","adore"],char:'\u{1f970}',fitzpatrick_scale:!1,category:"people"},kissing_heart:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:'\u{1f618}',fitzpatrick_scale:!1,category:"people"},kissing:{keywords:["love","like","face","3","valentines","infatuation","kiss"],char:'\u{1f617}',fitzpatrick_scale:!1,category:"people"},kissing_smiling_eyes:{keywords:["face","affection","valentines","infatuation","kiss"],char:'\u{1f619}',fitzpatrick_scale:!1,category:"people"},kissing_closed_eyes:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:'\u{1f61a}',fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_winking_eye:{keywords:["face","prank","childish","playful","mischievous","smile","wink","tongue"],char:'\u{1f61c}',fitzpatrick_scale:!1,category:"people"},zany:{keywords:["face","goofy","crazy"],char:'\u{1f92a}',fitzpatrick_scale:!1,category:"people"},raised_eyebrow:{keywords:["face","distrust","scepticism","disapproval","disbelief","surprise"],char:'\u{1f928}',fitzpatrick_scale:!1,category:"people"},monocle:{keywords:["face","stuffy","wealthy"],char:'\u{1f9d0}',fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_closed_eyes:{keywords:["face","prank","playful","mischievous","smile","tongue"],char:'\u{1f61d}',fitzpatrick_scale:!1,category:"people"},stuck_out_tongue:{keywords:["face","prank","childish","playful","mischievous","smile","tongue"],char:'\u{1f61b}',fitzpatrick_scale:!1,category:"people"},money_mouth_face:{keywords:["face","rich","dollar","money"],char:'\u{1f911}',fitzpatrick_scale:!1,category:"people"},nerd_face:{keywords:["face","nerdy","geek","dork"],char:'\u{1f913}',fitzpatrick_scale:!1,category:"people"},sunglasses:{keywords:["face","cool","smile","summer","beach","sunglass"],char:'\u{1f60e}',fitzpatrick_scale:!1,category:"people"},star_struck:{keywords:["face","smile","starry","eyes","grinning"],char:'\u{1f929}',fitzpatrick_scale:!1,category:"people"},clown_face:{keywords:["face"],char:'\u{1f921}',fitzpatrick_scale:!1,category:"people"},cowboy_hat_face:{keywords:["face","cowgirl","hat"],char:'\u{1f920}',fitzpatrick_scale:!1,category:"people"},hugs:{keywords:["face","smile","hug"],char:'\u{1f917}',fitzpatrick_scale:!1,category:"people"},smirk:{keywords:["face","smile","mean","prank","smug","sarcasm"],char:'\u{1f60f}',fitzpatrick_scale:!1,category:"people"},no_mouth:{keywords:["face","hellokitty"],char:'\u{1f636}',fitzpatrick_scale:!1,category:"people"},neutral_face:{keywords:["indifference","meh",":|","neutral"],char:'\u{1f610}',fitzpatrick_scale:!1,category:"people"},expressionless:{keywords:["face","indifferent","-_-","meh","deadpan"],char:'\u{1f611}',fitzpatrick_scale:!1,category:"people"},unamused:{keywords:["indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","side_eye"],char:'\u{1f612}',fitzpatrick_scale:!1,category:"people"},roll_eyes:{keywords:["face","eyeroll","frustrated"],char:'\u{1f644}',fitzpatrick_scale:!1,category:"people"},thinking:{keywords:["face","hmmm","think","consider"],char:'\u{1f914}',fitzpatrick_scale:!1,category:"people"},lying_face:{keywords:["face","lie","pinocchio"],char:'\u{1f925}',fitzpatrick_scale:!1,category:"people"},hand_over_mouth:{keywords:["face","whoops","shock","surprise"],char:'\u{1f92d}',fitzpatrick_scale:!1,category:"people"},shushing:{keywords:["face","quiet","shhh"],char:'\u{1f92b}',fitzpatrick_scale:!1,category:"people"},symbols_over_mouth:{keywords:["face","swearing","cursing","cussing","profanity","expletive"],char:'\u{1f92c}',fitzpatrick_scale:!1,category:"people"},exploding_head:{keywords:["face","shocked","mind","blown"],char:'\u{1f92f}',fitzpatrick_scale:!1,category:"people"},flushed:{keywords:["face","blush","shy","flattered"],char:'\u{1f633}',fitzpatrick_scale:!1,category:"people"},disappointed:{keywords:["face","sad","upset","depressed",":("],char:'\u{1f61e}',fitzpatrick_scale:!1,category:"people"},worried:{keywords:["face","concern","nervous",":("],char:'\u{1f61f}',fitzpatrick_scale:!1,category:"people"},angry:{keywords:["mad","face","annoyed","frustrated"],char:'\u{1f620}',fitzpatrick_scale:!1,category:"people"},rage:{keywords:["angry","mad","hate","despise"],char:'\u{1f621}',fitzpatrick_scale:!1,category:"people"},pensive:{keywords:["face","sad","depressed","upset"],char:'\u{1f614}',fitzpatrick_scale:!1,category:"people"},confused:{keywords:["face","indifference","huh","weird","hmmm",":/"],char:'\u{1f615}',fitzpatrick_scale:!1,category:"people"},slightly_frowning_face:{keywords:["face","frowning","disappointed","sad","upset"],char:'\u{1f641}',fitzpatrick_scale:!1,category:"people"},frowning_face:{keywords:["face","sad","upset","frown"],char:'\u2639',fitzpatrick_scale:!1,category:"people"},persevere:{keywords:["face","sick","no","upset","oops"],char:'\u{1f623}',fitzpatrick_scale:!1,category:"people"},confounded:{keywords:["face","confused","sick","unwell","oops",":S"],char:'\u{1f616}',fitzpatrick_scale:!1,category:"people"},tired_face:{keywords:["sick","whine","upset","frustrated"],char:'\u{1f62b}',fitzpatrick_scale:!1,category:"people"},weary:{keywords:["face","tired","sleepy","sad","frustrated","upset"],char:'\u{1f629}',fitzpatrick_scale:!1,category:"people"},pleading:{keywords:["face","begging","mercy"],char:'\u{1f97a}',fitzpatrick_scale:!1,category:"people"},triumph:{keywords:["face","gas","phew","proud","pride"],char:'\u{1f624}',fitzpatrick_scale:!1,category:"people"},open_mouth:{keywords:["face","surprise","impressed","wow","whoa",":O"],char:'\u{1f62e}',fitzpatrick_scale:!1,category:"people"},scream:{keywords:["face","munch","scared","omg"],char:'\u{1f631}',fitzpatrick_scale:!1,category:"people"},fearful:{keywords:["face","scared","terrified","nervous","oops","huh"],char:'\u{1f628}',fitzpatrick_scale:!1,category:"people"},cold_sweat:{keywords:["face","nervous","sweat"],char:'\u{1f630}',fitzpatrick_scale:!1,category:"people"},hushed:{keywords:["face","woo","shh"],char:'\u{1f62f}',fitzpatrick_scale:!1,category:"people"},frowning:{keywords:["face","aw","what"],char:'\u{1f626}',fitzpatrick_scale:!1,category:"people"},anguished:{keywords:["face","stunned","nervous"],char:'\u{1f627}',fitzpatrick_scale:!1,category:"people"},cry:{keywords:["face","tears","sad","depressed","upset",":'("],char:'\u{1f622}',fitzpatrick_scale:!1,category:"people"},disappointed_relieved:{keywords:["face","phew","sweat","nervous"],char:'\u{1f625}',fitzpatrick_scale:!1,category:"people"},drooling_face:{keywords:["face"],char:'\u{1f924}',fitzpatrick_scale:!1,category:"people"},sleepy:{keywords:["face","tired","rest","nap"],char:'\u{1f62a}',fitzpatrick_scale:!1,category:"people"},sweat:{keywords:["face","hot","sad","tired","exercise"],char:'\u{1f613}',fitzpatrick_scale:!1,category:"people"},hot:{keywords:["face","feverish","heat","red","sweating"],char:'\u{1f975}',fitzpatrick_scale:!1,category:"people"},cold:{keywords:["face","blue","freezing","frozen","frostbite","icicles"],char:'\u{1f976}',fitzpatrick_scale:!1,category:"people"},sob:{keywords:["face","cry","tears","sad","upset","depressed"],char:'\u{1f62d}',fitzpatrick_scale:!1,category:"people"},dizzy_face:{keywords:["spent","unconscious","xox","dizzy"],char:'\u{1f635}',fitzpatrick_scale:!1,category:"people"},astonished:{keywords:["face","xox","surprised","poisoned"],char:'\u{1f632}',fitzpatrick_scale:!1,category:"people"},zipper_mouth_face:{keywords:["face","sealed","zipper","secret"],char:'\u{1f910}',fitzpatrick_scale:!1,category:"people"},nauseated_face:{keywords:["face","vomit","gross","green","sick","throw up","ill"],char:'\u{1f922}',fitzpatrick_scale:!1,category:"people"},sneezing_face:{keywords:["face","gesundheit","sneeze","sick","allergy"],char:'\u{1f927}',fitzpatrick_scale:!1,category:"people"},vomiting:{keywords:["face","sick"],char:'\u{1f92e}',fitzpatrick_scale:!1,category:"people"},mask:{keywords:["face","sick","ill","disease"],char:'\u{1f637}',fitzpatrick_scale:!1,category:"people"},face_with_thermometer:{keywords:["sick","temperature","thermometer","cold","fever"],char:'\u{1f912}',fitzpatrick_scale:!1,category:"people"},face_with_head_bandage:{keywords:["injured","clumsy","bandage","hurt"],char:'\u{1f915}',fitzpatrick_scale:!1,category:"people"},woozy:{keywords:["face","dizzy","intoxicated","tipsy","wavy"],char:'\u{1f974}',fitzpatrick_scale:!1,category:"people"},sleeping:{keywords:["face","tired","sleepy","night","zzz"],char:'\u{1f634}',fitzpatrick_scale:!1,category:"people"},zzz:{keywords:["sleepy","tired","dream"],char:'\u{1f4a4}',fitzpatrick_scale:!1,category:"people"},poop:{keywords:["hankey","shitface","fail","turd","shit"],char:'\u{1f4a9}',fitzpatrick_scale:!1,category:"people"},smiling_imp:{keywords:["devil","horns"],char:'\u{1f608}',fitzpatrick_scale:!1,category:"people"},imp:{keywords:["devil","angry","horns"],char:'\u{1f47f}',fitzpatrick_scale:!1,category:"people"},japanese_ogre:{keywords:["monster","red","mask","halloween","scary","creepy","devil","demon","japanese","ogre"],char:'\u{1f479}',fitzpatrick_scale:!1,category:"people"},japanese_goblin:{keywords:["red","evil","mask","monster","scary","creepy","japanese","goblin"],char:'\u{1f47a}',fitzpatrick_scale:!1,category:"people"},skull:{keywords:["dead","skeleton","creepy","death"],char:'\u{1f480}',fitzpatrick_scale:!1,category:"people"},ghost:{keywords:["halloween","spooky","scary"],char:'\u{1f47b}',fitzpatrick_scale:!1,category:"people"},alien:{keywords:["UFO","paul","weird","outer_space"],char:'\u{1f47d}',fitzpatrick_scale:!1,category:"people"},robot:{keywords:["computer","machine","bot"],char:'\u{1f916}',fitzpatrick_scale:!1,category:"people"},smiley_cat:{keywords:["animal","cats","happy","smile"],char:'\u{1f63a}',fitzpatrick_scale:!1,category:"people"},smile_cat:{keywords:["animal","cats","smile"],char:'\u{1f638}',fitzpatrick_scale:!1,category:"people"},joy_cat:{keywords:["animal","cats","haha","happy","tears"],char:'\u{1f639}',fitzpatrick_scale:!1,category:"people"},heart_eyes_cat:{keywords:["animal","love","like","affection","cats","valentines","heart"],char:'\u{1f63b}',fitzpatrick_scale:!1,category:"people"},smirk_cat:{keywords:["animal","cats","smirk"],char:'\u{1f63c}',fitzpatrick_scale:!1,category:"people"},kissing_cat:{keywords:["animal","cats","kiss"],char:'\u{1f63d}',fitzpatrick_scale:!1,category:"people"},scream_cat:{keywords:["animal","cats","munch","scared","scream"],char:'\u{1f640}',fitzpatrick_scale:!1,category:"people"},crying_cat_face:{keywords:["animal","tears","weep","sad","cats","upset","cry"],char:'\u{1f63f}',fitzpatrick_scale:!1,category:"people"},pouting_cat:{keywords:["animal","cats"],char:'\u{1f63e}',fitzpatrick_scale:!1,category:"people"},palms_up:{keywords:["hands","gesture","cupped","prayer"],char:'\u{1f932}',fitzpatrick_scale:!0,category:"people"},raised_hands:{keywords:["gesture","hooray","yea","celebration","hands"],char:'\u{1f64c}',fitzpatrick_scale:!0,category:"people"},clap:{keywords:["hands","praise","applause","congrats","yay"],char:'\u{1f44f}',fitzpatrick_scale:!0,category:"people"},wave:{keywords:["hands","gesture","goodbye","solong","farewell","hello","hi","palm"],char:'\u{1f44b}',fitzpatrick_scale:!0,category:"people"},call_me_hand:{keywords:["hands","gesture"],char:'\u{1f919}',fitzpatrick_scale:!0,category:"people"},"+1":{keywords:["thumbsup","yes","awesome","good","agree","accept","cool","hand","like"],char:'\u{1f44d}',fitzpatrick_scale:!0,category:"people"},"-1":{keywords:["thumbsdown","no","dislike","hand"],char:'\u{1f44e}',fitzpatrick_scale:!0,category:"people"},facepunch:{keywords:["angry","violence","fist","hit","attack","hand"],char:'\u{1f44a}',fitzpatrick_scale:!0,category:"people"},fist:{keywords:["fingers","hand","grasp"],char:'\u270a',fitzpatrick_scale:!0,category:"people"},fist_left:{keywords:["hand","fistbump"],char:'\u{1f91b}',fitzpatrick_scale:!0,category:"people"},fist_right:{keywords:["hand","fistbump"],char:'\u{1f91c}',fitzpatrick_scale:!0,category:"people"},v:{keywords:["fingers","ohyeah","hand","peace","victory","two"],char:'\u270c',fitzpatrick_scale:!0,category:"people"},ok_hand:{keywords:["fingers","limbs","perfect","ok","okay"],char:'\u{1f44c}',fitzpatrick_scale:!0,category:"people"},raised_hand:{keywords:["fingers","stop","highfive","palm","ban"],char:'\u270b',fitzpatrick_scale:!0,category:"people"},raised_back_of_hand:{keywords:["fingers","raised","backhand"],char:'\u{1f91a}',fitzpatrick_scale:!0,category:"people"},open_hands:{keywords:["fingers","butterfly","hands","open"],char:'\u{1f450}',fitzpatrick_scale:!0,category:"people"},muscle:{keywords:["arm","flex","hand","summer","strong","biceps"],char:'\u{1f4aa}',fitzpatrick_scale:!0,category:"people"},pray:{keywords:["please","hope","wish","namaste","highfive"],char:'\u{1f64f}',fitzpatrick_scale:!0,category:"people"},foot:{keywords:["kick","stomp"],char:'\u{1f9b6}',fitzpatrick_scale:!0,category:"people"},leg:{keywords:["kick","limb"],char:'\u{1f9b5}',fitzpatrick_scale:!0,category:"people"},handshake:{keywords:["agreement","shake"],char:'\u{1f91d}',fitzpatrick_scale:!1,category:"people"},point_up:{keywords:["hand","fingers","direction","up"],char:'\u261d',fitzpatrick_scale:!0,category:"people"},point_up_2:{keywords:["fingers","hand","direction","up"],char:'\u{1f446}',fitzpatrick_scale:!0,category:"people"},point_down:{keywords:["fingers","hand","direction","down"],char:'\u{1f447}',fitzpatrick_scale:!0,category:"people"},point_left:{keywords:["direction","fingers","hand","left"],char:'\u{1f448}',fitzpatrick_scale:!0,category:"people"},point_right:{keywords:["fingers","hand","direction","right"],char:'\u{1f449}',fitzpatrick_scale:!0,category:"people"},fu:{keywords:["hand","fingers","rude","middle","flipping"],char:'\u{1f595}',fitzpatrick_scale:!0,category:"people"},raised_hand_with_fingers_splayed:{keywords:["hand","fingers","palm"],char:'\u{1f590}',fitzpatrick_scale:!0,category:"people"},love_you:{keywords:["hand","fingers","gesture"],char:'\u{1f91f}',fitzpatrick_scale:!0,category:"people"},metal:{keywords:["hand","fingers","evil_eye","sign_of_horns","rock_on"],char:'\u{1f918}',fitzpatrick_scale:!0,category:"people"},crossed_fingers:{keywords:["good","lucky"],char:'\u{1f91e}',fitzpatrick_scale:!0,category:"people"},vulcan_salute:{keywords:["hand","fingers","spock","star trek"],char:'\u{1f596}',fitzpatrick_scale:!0,category:"people"},writing_hand:{keywords:["lower_left_ballpoint_pen","stationery","write","compose"],char:'\u270d',fitzpatrick_scale:!0,category:"people"},selfie:{keywords:["camera","phone"],char:'\u{1f933}',fitzpatrick_scale:!0,category:"people"},nail_care:{keywords:["beauty","manicure","finger","fashion","nail"],char:'\u{1f485}',fitzpatrick_scale:!0,category:"people"},lips:{keywords:["mouth","kiss"],char:'\u{1f444}',fitzpatrick_scale:!1,category:"people"},tooth:{keywords:["teeth","dentist"],char:'\u{1f9b7}',fitzpatrick_scale:!1,category:"people"},tongue:{keywords:["mouth","playful"],char:'\u{1f445}',fitzpatrick_scale:!1,category:"people"},ear:{keywords:["face","hear","sound","listen"],char:'\u{1f442}',fitzpatrick_scale:!0,category:"people"},nose:{keywords:["smell","sniff"],char:'\u{1f443}',fitzpatrick_scale:!0,category:"people"},eye:{keywords:["face","look","see","watch","stare"],char:'\u{1f441}',fitzpatrick_scale:!1,category:"people"},eyes:{keywords:["look","watch","stalk","peek","see"],char:'\u{1f440}',fitzpatrick_scale:!1,category:"people"},brain:{keywords:["smart","intelligent"],char:'\u{1f9e0}',fitzpatrick_scale:!1,category:"people"},bust_in_silhouette:{keywords:["user","person","human"],char:'\u{1f464}',fitzpatrick_scale:!1,category:"people"},busts_in_silhouette:{keywords:["user","person","human","group","team"],char:'\u{1f465}',fitzpatrick_scale:!1,category:"people"},speaking_head:{keywords:["user","person","human","sing","say","talk"],char:'\u{1f5e3}',fitzpatrick_scale:!1,category:"people"},baby:{keywords:["child","boy","girl","toddler"],char:'\u{1f476}',fitzpatrick_scale:!0,category:"people"},child:{keywords:["gender-neutral","young"],char:'\u{1f9d2}',fitzpatrick_scale:!0,category:"people"},boy:{keywords:["man","male","guy","teenager"],char:'\u{1f466}',fitzpatrick_scale:!0,category:"people"},girl:{keywords:["female","woman","teenager"],char:'\u{1f467}',fitzpatrick_scale:!0,category:"people"},adult:{keywords:["gender-neutral","person"],char:'\u{1f9d1}',fitzpatrick_scale:!0,category:"people"},man:{keywords:["mustache","father","dad","guy","classy","sir","moustache"],char:'\u{1f468}',fitzpatrick_scale:!0,category:"people"},woman:{keywords:["female","girls","lady"],char:'\u{1f469}',fitzpatrick_scale:!0,category:"people"},blonde_woman:{keywords:["woman","female","girl","blonde","person"],char:'\u{1f471}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},blonde_man:{keywords:["man","male","boy","blonde","guy","person"],char:'\u{1f471}',fitzpatrick_scale:!0,category:"people"},bearded_person:{keywords:["person","bewhiskered"],char:'\u{1f9d4}',fitzpatrick_scale:!0,category:"people"},older_adult:{keywords:["human","elder","senior","gender-neutral"],char:'\u{1f9d3}',fitzpatrick_scale:!0,category:"people"},older_man:{keywords:["human","male","men","old","elder","senior"],char:'\u{1f474}',fitzpatrick_scale:!0,category:"people"},older_woman:{keywords:["human","female","women","lady","old","elder","senior"],char:'\u{1f475}',fitzpatrick_scale:!0,category:"people"},man_with_gua_pi_mao:{keywords:["male","boy","chinese"],char:'\u{1f472}',fitzpatrick_scale:!0,category:"people"},woman_with_headscarf:{keywords:["female","hijab","mantilla","tichel"],char:'\u{1f9d5}',fitzpatrick_scale:!0,category:"people"},woman_with_turban:{keywords:["female","indian","hinduism","arabs","woman"],char:'\u{1f473}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_with_turban:{keywords:["male","indian","hinduism","arabs"],char:'\u{1f473}',fitzpatrick_scale:!0,category:"people"},policewoman:{keywords:["woman","police","law","legal","enforcement","arrest","911","female"],char:'\u{1f46e}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},policeman:{keywords:["man","police","law","legal","enforcement","arrest","911"],char:'\u{1f46e}',fitzpatrick_scale:!0,category:"people"},construction_worker_woman:{keywords:["female","human","wip","build","construction","worker","labor","woman"],char:'\u{1f477}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},construction_worker_man:{keywords:["male","human","wip","guy","build","construction","worker","labor"],char:'\u{1f477}',fitzpatrick_scale:!0,category:"people"},guardswoman:{keywords:["uk","gb","british","female","royal","woman"],char:'\u{1f482}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},guardsman:{keywords:["uk","gb","british","male","guy","royal"],char:'\u{1f482}',fitzpatrick_scale:!0,category:"people"},female_detective:{keywords:["human","spy","detective","female","woman"],char:'\u{1f575}\ufe0f\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},male_detective:{keywords:["human","spy","detective"],char:'\u{1f575}',fitzpatrick_scale:!0,category:"people"},woman_health_worker:{keywords:["doctor","nurse","therapist","healthcare","woman","human"],char:'\u{1f469}\u200d\u2695\ufe0f',fitzpatrick_scale:!0,category:"people"},man_health_worker:{keywords:["doctor","nurse","therapist","healthcare","man","human"],char:'\u{1f468}\u200d\u2695\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_farmer:{keywords:["rancher","gardener","woman","human"],char:'\u{1f469}\u200d\u{1f33e}',fitzpatrick_scale:!0,category:"people"},man_farmer:{keywords:["rancher","gardener","man","human"],char:'\u{1f468}\u200d\u{1f33e}',fitzpatrick_scale:!0,category:"people"},woman_cook:{keywords:["chef","woman","human"],char:'\u{1f469}\u200d\u{1f373}',fitzpatrick_scale:!0,category:"people"},man_cook:{keywords:["chef","man","human"],char:'\u{1f468}\u200d\u{1f373}',fitzpatrick_scale:!0,category:"people"},woman_student:{keywords:["graduate","woman","human"],char:'\u{1f469}\u200d\u{1f393}',fitzpatrick_scale:!0,category:"people"},man_student:{keywords:["graduate","man","human"],char:'\u{1f468}\u200d\u{1f393}',fitzpatrick_scale:!0,category:"people"},woman_singer:{keywords:["rockstar","entertainer","woman","human"],char:'\u{1f469}\u200d\u{1f3a4}',fitzpatrick_scale:!0,category:"people"},man_singer:{keywords:["rockstar","entertainer","man","human"],char:'\u{1f468}\u200d\u{1f3a4}',fitzpatrick_scale:!0,category:"people"},woman_teacher:{keywords:["instructor","professor","woman","human"],char:'\u{1f469}\u200d\u{1f3eb}',fitzpatrick_scale:!0,category:"people"},man_teacher:{keywords:["instructor","professor","man","human"],char:'\u{1f468}\u200d\u{1f3eb}',fitzpatrick_scale:!0,category:"people"},woman_factory_worker:{keywords:["assembly","industrial","woman","human"],char:'\u{1f469}\u200d\u{1f3ed}',fitzpatrick_scale:!0,category:"people"},man_factory_worker:{keywords:["assembly","industrial","man","human"],char:'\u{1f468}\u200d\u{1f3ed}',fitzpatrick_scale:!0,category:"people"},woman_technologist:{keywords:["coder","developer","engineer","programmer","software","woman","human","laptop","computer"],char:'\u{1f469}\u200d\u{1f4bb}',fitzpatrick_scale:!0,category:"people"},man_technologist:{keywords:["coder","developer","engineer","programmer","software","man","human","laptop","computer"],char:'\u{1f468}\u200d\u{1f4bb}',fitzpatrick_scale:!0,category:"people"},woman_office_worker:{keywords:["business","manager","woman","human"],char:'\u{1f469}\u200d\u{1f4bc}',fitzpatrick_scale:!0,category:"people"},man_office_worker:{keywords:["business","manager","man","human"],char:'\u{1f468}\u200d\u{1f4bc}',fitzpatrick_scale:!0,category:"people"},woman_mechanic:{keywords:["plumber","woman","human","wrench"],char:'\u{1f469}\u200d\u{1f527}',fitzpatrick_scale:!0,category:"people"},man_mechanic:{keywords:["plumber","man","human","wrench"],char:'\u{1f468}\u200d\u{1f527}',fitzpatrick_scale:!0,category:"people"},woman_scientist:{keywords:["biologist","chemist","engineer","physicist","woman","human"],char:'\u{1f469}\u200d\u{1f52c}',fitzpatrick_scale:!0,category:"people"},man_scientist:{keywords:["biologist","chemist","engineer","physicist","man","human"],char:'\u{1f468}\u200d\u{1f52c}',fitzpatrick_scale:!0,category:"people"},woman_artist:{keywords:["painter","woman","human"],char:'\u{1f469}\u200d\u{1f3a8}',fitzpatrick_scale:!0,category:"people"},man_artist:{keywords:["painter","man","human"],char:'\u{1f468}\u200d\u{1f3a8}',fitzpatrick_scale:!0,category:"people"},woman_firefighter:{keywords:["fireman","woman","human"],char:'\u{1f469}\u200d\u{1f692}',fitzpatrick_scale:!0,category:"people"},man_firefighter:{keywords:["fireman","man","human"],char:'\u{1f468}\u200d\u{1f692}',fitzpatrick_scale:!0,category:"people"},woman_pilot:{keywords:["aviator","plane","woman","human"],char:'\u{1f469}\u200d\u2708\ufe0f',fitzpatrick_scale:!0,category:"people"},man_pilot:{keywords:["aviator","plane","man","human"],char:'\u{1f468}\u200d\u2708\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_astronaut:{keywords:["space","rocket","woman","human"],char:'\u{1f469}\u200d\u{1f680}',fitzpatrick_scale:!0,category:"people"},man_astronaut:{keywords:["space","rocket","man","human"],char:'\u{1f468}\u200d\u{1f680}',fitzpatrick_scale:!0,category:"people"},woman_judge:{keywords:["justice","court","woman","human"],char:'\u{1f469}\u200d\u2696\ufe0f',fitzpatrick_scale:!0,category:"people"},man_judge:{keywords:["justice","court","man","human"],char:'\u{1f468}\u200d\u2696\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_superhero:{keywords:["woman","female","good","heroine","superpowers"],char:'\u{1f9b8}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_superhero:{keywords:["man","male","good","hero","superpowers"],char:'\u{1f9b8}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_supervillain:{keywords:["woman","female","evil","bad","criminal","heroine","superpowers"],char:'\u{1f9b9}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_supervillain:{keywords:["man","male","evil","bad","criminal","hero","superpowers"],char:'\u{1f9b9}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},mrs_claus:{keywords:["woman","female","xmas","mother christmas"],char:'\u{1f936}',fitzpatrick_scale:!0,category:"people"},santa:{keywords:["festival","man","male","xmas","father christmas"],char:'\u{1f385}',fitzpatrick_scale:!0,category:"people"},sorceress:{keywords:["woman","female","mage","witch"],char:'\u{1f9d9}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},wizard:{keywords:["man","male","mage","sorcerer"],char:'\u{1f9d9}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_elf:{keywords:["woman","female"],char:'\u{1f9dd}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_elf:{keywords:["man","male"],char:'\u{1f9dd}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_vampire:{keywords:["woman","female"],char:'\u{1f9db}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_vampire:{keywords:["man","male","dracula"],char:'\u{1f9db}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_zombie:{keywords:["woman","female","undead","walking dead"],char:'\u{1f9df}\u200d\u2640\ufe0f',fitzpatrick_scale:!1,category:"people"},man_zombie:{keywords:["man","male","dracula","undead","walking dead"],char:'\u{1f9df}\u200d\u2642\ufe0f',fitzpatrick_scale:!1,category:"people"},woman_genie:{keywords:["woman","female"],char:'\u{1f9de}\u200d\u2640\ufe0f',fitzpatrick_scale:!1,category:"people"},man_genie:{keywords:["man","male"],char:'\u{1f9de}\u200d\u2642\ufe0f',fitzpatrick_scale:!1,category:"people"},mermaid:{keywords:["woman","female","merwoman","ariel"],char:'\u{1f9dc}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},merman:{keywords:["man","male","triton"],char:'\u{1f9dc}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_fairy:{keywords:["woman","female"],char:'\u{1f9da}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_fairy:{keywords:["man","male"],char:'\u{1f9da}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},angel:{keywords:["heaven","wings","halo"],char:'\u{1f47c}',fitzpatrick_scale:!0,category:"people"},pregnant_woman:{keywords:["baby"],char:'\u{1f930}',fitzpatrick_scale:!0,category:"people"},breastfeeding:{keywords:["nursing","baby"],char:'\u{1f931}',fitzpatrick_scale:!0,category:"people"},princess:{keywords:["girl","woman","female","blond","crown","royal","queen"],char:'\u{1f478}',fitzpatrick_scale:!0,category:"people"},prince:{keywords:["boy","man","male","crown","royal","king"],char:'\u{1f934}',fitzpatrick_scale:!0,category:"people"},bride_with_veil:{keywords:["couple","marriage","wedding","woman","bride"],char:'\u{1f470}',fitzpatrick_scale:!0,category:"people"},man_in_tuxedo:{keywords:["couple","marriage","wedding","groom"],char:'\u{1f935}',fitzpatrick_scale:!0,category:"people"},running_woman:{keywords:["woman","walking","exercise","race","running","female"],char:'\u{1f3c3}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},running_man:{keywords:["man","walking","exercise","race","running"],char:'\u{1f3c3}',fitzpatrick_scale:!0,category:"people"},walking_woman:{keywords:["human","feet","steps","woman","female"],char:'\u{1f6b6}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},walking_man:{keywords:["human","feet","steps"],char:'\u{1f6b6}',fitzpatrick_scale:!0,category:"people"},dancer:{keywords:["female","girl","woman","fun"],char:'\u{1f483}',fitzpatrick_scale:!0,category:"people"},man_dancing:{keywords:["male","boy","fun","dancer"],char:'\u{1f57a}',fitzpatrick_scale:!0,category:"people"},dancing_women:{keywords:["female","bunny","women","girls"],char:'\u{1f46f}',fitzpatrick_scale:!1,category:"people"},dancing_men:{keywords:["male","bunny","men","boys"],char:'\u{1f46f}\u200d\u2642\ufe0f',fitzpatrick_scale:!1,category:"people"},couple:{keywords:["pair","people","human","love","date","dating","like","affection","valentines","marriage"],char:'\u{1f46b}',fitzpatrick_scale:!1,category:"people"},two_men_holding_hands:{keywords:["pair","couple","love","like","bromance","friendship","people","human"],char:'\u{1f46c}',fitzpatrick_scale:!1,category:"people"},two_women_holding_hands:{keywords:["pair","friendship","couple","love","like","female","people","human"],char:'\u{1f46d}',fitzpatrick_scale:!1,category:"people"},bowing_woman:{keywords:["woman","female","girl"],char:'\u{1f647}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},bowing_man:{keywords:["man","male","boy"],char:'\u{1f647}',fitzpatrick_scale:!0,category:"people"},man_facepalming:{keywords:["man","male","boy","disbelief"],char:'\u{1f926}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_facepalming:{keywords:["woman","female","girl","disbelief"],char:'\u{1f926}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_shrugging:{keywords:["woman","female","girl","confused","indifferent","doubt"],char:'\u{1f937}',fitzpatrick_scale:!0,category:"people"},man_shrugging:{keywords:["man","male","boy","confused","indifferent","doubt"],char:'\u{1f937}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},tipping_hand_woman:{keywords:["female","girl","woman","human","information"],char:'\u{1f481}',fitzpatrick_scale:!0,category:"people"},tipping_hand_man:{keywords:["male","boy","man","human","information"],char:'\u{1f481}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},no_good_woman:{keywords:["female","girl","woman","nope"],char:'\u{1f645}',fitzpatrick_scale:!0,category:"people"},no_good_man:{keywords:["male","boy","man","nope"],char:'\u{1f645}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},ok_woman:{keywords:["women","girl","female","pink","human","woman"],char:'\u{1f646}',fitzpatrick_scale:!0,category:"people"},ok_man:{keywords:["men","boy","male","blue","human","man"],char:'\u{1f646}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},raising_hand_woman:{keywords:["female","girl","woman"],char:'\u{1f64b}',fitzpatrick_scale:!0,category:"people"},raising_hand_man:{keywords:["male","boy","man"],char:'\u{1f64b}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},pouting_woman:{keywords:["female","girl","woman"],char:'\u{1f64e}',fitzpatrick_scale:!0,category:"people"},pouting_man:{keywords:["male","boy","man"],char:'\u{1f64e}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},frowning_woman:{keywords:["female","girl","woman","sad","depressed","discouraged","unhappy"],char:'\u{1f64d}',fitzpatrick_scale:!0,category:"people"},frowning_man:{keywords:["male","boy","man","sad","depressed","discouraged","unhappy"],char:'\u{1f64d}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},haircut_woman:{keywords:["female","girl","woman"],char:'\u{1f487}',fitzpatrick_scale:!0,category:"people"},haircut_man:{keywords:["male","boy","man"],char:'\u{1f487}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},massage_woman:{keywords:["female","girl","woman","head"],char:'\u{1f486}',fitzpatrick_scale:!0,category:"people"},massage_man:{keywords:["male","boy","man","head"],char:'\u{1f486}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},woman_in_steamy_room:{keywords:["female","woman","spa","steamroom","sauna"],char:'\u{1f9d6}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"people"},man_in_steamy_room:{keywords:["male","man","spa","steamroom","sauna"],char:'\u{1f9d6}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"people"},couple_with_heart_woman_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'\u{1f491}',fitzpatrick_scale:!1,category:"people"},couple_with_heart_woman_woman:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'\u{1f469}\u200d\u2764\ufe0f\u200d\u{1f469}',fitzpatrick_scale:!1,category:"people"},couple_with_heart_man_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:'\u{1f468}\u200d\u2764\ufe0f\u200d\u{1f468}',fitzpatrick_scale:!1,category:"people"},couplekiss_man_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:'\u{1f48f}',fitzpatrick_scale:!1,category:"people"},couplekiss_woman_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:'\u{1f469}\u200d\u2764\ufe0f\u200d\u{1f48b}\u200d\u{1f469}',fitzpatrick_scale:!1,category:"people"},couplekiss_man_man:{keywords:["pair","valentines","love","like","dating","marriage"],char:'\u{1f468}\u200d\u2764\ufe0f\u200d\u{1f48b}\u200d\u{1f468}',fitzpatrick_scale:!1,category:"people"},family_man_woman_boy:{keywords:["home","parents","child","mom","dad","father","mother","people","human"],char:'\u{1f46a}',fitzpatrick_scale:!1,category:"people"},family_man_woman_girl:{keywords:["home","parents","people","human","child"],char:'\u{1f468}\u200d\u{1f469}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f469}\u200d\u{1f466}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f469}\u200d\u{1f469}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl:{keywords:["home","parents","people","human","children"],char:'\u{1f469}\u200d\u{1f469}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f469}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f469}\u200d\u{1f469}\u200d\u{1f466}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:'\u{1f469}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_man_man_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f468}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_man_girl:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f468}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_man_man_girl_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f468}\u200d\u{1f467}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_man_boy_boy:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f468}\u200d\u{1f466}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_man_girl_girl:{keywords:["home","parents","people","human","children"],char:'\u{1f468}\u200d\u{1f468}\u200d\u{1f467}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_woman_boy:{keywords:["home","parent","people","human","child"],char:'\u{1f469}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_girl:{keywords:["home","parent","people","human","child"],char:'\u{1f469}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_woman_girl_boy:{keywords:["home","parent","people","human","children"],char:'\u{1f469}\u200d\u{1f467}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_boy_boy:{keywords:["home","parent","people","human","children"],char:'\u{1f469}\u200d\u{1f466}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_woman_girl_girl:{keywords:["home","parent","people","human","children"],char:'\u{1f469}\u200d\u{1f467}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_man_boy:{keywords:["home","parent","people","human","child"],char:'\u{1f468}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_girl:{keywords:["home","parent","people","human","child"],char:'\u{1f468}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},family_man_girl_boy:{keywords:["home","parent","people","human","children"],char:'\u{1f468}\u200d\u{1f467}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_boy_boy:{keywords:["home","parent","people","human","children"],char:'\u{1f468}\u200d\u{1f466}\u200d\u{1f466}',fitzpatrick_scale:!1,category:"people"},family_man_girl_girl:{keywords:["home","parent","people","human","children"],char:'\u{1f468}\u200d\u{1f467}\u200d\u{1f467}',fitzpatrick_scale:!1,category:"people"},yarn:{keywords:["ball","crochet","knit"],char:'\u{1f9f6}',fitzpatrick_scale:!1,category:"people"},thread:{keywords:["needle","sewing","spool","string"],char:'\u{1f9f5}',fitzpatrick_scale:!1,category:"people"},coat:{keywords:["jacket"],char:'\u{1f9e5}',fitzpatrick_scale:!1,category:"people"},labcoat:{keywords:["doctor","experiment","scientist","chemist"],char:'\u{1f97c}',fitzpatrick_scale:!1,category:"people"},womans_clothes:{keywords:["fashion","shopping_bags","female"],char:'\u{1f45a}',fitzpatrick_scale:!1,category:"people"},tshirt:{keywords:["fashion","cloth","casual","shirt","tee"],char:'\u{1f455}',fitzpatrick_scale:!1,category:"people"},jeans:{keywords:["fashion","shopping"],char:'\u{1f456}',fitzpatrick_scale:!1,category:"people"},necktie:{keywords:["shirt","suitup","formal","fashion","cloth","business"],char:'\u{1f454}',fitzpatrick_scale:!1,category:"people"},dress:{keywords:["clothes","fashion","shopping"],char:'\u{1f457}',fitzpatrick_scale:!1,category:"people"},bikini:{keywords:["swimming","female","woman","girl","fashion","beach","summer"],char:'\u{1f459}',fitzpatrick_scale:!1,category:"people"},kimono:{keywords:["dress","fashion","women","female","japanese"],char:'\u{1f458}',fitzpatrick_scale:!1,category:"people"},lipstick:{keywords:["female","girl","fashion","woman"],char:'\u{1f484}',fitzpatrick_scale:!1,category:"people"},kiss:{keywords:["face","lips","love","like","affection","valentines"],char:'\u{1f48b}',fitzpatrick_scale:!1,category:"people"},footprints:{keywords:["feet","tracking","walking","beach"],char:'\u{1f463}',fitzpatrick_scale:!1,category:"people"},flat_shoe:{keywords:["ballet","slip-on","slipper"],char:'\u{1f97f}',fitzpatrick_scale:!1,category:"people"},high_heel:{keywords:["fashion","shoes","female","pumps","stiletto"],char:'\u{1f460}',fitzpatrick_scale:!1,category:"people"},sandal:{keywords:["shoes","fashion","flip flops"],char:'\u{1f461}',fitzpatrick_scale:!1,category:"people"},boot:{keywords:["shoes","fashion"],char:'\u{1f462}',fitzpatrick_scale:!1,category:"people"},mans_shoe:{keywords:["fashion","male"],char:'\u{1f45e}',fitzpatrick_scale:!1,category:"people"},athletic_shoe:{keywords:["shoes","sports","sneakers"],char:'\u{1f45f}',fitzpatrick_scale:!1,category:"people"},hiking_boot:{keywords:["backpacking","camping","hiking"],char:'\u{1f97e}',fitzpatrick_scale:!1,category:"people"},socks:{keywords:["stockings","clothes"],char:'\u{1f9e6}',fitzpatrick_scale:!1,category:"people"},gloves:{keywords:["hands","winter","clothes"],char:'\u{1f9e4}',fitzpatrick_scale:!1,category:"people"},scarf:{keywords:["neck","winter","clothes"],char:'\u{1f9e3}',fitzpatrick_scale:!1,category:"people"},womans_hat:{keywords:["fashion","accessories","female","lady","spring"],char:'\u{1f452}',fitzpatrick_scale:!1,category:"people"},tophat:{keywords:["magic","gentleman","classy","circus"],char:'\u{1f3a9}',fitzpatrick_scale:!1,category:"people"},billed_hat:{keywords:["cap","baseball"],char:'\u{1f9e2}',fitzpatrick_scale:!1,category:"people"},rescue_worker_helmet:{keywords:["construction","build"],char:'\u26d1',fitzpatrick_scale:!1,category:"people"},mortar_board:{keywords:["school","college","degree","university","graduation","cap","hat","legal","learn","education"],char:'\u{1f393}',fitzpatrick_scale:!1,category:"people"},crown:{keywords:["king","kod","leader","royalty","lord"],char:'\u{1f451}',fitzpatrick_scale:!1,category:"people"},school_satchel:{keywords:["student","education","bag","backpack"],char:'\u{1f392}',fitzpatrick_scale:!1,category:"people"},luggage:{keywords:["packing","travel"],char:'\u{1f9f3}',fitzpatrick_scale:!1,category:"people"},pouch:{keywords:["bag","accessories","shopping"],char:'\u{1f45d}',fitzpatrick_scale:!1,category:"people"},purse:{keywords:["fashion","accessories","money","sales","shopping"],char:'\u{1f45b}',fitzpatrick_scale:!1,category:"people"},handbag:{keywords:["fashion","accessory","accessories","shopping"],char:'\u{1f45c}',fitzpatrick_scale:!1,category:"people"},briefcase:{keywords:["business","documents","work","law","legal","job","career"],char:'\u{1f4bc}',fitzpatrick_scale:!1,category:"people"},eyeglasses:{keywords:["fashion","accessories","eyesight","nerdy","dork","geek"],char:'\u{1f453}',fitzpatrick_scale:!1,category:"people"},dark_sunglasses:{keywords:["face","cool","accessories"],char:'\u{1f576}',fitzpatrick_scale:!1,category:"people"},goggles:{keywords:["eyes","protection","safety"],char:'\u{1f97d}',fitzpatrick_scale:!1,category:"people"},ring:{keywords:["wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],char:'\u{1f48d}',fitzpatrick_scale:!1,category:"people"},closed_umbrella:{keywords:["weather","rain","drizzle"],char:'\u{1f302}',fitzpatrick_scale:!1,category:"people"},dog:{keywords:["animal","friend","nature","woof","puppy","pet","faithful"],char:'\u{1f436}',fitzpatrick_scale:!1,category:"animals_and_nature"},cat:{keywords:["animal","meow","nature","pet","kitten"],char:'\u{1f431}',fitzpatrick_scale:!1,category:"animals_and_nature"},mouse:{keywords:["animal","nature","cheese_wedge","rodent"],char:'\u{1f42d}',fitzpatrick_scale:!1,category:"animals_and_nature"},hamster:{keywords:["animal","nature"],char:'\u{1f439}',fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit:{keywords:["animal","nature","pet","spring","magic","bunny"],char:'\u{1f430}',fitzpatrick_scale:!1,category:"animals_and_nature"},fox_face:{keywords:["animal","nature","face"],char:'\u{1f98a}',fitzpatrick_scale:!1,category:"animals_and_nature"},bear:{keywords:["animal","nature","wild"],char:'\u{1f43b}',fitzpatrick_scale:!1,category:"animals_and_nature"},panda_face:{keywords:["animal","nature","panda"],char:'\u{1f43c}',fitzpatrick_scale:!1,category:"animals_and_nature"},koala:{keywords:["animal","nature"],char:'\u{1f428}',fitzpatrick_scale:!1,category:"animals_and_nature"},tiger:{keywords:["animal","cat","danger","wild","nature","roar"],char:'\u{1f42f}',fitzpatrick_scale:!1,category:"animals_and_nature"},lion:{keywords:["animal","nature"],char:'\u{1f981}',fitzpatrick_scale:!1,category:"animals_and_nature"},cow:{keywords:["beef","ox","animal","nature","moo","milk"],char:'\u{1f42e}',fitzpatrick_scale:!1,category:"animals_and_nature"},pig:{keywords:["animal","oink","nature"],char:'\u{1f437}',fitzpatrick_scale:!1,category:"animals_and_nature"},pig_nose:{keywords:["animal","oink"],char:'\u{1f43d}',fitzpatrick_scale:!1,category:"animals_and_nature"},frog:{keywords:["animal","nature","croak","toad"],char:'\u{1f438}',fitzpatrick_scale:!1,category:"animals_and_nature"},squid:{keywords:["animal","nature","ocean","sea"],char:'\u{1f991}',fitzpatrick_scale:!1,category:"animals_and_nature"},octopus:{keywords:["animal","creature","ocean","sea","nature","beach"],char:'\u{1f419}',fitzpatrick_scale:!1,category:"animals_and_nature"},shrimp:{keywords:["animal","ocean","nature","seafood"],char:'\u{1f990}',fitzpatrick_scale:!1,category:"animals_and_nature"},monkey_face:{keywords:["animal","nature","circus"],char:'\u{1f435}',fitzpatrick_scale:!1,category:"animals_and_nature"},gorilla:{keywords:["animal","nature","circus"],char:'\u{1f98d}',fitzpatrick_scale:!1,category:"animals_and_nature"},see_no_evil:{keywords:["monkey","animal","nature","haha"],char:'\u{1f648}',fitzpatrick_scale:!1,category:"animals_and_nature"},hear_no_evil:{keywords:["animal","monkey","nature"],char:'\u{1f649}',fitzpatrick_scale:!1,category:"animals_and_nature"},speak_no_evil:{keywords:["monkey","animal","nature","omg"],char:'\u{1f64a}',fitzpatrick_scale:!1,category:"animals_and_nature"},monkey:{keywords:["animal","nature","banana","circus"],char:'\u{1f412}',fitzpatrick_scale:!1,category:"animals_and_nature"},chicken:{keywords:["animal","cluck","nature","bird"],char:'\u{1f414}',fitzpatrick_scale:!1,category:"animals_and_nature"},penguin:{keywords:["animal","nature"],char:'\u{1f427}',fitzpatrick_scale:!1,category:"animals_and_nature"},bird:{keywords:["animal","nature","fly","tweet","spring"],char:'\u{1f426}',fitzpatrick_scale:!1,category:"animals_and_nature"},baby_chick:{keywords:["animal","chicken","bird"],char:'\u{1f424}',fitzpatrick_scale:!1,category:"animals_and_nature"},hatching_chick:{keywords:["animal","chicken","egg","born","baby","bird"],char:'\u{1f423}',fitzpatrick_scale:!1,category:"animals_and_nature"},hatched_chick:{keywords:["animal","chicken","baby","bird"],char:'\u{1f425}',fitzpatrick_scale:!1,category:"animals_and_nature"},duck:{keywords:["animal","nature","bird","mallard"],char:'\u{1f986}',fitzpatrick_scale:!1,category:"animals_and_nature"},eagle:{keywords:["animal","nature","bird"],char:'\u{1f985}',fitzpatrick_scale:!1,category:"animals_and_nature"},owl:{keywords:["animal","nature","bird","hoot"],char:'\u{1f989}',fitzpatrick_scale:!1,category:"animals_and_nature"},bat:{keywords:["animal","nature","blind","vampire"],char:'\u{1f987}',fitzpatrick_scale:!1,category:"animals_and_nature"},wolf:{keywords:["animal","nature","wild"],char:'\u{1f43a}',fitzpatrick_scale:!1,category:"animals_and_nature"},boar:{keywords:["animal","nature"],char:'\u{1f417}',fitzpatrick_scale:!1,category:"animals_and_nature"},horse:{keywords:["animal","brown","nature"],char:'\u{1f434}',fitzpatrick_scale:!1,category:"animals_and_nature"},unicorn:{keywords:["animal","nature","mystical"],char:'\u{1f984}',fitzpatrick_scale:!1,category:"animals_and_nature"},honeybee:{keywords:["animal","insect","nature","bug","spring","honey"],char:'\u{1f41d}',fitzpatrick_scale:!1,category:"animals_and_nature"},bug:{keywords:["animal","insect","nature","worm"],char:'\u{1f41b}',fitzpatrick_scale:!1,category:"animals_and_nature"},butterfly:{keywords:["animal","insect","nature","caterpillar"],char:'\u{1f98b}',fitzpatrick_scale:!1,category:"animals_and_nature"},snail:{keywords:["slow","animal","shell"],char:'\u{1f40c}',fitzpatrick_scale:!1,category:"animals_and_nature"},beetle:{keywords:["animal","insect","nature","ladybug"],char:'\u{1f41e}',fitzpatrick_scale:!1,category:"animals_and_nature"},ant:{keywords:["animal","insect","nature","bug"],char:'\u{1f41c}',fitzpatrick_scale:!1,category:"animals_and_nature"},grasshopper:{keywords:["animal","cricket","chirp"],char:'\u{1f997}',fitzpatrick_scale:!1,category:"animals_and_nature"},spider:{keywords:["animal","arachnid"],char:'\u{1f577}',fitzpatrick_scale:!1,category:"animals_and_nature"},scorpion:{keywords:["animal","arachnid"],char:'\u{1f982}',fitzpatrick_scale:!1,category:"animals_and_nature"},crab:{keywords:["animal","crustacean"],char:'\u{1f980}',fitzpatrick_scale:!1,category:"animals_and_nature"},snake:{keywords:["animal","evil","nature","hiss","python"],char:'\u{1f40d}',fitzpatrick_scale:!1,category:"animals_and_nature"},lizard:{keywords:["animal","nature","reptile"],char:'\u{1f98e}',fitzpatrick_scale:!1,category:"animals_and_nature"},"t-rex":{keywords:["animal","nature","dinosaur","tyrannosaurus","extinct"],char:'\u{1f996}',fitzpatrick_scale:!1,category:"animals_and_nature"},sauropod:{keywords:["animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],char:'\u{1f995}',fitzpatrick_scale:!1,category:"animals_and_nature"},turtle:{keywords:["animal","slow","nature","tortoise"],char:'\u{1f422}',fitzpatrick_scale:!1,category:"animals_and_nature"},tropical_fish:{keywords:["animal","swim","ocean","beach","nemo"],char:'\u{1f420}',fitzpatrick_scale:!1,category:"animals_and_nature"},fish:{keywords:["animal","food","nature"],char:'\u{1f41f}',fitzpatrick_scale:!1,category:"animals_and_nature"},blowfish:{keywords:["animal","nature","food","sea","ocean"],char:'\u{1f421}',fitzpatrick_scale:!1,category:"animals_and_nature"},dolphin:{keywords:["animal","nature","fish","sea","ocean","flipper","fins","beach"],char:'\u{1f42c}',fitzpatrick_scale:!1,category:"animals_and_nature"},shark:{keywords:["animal","nature","fish","sea","ocean","jaws","fins","beach"],char:'\u{1f988}',fitzpatrick_scale:!1,category:"animals_and_nature"},whale:{keywords:["animal","nature","sea","ocean"],char:'\u{1f433}',fitzpatrick_scale:!1,category:"animals_and_nature"},whale2:{keywords:["animal","nature","sea","ocean"],char:'\u{1f40b}',fitzpatrick_scale:!1,category:"animals_and_nature"},crocodile:{keywords:["animal","nature","reptile","lizard","alligator"],char:'\u{1f40a}',fitzpatrick_scale:!1,category:"animals_and_nature"},leopard:{keywords:["animal","nature"],char:'\u{1f406}',fitzpatrick_scale:!1,category:"animals_and_nature"},zebra:{keywords:["animal","nature","stripes","safari"],char:'\u{1f993}',fitzpatrick_scale:!1,category:"animals_and_nature"},tiger2:{keywords:["animal","nature","roar"],char:'\u{1f405}',fitzpatrick_scale:!1,category:"animals_and_nature"},water_buffalo:{keywords:["animal","nature","ox","cow"],char:'\u{1f403}',fitzpatrick_scale:!1,category:"animals_and_nature"},ox:{keywords:["animal","cow","beef"],char:'\u{1f402}',fitzpatrick_scale:!1,category:"animals_and_nature"},cow2:{keywords:["beef","ox","animal","nature","moo","milk"],char:'\u{1f404}',fitzpatrick_scale:!1,category:"animals_and_nature"},deer:{keywords:["animal","nature","horns","venison"],char:'\u{1f98c}',fitzpatrick_scale:!1,category:"animals_and_nature"},dromedary_camel:{keywords:["animal","hot","desert","hump"],char:'\u{1f42a}',fitzpatrick_scale:!1,category:"animals_and_nature"},camel:{keywords:["animal","nature","hot","desert","hump"],char:'\u{1f42b}',fitzpatrick_scale:!1,category:"animals_and_nature"},giraffe:{keywords:["animal","nature","spots","safari"],char:'\u{1f992}',fitzpatrick_scale:!1,category:"animals_and_nature"},elephant:{keywords:["animal","nature","nose","th","circus"],char:'\u{1f418}',fitzpatrick_scale:!1,category:"animals_and_nature"},rhinoceros:{keywords:["animal","nature","horn"],char:'\u{1f98f}',fitzpatrick_scale:!1,category:"animals_and_nature"},goat:{keywords:["animal","nature"],char:'\u{1f410}',fitzpatrick_scale:!1,category:"animals_and_nature"},ram:{keywords:["animal","sheep","nature"],char:'\u{1f40f}',fitzpatrick_scale:!1,category:"animals_and_nature"},sheep:{keywords:["animal","nature","wool","shipit"],char:'\u{1f411}',fitzpatrick_scale:!1,category:"animals_and_nature"},racehorse:{keywords:["animal","gamble","luck"],char:'\u{1f40e}',fitzpatrick_scale:!1,category:"animals_and_nature"},pig2:{keywords:["animal","nature"],char:'\u{1f416}',fitzpatrick_scale:!1,category:"animals_and_nature"},rat:{keywords:["animal","mouse","rodent"],char:'\u{1f400}',fitzpatrick_scale:!1,category:"animals_and_nature"},mouse2:{keywords:["animal","nature","rodent"],char:'\u{1f401}',fitzpatrick_scale:!1,category:"animals_and_nature"},rooster:{keywords:["animal","nature","chicken"],char:'\u{1f413}',fitzpatrick_scale:!1,category:"animals_and_nature"},turkey:{keywords:["animal","bird"],char:'\u{1f983}',fitzpatrick_scale:!1,category:"animals_and_nature"},dove:{keywords:["animal","bird"],char:'\u{1f54a}',fitzpatrick_scale:!1,category:"animals_and_nature"},dog2:{keywords:["animal","nature","friend","doge","pet","faithful"],char:'\u{1f415}',fitzpatrick_scale:!1,category:"animals_and_nature"},poodle:{keywords:["dog","animal","101","nature","pet"],char:'\u{1f429}',fitzpatrick_scale:!1,category:"animals_and_nature"},cat2:{keywords:["animal","meow","pet","cats"],char:'\u{1f408}',fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit2:{keywords:["animal","nature","pet","magic","spring"],char:'\u{1f407}',fitzpatrick_scale:!1,category:"animals_and_nature"},chipmunk:{keywords:["animal","nature","rodent","squirrel"],char:'\u{1f43f}',fitzpatrick_scale:!1,category:"animals_and_nature"},hedgehog:{keywords:["animal","nature","spiny"],char:'\u{1f994}',fitzpatrick_scale:!1,category:"animals_and_nature"},raccoon:{keywords:["animal","nature"],char:'\u{1f99d}',fitzpatrick_scale:!1,category:"animals_and_nature"},llama:{keywords:["animal","nature","alpaca"],char:'\u{1f999}',fitzpatrick_scale:!1,category:"animals_and_nature"},hippopotamus:{keywords:["animal","nature"],char:'\u{1f99b}',fitzpatrick_scale:!1,category:"animals_and_nature"},kangaroo:{keywords:["animal","nature","australia","joey","hop","marsupial"],char:'\u{1f998}',fitzpatrick_scale:!1,category:"animals_and_nature"},badger:{keywords:["animal","nature","honey"],char:'\u{1f9a1}',fitzpatrick_scale:!1,category:"animals_and_nature"},swan:{keywords:["animal","nature","bird"],char:'\u{1f9a2}',fitzpatrick_scale:!1,category:"animals_and_nature"},peacock:{keywords:["animal","nature","peahen","bird"],char:'\u{1f99a}',fitzpatrick_scale:!1,category:"animals_and_nature"},parrot:{keywords:["animal","nature","bird","pirate","talk"],char:'\u{1f99c}',fitzpatrick_scale:!1,category:"animals_and_nature"},lobster:{keywords:["animal","nature","bisque","claws","seafood"],char:'\u{1f99e}',fitzpatrick_scale:!1,category:"animals_and_nature"},mosquito:{keywords:["animal","nature","insect","malaria"],char:'\u{1f99f}',fitzpatrick_scale:!1,category:"animals_and_nature"},paw_prints:{keywords:["animal","tracking","footprints","dog","cat","pet","feet"],char:'\u{1f43e}',fitzpatrick_scale:!1,category:"animals_and_nature"},dragon:{keywords:["animal","myth","nature","chinese","green"],char:'\u{1f409}',fitzpatrick_scale:!1,category:"animals_and_nature"},dragon_face:{keywords:["animal","myth","nature","chinese","green"],char:'\u{1f432}',fitzpatrick_scale:!1,category:"animals_and_nature"},cactus:{keywords:["vegetable","plant","nature"],char:'\u{1f335}',fitzpatrick_scale:!1,category:"animals_and_nature"},christmas_tree:{keywords:["festival","vacation","december","xmas","celebration"],char:'\u{1f384}',fitzpatrick_scale:!1,category:"animals_and_nature"},evergreen_tree:{keywords:["plant","nature"],char:'\u{1f332}',fitzpatrick_scale:!1,category:"animals_and_nature"},deciduous_tree:{keywords:["plant","nature"],char:'\u{1f333}',fitzpatrick_scale:!1,category:"animals_and_nature"},palm_tree:{keywords:["plant","vegetable","nature","summer","beach","mojito","tropical"],char:'\u{1f334}',fitzpatrick_scale:!1,category:"animals_and_nature"},seedling:{keywords:["plant","nature","grass","lawn","spring"],char:'\u{1f331}',fitzpatrick_scale:!1,category:"animals_and_nature"},herb:{keywords:["vegetable","plant","medicine","weed","grass","lawn"],char:'\u{1f33f}',fitzpatrick_scale:!1,category:"animals_and_nature"},shamrock:{keywords:["vegetable","plant","nature","irish","clover"],char:'\u2618',fitzpatrick_scale:!1,category:"animals_and_nature"},four_leaf_clover:{keywords:["vegetable","plant","nature","lucky","irish"],char:'\u{1f340}',fitzpatrick_scale:!1,category:"animals_and_nature"},bamboo:{keywords:["plant","nature","vegetable","panda","pine_decoration"],char:'\u{1f38d}',fitzpatrick_scale:!1,category:"animals_and_nature"},tanabata_tree:{keywords:["plant","nature","branch","summer"],char:'\u{1f38b}',fitzpatrick_scale:!1,category:"animals_and_nature"},leaves:{keywords:["nature","plant","tree","vegetable","grass","lawn","spring"],char:'\u{1f343}',fitzpatrick_scale:!1,category:"animals_and_nature"},fallen_leaf:{keywords:["nature","plant","vegetable","leaves"],char:'\u{1f342}',fitzpatrick_scale:!1,category:"animals_and_nature"},maple_leaf:{keywords:["nature","plant","vegetable","ca","fall"],char:'\u{1f341}',fitzpatrick_scale:!1,category:"animals_and_nature"},ear_of_rice:{keywords:["nature","plant"],char:'\u{1f33e}',fitzpatrick_scale:!1,category:"animals_and_nature"},hibiscus:{keywords:["plant","vegetable","flowers","beach"],char:'\u{1f33a}',fitzpatrick_scale:!1,category:"animals_and_nature"},sunflower:{keywords:["nature","plant","fall"],char:'\u{1f33b}',fitzpatrick_scale:!1,category:"animals_and_nature"},rose:{keywords:["flowers","valentines","love","spring"],char:'\u{1f339}',fitzpatrick_scale:!1,category:"animals_and_nature"},wilted_flower:{keywords:["plant","nature","flower"],char:'\u{1f940}',fitzpatrick_scale:!1,category:"animals_and_nature"},tulip:{keywords:["flowers","plant","nature","summer","spring"],char:'\u{1f337}',fitzpatrick_scale:!1,category:"animals_and_nature"},blossom:{keywords:["nature","flowers","yellow"],char:'\u{1f33c}',fitzpatrick_scale:!1,category:"animals_and_nature"},cherry_blossom:{keywords:["nature","plant","spring","flower"],char:'\u{1f338}',fitzpatrick_scale:!1,category:"animals_and_nature"},bouquet:{keywords:["flowers","nature","spring"],char:'\u{1f490}',fitzpatrick_scale:!1,category:"animals_and_nature"},mushroom:{keywords:["plant","vegetable"],char:'\u{1f344}',fitzpatrick_scale:!1,category:"animals_and_nature"},chestnut:{keywords:["food","squirrel"],char:'\u{1f330}',fitzpatrick_scale:!1,category:"animals_and_nature"},jack_o_lantern:{keywords:["halloween","light","pumpkin","creepy","fall"],char:'\u{1f383}',fitzpatrick_scale:!1,category:"animals_and_nature"},shell:{keywords:["nature","sea","beach"],char:'\u{1f41a}',fitzpatrick_scale:!1,category:"animals_and_nature"},spider_web:{keywords:["animal","insect","arachnid","silk"],char:'\u{1f578}',fitzpatrick_scale:!1,category:"animals_and_nature"},earth_americas:{keywords:["globe","world","USA","international"],char:'\u{1f30e}',fitzpatrick_scale:!1,category:"animals_and_nature"},earth_africa:{keywords:["globe","world","international"],char:'\u{1f30d}',fitzpatrick_scale:!1,category:"animals_and_nature"},earth_asia:{keywords:["globe","world","east","international"],char:'\u{1f30f}',fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon:{keywords:["nature","yellow","twilight","planet","space","night","evening","sleep"],char:'\u{1f315}',fitzpatrick_scale:!1,category:"animals_and_nature"},waning_gibbous_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],char:'\u{1f316}',fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f317}',fitzpatrick_scale:!1,category:"animals_and_nature"},waning_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f318}',fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f311}',fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f312}',fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f313}',fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_gibbous_moon:{keywords:["nature","night","sky","gray","twilight","planet","space","evening","sleep"],char:'\u{1f314}',fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f31a}',fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f31d}',fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f31b}',fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:'\u{1f31c}',fitzpatrick_scale:!1,category:"animals_and_nature"},sun_with_face:{keywords:["nature","morning","sky"],char:'\u{1f31e}',fitzpatrick_scale:!1,category:"animals_and_nature"},crescent_moon:{keywords:["night","sleep","sky","evening","magic"],char:'\u{1f319}',fitzpatrick_scale:!1,category:"animals_and_nature"},star:{keywords:["night","yellow"],char:'\u2b50',fitzpatrick_scale:!1,category:"animals_and_nature"},star2:{keywords:["night","sparkle","awesome","good","magic"],char:'\u{1f31f}',fitzpatrick_scale:!1,category:"animals_and_nature"},dizzy:{keywords:["star","sparkle","shoot","magic"],char:'\u{1f4ab}',fitzpatrick_scale:!1,category:"animals_and_nature"},sparkles:{keywords:["stars","shine","shiny","cool","awesome","good","magic"],char:'\u2728',fitzpatrick_scale:!1,category:"animals_and_nature"},comet:{keywords:["space"],char:'\u2604',fitzpatrick_scale:!1,category:"animals_and_nature"},sunny:{keywords:["weather","nature","brightness","summer","beach","spring"],char:'\u2600\ufe0f',fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_small_cloud:{keywords:["weather"],char:'\u{1f324}',fitzpatrick_scale:!1,category:"animals_and_nature"},partly_sunny:{keywords:["weather","nature","cloudy","morning","fall","spring"],char:'\u26c5',fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_large_cloud:{keywords:["weather"],char:'\u{1f325}',fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_rain_cloud:{keywords:["weather"],char:'\u{1f326}',fitzpatrick_scale:!1,category:"animals_and_nature"},cloud:{keywords:["weather","sky"],char:'\u2601\ufe0f',fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_rain:{keywords:["weather"],char:'\u{1f327}',fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning_and_rain:{keywords:["weather","lightning"],char:'\u26c8',fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning:{keywords:["weather","thunder"],char:'\u{1f329}',fitzpatrick_scale:!1,category:"animals_and_nature"},zap:{keywords:["thunder","weather","lightning bolt","fast"],char:'\u26a1',fitzpatrick_scale:!1,category:"animals_and_nature"},fire:{keywords:["hot","cook","flame"],char:'\u{1f525}',fitzpatrick_scale:!1,category:"animals_and_nature"},boom:{keywords:["bomb","explode","explosion","collision","blown"],char:'\u{1f4a5}',fitzpatrick_scale:!1,category:"animals_and_nature"},snowflake:{keywords:["winter","season","cold","weather","christmas","xmas"],char:'\u2744\ufe0f',fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_snow:{keywords:["weather"],char:'\u{1f328}',fitzpatrick_scale:!1,category:"animals_and_nature"},snowman:{keywords:["winter","season","cold","weather","christmas","xmas","frozen","without_snow"],char:'\u26c4',fitzpatrick_scale:!1,category:"animals_and_nature"},snowman_with_snow:{keywords:["winter","season","cold","weather","christmas","xmas","frozen"],char:'\u2603',fitzpatrick_scale:!1,category:"animals_and_nature"},wind_face:{keywords:["gust","air"],char:'\u{1f32c}',fitzpatrick_scale:!1,category:"animals_and_nature"},dash:{keywords:["wind","air","fast","shoo","fart","smoke","puff"],char:'\u{1f4a8}',fitzpatrick_scale:!1,category:"animals_and_nature"},tornado:{keywords:["weather","cyclone","twister"],char:'\u{1f32a}',fitzpatrick_scale:!1,category:"animals_and_nature"},fog:{keywords:["weather"],char:'\u{1f32b}',fitzpatrick_scale:!1,category:"animals_and_nature"},open_umbrella:{keywords:["weather","spring"],char:'\u2602',fitzpatrick_scale:!1,category:"animals_and_nature"},umbrella:{keywords:["rainy","weather","spring"],char:'\u2614',fitzpatrick_scale:!1,category:"animals_and_nature"},droplet:{keywords:["water","drip","faucet","spring"],char:'\u{1f4a7}',fitzpatrick_scale:!1,category:"animals_and_nature"},sweat_drops:{keywords:["water","drip","oops"],char:'\u{1f4a6}',fitzpatrick_scale:!1,category:"animals_and_nature"},ocean:{keywords:["sea","water","wave","nature","tsunami","disaster"],char:'\u{1f30a}',fitzpatrick_scale:!1,category:"animals_and_nature"},green_apple:{keywords:["fruit","nature"],char:'\u{1f34f}',fitzpatrick_scale:!1,category:"food_and_drink"},apple:{keywords:["fruit","mac","school"],char:'\u{1f34e}',fitzpatrick_scale:!1,category:"food_and_drink"},pear:{keywords:["fruit","nature","food"],char:'\u{1f350}',fitzpatrick_scale:!1,category:"food_and_drink"},tangerine:{keywords:["food","fruit","nature","orange"],char:'\u{1f34a}',fitzpatrick_scale:!1,category:"food_and_drink"},lemon:{keywords:["fruit","nature"],char:'\u{1f34b}',fitzpatrick_scale:!1,category:"food_and_drink"},banana:{keywords:["fruit","food","monkey"],char:'\u{1f34c}',fitzpatrick_scale:!1,category:"food_and_drink"},watermelon:{keywords:["fruit","food","picnic","summer"],char:'\u{1f349}',fitzpatrick_scale:!1,category:"food_and_drink"},grapes:{keywords:["fruit","food","wine"],char:'\u{1f347}',fitzpatrick_scale:!1,category:"food_and_drink"},strawberry:{keywords:["fruit","food","nature"],char:'\u{1f353}',fitzpatrick_scale:!1,category:"food_and_drink"},melon:{keywords:["fruit","nature","food"],char:'\u{1f348}',fitzpatrick_scale:!1,category:"food_and_drink"},cherries:{keywords:["food","fruit"],char:'\u{1f352}',fitzpatrick_scale:!1,category:"food_and_drink"},peach:{keywords:["fruit","nature","food"],char:'\u{1f351}',fitzpatrick_scale:!1,category:"food_and_drink"},pineapple:{keywords:["fruit","nature","food"],char:'\u{1f34d}',fitzpatrick_scale:!1,category:"food_and_drink"},coconut:{keywords:["fruit","nature","food","palm"],char:'\u{1f965}',fitzpatrick_scale:!1,category:"food_and_drink"},kiwi_fruit:{keywords:["fruit","food"],char:'\u{1f95d}',fitzpatrick_scale:!1,category:"food_and_drink"},mango:{keywords:["fruit","food","tropical"],char:'\u{1f96d}',fitzpatrick_scale:!1,category:"food_and_drink"},avocado:{keywords:["fruit","food"],char:'\u{1f951}',fitzpatrick_scale:!1,category:"food_and_drink"},broccoli:{keywords:["fruit","food","vegetable"],char:'\u{1f966}',fitzpatrick_scale:!1,category:"food_and_drink"},tomato:{keywords:["fruit","vegetable","nature","food"],char:'\u{1f345}',fitzpatrick_scale:!1,category:"food_and_drink"},eggplant:{keywords:["vegetable","nature","food","aubergine"],char:'\u{1f346}',fitzpatrick_scale:!1,category:"food_and_drink"},cucumber:{keywords:["fruit","food","pickle"],char:'\u{1f952}',fitzpatrick_scale:!1,category:"food_and_drink"},carrot:{keywords:["vegetable","food","orange"],char:'\u{1f955}',fitzpatrick_scale:!1,category:"food_and_drink"},hot_pepper:{keywords:["food","spicy","chilli","chili"],char:'\u{1f336}',fitzpatrick_scale:!1,category:"food_and_drink"},potato:{keywords:["food","tuber","vegatable","starch"],char:'\u{1f954}',fitzpatrick_scale:!1,category:"food_and_drink"},corn:{keywords:["food","vegetable","plant"],char:'\u{1f33d}',fitzpatrick_scale:!1,category:"food_and_drink"},leafy_greens:{keywords:["food","vegetable","plant","bok choy","cabbage","kale","lettuce"],char:'\u{1f96c}',fitzpatrick_scale:!1,category:"food_and_drink"},sweet_potato:{keywords:["food","nature"],char:'\u{1f360}',fitzpatrick_scale:!1,category:"food_and_drink"},peanuts:{keywords:["food","nut"],char:'\u{1f95c}',fitzpatrick_scale:!1,category:"food_and_drink"},honey_pot:{keywords:["bees","sweet","kitchen"],char:'\u{1f36f}',fitzpatrick_scale:!1,category:"food_and_drink"},croissant:{keywords:["food","bread","french"],char:'\u{1f950}',fitzpatrick_scale:!1,category:"food_and_drink"},bread:{keywords:["food","wheat","breakfast","toast"],char:'\u{1f35e}',fitzpatrick_scale:!1,category:"food_and_drink"},baguette_bread:{keywords:["food","bread","french"],char:'\u{1f956}',fitzpatrick_scale:!1,category:"food_and_drink"},bagel:{keywords:["food","bread","bakery","schmear"],char:'\u{1f96f}',fitzpatrick_scale:!1,category:"food_and_drink"},pretzel:{keywords:["food","bread","twisted"],char:'\u{1f968}',fitzpatrick_scale:!1,category:"food_and_drink"},cheese:{keywords:["food","chadder"],char:'\u{1f9c0}',fitzpatrick_scale:!1,category:"food_and_drink"},egg:{keywords:["food","chicken","breakfast"],char:'\u{1f95a}',fitzpatrick_scale:!1,category:"food_and_drink"},bacon:{keywords:["food","breakfast","pork","pig","meat"],char:'\u{1f953}',fitzpatrick_scale:!1,category:"food_and_drink"},steak:{keywords:["food","cow","meat","cut","chop","lambchop","porkchop"],char:'\u{1f969}',fitzpatrick_scale:!1,category:"food_and_drink"},pancakes:{keywords:["food","breakfast","flapjacks","hotcakes"],char:'\u{1f95e}',fitzpatrick_scale:!1,category:"food_and_drink"},poultry_leg:{keywords:["food","meat","drumstick","bird","chicken","turkey"],char:'\u{1f357}',fitzpatrick_scale:!1,category:"food_and_drink"},meat_on_bone:{keywords:["good","food","drumstick"],char:'\u{1f356}',fitzpatrick_scale:!1,category:"food_and_drink"},bone:{keywords:["skeleton"],char:'\u{1f9b4}',fitzpatrick_scale:!1,category:"food_and_drink"},fried_shrimp:{keywords:["food","animal","appetizer","summer"],char:'\u{1f364}',fitzpatrick_scale:!1,category:"food_and_drink"},fried_egg:{keywords:["food","breakfast","kitchen","egg"],char:'\u{1f373}',fitzpatrick_scale:!1,category:"food_and_drink"},hamburger:{keywords:["meat","fast food","beef","cheeseburger","mcdonalds","burger king"],char:'\u{1f354}',fitzpatrick_scale:!1,category:"food_and_drink"},fries:{keywords:["chips","snack","fast food"],char:'\u{1f35f}',fitzpatrick_scale:!1,category:"food_and_drink"},stuffed_flatbread:{keywords:["food","flatbread","stuffed","gyro"],char:'\u{1f959}',fitzpatrick_scale:!1,category:"food_and_drink"},hotdog:{keywords:["food","frankfurter"],char:'\u{1f32d}',fitzpatrick_scale:!1,category:"food_and_drink"},pizza:{keywords:["food","party"],char:'\u{1f355}',fitzpatrick_scale:!1,category:"food_and_drink"},sandwich:{keywords:["food","lunch","bread"],char:'\u{1f96a}',fitzpatrick_scale:!1,category:"food_and_drink"},canned_food:{keywords:["food","soup"],char:'\u{1f96b}',fitzpatrick_scale:!1,category:"food_and_drink"},spaghetti:{keywords:["food","italian","noodle"],char:'\u{1f35d}',fitzpatrick_scale:!1,category:"food_and_drink"},taco:{keywords:["food","mexican"],char:'\u{1f32e}',fitzpatrick_scale:!1,category:"food_and_drink"},burrito:{keywords:["food","mexican"],char:'\u{1f32f}',fitzpatrick_scale:!1,category:"food_and_drink"},green_salad:{keywords:["food","healthy","lettuce"],char:'\u{1f957}',fitzpatrick_scale:!1,category:"food_and_drink"},shallow_pan_of_food:{keywords:["food","cooking","casserole","paella"],char:'\u{1f958}',fitzpatrick_scale:!1,category:"food_and_drink"},ramen:{keywords:["food","japanese","noodle","chopsticks"],char:'\u{1f35c}',fitzpatrick_scale:!1,category:"food_and_drink"},stew:{keywords:["food","meat","soup"],char:'\u{1f372}',fitzpatrick_scale:!1,category:"food_and_drink"},fish_cake:{keywords:["food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],char:'\u{1f365}',fitzpatrick_scale:!1,category:"food_and_drink"},fortune_cookie:{keywords:["food","prophecy"],char:'\u{1f960}',fitzpatrick_scale:!1,category:"food_and_drink"},sushi:{keywords:["food","fish","japanese","rice"],char:'\u{1f363}',fitzpatrick_scale:!1,category:"food_and_drink"},bento:{keywords:["food","japanese","box"],char:'\u{1f371}',fitzpatrick_scale:!1,category:"food_and_drink"},curry:{keywords:["food","spicy","hot","indian"],char:'\u{1f35b}',fitzpatrick_scale:!1,category:"food_and_drink"},rice_ball:{keywords:["food","japanese"],char:'\u{1f359}',fitzpatrick_scale:!1,category:"food_and_drink"},rice:{keywords:["food","china","asian"],char:'\u{1f35a}',fitzpatrick_scale:!1,category:"food_and_drink"},rice_cracker:{keywords:["food","japanese"],char:'\u{1f358}',fitzpatrick_scale:!1,category:"food_and_drink"},oden:{keywords:["food","japanese"],char:'\u{1f362}',fitzpatrick_scale:!1,category:"food_and_drink"},dango:{keywords:["food","dessert","sweet","japanese","barbecue","meat"],char:'\u{1f361}',fitzpatrick_scale:!1,category:"food_and_drink"},shaved_ice:{keywords:["hot","dessert","summer"],char:'\u{1f367}',fitzpatrick_scale:!1,category:"food_and_drink"},ice_cream:{keywords:["food","hot","dessert"],char:'\u{1f368}',fitzpatrick_scale:!1,category:"food_and_drink"},icecream:{keywords:["food","hot","dessert","summer"],char:'\u{1f366}',fitzpatrick_scale:!1,category:"food_and_drink"},pie:{keywords:["food","dessert","pastry"],char:'\u{1f967}',fitzpatrick_scale:!1,category:"food_and_drink"},cake:{keywords:["food","dessert"],char:'\u{1f370}',fitzpatrick_scale:!1,category:"food_and_drink"},cupcake:{keywords:["food","dessert","bakery","sweet"],char:'\u{1f9c1}',fitzpatrick_scale:!1,category:"food_and_drink"},moon_cake:{keywords:["food","autumn"],char:'\u{1f96e}',fitzpatrick_scale:!1,category:"food_and_drink"},birthday:{keywords:["food","dessert","cake"],char:'\u{1f382}',fitzpatrick_scale:!1,category:"food_and_drink"},custard:{keywords:["dessert","food"],char:'\u{1f36e}',fitzpatrick_scale:!1,category:"food_and_drink"},candy:{keywords:["snack","dessert","sweet","lolly"],char:'\u{1f36c}',fitzpatrick_scale:!1,category:"food_and_drink"},lollipop:{keywords:["food","snack","candy","sweet"],char:'\u{1f36d}',fitzpatrick_scale:!1,category:"food_and_drink"},chocolate_bar:{keywords:["food","snack","dessert","sweet"],char:'\u{1f36b}',fitzpatrick_scale:!1,category:"food_and_drink"},popcorn:{keywords:["food","movie theater","films","snack"],char:'\u{1f37f}',fitzpatrick_scale:!1,category:"food_and_drink"},dumpling:{keywords:["food","empanada","pierogi","potsticker"],char:'\u{1f95f}',fitzpatrick_scale:!1,category:"food_and_drink"},doughnut:{keywords:["food","dessert","snack","sweet","donut"],char:'\u{1f369}',fitzpatrick_scale:!1,category:"food_and_drink"},cookie:{keywords:["food","snack","oreo","chocolate","sweet","dessert"],char:'\u{1f36a}',fitzpatrick_scale:!1,category:"food_and_drink"},milk_glass:{keywords:["beverage","drink","cow"],char:'\u{1f95b}',fitzpatrick_scale:!1,category:"food_and_drink"},beer:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:'\u{1f37a}',fitzpatrick_scale:!1,category:"food_and_drink"},beers:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:'\u{1f37b}',fitzpatrick_scale:!1,category:"food_and_drink"},clinking_glasses:{keywords:["beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],char:'\u{1f942}',fitzpatrick_scale:!1,category:"food_and_drink"},wine_glass:{keywords:["drink","beverage","drunk","alcohol","booze"],char:'\u{1f377}',fitzpatrick_scale:!1,category:"food_and_drink"},tumbler_glass:{keywords:["drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],char:'\u{1f943}',fitzpatrick_scale:!1,category:"food_and_drink"},cocktail:{keywords:["drink","drunk","alcohol","beverage","booze","mojito"],char:'\u{1f378}',fitzpatrick_scale:!1,category:"food_and_drink"},tropical_drink:{keywords:["beverage","cocktail","summer","beach","alcohol","booze","mojito"],char:'\u{1f379}',fitzpatrick_scale:!1,category:"food_and_drink"},champagne:{keywords:["drink","wine","bottle","celebration"],char:'\u{1f37e}',fitzpatrick_scale:!1,category:"food_and_drink"},sake:{keywords:["wine","drink","drunk","beverage","japanese","alcohol","booze"],char:'\u{1f376}',fitzpatrick_scale:!1,category:"food_and_drink"},tea:{keywords:["drink","bowl","breakfast","green","british"],char:'\u{1f375}',fitzpatrick_scale:!1,category:"food_and_drink"},cup_with_straw:{keywords:["drink","soda"],char:'\u{1f964}',fitzpatrick_scale:!1,category:"food_and_drink"},coffee:{keywords:["beverage","caffeine","latte","espresso"],char:'\u2615',fitzpatrick_scale:!1,category:"food_and_drink"},baby_bottle:{keywords:["food","container","milk"],char:'\u{1f37c}',fitzpatrick_scale:!1,category:"food_and_drink"},salt:{keywords:["condiment","shaker"],char:'\u{1f9c2}',fitzpatrick_scale:!1,category:"food_and_drink"},spoon:{keywords:["cutlery","kitchen","tableware"],char:'\u{1f944}',fitzpatrick_scale:!1,category:"food_and_drink"},fork_and_knife:{keywords:["cutlery","kitchen"],char:'\u{1f374}',fitzpatrick_scale:!1,category:"food_and_drink"},plate_with_cutlery:{keywords:["food","eat","meal","lunch","dinner","restaurant"],char:'\u{1f37d}',fitzpatrick_scale:!1,category:"food_and_drink"},bowl_with_spoon:{keywords:["food","breakfast","cereal","oatmeal","porridge"],char:'\u{1f963}',fitzpatrick_scale:!1,category:"food_and_drink"},takeout_box:{keywords:["food","leftovers"],char:'\u{1f961}',fitzpatrick_scale:!1,category:"food_and_drink"},chopsticks:{keywords:["food"],char:'\u{1f962}',fitzpatrick_scale:!1,category:"food_and_drink"},soccer:{keywords:["sports","football"],char:'\u26bd',fitzpatrick_scale:!1,category:"activity"},basketball:{keywords:["sports","balls","NBA"],char:'\u{1f3c0}',fitzpatrick_scale:!1,category:"activity"},football:{keywords:["sports","balls","NFL"],char:'\u{1f3c8}',fitzpatrick_scale:!1,category:"activity"},baseball:{keywords:["sports","balls"],char:'\u26be',fitzpatrick_scale:!1,category:"activity"},softball:{keywords:["sports","balls"],char:'\u{1f94e}',fitzpatrick_scale:!1,category:"activity"},tennis:{keywords:["sports","balls","green"],char:'\u{1f3be}',fitzpatrick_scale:!1,category:"activity"},volleyball:{keywords:["sports","balls"],char:'\u{1f3d0}',fitzpatrick_scale:!1,category:"activity"},rugby_football:{keywords:["sports","team"],char:'\u{1f3c9}',fitzpatrick_scale:!1,category:"activity"},flying_disc:{keywords:["sports","frisbee","ultimate"],char:'\u{1f94f}',fitzpatrick_scale:!1,category:"activity"},"8ball":{keywords:["pool","hobby","game","luck","magic"],char:'\u{1f3b1}',fitzpatrick_scale:!1,category:"activity"},golf:{keywords:["sports","business","flag","hole","summer"],char:'\u26f3',fitzpatrick_scale:!1,category:"activity"},golfing_woman:{keywords:["sports","business","woman","female"],char:'\u{1f3cc}\ufe0f\u200d\u2640\ufe0f',fitzpatrick_scale:!1,category:"activity"},golfing_man:{keywords:["sports","business"],char:'\u{1f3cc}',fitzpatrick_scale:!0,category:"activity"},ping_pong:{keywords:["sports","pingpong"],char:'\u{1f3d3}',fitzpatrick_scale:!1,category:"activity"},badminton:{keywords:["sports"],char:'\u{1f3f8}',fitzpatrick_scale:!1,category:"activity"},goal_net:{keywords:["sports"],char:'\u{1f945}',fitzpatrick_scale:!1,category:"activity"},ice_hockey:{keywords:["sports"],char:'\u{1f3d2}',fitzpatrick_scale:!1,category:"activity"},field_hockey:{keywords:["sports"],char:'\u{1f3d1}',fitzpatrick_scale:!1,category:"activity"},lacrosse:{keywords:["sports","ball","stick"],char:'\u{1f94d}',fitzpatrick_scale:!1,category:"activity"},cricket:{keywords:["sports"],char:'\u{1f3cf}',fitzpatrick_scale:!1,category:"activity"},ski:{keywords:["sports","winter","cold","snow"],char:'\u{1f3bf}',fitzpatrick_scale:!1,category:"activity"},skier:{keywords:["sports","winter","snow"],char:'\u26f7',fitzpatrick_scale:!1,category:"activity"},snowboarder:{keywords:["sports","winter"],char:'\u{1f3c2}',fitzpatrick_scale:!0,category:"activity"},person_fencing:{keywords:["sports","fencing","sword"],char:'\u{1f93a}',fitzpatrick_scale:!1,category:"activity"},women_wrestling:{keywords:["sports","wrestlers"],char:'\u{1f93c}\u200d\u2640\ufe0f',fitzpatrick_scale:!1,category:"activity"},men_wrestling:{keywords:["sports","wrestlers"],char:'\u{1f93c}\u200d\u2642\ufe0f',fitzpatrick_scale:!1,category:"activity"},woman_cartwheeling:{keywords:["gymnastics"],char:'\u{1f938}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},man_cartwheeling:{keywords:["gymnastics"],char:'\u{1f938}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},woman_playing_handball:{keywords:["sports"],char:'\u{1f93e}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},man_playing_handball:{keywords:["sports"],char:'\u{1f93e}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},ice_skate:{keywords:["sports"],char:'\u26f8',fitzpatrick_scale:!1,category:"activity"},curling_stone:{keywords:["sports"],char:'\u{1f94c}',fitzpatrick_scale:!1,category:"activity"},skateboard:{keywords:["board"],char:'\u{1f6f9}',fitzpatrick_scale:!1,category:"activity"},sled:{keywords:["sleigh","luge","toboggan"],char:'\u{1f6f7}',fitzpatrick_scale:!1,category:"activity"},bow_and_arrow:{keywords:["sports"],char:'\u{1f3f9}',fitzpatrick_scale:!1,category:"activity"},fishing_pole_and_fish:{keywords:["food","hobby","summer"],char:'\u{1f3a3}',fitzpatrick_scale:!1,category:"activity"},boxing_glove:{keywords:["sports","fighting"],char:'\u{1f94a}',fitzpatrick_scale:!1,category:"activity"},martial_arts_uniform:{keywords:["judo","karate","taekwondo"],char:'\u{1f94b}',fitzpatrick_scale:!1,category:"activity"},rowing_woman:{keywords:["sports","hobby","water","ship","woman","female"],char:'\u{1f6a3}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},rowing_man:{keywords:["sports","hobby","water","ship"],char:'\u{1f6a3}',fitzpatrick_scale:!0,category:"activity"},climbing_woman:{keywords:["sports","hobby","woman","female","rock"],char:'\u{1f9d7}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},climbing_man:{keywords:["sports","hobby","man","male","rock"],char:'\u{1f9d7}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},swimming_woman:{keywords:["sports","exercise","human","athlete","water","summer","woman","female"],char:'\u{1f3ca}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},swimming_man:{keywords:["sports","exercise","human","athlete","water","summer"],char:'\u{1f3ca}',fitzpatrick_scale:!0,category:"activity"},woman_playing_water_polo:{keywords:["sports","pool"],char:'\u{1f93d}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},man_playing_water_polo:{keywords:["sports","pool"],char:'\u{1f93d}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},woman_in_lotus_position:{keywords:["woman","female","meditation","yoga","serenity","zen","mindfulness"],char:'\u{1f9d8}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},man_in_lotus_position:{keywords:["man","male","meditation","yoga","serenity","zen","mindfulness"],char:'\u{1f9d8}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},surfing_woman:{keywords:["sports","ocean","sea","summer","beach","woman","female"],char:'\u{1f3c4}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},surfing_man:{keywords:["sports","ocean","sea","summer","beach"],char:'\u{1f3c4}',fitzpatrick_scale:!0,category:"activity"},bath:{keywords:["clean","shower","bathroom"],char:'\u{1f6c0}',fitzpatrick_scale:!0,category:"activity"},basketball_woman:{keywords:["sports","human","woman","female"],char:'\u26f9\ufe0f\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},basketball_man:{keywords:["sports","human"],char:'\u26f9',fitzpatrick_scale:!0,category:"activity"},weight_lifting_woman:{keywords:["sports","training","exercise","woman","female"],char:'\u{1f3cb}\ufe0f\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},weight_lifting_man:{keywords:["sports","training","exercise"],char:'\u{1f3cb}',fitzpatrick_scale:!0,category:"activity"},biking_woman:{keywords:["sports","bike","exercise","hipster","woman","female"],char:'\u{1f6b4}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},biking_man:{keywords:["sports","bike","exercise","hipster"],char:'\u{1f6b4}',fitzpatrick_scale:!0,category:"activity"},mountain_biking_woman:{keywords:["transportation","sports","human","race","bike","woman","female"],char:'\u{1f6b5}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},mountain_biking_man:{keywords:["transportation","sports","human","race","bike"],char:'\u{1f6b5}',fitzpatrick_scale:!0,category:"activity"},horse_racing:{keywords:["animal","betting","competition","gambling","luck"],char:'\u{1f3c7}',fitzpatrick_scale:!0,category:"activity"},business_suit_levitating:{keywords:["suit","business","levitate","hover","jump"],char:'\u{1f574}',fitzpatrick_scale:!0,category:"activity"},trophy:{keywords:["win","award","contest","place","ftw","ceremony"],char:'\u{1f3c6}',fitzpatrick_scale:!1,category:"activity"},running_shirt_with_sash:{keywords:["play","pageant"],char:'\u{1f3bd}',fitzpatrick_scale:!1,category:"activity"},medal_sports:{keywords:["award","winning"],char:'\u{1f3c5}',fitzpatrick_scale:!1,category:"activity"},medal_military:{keywords:["award","winning","army"],char:'\u{1f396}',fitzpatrick_scale:!1,category:"activity"},"1st_place_medal":{keywords:["award","winning","first"],char:'\u{1f947}',fitzpatrick_scale:!1,category:"activity"},"2nd_place_medal":{keywords:["award","second"],char:'\u{1f948}',fitzpatrick_scale:!1,category:"activity"},"3rd_place_medal":{keywords:["award","third"],char:'\u{1f949}',fitzpatrick_scale:!1,category:"activity"},reminder_ribbon:{keywords:["sports","cause","support","awareness"],char:'\u{1f397}',fitzpatrick_scale:!1,category:"activity"},rosette:{keywords:["flower","decoration","military"],char:'\u{1f3f5}',fitzpatrick_scale:!1,category:"activity"},ticket:{keywords:["event","concert","pass"],char:'\u{1f3ab}',fitzpatrick_scale:!1,category:"activity"},tickets:{keywords:["sports","concert","entrance"],char:'\u{1f39f}',fitzpatrick_scale:!1,category:"activity"},performing_arts:{keywords:["acting","theater","drama"],char:'\u{1f3ad}',fitzpatrick_scale:!1,category:"activity"},art:{keywords:["design","paint","draw","colors"],char:'\u{1f3a8}',fitzpatrick_scale:!1,category:"activity"},circus_tent:{keywords:["festival","carnival","party"],char:'\u{1f3aa}',fitzpatrick_scale:!1,category:"activity"},woman_juggling:{keywords:["juggle","balance","skill","multitask"],char:'\u{1f939}\u200d\u2640\ufe0f',fitzpatrick_scale:!0,category:"activity"},man_juggling:{keywords:["juggle","balance","skill","multitask"],char:'\u{1f939}\u200d\u2642\ufe0f',fitzpatrick_scale:!0,category:"activity"},microphone:{keywords:["sound","music","PA","sing","talkshow"],char:'\u{1f3a4}',fitzpatrick_scale:!1,category:"activity"},headphones:{keywords:["music","score","gadgets"],char:'\u{1f3a7}',fitzpatrick_scale:!1,category:"activity"},musical_score:{keywords:["treble","clef","compose"],char:'\u{1f3bc}',fitzpatrick_scale:!1,category:"activity"},musical_keyboard:{keywords:["piano","instrument","compose"],char:'\u{1f3b9}',fitzpatrick_scale:!1,category:"activity"},drum:{keywords:["music","instrument","drumsticks","snare"],char:'\u{1f941}',fitzpatrick_scale:!1,category:"activity"},saxophone:{keywords:["music","instrument","jazz","blues"],char:'\u{1f3b7}',fitzpatrick_scale:!1,category:"activity"},trumpet:{keywords:["music","brass"],char:'\u{1f3ba}',fitzpatrick_scale:!1,category:"activity"},guitar:{keywords:["music","instrument"],char:'\u{1f3b8}',fitzpatrick_scale:!1,category:"activity"},violin:{keywords:["music","instrument","orchestra","symphony"],char:'\u{1f3bb}',fitzpatrick_scale:!1,category:"activity"},clapper:{keywords:["movie","film","record"],char:'\u{1f3ac}',fitzpatrick_scale:!1,category:"activity"},video_game:{keywords:["play","console","PS4","controller"],char:'\u{1f3ae}',fitzpatrick_scale:!1,category:"activity"},space_invader:{keywords:["game","arcade","play"],char:'\u{1f47e}',fitzpatrick_scale:!1,category:"activity"},dart:{keywords:["game","play","bar","target","bullseye"],char:'\u{1f3af}',fitzpatrick_scale:!1,category:"activity"},game_die:{keywords:["dice","random","tabletop","play","luck"],char:'\u{1f3b2}',fitzpatrick_scale:!1,category:"activity"},chess_pawn:{keywords:["expendable"],char:"\u265f",fitzpatrick_scale:!1,category:"activity"},slot_machine:{keywords:["bet","gamble","vegas","fruit machine","luck","casino"],char:'\u{1f3b0}',fitzpatrick_scale:!1,category:"activity"},jigsaw:{keywords:["interlocking","puzzle","piece"],char:'\u{1f9e9}',fitzpatrick_scale:!1,category:"activity"},bowling:{keywords:["sports","fun","play"],char:'\u{1f3b3}',fitzpatrick_scale:!1,category:"activity"},red_car:{keywords:["red","transportation","vehicle"],char:'\u{1f697}',fitzpatrick_scale:!1,category:"travel_and_places"},taxi:{keywords:["uber","vehicle","cars","transportation"],char:'\u{1f695}',fitzpatrick_scale:!1,category:"travel_and_places"},blue_car:{keywords:["transportation","vehicle"],char:'\u{1f699}',fitzpatrick_scale:!1,category:"travel_and_places"},bus:{keywords:["car","vehicle","transportation"],char:'\u{1f68c}',fitzpatrick_scale:!1,category:"travel_and_places"},trolleybus:{keywords:["bart","transportation","vehicle"],char:'\u{1f68e}',fitzpatrick_scale:!1,category:"travel_and_places"},racing_car:{keywords:["sports","race","fast","formula","f1"],char:'\u{1f3ce}',fitzpatrick_scale:!1,category:"travel_and_places"},police_car:{keywords:["vehicle","cars","transportation","law","legal","enforcement"],char:'\u{1f693}',fitzpatrick_scale:!1,category:"travel_and_places"},ambulance:{keywords:["health","911","hospital"],char:'\u{1f691}',fitzpatrick_scale:!1,category:"travel_and_places"},fire_engine:{keywords:["transportation","cars","vehicle"],char:'\u{1f692}',fitzpatrick_scale:!1,category:"travel_and_places"},minibus:{keywords:["vehicle","car","transportation"],char:'\u{1f690}',fitzpatrick_scale:!1,category:"travel_and_places"},truck:{keywords:["cars","transportation"],char:'\u{1f69a}',fitzpatrick_scale:!1,category:"travel_and_places"},articulated_lorry:{keywords:["vehicle","cars","transportation","express"],char:'\u{1f69b}',fitzpatrick_scale:!1,category:"travel_and_places"},tractor:{keywords:["vehicle","car","farming","agriculture"],char:'\u{1f69c}',fitzpatrick_scale:!1,category:"travel_and_places"},kick_scooter:{keywords:["vehicle","kick","razor"],char:'\u{1f6f4}',fitzpatrick_scale:!1,category:"travel_and_places"},motorcycle:{keywords:["race","sports","fast"],char:'\u{1f3cd}',fitzpatrick_scale:!1,category:"travel_and_places"},bike:{keywords:["sports","bicycle","exercise","hipster"],char:'\u{1f6b2}',fitzpatrick_scale:!1,category:"travel_and_places"},motor_scooter:{keywords:["vehicle","vespa","sasha"],char:'\u{1f6f5}',fitzpatrick_scale:!1,category:"travel_and_places"},rotating_light:{keywords:["police","ambulance","911","emergency","alert","error","pinged","law","legal"],char:'\u{1f6a8}',fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_police_car:{keywords:["vehicle","law","legal","enforcement","911"],char:'\u{1f694}',fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_bus:{keywords:["vehicle","transportation"],char:'\u{1f68d}',fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_automobile:{keywords:["car","vehicle","transportation"],char:'\u{1f698}',fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_taxi:{keywords:["vehicle","cars","uber"],char:'\u{1f696}',fitzpatrick_scale:!1,category:"travel_and_places"},aerial_tramway:{keywords:["transportation","vehicle","ski"],char:'\u{1f6a1}',fitzpatrick_scale:!1,category:"travel_and_places"},mountain_cableway:{keywords:["transportation","vehicle","ski"],char:'\u{1f6a0}',fitzpatrick_scale:!1,category:"travel_and_places"},suspension_railway:{keywords:["vehicle","transportation"],char:'\u{1f69f}',fitzpatrick_scale:!1,category:"travel_and_places"},railway_car:{keywords:["transportation","vehicle"],char:'\u{1f683}',fitzpatrick_scale:!1,category:"travel_and_places"},train:{keywords:["transportation","vehicle","carriage","public","travel"],char:'\u{1f68b}',fitzpatrick_scale:!1,category:"travel_and_places"},monorail:{keywords:["transportation","vehicle"],char:'\u{1f69d}',fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_side:{keywords:["transportation","vehicle"],char:'\u{1f684}',fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_front:{keywords:["transportation","vehicle","speed","fast","public","travel"],char:'\u{1f685}',fitzpatrick_scale:!1,category:"travel_and_places"},light_rail:{keywords:["transportation","vehicle"],char:'\u{1f688}',fitzpatrick_scale:!1,category:"travel_and_places"},mountain_railway:{keywords:["transportation","vehicle"],char:'\u{1f69e}',fitzpatrick_scale:!1,category:"travel_and_places"},steam_locomotive:{keywords:["transportation","vehicle","train"],char:'\u{1f682}',fitzpatrick_scale:!1,category:"travel_and_places"},train2:{keywords:["transportation","vehicle"],char:'\u{1f686}',fitzpatrick_scale:!1,category:"travel_and_places"},metro:{keywords:["transportation","blue-square","mrt","underground","tube"],char:'\u{1f687}',fitzpatrick_scale:!1,category:"travel_and_places"},tram:{keywords:["transportation","vehicle"],char:'\u{1f68a}',fitzpatrick_scale:!1,category:"travel_and_places"},station:{keywords:["transportation","vehicle","public"],char:'\u{1f689}',fitzpatrick_scale:!1,category:"travel_and_places"},flying_saucer:{keywords:["transportation","vehicle","ufo"],char:'\u{1f6f8}',fitzpatrick_scale:!1,category:"travel_and_places"},helicopter:{keywords:["transportation","vehicle","fly"],char:'\u{1f681}',fitzpatrick_scale:!1,category:"travel_and_places"},small_airplane:{keywords:["flight","transportation","fly","vehicle"],char:'\u{1f6e9}',fitzpatrick_scale:!1,category:"travel_and_places"},airplane:{keywords:["vehicle","transportation","flight","fly"],char:'\u2708\ufe0f',fitzpatrick_scale:!1,category:"travel_and_places"},flight_departure:{keywords:["airport","flight","landing"],char:'\u{1f6eb}',fitzpatrick_scale:!1,category:"travel_and_places"},flight_arrival:{keywords:["airport","flight","boarding"],char:'\u{1f6ec}',fitzpatrick_scale:!1,category:"travel_and_places"},sailboat:{keywords:["ship","summer","transportation","water","sailing"],char:'\u26f5',fitzpatrick_scale:!1,category:"travel_and_places"},motor_boat:{keywords:["ship"],char:'\u{1f6e5}',fitzpatrick_scale:!1,category:"travel_and_places"},speedboat:{keywords:["ship","transportation","vehicle","summer"],char:'\u{1f6a4}',fitzpatrick_scale:!1,category:"travel_and_places"},ferry:{keywords:["boat","ship","yacht"],char:'\u26f4',fitzpatrick_scale:!1,category:"travel_and_places"},passenger_ship:{keywords:["yacht","cruise","ferry"],char:'\u{1f6f3}',fitzpatrick_scale:!1,category:"travel_and_places"},rocket:{keywords:["launch","ship","staffmode","NASA","outer space","outer_space","fly"],char:'\u{1f680}',fitzpatrick_scale:!1,category:"travel_and_places"},artificial_satellite:{keywords:["communication","gps","orbit","spaceflight","NASA","ISS"],char:'\u{1f6f0}',fitzpatrick_scale:!1,category:"travel_and_places"},seat:{keywords:["sit","airplane","transport","bus","flight","fly"],char:'\u{1f4ba}',fitzpatrick_scale:!1,category:"travel_and_places"},canoe:{keywords:["boat","paddle","water","ship"],char:'\u{1f6f6}',fitzpatrick_scale:!1,category:"travel_and_places"},anchor:{keywords:["ship","ferry","sea","boat"],char:'\u2693',fitzpatrick_scale:!1,category:"travel_and_places"},construction:{keywords:["wip","progress","caution","warning"],char:'\u{1f6a7}',fitzpatrick_scale:!1,category:"travel_and_places"},fuelpump:{keywords:["gas station","petroleum"],char:'\u26fd',fitzpatrick_scale:!1,category:"travel_and_places"},busstop:{keywords:["transportation","wait"],char:'\u{1f68f}',fitzpatrick_scale:!1,category:"travel_and_places"},vertical_traffic_light:{keywords:["transportation","driving"],char:'\u{1f6a6}',fitzpatrick_scale:!1,category:"travel_and_places"},traffic_light:{keywords:["transportation","signal"],char:'\u{1f6a5}',fitzpatrick_scale:!1,category:"travel_and_places"},checkered_flag:{keywords:["contest","finishline","race","gokart"],char:'\u{1f3c1}',fitzpatrick_scale:!1,category:"travel_and_places"},ship:{keywords:["transportation","titanic","deploy"],char:'\u{1f6a2}',fitzpatrick_scale:!1,category:"travel_and_places"},ferris_wheel:{keywords:["photo","carnival","londoneye"],char:'\u{1f3a1}',fitzpatrick_scale:!1,category:"travel_and_places"},roller_coaster:{keywords:["carnival","playground","photo","fun"],char:'\u{1f3a2}',fitzpatrick_scale:!1,category:"travel_and_places"},carousel_horse:{keywords:["photo","carnival"],char:'\u{1f3a0}',fitzpatrick_scale:!1,category:"travel_and_places"},building_construction:{keywords:["wip","working","progress"],char:'\u{1f3d7}',fitzpatrick_scale:!1,category:"travel_and_places"},foggy:{keywords:["photo","mountain"],char:'\u{1f301}',fitzpatrick_scale:!1,category:"travel_and_places"},tokyo_tower:{keywords:["photo","japanese"],char:'\u{1f5fc}',fitzpatrick_scale:!1,category:"travel_and_places"},factory:{keywords:["building","industry","pollution","smoke"],char:'\u{1f3ed}',fitzpatrick_scale:!1,category:"travel_and_places"},fountain:{keywords:["photo","summer","water","fresh"],char:'\u26f2',fitzpatrick_scale:!1,category:"travel_and_places"},rice_scene:{keywords:["photo","japan","asia","tsukimi"],char:'\u{1f391}',fitzpatrick_scale:!1,category:"travel_and_places"},mountain:{keywords:["photo","nature","environment"],char:'\u26f0',fitzpatrick_scale:!1,category:"travel_and_places"},mountain_snow:{keywords:["photo","nature","environment","winter","cold"],char:'\u{1f3d4}',fitzpatrick_scale:!1,category:"travel_and_places"},mount_fuji:{keywords:["photo","mountain","nature","japanese"],char:'\u{1f5fb}',fitzpatrick_scale:!1,category:"travel_and_places"},volcano:{keywords:["photo","nature","disaster"],char:'\u{1f30b}',fitzpatrick_scale:!1,category:"travel_and_places"},japan:{keywords:["nation","country","japanese","asia"],char:'\u{1f5fe}',fitzpatrick_scale:!1,category:"travel_and_places"},camping:{keywords:["photo","outdoors","tent"],char:'\u{1f3d5}',fitzpatrick_scale:!1,category:"travel_and_places"},tent:{keywords:["photo","camping","outdoors"],char:'\u26fa',fitzpatrick_scale:!1,category:"travel_and_places"},national_park:{keywords:["photo","environment","nature"],char:'\u{1f3de}',fitzpatrick_scale:!1,category:"travel_and_places"},motorway:{keywords:["road","cupertino","interstate","highway"],char:'\u{1f6e3}',fitzpatrick_scale:!1,category:"travel_and_places"},railway_track:{keywords:["train","transportation"],char:'\u{1f6e4}',fitzpatrick_scale:!1,category:"travel_and_places"},sunrise:{keywords:["morning","view","vacation","photo"],char:'\u{1f305}',fitzpatrick_scale:!1,category:"travel_and_places"},sunrise_over_mountains:{keywords:["view","vacation","photo"],char:'\u{1f304}',fitzpatrick_scale:!1,category:"travel_and_places"},desert:{keywords:["photo","warm","saharah"],char:'\u{1f3dc}',fitzpatrick_scale:!1,category:"travel_and_places"},beach_umbrella:{keywords:["weather","summer","sunny","sand","mojito"],char:'\u{1f3d6}',fitzpatrick_scale:!1,category:"travel_and_places"},desert_island:{keywords:["photo","tropical","mojito"],char:'\u{1f3dd}',fitzpatrick_scale:!1,category:"travel_and_places"},city_sunrise:{keywords:["photo","good morning","dawn"],char:'\u{1f307}',fitzpatrick_scale:!1,category:"travel_and_places"},city_sunset:{keywords:["photo","evening","sky","buildings"],char:'\u{1f306}',fitzpatrick_scale:!1,category:"travel_and_places"},cityscape:{keywords:["photo","night life","urban"],char:'\u{1f3d9}',fitzpatrick_scale:!1,category:"travel_and_places"},night_with_stars:{keywords:["evening","city","downtown"],char:'\u{1f303}',fitzpatrick_scale:!1,category:"travel_and_places"},bridge_at_night:{keywords:["photo","sanfrancisco"],char:'\u{1f309}',fitzpatrick_scale:!1,category:"travel_and_places"},milky_way:{keywords:["photo","space","stars"],char:'\u{1f30c}',fitzpatrick_scale:!1,category:"travel_and_places"},stars:{keywords:["night","photo"],char:'\u{1f320}',fitzpatrick_scale:!1,category:"travel_and_places"},sparkler:{keywords:["stars","night","shine"],char:'\u{1f387}',fitzpatrick_scale:!1,category:"travel_and_places"},fireworks:{keywords:["photo","festival","carnival","congratulations"],char:'\u{1f386}',fitzpatrick_scale:!1,category:"travel_and_places"},rainbow:{keywords:["nature","happy","unicorn_face","photo","sky","spring"],char:'\u{1f308}',fitzpatrick_scale:!1,category:"travel_and_places"},houses:{keywords:["buildings","photo"],char:'\u{1f3d8}',fitzpatrick_scale:!1,category:"travel_and_places"},european_castle:{keywords:["building","royalty","history"],char:'\u{1f3f0}',fitzpatrick_scale:!1,category:"travel_and_places"},japanese_castle:{keywords:["photo","building"],char:'\u{1f3ef}',fitzpatrick_scale:!1,category:"travel_and_places"},stadium:{keywords:["photo","place","sports","concert","venue"],char:'\u{1f3df}',fitzpatrick_scale:!1,category:"travel_and_places"},statue_of_liberty:{keywords:["american","newyork"],char:'\u{1f5fd}',fitzpatrick_scale:!1,category:"travel_and_places"},house:{keywords:["building","home"],char:'\u{1f3e0}',fitzpatrick_scale:!1,category:"travel_and_places"},house_with_garden:{keywords:["home","plant","nature"],char:'\u{1f3e1}',fitzpatrick_scale:!1,category:"travel_and_places"},derelict_house:{keywords:["abandon","evict","broken","building"],char:'\u{1f3da}',fitzpatrick_scale:!1,category:"travel_and_places"},office:{keywords:["building","bureau","work"],char:'\u{1f3e2}',fitzpatrick_scale:!1,category:"travel_and_places"},department_store:{keywords:["building","shopping","mall"],char:'\u{1f3ec}',fitzpatrick_scale:!1,category:"travel_and_places"},post_office:{keywords:["building","envelope","communication"],char:'\u{1f3e3}',fitzpatrick_scale:!1,category:"travel_and_places"},european_post_office:{keywords:["building","email"],char:'\u{1f3e4}',fitzpatrick_scale:!1,category:"travel_and_places"},hospital:{keywords:["building","health","surgery","doctor"],char:'\u{1f3e5}',fitzpatrick_scale:!1,category:"travel_and_places"},bank:{keywords:["building","money","sales","cash","business","enterprise"],char:'\u{1f3e6}',fitzpatrick_scale:!1,category:"travel_and_places"},hotel:{keywords:["building","accomodation","checkin"],char:'\u{1f3e8}',fitzpatrick_scale:!1,category:"travel_and_places"},convenience_store:{keywords:["building","shopping","groceries"],char:'\u{1f3ea}',fitzpatrick_scale:!1,category:"travel_and_places"},school:{keywords:["building","student","education","learn","teach"],char:'\u{1f3eb}',fitzpatrick_scale:!1,category:"travel_and_places"},love_hotel:{keywords:["like","affection","dating"],char:'\u{1f3e9}',fitzpatrick_scale:!1,category:"travel_and_places"},wedding:{keywords:["love","like","affection","couple","marriage","bride","groom"],char:'\u{1f492}',fitzpatrick_scale:!1,category:"travel_and_places"},classical_building:{keywords:["art","culture","history"],char:'\u{1f3db}',fitzpatrick_scale:!1,category:"travel_and_places"},church:{keywords:["building","religion","christ"],char:'\u26ea',fitzpatrick_scale:!1,category:"travel_and_places"},mosque:{keywords:["islam","worship","minaret"],char:'\u{1f54c}',fitzpatrick_scale:!1,category:"travel_and_places"},synagogue:{keywords:["judaism","worship","temple","jewish"],char:'\u{1f54d}',fitzpatrick_scale:!1,category:"travel_and_places"},kaaba:{keywords:["mecca","mosque","islam"],char:'\u{1f54b}',fitzpatrick_scale:!1,category:"travel_and_places"},shinto_shrine:{keywords:["temple","japan","kyoto"],char:'\u26e9',fitzpatrick_scale:!1,category:"travel_and_places"},watch:{keywords:["time","accessories"],char:'\u231a',fitzpatrick_scale:!1,category:"objects"},iphone:{keywords:["technology","apple","gadgets","dial"],char:'\u{1f4f1}',fitzpatrick_scale:!1,category:"objects"},calling:{keywords:["iphone","incoming"],char:'\u{1f4f2}',fitzpatrick_scale:!1,category:"objects"},computer:{keywords:["technology","laptop","screen","display","monitor"],char:'\u{1f4bb}',fitzpatrick_scale:!1,category:"objects"},keyboard:{keywords:["technology","computer","type","input","text"],char:'\u2328',fitzpatrick_scale:!1,category:"objects"},desktop_computer:{keywords:["technology","computing","screen"],char:'\u{1f5a5}',fitzpatrick_scale:!1,category:"objects"},printer:{keywords:["paper","ink"],char:'\u{1f5a8}',fitzpatrick_scale:!1,category:"objects"},computer_mouse:{keywords:["click"],char:'\u{1f5b1}',fitzpatrick_scale:!1,category:"objects"},trackball:{keywords:["technology","trackpad"],char:'\u{1f5b2}',fitzpatrick_scale:!1,category:"objects"},joystick:{keywords:["game","play"],char:'\u{1f579}',fitzpatrick_scale:!1,category:"objects"},clamp:{keywords:["tool"],char:'\u{1f5dc}',fitzpatrick_scale:!1,category:"objects"},minidisc:{keywords:["technology","record","data","disk","90s"],char:'\u{1f4bd}',fitzpatrick_scale:!1,category:"objects"},floppy_disk:{keywords:["oldschool","technology","save","90s","80s"],char:'\u{1f4be}',fitzpatrick_scale:!1,category:"objects"},cd:{keywords:["technology","dvd","disk","disc","90s"],char:'\u{1f4bf}',fitzpatrick_scale:!1,category:"objects"},dvd:{keywords:["cd","disk","disc"],char:'\u{1f4c0}',fitzpatrick_scale:!1,category:"objects"},vhs:{keywords:["record","video","oldschool","90s","80s"],char:'\u{1f4fc}',fitzpatrick_scale:!1,category:"objects"},camera:{keywords:["gadgets","photography"],char:'\u{1f4f7}',fitzpatrick_scale:!1,category:"objects"},camera_flash:{keywords:["photography","gadgets"],char:'\u{1f4f8}',fitzpatrick_scale:!1,category:"objects"},video_camera:{keywords:["film","record"],char:'\u{1f4f9}',fitzpatrick_scale:!1,category:"objects"},movie_camera:{keywords:["film","record"],char:'\u{1f3a5}',fitzpatrick_scale:!1,category:"objects"},film_projector:{keywords:["video","tape","record","movie"],char:'\u{1f4fd}',fitzpatrick_scale:!1,category:"objects"},film_strip:{keywords:["movie"],char:'\u{1f39e}',fitzpatrick_scale:!1,category:"objects"},telephone_receiver:{keywords:["technology","communication","dial"],char:'\u{1f4de}',fitzpatrick_scale:!1,category:"objects"},phone:{keywords:["technology","communication","dial","telephone"],char:'\u260e\ufe0f',fitzpatrick_scale:!1,category:"objects"},pager:{keywords:["bbcall","oldschool","90s"],char:'\u{1f4df}',fitzpatrick_scale:!1,category:"objects"},fax:{keywords:["communication","technology"],char:'\u{1f4e0}',fitzpatrick_scale:!1,category:"objects"},tv:{keywords:["technology","program","oldschool","show","television"],char:'\u{1f4fa}',fitzpatrick_scale:!1,category:"objects"},radio:{keywords:["communication","music","podcast","program"],char:'\u{1f4fb}',fitzpatrick_scale:!1,category:"objects"},studio_microphone:{keywords:["sing","recording","artist","talkshow"],char:'\u{1f399}',fitzpatrick_scale:!1,category:"objects"},level_slider:{keywords:["scale"],char:'\u{1f39a}',fitzpatrick_scale:!1,category:"objects"},control_knobs:{keywords:["dial"],char:'\u{1f39b}',fitzpatrick_scale:!1,category:"objects"},compass:{keywords:["magnetic","navigation","orienteering"],char:'\u{1f9ed}',fitzpatrick_scale:!1,category:"objects"},stopwatch:{keywords:["time","deadline"],char:'\u23f1',fitzpatrick_scale:!1,category:"objects"},timer_clock:{keywords:["alarm"],char:'\u23f2',fitzpatrick_scale:!1,category:"objects"},alarm_clock:{keywords:["time","wake"],char:'\u23f0',fitzpatrick_scale:!1,category:"objects"},mantelpiece_clock:{keywords:["time"],char:'\u{1f570}',fitzpatrick_scale:!1,category:"objects"},hourglass_flowing_sand:{keywords:["oldschool","time","countdown"],char:'\u23f3',fitzpatrick_scale:!1,category:"objects"},hourglass:{keywords:["time","clock","oldschool","limit","exam","quiz","test"],char:'\u231b',fitzpatrick_scale:!1,category:"objects"},satellite:{keywords:["communication","future","radio","space"],char:'\u{1f4e1}',fitzpatrick_scale:!1,category:"objects"},battery:{keywords:["power","energy","sustain"],char:'\u{1f50b}',fitzpatrick_scale:!1,category:"objects"},electric_plug:{keywords:["charger","power"],char:'\u{1f50c}',fitzpatrick_scale:!1,category:"objects"},bulb:{keywords:["light","electricity","idea"],char:'\u{1f4a1}',fitzpatrick_scale:!1,category:"objects"},flashlight:{keywords:["dark","camping","sight","night"],char:'\u{1f526}',fitzpatrick_scale:!1,category:"objects"},candle:{keywords:["fire","wax"],char:'\u{1f56f}',fitzpatrick_scale:!1,category:"objects"},fire_extinguisher:{keywords:["quench"],char:'\u{1f9ef}',fitzpatrick_scale:!1,category:"objects"},wastebasket:{keywords:["bin","trash","rubbish","garbage","toss"],char:'\u{1f5d1}',fitzpatrick_scale:!1,category:"objects"},oil_drum:{keywords:["barrell"],char:'\u{1f6e2}',fitzpatrick_scale:!1,category:"objects"},money_with_wings:{keywords:["dollar","bills","payment","sale"],char:'\u{1f4b8}',fitzpatrick_scale:!1,category:"objects"},dollar:{keywords:["money","sales","bill","currency"],char:'\u{1f4b5}',fitzpatrick_scale:!1,category:"objects"},yen:{keywords:["money","sales","japanese","dollar","currency"],char:'\u{1f4b4}',fitzpatrick_scale:!1,category:"objects"},euro:{keywords:["money","sales","dollar","currency"],char:'\u{1f4b6}',fitzpatrick_scale:!1,category:"objects"},pound:{keywords:["british","sterling","money","sales","bills","uk","england","currency"],char:'\u{1f4b7}',fitzpatrick_scale:!1,category:"objects"},moneybag:{keywords:["dollar","payment","coins","sale"],char:'\u{1f4b0}',fitzpatrick_scale:!1,category:"objects"},credit_card:{keywords:["money","sales","dollar","bill","payment","shopping"],char:'\u{1f4b3}',fitzpatrick_scale:!1,category:"objects"},gem:{keywords:["blue","ruby","diamond","jewelry"],char:'\u{1f48e}',fitzpatrick_scale:!1,category:"objects"},balance_scale:{keywords:["law","fairness","weight"],char:'\u2696',fitzpatrick_scale:!1,category:"objects"},toolbox:{keywords:["tools","diy","fix","maintainer","mechanic"],char:'\u{1f9f0}',fitzpatrick_scale:!1,category:"objects"},wrench:{keywords:["tools","diy","ikea","fix","maintainer"],char:'\u{1f527}',fitzpatrick_scale:!1,category:"objects"},hammer:{keywords:["tools","build","create"],char:'\u{1f528}',fitzpatrick_scale:!1,category:"objects"},hammer_and_pick:{keywords:["tools","build","create"],char:'\u2692',fitzpatrick_scale:!1,category:"objects"},hammer_and_wrench:{keywords:["tools","build","create"],char:'\u{1f6e0}',fitzpatrick_scale:!1,category:"objects"},pick:{keywords:["tools","dig"],char:'\u26cf',fitzpatrick_scale:!1,category:"objects"},nut_and_bolt:{keywords:["handy","tools","fix"],char:'\u{1f529}',fitzpatrick_scale:!1,category:"objects"},gear:{keywords:["cog"],char:'\u2699',fitzpatrick_scale:!1,category:"objects"},brick:{keywords:["bricks"],char:'\u{1f9f1}',fitzpatrick_scale:!1,category:"objects"},chains:{keywords:["lock","arrest"],char:'\u26d3',fitzpatrick_scale:!1,category:"objects"},magnet:{keywords:["attraction","magnetic"],char:'\u{1f9f2}',fitzpatrick_scale:!1,category:"objects"},gun:{keywords:["violence","weapon","pistol","revolver"],char:'\u{1f52b}',fitzpatrick_scale:!1,category:"objects"},bomb:{keywords:["boom","explode","explosion","terrorism"],char:'\u{1f4a3}',fitzpatrick_scale:!1,category:"objects"},firecracker:{keywords:["dynamite","boom","explode","explosion","explosive"],char:'\u{1f9e8}',fitzpatrick_scale:!1,category:"objects"},hocho:{keywords:["knife","blade","cutlery","kitchen","weapon"],char:'\u{1f52a}',fitzpatrick_scale:!1,category:"objects"},dagger:{keywords:["weapon"],char:'\u{1f5e1}',fitzpatrick_scale:!1,category:"objects"},crossed_swords:{keywords:["weapon"],char:'\u2694',fitzpatrick_scale:!1,category:"objects"},shield:{keywords:["protection","security"],char:'\u{1f6e1}',fitzpatrick_scale:!1,category:"objects"},smoking:{keywords:["kills","tobacco","cigarette","joint","smoke"],char:'\u{1f6ac}',fitzpatrick_scale:!1,category:"objects"},skull_and_crossbones:{keywords:["poison","danger","deadly","scary","death","pirate","evil"],char:'\u2620',fitzpatrick_scale:!1,category:"objects"},coffin:{keywords:["vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],char:'\u26b0',fitzpatrick_scale:!1,category:"objects"},funeral_urn:{keywords:["dead","die","death","rip","ashes"],char:'\u26b1',fitzpatrick_scale:!1,category:"objects"},amphora:{keywords:["vase","jar"],char:'\u{1f3fa}',fitzpatrick_scale:!1,category:"objects"},crystal_ball:{keywords:["disco","party","magic","circus","fortune_teller"],char:'\u{1f52e}',fitzpatrick_scale:!1,category:"objects"},prayer_beads:{keywords:["dhikr","religious"],char:'\u{1f4ff}',fitzpatrick_scale:!1,category:"objects"},nazar_amulet:{keywords:["bead","charm"],char:'\u{1f9ff}',fitzpatrick_scale:!1,category:"objects"},barber:{keywords:["hair","salon","style"],char:'\u{1f488}',fitzpatrick_scale:!1,category:"objects"},alembic:{keywords:["distilling","science","experiment","chemistry"],char:'\u2697',fitzpatrick_scale:!1,category:"objects"},telescope:{keywords:["stars","space","zoom","science","astronomy"],char:'\u{1f52d}',fitzpatrick_scale:!1,category:"objects"},microscope:{keywords:["laboratory","experiment","zoomin","science","study"],char:'\u{1f52c}',fitzpatrick_scale:!1,category:"objects"},hole:{keywords:["embarrassing"],char:'\u{1f573}',fitzpatrick_scale:!1,category:"objects"},pill:{keywords:["health","medicine","doctor","pharmacy","drug"],char:'\u{1f48a}',fitzpatrick_scale:!1,category:"objects"},syringe:{keywords:["health","hospital","drugs","blood","medicine","needle","doctor","nurse"],char:'\u{1f489}',fitzpatrick_scale:!1,category:"objects"},dna:{keywords:["biologist","genetics","life"],char:'\u{1f9ec}',fitzpatrick_scale:!1,category:"objects"},microbe:{keywords:["amoeba","bacteria","germs"],char:'\u{1f9a0}',fitzpatrick_scale:!1,category:"objects"},petri_dish:{keywords:["bacteria","biology","culture","lab"],char:'\u{1f9eb}',fitzpatrick_scale:!1,category:"objects"},test_tube:{keywords:["chemistry","experiment","lab","science"],char:'\u{1f9ea}',fitzpatrick_scale:!1,category:"objects"},thermometer:{keywords:["weather","temperature","hot","cold"],char:'\u{1f321}',fitzpatrick_scale:!1,category:"objects"},broom:{keywords:["cleaning","sweeping","witch"],char:'\u{1f9f9}',fitzpatrick_scale:!1,category:"objects"},basket:{keywords:["laundry"],char:'\u{1f9fa}',fitzpatrick_scale:!1,category:"objects"},toilet_paper:{keywords:["roll"],char:'\u{1f9fb}',fitzpatrick_scale:!1,category:"objects"},label:{keywords:["sale","tag"],char:'\u{1f3f7}',fitzpatrick_scale:!1,category:"objects"},bookmark:{keywords:["favorite","label","save"],char:'\u{1f516}',fitzpatrick_scale:!1,category:"objects"},toilet:{keywords:["restroom","wc","washroom","bathroom","potty"],char:'\u{1f6bd}',fitzpatrick_scale:!1,category:"objects"},shower:{keywords:["clean","water","bathroom"],char:'\u{1f6bf}',fitzpatrick_scale:!1,category:"objects"},bathtub:{keywords:["clean","shower","bathroom"],char:'\u{1f6c1}',fitzpatrick_scale:!1,category:"objects"},soap:{keywords:["bar","bathing","cleaning","lather"],char:'\u{1f9fc}',fitzpatrick_scale:!1,category:"objects"},sponge:{keywords:["absorbing","cleaning","porous"],char:'\u{1f9fd}',fitzpatrick_scale:!1,category:"objects"},lotion_bottle:{keywords:["moisturizer","sunscreen"],char:'\u{1f9f4}',fitzpatrick_scale:!1,category:"objects"},key:{keywords:["lock","door","password"],char:'\u{1f511}',fitzpatrick_scale:!1,category:"objects"},old_key:{keywords:["lock","door","password"],char:'\u{1f5dd}',fitzpatrick_scale:!1,category:"objects"},couch_and_lamp:{keywords:["read","chill"],char:'\u{1f6cb}',fitzpatrick_scale:!1,category:"objects"},sleeping_bed:{keywords:["bed","rest"],char:'\u{1f6cc}',fitzpatrick_scale:!0,category:"objects"},bed:{keywords:["sleep","rest"],char:'\u{1f6cf}',fitzpatrick_scale:!1,category:"objects"},door:{keywords:["house","entry","exit"],char:'\u{1f6aa}',fitzpatrick_scale:!1,category:"objects"},bellhop_bell:{keywords:["service"],char:'\u{1f6ce}',fitzpatrick_scale:!1,category:"objects"},teddy_bear:{keywords:["plush","stuffed"],char:'\u{1f9f8}',fitzpatrick_scale:!1,category:"objects"},framed_picture:{keywords:["photography"],char:'\u{1f5bc}',fitzpatrick_scale:!1,category:"objects"},world_map:{keywords:["location","direction"],char:'\u{1f5fa}',fitzpatrick_scale:!1,category:"objects"},parasol_on_ground:{keywords:["weather","summer"],char:'\u26f1',fitzpatrick_scale:!1,category:"objects"},moyai:{keywords:["rock","easter island","moai"],char:'\u{1f5ff}',fitzpatrick_scale:!1,category:"objects"},shopping:{keywords:["mall","buy","purchase"],char:'\u{1f6cd}',fitzpatrick_scale:!1,category:"objects"},shopping_cart:{keywords:["trolley"],char:'\u{1f6d2}',fitzpatrick_scale:!1,category:"objects"},balloon:{keywords:["party","celebration","birthday","circus"],char:'\u{1f388}',fitzpatrick_scale:!1,category:"objects"},flags:{keywords:["fish","japanese","koinobori","carp","banner"],char:'\u{1f38f}',fitzpatrick_scale:!1,category:"objects"},ribbon:{keywords:["decoration","pink","girl","bowtie"],char:'\u{1f380}',fitzpatrick_scale:!1,category:"objects"},gift:{keywords:["present","birthday","christmas","xmas"],char:'\u{1f381}',fitzpatrick_scale:!1,category:"objects"},confetti_ball:{keywords:["festival","party","birthday","circus"],char:'\u{1f38a}',fitzpatrick_scale:!1,category:"objects"},tada:{keywords:["party","congratulations","birthday","magic","circus","celebration"],char:'\u{1f389}',fitzpatrick_scale:!1,category:"objects"},dolls:{keywords:["japanese","toy","kimono"],char:'\u{1f38e}',fitzpatrick_scale:!1,category:"objects"},wind_chime:{keywords:["nature","ding","spring","bell"],char:'\u{1f390}',fitzpatrick_scale:!1,category:"objects"},crossed_flags:{keywords:["japanese","nation","country","border"],char:'\u{1f38c}',fitzpatrick_scale:!1,category:"objects"},izakaya_lantern:{keywords:["light","paper","halloween","spooky"],char:'\u{1f3ee}',fitzpatrick_scale:!1,category:"objects"},red_envelope:{keywords:["gift"],char:'\u{1f9e7}',fitzpatrick_scale:!1,category:"objects"},email:{keywords:["letter","postal","inbox","communication"],char:'\u2709\ufe0f',fitzpatrick_scale:!1,category:"objects"},envelope_with_arrow:{keywords:["email","communication"],char:'\u{1f4e9}',fitzpatrick_scale:!1,category:"objects"},incoming_envelope:{keywords:["email","inbox"],char:'\u{1f4e8}',fitzpatrick_scale:!1,category:"objects"},"e-mail":{keywords:["communication","inbox"],char:'\u{1f4e7}',fitzpatrick_scale:!1,category:"objects"},love_letter:{keywords:["email","like","affection","envelope","valentines"],char:'\u{1f48c}',fitzpatrick_scale:!1,category:"objects"},postbox:{keywords:["email","letter","envelope"],char:'\u{1f4ee}',fitzpatrick_scale:!1,category:"objects"},mailbox_closed:{keywords:["email","communication","inbox"],char:'\u{1f4ea}',fitzpatrick_scale:!1,category:"objects"},mailbox:{keywords:["email","inbox","communication"],char:'\u{1f4eb}',fitzpatrick_scale:!1,category:"objects"},mailbox_with_mail:{keywords:["email","inbox","communication"],char:'\u{1f4ec}',fitzpatrick_scale:!1,category:"objects"},mailbox_with_no_mail:{keywords:["email","inbox"],char:'\u{1f4ed}',fitzpatrick_scale:!1,category:"objects"},package:{keywords:["mail","gift","cardboard","box","moving"],char:'\u{1f4e6}',fitzpatrick_scale:!1,category:"objects"},postal_horn:{keywords:["instrument","music"],char:'\u{1f4ef}',fitzpatrick_scale:!1,category:"objects"},inbox_tray:{keywords:["email","documents"],char:'\u{1f4e5}',fitzpatrick_scale:!1,category:"objects"},outbox_tray:{keywords:["inbox","email"],char:'\u{1f4e4}',fitzpatrick_scale:!1,category:"objects"},scroll:{keywords:["documents","ancient","history","paper"],char:'\u{1f4dc}',fitzpatrick_scale:!1,category:"objects"},page_with_curl:{keywords:["documents","office","paper"],char:'\u{1f4c3}',fitzpatrick_scale:!1,category:"objects"},bookmark_tabs:{keywords:["favorite","save","order","tidy"],char:'\u{1f4d1}',fitzpatrick_scale:!1,category:"objects"},receipt:{keywords:["accounting","expenses"],char:'\u{1f9fe}',fitzpatrick_scale:!1,category:"objects"},bar_chart:{keywords:["graph","presentation","stats"],char:'\u{1f4ca}',fitzpatrick_scale:!1,category:"objects"},chart_with_upwards_trend:{keywords:["graph","presentation","stats","recovery","business","economics","money","sales","good","success"],char:'\u{1f4c8}',fitzpatrick_scale:!1,category:"objects"},chart_with_downwards_trend:{keywords:["graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],char:'\u{1f4c9}',fitzpatrick_scale:!1,category:"objects"},page_facing_up:{keywords:["documents","office","paper","information"],char:'\u{1f4c4}',fitzpatrick_scale:!1,category:"objects"},date:{keywords:["calendar","schedule"],char:'\u{1f4c5}',fitzpatrick_scale:!1,category:"objects"},calendar:{keywords:["schedule","date","planning"],char:'\u{1f4c6}',fitzpatrick_scale:!1,category:"objects"},spiral_calendar:{keywords:["date","schedule","planning"],char:'\u{1f5d3}',fitzpatrick_scale:!1,category:"objects"},card_index:{keywords:["business","stationery"],char:'\u{1f4c7}',fitzpatrick_scale:!1,category:"objects"},card_file_box:{keywords:["business","stationery"],char:'\u{1f5c3}',fitzpatrick_scale:!1,category:"objects"},ballot_box:{keywords:["election","vote"],char:'\u{1f5f3}',fitzpatrick_scale:!1,category:"objects"},file_cabinet:{keywords:["filing","organizing"],char:'\u{1f5c4}',fitzpatrick_scale:!1,category:"objects"},clipboard:{keywords:["stationery","documents"],char:'\u{1f4cb}',fitzpatrick_scale:!1,category:"objects"},spiral_notepad:{keywords:["memo","stationery"],char:'\u{1f5d2}',fitzpatrick_scale:!1,category:"objects"},file_folder:{keywords:["documents","business","office"],char:'\u{1f4c1}',fitzpatrick_scale:!1,category:"objects"},open_file_folder:{keywords:["documents","load"],char:'\u{1f4c2}',fitzpatrick_scale:!1,category:"objects"},card_index_dividers:{keywords:["organizing","business","stationery"],char:'\u{1f5c2}',fitzpatrick_scale:!1,category:"objects"},newspaper_roll:{keywords:["press","headline"],char:'\u{1f5de}',fitzpatrick_scale:!1,category:"objects"},newspaper:{keywords:["press","headline"],char:'\u{1f4f0}',fitzpatrick_scale:!1,category:"objects"},notebook:{keywords:["stationery","record","notes","paper","study"],char:'\u{1f4d3}',fitzpatrick_scale:!1,category:"objects"},closed_book:{keywords:["read","library","knowledge","textbook","learn"],char:'\u{1f4d5}',fitzpatrick_scale:!1,category:"objects"},green_book:{keywords:["read","library","knowledge","study"],char:'\u{1f4d7}',fitzpatrick_scale:!1,category:"objects"},blue_book:{keywords:["read","library","knowledge","learn","study"],char:'\u{1f4d8}',fitzpatrick_scale:!1,category:"objects"},orange_book:{keywords:["read","library","knowledge","textbook","study"],char:'\u{1f4d9}',fitzpatrick_scale:!1,category:"objects"},notebook_with_decorative_cover:{keywords:["classroom","notes","record","paper","study"],char:'\u{1f4d4}',fitzpatrick_scale:!1,category:"objects"},ledger:{keywords:["notes","paper"],char:'\u{1f4d2}',fitzpatrick_scale:!1,category:"objects"},books:{keywords:["literature","library","study"],char:'\u{1f4da}',fitzpatrick_scale:!1,category:"objects"},open_book:{keywords:["book","read","library","knowledge","literature","learn","study"],char:'\u{1f4d6}',fitzpatrick_scale:!1,category:"objects"},safety_pin:{keywords:["diaper"],char:'\u{1f9f7}',fitzpatrick_scale:!1,category:"objects"},link:{keywords:["rings","url"],char:'\u{1f517}',fitzpatrick_scale:!1,category:"objects"},paperclip:{keywords:["documents","stationery"],char:'\u{1f4ce}',fitzpatrick_scale:!1,category:"objects"},paperclips:{keywords:["documents","stationery"],char:'\u{1f587}',fitzpatrick_scale:!1,category:"objects"},scissors:{keywords:["stationery","cut"],char:'\u2702\ufe0f',fitzpatrick_scale:!1,category:"objects"},triangular_ruler:{keywords:["stationery","math","architect","sketch"],char:'\u{1f4d0}',fitzpatrick_scale:!1,category:"objects"},straight_ruler:{keywords:["stationery","calculate","length","math","school","drawing","architect","sketch"],char:'\u{1f4cf}',fitzpatrick_scale:!1,category:"objects"},abacus:{keywords:["calculation"],char:'\u{1f9ee}',fitzpatrick_scale:!1,category:"objects"},pushpin:{keywords:["stationery","mark","here"],char:'\u{1f4cc}',fitzpatrick_scale:!1,category:"objects"},round_pushpin:{keywords:["stationery","location","map","here"],char:'\u{1f4cd}',fitzpatrick_scale:!1,category:"objects"},triangular_flag_on_post:{keywords:["mark","milestone","place"],char:'\u{1f6a9}',fitzpatrick_scale:!1,category:"objects"},white_flag:{keywords:["losing","loser","lost","surrender","give up","fail"],char:'\u{1f3f3}',fitzpatrick_scale:!1,category:"objects"},black_flag:{keywords:["pirate"],char:'\u{1f3f4}',fitzpatrick_scale:!1,category:"objects"},rainbow_flag:{keywords:["flag","rainbow","pride","gay","lgbt","glbt","queer","homosexual","lesbian","bisexual","transgender"],char:'\u{1f3f3}\ufe0f\u200d\u{1f308}',fitzpatrick_scale:!1,category:"objects"},closed_lock_with_key:{keywords:["security","privacy"],char:'\u{1f510}',fitzpatrick_scale:!1,category:"objects"},lock:{keywords:["security","password","padlock"],char:'\u{1f512}',fitzpatrick_scale:!1,category:"objects"},unlock:{keywords:["privacy","security"],char:'\u{1f513}',fitzpatrick_scale:!1,category:"objects"},lock_with_ink_pen:{keywords:["security","secret"],char:'\u{1f50f}',fitzpatrick_scale:!1,category:"objects"},pen:{keywords:["stationery","writing","write"],char:'\u{1f58a}',fitzpatrick_scale:!1,category:"objects"},fountain_pen:{keywords:["stationery","writing","write"],char:'\u{1f58b}',fitzpatrick_scale:!1,category:"objects"},black_nib:{keywords:["pen","stationery","writing","write"],char:'\u2712\ufe0f',fitzpatrick_scale:!1,category:"objects"},memo:{keywords:["write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],char:'\u{1f4dd}',fitzpatrick_scale:!1,category:"objects"},pencil2:{keywords:["stationery","write","paper","writing","school","study"],char:'\u270f\ufe0f',fitzpatrick_scale:!1,category:"objects"},crayon:{keywords:["drawing","creativity"],char:'\u{1f58d}',fitzpatrick_scale:!1,category:"objects"},paintbrush:{keywords:["drawing","creativity","art"],char:'\u{1f58c}',fitzpatrick_scale:!1,category:"objects"},mag:{keywords:["Buscar","zoom","find","detective"],char:'\u{1f50d}',fitzpatrick_scale:!1,category:"objects"},mag_right:{keywords:["Buscar","zoom","find","detective"],char:'\u{1f50e}',fitzpatrick_scale:!1,category:"objects"},heart:{keywords:["love","like","valentines"],char:'\u2764\ufe0f',fitzpatrick_scale:!1,category:"symbols"},orange_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f9e1}',fitzpatrick_scale:!1,category:"symbols"},yellow_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f49b}',fitzpatrick_scale:!1,category:"symbols"},green_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f49a}',fitzpatrick_scale:!1,category:"symbols"},blue_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f499}',fitzpatrick_scale:!1,category:"symbols"},purple_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f49c}',fitzpatrick_scale:!1,category:"symbols"},black_heart:{keywords:["evil"],char:'\u{1f5a4}',fitzpatrick_scale:!1,category:"symbols"},broken_heart:{keywords:["sad","sorry","break","heart","heartbreak"],char:'\u{1f494}',fitzpatrick_scale:!1,category:"symbols"},heavy_heart_exclamation:{keywords:["decoration","love"],char:'\u2763',fitzpatrick_scale:!1,category:"symbols"},two_hearts:{keywords:["love","like","affection","valentines","heart"],char:'\u{1f495}',fitzpatrick_scale:!1,category:"symbols"},revolving_hearts:{keywords:["love","like","affection","valentines"],char:'\u{1f49e}',fitzpatrick_scale:!1,category:"symbols"},heartbeat:{keywords:["love","like","affection","valentines","pink","heart"],char:'\u{1f493}',fitzpatrick_scale:!1,category:"symbols"},heartpulse:{keywords:["like","love","affection","valentines","pink"],char:'\u{1f497}',fitzpatrick_scale:!1,category:"symbols"},sparkling_heart:{keywords:["love","like","affection","valentines"],char:'\u{1f496}',fitzpatrick_scale:!1,category:"symbols"},cupid:{keywords:["love","like","heart","affection","valentines"],char:'\u{1f498}',fitzpatrick_scale:!1,category:"symbols"},gift_heart:{keywords:["love","valentines"],char:'\u{1f49d}',fitzpatrick_scale:!1,category:"symbols"},heart_decoration:{keywords:["purple-square","love","like"],char:'\u{1f49f}',fitzpatrick_scale:!1,category:"symbols"},peace_symbol:{keywords:["hippie"],char:'\u262e',fitzpatrick_scale:!1,category:"symbols"},latin_cross:{keywords:["christianity"],char:'\u271d',fitzpatrick_scale:!1,category:"symbols"},star_and_crescent:{keywords:["islam"],char:'\u262a',fitzpatrick_scale:!1,category:"symbols"},om:{keywords:["hinduism","buddhism","sikhism","jainism"],char:'\u{1f549}',fitzpatrick_scale:!1,category:"symbols"},wheel_of_dharma:{keywords:["hinduism","buddhism","sikhism","jainism"],char:'\u2638',fitzpatrick_scale:!1,category:"symbols"},star_of_david:{keywords:["judaism"],char:'\u2721',fitzpatrick_scale:!1,category:"symbols"},six_pointed_star:{keywords:["purple-square","religion","jewish","hexagram"],char:'\u{1f52f}',fitzpatrick_scale:!1,category:"symbols"},menorah:{keywords:["hanukkah","candles","jewish"],char:'\u{1f54e}',fitzpatrick_scale:!1,category:"symbols"},yin_yang:{keywords:["balance"],char:'\u262f',fitzpatrick_scale:!1,category:"symbols"},orthodox_cross:{keywords:["suppedaneum","religion"],char:'\u2626',fitzpatrick_scale:!1,category:"symbols"},place_of_worship:{keywords:["religion","church","temple","prayer"],char:'\u{1f6d0}',fitzpatrick_scale:!1,category:"symbols"},ophiuchus:{keywords:["sign","purple-square","constellation","astrology"],char:'\u26ce',fitzpatrick_scale:!1,category:"symbols"},aries:{keywords:["sign","purple-square","zodiac","astrology"],char:'\u2648',fitzpatrick_scale:!1,category:"symbols"},taurus:{keywords:["purple-square","sign","zodiac","astrology"],char:'\u2649',fitzpatrick_scale:!1,category:"symbols"},gemini:{keywords:["sign","zodiac","purple-square","astrology"],char:'\u264a',fitzpatrick_scale:!1,category:"symbols"},cancer:{keywords:["sign","zodiac","purple-square","astrology"],char:'\u264b',fitzpatrick_scale:!1,category:"symbols"},leo:{keywords:["sign","purple-square","zodiac","astrology"],char:'\u264c',fitzpatrick_scale:!1,category:"symbols"},virgo:{keywords:["sign","zodiac","purple-square","astrology"],char:'\u264d',fitzpatrick_scale:!1,category:"symbols"},libra:{keywords:["sign","purple-square","zodiac","astrology"],char:'\u264e',fitzpatrick_scale:!1,category:"symbols"},scorpius:{keywords:["sign","zodiac","purple-square","astrology","scorpio"],char:'\u264f',fitzpatrick_scale:!1,category:"symbols"},sagittarius:{keywords:["sign","zodiac","purple-square","astrology"],char:'\u2650',fitzpatrick_scale:!1,category:"symbols"},capricorn:{keywords:["sign","zodiac","purple-square","astrology"],char:'\u2651',fitzpatrick_scale:!1,category:"symbols"},aquarius:{keywords:["sign","purple-square","zodiac","astrology"],char:'\u2652',fitzpatrick_scale:!1,category:"symbols"},pisces:{keywords:["purple-square","sign","zodiac","astrology"],char:'\u2653',fitzpatrick_scale:!1,category:"symbols"},id:{keywords:["purple-square","words"],char:'\u{1f194}',fitzpatrick_scale:!1,category:"symbols"},atom_symbol:{keywords:["science","physics","chemistry"],char:'\u269b',fitzpatrick_scale:!1,category:"symbols"},u7a7a:{keywords:["kanji","japanese","chinese","empty","sky","blue-square"],char:'\u{1f233}',fitzpatrick_scale:!1,category:"symbols"},u5272:{keywords:["cut","divide","chinese","kanji","pink-square"],char:'\u{1f239}',fitzpatrick_scale:!1,category:"symbols"},radioactive:{keywords:["nuclear","danger"],char:'\u2622',fitzpatrick_scale:!1,category:"symbols"},biohazard:{keywords:["danger"],char:'\u2623',fitzpatrick_scale:!1,category:"symbols"},mobile_phone_off:{keywords:["mute","orange-square","silence","quiet"],char:'\u{1f4f4}',fitzpatrick_scale:!1,category:"symbols"},vibration_mode:{keywords:["orange-square","phone"],char:'\u{1f4f3}',fitzpatrick_scale:!1,category:"symbols"},u6709:{keywords:["orange-square","chinese","have","kanji"],char:'\u{1f236}',fitzpatrick_scale:!1,category:"symbols"},u7121:{keywords:["nothing","chinese","kanji","japanese","orange-square"],char:'\u{1f21a}',fitzpatrick_scale:!1,category:"symbols"},u7533:{keywords:["chinese","japanese","kanji","orange-square"],char:'\u{1f238}',fitzpatrick_scale:!1,category:"symbols"},u55b6:{keywords:["japanese","opening hours","orange-square"],char:'\u{1f23a}',fitzpatrick_scale:!1,category:"symbols"},u6708:{keywords:["chinese","month","moon","japanese","orange-square","kanji"],char:'\u{1f237}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},eight_pointed_black_star:{keywords:["orange-square","shape","polygon"],char:'\u2734\ufe0f',fitzpatrick_scale:!1,category:"symbols"},vs:{keywords:["words","orange-square"],char:'\u{1f19a}',fitzpatrick_scale:!1,category:"symbols"},accept:{keywords:["ok","good","chinese","kanji","agree","yes","orange-circle"],char:'\u{1f251}',fitzpatrick_scale:!1,category:"symbols"},white_flower:{keywords:["japanese","spring"],char:'\u{1f4ae}',fitzpatrick_scale:!1,category:"symbols"},ideograph_advantage:{keywords:["chinese","kanji","obtain","get","circle"],char:'\u{1f250}',fitzpatrick_scale:!1,category:"symbols"},secret:{keywords:["privacy","chinese","sshh","kanji","red-circle"],char:'\u3299\ufe0f',fitzpatrick_scale:!1,category:"symbols"},congratulations:{keywords:["chinese","kanji","japanese","red-circle"],char:'\u3297\ufe0f',fitzpatrick_scale:!1,category:"symbols"},u5408:{keywords:["japanese","chinese","join","kanji","red-square"],char:'\u{1f234}',fitzpatrick_scale:!1,category:"symbols"},u6e80:{keywords:["full","chinese","japanese","red-square","kanji"],char:'\u{1f235}',fitzpatrick_scale:!1,category:"symbols"},u7981:{keywords:["kanji","japanese","chinese","forbidden","limit","restricted","red-square"],char:'\u{1f232}',fitzpatrick_scale:!1,category:"symbols"},a:{keywords:["red-square","alphabet","letter"],char:'\u{1f170}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},b:{keywords:["red-square","alphabet","letter"],char:'\u{1f171}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},ab:{keywords:["red-square","alphabet"],char:'\u{1f18e}',fitzpatrick_scale:!1,category:"symbols"},cl:{keywords:["alphabet","words","red-square"],char:'\u{1f191}',fitzpatrick_scale:!1,category:"symbols"},o2:{keywords:["alphabet","red-square","letter"],char:'\u{1f17e}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},sos:{keywords:["help","red-square","words","emergency","911"],char:'\u{1f198}',fitzpatrick_scale:!1,category:"symbols"},no_entry:{keywords:["limit","security","privacy","bad","denied","stop","circle"],char:'\u26d4',fitzpatrick_scale:!1,category:"symbols"},name_badge:{keywords:["fire","forbid"],char:'\u{1f4db}',fitzpatrick_scale:!1,category:"symbols"},no_entry_sign:{keywords:["forbid","stop","limit","denied","disallow","circle"],char:'\u{1f6ab}',fitzpatrick_scale:!1,category:"symbols"},x:{keywords:["no","delete","remove","cancel","red"],char:'\u274c',fitzpatrick_scale:!1,category:"symbols"},o:{keywords:["circle","round"],char:'\u2b55',fitzpatrick_scale:!1,category:"symbols"},stop_sign:{keywords:["stop"],char:'\u{1f6d1}',fitzpatrick_scale:!1,category:"symbols"},anger:{keywords:["angry","mad"],char:'\u{1f4a2}',fitzpatrick_scale:!1,category:"symbols"},hotsprings:{keywords:["bath","warm","relax"],char:'\u2668\ufe0f',fitzpatrick_scale:!1,category:"symbols"},no_pedestrians:{keywords:["rules","crossing","walking","circle"],char:'\u{1f6b7}',fitzpatrick_scale:!1,category:"symbols"},do_not_litter:{keywords:["trash","bin","garbage","circle"],char:'\u{1f6af}',fitzpatrick_scale:!1,category:"symbols"},no_bicycles:{keywords:["cyclist","prohibited","circle"],char:'\u{1f6b3}',fitzpatrick_scale:!1,category:"symbols"},"non-potable_water":{keywords:["drink","faucet","tap","circle"],char:'\u{1f6b1}',fitzpatrick_scale:!1,category:"symbols"},underage:{keywords:["18","drink","pub","night","minor","circle"],char:'\u{1f51e}',fitzpatrick_scale:!1,category:"symbols"},no_mobile_phones:{keywords:["iphone","mute","circle"],char:'\u{1f4f5}',fitzpatrick_scale:!1,category:"symbols"},exclamation:{keywords:["heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],char:'\u2757',fitzpatrick_scale:!1,category:"symbols"},grey_exclamation:{keywords:["surprise","punctuation","gray","wow","warning"],char:'\u2755',fitzpatrick_scale:!1,category:"symbols"},question:{keywords:["doubt","confused"],char:'\u2753',fitzpatrick_scale:!1,category:"symbols"},grey_question:{keywords:["doubts","gray","huh","confused"],char:'\u2754',fitzpatrick_scale:!1,category:"symbols"},bangbang:{keywords:["exclamation","surprise"],char:'\u203c\ufe0f',fitzpatrick_scale:!1,category:"symbols"},interrobang:{keywords:["wat","punctuation","surprise"],char:'\u2049\ufe0f',fitzpatrick_scale:!1,category:"symbols"},low_brightness:{keywords:["sun","afternoon","warm","summer"],char:'\u{1f505}',fitzpatrick_scale:!1,category:"symbols"},high_brightness:{keywords:["sun","light"],char:'\u{1f506}',fitzpatrick_scale:!1,category:"symbols"},trident:{keywords:["weapon","spear"],char:'\u{1f531}',fitzpatrick_scale:!1,category:"symbols"},fleur_de_lis:{keywords:["decorative","scout"],char:'\u269c',fitzpatrick_scale:!1,category:"symbols"},part_alternation_mark:{keywords:["graph","presentation","stats","business","economics","bad"],char:'\u303d\ufe0f',fitzpatrick_scale:!1,category:"symbols"},warning:{keywords:["exclamation","wip","alert","error","problem","issue"],char:'\u26a0\ufe0f',fitzpatrick_scale:!1,category:"symbols"},children_crossing:{keywords:["school","warning","danger","sign","driving","yellow-diamond"],char:'\u{1f6b8}',fitzpatrick_scale:!1,category:"symbols"},beginner:{keywords:["badge","shield"],char:'\u{1f530}',fitzpatrick_scale:!1,category:"symbols"},recycle:{keywords:["arrow","environment","garbage","trash"],char:'\u267b\ufe0f',fitzpatrick_scale:!1,category:"symbols"},u6307:{keywords:["chinese","point","green-square","kanji"],char:'\u{1f22f}',fitzpatrick_scale:!1,category:"symbols"},chart:{keywords:["green-square","graph","presentation","stats"],char:'\u{1f4b9}',fitzpatrick_scale:!1,category:"symbols"},sparkle:{keywords:["stars","green-square","awesome","good","fireworks"],char:'\u2747\ufe0f',fitzpatrick_scale:!1,category:"symbols"},eight_spoked_asterisk:{keywords:["star","sparkle","green-square"],char:'\u2733\ufe0f',fitzpatrick_scale:!1,category:"symbols"},negative_squared_cross_mark:{keywords:["x","green-square","no","deny"],char:'\u274e',fitzpatrick_scale:!1,category:"symbols"},white_check_mark:{keywords:["green-square","ok","agree","vote","election","answer","tick"],char:'\u2705',fitzpatrick_scale:!1,category:"symbols"},diamond_shape_with_a_dot_inside:{keywords:["jewel","blue","gem","crystal","fancy"],char:'\u{1f4a0}',fitzpatrick_scale:!1,category:"symbols"},cyclone:{keywords:["weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],char:'\u{1f300}',fitzpatrick_scale:!1,category:"symbols"},loop:{keywords:["tape","cassette"],char:'\u27bf',fitzpatrick_scale:!1,category:"symbols"},globe_with_meridians:{keywords:["earth","international","world","internet","interweb","i18n"],char:'\u{1f310}',fitzpatrick_scale:!1,category:"symbols"},m:{keywords:["alphabet","blue-circle","letter"],char:'\u24c2\ufe0f',fitzpatrick_scale:!1,category:"symbols"},atm:{keywords:["money","sales","cash","blue-square","payment","bank"],char:'\u{1f3e7}',fitzpatrick_scale:!1,category:"symbols"},sa:{keywords:["japanese","blue-square","katakana"],char:'\u{1f202}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},passport_control:{keywords:["custom","blue-square"],char:'\u{1f6c2}',fitzpatrick_scale:!1,category:"symbols"},customs:{keywords:["passport","border","blue-square"],char:'\u{1f6c3}',fitzpatrick_scale:!1,category:"symbols"},baggage_claim:{keywords:["blue-square","airport","transport"],char:'\u{1f6c4}',fitzpatrick_scale:!1,category:"symbols"},left_luggage:{keywords:["blue-square","travel"],char:'\u{1f6c5}',fitzpatrick_scale:!1,category:"symbols"},wheelchair:{keywords:["blue-square","disabled","a11y","accessibility"],char:'\u267f',fitzpatrick_scale:!1,category:"symbols"},no_smoking:{keywords:["cigarette","blue-square","smell","smoke"],char:'\u{1f6ad}',fitzpatrick_scale:!1,category:"symbols"},wc:{keywords:["toilet","restroom","blue-square"],char:'\u{1f6be}',fitzpatrick_scale:!1,category:"symbols"},parking:{keywords:["cars","blue-square","alphabet","letter"],char:'\u{1f17f}\ufe0f',fitzpatrick_scale:!1,category:"symbols"},potable_water:{keywords:["blue-square","liquid","restroom","cleaning","faucet"],char:'\u{1f6b0}',fitzpatrick_scale:!1,category:"symbols"},mens:{keywords:["toilet","restroom","wc","blue-square","gender","male"],char:'\u{1f6b9}',fitzpatrick_scale:!1,category:"symbols"},womens:{keywords:["purple-square","woman","female","toilet","loo","restroom","gender"],char:'\u{1f6ba}',fitzpatrick_scale:!1,category:"symbols"},baby_symbol:{keywords:["orange-square","child"],char:'\u{1f6bc}',fitzpatrick_scale:!1,category:"symbols"},restroom:{keywords:["blue-square","toilet","refresh","wc","gender"],char:'\u{1f6bb}',fitzpatrick_scale:!1,category:"symbols"},put_litter_in_its_place:{keywords:["blue-square","sign","human","info"],char:'\u{1f6ae}',fitzpatrick_scale:!1,category:"symbols"},cinema:{keywords:["blue-square","record","film","movie","curtain","stage","theater"],char:'\u{1f3a6}',fitzpatrick_scale:!1,category:"symbols"},signal_strength:{keywords:["blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],char:'\u{1f4f6}',fitzpatrick_scale:!1,category:"symbols"},koko:{keywords:["blue-square","here","katakana","japanese","destination"],char:'\u{1f201}',fitzpatrick_scale:!1,category:"symbols"},ng:{keywords:["blue-square","words","shape","icon"],char:'\u{1f196}',fitzpatrick_scale:!1,category:"symbols"},ok:{keywords:["good","agree","yes","blue-square"],char:'\u{1f197}',fitzpatrick_scale:!1,category:"symbols"},up:{keywords:["blue-square","above","high"],char:'\u{1f199}',fitzpatrick_scale:!1,category:"symbols"},cool:{keywords:["words","blue-square"],char:'\u{1f192}',fitzpatrick_scale:!1,category:"symbols"},new:{keywords:["blue-square","words","start"],char:'\u{1f195}',fitzpatrick_scale:!1,category:"symbols"},free:{keywords:["blue-square","words"],char:'\u{1f193}',fitzpatrick_scale:!1,category:"symbols"},zero:{keywords:["0","numbers","blue-square","null"],char:'0\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},one:{keywords:["blue-square","numbers","1"],char:'1\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},two:{keywords:["numbers","2","prime","blue-square"],char:'2\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},three:{keywords:["3","numbers","prime","blue-square"],char:'3\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},four:{keywords:["4","numbers","blue-square"],char:'4\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},five:{keywords:["5","numbers","blue-square","prime"],char:'5\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},six:{keywords:["6","numbers","blue-square"],char:'6\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},seven:{keywords:["7","numbers","blue-square","prime"],char:'7\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},eight:{keywords:["8","blue-square","numbers"],char:'8\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},nine:{keywords:["blue-square","numbers","9"],char:'9\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},keycap_ten:{keywords:["numbers","10","blue-square"],char:'\u{1f51f}',fitzpatrick_scale:!1,category:"symbols"},asterisk:{keywords:["star","keycap"],char:'*\u20e3',fitzpatrick_scale:!1,category:"symbols"},eject_button:{keywords:["blue-square"],char:'\u23cf\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_forward:{keywords:["blue-square","right","direction","play"],char:'\u25b6\ufe0f',fitzpatrick_scale:!1,category:"symbols"},pause_button:{keywords:["pause","blue-square"],char:'\u23f8',fitzpatrick_scale:!1,category:"symbols"},next_track_button:{keywords:["forward","next","blue-square"],char:'\u23ed',fitzpatrick_scale:!1,category:"symbols"},stop_button:{keywords:["blue-square"],char:'\u23f9',fitzpatrick_scale:!1,category:"symbols"},record_button:{keywords:["blue-square"],char:'\u23fa',fitzpatrick_scale:!1,category:"symbols"},play_or_pause_button:{keywords:["blue-square","play","pause"],char:'\u23ef',fitzpatrick_scale:!1,category:"symbols"},previous_track_button:{keywords:["backward"],char:'\u23ee',fitzpatrick_scale:!1,category:"symbols"},fast_forward:{keywords:["blue-square","play","speed","continue"],char:'\u23e9',fitzpatrick_scale:!1,category:"symbols"},rewind:{keywords:["play","blue-square"],char:'\u23ea',fitzpatrick_scale:!1,category:"symbols"},twisted_rightwards_arrows:{keywords:["blue-square","shuffle","music","random"],char:'\u{1f500}',fitzpatrick_scale:!1,category:"symbols"},repeat:{keywords:["loop","record"],char:'\u{1f501}',fitzpatrick_scale:!1,category:"symbols"},repeat_one:{keywords:["blue-square","loop"],char:'\u{1f502}',fitzpatrick_scale:!1,category:"symbols"},arrow_backward:{keywords:["blue-square","left","direction"],char:'\u25c0\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_up_small:{keywords:["blue-square","triangle","direction","point","forward","top"],char:'\u{1f53c}',fitzpatrick_scale:!1,category:"symbols"},arrow_down_small:{keywords:["blue-square","direction","bottom"],char:'\u{1f53d}',fitzpatrick_scale:!1,category:"symbols"},arrow_double_up:{keywords:["blue-square","direction","top"],char:'\u23eb',fitzpatrick_scale:!1,category:"symbols"},arrow_double_down:{keywords:["blue-square","direction","bottom"],char:'\u23ec',fitzpatrick_scale:!1,category:"symbols"},arrow_right:{keywords:["blue-square","next"],char:'\u27a1\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_left:{keywords:["blue-square","previous","back"],char:'\u2b05\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_up:{keywords:["blue-square","continue","top","direction"],char:'\u2b06\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_down:{keywords:["blue-square","direction","bottom"],char:'\u2b07\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_upper_right:{keywords:["blue-square","point","direction","diagonal","northeast"],char:'\u2197\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_lower_right:{keywords:["blue-square","direction","diagonal","southeast"],char:'\u2198\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_lower_left:{keywords:["blue-square","direction","diagonal","southwest"],char:'\u2199\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_upper_left:{keywords:["blue-square","point","direction","diagonal","northwest"],char:'\u2196\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_up_down:{keywords:["blue-square","direction","way","vertical"],char:'\u2195\ufe0f',fitzpatrick_scale:!1,category:"symbols"},left_right_arrow:{keywords:["shape","direction","horizontal","sideways"],char:'\u2194\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrows_counterclockwise:{keywords:["blue-square","sync","cycle"],char:'\u{1f504}',fitzpatrick_scale:!1,category:"symbols"},arrow_right_hook:{keywords:["blue-square","return","rotate","direction"],char:'\u21aa\ufe0f',fitzpatrick_scale:!1,category:"symbols"},leftwards_arrow_with_hook:{keywords:["back","return","blue-square","undo","enter"],char:'\u21a9\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_heading_up:{keywords:["blue-square","direction","top"],char:'\u2934\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrow_heading_down:{keywords:["blue-square","direction","bottom"],char:'\u2935\ufe0f',fitzpatrick_scale:!1,category:"symbols"},hash:{keywords:["symbol","blue-square","twitter"],char:'#\ufe0f\u20e3',fitzpatrick_scale:!1,category:"symbols"},information_source:{keywords:["blue-square","alphabet","letter"],char:'\u2139\ufe0f',fitzpatrick_scale:!1,category:"symbols"},abc:{keywords:["blue-square","alphabet"],char:'\u{1f524}',fitzpatrick_scale:!1,category:"symbols"},abcd:{keywords:["blue-square","alphabet"],char:'\u{1f521}',fitzpatrick_scale:!1,category:"symbols"},capital_abcd:{keywords:["alphabet","words","blue-square"],char:'\u{1f520}',fitzpatrick_scale:!1,category:"symbols"},symbols:{keywords:["blue-square","music","note","ampersand","percent","glyphs","characters"],char:'\u{1f523}',fitzpatrick_scale:!1,category:"symbols"},musical_note:{keywords:["score","tone","sound"],char:'\u{1f3b5}',fitzpatrick_scale:!1,category:"symbols"},notes:{keywords:["music","score"],char:'\u{1f3b6}',fitzpatrick_scale:!1,category:"symbols"},wavy_dash:{keywords:["draw","line","moustache","mustache","squiggle","scribble"],char:'\u3030\ufe0f',fitzpatrick_scale:!1,category:"symbols"},curly_loop:{keywords:["scribble","draw","shape","squiggle"],char:'\u27b0',fitzpatrick_scale:!1,category:"symbols"},heavy_check_mark:{keywords:["ok","nike","answer","yes","tick"],char:'\u2714\ufe0f',fitzpatrick_scale:!1,category:"symbols"},arrows_clockwise:{keywords:["sync","cycle","round","repeat"],char:'\u{1f503}',fitzpatrick_scale:!1,category:"symbols"},heavy_plus_sign:{keywords:["math","calculation","addition","more","increase"],char:'\u2795',fitzpatrick_scale:!1,category:"symbols"},heavy_minus_sign:{keywords:["math","calculation","subtract","less"],char:'\u2796',fitzpatrick_scale:!1,category:"symbols"},heavy_division_sign:{keywords:["divide","math","calculation"],char:'\u2797',fitzpatrick_scale:!1,category:"symbols"},heavy_multiplication_x:{keywords:["math","calculation"],char:'\u2716\ufe0f',fitzpatrick_scale:!1,category:"symbols"},infinity:{keywords:["forever"],char:'\u267e',fitzpatrick_scale:!1,category:"symbols"},heavy_dollar_sign:{keywords:["money","sales","payment","currency","buck"],char:'\u{1f4b2}',fitzpatrick_scale:!1,category:"symbols"},currency_exchange:{keywords:["money","sales","dollar","travel"],char:'\u{1f4b1}',fitzpatrick_scale:!1,category:"symbols"},copyright:{keywords:["ip","license","circle","law","legal"],char:'\xa9\ufe0f',fitzpatrick_scale:!1,category:"symbols"},Registroed:{keywords:["alphabet","circle"],char:'\xae\ufe0f',fitzpatrick_scale:!1,category:"symbols"},tm:{keywords:["trademark","brand","law","legal"],char:'\u2122\ufe0f',fitzpatrick_scale:!1,category:"symbols"},end:{keywords:["words","arrow"],char:'\u{1f51a}',fitzpatrick_scale:!1,category:"symbols"},back:{keywords:["arrow","words","return"],char:'\u{1f519}',fitzpatrick_scale:!1,category:"symbols"},on:{keywords:["arrow","words"],char:'\u{1f51b}',fitzpatrick_scale:!1,category:"symbols"},top:{keywords:["words","blue-square"],char:'\u{1f51d}',fitzpatrick_scale:!1,category:"symbols"},soon:{keywords:["arrow","words"],char:'\u{1f51c}',fitzpatrick_scale:!1,category:"symbols"},ballot_box_with_check:{keywords:["ok","agree","confirm","black-square","vote","election","yes","tick"],char:'\u2611\ufe0f',fitzpatrick_scale:!1,category:"symbols"},radio_button:{keywords:["input","old","music","circle"],char:'\u{1f518}',fitzpatrick_scale:!1,category:"symbols"},white_circle:{keywords:["shape","round"],char:'\u26aa',fitzpatrick_scale:!1,category:"symbols"},black_circle:{keywords:["shape","button","round"],char:'\u26ab',fitzpatrick_scale:!1,category:"symbols"},red_circle:{keywords:["shape","error","danger"],char:'\u{1f534}',fitzpatrick_scale:!1,category:"symbols"},large_blue_circle:{keywords:["shape","icon","button"],char:'\u{1f535}',fitzpatrick_scale:!1,category:"symbols"},small_orange_diamond:{keywords:["shape","jewel","gem"],char:'\u{1f538}',fitzpatrick_scale:!1,category:"symbols"},small_blue_diamond:{keywords:["shape","jewel","gem"],char:'\u{1f539}',fitzpatrick_scale:!1,category:"symbols"},large_orange_diamond:{keywords:["shape","jewel","gem"],char:'\u{1f536}',fitzpatrick_scale:!1,category:"symbols"},large_blue_diamond:{keywords:["shape","jewel","gem"],char:'\u{1f537}',fitzpatrick_scale:!1,category:"symbols"},small_red_triangle:{keywords:["shape","direction","up","top"],char:'\u{1f53a}',fitzpatrick_scale:!1,category:"symbols"},black_small_square:{keywords:["shape","icon"],char:'\u25aa\ufe0f',fitzpatrick_scale:!1,category:"symbols"},white_small_square:{keywords:["shape","icon"],char:'\u25ab\ufe0f',fitzpatrick_scale:!1,category:"symbols"},black_large_square:{keywords:["shape","icon","button"],char:'\u2b1b',fitzpatrick_scale:!1,category:"symbols"},white_large_square:{keywords:["shape","icon","stone","button"],char:'\u2b1c',fitzpatrick_scale:!1,category:"symbols"},small_red_triangle_down:{keywords:["shape","direction","bottom"],char:'\u{1f53b}',fitzpatrick_scale:!1,category:"symbols"},black_medium_square:{keywords:["shape","button","icon"],char:'\u25fc\ufe0f',fitzpatrick_scale:!1,category:"symbols"},white_medium_square:{keywords:["shape","stone","icon"],char:'\u25fb\ufe0f',fitzpatrick_scale:!1,category:"symbols"},black_medium_small_square:{keywords:["icon","shape","button"],char:'\u25fe',fitzpatrick_scale:!1,category:"symbols"},white_medium_small_square:{keywords:["shape","stone","icon","button"],char:'\u25fd',fitzpatrick_scale:!1,category:"symbols"},black_square_button:{keywords:["shape","input","frame"],char:'\u{1f532}',fitzpatrick_scale:!1,category:"symbols"},white_square_button:{keywords:["shape","input"],char:'\u{1f533}',fitzpatrick_scale:!1,category:"symbols"},speaker:{keywords:["sound","volume","silence","broadcast"],char:'\u{1f508}',fitzpatrick_scale:!1,category:"symbols"},sound:{keywords:["volume","speaker","broadcast"],char:'\u{1f509}',fitzpatrick_scale:!1,category:"symbols"},loud_sound:{keywords:["volume","noise","noisy","speaker","broadcast"],char:'\u{1f50a}',fitzpatrick_scale:!1,category:"symbols"},mute:{keywords:["sound","volume","silence","quiet"],char:'\u{1f507}',fitzpatrick_scale:!1,category:"symbols"},mega:{keywords:["sound","speaker","volume"],char:'\u{1f4e3}',fitzpatrick_scale:!1,category:"symbols"},loudspeaker:{keywords:["volume","sound"],char:'\u{1f4e2}',fitzpatrick_scale:!1,category:"symbols"},bell:{keywords:["sound","notification","christmas","xmas","chime"],char:'\u{1f514}',fitzpatrick_scale:!1,category:"symbols"},no_bell:{keywords:["sound","volume","mute","quiet","silent"],char:'\u{1f515}',fitzpatrick_scale:!1,category:"symbols"},black_joker:{keywords:["poker","cards","game","play","magic"],char:'\u{1f0cf}',fitzpatrick_scale:!1,category:"symbols"},mahjong:{keywords:["game","play","chinese","kanji"],char:'\u{1f004}',fitzpatrick_scale:!1,category:"symbols"},spades:{keywords:["poker","cards","suits","magic"],char:'\u2660\ufe0f',fitzpatrick_scale:!1,category:"symbols"},clubs:{keywords:["poker","cards","magic","suits"],char:'\u2663\ufe0f',fitzpatrick_scale:!1,category:"symbols"},hearts:{keywords:["poker","cards","magic","suits"],char:'\u2665\ufe0f',fitzpatrick_scale:!1,category:"symbols"},diamonds:{keywords:["poker","cards","magic","suits"],char:'\u2666\ufe0f',fitzpatrick_scale:!1,category:"symbols"},flower_playing_cards:{keywords:["game","sunset","red"],char:'\u{1f3b4}',fitzpatrick_scale:!1,category:"symbols"},thought_balloon:{keywords:["bubble","cloud","speech","thinking","dream"],char:'\u{1f4ad}',fitzpatrick_scale:!1,category:"symbols"},right_anger_bubble:{keywords:["caption","speech","thinking","mad"],char:'\u{1f5ef}',fitzpatrick_scale:!1,category:"symbols"},speech_balloon:{keywords:["bubble","words","message","talk","chatting"],char:'\u{1f4ac}',fitzpatrick_scale:!1,category:"symbols"},left_speech_bubble:{keywords:["words","message","talk","chatting"],char:'\u{1f5e8}',fitzpatrick_scale:!1,category:"symbols"},clock1:{keywords:["time","late","early","schedule"],char:'\u{1f550}',fitzpatrick_scale:!1,category:"symbols"},clock2:{keywords:["time","late","early","schedule"],char:'\u{1f551}',fitzpatrick_scale:!1,category:"symbols"},clock3:{keywords:["time","late","early","schedule"],char:'\u{1f552}',fitzpatrick_scale:!1,category:"symbols"},clock4:{keywords:["time","late","early","schedule"],char:'\u{1f553}',fitzpatrick_scale:!1,category:"symbols"},clock5:{keywords:["time","late","early","schedule"],char:'\u{1f554}',fitzpatrick_scale:!1,category:"symbols"},clock6:{keywords:["time","late","early","schedule","dawn","dusk"],char:'\u{1f555}',fitzpatrick_scale:!1,category:"symbols"},clock7:{keywords:["time","late","early","schedule"],char:'\u{1f556}',fitzpatrick_scale:!1,category:"symbols"},clock8:{keywords:["time","late","early","schedule"],char:'\u{1f557}',fitzpatrick_scale:!1,category:"symbols"},clock9:{keywords:["time","late","early","schedule"],char:'\u{1f558}',fitzpatrick_scale:!1,category:"symbols"},clock10:{keywords:["time","late","early","schedule"],char:'\u{1f559}',fitzpatrick_scale:!1,category:"symbols"},clock11:{keywords:["time","late","early","schedule"],char:'\u{1f55a}',fitzpatrick_scale:!1,category:"symbols"},clock12:{keywords:["time","noon","midnight","midday","late","early","schedule"],char:'\u{1f55b}',fitzpatrick_scale:!1,category:"symbols"},clock130:{keywords:["time","late","early","schedule"],char:'\u{1f55c}',fitzpatrick_scale:!1,category:"symbols"},clock230:{keywords:["time","late","early","schedule"],char:'\u{1f55d}',fitzpatrick_scale:!1,category:"symbols"},clock330:{keywords:["time","late","early","schedule"],char:'\u{1f55e}',fitzpatrick_scale:!1,category:"symbols"},clock430:{keywords:["time","late","early","schedule"],char:'\u{1f55f}',fitzpatrick_scale:!1,category:"symbols"},clock530:{keywords:["time","late","early","schedule"],char:'\u{1f560}',fitzpatrick_scale:!1,category:"symbols"},clock630:{keywords:["time","late","early","schedule"],char:'\u{1f561}',fitzpatrick_scale:!1,category:"symbols"},clock730:{keywords:["time","late","early","schedule"],char:'\u{1f562}',fitzpatrick_scale:!1,category:"symbols"},clock830:{keywords:["time","late","early","schedule"],char:'\u{1f563}',fitzpatrick_scale:!1,category:"symbols"},clock930:{keywords:["time","late","early","schedule"],char:'\u{1f564}',fitzpatrick_scale:!1,category:"symbols"},clock1030:{keywords:["time","late","early","schedule"],char:'\u{1f565}',fitzpatrick_scale:!1,category:"symbols"},clock1130:{keywords:["time","late","early","schedule"],char:'\u{1f566}',fitzpatrick_scale:!1,category:"symbols"},clock1230:{keywords:["time","late","early","schedule"],char:'\u{1f567}',fitzpatrick_scale:!1,category:"symbols"},afghanistan:{keywords:["af","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},aland_islands:{keywords:["\xc5land","islands","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1fd}',fitzpatrick_scale:!1,category:"flags"},albania:{keywords:["al","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},algeria:{keywords:["dz","flag","nation","country","banner"],char:'\u{1f1e9}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},american_samoa:{keywords:["american","ws","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},andorra:{keywords:["ad","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},angola:{keywords:["ao","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},anguilla:{keywords:["ai","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},antarctica:{keywords:["aq","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f6}',fitzpatrick_scale:!1,category:"flags"},antigua_barbuda:{keywords:["antigua","barbuda","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},argentina:{keywords:["ar","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},armenia:{keywords:["am","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},aruba:{keywords:["aw","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},australia:{keywords:["au","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},austria:{keywords:["at","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},azerbaijan:{keywords:["az","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},bahamas:{keywords:["bs","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},bahrain:{keywords:["bh","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},bangladesh:{keywords:["bd","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},barbados:{keywords:["bb","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1e7}',fitzpatrick_scale:!1,category:"flags"},belarus:{keywords:["by","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},belgium:{keywords:["be","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},belize:{keywords:["bz","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},benin:{keywords:["bj","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ef}',fitzpatrick_scale:!1,category:"flags"},bermuda:{keywords:["bm","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},bhutan:{keywords:["bt","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},bolivia:{keywords:["bo","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},caribbean_netherlands:{keywords:["bonaire","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f6}',fitzpatrick_scale:!1,category:"flags"},bosnia_herzegovina:{keywords:["bosnia","herzegovina","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},botswana:{keywords:["bw","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},brazil:{keywords:["br","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},british_indian_ocean_territory:{keywords:["british","indian","ocean","territory","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},british_virgin_islands:{keywords:["british","virgin","islands","bvi","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},brunei:{keywords:["bn","darussalam","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},bulgaria:{keywords:["bg","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},burkina_faso:{keywords:["burkina","faso","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},burundi:{keywords:["bi","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},cape_verde:{keywords:["cabo","verde","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1fb}',fitzpatrick_scale:!1,category:"flags"},cambodia:{keywords:["kh","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},cameroon:{keywords:["cm","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},canada:{keywords:["ca","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},canary_islands:{keywords:["canary","islands","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},cayman_islands:{keywords:["cayman","islands","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},central_african_republic:{keywords:["central","african","republic","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},chad:{keywords:["td","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},chile:{keywords:["flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},cn:{keywords:["china","chinese","prc","flag","country","nation","banner"],char:'\u{1f1e8}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},christmas_island:{keywords:["christmas","island","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1fd}',fitzpatrick_scale:!1,category:"flags"},cocos_islands:{keywords:["cocos","keeling","islands","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},colombia:{keywords:["co","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},comoros:{keywords:["km","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},congo_brazzaville:{keywords:["congo","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},congo_kinshasa:{keywords:["congo","democratic","republic","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},cook_islands:{keywords:["cook","islands","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},costa_rica:{keywords:["costa","rica","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},croatia:{keywords:["hr","flag","nation","country","banner"],char:'\u{1f1ed}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},cuba:{keywords:["cu","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},curacao:{keywords:["cura\xe7ao","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},cyprus:{keywords:["cy","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},czech_republic:{keywords:["cz","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},denmark:{keywords:["dk","flag","nation","country","banner"],char:'\u{1f1e9}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},djibouti:{keywords:["dj","flag","nation","country","banner"],char:'\u{1f1e9}\u{1f1ef}',fitzpatrick_scale:!1,category:"flags"},dominica:{keywords:["dm","flag","nation","country","banner"],char:'\u{1f1e9}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},dominican_republic:{keywords:["dominican","republic","flag","nation","country","banner"],char:'\u{1f1e9}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},ecuador:{keywords:["ec","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},egypt:{keywords:["eg","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},el_salvador:{keywords:["el","salvador","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1fb}',fitzpatrick_scale:!1,category:"flags"},equatorial_guinea:{keywords:["equatorial","gn","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f6}',fitzpatrick_scale:!1,category:"flags"},eritrea:{keywords:["er","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},estonia:{keywords:["ee","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},ethiopia:{keywords:["et","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},eu:{keywords:["european","union","flag","banner"],char:'\u{1f1ea}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},falkland_islands:{keywords:["falkland","islands","malvinas","flag","nation","country","banner"],char:'\u{1f1eb}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},faroe_islands:{keywords:["faroe","islands","flag","nation","country","banner"],char:'\u{1f1eb}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},fiji:{keywords:["fj","flag","nation","country","banner"],char:'\u{1f1eb}\u{1f1ef}',fitzpatrick_scale:!1,category:"flags"},finland:{keywords:["fi","flag","nation","country","banner"],char:'\u{1f1eb}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},fr:{keywords:["banner","flag","nation","france","french","country"],char:'\u{1f1eb}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},french_guiana:{keywords:["french","guiana","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},french_polynesia:{keywords:["french","polynesia","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},french_southern_territories:{keywords:["french","southern","territories","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},gabon:{keywords:["ga","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},gambia:{keywords:["gm","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},georgia:{keywords:["ge","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},de:{keywords:["german","nation","flag","country","banner"],char:'\u{1f1e9}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},ghana:{keywords:["gh","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},gibraltar:{keywords:["gi","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},greece:{keywords:["gr","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},greenland:{keywords:["gl","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},grenada:{keywords:["gd","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},guadeloupe:{keywords:["gp","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f5}',fitzpatrick_scale:!1,category:"flags"},guam:{keywords:["gu","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},guatemala:{keywords:["gt","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},guernsey:{keywords:["gg","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},guinea:{keywords:["gn","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},guinea_bissau:{keywords:["gw","bissau","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},guyana:{keywords:["gy","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},haiti:{keywords:["ht","flag","nation","country","banner"],char:'\u{1f1ed}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},honduras:{keywords:["hn","flag","nation","country","banner"],char:'\u{1f1ed}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},hong_kong:{keywords:["hong","kong","flag","nation","country","banner"],char:'\u{1f1ed}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},hungary:{keywords:["hu","flag","nation","country","banner"],char:'\u{1f1ed}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},iceland:{keywords:["is","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},india:{keywords:["in","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},indonesia:{keywords:["flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},iran:{keywords:["iran,","islamic","republic","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},iraq:{keywords:["iq","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f6}',fitzpatrick_scale:!1,category:"flags"},ireland:{keywords:["ie","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},isle_of_man:{keywords:["isle","man","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},israel:{keywords:["il","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},it:{keywords:["italy","flag","nation","country","banner"],char:'\u{1f1ee}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},cote_divoire:{keywords:["ivory","coast","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},jamaica:{keywords:["jm","flag","nation","country","banner"],char:'\u{1f1ef}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},jp:{keywords:["japanese","nation","flag","country","banner"],char:'\u{1f1ef}\u{1f1f5}',fitzpatrick_scale:!1,category:"flags"},jersey:{keywords:["je","flag","nation","country","banner"],char:'\u{1f1ef}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},jordan:{keywords:["jo","flag","nation","country","banner"],char:'\u{1f1ef}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},kazakhstan:{keywords:["kz","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},kenya:{keywords:["ke","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},kiribati:{keywords:["ki","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},kosovo:{keywords:["xk","flag","nation","country","banner"],char:'\u{1f1fd}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},kuwait:{keywords:["kw","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},kyrgyzstan:{keywords:["kg","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},laos:{keywords:["lao","democratic","republic","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},latvia:{keywords:["lv","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1fb}',fitzpatrick_scale:!1,category:"flags"},lebanon:{keywords:["lb","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1e7}',fitzpatrick_scale:!1,category:"flags"},lesotho:{keywords:["ls","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},liberia:{keywords:["lr","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},libya:{keywords:["ly","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},liechtenstein:{keywords:["li","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},lithuania:{keywords:["lt","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},luxembourg:{keywords:["lu","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},macau:{keywords:["macao","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},macedonia:{keywords:["macedonia,","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},madagascar:{keywords:["mg","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},malawi:{keywords:["mw","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},malaysia:{keywords:["my","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},maldives:{keywords:["mv","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1fb}',fitzpatrick_scale:!1,category:"flags"},mali:{keywords:["ml","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},malta:{keywords:["mt","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},marshall_islands:{keywords:["marshall","islands","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},martinique:{keywords:["mq","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f6}',fitzpatrick_scale:!1,category:"flags"},mauritania:{keywords:["mr","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},mauritius:{keywords:["mu","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},mayotte:{keywords:["yt","flag","nation","country","banner"],char:'\u{1f1fe}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},mexico:{keywords:["mx","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1fd}',fitzpatrick_scale:!1,category:"flags"},micronesia:{keywords:["micronesia,","federated","states","flag","nation","country","banner"],char:'\u{1f1eb}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},moldova:{keywords:["moldova,","republic","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},monaco:{keywords:["mc","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},mongolia:{keywords:["mn","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},montenegro:{keywords:["me","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},montserrat:{keywords:["ms","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},morocco:{keywords:["ma","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},mozambique:{keywords:["mz","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},myanmar:{keywords:["mm","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},namibia:{keywords:["na","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},nauru:{keywords:["nr","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},nepal:{keywords:["np","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1f5}',fitzpatrick_scale:!1,category:"flags"},netherlands:{keywords:["nl","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},new_caledonia:{keywords:["new","caledonia","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},new_zealand:{keywords:["new","zealand","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},nicaragua:{keywords:["ni","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},niger:{keywords:["ne","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},nigeria:{keywords:["flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},niue:{keywords:["nu","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},norfolk_island:{keywords:["norfolk","island","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},northern_mariana_islands:{keywords:["northern","mariana","islands","flag","nation","country","banner"],char:'\u{1f1f2}\u{1f1f5}',fitzpatrick_scale:!1,category:"flags"},north_korea:{keywords:["north","korea","nation","flag","country","banner"],char:'\u{1f1f0}\u{1f1f5}',fitzpatrick_scale:!1,category:"flags"},norway:{keywords:["no","flag","nation","country","banner"],char:'\u{1f1f3}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},oman:{keywords:["om_symbol","flag","nation","country","banner"],char:'\u{1f1f4}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},pakistan:{keywords:["pk","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},palau:{keywords:["pw","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},palestinian_territories:{keywords:["palestine","palestinian","territories","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},panama:{keywords:["pa","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},papua_new_guinea:{keywords:["papua","new","guinea","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},paraguay:{keywords:["py","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},peru:{keywords:["pe","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},philippines:{keywords:["ph","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},pitcairn_islands:{keywords:["pitcairn","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},poland:{keywords:["pl","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},portugal:{keywords:["pt","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},puerto_rico:{keywords:["puerto","rico","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},qatar:{keywords:["qa","flag","nation","country","banner"],char:'\u{1f1f6}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},reunion:{keywords:["r\xe9union","flag","nation","country","banner"],char:'\u{1f1f7}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},romania:{keywords:["ro","flag","nation","country","banner"],char:'\u{1f1f7}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},ru:{keywords:["russian","federation","flag","nation","country","banner"],char:'\u{1f1f7}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},rwanda:{keywords:["rw","flag","nation","country","banner"],char:'\u{1f1f7}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},st_barthelemy:{keywords:["saint","barth\xe9lemy","flag","nation","country","banner"],char:'\u{1f1e7}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},st_helena:{keywords:["saint","helena","ascension","tristan","cunha","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},st_kitts_nevis:{keywords:["saint","kitts","nevis","flag","nation","country","banner"],char:'\u{1f1f0}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},st_lucia:{keywords:["saint","lucia","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},st_pierre_miquelon:{keywords:["saint","pierre","miquelon","flag","nation","country","banner"],char:'\u{1f1f5}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},st_vincent_grenadines:{keywords:["saint","vincent","grenadines","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},samoa:{keywords:["ws","flag","nation","country","banner"],char:'\u{1f1fc}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},san_marino:{keywords:["san","marino","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},sao_tome_principe:{keywords:["sao","tome","principe","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},saudi_arabia:{keywords:["flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},senegal:{keywords:["sn","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},serbia:{keywords:["rs","flag","nation","country","banner"],char:'\u{1f1f7}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},seychelles:{keywords:["sc","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},sierra_leone:{keywords:["sierra","leone","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},singapore:{keywords:["sg","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},sint_maarten:{keywords:["sint","maarten","dutch","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1fd}',fitzpatrick_scale:!1,category:"flags"},slovakia:{keywords:["sk","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},slovenia:{keywords:["si","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},solomon_islands:{keywords:["solomon","islands","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1e7}',fitzpatrick_scale:!1,category:"flags"},somalia:{keywords:["so","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},south_africa:{keywords:["south","africa","flag","nation","country","banner"],char:'\u{1f1ff}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},south_georgia_south_sandwich_islands:{keywords:["south","georgia","sandwich","islands","flag","nation","country","banner"],char:'\u{1f1ec}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},kr:{keywords:["south","korea","nation","flag","country","banner"],char:'\u{1f1f0}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},south_sudan:{keywords:["south","sd","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},es:{keywords:["spain","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},sri_lanka:{keywords:["sri","lanka","flag","nation","country","banner"],char:'\u{1f1f1}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},sudan:{keywords:["sd","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1e9}',fitzpatrick_scale:!1,category:"flags"},suriname:{keywords:["sr","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},swaziland:{keywords:["sz","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},sweden:{keywords:["se","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},switzerland:{keywords:["ch","flag","nation","country","banner"],char:'\u{1f1e8}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},syria:{keywords:["syrian","arab","republic","flag","nation","country","banner"],char:'\u{1f1f8}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},taiwan:{keywords:["tw","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},tajikistan:{keywords:["tj","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1ef}',fitzpatrick_scale:!1,category:"flags"},tanzania:{keywords:["tanzania,","united","republic","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},thailand:{keywords:["th","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},timor_leste:{keywords:["timor","leste","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f1}',fitzpatrick_scale:!1,category:"flags"},togo:{keywords:["tg","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},tokelau:{keywords:["tk","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f0}',fitzpatrick_scale:!1,category:"flags"},tonga:{keywords:["to","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f4}',fitzpatrick_scale:!1,category:"flags"},trinidad_tobago:{keywords:["trinidad","tobago","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f9}',fitzpatrick_scale:!1,category:"flags"},tunisia:{keywords:["tn","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},tr:{keywords:["turkey","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f7}',fitzpatrick_scale:!1,category:"flags"},turkmenistan:{keywords:["flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},turks_caicos_islands:{keywords:["turks","caicos","islands","flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1e8}',fitzpatrick_scale:!1,category:"flags"},tuvalu:{keywords:["flag","nation","country","banner"],char:'\u{1f1f9}\u{1f1fb}',fitzpatrick_scale:!1,category:"flags"},uganda:{keywords:["ug","flag","nation","country","banner"],char:'\u{1f1fa}\u{1f1ec}',fitzpatrick_scale:!1,category:"flags"},ukraine:{keywords:["ua","flag","nation","country","banner"],char:'\u{1f1fa}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},united_arab_emirates:{keywords:["united","arab","emirates","flag","nation","country","banner"],char:'\u{1f1e6}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},uk:{keywords:["united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack"],char:'\u{1f1ec}\u{1f1e7}',fitzpatrick_scale:!1,category:"flags"},england:{keywords:["flag","english"],char:'\u{1f3f4}\u{e0067}\u{e0062}\u{e0065}\u{e006e}\u{e0067}\u{e007f}',fitzpatrick_scale:!1,category:"flags"},scotland:{keywords:["flag","scottish"],char:'\u{1f3f4}\u{e0067}\u{e0062}\u{e0073}\u{e0063}\u{e0074}\u{e007f}',fitzpatrick_scale:!1,category:"flags"},wales:{keywords:["flag","welsh"],char:'\u{1f3f4}\u{e0067}\u{e0062}\u{e0077}\u{e006c}\u{e0073}\u{e007f}',fitzpatrick_scale:!1,category:"flags"},us:{keywords:["united","states","america","flag","nation","country","banner"],char:'\u{1f1fa}\u{1f1f8}',fitzpatrick_scale:!1,category:"flags"},us_virgin_islands:{keywords:["virgin","islands","us","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1ee}',fitzpatrick_scale:!1,category:"flags"},uruguay:{keywords:["uy","flag","nation","country","banner"],char:'\u{1f1fa}\u{1f1fe}',fitzpatrick_scale:!1,category:"flags"},uzbekistan:{keywords:["uz","flag","nation","country","banner"],char:'\u{1f1fa}\u{1f1ff}',fitzpatrick_scale:!1,category:"flags"},vanuatu:{keywords:["vu","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1fa}',fitzpatrick_scale:!1,category:"flags"},vatican_city:{keywords:["vatican","city","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1e6}',fitzpatrick_scale:!1,category:"flags"},venezuela:{keywords:["ve","bolivarian","republic","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},vietnam:{keywords:["viet","nam","flag","nation","country","banner"],char:'\u{1f1fb}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},wallis_futuna:{keywords:["wallis","futuna","flag","nation","country","banner"],char:'\u{1f1fc}\u{1f1eb}',fitzpatrick_scale:!1,category:"flags"},western_sahara:{keywords:["western","sahara","flag","nation","country","banner"],char:'\u{1f1ea}\u{1f1ed}',fitzpatrick_scale:!1,category:"flags"},yemen:{keywords:["ye","flag","nation","country","banner"],char:'\u{1f1fe}\u{1f1ea}',fitzpatrick_scale:!1,category:"flags"},zambia:{keywords:["zm","flag","nation","country","banner"],char:'\u{1f1ff}\u{1f1f2}',fitzpatrick_scale:!1,category:"flags"},zimbabwe:{keywords:["zw","flag","nation","country","banner"],char:'\u{1f1ff}\u{1f1fc}',fitzpatrick_scale:!1,category:"flags"},united_nations:{keywords:["un","flag","banner"],char:'\u{1f1fa}\u{1f1f3}',fitzpatrick_scale:!1,category:"flags"},pirate_flag:{keywords:["skull","crossbones","flag","banner"],char:'\u{1f3f4}\u200d\u2620\ufe0f',fitzpatrick_scale:!1,category:"flags"}}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.js new file mode 100644 index 0000000..97977b3 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.js @@ -0,0 +1 @@ +window.tinymce.Resource.add("tinymce.plugins.emoticons",{grinning:{keywords:["face","smile","happy","joy",":D","grin"],char:"😀",fitzpatrick_scale:false,category:"people"},grimacing:{keywords:["face","grimace","teeth"],char:"😬",fitzpatrick_scale:false,category:"people"},grin:{keywords:["face","happy","smile","joy","kawaii"],char:"😁",fitzpatrick_scale:false,category:"people"},joy:{keywords:["face","cry","tears","weep","happy","happytears","haha"],char:"😂",fitzpatrick_scale:false,category:"people"},rofl:{keywords:["face","rolling","floor","laughing","lol","haha"],char:"🤣",fitzpatrick_scale:false,category:"people"},partying:{keywords:["face","celebration","woohoo"],char:"🥳",fitzpatrick_scale:false,category:"people"},smiley:{keywords:["face","happy","joy","haha",":D",":)","smile","funny"],char:"😃",fitzpatrick_scale:false,category:"people"},smile:{keywords:["face","happy","joy","funny","haha","laugh","like",":D",":)"],char:"😄",fitzpatrick_scale:false,category:"people"},sweat_smile:{keywords:["face","hot","happy","laugh","sweat","smile","relief"],char:"😅",fitzpatrick_scale:false,category:"people"},laughing:{keywords:["happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],char:"😆",fitzpatrick_scale:false,category:"people"},innocent:{keywords:["face","angel","heaven","halo"],char:"😇",fitzpatrick_scale:false,category:"people"},wink:{keywords:["face","happy","mischievous","secret",";)","smile","eye"],char:"😉",fitzpatrick_scale:false,category:"people"},blush:{keywords:["face","smile","happy","flushed","crush","embarrassed","shy","joy"],char:"😊",fitzpatrick_scale:false,category:"people"},slightly_smiling_face:{keywords:["face","smile"],char:"🙂",fitzpatrick_scale:false,category:"people"},upside_down_face:{keywords:["face","flipped","silly","smile"],char:"🙃",fitzpatrick_scale:false,category:"people"},relaxed:{keywords:["face","blush","massage","happiness"],char:"☺️",fitzpatrick_scale:false,category:"people"},yum:{keywords:["happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],char:"😋",fitzpatrick_scale:false,category:"people"},relieved:{keywords:["face","relaxed","phew","massage","happiness"],char:"😌",fitzpatrick_scale:false,category:"people"},heart_eyes:{keywords:["face","love","like","affection","valentines","infatuation","crush","heart"],char:"😍",fitzpatrick_scale:false,category:"people"},smiling_face_with_three_hearts:{keywords:["face","love","like","affection","valentines","infatuation","crush","hearts","adore"],char:"🥰",fitzpatrick_scale:false,category:"people"},kissing_heart:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:"😘",fitzpatrick_scale:false,category:"people"},kissing:{keywords:["love","like","face","3","valentines","infatuation","kiss"],char:"😗",fitzpatrick_scale:false,category:"people"},kissing_smiling_eyes:{keywords:["face","affection","valentines","infatuation","kiss"],char:"😙",fitzpatrick_scale:false,category:"people"},kissing_closed_eyes:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:"😚",fitzpatrick_scale:false,category:"people"},stuck_out_tongue_winking_eye:{keywords:["face","prank","childish","playful","mischievous","smile","wink","tongue"],char:"😜",fitzpatrick_scale:false,category:"people"},zany:{keywords:["face","goofy","crazy"],char:"🤪",fitzpatrick_scale:false,category:"people"},raised_eyebrow:{keywords:["face","distrust","scepticism","disapproval","disbelief","surprise"],char:"🤨",fitzpatrick_scale:false,category:"people"},monocle:{keywords:["face","stuffy","wealthy"],char:"🧐",fitzpatrick_scale:false,category:"people"},stuck_out_tongue_closed_eyes:{keywords:["face","prank","playful","mischievous","smile","tongue"],char:"😝",fitzpatrick_scale:false,category:"people"},stuck_out_tongue:{keywords:["face","prank","childish","playful","mischievous","smile","tongue"],char:"😛",fitzpatrick_scale:false,category:"people"},money_mouth_face:{keywords:["face","rich","dollar","money"],char:"🤑",fitzpatrick_scale:false,category:"people"},nerd_face:{keywords:["face","nerdy","geek","dork"],char:"🤓",fitzpatrick_scale:false,category:"people"},sunglasses:{keywords:["face","cool","smile","summer","beach","sunglass"],char:"😎",fitzpatrick_scale:false,category:"people"},star_struck:{keywords:["face","smile","starry","eyes","grinning"],char:"🤩",fitzpatrick_scale:false,category:"people"},clown_face:{keywords:["face"],char:"🤡",fitzpatrick_scale:false,category:"people"},cowboy_hat_face:{keywords:["face","cowgirl","hat"],char:"🤠",fitzpatrick_scale:false,category:"people"},hugs:{keywords:["face","smile","hug"],char:"🤗",fitzpatrick_scale:false,category:"people"},smirk:{keywords:["face","smile","mean","prank","smug","sarcasm"],char:"😏",fitzpatrick_scale:false,category:"people"},no_mouth:{keywords:["face","hellokitty"],char:"😶",fitzpatrick_scale:false,category:"people"},neutral_face:{keywords:["indifference","meh",":|","neutral"],char:"😐",fitzpatrick_scale:false,category:"people"},expressionless:{keywords:["face","indifferent","-_-","meh","deadpan"],char:"😑",fitzpatrick_scale:false,category:"people"},unamused:{keywords:["indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","side_eye"],char:"😒",fitzpatrick_scale:false,category:"people"},roll_eyes:{keywords:["face","eyeroll","frustrated"],char:"🙄",fitzpatrick_scale:false,category:"people"},thinking:{keywords:["face","hmmm","think","consider"],char:"🤔",fitzpatrick_scale:false,category:"people"},lying_face:{keywords:["face","lie","pinocchio"],char:"🤥",fitzpatrick_scale:false,category:"people"},hand_over_mouth:{keywords:["face","whoops","shock","surprise"],char:"🤭",fitzpatrick_scale:false,category:"people"},shushing:{keywords:["face","quiet","shhh"],char:"🤫",fitzpatrick_scale:false,category:"people"},symbols_over_mouth:{keywords:["face","swearing","cursing","cussing","profanity","expletive"],char:"🤬",fitzpatrick_scale:false,category:"people"},exploding_head:{keywords:["face","shocked","mind","blown"],char:"🤯",fitzpatrick_scale:false,category:"people"},flushed:{keywords:["face","blush","shy","flattered"],char:"😳",fitzpatrick_scale:false,category:"people"},disappointed:{keywords:["face","sad","upset","depressed",":("],char:"😞",fitzpatrick_scale:false,category:"people"},worried:{keywords:["face","concern","nervous",":("],char:"😟",fitzpatrick_scale:false,category:"people"},angry:{keywords:["mad","face","annoyed","frustrated"],char:"😠",fitzpatrick_scale:false,category:"people"},rage:{keywords:["angry","mad","hate","despise"],char:"😡",fitzpatrick_scale:false,category:"people"},pensive:{keywords:["face","sad","depressed","upset"],char:"😔",fitzpatrick_scale:false,category:"people"},confused:{keywords:["face","indifference","huh","weird","hmmm",":/"],char:"😕",fitzpatrick_scale:false,category:"people"},slightly_frowning_face:{keywords:["face","frowning","disappointed","sad","upset"],char:"🙁",fitzpatrick_scale:false,category:"people"},frowning_face:{keywords:["face","sad","upset","frown"],char:"☹",fitzpatrick_scale:false,category:"people"},persevere:{keywords:["face","sick","no","upset","oops"],char:"😣",fitzpatrick_scale:false,category:"people"},confounded:{keywords:["face","confused","sick","unwell","oops",":S"],char:"😖",fitzpatrick_scale:false,category:"people"},tired_face:{keywords:["sick","whine","upset","frustrated"],char:"😫",fitzpatrick_scale:false,category:"people"},weary:{keywords:["face","tired","sleepy","sad","frustrated","upset"],char:"😩",fitzpatrick_scale:false,category:"people"},pleading:{keywords:["face","begging","mercy"],char:"🥺",fitzpatrick_scale:false,category:"people"},triumph:{keywords:["face","gas","phew","proud","pride"],char:"😤",fitzpatrick_scale:false,category:"people"},open_mouth:{keywords:["face","surprise","impressed","wow","whoa",":O"],char:"😮",fitzpatrick_scale:false,category:"people"},scream:{keywords:["face","munch","scared","omg"],char:"😱",fitzpatrick_scale:false,category:"people"},fearful:{keywords:["face","scared","terrified","nervous","oops","huh"],char:"😨",fitzpatrick_scale:false,category:"people"},cold_sweat:{keywords:["face","nervous","sweat"],char:"😰",fitzpatrick_scale:false,category:"people"},hushed:{keywords:["face","woo","shh"],char:"😯",fitzpatrick_scale:false,category:"people"},frowning:{keywords:["face","aw","what"],char:"😦",fitzpatrick_scale:false,category:"people"},anguished:{keywords:["face","stunned","nervous"],char:"😧",fitzpatrick_scale:false,category:"people"},cry:{keywords:["face","tears","sad","depressed","upset",":'("],char:"😢",fitzpatrick_scale:false,category:"people"},disappointed_relieved:{keywords:["face","phew","sweat","nervous"],char:"😥",fitzpatrick_scale:false,category:"people"},drooling_face:{keywords:["face"],char:"🤤",fitzpatrick_scale:false,category:"people"},sleepy:{keywords:["face","tired","rest","nap"],char:"😪",fitzpatrick_scale:false,category:"people"},sweat:{keywords:["face","hot","sad","tired","exercise"],char:"😓",fitzpatrick_scale:false,category:"people"},hot:{keywords:["face","feverish","heat","red","sweating"],char:"🥵",fitzpatrick_scale:false,category:"people"},cold:{keywords:["face","blue","freezing","frozen","frostbite","icicles"],char:"🥶",fitzpatrick_scale:false,category:"people"},sob:{keywords:["face","cry","tears","sad","upset","depressed"],char:"😭",fitzpatrick_scale:false,category:"people"},dizzy_face:{keywords:["spent","unconscious","xox","dizzy"],char:"😵",fitzpatrick_scale:false,category:"people"},astonished:{keywords:["face","xox","surprised","poisoned"],char:"😲",fitzpatrick_scale:false,category:"people"},zipper_mouth_face:{keywords:["face","sealed","zipper","secret"],char:"🤐",fitzpatrick_scale:false,category:"people"},nauseated_face:{keywords:["face","vomit","gross","green","sick","throw up","ill"],char:"🤢",fitzpatrick_scale:false,category:"people"},sneezing_face:{keywords:["face","gesundheit","sneeze","sick","allergy"],char:"🤧",fitzpatrick_scale:false,category:"people"},vomiting:{keywords:["face","sick"],char:"🤮",fitzpatrick_scale:false,category:"people"},mask:{keywords:["face","sick","ill","disease"],char:"😷",fitzpatrick_scale:false,category:"people"},face_with_thermometer:{keywords:["sick","temperature","thermometer","cold","fever"],char:"🤒",fitzpatrick_scale:false,category:"people"},face_with_head_bandage:{keywords:["injured","clumsy","bandage","hurt"],char:"🤕",fitzpatrick_scale:false,category:"people"},woozy:{keywords:["face","dizzy","intoxicated","tipsy","wavy"],char:"🥴",fitzpatrick_scale:false,category:"people"},sleeping:{keywords:["face","tired","sleepy","night","zzz"],char:"😴",fitzpatrick_scale:false,category:"people"},zzz:{keywords:["sleepy","tired","dream"],char:"💤",fitzpatrick_scale:false,category:"people"},poop:{keywords:["hankey","shitface","fail","turd","shit"],char:"💩",fitzpatrick_scale:false,category:"people"},smiling_imp:{keywords:["devil","horns"],char:"😈",fitzpatrick_scale:false,category:"people"},imp:{keywords:["devil","angry","horns"],char:"👿",fitzpatrick_scale:false,category:"people"},japanese_ogre:{keywords:["monster","red","mask","halloween","scary","creepy","devil","demon","japanese","ogre"],char:"👹",fitzpatrick_scale:false,category:"people"},japanese_goblin:{keywords:["red","evil","mask","monster","scary","creepy","japanese","goblin"],char:"👺",fitzpatrick_scale:false,category:"people"},skull:{keywords:["dead","skeleton","creepy","death"],char:"💀",fitzpatrick_scale:false,category:"people"},ghost:{keywords:["halloween","spooky","scary"],char:"👻",fitzpatrick_scale:false,category:"people"},alien:{keywords:["UFO","paul","weird","outer_space"],char:"👽",fitzpatrick_scale:false,category:"people"},robot:{keywords:["computer","machine","bot"],char:"🤖",fitzpatrick_scale:false,category:"people"},smiley_cat:{keywords:["animal","cats","happy","smile"],char:"😺",fitzpatrick_scale:false,category:"people"},smile_cat:{keywords:["animal","cats","smile"],char:"😸",fitzpatrick_scale:false,category:"people"},joy_cat:{keywords:["animal","cats","haha","happy","tears"],char:"😹",fitzpatrick_scale:false,category:"people"},heart_eyes_cat:{keywords:["animal","love","like","affection","cats","valentines","heart"],char:"😻",fitzpatrick_scale:false,category:"people"},smirk_cat:{keywords:["animal","cats","smirk"],char:"😼",fitzpatrick_scale:false,category:"people"},kissing_cat:{keywords:["animal","cats","kiss"],char:"😽",fitzpatrick_scale:false,category:"people"},scream_cat:{keywords:["animal","cats","munch","scared","scream"],char:"🙀",fitzpatrick_scale:false,category:"people"},crying_cat_face:{keywords:["animal","tears","weep","sad","cats","upset","cry"],char:"😿",fitzpatrick_scale:false,category:"people"},pouting_cat:{keywords:["animal","cats"],char:"😾",fitzpatrick_scale:false,category:"people"},palms_up:{keywords:["hands","gesture","cupped","prayer"],char:"🤲",fitzpatrick_scale:true,category:"people"},raised_hands:{keywords:["gesture","hooray","yea","celebration","hands"],char:"🙌",fitzpatrick_scale:true,category:"people"},clap:{keywords:["hands","praise","applause","congrats","yay"],char:"👏",fitzpatrick_scale:true,category:"people"},wave:{keywords:["hands","gesture","goodbye","solong","farewell","hello","hi","palm"],char:"👋",fitzpatrick_scale:true,category:"people"},call_me_hand:{keywords:["hands","gesture"],char:"🤙",fitzpatrick_scale:true,category:"people"},"+1":{keywords:["thumbsup","yes","awesome","good","agree","accept","cool","hand","like"],char:"👍",fitzpatrick_scale:true,category:"people"},"-1":{keywords:["thumbsdown","no","dislike","hand"],char:"👎",fitzpatrick_scale:true,category:"people"},facepunch:{keywords:["angry","violence","fist","hit","attack","hand"],char:"👊",fitzpatrick_scale:true,category:"people"},fist:{keywords:["fingers","hand","grasp"],char:"✊",fitzpatrick_scale:true,category:"people"},fist_left:{keywords:["hand","fistbump"],char:"🤛",fitzpatrick_scale:true,category:"people"},fist_right:{keywords:["hand","fistbump"],char:"🤜",fitzpatrick_scale:true,category:"people"},v:{keywords:["fingers","ohyeah","hand","peace","victory","two"],char:"✌",fitzpatrick_scale:true,category:"people"},ok_hand:{keywords:["fingers","limbs","perfect","ok","okay"],char:"👌",fitzpatrick_scale:true,category:"people"},raised_hand:{keywords:["fingers","stop","highfive","palm","ban"],char:"✋",fitzpatrick_scale:true,category:"people"},raised_back_of_hand:{keywords:["fingers","raised","backhand"],char:"🤚",fitzpatrick_scale:true,category:"people"},open_hands:{keywords:["fingers","butterfly","hands","open"],char:"👐",fitzpatrick_scale:true,category:"people"},muscle:{keywords:["arm","flex","hand","summer","strong","biceps"],char:"💪",fitzpatrick_scale:true,category:"people"},pray:{keywords:["please","hope","wish","namaste","highfive"],char:"🙏",fitzpatrick_scale:true,category:"people"},foot:{keywords:["kick","stomp"],char:"🦶",fitzpatrick_scale:true,category:"people"},leg:{keywords:["kick","limb"],char:"🦵",fitzpatrick_scale:true,category:"people"},handshake:{keywords:["agreement","shake"],char:"🤝",fitzpatrick_scale:false,category:"people"},point_up:{keywords:["hand","fingers","direction","up"],char:"☝",fitzpatrick_scale:true,category:"people"},point_up_2:{keywords:["fingers","hand","direction","up"],char:"👆",fitzpatrick_scale:true,category:"people"},point_down:{keywords:["fingers","hand","direction","down"],char:"👇",fitzpatrick_scale:true,category:"people"},point_left:{keywords:["direction","fingers","hand","left"],char:"👈",fitzpatrick_scale:true,category:"people"},point_right:{keywords:["fingers","hand","direction","right"],char:"👉",fitzpatrick_scale:true,category:"people"},fu:{keywords:["hand","fingers","rude","middle","flipping"],char:"🖕",fitzpatrick_scale:true,category:"people"},raised_hand_with_fingers_splayed:{keywords:["hand","fingers","palm"],char:"🖐",fitzpatrick_scale:true,category:"people"},love_you:{keywords:["hand","fingers","gesture"],char:"🤟",fitzpatrick_scale:true,category:"people"},metal:{keywords:["hand","fingers","evil_eye","sign_of_horns","rock_on"],char:"🤘",fitzpatrick_scale:true,category:"people"},crossed_fingers:{keywords:["good","lucky"],char:"🤞",fitzpatrick_scale:true,category:"people"},vulcan_salute:{keywords:["hand","fingers","spock","star trek"],char:"🖖",fitzpatrick_scale:true,category:"people"},writing_hand:{keywords:["lower_left_ballpoint_pen","stationery","write","compose"],char:"✍",fitzpatrick_scale:true,category:"people"},selfie:{keywords:["camera","phone"],char:"🤳",fitzpatrick_scale:true,category:"people"},nail_care:{keywords:["beauty","manicure","finger","fashion","nail"],char:"💅",fitzpatrick_scale:true,category:"people"},lips:{keywords:["mouth","kiss"],char:"👄",fitzpatrick_scale:false,category:"people"},tooth:{keywords:["teeth","dentist"],char:"🦷",fitzpatrick_scale:false,category:"people"},tongue:{keywords:["mouth","playful"],char:"👅",fitzpatrick_scale:false,category:"people"},ear:{keywords:["face","hear","sound","listen"],char:"👂",fitzpatrick_scale:true,category:"people"},nose:{keywords:["smell","sniff"],char:"👃",fitzpatrick_scale:true,category:"people"},eye:{keywords:["face","look","see","watch","stare"],char:"👁",fitzpatrick_scale:false,category:"people"},eyes:{keywords:["look","watch","stalk","peek","see"],char:"👀",fitzpatrick_scale:false,category:"people"},brain:{keywords:["smart","intelligent"],char:"🧠",fitzpatrick_scale:false,category:"people"},bust_in_silhouette:{keywords:["user","person","human"],char:"👤",fitzpatrick_scale:false,category:"people"},busts_in_silhouette:{keywords:["user","person","human","group","team"],char:"👥",fitzpatrick_scale:false,category:"people"},speaking_head:{keywords:["user","person","human","sing","say","talk"],char:"🗣",fitzpatrick_scale:false,category:"people"},baby:{keywords:["child","boy","girl","toddler"],char:"👶",fitzpatrick_scale:true,category:"people"},child:{keywords:["gender-neutral","young"],char:"🧒",fitzpatrick_scale:true,category:"people"},boy:{keywords:["man","male","guy","teenager"],char:"👦",fitzpatrick_scale:true,category:"people"},girl:{keywords:["female","woman","teenager"],char:"👧",fitzpatrick_scale:true,category:"people"},adult:{keywords:["gender-neutral","person"],char:"🧑",fitzpatrick_scale:true,category:"people"},man:{keywords:["mustache","father","dad","guy","classy","sir","moustache"],char:"👨",fitzpatrick_scale:true,category:"people"},woman:{keywords:["female","girls","lady"],char:"👩",fitzpatrick_scale:true,category:"people"},blonde_woman:{keywords:["woman","female","girl","blonde","person"],char:"👱‍♀️",fitzpatrick_scale:true,category:"people"},blonde_man:{keywords:["man","male","boy","blonde","guy","person"],char:"👱",fitzpatrick_scale:true,category:"people"},bearded_person:{keywords:["person","bewhiskered"],char:"🧔",fitzpatrick_scale:true,category:"people"},older_adult:{keywords:["human","elder","senior","gender-neutral"],char:"🧓",fitzpatrick_scale:true,category:"people"},older_man:{keywords:["human","male","men","old","elder","senior"],char:"👴",fitzpatrick_scale:true,category:"people"},older_woman:{keywords:["human","female","women","lady","old","elder","senior"],char:"👵",fitzpatrick_scale:true,category:"people"},man_with_gua_pi_mao:{keywords:["male","boy","chinese"],char:"👲",fitzpatrick_scale:true,category:"people"},woman_with_headscarf:{keywords:["female","hijab","mantilla","tichel"],char:"🧕",fitzpatrick_scale:true,category:"people"},woman_with_turban:{keywords:["female","indian","hinduism","arabs","woman"],char:"👳‍♀️",fitzpatrick_scale:true,category:"people"},man_with_turban:{keywords:["male","indian","hinduism","arabs"],char:"👳",fitzpatrick_scale:true,category:"people"},policewoman:{keywords:["woman","police","law","legal","enforcement","arrest","911","female"],char:"👮‍♀️",fitzpatrick_scale:true,category:"people"},policeman:{keywords:["man","police","law","legal","enforcement","arrest","911"],char:"👮",fitzpatrick_scale:true,category:"people"},construction_worker_woman:{keywords:["female","human","wip","build","construction","worker","labor","woman"],char:"👷‍♀️",fitzpatrick_scale:true,category:"people"},construction_worker_man:{keywords:["male","human","wip","guy","build","construction","worker","labor"],char:"👷",fitzpatrick_scale:true,category:"people"},guardswoman:{keywords:["uk","gb","british","female","royal","woman"],char:"💂‍♀️",fitzpatrick_scale:true,category:"people"},guardsman:{keywords:["uk","gb","british","male","guy","royal"],char:"💂",fitzpatrick_scale:true,category:"people"},female_detective:{keywords:["human","spy","detective","female","woman"],char:"🕵️‍♀️",fitzpatrick_scale:true,category:"people"},male_detective:{keywords:["human","spy","detective"],char:"🕵",fitzpatrick_scale:true,category:"people"},woman_health_worker:{keywords:["doctor","nurse","therapist","healthcare","woman","human"],char:"👩‍⚕️",fitzpatrick_scale:true,category:"people"},man_health_worker:{keywords:["doctor","nurse","therapist","healthcare","man","human"],char:"👨‍⚕️",fitzpatrick_scale:true,category:"people"},woman_farmer:{keywords:["rancher","gardener","woman","human"],char:"👩‍🌾",fitzpatrick_scale:true,category:"people"},man_farmer:{keywords:["rancher","gardener","man","human"],char:"👨‍🌾",fitzpatrick_scale:true,category:"people"},woman_cook:{keywords:["chef","woman","human"],char:"👩‍🍳",fitzpatrick_scale:true,category:"people"},man_cook:{keywords:["chef","man","human"],char:"👨‍🍳",fitzpatrick_scale:true,category:"people"},woman_student:{keywords:["graduate","woman","human"],char:"👩‍🎓",fitzpatrick_scale:true,category:"people"},man_student:{keywords:["graduate","man","human"],char:"👨‍🎓",fitzpatrick_scale:true,category:"people"},woman_singer:{keywords:["rockstar","entertainer","woman","human"],char:"👩‍🎤",fitzpatrick_scale:true,category:"people"},man_singer:{keywords:["rockstar","entertainer","man","human"],char:"👨‍🎤",fitzpatrick_scale:true,category:"people"},woman_teacher:{keywords:["instructor","professor","woman","human"],char:"👩‍🏫",fitzpatrick_scale:true,category:"people"},man_teacher:{keywords:["instructor","professor","man","human"],char:"👨‍🏫",fitzpatrick_scale:true,category:"people"},woman_factory_worker:{keywords:["assembly","industrial","woman","human"],char:"👩‍🏭",fitzpatrick_scale:true,category:"people"},man_factory_worker:{keywords:["assembly","industrial","man","human"],char:"👨‍🏭",fitzpatrick_scale:true,category:"people"},woman_technologist:{keywords:["coder","developer","engineer","programmer","software","woman","human","laptop","computer"],char:"👩‍💻",fitzpatrick_scale:true,category:"people"},man_technologist:{keywords:["coder","developer","engineer","programmer","software","man","human","laptop","computer"],char:"👨‍💻",fitzpatrick_scale:true,category:"people"},woman_office_worker:{keywords:["business","manager","woman","human"],char:"👩‍💼",fitzpatrick_scale:true,category:"people"},man_office_worker:{keywords:["business","manager","man","human"],char:"👨‍💼",fitzpatrick_scale:true,category:"people"},woman_mechanic:{keywords:["plumber","woman","human","wrench"],char:"👩‍🔧",fitzpatrick_scale:true,category:"people"},man_mechanic:{keywords:["plumber","man","human","wrench"],char:"👨‍🔧",fitzpatrick_scale:true,category:"people"},woman_scientist:{keywords:["biologist","chemist","engineer","physicist","woman","human"],char:"👩‍🔬",fitzpatrick_scale:true,category:"people"},man_scientist:{keywords:["biologist","chemist","engineer","physicist","man","human"],char:"👨‍🔬",fitzpatrick_scale:true,category:"people"},woman_artist:{keywords:["painter","woman","human"],char:"👩‍🎨",fitzpatrick_scale:true,category:"people"},man_artist:{keywords:["painter","man","human"],char:"👨‍🎨",fitzpatrick_scale:true,category:"people"},woman_firefighter:{keywords:["fireman","woman","human"],char:"👩‍🚒",fitzpatrick_scale:true,category:"people"},man_firefighter:{keywords:["fireman","man","human"],char:"👨‍🚒",fitzpatrick_scale:true,category:"people"},woman_pilot:{keywords:["aviator","plane","woman","human"],char:"👩‍✈️",fitzpatrick_scale:true,category:"people"},man_pilot:{keywords:["aviator","plane","man","human"],char:"👨‍✈️",fitzpatrick_scale:true,category:"people"},woman_astronaut:{keywords:["space","rocket","woman","human"],char:"👩‍🚀",fitzpatrick_scale:true,category:"people"},man_astronaut:{keywords:["space","rocket","man","human"],char:"👨‍🚀",fitzpatrick_scale:true,category:"people"},woman_judge:{keywords:["justice","court","woman","human"],char:"👩‍⚖️",fitzpatrick_scale:true,category:"people"},man_judge:{keywords:["justice","court","man","human"],char:"👨‍⚖️",fitzpatrick_scale:true,category:"people"},woman_superhero:{keywords:["woman","female","good","heroine","superpowers"],char:"🦸‍♀️",fitzpatrick_scale:true,category:"people"},man_superhero:{keywords:["man","male","good","hero","superpowers"],char:"🦸‍♂️",fitzpatrick_scale:true,category:"people"},woman_supervillain:{keywords:["woman","female","evil","bad","criminal","heroine","superpowers"],char:"🦹‍♀️",fitzpatrick_scale:true,category:"people"},man_supervillain:{keywords:["man","male","evil","bad","criminal","hero","superpowers"],char:"🦹‍♂️",fitzpatrick_scale:true,category:"people"},mrs_claus:{keywords:["woman","female","xmas","mother christmas"],char:"🤶",fitzpatrick_scale:true,category:"people"},santa:{keywords:["festival","man","male","xmas","father christmas"],char:"🎅",fitzpatrick_scale:true,category:"people"},sorceress:{keywords:["woman","female","mage","witch"],char:"🧙‍♀️",fitzpatrick_scale:true,category:"people"},wizard:{keywords:["man","male","mage","sorcerer"],char:"🧙‍♂️",fitzpatrick_scale:true,category:"people"},woman_elf:{keywords:["woman","female"],char:"🧝‍♀️",fitzpatrick_scale:true,category:"people"},man_elf:{keywords:["man","male"],char:"🧝‍♂️",fitzpatrick_scale:true,category:"people"},woman_vampire:{keywords:["woman","female"],char:"🧛‍♀️",fitzpatrick_scale:true,category:"people"},man_vampire:{keywords:["man","male","dracula"],char:"🧛‍♂️",fitzpatrick_scale:true,category:"people"},woman_zombie:{keywords:["woman","female","undead","walking dead"],char:"🧟‍♀️",fitzpatrick_scale:false,category:"people"},man_zombie:{keywords:["man","male","dracula","undead","walking dead"],char:"🧟‍♂️",fitzpatrick_scale:false,category:"people"},woman_genie:{keywords:["woman","female"],char:"🧞‍♀️",fitzpatrick_scale:false,category:"people"},man_genie:{keywords:["man","male"],char:"🧞‍♂️",fitzpatrick_scale:false,category:"people"},mermaid:{keywords:["woman","female","merwoman","ariel"],char:"🧜‍♀️",fitzpatrick_scale:true,category:"people"},merman:{keywords:["man","male","triton"],char:"🧜‍♂️",fitzpatrick_scale:true,category:"people"},woman_fairy:{keywords:["woman","female"],char:"🧚‍♀️",fitzpatrick_scale:true,category:"people"},man_fairy:{keywords:["man","male"],char:"🧚‍♂️",fitzpatrick_scale:true,category:"people"},angel:{keywords:["heaven","wings","halo"],char:"👼",fitzpatrick_scale:true,category:"people"},pregnant_woman:{keywords:["baby"],char:"🤰",fitzpatrick_scale:true,category:"people"},breastfeeding:{keywords:["nursing","baby"],char:"🤱",fitzpatrick_scale:true,category:"people"},princess:{keywords:["girl","woman","female","blond","crown","royal","queen"],char:"👸",fitzpatrick_scale:true,category:"people"},prince:{keywords:["boy","man","male","crown","royal","king"],char:"🤴",fitzpatrick_scale:true,category:"people"},bride_with_veil:{keywords:["couple","marriage","wedding","woman","bride"],char:"👰",fitzpatrick_scale:true,category:"people"},man_in_tuxedo:{keywords:["couple","marriage","wedding","groom"],char:"🤵",fitzpatrick_scale:true,category:"people"},running_woman:{keywords:["woman","walking","exercise","race","running","female"],char:"🏃‍♀️",fitzpatrick_scale:true,category:"people"},running_man:{keywords:["man","walking","exercise","race","running"],char:"🏃",fitzpatrick_scale:true,category:"people"},walking_woman:{keywords:["human","feet","steps","woman","female"],char:"🚶‍♀️",fitzpatrick_scale:true,category:"people"},walking_man:{keywords:["human","feet","steps"],char:"🚶",fitzpatrick_scale:true,category:"people"},dancer:{keywords:["female","girl","woman","fun"],char:"💃",fitzpatrick_scale:true,category:"people"},man_dancing:{keywords:["male","boy","fun","dancer"],char:"🕺",fitzpatrick_scale:true,category:"people"},dancing_women:{keywords:["female","bunny","women","girls"],char:"👯",fitzpatrick_scale:false,category:"people"},dancing_men:{keywords:["male","bunny","men","boys"],char:"👯‍♂️",fitzpatrick_scale:false,category:"people"},couple:{keywords:["pair","people","human","love","date","dating","like","affection","valentines","marriage"],char:"👫",fitzpatrick_scale:false,category:"people"},two_men_holding_hands:{keywords:["pair","couple","love","like","bromance","friendship","people","human"],char:"👬",fitzpatrick_scale:false,category:"people"},two_women_holding_hands:{keywords:["pair","friendship","couple","love","like","female","people","human"],char:"👭",fitzpatrick_scale:false,category:"people"},bowing_woman:{keywords:["woman","female","girl"],char:"🙇‍♀️",fitzpatrick_scale:true,category:"people"},bowing_man:{keywords:["man","male","boy"],char:"🙇",fitzpatrick_scale:true,category:"people"},man_facepalming:{keywords:["man","male","boy","disbelief"],char:"🤦‍♂️",fitzpatrick_scale:true,category:"people"},woman_facepalming:{keywords:["woman","female","girl","disbelief"],char:"🤦‍♀️",fitzpatrick_scale:true,category:"people"},woman_shrugging:{keywords:["woman","female","girl","confused","indifferent","doubt"],char:"🤷",fitzpatrick_scale:true,category:"people"},man_shrugging:{keywords:["man","male","boy","confused","indifferent","doubt"],char:"🤷‍♂️",fitzpatrick_scale:true,category:"people"},tipping_hand_woman:{keywords:["female","girl","woman","human","information"],char:"💁",fitzpatrick_scale:true,category:"people"},tipping_hand_man:{keywords:["male","boy","man","human","information"],char:"💁‍♂️",fitzpatrick_scale:true,category:"people"},no_good_woman:{keywords:["female","girl","woman","nope"],char:"🙅",fitzpatrick_scale:true,category:"people"},no_good_man:{keywords:["male","boy","man","nope"],char:"🙅‍♂️",fitzpatrick_scale:true,category:"people"},ok_woman:{keywords:["women","girl","female","pink","human","woman"],char:"🙆",fitzpatrick_scale:true,category:"people"},ok_man:{keywords:["men","boy","male","blue","human","man"],char:"🙆‍♂️",fitzpatrick_scale:true,category:"people"},raising_hand_woman:{keywords:["female","girl","woman"],char:"🙋",fitzpatrick_scale:true,category:"people"},raising_hand_man:{keywords:["male","boy","man"],char:"🙋‍♂️",fitzpatrick_scale:true,category:"people"},pouting_woman:{keywords:["female","girl","woman"],char:"🙎",fitzpatrick_scale:true,category:"people"},pouting_man:{keywords:["male","boy","man"],char:"🙎‍♂️",fitzpatrick_scale:true,category:"people"},frowning_woman:{keywords:["female","girl","woman","sad","depressed","discouraged","unhappy"],char:"🙍",fitzpatrick_scale:true,category:"people"},frowning_man:{keywords:["male","boy","man","sad","depressed","discouraged","unhappy"],char:"🙍‍♂️",fitzpatrick_scale:true,category:"people"},haircut_woman:{keywords:["female","girl","woman"],char:"💇",fitzpatrick_scale:true,category:"people"},haircut_man:{keywords:["male","boy","man"],char:"💇‍♂️",fitzpatrick_scale:true,category:"people"},massage_woman:{keywords:["female","girl","woman","head"],char:"💆",fitzpatrick_scale:true,category:"people"},massage_man:{keywords:["male","boy","man","head"],char:"💆‍♂️",fitzpatrick_scale:true,category:"people"},woman_in_steamy_room:{keywords:["female","woman","spa","steamroom","sauna"],char:"🧖‍♀️",fitzpatrick_scale:true,category:"people"},man_in_steamy_room:{keywords:["male","man","spa","steamroom","sauna"],char:"🧖‍♂️",fitzpatrick_scale:true,category:"people"},couple_with_heart_woman_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"💑",fitzpatrick_scale:false,category:"people"},couple_with_heart_woman_woman:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"👩‍❤️‍👩",fitzpatrick_scale:false,category:"people"},couple_with_heart_man_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"👨‍❤️‍👨",fitzpatrick_scale:false,category:"people"},couplekiss_man_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:"💏",fitzpatrick_scale:false,category:"people"},couplekiss_woman_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:"👩‍❤️‍💋‍👩",fitzpatrick_scale:false,category:"people"},couplekiss_man_man:{keywords:["pair","valentines","love","like","dating","marriage"],char:"👨‍❤️‍💋‍👨",fitzpatrick_scale:false,category:"people"},family_man_woman_boy:{keywords:["home","parents","child","mom","dad","father","mother","people","human"],char:"👪",fitzpatrick_scale:false,category:"people"},family_man_woman_girl:{keywords:["home","parents","people","human","child"],char:"👨‍👩‍👧",fitzpatrick_scale:false,category:"people"},family_man_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:"👨‍👩‍👧‍👦",fitzpatrick_scale:false,category:"people"},family_man_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:"👨‍👩‍👦‍👦",fitzpatrick_scale:false,category:"people"},family_man_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:"👨‍👩‍👧‍👧",fitzpatrick_scale:false,category:"people"},family_woman_woman_boy:{keywords:["home","parents","people","human","children"],char:"👩‍👩‍👦",fitzpatrick_scale:false,category:"people"},family_woman_woman_girl:{keywords:["home","parents","people","human","children"],char:"👩‍👩‍👧",fitzpatrick_scale:false,category:"people"},family_woman_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:"👩‍👩‍👧‍👦",fitzpatrick_scale:false,category:"people"},family_woman_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:"👩‍👩‍👦‍👦",fitzpatrick_scale:false,category:"people"},family_woman_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:"👩‍👩‍👧‍👧",fitzpatrick_scale:false,category:"people"},family_man_man_boy:{keywords:["home","parents","people","human","children"],char:"👨‍👨‍👦",fitzpatrick_scale:false,category:"people"},family_man_man_girl:{keywords:["home","parents","people","human","children"],char:"👨‍👨‍👧",fitzpatrick_scale:false,category:"people"},family_man_man_girl_boy:{keywords:["home","parents","people","human","children"],char:"👨‍👨‍👧‍👦",fitzpatrick_scale:false,category:"people"},family_man_man_boy_boy:{keywords:["home","parents","people","human","children"],char:"👨‍👨‍👦‍👦",fitzpatrick_scale:false,category:"people"},family_man_man_girl_girl:{keywords:["home","parents","people","human","children"],char:"👨‍👨‍👧‍👧",fitzpatrick_scale:false,category:"people"},family_woman_boy:{keywords:["home","parent","people","human","child"],char:"👩‍👦",fitzpatrick_scale:false,category:"people"},family_woman_girl:{keywords:["home","parent","people","human","child"],char:"👩‍👧",fitzpatrick_scale:false,category:"people"},family_woman_girl_boy:{keywords:["home","parent","people","human","children"],char:"👩‍👧‍👦",fitzpatrick_scale:false,category:"people"},family_woman_boy_boy:{keywords:["home","parent","people","human","children"],char:"👩‍👦‍👦",fitzpatrick_scale:false,category:"people"},family_woman_girl_girl:{keywords:["home","parent","people","human","children"],char:"👩‍👧‍👧",fitzpatrick_scale:false,category:"people"},family_man_boy:{keywords:["home","parent","people","human","child"],char:"👨‍👦",fitzpatrick_scale:false,category:"people"},family_man_girl:{keywords:["home","parent","people","human","child"],char:"👨‍👧",fitzpatrick_scale:false,category:"people"},family_man_girl_boy:{keywords:["home","parent","people","human","children"],char:"👨‍👧‍👦",fitzpatrick_scale:false,category:"people"},family_man_boy_boy:{keywords:["home","parent","people","human","children"],char:"👨‍👦‍👦",fitzpatrick_scale:false,category:"people"},family_man_girl_girl:{keywords:["home","parent","people","human","children"],char:"👨‍👧‍👧",fitzpatrick_scale:false,category:"people"},yarn:{keywords:["ball","crochet","knit"],char:"🧶",fitzpatrick_scale:false,category:"people"},thread:{keywords:["needle","sewing","spool","string"],char:"🧵",fitzpatrick_scale:false,category:"people"},coat:{keywords:["jacket"],char:"🧥",fitzpatrick_scale:false,category:"people"},labcoat:{keywords:["doctor","experiment","scientist","chemist"],char:"🥼",fitzpatrick_scale:false,category:"people"},womans_clothes:{keywords:["fashion","shopping_bags","female"],char:"👚",fitzpatrick_scale:false,category:"people"},tshirt:{keywords:["fashion","cloth","casual","shirt","tee"],char:"👕",fitzpatrick_scale:false,category:"people"},jeans:{keywords:["fashion","shopping"],char:"👖",fitzpatrick_scale:false,category:"people"},necktie:{keywords:["shirt","suitup","formal","fashion","cloth","business"],char:"👔",fitzpatrick_scale:false,category:"people"},dress:{keywords:["clothes","fashion","shopping"],char:"👗",fitzpatrick_scale:false,category:"people"},bikini:{keywords:["swimming","female","woman","girl","fashion","beach","summer"],char:"👙",fitzpatrick_scale:false,category:"people"},kimono:{keywords:["dress","fashion","women","female","japanese"],char:"👘",fitzpatrick_scale:false,category:"people"},lipstick:{keywords:["female","girl","fashion","woman"],char:"💄",fitzpatrick_scale:false,category:"people"},kiss:{keywords:["face","lips","love","like","affection","valentines"],char:"💋",fitzpatrick_scale:false,category:"people"},footprints:{keywords:["feet","tracking","walking","beach"],char:"👣",fitzpatrick_scale:false,category:"people"},flat_shoe:{keywords:["ballet","slip-on","slipper"],char:"🥿",fitzpatrick_scale:false,category:"people"},high_heel:{keywords:["fashion","shoes","female","pumps","stiletto"],char:"👠",fitzpatrick_scale:false,category:"people"},sandal:{keywords:["shoes","fashion","flip flops"],char:"👡",fitzpatrick_scale:false,category:"people"},boot:{keywords:["shoes","fashion"],char:"👢",fitzpatrick_scale:false,category:"people"},mans_shoe:{keywords:["fashion","male"],char:"👞",fitzpatrick_scale:false,category:"people"},athletic_shoe:{keywords:["shoes","sports","sneakers"],char:"👟",fitzpatrick_scale:false,category:"people"},hiking_boot:{keywords:["backpacking","camping","hiking"],char:"🥾",fitzpatrick_scale:false,category:"people"},socks:{keywords:["stockings","clothes"],char:"🧦",fitzpatrick_scale:false,category:"people"},gloves:{keywords:["hands","winter","clothes"],char:"🧤",fitzpatrick_scale:false,category:"people"},scarf:{keywords:["neck","winter","clothes"],char:"🧣",fitzpatrick_scale:false,category:"people"},womans_hat:{keywords:["fashion","accessories","female","lady","spring"],char:"👒",fitzpatrick_scale:false,category:"people"},tophat:{keywords:["magic","gentleman","classy","circus"],char:"🎩",fitzpatrick_scale:false,category:"people"},billed_hat:{keywords:["cap","baseball"],char:"🧢",fitzpatrick_scale:false,category:"people"},rescue_worker_helmet:{keywords:["construction","build"],char:"⛑",fitzpatrick_scale:false,category:"people"},mortar_board:{keywords:["school","college","degree","university","graduation","cap","hat","legal","learn","education"],char:"🎓",fitzpatrick_scale:false,category:"people"},crown:{keywords:["king","kod","leader","royalty","lord"],char:"👑",fitzpatrick_scale:false,category:"people"},school_satchel:{keywords:["student","education","bag","backpack"],char:"🎒",fitzpatrick_scale:false,category:"people"},luggage:{keywords:["packing","travel"],char:"🧳",fitzpatrick_scale:false,category:"people"},pouch:{keywords:["bag","accessories","shopping"],char:"👝",fitzpatrick_scale:false,category:"people"},purse:{keywords:["fashion","accessories","money","sales","shopping"],char:"👛",fitzpatrick_scale:false,category:"people"},handbag:{keywords:["fashion","accessory","accessories","shopping"],char:"👜",fitzpatrick_scale:false,category:"people"},briefcase:{keywords:["business","documents","work","law","legal","job","career"],char:"💼",fitzpatrick_scale:false,category:"people"},eyeglasses:{keywords:["fashion","accessories","eyesight","nerdy","dork","geek"],char:"👓",fitzpatrick_scale:false,category:"people"},dark_sunglasses:{keywords:["face","cool","accessories"],char:"🕶",fitzpatrick_scale:false,category:"people"},goggles:{keywords:["eyes","protection","safety"],char:"🥽",fitzpatrick_scale:false,category:"people"},ring:{keywords:["wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],char:"💍",fitzpatrick_scale:false,category:"people"},closed_umbrella:{keywords:["weather","rain","drizzle"],char:"🌂",fitzpatrick_scale:false,category:"people"},dog:{keywords:["animal","friend","nature","woof","puppy","pet","faithful"],char:"🐶",fitzpatrick_scale:false,category:"animals_and_nature"},cat:{keywords:["animal","meow","nature","pet","kitten"],char:"🐱",fitzpatrick_scale:false,category:"animals_and_nature"},mouse:{keywords:["animal","nature","cheese_wedge","rodent"],char:"🐭",fitzpatrick_scale:false,category:"animals_and_nature"},hamster:{keywords:["animal","nature"],char:"🐹",fitzpatrick_scale:false,category:"animals_and_nature"},rabbit:{keywords:["animal","nature","pet","spring","magic","bunny"],char:"🐰",fitzpatrick_scale:false,category:"animals_and_nature"},fox_face:{keywords:["animal","nature","face"],char:"🦊",fitzpatrick_scale:false,category:"animals_and_nature"},bear:{keywords:["animal","nature","wild"],char:"🐻",fitzpatrick_scale:false,category:"animals_and_nature"},panda_face:{keywords:["animal","nature","panda"],char:"🐼",fitzpatrick_scale:false,category:"animals_and_nature"},koala:{keywords:["animal","nature"],char:"🐨",fitzpatrick_scale:false,category:"animals_and_nature"},tiger:{keywords:["animal","cat","danger","wild","nature","roar"],char:"🐯",fitzpatrick_scale:false,category:"animals_and_nature"},lion:{keywords:["animal","nature"],char:"🦁",fitzpatrick_scale:false,category:"animals_and_nature"},cow:{keywords:["beef","ox","animal","nature","moo","milk"],char:"🐮",fitzpatrick_scale:false,category:"animals_and_nature"},pig:{keywords:["animal","oink","nature"],char:"🐷",fitzpatrick_scale:false,category:"animals_and_nature"},pig_nose:{keywords:["animal","oink"],char:"🐽",fitzpatrick_scale:false,category:"animals_and_nature"},frog:{keywords:["animal","nature","croak","toad"],char:"🐸",fitzpatrick_scale:false,category:"animals_and_nature"},squid:{keywords:["animal","nature","ocean","sea"],char:"🦑",fitzpatrick_scale:false,category:"animals_and_nature"},octopus:{keywords:["animal","creature","ocean","sea","nature","beach"],char:"🐙",fitzpatrick_scale:false,category:"animals_and_nature"},shrimp:{keywords:["animal","ocean","nature","seafood"],char:"🦐",fitzpatrick_scale:false,category:"animals_and_nature"},monkey_face:{keywords:["animal","nature","circus"],char:"🐵",fitzpatrick_scale:false,category:"animals_and_nature"},gorilla:{keywords:["animal","nature","circus"],char:"🦍",fitzpatrick_scale:false,category:"animals_and_nature"},see_no_evil:{keywords:["monkey","animal","nature","haha"],char:"🙈",fitzpatrick_scale:false,category:"animals_and_nature"},hear_no_evil:{keywords:["animal","monkey","nature"],char:"🙉",fitzpatrick_scale:false,category:"animals_and_nature"},speak_no_evil:{keywords:["monkey","animal","nature","omg"],char:"🙊",fitzpatrick_scale:false,category:"animals_and_nature"},monkey:{keywords:["animal","nature","banana","circus"],char:"🐒",fitzpatrick_scale:false,category:"animals_and_nature"},chicken:{keywords:["animal","cluck","nature","bird"],char:"🐔",fitzpatrick_scale:false,category:"animals_and_nature"},penguin:{keywords:["animal","nature"],char:"🐧",fitzpatrick_scale:false,category:"animals_and_nature"},bird:{keywords:["animal","nature","fly","tweet","spring"],char:"🐦",fitzpatrick_scale:false,category:"animals_and_nature"},baby_chick:{keywords:["animal","chicken","bird"],char:"🐤",fitzpatrick_scale:false,category:"animals_and_nature"},hatching_chick:{keywords:["animal","chicken","egg","born","baby","bird"],char:"🐣",fitzpatrick_scale:false,category:"animals_and_nature"},hatched_chick:{keywords:["animal","chicken","baby","bird"],char:"🐥",fitzpatrick_scale:false,category:"animals_and_nature"},duck:{keywords:["animal","nature","bird","mallard"],char:"🦆",fitzpatrick_scale:false,category:"animals_and_nature"},eagle:{keywords:["animal","nature","bird"],char:"🦅",fitzpatrick_scale:false,category:"animals_and_nature"},owl:{keywords:["animal","nature","bird","hoot"],char:"🦉",fitzpatrick_scale:false,category:"animals_and_nature"},bat:{keywords:["animal","nature","blind","vampire"],char:"🦇",fitzpatrick_scale:false,category:"animals_and_nature"},wolf:{keywords:["animal","nature","wild"],char:"🐺",fitzpatrick_scale:false,category:"animals_and_nature"},boar:{keywords:["animal","nature"],char:"🐗",fitzpatrick_scale:false,category:"animals_and_nature"},horse:{keywords:["animal","brown","nature"],char:"🐴",fitzpatrick_scale:false,category:"animals_and_nature"},unicorn:{keywords:["animal","nature","mystical"],char:"🦄",fitzpatrick_scale:false,category:"animals_and_nature"},honeybee:{keywords:["animal","insect","nature","bug","spring","honey"],char:"🐝",fitzpatrick_scale:false,category:"animals_and_nature"},bug:{keywords:["animal","insect","nature","worm"],char:"🐛",fitzpatrick_scale:false,category:"animals_and_nature"},butterfly:{keywords:["animal","insect","nature","caterpillar"],char:"🦋",fitzpatrick_scale:false,category:"animals_and_nature"},snail:{keywords:["slow","animal","shell"],char:"🐌",fitzpatrick_scale:false,category:"animals_and_nature"},beetle:{keywords:["animal","insect","nature","ladybug"],char:"🐞",fitzpatrick_scale:false,category:"animals_and_nature"},ant:{keywords:["animal","insect","nature","bug"],char:"🐜",fitzpatrick_scale:false,category:"animals_and_nature"},grasshopper:{keywords:["animal","cricket","chirp"],char:"🦗",fitzpatrick_scale:false,category:"animals_and_nature"},spider:{keywords:["animal","arachnid"],char:"🕷",fitzpatrick_scale:false,category:"animals_and_nature"},scorpion:{keywords:["animal","arachnid"],char:"🦂",fitzpatrick_scale:false,category:"animals_and_nature"},crab:{keywords:["animal","crustacean"],char:"🦀",fitzpatrick_scale:false,category:"animals_and_nature"},snake:{keywords:["animal","evil","nature","hiss","python"],char:"🐍",fitzpatrick_scale:false,category:"animals_and_nature"},lizard:{keywords:["animal","nature","reptile"],char:"🦎",fitzpatrick_scale:false,category:"animals_and_nature"},"t-rex":{keywords:["animal","nature","dinosaur","tyrannosaurus","extinct"],char:"🦖",fitzpatrick_scale:false,category:"animals_and_nature"},sauropod:{keywords:["animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],char:"🦕",fitzpatrick_scale:false,category:"animals_and_nature"},turtle:{keywords:["animal","slow","nature","tortoise"],char:"🐢",fitzpatrick_scale:false,category:"animals_and_nature"},tropical_fish:{keywords:["animal","swim","ocean","beach","nemo"],char:"🐠",fitzpatrick_scale:false,category:"animals_and_nature"},fish:{keywords:["animal","food","nature"],char:"🐟",fitzpatrick_scale:false,category:"animals_and_nature"},blowfish:{keywords:["animal","nature","food","sea","ocean"],char:"🐡",fitzpatrick_scale:false,category:"animals_and_nature"},dolphin:{keywords:["animal","nature","fish","sea","ocean","flipper","fins","beach"],char:"🐬",fitzpatrick_scale:false,category:"animals_and_nature"},shark:{keywords:["animal","nature","fish","sea","ocean","jaws","fins","beach"],char:"🦈",fitzpatrick_scale:false,category:"animals_and_nature"},whale:{keywords:["animal","nature","sea","ocean"],char:"🐳",fitzpatrick_scale:false,category:"animals_and_nature"},whale2:{keywords:["animal","nature","sea","ocean"],char:"🐋",fitzpatrick_scale:false,category:"animals_and_nature"},crocodile:{keywords:["animal","nature","reptile","lizard","alligator"],char:"🐊",fitzpatrick_scale:false,category:"animals_and_nature"},leopard:{keywords:["animal","nature"],char:"🐆",fitzpatrick_scale:false,category:"animals_and_nature"},zebra:{keywords:["animal","nature","stripes","safari"],char:"🦓",fitzpatrick_scale:false,category:"animals_and_nature"},tiger2:{keywords:["animal","nature","roar"],char:"🐅",fitzpatrick_scale:false,category:"animals_and_nature"},water_buffalo:{keywords:["animal","nature","ox","cow"],char:"🐃",fitzpatrick_scale:false,category:"animals_and_nature"},ox:{keywords:["animal","cow","beef"],char:"🐂",fitzpatrick_scale:false,category:"animals_and_nature"},cow2:{keywords:["beef","ox","animal","nature","moo","milk"],char:"🐄",fitzpatrick_scale:false,category:"animals_and_nature"},deer:{keywords:["animal","nature","horns","venison"],char:"🦌",fitzpatrick_scale:false,category:"animals_and_nature"},dromedary_camel:{keywords:["animal","hot","desert","hump"],char:"🐪",fitzpatrick_scale:false,category:"animals_and_nature"},camel:{keywords:["animal","nature","hot","desert","hump"],char:"🐫",fitzpatrick_scale:false,category:"animals_and_nature"},giraffe:{keywords:["animal","nature","spots","safari"],char:"🦒",fitzpatrick_scale:false,category:"animals_and_nature"},elephant:{keywords:["animal","nature","nose","th","circus"],char:"🐘",fitzpatrick_scale:false,category:"animals_and_nature"},rhinoceros:{keywords:["animal","nature","horn"],char:"🦏",fitzpatrick_scale:false,category:"animals_and_nature"},goat:{keywords:["animal","nature"],char:"🐐",fitzpatrick_scale:false,category:"animals_and_nature"},ram:{keywords:["animal","sheep","nature"],char:"🐏",fitzpatrick_scale:false,category:"animals_and_nature"},sheep:{keywords:["animal","nature","wool","shipit"],char:"🐑",fitzpatrick_scale:false,category:"animals_and_nature"},racehorse:{keywords:["animal","gamble","luck"],char:"🐎",fitzpatrick_scale:false,category:"animals_and_nature"},pig2:{keywords:["animal","nature"],char:"🐖",fitzpatrick_scale:false,category:"animals_and_nature"},rat:{keywords:["animal","mouse","rodent"],char:"🐀",fitzpatrick_scale:false,category:"animals_and_nature"},mouse2:{keywords:["animal","nature","rodent"],char:"🐁",fitzpatrick_scale:false,category:"animals_and_nature"},rooster:{keywords:["animal","nature","chicken"],char:"🐓",fitzpatrick_scale:false,category:"animals_and_nature"},turkey:{keywords:["animal","bird"],char:"🦃",fitzpatrick_scale:false,category:"animals_and_nature"},dove:{keywords:["animal","bird"],char:"🕊",fitzpatrick_scale:false,category:"animals_and_nature"},dog2:{keywords:["animal","nature","friend","doge","pet","faithful"],char:"🐕",fitzpatrick_scale:false,category:"animals_and_nature"},poodle:{keywords:["dog","animal","101","nature","pet"],char:"🐩",fitzpatrick_scale:false,category:"animals_and_nature"},cat2:{keywords:["animal","meow","pet","cats"],char:"🐈",fitzpatrick_scale:false,category:"animals_and_nature"},rabbit2:{keywords:["animal","nature","pet","magic","spring"],char:"🐇",fitzpatrick_scale:false,category:"animals_and_nature"},chipmunk:{keywords:["animal","nature","rodent","squirrel"],char:"🐿",fitzpatrick_scale:false,category:"animals_and_nature"},hedgehog:{keywords:["animal","nature","spiny"],char:"🦔",fitzpatrick_scale:false,category:"animals_and_nature"},raccoon:{keywords:["animal","nature"],char:"🦝",fitzpatrick_scale:false,category:"animals_and_nature"},llama:{keywords:["animal","nature","alpaca"],char:"🦙",fitzpatrick_scale:false,category:"animals_and_nature"},hippopotamus:{keywords:["animal","nature"],char:"🦛",fitzpatrick_scale:false,category:"animals_and_nature"},kangaroo:{keywords:["animal","nature","australia","joey","hop","marsupial"],char:"🦘",fitzpatrick_scale:false,category:"animals_and_nature"},badger:{keywords:["animal","nature","honey"],char:"🦡",fitzpatrick_scale:false,category:"animals_and_nature"},swan:{keywords:["animal","nature","bird"],char:"🦢",fitzpatrick_scale:false,category:"animals_and_nature"},peacock:{keywords:["animal","nature","peahen","bird"],char:"🦚",fitzpatrick_scale:false,category:"animals_and_nature"},parrot:{keywords:["animal","nature","bird","pirate","talk"],char:"🦜",fitzpatrick_scale:false,category:"animals_and_nature"},lobster:{keywords:["animal","nature","bisque","claws","seafood"],char:"🦞",fitzpatrick_scale:false,category:"animals_and_nature"},mosquito:{keywords:["animal","nature","insect","malaria"],char:"🦟",fitzpatrick_scale:false,category:"animals_and_nature"},paw_prints:{keywords:["animal","tracking","footprints","dog","cat","pet","feet"],char:"🐾",fitzpatrick_scale:false,category:"animals_and_nature"},dragon:{keywords:["animal","myth","nature","chinese","green"],char:"🐉",fitzpatrick_scale:false,category:"animals_and_nature"},dragon_face:{keywords:["animal","myth","nature","chinese","green"],char:"🐲",fitzpatrick_scale:false,category:"animals_and_nature"},cactus:{keywords:["vegetable","plant","nature"],char:"🌵",fitzpatrick_scale:false,category:"animals_and_nature"},christmas_tree:{keywords:["festival","vacation","december","xmas","celebration"],char:"🎄",fitzpatrick_scale:false,category:"animals_and_nature"},evergreen_tree:{keywords:["plant","nature"],char:"🌲",fitzpatrick_scale:false,category:"animals_and_nature"},deciduous_tree:{keywords:["plant","nature"],char:"🌳",fitzpatrick_scale:false,category:"animals_and_nature"},palm_tree:{keywords:["plant","vegetable","nature","summer","beach","mojito","tropical"],char:"🌴",fitzpatrick_scale:false,category:"animals_and_nature"},seedling:{keywords:["plant","nature","grass","lawn","spring"],char:"🌱",fitzpatrick_scale:false,category:"animals_and_nature"},herb:{keywords:["vegetable","plant","medicine","weed","grass","lawn"],char:"🌿",fitzpatrick_scale:false,category:"animals_and_nature"},shamrock:{keywords:["vegetable","plant","nature","irish","clover"],char:"☘",fitzpatrick_scale:false,category:"animals_and_nature"},four_leaf_clover:{keywords:["vegetable","plant","nature","lucky","irish"],char:"🍀",fitzpatrick_scale:false,category:"animals_and_nature"},bamboo:{keywords:["plant","nature","vegetable","panda","pine_decoration"],char:"🎍",fitzpatrick_scale:false,category:"animals_and_nature"},tanabata_tree:{keywords:["plant","nature","branch","summer"],char:"🎋",fitzpatrick_scale:false,category:"animals_and_nature"},leaves:{keywords:["nature","plant","tree","vegetable","grass","lawn","spring"],char:"🍃",fitzpatrick_scale:false,category:"animals_and_nature"},fallen_leaf:{keywords:["nature","plant","vegetable","leaves"],char:"🍂",fitzpatrick_scale:false,category:"animals_and_nature"},maple_leaf:{keywords:["nature","plant","vegetable","ca","fall"],char:"🍁",fitzpatrick_scale:false,category:"animals_and_nature"},ear_of_rice:{keywords:["nature","plant"],char:"🌾",fitzpatrick_scale:false,category:"animals_and_nature"},hibiscus:{keywords:["plant","vegetable","flowers","beach"],char:"🌺",fitzpatrick_scale:false,category:"animals_and_nature"},sunflower:{keywords:["nature","plant","fall"],char:"🌻",fitzpatrick_scale:false,category:"animals_and_nature"},rose:{keywords:["flowers","valentines","love","spring"],char:"🌹",fitzpatrick_scale:false,category:"animals_and_nature"},wilted_flower:{keywords:["plant","nature","flower"],char:"🥀",fitzpatrick_scale:false,category:"animals_and_nature"},tulip:{keywords:["flowers","plant","nature","summer","spring"],char:"🌷",fitzpatrick_scale:false,category:"animals_and_nature"},blossom:{keywords:["nature","flowers","yellow"],char:"🌼",fitzpatrick_scale:false,category:"animals_and_nature"},cherry_blossom:{keywords:["nature","plant","spring","flower"],char:"🌸",fitzpatrick_scale:false,category:"animals_and_nature"},bouquet:{keywords:["flowers","nature","spring"],char:"💐",fitzpatrick_scale:false,category:"animals_and_nature"},mushroom:{keywords:["plant","vegetable"],char:"🍄",fitzpatrick_scale:false,category:"animals_and_nature"},chestnut:{keywords:["food","squirrel"],char:"🌰",fitzpatrick_scale:false,category:"animals_and_nature"},jack_o_lantern:{keywords:["halloween","light","pumpkin","creepy","fall"],char:"🎃",fitzpatrick_scale:false,category:"animals_and_nature"},shell:{keywords:["nature","sea","beach"],char:"🐚",fitzpatrick_scale:false,category:"animals_and_nature"},spider_web:{keywords:["animal","insect","arachnid","silk"],char:"🕸",fitzpatrick_scale:false,category:"animals_and_nature"},earth_americas:{keywords:["globe","world","USA","international"],char:"🌎",fitzpatrick_scale:false,category:"animals_and_nature"},earth_africa:{keywords:["globe","world","international"],char:"🌍",fitzpatrick_scale:false,category:"animals_and_nature"},earth_asia:{keywords:["globe","world","east","international"],char:"🌏",fitzpatrick_scale:false,category:"animals_and_nature"},full_moon:{keywords:["nature","yellow","twilight","planet","space","night","evening","sleep"],char:"🌕",fitzpatrick_scale:false,category:"animals_and_nature"},waning_gibbous_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],char:"🌖",fitzpatrick_scale:false,category:"animals_and_nature"},last_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌗",fitzpatrick_scale:false,category:"animals_and_nature"},waning_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌘",fitzpatrick_scale:false,category:"animals_and_nature"},new_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌑",fitzpatrick_scale:false,category:"animals_and_nature"},waxing_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌒",fitzpatrick_scale:false,category:"animals_and_nature"},first_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌓",fitzpatrick_scale:false,category:"animals_and_nature"},waxing_gibbous_moon:{keywords:["nature","night","sky","gray","twilight","planet","space","evening","sleep"],char:"🌔",fitzpatrick_scale:false,category:"animals_and_nature"},new_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌚",fitzpatrick_scale:false,category:"animals_and_nature"},full_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌝",fitzpatrick_scale:false,category:"animals_and_nature"},first_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌛",fitzpatrick_scale:false,category:"animals_and_nature"},last_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"🌜",fitzpatrick_scale:false,category:"animals_and_nature"},sun_with_face:{keywords:["nature","morning","sky"],char:"🌞",fitzpatrick_scale:false,category:"animals_and_nature"},crescent_moon:{keywords:["night","sleep","sky","evening","magic"],char:"🌙",fitzpatrick_scale:false,category:"animals_and_nature"},star:{keywords:["night","yellow"],char:"⭐",fitzpatrick_scale:false,category:"animals_and_nature"},star2:{keywords:["night","sparkle","awesome","good","magic"],char:"🌟",fitzpatrick_scale:false,category:"animals_and_nature"},dizzy:{keywords:["star","sparkle","shoot","magic"],char:"💫",fitzpatrick_scale:false,category:"animals_and_nature"},sparkles:{keywords:["stars","shine","shiny","cool","awesome","good","magic"],char:"✨",fitzpatrick_scale:false,category:"animals_and_nature"},comet:{keywords:["space"],char:"☄",fitzpatrick_scale:false,category:"animals_and_nature"},sunny:{keywords:["weather","nature","brightness","summer","beach","spring"],char:"☀️",fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_small_cloud:{keywords:["weather"],char:"🌤",fitzpatrick_scale:false,category:"animals_and_nature"},partly_sunny:{keywords:["weather","nature","cloudy","morning","fall","spring"],char:"⛅",fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_large_cloud:{keywords:["weather"],char:"🌥",fitzpatrick_scale:false,category:"animals_and_nature"},sun_behind_rain_cloud:{keywords:["weather"],char:"🌦",fitzpatrick_scale:false,category:"animals_and_nature"},cloud:{keywords:["weather","sky"],char:"☁️",fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_rain:{keywords:["weather"],char:"🌧",fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_lightning_and_rain:{keywords:["weather","lightning"],char:"⛈",fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_lightning:{keywords:["weather","thunder"],char:"🌩",fitzpatrick_scale:false,category:"animals_and_nature"},zap:{keywords:["thunder","weather","lightning bolt","fast"],char:"⚡",fitzpatrick_scale:false,category:"animals_and_nature"},fire:{keywords:["hot","cook","flame"],char:"🔥",fitzpatrick_scale:false,category:"animals_and_nature"},boom:{keywords:["bomb","explode","explosion","collision","blown"],char:"💥",fitzpatrick_scale:false,category:"animals_and_nature"},snowflake:{keywords:["winter","season","cold","weather","christmas","xmas"],char:"❄️",fitzpatrick_scale:false,category:"animals_and_nature"},cloud_with_snow:{keywords:["weather"],char:"🌨",fitzpatrick_scale:false,category:"animals_and_nature"},snowman:{keywords:["winter","season","cold","weather","christmas","xmas","frozen","without_snow"],char:"⛄",fitzpatrick_scale:false,category:"animals_and_nature"},snowman_with_snow:{keywords:["winter","season","cold","weather","christmas","xmas","frozen"],char:"☃",fitzpatrick_scale:false,category:"animals_and_nature"},wind_face:{keywords:["gust","air"],char:"🌬",fitzpatrick_scale:false,category:"animals_and_nature"},dash:{keywords:["wind","air","fast","shoo","fart","smoke","puff"],char:"💨",fitzpatrick_scale:false,category:"animals_and_nature"},tornado:{keywords:["weather","cyclone","twister"],char:"🌪",fitzpatrick_scale:false,category:"animals_and_nature"},fog:{keywords:["weather"],char:"🌫",fitzpatrick_scale:false,category:"animals_and_nature"},open_umbrella:{keywords:["weather","spring"],char:"☂",fitzpatrick_scale:false,category:"animals_and_nature"},umbrella:{keywords:["rainy","weather","spring"],char:"☔",fitzpatrick_scale:false,category:"animals_and_nature"},droplet:{keywords:["water","drip","faucet","spring"],char:"💧",fitzpatrick_scale:false,category:"animals_and_nature"},sweat_drops:{keywords:["water","drip","oops"],char:"💦",fitzpatrick_scale:false,category:"animals_and_nature"},ocean:{keywords:["sea","water","wave","nature","tsunami","disaster"],char:"🌊",fitzpatrick_scale:false,category:"animals_and_nature"},green_apple:{keywords:["fruit","nature"],char:"🍏",fitzpatrick_scale:false,category:"food_and_drink"},apple:{keywords:["fruit","mac","school"],char:"🍎",fitzpatrick_scale:false,category:"food_and_drink"},pear:{keywords:["fruit","nature","food"],char:"🍐",fitzpatrick_scale:false,category:"food_and_drink"},tangerine:{keywords:["food","fruit","nature","orange"],char:"🍊",fitzpatrick_scale:false,category:"food_and_drink"},lemon:{keywords:["fruit","nature"],char:"🍋",fitzpatrick_scale:false,category:"food_and_drink"},banana:{keywords:["fruit","food","monkey"],char:"🍌",fitzpatrick_scale:false,category:"food_and_drink"},watermelon:{keywords:["fruit","food","picnic","summer"],char:"🍉",fitzpatrick_scale:false,category:"food_and_drink"},grapes:{keywords:["fruit","food","wine"],char:"🍇",fitzpatrick_scale:false,category:"food_and_drink"},strawberry:{keywords:["fruit","food","nature"],char:"🍓",fitzpatrick_scale:false,category:"food_and_drink"},melon:{keywords:["fruit","nature","food"],char:"🍈",fitzpatrick_scale:false,category:"food_and_drink"},cherries:{keywords:["food","fruit"],char:"🍒",fitzpatrick_scale:false,category:"food_and_drink"},peach:{keywords:["fruit","nature","food"],char:"🍑",fitzpatrick_scale:false,category:"food_and_drink"},pineapple:{keywords:["fruit","nature","food"],char:"🍍",fitzpatrick_scale:false,category:"food_and_drink"},coconut:{keywords:["fruit","nature","food","palm"],char:"🥥",fitzpatrick_scale:false,category:"food_and_drink"},kiwi_fruit:{keywords:["fruit","food"],char:"🥝",fitzpatrick_scale:false,category:"food_and_drink"},mango:{keywords:["fruit","food","tropical"],char:"🥭",fitzpatrick_scale:false,category:"food_and_drink"},avocado:{keywords:["fruit","food"],char:"🥑",fitzpatrick_scale:false,category:"food_and_drink"},broccoli:{keywords:["fruit","food","vegetable"],char:"🥦",fitzpatrick_scale:false,category:"food_and_drink"},tomato:{keywords:["fruit","vegetable","nature","food"],char:"🍅",fitzpatrick_scale:false,category:"food_and_drink"},eggplant:{keywords:["vegetable","nature","food","aubergine"],char:"🍆",fitzpatrick_scale:false,category:"food_and_drink"},cucumber:{keywords:["fruit","food","pickle"],char:"🥒",fitzpatrick_scale:false,category:"food_and_drink"},carrot:{keywords:["vegetable","food","orange"],char:"🥕",fitzpatrick_scale:false,category:"food_and_drink"},hot_pepper:{keywords:["food","spicy","chilli","chili"],char:"🌶",fitzpatrick_scale:false,category:"food_and_drink"},potato:{keywords:["food","tuber","vegatable","starch"],char:"🥔",fitzpatrick_scale:false,category:"food_and_drink"},corn:{keywords:["food","vegetable","plant"],char:"🌽",fitzpatrick_scale:false,category:"food_and_drink"},leafy_greens:{keywords:["food","vegetable","plant","bok choy","cabbage","kale","lettuce"],char:"🥬",fitzpatrick_scale:false,category:"food_and_drink"},sweet_potato:{keywords:["food","nature"],char:"🍠",fitzpatrick_scale:false,category:"food_and_drink"},peanuts:{keywords:["food","nut"],char:"🥜",fitzpatrick_scale:false,category:"food_and_drink"},honey_pot:{keywords:["bees","sweet","kitchen"],char:"🍯",fitzpatrick_scale:false,category:"food_and_drink"},croissant:{keywords:["food","bread","french"],char:"🥐",fitzpatrick_scale:false,category:"food_and_drink"},bread:{keywords:["food","wheat","breakfast","toast"],char:"🍞",fitzpatrick_scale:false,category:"food_and_drink"},baguette_bread:{keywords:["food","bread","french"],char:"🥖",fitzpatrick_scale:false,category:"food_and_drink"},bagel:{keywords:["food","bread","bakery","schmear"],char:"🥯",fitzpatrick_scale:false,category:"food_and_drink"},pretzel:{keywords:["food","bread","twisted"],char:"🥨",fitzpatrick_scale:false,category:"food_and_drink"},cheese:{keywords:["food","chadder"],char:"🧀",fitzpatrick_scale:false,category:"food_and_drink"},egg:{keywords:["food","chicken","breakfast"],char:"🥚",fitzpatrick_scale:false,category:"food_and_drink"},bacon:{keywords:["food","breakfast","pork","pig","meat"],char:"🥓",fitzpatrick_scale:false,category:"food_and_drink"},steak:{keywords:["food","cow","meat","cut","chop","lambchop","porkchop"],char:"🥩",fitzpatrick_scale:false,category:"food_and_drink"},pancakes:{keywords:["food","breakfast","flapjacks","hotcakes"],char:"🥞",fitzpatrick_scale:false,category:"food_and_drink"},poultry_leg:{keywords:["food","meat","drumstick","bird","chicken","turkey"],char:"🍗",fitzpatrick_scale:false,category:"food_and_drink"},meat_on_bone:{keywords:["good","food","drumstick"],char:"🍖",fitzpatrick_scale:false,category:"food_and_drink"},bone:{keywords:["skeleton"],char:"🦴",fitzpatrick_scale:false,category:"food_and_drink"},fried_shrimp:{keywords:["food","animal","appetizer","summer"],char:"🍤",fitzpatrick_scale:false,category:"food_and_drink"},fried_egg:{keywords:["food","breakfast","kitchen","egg"],char:"🍳",fitzpatrick_scale:false,category:"food_and_drink"},hamburger:{keywords:["meat","fast food","beef","cheeseburger","mcdonalds","burger king"],char:"🍔",fitzpatrick_scale:false,category:"food_and_drink"},fries:{keywords:["chips","snack","fast food"],char:"🍟",fitzpatrick_scale:false,category:"food_and_drink"},stuffed_flatbread:{keywords:["food","flatbread","stuffed","gyro"],char:"🥙",fitzpatrick_scale:false,category:"food_and_drink"},hotdog:{keywords:["food","frankfurter"],char:"🌭",fitzpatrick_scale:false,category:"food_and_drink"},pizza:{keywords:["food","party"],char:"🍕",fitzpatrick_scale:false,category:"food_and_drink"},sandwich:{keywords:["food","lunch","bread"],char:"🥪",fitzpatrick_scale:false,category:"food_and_drink"},canned_food:{keywords:["food","soup"],char:"🥫",fitzpatrick_scale:false,category:"food_and_drink"},spaghetti:{keywords:["food","italian","noodle"],char:"🍝",fitzpatrick_scale:false,category:"food_and_drink"},taco:{keywords:["food","mexican"],char:"🌮",fitzpatrick_scale:false,category:"food_and_drink"},burrito:{keywords:["food","mexican"],char:"🌯",fitzpatrick_scale:false,category:"food_and_drink"},green_salad:{keywords:["food","healthy","lettuce"],char:"🥗",fitzpatrick_scale:false,category:"food_and_drink"},shallow_pan_of_food:{keywords:["food","cooking","casserole","paella"],char:"🥘",fitzpatrick_scale:false,category:"food_and_drink"},ramen:{keywords:["food","japanese","noodle","chopsticks"],char:"🍜",fitzpatrick_scale:false,category:"food_and_drink"},stew:{keywords:["food","meat","soup"],char:"🍲",fitzpatrick_scale:false,category:"food_and_drink"},fish_cake:{keywords:["food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],char:"🍥",fitzpatrick_scale:false,category:"food_and_drink"},fortune_cookie:{keywords:["food","prophecy"],char:"🥠",fitzpatrick_scale:false,category:"food_and_drink"},sushi:{keywords:["food","fish","japanese","rice"],char:"🍣",fitzpatrick_scale:false,category:"food_and_drink"},bento:{keywords:["food","japanese","box"],char:"🍱",fitzpatrick_scale:false,category:"food_and_drink"},curry:{keywords:["food","spicy","hot","indian"],char:"🍛",fitzpatrick_scale:false,category:"food_and_drink"},rice_ball:{keywords:["food","japanese"],char:"🍙",fitzpatrick_scale:false,category:"food_and_drink"},rice:{keywords:["food","china","asian"],char:"🍚",fitzpatrick_scale:false,category:"food_and_drink"},rice_cracker:{keywords:["food","japanese"],char:"🍘",fitzpatrick_scale:false,category:"food_and_drink"},oden:{keywords:["food","japanese"],char:"🍢",fitzpatrick_scale:false,category:"food_and_drink"},dango:{keywords:["food","dessert","sweet","japanese","barbecue","meat"],char:"🍡",fitzpatrick_scale:false,category:"food_and_drink"},shaved_ice:{keywords:["hot","dessert","summer"],char:"🍧",fitzpatrick_scale:false,category:"food_and_drink"},ice_cream:{keywords:["food","hot","dessert"],char:"🍨",fitzpatrick_scale:false,category:"food_and_drink"},icecream:{keywords:["food","hot","dessert","summer"],char:"🍦",fitzpatrick_scale:false,category:"food_and_drink"},pie:{keywords:["food","dessert","pastry"],char:"🥧",fitzpatrick_scale:false,category:"food_and_drink"},cake:{keywords:["food","dessert"],char:"🍰",fitzpatrick_scale:false,category:"food_and_drink"},cupcake:{keywords:["food","dessert","bakery","sweet"],char:"🧁",fitzpatrick_scale:false,category:"food_and_drink"},moon_cake:{keywords:["food","autumn"],char:"🥮",fitzpatrick_scale:false,category:"food_and_drink"},birthday:{keywords:["food","dessert","cake"],char:"🎂",fitzpatrick_scale:false,category:"food_and_drink"},custard:{keywords:["dessert","food"],char:"🍮",fitzpatrick_scale:false,category:"food_and_drink"},candy:{keywords:["snack","dessert","sweet","lolly"],char:"🍬",fitzpatrick_scale:false,category:"food_and_drink"},lollipop:{keywords:["food","snack","candy","sweet"],char:"🍭",fitzpatrick_scale:false,category:"food_and_drink"},chocolate_bar:{keywords:["food","snack","dessert","sweet"],char:"🍫",fitzpatrick_scale:false,category:"food_and_drink"},popcorn:{keywords:["food","movie theater","films","snack"],char:"🍿",fitzpatrick_scale:false,category:"food_and_drink"},dumpling:{keywords:["food","empanada","pierogi","potsticker"],char:"🥟",fitzpatrick_scale:false,category:"food_and_drink"},doughnut:{keywords:["food","dessert","snack","sweet","donut"],char:"🍩",fitzpatrick_scale:false,category:"food_and_drink"},cookie:{keywords:["food","snack","oreo","chocolate","sweet","dessert"],char:"🍪",fitzpatrick_scale:false,category:"food_and_drink"},milk_glass:{keywords:["beverage","drink","cow"],char:"🥛",fitzpatrick_scale:false,category:"food_and_drink"},beer:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:"🍺",fitzpatrick_scale:false,category:"food_and_drink"},beers:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:"🍻",fitzpatrick_scale:false,category:"food_and_drink"},clinking_glasses:{keywords:["beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],char:"🥂",fitzpatrick_scale:false,category:"food_and_drink"},wine_glass:{keywords:["drink","beverage","drunk","alcohol","booze"],char:"🍷",fitzpatrick_scale:false,category:"food_and_drink"},tumbler_glass:{keywords:["drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],char:"🥃",fitzpatrick_scale:false,category:"food_and_drink"},cocktail:{keywords:["drink","drunk","alcohol","beverage","booze","mojito"],char:"🍸",fitzpatrick_scale:false,category:"food_and_drink"},tropical_drink:{keywords:["beverage","cocktail","summer","beach","alcohol","booze","mojito"],char:"🍹",fitzpatrick_scale:false,category:"food_and_drink"},champagne:{keywords:["drink","wine","bottle","celebration"],char:"🍾",fitzpatrick_scale:false,category:"food_and_drink"},sake:{keywords:["wine","drink","drunk","beverage","japanese","alcohol","booze"],char:"🍶",fitzpatrick_scale:false,category:"food_and_drink"},tea:{keywords:["drink","bowl","breakfast","green","british"],char:"🍵",fitzpatrick_scale:false,category:"food_and_drink"},cup_with_straw:{keywords:["drink","soda"],char:"🥤",fitzpatrick_scale:false,category:"food_and_drink"},coffee:{keywords:["beverage","caffeine","latte","espresso"],char:"☕",fitzpatrick_scale:false,category:"food_and_drink"},baby_bottle:{keywords:["food","container","milk"],char:"🍼",fitzpatrick_scale:false,category:"food_and_drink"},salt:{keywords:["condiment","shaker"],char:"🧂",fitzpatrick_scale:false,category:"food_and_drink"},spoon:{keywords:["cutlery","kitchen","tableware"],char:"🥄",fitzpatrick_scale:false,category:"food_and_drink"},fork_and_knife:{keywords:["cutlery","kitchen"],char:"🍴",fitzpatrick_scale:false,category:"food_and_drink"},plate_with_cutlery:{keywords:["food","eat","meal","lunch","dinner","restaurant"],char:"🍽",fitzpatrick_scale:false,category:"food_and_drink"},bowl_with_spoon:{keywords:["food","breakfast","cereal","oatmeal","porridge"],char:"🥣",fitzpatrick_scale:false,category:"food_and_drink"},takeout_box:{keywords:["food","leftovers"],char:"🥡",fitzpatrick_scale:false,category:"food_and_drink"},chopsticks:{keywords:["food"],char:"🥢",fitzpatrick_scale:false,category:"food_and_drink"},soccer:{keywords:["sports","football"],char:"⚽",fitzpatrick_scale:false,category:"activity"},basketball:{keywords:["sports","balls","NBA"],char:"🏀",fitzpatrick_scale:false,category:"activity"},football:{keywords:["sports","balls","NFL"],char:"🏈",fitzpatrick_scale:false,category:"activity"},baseball:{keywords:["sports","balls"],char:"⚾",fitzpatrick_scale:false,category:"activity"},softball:{keywords:["sports","balls"],char:"🥎",fitzpatrick_scale:false,category:"activity"},tennis:{keywords:["sports","balls","green"],char:"🎾",fitzpatrick_scale:false,category:"activity"},volleyball:{keywords:["sports","balls"],char:"🏐",fitzpatrick_scale:false,category:"activity"},rugby_football:{keywords:["sports","team"],char:"🏉",fitzpatrick_scale:false,category:"activity"},flying_disc:{keywords:["sports","frisbee","ultimate"],char:"🥏",fitzpatrick_scale:false,category:"activity"},"8ball":{keywords:["pool","hobby","game","luck","magic"],char:"🎱",fitzpatrick_scale:false,category:"activity"},golf:{keywords:["sports","business","flag","hole","summer"],char:"⛳",fitzpatrick_scale:false,category:"activity"},golfing_woman:{keywords:["sports","business","woman","female"],char:"🏌️‍♀️",fitzpatrick_scale:false,category:"activity"},golfing_man:{keywords:["sports","business"],char:"🏌",fitzpatrick_scale:true,category:"activity"},ping_pong:{keywords:["sports","pingpong"],char:"🏓",fitzpatrick_scale:false,category:"activity"},badminton:{keywords:["sports"],char:"🏸",fitzpatrick_scale:false,category:"activity"},goal_net:{keywords:["sports"],char:"🥅",fitzpatrick_scale:false,category:"activity"},ice_hockey:{keywords:["sports"],char:"🏒",fitzpatrick_scale:false,category:"activity"},field_hockey:{keywords:["sports"],char:"🏑",fitzpatrick_scale:false,category:"activity"},lacrosse:{keywords:["sports","ball","stick"],char:"🥍",fitzpatrick_scale:false,category:"activity"},cricket:{keywords:["sports"],char:"🏏",fitzpatrick_scale:false,category:"activity"},ski:{keywords:["sports","winter","cold","snow"],char:"🎿",fitzpatrick_scale:false,category:"activity"},skier:{keywords:["sports","winter","snow"],char:"⛷",fitzpatrick_scale:false,category:"activity"},snowboarder:{keywords:["sports","winter"],char:"🏂",fitzpatrick_scale:true,category:"activity"},person_fencing:{keywords:["sports","fencing","sword"],char:"🤺",fitzpatrick_scale:false,category:"activity"},women_wrestling:{keywords:["sports","wrestlers"],char:"🤼‍♀️",fitzpatrick_scale:false,category:"activity"},men_wrestling:{keywords:["sports","wrestlers"],char:"🤼‍♂️",fitzpatrick_scale:false,category:"activity"},woman_cartwheeling:{keywords:["gymnastics"],char:"🤸‍♀️",fitzpatrick_scale:true,category:"activity"},man_cartwheeling:{keywords:["gymnastics"],char:"🤸‍♂️",fitzpatrick_scale:true,category:"activity"},woman_playing_handball:{keywords:["sports"],char:"🤾‍♀️",fitzpatrick_scale:true,category:"activity"},man_playing_handball:{keywords:["sports"],char:"🤾‍♂️",fitzpatrick_scale:true,category:"activity"},ice_skate:{keywords:["sports"],char:"⛸",fitzpatrick_scale:false,category:"activity"},curling_stone:{keywords:["sports"],char:"🥌",fitzpatrick_scale:false,category:"activity"},skateboard:{keywords:["board"],char:"🛹",fitzpatrick_scale:false,category:"activity"},sled:{keywords:["sleigh","luge","toboggan"],char:"🛷",fitzpatrick_scale:false,category:"activity"},bow_and_arrow:{keywords:["sports"],char:"🏹",fitzpatrick_scale:false,category:"activity"},fishing_pole_and_fish:{keywords:["food","hobby","summer"],char:"🎣",fitzpatrick_scale:false,category:"activity"},boxing_glove:{keywords:["sports","fighting"],char:"🥊",fitzpatrick_scale:false,category:"activity"},martial_arts_uniform:{keywords:["judo","karate","taekwondo"],char:"🥋",fitzpatrick_scale:false,category:"activity"},rowing_woman:{keywords:["sports","hobby","water","ship","woman","female"],char:"🚣‍♀️",fitzpatrick_scale:true,category:"activity"},rowing_man:{keywords:["sports","hobby","water","ship"],char:"🚣",fitzpatrick_scale:true,category:"activity"},climbing_woman:{keywords:["sports","hobby","woman","female","rock"],char:"🧗‍♀️",fitzpatrick_scale:true,category:"activity"},climbing_man:{keywords:["sports","hobby","man","male","rock"],char:"🧗‍♂️",fitzpatrick_scale:true,category:"activity"},swimming_woman:{keywords:["sports","exercise","human","athlete","water","summer","woman","female"],char:"🏊‍♀️",fitzpatrick_scale:true,category:"activity"},swimming_man:{keywords:["sports","exercise","human","athlete","water","summer"],char:"🏊",fitzpatrick_scale:true,category:"activity"},woman_playing_water_polo:{keywords:["sports","pool"],char:"🤽‍♀️",fitzpatrick_scale:true,category:"activity"},man_playing_water_polo:{keywords:["sports","pool"],char:"🤽‍♂️",fitzpatrick_scale:true,category:"activity"},woman_in_lotus_position:{keywords:["woman","female","meditation","yoga","serenity","zen","mindfulness"],char:"🧘‍♀️",fitzpatrick_scale:true,category:"activity"},man_in_lotus_position:{keywords:["man","male","meditation","yoga","serenity","zen","mindfulness"],char:"🧘‍♂️",fitzpatrick_scale:true,category:"activity"},surfing_woman:{keywords:["sports","ocean","sea","summer","beach","woman","female"],char:"🏄‍♀️",fitzpatrick_scale:true,category:"activity"},surfing_man:{keywords:["sports","ocean","sea","summer","beach"],char:"🏄",fitzpatrick_scale:true,category:"activity"},bath:{keywords:["clean","shower","bathroom"],char:"🛀",fitzpatrick_scale:true,category:"activity"},basketball_woman:{keywords:["sports","human","woman","female"],char:"⛹️‍♀️",fitzpatrick_scale:true,category:"activity"},basketball_man:{keywords:["sports","human"],char:"⛹",fitzpatrick_scale:true,category:"activity"},weight_lifting_woman:{keywords:["sports","training","exercise","woman","female"],char:"🏋️‍♀️",fitzpatrick_scale:true,category:"activity"},weight_lifting_man:{keywords:["sports","training","exercise"],char:"🏋",fitzpatrick_scale:true,category:"activity"},biking_woman:{keywords:["sports","bike","exercise","hipster","woman","female"],char:"🚴‍♀️",fitzpatrick_scale:true,category:"activity"},biking_man:{keywords:["sports","bike","exercise","hipster"],char:"🚴",fitzpatrick_scale:true,category:"activity"},mountain_biking_woman:{keywords:["transportation","sports","human","race","bike","woman","female"],char:"🚵‍♀️",fitzpatrick_scale:true,category:"activity"},mountain_biking_man:{keywords:["transportation","sports","human","race","bike"],char:"🚵",fitzpatrick_scale:true,category:"activity"},horse_racing:{keywords:["animal","betting","competition","gambling","luck"],char:"🏇",fitzpatrick_scale:true,category:"activity"},business_suit_levitating:{keywords:["suit","business","levitate","hover","jump"],char:"🕴",fitzpatrick_scale:true,category:"activity"},trophy:{keywords:["win","award","contest","place","ftw","ceremony"],char:"🏆",fitzpatrick_scale:false,category:"activity"},running_shirt_with_sash:{keywords:["play","pageant"],char:"🎽",fitzpatrick_scale:false,category:"activity"},medal_sports:{keywords:["award","winning"],char:"🏅",fitzpatrick_scale:false,category:"activity"},medal_military:{keywords:["award","winning","army"],char:"🎖",fitzpatrick_scale:false,category:"activity"},"1st_place_medal":{keywords:["award","winning","first"],char:"🥇",fitzpatrick_scale:false,category:"activity"},"2nd_place_medal":{keywords:["award","second"],char:"🥈",fitzpatrick_scale:false,category:"activity"},"3rd_place_medal":{keywords:["award","third"],char:"🥉",fitzpatrick_scale:false,category:"activity"},reminder_ribbon:{keywords:["sports","cause","support","awareness"],char:"🎗",fitzpatrick_scale:false,category:"activity"},rosette:{keywords:["flower","decoration","military"],char:"🏵",fitzpatrick_scale:false,category:"activity"},ticket:{keywords:["event","concert","pass"],char:"🎫",fitzpatrick_scale:false,category:"activity"},tickets:{keywords:["sports","concert","entrance"],char:"🎟",fitzpatrick_scale:false,category:"activity"},performing_arts:{keywords:["acting","theater","drama"],char:"🎭",fitzpatrick_scale:false,category:"activity"},art:{keywords:["design","paint","draw","colors"],char:"🎨",fitzpatrick_scale:false,category:"activity"},circus_tent:{keywords:["festival","carnival","party"],char:"🎪",fitzpatrick_scale:false,category:"activity"},woman_juggling:{keywords:["juggle","balance","skill","multitask"],char:"🤹‍♀️",fitzpatrick_scale:true,category:"activity"},man_juggling:{keywords:["juggle","balance","skill","multitask"],char:"🤹‍♂️",fitzpatrick_scale:true,category:"activity"},microphone:{keywords:["sound","music","PA","sing","talkshow"],char:"🎤",fitzpatrick_scale:false,category:"activity"},headphones:{keywords:["music","score","gadgets"],char:"🎧",fitzpatrick_scale:false,category:"activity"},musical_score:{keywords:["treble","clef","compose"],char:"🎼",fitzpatrick_scale:false,category:"activity"},musical_keyboard:{keywords:["piano","instrument","compose"],char:"🎹",fitzpatrick_scale:false,category:"activity"},drum:{keywords:["music","instrument","drumsticks","snare"],char:"🥁",fitzpatrick_scale:false,category:"activity"},saxophone:{keywords:["music","instrument","jazz","blues"],char:"🎷",fitzpatrick_scale:false,category:"activity"},trumpet:{keywords:["music","brass"],char:"🎺",fitzpatrick_scale:false,category:"activity"},guitar:{keywords:["music","instrument"],char:"🎸",fitzpatrick_scale:false,category:"activity"},violin:{keywords:["music","instrument","orchestra","symphony"],char:"🎻",fitzpatrick_scale:false,category:"activity"},clapper:{keywords:["movie","film","record"],char:"🎬",fitzpatrick_scale:false,category:"activity"},video_game:{keywords:["play","console","PS4","controller"],char:"🎮",fitzpatrick_scale:false,category:"activity"},space_invader:{keywords:["game","arcade","play"],char:"👾",fitzpatrick_scale:false,category:"activity"},dart:{keywords:["game","play","bar","target","bullseye"],char:"🎯",fitzpatrick_scale:false,category:"activity"},game_die:{keywords:["dice","random","tabletop","play","luck"],char:"🎲",fitzpatrick_scale:false,category:"activity"},chess_pawn:{keywords:["expendable"],char:"♟",fitzpatrick_scale:false,category:"activity"},slot_machine:{keywords:["bet","gamble","vegas","fruit machine","luck","casino"],char:"🎰",fitzpatrick_scale:false,category:"activity"},jigsaw:{keywords:["interlocking","puzzle","piece"],char:"🧩",fitzpatrick_scale:false,category:"activity"},bowling:{keywords:["sports","fun","play"],char:"🎳",fitzpatrick_scale:false,category:"activity"},red_car:{keywords:["red","transportation","vehicle"],char:"🚗",fitzpatrick_scale:false,category:"travel_and_places"},taxi:{keywords:["uber","vehicle","cars","transportation"],char:"🚕",fitzpatrick_scale:false,category:"travel_and_places"},blue_car:{keywords:["transportation","vehicle"],char:"🚙",fitzpatrick_scale:false,category:"travel_and_places"},bus:{keywords:["car","vehicle","transportation"],char:"🚌",fitzpatrick_scale:false,category:"travel_and_places"},trolleybus:{keywords:["bart","transportation","vehicle"],char:"🚎",fitzpatrick_scale:false,category:"travel_and_places"},racing_car:{keywords:["sports","race","fast","formula","f1"],char:"🏎",fitzpatrick_scale:false,category:"travel_and_places"},police_car:{keywords:["vehicle","cars","transportation","law","legal","enforcement"],char:"🚓",fitzpatrick_scale:false,category:"travel_and_places"},ambulance:{keywords:["health","911","hospital"],char:"🚑",fitzpatrick_scale:false,category:"travel_and_places"},fire_engine:{keywords:["transportation","cars","vehicle"],char:"🚒",fitzpatrick_scale:false,category:"travel_and_places"},minibus:{keywords:["vehicle","car","transportation"],char:"🚐",fitzpatrick_scale:false,category:"travel_and_places"},truck:{keywords:["cars","transportation"],char:"🚚",fitzpatrick_scale:false,category:"travel_and_places"},articulated_lorry:{keywords:["vehicle","cars","transportation","express"],char:"🚛",fitzpatrick_scale:false,category:"travel_and_places"},tractor:{keywords:["vehicle","car","farming","agriculture"],char:"🚜",fitzpatrick_scale:false,category:"travel_and_places"},kick_scooter:{keywords:["vehicle","kick","razor"],char:"🛴",fitzpatrick_scale:false,category:"travel_and_places"},motorcycle:{keywords:["race","sports","fast"],char:"🏍",fitzpatrick_scale:false,category:"travel_and_places"},bike:{keywords:["sports","bicycle","exercise","hipster"],char:"🚲",fitzpatrick_scale:false,category:"travel_and_places"},motor_scooter:{keywords:["vehicle","vespa","sasha"],char:"🛵",fitzpatrick_scale:false,category:"travel_and_places"},rotating_light:{keywords:["police","ambulance","911","emergency","alert","error","pinged","law","legal"],char:"🚨",fitzpatrick_scale:false,category:"travel_and_places"},oncoming_police_car:{keywords:["vehicle","law","legal","enforcement","911"],char:"🚔",fitzpatrick_scale:false,category:"travel_and_places"},oncoming_bus:{keywords:["vehicle","transportation"],char:"🚍",fitzpatrick_scale:false,category:"travel_and_places"},oncoming_automobile:{keywords:["car","vehicle","transportation"],char:"🚘",fitzpatrick_scale:false,category:"travel_and_places"},oncoming_taxi:{keywords:["vehicle","cars","uber"],char:"🚖",fitzpatrick_scale:false,category:"travel_and_places"},aerial_tramway:{keywords:["transportation","vehicle","ski"],char:"🚡",fitzpatrick_scale:false,category:"travel_and_places"},mountain_cableway:{keywords:["transportation","vehicle","ski"],char:"🚠",fitzpatrick_scale:false,category:"travel_and_places"},suspension_railway:{keywords:["vehicle","transportation"],char:"🚟",fitzpatrick_scale:false,category:"travel_and_places"},railway_car:{keywords:["transportation","vehicle"],char:"🚃",fitzpatrick_scale:false,category:"travel_and_places"},train:{keywords:["transportation","vehicle","carriage","public","travel"],char:"🚋",fitzpatrick_scale:false,category:"travel_and_places"},monorail:{keywords:["transportation","vehicle"],char:"🚝",fitzpatrick_scale:false,category:"travel_and_places"},bullettrain_side:{keywords:["transportation","vehicle"],char:"🚄",fitzpatrick_scale:false,category:"travel_and_places"},bullettrain_front:{keywords:["transportation","vehicle","speed","fast","public","travel"],char:"🚅",fitzpatrick_scale:false,category:"travel_and_places"},light_rail:{keywords:["transportation","vehicle"],char:"🚈",fitzpatrick_scale:false,category:"travel_and_places"},mountain_railway:{keywords:["transportation","vehicle"],char:"🚞",fitzpatrick_scale:false,category:"travel_and_places"},steam_locomotive:{keywords:["transportation","vehicle","train"],char:"🚂",fitzpatrick_scale:false,category:"travel_and_places"},train2:{keywords:["transportation","vehicle"],char:"🚆",fitzpatrick_scale:false,category:"travel_and_places"},metro:{keywords:["transportation","blue-square","mrt","underground","tube"],char:"🚇",fitzpatrick_scale:false,category:"travel_and_places"},tram:{keywords:["transportation","vehicle"],char:"🚊",fitzpatrick_scale:false,category:"travel_and_places"},station:{keywords:["transportation","vehicle","public"],char:"🚉",fitzpatrick_scale:false,category:"travel_and_places"},flying_saucer:{keywords:["transportation","vehicle","ufo"],char:"🛸",fitzpatrick_scale:false,category:"travel_and_places"},helicopter:{keywords:["transportation","vehicle","fly"],char:"🚁",fitzpatrick_scale:false,category:"travel_and_places"},small_airplane:{keywords:["flight","transportation","fly","vehicle"],char:"🛩",fitzpatrick_scale:false,category:"travel_and_places"},airplane:{keywords:["vehicle","transportation","flight","fly"],char:"✈️",fitzpatrick_scale:false,category:"travel_and_places"},flight_departure:{keywords:["airport","flight","landing"],char:"🛫",fitzpatrick_scale:false,category:"travel_and_places"},flight_arrival:{keywords:["airport","flight","boarding"],char:"🛬",fitzpatrick_scale:false,category:"travel_and_places"},sailboat:{keywords:["ship","summer","transportation","water","sailing"],char:"⛵",fitzpatrick_scale:false,category:"travel_and_places"},motor_boat:{keywords:["ship"],char:"🛥",fitzpatrick_scale:false,category:"travel_and_places"},speedboat:{keywords:["ship","transportation","vehicle","summer"],char:"🚤",fitzpatrick_scale:false,category:"travel_and_places"},ferry:{keywords:["boat","ship","yacht"],char:"⛴",fitzpatrick_scale:false,category:"travel_and_places"},passenger_ship:{keywords:["yacht","cruise","ferry"],char:"🛳",fitzpatrick_scale:false,category:"travel_and_places"},rocket:{keywords:["launch","ship","staffmode","NASA","outer space","outer_space","fly"],char:"🚀",fitzpatrick_scale:false,category:"travel_and_places"},artificial_satellite:{keywords:["communication","gps","orbit","spaceflight","NASA","ISS"],char:"🛰",fitzpatrick_scale:false,category:"travel_and_places"},seat:{keywords:["sit","airplane","transport","bus","flight","fly"],char:"💺",fitzpatrick_scale:false,category:"travel_and_places"},canoe:{keywords:["boat","paddle","water","ship"],char:"🛶",fitzpatrick_scale:false,category:"travel_and_places"},anchor:{keywords:["ship","ferry","sea","boat"],char:"⚓",fitzpatrick_scale:false,category:"travel_and_places"},construction:{keywords:["wip","progress","caution","warning"],char:"🚧",fitzpatrick_scale:false,category:"travel_and_places"},fuelpump:{keywords:["gas station","petroleum"],char:"⛽",fitzpatrick_scale:false,category:"travel_and_places"},busstop:{keywords:["transportation","wait"],char:"🚏",fitzpatrick_scale:false,category:"travel_and_places"},vertical_traffic_light:{keywords:["transportation","driving"],char:"🚦",fitzpatrick_scale:false,category:"travel_and_places"},traffic_light:{keywords:["transportation","signal"],char:"🚥",fitzpatrick_scale:false,category:"travel_and_places"},checkered_flag:{keywords:["contest","finishline","race","gokart"],char:"🏁",fitzpatrick_scale:false,category:"travel_and_places"},ship:{keywords:["transportation","titanic","deploy"],char:"🚢",fitzpatrick_scale:false,category:"travel_and_places"},ferris_wheel:{keywords:["photo","carnival","londoneye"],char:"🎡",fitzpatrick_scale:false,category:"travel_and_places"},roller_coaster:{keywords:["carnival","playground","photo","fun"],char:"🎢",fitzpatrick_scale:false,category:"travel_and_places"},carousel_horse:{keywords:["photo","carnival"],char:"🎠",fitzpatrick_scale:false,category:"travel_and_places"},building_construction:{keywords:["wip","working","progress"],char:"🏗",fitzpatrick_scale:false,category:"travel_and_places"},foggy:{keywords:["photo","mountain"],char:"🌁",fitzpatrick_scale:false,category:"travel_and_places"},tokyo_tower:{keywords:["photo","japanese"],char:"🗼",fitzpatrick_scale:false,category:"travel_and_places"},factory:{keywords:["building","industry","pollution","smoke"],char:"🏭",fitzpatrick_scale:false,category:"travel_and_places"},fountain:{keywords:["photo","summer","water","fresh"],char:"⛲",fitzpatrick_scale:false,category:"travel_and_places"},rice_scene:{keywords:["photo","japan","asia","tsukimi"],char:"🎑",fitzpatrick_scale:false,category:"travel_and_places"},mountain:{keywords:["photo","nature","environment"],char:"⛰",fitzpatrick_scale:false,category:"travel_and_places"},mountain_snow:{keywords:["photo","nature","environment","winter","cold"],char:"🏔",fitzpatrick_scale:false,category:"travel_and_places"},mount_fuji:{keywords:["photo","mountain","nature","japanese"],char:"🗻",fitzpatrick_scale:false,category:"travel_and_places"},volcano:{keywords:["photo","nature","disaster"],char:"🌋",fitzpatrick_scale:false,category:"travel_and_places"},japan:{keywords:["nation","country","japanese","asia"],char:"🗾",fitzpatrick_scale:false,category:"travel_and_places"},camping:{keywords:["photo","outdoors","tent"],char:"🏕",fitzpatrick_scale:false,category:"travel_and_places"},tent:{keywords:["photo","camping","outdoors"],char:"⛺",fitzpatrick_scale:false,category:"travel_and_places"},national_park:{keywords:["photo","environment","nature"],char:"🏞",fitzpatrick_scale:false,category:"travel_and_places"},motorway:{keywords:["road","cupertino","interstate","highway"],char:"🛣",fitzpatrick_scale:false,category:"travel_and_places"},railway_track:{keywords:["train","transportation"],char:"🛤",fitzpatrick_scale:false,category:"travel_and_places"},sunrise:{keywords:["morning","view","vacation","photo"],char:"🌅",fitzpatrick_scale:false,category:"travel_and_places"},sunrise_over_mountains:{keywords:["view","vacation","photo"],char:"🌄",fitzpatrick_scale:false,category:"travel_and_places"},desert:{keywords:["photo","warm","saharah"],char:"🏜",fitzpatrick_scale:false,category:"travel_and_places"},beach_umbrella:{keywords:["weather","summer","sunny","sand","mojito"],char:"🏖",fitzpatrick_scale:false,category:"travel_and_places"},desert_island:{keywords:["photo","tropical","mojito"],char:"🏝",fitzpatrick_scale:false,category:"travel_and_places"},city_sunrise:{keywords:["photo","good morning","dawn"],char:"🌇",fitzpatrick_scale:false,category:"travel_and_places"},city_sunset:{keywords:["photo","evening","sky","buildings"],char:"🌆",fitzpatrick_scale:false,category:"travel_and_places"},cityscape:{keywords:["photo","night life","urban"],char:"🏙",fitzpatrick_scale:false,category:"travel_and_places"},night_with_stars:{keywords:["evening","city","downtown"],char:"🌃",fitzpatrick_scale:false,category:"travel_and_places"},bridge_at_night:{keywords:["photo","sanfrancisco"],char:"🌉",fitzpatrick_scale:false,category:"travel_and_places"},milky_way:{keywords:["photo","space","stars"],char:"🌌",fitzpatrick_scale:false,category:"travel_and_places"},stars:{keywords:["night","photo"],char:"🌠",fitzpatrick_scale:false,category:"travel_and_places"},sparkler:{keywords:["stars","night","shine"],char:"🎇",fitzpatrick_scale:false,category:"travel_and_places"},fireworks:{keywords:["photo","festival","carnival","congratulations"],char:"🎆",fitzpatrick_scale:false,category:"travel_and_places"},rainbow:{keywords:["nature","happy","unicorn_face","photo","sky","spring"],char:"🌈",fitzpatrick_scale:false,category:"travel_and_places"},houses:{keywords:["buildings","photo"],char:"🏘",fitzpatrick_scale:false,category:"travel_and_places"},european_castle:{keywords:["building","royalty","history"],char:"🏰",fitzpatrick_scale:false,category:"travel_and_places"},japanese_castle:{keywords:["photo","building"],char:"🏯",fitzpatrick_scale:false,category:"travel_and_places"},stadium:{keywords:["photo","place","sports","concert","venue"],char:"🏟",fitzpatrick_scale:false,category:"travel_and_places"},statue_of_liberty:{keywords:["american","newyork"],char:"🗽",fitzpatrick_scale:false,category:"travel_and_places"},house:{keywords:["building","home"],char:"🏠",fitzpatrick_scale:false,category:"travel_and_places"},house_with_garden:{keywords:["home","plant","nature"],char:"🏡",fitzpatrick_scale:false,category:"travel_and_places"},derelict_house:{keywords:["abandon","evict","broken","building"],char:"🏚",fitzpatrick_scale:false,category:"travel_and_places"},office:{keywords:["building","bureau","work"],char:"🏢",fitzpatrick_scale:false,category:"travel_and_places"},department_store:{keywords:["building","shopping","mall"],char:"🏬",fitzpatrick_scale:false,category:"travel_and_places"},post_office:{keywords:["building","envelope","communication"],char:"🏣",fitzpatrick_scale:false,category:"travel_and_places"},european_post_office:{keywords:["building","email"],char:"🏤",fitzpatrick_scale:false,category:"travel_and_places"},hospital:{keywords:["building","health","surgery","doctor"],char:"🏥",fitzpatrick_scale:false,category:"travel_and_places"},bank:{keywords:["building","money","sales","cash","business","enterprise"],char:"🏦",fitzpatrick_scale:false,category:"travel_and_places"},hotel:{keywords:["building","accomodation","checkin"],char:"🏨",fitzpatrick_scale:false,category:"travel_and_places"},convenience_store:{keywords:["building","shopping","groceries"],char:"🏪",fitzpatrick_scale:false,category:"travel_and_places"},school:{keywords:["building","student","education","learn","teach"],char:"🏫",fitzpatrick_scale:false,category:"travel_and_places"},love_hotel:{keywords:["like","affection","dating"],char:"🏩",fitzpatrick_scale:false,category:"travel_and_places"},wedding:{keywords:["love","like","affection","couple","marriage","bride","groom"],char:"💒",fitzpatrick_scale:false,category:"travel_and_places"},classical_building:{keywords:["art","culture","history"],char:"🏛",fitzpatrick_scale:false,category:"travel_and_places"},church:{keywords:["building","religion","christ"],char:"⛪",fitzpatrick_scale:false,category:"travel_and_places"},mosque:{keywords:["islam","worship","minaret"],char:"🕌",fitzpatrick_scale:false,category:"travel_and_places"},synagogue:{keywords:["judaism","worship","temple","jewish"],char:"🕍",fitzpatrick_scale:false,category:"travel_and_places"},kaaba:{keywords:["mecca","mosque","islam"],char:"🕋",fitzpatrick_scale:false,category:"travel_and_places"},shinto_shrine:{keywords:["temple","japan","kyoto"],char:"⛩",fitzpatrick_scale:false,category:"travel_and_places"},watch:{keywords:["time","accessories"],char:"⌚",fitzpatrick_scale:false,category:"objects"},iphone:{keywords:["technology","apple","gadgets","dial"],char:"📱",fitzpatrick_scale:false,category:"objects"},calling:{keywords:["iphone","incoming"],char:"📲",fitzpatrick_scale:false,category:"objects"},computer:{keywords:["technology","laptop","screen","display","monitor"],char:"💻",fitzpatrick_scale:false,category:"objects"},keyboard:{keywords:["technology","computer","type","input","text"],char:"⌨",fitzpatrick_scale:false,category:"objects"},desktop_computer:{keywords:["technology","computing","screen"],char:"🖥",fitzpatrick_scale:false,category:"objects"},printer:{keywords:["paper","ink"],char:"🖨",fitzpatrick_scale:false,category:"objects"},computer_mouse:{keywords:["click"],char:"🖱",fitzpatrick_scale:false,category:"objects"},trackball:{keywords:["technology","trackpad"],char:"🖲",fitzpatrick_scale:false,category:"objects"},joystick:{keywords:["game","play"],char:"🕹",fitzpatrick_scale:false,category:"objects"},clamp:{keywords:["tool"],char:"🗜",fitzpatrick_scale:false,category:"objects"},minidisc:{keywords:["technology","record","data","disk","90s"],char:"💽",fitzpatrick_scale:false,category:"objects"},floppy_disk:{keywords:["oldschool","technology","save","90s","80s"],char:"💾",fitzpatrick_scale:false,category:"objects"},cd:{keywords:["technology","dvd","disk","disc","90s"],char:"💿",fitzpatrick_scale:false,category:"objects"},dvd:{keywords:["cd","disk","disc"],char:"📀",fitzpatrick_scale:false,category:"objects"},vhs:{keywords:["record","video","oldschool","90s","80s"],char:"📼",fitzpatrick_scale:false,category:"objects"},camera:{keywords:["gadgets","photography"],char:"📷",fitzpatrick_scale:false,category:"objects"},camera_flash:{keywords:["photography","gadgets"],char:"📸",fitzpatrick_scale:false,category:"objects"},video_camera:{keywords:["film","record"],char:"📹",fitzpatrick_scale:false,category:"objects"},movie_camera:{keywords:["film","record"],char:"🎥",fitzpatrick_scale:false,category:"objects"},film_projector:{keywords:["video","tape","record","movie"],char:"📽",fitzpatrick_scale:false,category:"objects"},film_strip:{keywords:["movie"],char:"🎞",fitzpatrick_scale:false,category:"objects"},telephone_receiver:{keywords:["technology","communication","dial"],char:"📞",fitzpatrick_scale:false,category:"objects"},phone:{keywords:["technology","communication","dial","telephone"],char:"☎️",fitzpatrick_scale:false,category:"objects"},pager:{keywords:["bbcall","oldschool","90s"],char:"📟",fitzpatrick_scale:false,category:"objects"},fax:{keywords:["communication","technology"],char:"📠",fitzpatrick_scale:false,category:"objects"},tv:{keywords:["technology","program","oldschool","show","television"],char:"📺",fitzpatrick_scale:false,category:"objects"},radio:{keywords:["communication","music","podcast","program"],char:"📻",fitzpatrick_scale:false,category:"objects"},studio_microphone:{keywords:["sing","recording","artist","talkshow"],char:"🎙",fitzpatrick_scale:false,category:"objects"},level_slider:{keywords:["scale"],char:"🎚",fitzpatrick_scale:false,category:"objects"},control_knobs:{keywords:["dial"],char:"🎛",fitzpatrick_scale:false,category:"objects"},compass:{keywords:["magnetic","navigation","orienteering"],char:"🧭",fitzpatrick_scale:false,category:"objects"},stopwatch:{keywords:["time","deadline"],char:"⏱",fitzpatrick_scale:false,category:"objects"},timer_clock:{keywords:["alarm"],char:"⏲",fitzpatrick_scale:false,category:"objects"},alarm_clock:{keywords:["time","wake"],char:"⏰",fitzpatrick_scale:false,category:"objects"},mantelpiece_clock:{keywords:["time"],char:"🕰",fitzpatrick_scale:false,category:"objects"},hourglass_flowing_sand:{keywords:["oldschool","time","countdown"],char:"⏳",fitzpatrick_scale:false,category:"objects"},hourglass:{keywords:["time","clock","oldschool","limit","exam","quiz","test"],char:"⌛",fitzpatrick_scale:false,category:"objects"},satellite:{keywords:["communication","future","radio","space"],char:"📡",fitzpatrick_scale:false,category:"objects"},battery:{keywords:["power","energy","sustain"],char:"🔋",fitzpatrick_scale:false,category:"objects"},electric_plug:{keywords:["charger","power"],char:"🔌",fitzpatrick_scale:false,category:"objects"},bulb:{keywords:["light","electricity","idea"],char:"💡",fitzpatrick_scale:false,category:"objects"},flashlight:{keywords:["dark","camping","sight","night"],char:"🔦",fitzpatrick_scale:false,category:"objects"},candle:{keywords:["fire","wax"],char:"🕯",fitzpatrick_scale:false,category:"objects"},fire_extinguisher:{keywords:["quench"],char:"🧯",fitzpatrick_scale:false,category:"objects"},wastebasket:{keywords:["bin","trash","rubbish","garbage","toss"],char:"🗑",fitzpatrick_scale:false,category:"objects"},oil_drum:{keywords:["barrell"],char:"🛢",fitzpatrick_scale:false,category:"objects"},money_with_wings:{keywords:["dollar","bills","payment","sale"],char:"💸",fitzpatrick_scale:false,category:"objects"},dollar:{keywords:["money","sales","bill","currency"],char:"💵",fitzpatrick_scale:false,category:"objects"},yen:{keywords:["money","sales","japanese","dollar","currency"],char:"💴",fitzpatrick_scale:false,category:"objects"},euro:{keywords:["money","sales","dollar","currency"],char:"💶",fitzpatrick_scale:false,category:"objects"},pound:{keywords:["british","sterling","money","sales","bills","uk","england","currency"],char:"💷",fitzpatrick_scale:false,category:"objects"},moneybag:{keywords:["dollar","payment","coins","sale"],char:"💰",fitzpatrick_scale:false,category:"objects"},credit_card:{keywords:["money","sales","dollar","bill","payment","shopping"],char:"💳",fitzpatrick_scale:false,category:"objects"},gem:{keywords:["blue","ruby","diamond","jewelry"],char:"💎",fitzpatrick_scale:false,category:"objects"},balance_scale:{keywords:["law","fairness","weight"],char:"⚖",fitzpatrick_scale:false,category:"objects"},toolbox:{keywords:["tools","diy","fix","maintainer","mechanic"],char:"🧰",fitzpatrick_scale:false,category:"objects"},wrench:{keywords:["tools","diy","ikea","fix","maintainer"],char:"🔧",fitzpatrick_scale:false,category:"objects"},hammer:{keywords:["tools","build","create"],char:"🔨",fitzpatrick_scale:false,category:"objects"},hammer_and_pick:{keywords:["tools","build","create"],char:"⚒",fitzpatrick_scale:false,category:"objects"},hammer_and_wrench:{keywords:["tools","build","create"],char:"🛠",fitzpatrick_scale:false,category:"objects"},pick:{keywords:["tools","dig"],char:"⛏",fitzpatrick_scale:false,category:"objects"},nut_and_bolt:{keywords:["handy","tools","fix"],char:"🔩",fitzpatrick_scale:false,category:"objects"},gear:{keywords:["cog"],char:"⚙",fitzpatrick_scale:false,category:"objects"},brick:{keywords:["bricks"],char:"🧱",fitzpatrick_scale:false,category:"objects"},chains:{keywords:["lock","arrest"],char:"⛓",fitzpatrick_scale:false,category:"objects"},magnet:{keywords:["attraction","magnetic"],char:"🧲",fitzpatrick_scale:false,category:"objects"},gun:{keywords:["violence","weapon","pistol","revolver"],char:"🔫",fitzpatrick_scale:false,category:"objects"},bomb:{keywords:["boom","explode","explosion","terrorism"],char:"💣",fitzpatrick_scale:false,category:"objects"},firecracker:{keywords:["dynamite","boom","explode","explosion","explosive"],char:"🧨",fitzpatrick_scale:false,category:"objects"},hocho:{keywords:["knife","blade","cutlery","kitchen","weapon"],char:"🔪",fitzpatrick_scale:false,category:"objects"},dagger:{keywords:["weapon"],char:"🗡",fitzpatrick_scale:false,category:"objects"},crossed_swords:{keywords:["weapon"],char:"⚔",fitzpatrick_scale:false,category:"objects"},shield:{keywords:["protection","security"],char:"🛡",fitzpatrick_scale:false,category:"objects"},smoking:{keywords:["kills","tobacco","cigarette","joint","smoke"],char:"🚬",fitzpatrick_scale:false,category:"objects"},skull_and_crossbones:{keywords:["poison","danger","deadly","scary","death","pirate","evil"],char:"☠",fitzpatrick_scale:false,category:"objects"},coffin:{keywords:["vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],char:"⚰",fitzpatrick_scale:false,category:"objects"},funeral_urn:{keywords:["dead","die","death","rip","ashes"],char:"⚱",fitzpatrick_scale:false,category:"objects"},amphora:{keywords:["vase","jar"],char:"🏺",fitzpatrick_scale:false,category:"objects"},crystal_ball:{keywords:["disco","party","magic","circus","fortune_teller"],char:"🔮",fitzpatrick_scale:false,category:"objects"},prayer_beads:{keywords:["dhikr","religious"],char:"📿",fitzpatrick_scale:false,category:"objects"},nazar_amulet:{keywords:["bead","charm"],char:"🧿",fitzpatrick_scale:false,category:"objects"},barber:{keywords:["hair","salon","style"],char:"💈",fitzpatrick_scale:false,category:"objects"},alembic:{keywords:["distilling","science","experiment","chemistry"],char:"⚗",fitzpatrick_scale:false,category:"objects"},telescope:{keywords:["stars","space","zoom","science","astronomy"],char:"🔭",fitzpatrick_scale:false,category:"objects"},microscope:{keywords:["laboratory","experiment","zoomin","science","study"],char:"🔬",fitzpatrick_scale:false,category:"objects"},hole:{keywords:["embarrassing"],char:"🕳",fitzpatrick_scale:false,category:"objects"},pill:{keywords:["health","medicine","doctor","pharmacy","drug"],char:"💊",fitzpatrick_scale:false,category:"objects"},syringe:{keywords:["health","hospital","drugs","blood","medicine","needle","doctor","nurse"],char:"💉",fitzpatrick_scale:false,category:"objects"},dna:{keywords:["biologist","genetics","life"],char:"🧬",fitzpatrick_scale:false,category:"objects"},microbe:{keywords:["amoeba","bacteria","germs"],char:"🦠",fitzpatrick_scale:false,category:"objects"},petri_dish:{keywords:["bacteria","biology","culture","lab"],char:"🧫",fitzpatrick_scale:false,category:"objects"},test_tube:{keywords:["chemistry","experiment","lab","science"],char:"🧪",fitzpatrick_scale:false,category:"objects"},thermometer:{keywords:["weather","temperature","hot","cold"],char:"🌡",fitzpatrick_scale:false,category:"objects"},broom:{keywords:["cleaning","sweeping","witch"],char:"🧹",fitzpatrick_scale:false,category:"objects"},basket:{keywords:["laundry"],char:"🧺",fitzpatrick_scale:false,category:"objects"},toilet_paper:{keywords:["roll"],char:"🧻",fitzpatrick_scale:false,category:"objects"},label:{keywords:["sale","tag"],char:"🏷",fitzpatrick_scale:false,category:"objects"},bookmark:{keywords:["favorite","label","save"],char:"🔖",fitzpatrick_scale:false,category:"objects"},toilet:{keywords:["restroom","wc","washroom","bathroom","potty"],char:"🚽",fitzpatrick_scale:false,category:"objects"},shower:{keywords:["clean","water","bathroom"],char:"🚿",fitzpatrick_scale:false,category:"objects"},bathtub:{keywords:["clean","shower","bathroom"],char:"🛁",fitzpatrick_scale:false,category:"objects"},soap:{keywords:["bar","bathing","cleaning","lather"],char:"🧼",fitzpatrick_scale:false,category:"objects"},sponge:{keywords:["absorbing","cleaning","porous"],char:"🧽",fitzpatrick_scale:false,category:"objects"},lotion_bottle:{keywords:["moisturizer","sunscreen"],char:"🧴",fitzpatrick_scale:false,category:"objects"},key:{keywords:["lock","door","password"],char:"🔑",fitzpatrick_scale:false,category:"objects"},old_key:{keywords:["lock","door","password"],char:"🗝",fitzpatrick_scale:false,category:"objects"},couch_and_lamp:{keywords:["read","chill"],char:"🛋",fitzpatrick_scale:false,category:"objects"},sleeping_bed:{keywords:["bed","rest"],char:"🛌",fitzpatrick_scale:true,category:"objects"},bed:{keywords:["sleep","rest"],char:"🛏",fitzpatrick_scale:false,category:"objects"},door:{keywords:["house","entry","exit"],char:"🚪",fitzpatrick_scale:false,category:"objects"},bellhop_bell:{keywords:["service"],char:"🛎",fitzpatrick_scale:false,category:"objects"},teddy_bear:{keywords:["plush","stuffed"],char:"🧸",fitzpatrick_scale:false,category:"objects"},framed_picture:{keywords:["photography"],char:"🖼",fitzpatrick_scale:false,category:"objects"},world_map:{keywords:["location","direction"],char:"🗺",fitzpatrick_scale:false,category:"objects"},parasol_on_ground:{keywords:["weather","summer"],char:"⛱",fitzpatrick_scale:false,category:"objects"},moyai:{keywords:["rock","easter island","moai"],char:"🗿",fitzpatrick_scale:false,category:"objects"},shopping:{keywords:["mall","buy","purchase"],char:"🛍",fitzpatrick_scale:false,category:"objects"},shopping_cart:{keywords:["trolley"],char:"🛒",fitzpatrick_scale:false,category:"objects"},balloon:{keywords:["party","celebration","birthday","circus"],char:"🎈",fitzpatrick_scale:false,category:"objects"},flags:{keywords:["fish","japanese","koinobori","carp","banner"],char:"🎏",fitzpatrick_scale:false,category:"objects"},ribbon:{keywords:["decoration","pink","girl","bowtie"],char:"🎀",fitzpatrick_scale:false,category:"objects"},gift:{keywords:["present","birthday","christmas","xmas"],char:"🎁",fitzpatrick_scale:false,category:"objects"},confetti_ball:{keywords:["festival","party","birthday","circus"],char:"🎊",fitzpatrick_scale:false,category:"objects"},tada:{keywords:["party","congratulations","birthday","magic","circus","celebration"],char:"🎉",fitzpatrick_scale:false,category:"objects"},dolls:{keywords:["japanese","toy","kimono"],char:"🎎",fitzpatrick_scale:false,category:"objects"},wind_chime:{keywords:["nature","ding","spring","bell"],char:"🎐",fitzpatrick_scale:false,category:"objects"},crossed_flags:{keywords:["japanese","nation","country","border"],char:"🎌",fitzpatrick_scale:false,category:"objects"},izakaya_lantern:{keywords:["light","paper","halloween","spooky"],char:"🏮",fitzpatrick_scale:false,category:"objects"},red_envelope:{keywords:["gift"],char:"🧧",fitzpatrick_scale:false,category:"objects"},email:{keywords:["letter","postal","inbox","communication"],char:"✉️",fitzpatrick_scale:false,category:"objects"},envelope_with_arrow:{keywords:["email","communication"],char:"📩",fitzpatrick_scale:false,category:"objects"},incoming_envelope:{keywords:["email","inbox"],char:"📨",fitzpatrick_scale:false,category:"objects"},"e-mail":{keywords:["communication","inbox"],char:"📧",fitzpatrick_scale:false,category:"objects"},love_letter:{keywords:["email","like","affection","envelope","valentines"],char:"💌",fitzpatrick_scale:false,category:"objects"},postbox:{keywords:["email","letter","envelope"],char:"📮",fitzpatrick_scale:false,category:"objects"},mailbox_closed:{keywords:["email","communication","inbox"],char:"📪",fitzpatrick_scale:false,category:"objects"},mailbox:{keywords:["email","inbox","communication"],char:"📫",fitzpatrick_scale:false,category:"objects"},mailbox_with_mail:{keywords:["email","inbox","communication"],char:"📬",fitzpatrick_scale:false,category:"objects"},mailbox_with_no_mail:{keywords:["email","inbox"],char:"📭",fitzpatrick_scale:false,category:"objects"},package:{keywords:["mail","gift","cardboard","box","moving"],char:"📦",fitzpatrick_scale:false,category:"objects"},postal_horn:{keywords:["instrument","music"],char:"📯",fitzpatrick_scale:false,category:"objects"},inbox_tray:{keywords:["email","documents"],char:"📥",fitzpatrick_scale:false,category:"objects"},outbox_tray:{keywords:["inbox","email"],char:"📤",fitzpatrick_scale:false,category:"objects"},scroll:{keywords:["documents","ancient","history","paper"],char:"📜",fitzpatrick_scale:false,category:"objects"},page_with_curl:{keywords:["documents","office","paper"],char:"📃",fitzpatrick_scale:false,category:"objects"},bookmark_tabs:{keywords:["favorite","save","order","tidy"],char:"📑",fitzpatrick_scale:false,category:"objects"},receipt:{keywords:["accounting","expenses"],char:"🧾",fitzpatrick_scale:false,category:"objects"},bar_chart:{keywords:["graph","presentation","stats"],char:"📊",fitzpatrick_scale:false,category:"objects"},chart_with_upwards_trend:{keywords:["graph","presentation","stats","recovery","business","economics","money","sales","good","success"],char:"📈",fitzpatrick_scale:false,category:"objects"},chart_with_downwards_trend:{keywords:["graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],char:"📉",fitzpatrick_scale:false,category:"objects"},page_facing_up:{keywords:["documents","office","paper","information"],char:"📄",fitzpatrick_scale:false,category:"objects"},date:{keywords:["calendar","schedule"],char:"📅",fitzpatrick_scale:false,category:"objects"},calendar:{keywords:["schedule","date","planning"],char:"📆",fitzpatrick_scale:false,category:"objects"},spiral_calendar:{keywords:["date","schedule","planning"],char:"🗓",fitzpatrick_scale:false,category:"objects"},card_index:{keywords:["business","stationery"],char:"📇",fitzpatrick_scale:false,category:"objects"},card_file_box:{keywords:["business","stationery"],char:"🗃",fitzpatrick_scale:false,category:"objects"},ballot_box:{keywords:["election","vote"],char:"🗳",fitzpatrick_scale:false,category:"objects"},file_cabinet:{keywords:["filing","organizing"],char:"🗄",fitzpatrick_scale:false,category:"objects"},clipboard:{keywords:["stationery","documents"],char:"📋",fitzpatrick_scale:false,category:"objects"},spiral_notepad:{keywords:["memo","stationery"],char:"🗒",fitzpatrick_scale:false,category:"objects"},file_folder:{keywords:["documents","business","office"],char:"📁",fitzpatrick_scale:false,category:"objects"},open_file_folder:{keywords:["documents","load"],char:"📂",fitzpatrick_scale:false,category:"objects"},card_index_dividers:{keywords:["organizing","business","stationery"],char:"🗂",fitzpatrick_scale:false,category:"objects"},newspaper_roll:{keywords:["press","headline"],char:"🗞",fitzpatrick_scale:false,category:"objects"},newspaper:{keywords:["press","headline"],char:"📰",fitzpatrick_scale:false,category:"objects"},notebook:{keywords:["stationery","record","notes","paper","study"],char:"📓",fitzpatrick_scale:false,category:"objects"},closed_book:{keywords:["read","library","knowledge","textbook","learn"],char:"📕",fitzpatrick_scale:false,category:"objects"},green_book:{keywords:["read","library","knowledge","study"],char:"📗",fitzpatrick_scale:false,category:"objects"},blue_book:{keywords:["read","library","knowledge","learn","study"],char:"📘",fitzpatrick_scale:false,category:"objects"},orange_book:{keywords:["read","library","knowledge","textbook","study"],char:"📙",fitzpatrick_scale:false,category:"objects"},notebook_with_decorative_cover:{keywords:["classroom","notes","record","paper","study"],char:"📔",fitzpatrick_scale:false,category:"objects"},ledger:{keywords:["notes","paper"],char:"📒",fitzpatrick_scale:false,category:"objects"},books:{keywords:["literature","library","study"],char:"📚",fitzpatrick_scale:false,category:"objects"},open_book:{keywords:["book","read","library","knowledge","literature","learn","study"],char:"📖",fitzpatrick_scale:false,category:"objects"},safety_pin:{keywords:["diaper"],char:"🧷",fitzpatrick_scale:false,category:"objects"},link:{keywords:["rings","url"],char:"🔗",fitzpatrick_scale:false,category:"objects"},paperclip:{keywords:["documents","stationery"],char:"📎",fitzpatrick_scale:false,category:"objects"},paperclips:{keywords:["documents","stationery"],char:"🖇",fitzpatrick_scale:false,category:"objects"},scissors:{keywords:["stationery","cut"],char:"✂️",fitzpatrick_scale:false,category:"objects"},triangular_ruler:{keywords:["stationery","math","architect","sketch"],char:"📐",fitzpatrick_scale:false,category:"objects"},straight_ruler:{keywords:["stationery","calculate","length","math","school","drawing","architect","sketch"],char:"📏",fitzpatrick_scale:false,category:"objects"},abacus:{keywords:["calculation"],char:"🧮",fitzpatrick_scale:false,category:"objects"},pushpin:{keywords:["stationery","mark","here"],char:"📌",fitzpatrick_scale:false,category:"objects"},round_pushpin:{keywords:["stationery","location","map","here"],char:"📍",fitzpatrick_scale:false,category:"objects"},triangular_flag_on_post:{keywords:["mark","milestone","place"],char:"🚩",fitzpatrick_scale:false,category:"objects"},white_flag:{keywords:["losing","loser","lost","surrender","give up","fail"],char:"🏳",fitzpatrick_scale:false,category:"objects"},black_flag:{keywords:["pirate"],char:"🏴",fitzpatrick_scale:false,category:"objects"},rainbow_flag:{keywords:["flag","rainbow","pride","gay","lgbt","glbt","queer","homosexual","lesbian","bisexual","transgender"],char:"🏳️‍🌈",fitzpatrick_scale:false,category:"objects"},closed_lock_with_key:{keywords:["security","privacy"],char:"🔐",fitzpatrick_scale:false,category:"objects"},lock:{keywords:["security","password","padlock"],char:"🔒",fitzpatrick_scale:false,category:"objects"},unlock:{keywords:["privacy","security"],char:"🔓",fitzpatrick_scale:false,category:"objects"},lock_with_ink_pen:{keywords:["security","secret"],char:"🔏",fitzpatrick_scale:false,category:"objects"},pen:{keywords:["stationery","writing","write"],char:"🖊",fitzpatrick_scale:false,category:"objects"},fountain_pen:{keywords:["stationery","writing","write"],char:"🖋",fitzpatrick_scale:false,category:"objects"},black_nib:{keywords:["pen","stationery","writing","write"],char:"✒️",fitzpatrick_scale:false,category:"objects"},memo:{keywords:["write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],char:"📝",fitzpatrick_scale:false,category:"objects"},pencil2:{keywords:["stationery","write","paper","writing","school","study"],char:"✏️",fitzpatrick_scale:false,category:"objects"},crayon:{keywords:["drawing","creativity"],char:"🖍",fitzpatrick_scale:false,category:"objects"},paintbrush:{keywords:["drawing","creativity","art"],char:"🖌",fitzpatrick_scale:false,category:"objects"},mag:{keywords:["Buscar","zoom","find","detective"],char:"🔍",fitzpatrick_scale:false,category:"objects"},mag_right:{keywords:["Buscar","zoom","find","detective"],char:"🔎",fitzpatrick_scale:false,category:"objects"},heart:{keywords:["love","like","valentines"],char:"❤️",fitzpatrick_scale:false,category:"symbols"},orange_heart:{keywords:["love","like","affection","valentines"],char:"🧡",fitzpatrick_scale:false,category:"symbols"},yellow_heart:{keywords:["love","like","affection","valentines"],char:"💛",fitzpatrick_scale:false,category:"symbols"},green_heart:{keywords:["love","like","affection","valentines"],char:"💚",fitzpatrick_scale:false,category:"symbols"},blue_heart:{keywords:["love","like","affection","valentines"],char:"💙",fitzpatrick_scale:false,category:"symbols"},purple_heart:{keywords:["love","like","affection","valentines"],char:"💜",fitzpatrick_scale:false,category:"symbols"},black_heart:{keywords:["evil"],char:"🖤",fitzpatrick_scale:false,category:"symbols"},broken_heart:{keywords:["sad","sorry","break","heart","heartbreak"],char:"💔",fitzpatrick_scale:false,category:"symbols"},heavy_heart_exclamation:{keywords:["decoration","love"],char:"❣",fitzpatrick_scale:false,category:"symbols"},two_hearts:{keywords:["love","like","affection","valentines","heart"],char:"💕",fitzpatrick_scale:false,category:"symbols"},revolving_hearts:{keywords:["love","like","affection","valentines"],char:"💞",fitzpatrick_scale:false,category:"symbols"},heartbeat:{keywords:["love","like","affection","valentines","pink","heart"],char:"💓",fitzpatrick_scale:false,category:"symbols"},heartpulse:{keywords:["like","love","affection","valentines","pink"],char:"💗",fitzpatrick_scale:false,category:"symbols"},sparkling_heart:{keywords:["love","like","affection","valentines"],char:"💖",fitzpatrick_scale:false,category:"symbols"},cupid:{keywords:["love","like","heart","affection","valentines"],char:"💘",fitzpatrick_scale:false,category:"symbols"},gift_heart:{keywords:["love","valentines"],char:"💝",fitzpatrick_scale:false,category:"symbols"},heart_decoration:{keywords:["purple-square","love","like"],char:"💟",fitzpatrick_scale:false,category:"symbols"},peace_symbol:{keywords:["hippie"],char:"☮",fitzpatrick_scale:false,category:"symbols"},latin_cross:{keywords:["christianity"],char:"✝",fitzpatrick_scale:false,category:"symbols"},star_and_crescent:{keywords:["islam"],char:"☪",fitzpatrick_scale:false,category:"symbols"},om:{keywords:["hinduism","buddhism","sikhism","jainism"],char:"🕉",fitzpatrick_scale:false,category:"symbols"},wheel_of_dharma:{keywords:["hinduism","buddhism","sikhism","jainism"],char:"☸",fitzpatrick_scale:false,category:"symbols"},star_of_david:{keywords:["judaism"],char:"✡",fitzpatrick_scale:false,category:"symbols"},six_pointed_star:{keywords:["purple-square","religion","jewish","hexagram"],char:"🔯",fitzpatrick_scale:false,category:"symbols"},menorah:{keywords:["hanukkah","candles","jewish"],char:"🕎",fitzpatrick_scale:false,category:"symbols"},yin_yang:{keywords:["balance"],char:"☯",fitzpatrick_scale:false,category:"symbols"},orthodox_cross:{keywords:["suppedaneum","religion"],char:"☦",fitzpatrick_scale:false,category:"symbols"},place_of_worship:{keywords:["religion","church","temple","prayer"],char:"🛐",fitzpatrick_scale:false,category:"symbols"},ophiuchus:{keywords:["sign","purple-square","constellation","astrology"],char:"⛎",fitzpatrick_scale:false,category:"symbols"},aries:{keywords:["sign","purple-square","zodiac","astrology"],char:"♈",fitzpatrick_scale:false,category:"symbols"},taurus:{keywords:["purple-square","sign","zodiac","astrology"],char:"♉",fitzpatrick_scale:false,category:"symbols"},gemini:{keywords:["sign","zodiac","purple-square","astrology"],char:"♊",fitzpatrick_scale:false,category:"symbols"},cancer:{keywords:["sign","zodiac","purple-square","astrology"],char:"♋",fitzpatrick_scale:false,category:"symbols"},leo:{keywords:["sign","purple-square","zodiac","astrology"],char:"♌",fitzpatrick_scale:false,category:"symbols"},virgo:{keywords:["sign","zodiac","purple-square","astrology"],char:"♍",fitzpatrick_scale:false,category:"symbols"},libra:{keywords:["sign","purple-square","zodiac","astrology"],char:"♎",fitzpatrick_scale:false,category:"symbols"},scorpius:{keywords:["sign","zodiac","purple-square","astrology","scorpio"],char:"♏",fitzpatrick_scale:false,category:"symbols"},sagittarius:{keywords:["sign","zodiac","purple-square","astrology"],char:"♐",fitzpatrick_scale:false,category:"symbols"},capricorn:{keywords:["sign","zodiac","purple-square","astrology"],char:"♑",fitzpatrick_scale:false,category:"symbols"},aquarius:{keywords:["sign","purple-square","zodiac","astrology"],char:"♒",fitzpatrick_scale:false,category:"symbols"},pisces:{keywords:["purple-square","sign","zodiac","astrology"],char:"♓",fitzpatrick_scale:false,category:"symbols"},id:{keywords:["purple-square","words"],char:"🆔",fitzpatrick_scale:false,category:"symbols"},atom_symbol:{keywords:["science","physics","chemistry"],char:"⚛",fitzpatrick_scale:false,category:"symbols"},u7a7a:{keywords:["kanji","japanese","chinese","empty","sky","blue-square"],char:"🈳",fitzpatrick_scale:false,category:"symbols"},u5272:{keywords:["cut","divide","chinese","kanji","pink-square"],char:"🈹",fitzpatrick_scale:false,category:"symbols"},radioactive:{keywords:["nuclear","danger"],char:"☢",fitzpatrick_scale:false,category:"symbols"},biohazard:{keywords:["danger"],char:"☣",fitzpatrick_scale:false,category:"symbols"},mobile_phone_off:{keywords:["mute","orange-square","silence","quiet"],char:"📴",fitzpatrick_scale:false,category:"symbols"},vibration_mode:{keywords:["orange-square","phone"],char:"📳",fitzpatrick_scale:false,category:"symbols"},u6709:{keywords:["orange-square","chinese","have","kanji"],char:"🈶",fitzpatrick_scale:false,category:"symbols"},u7121:{keywords:["nothing","chinese","kanji","japanese","orange-square"],char:"🈚",fitzpatrick_scale:false,category:"symbols"},u7533:{keywords:["chinese","japanese","kanji","orange-square"],char:"🈸",fitzpatrick_scale:false,category:"symbols"},u55b6:{keywords:["japanese","opening hours","orange-square"],char:"🈺",fitzpatrick_scale:false,category:"symbols"},u6708:{keywords:["chinese","month","moon","japanese","orange-square","kanji"],char:"🈷️",fitzpatrick_scale:false,category:"symbols"},eight_pointed_black_star:{keywords:["orange-square","shape","polygon"],char:"✴️",fitzpatrick_scale:false,category:"symbols"},vs:{keywords:["words","orange-square"],char:"🆚",fitzpatrick_scale:false,category:"symbols"},accept:{keywords:["ok","good","chinese","kanji","agree","yes","orange-circle"],char:"🉑",fitzpatrick_scale:false,category:"symbols"},white_flower:{keywords:["japanese","spring"],char:"💮",fitzpatrick_scale:false,category:"symbols"},ideograph_advantage:{keywords:["chinese","kanji","obtain","get","circle"],char:"🉐",fitzpatrick_scale:false,category:"symbols"},secret:{keywords:["privacy","chinese","sshh","kanji","red-circle"],char:"㊙️",fitzpatrick_scale:false,category:"symbols"},congratulations:{keywords:["chinese","kanji","japanese","red-circle"],char:"㊗️",fitzpatrick_scale:false,category:"symbols"},u5408:{keywords:["japanese","chinese","join","kanji","red-square"],char:"🈴",fitzpatrick_scale:false,category:"symbols"},u6e80:{keywords:["full","chinese","japanese","red-square","kanji"],char:"🈵",fitzpatrick_scale:false,category:"symbols"},u7981:{keywords:["kanji","japanese","chinese","forbidden","limit","restricted","red-square"],char:"🈲",fitzpatrick_scale:false,category:"symbols"},a:{keywords:["red-square","alphabet","letter"],char:"🅰️",fitzpatrick_scale:false,category:"symbols"},b:{keywords:["red-square","alphabet","letter"],char:"🅱️",fitzpatrick_scale:false,category:"symbols"},ab:{keywords:["red-square","alphabet"],char:"🆎",fitzpatrick_scale:false,category:"symbols"},cl:{keywords:["alphabet","words","red-square"],char:"🆑",fitzpatrick_scale:false,category:"symbols"},o2:{keywords:["alphabet","red-square","letter"],char:"🅾️",fitzpatrick_scale:false,category:"symbols"},sos:{keywords:["help","red-square","words","emergency","911"],char:"🆘",fitzpatrick_scale:false,category:"symbols"},no_entry:{keywords:["limit","security","privacy","bad","denied","stop","circle"],char:"⛔",fitzpatrick_scale:false,category:"symbols"},name_badge:{keywords:["fire","forbid"],char:"📛",fitzpatrick_scale:false,category:"symbols"},no_entry_sign:{keywords:["forbid","stop","limit","denied","disallow","circle"],char:"🚫",fitzpatrick_scale:false,category:"symbols"},x:{keywords:["no","delete","remove","cancel","red"],char:"❌",fitzpatrick_scale:false,category:"symbols"},o:{keywords:["circle","round"],char:"⭕",fitzpatrick_scale:false,category:"symbols"},stop_sign:{keywords:["stop"],char:"🛑",fitzpatrick_scale:false,category:"symbols"},anger:{keywords:["angry","mad"],char:"💢",fitzpatrick_scale:false,category:"symbols"},hotsprings:{keywords:["bath","warm","relax"],char:"♨️",fitzpatrick_scale:false,category:"symbols"},no_pedestrians:{keywords:["rules","crossing","walking","circle"],char:"🚷",fitzpatrick_scale:false,category:"symbols"},do_not_litter:{keywords:["trash","bin","garbage","circle"],char:"🚯",fitzpatrick_scale:false,category:"symbols"},no_bicycles:{keywords:["cyclist","prohibited","circle"],char:"🚳",fitzpatrick_scale:false,category:"symbols"},"non-potable_water":{keywords:["drink","faucet","tap","circle"],char:"🚱",fitzpatrick_scale:false,category:"symbols"},underage:{keywords:["18","drink","pub","night","minor","circle"],char:"🔞",fitzpatrick_scale:false,category:"symbols"},no_mobile_phones:{keywords:["iphone","mute","circle"],char:"📵",fitzpatrick_scale:false,category:"symbols"},exclamation:{keywords:["heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],char:"❗",fitzpatrick_scale:false,category:"symbols"},grey_exclamation:{keywords:["surprise","punctuation","gray","wow","warning"],char:"❕",fitzpatrick_scale:false,category:"symbols"},question:{keywords:["doubt","confused"],char:"❓",fitzpatrick_scale:false,category:"symbols"},grey_question:{keywords:["doubts","gray","huh","confused"],char:"❔",fitzpatrick_scale:false,category:"symbols"},bangbang:{keywords:["exclamation","surprise"],char:"‼️",fitzpatrick_scale:false,category:"symbols"},interrobang:{keywords:["wat","punctuation","surprise"],char:"⁉️",fitzpatrick_scale:false,category:"symbols"},100:{keywords:["score","perfect","numbers","century","exam","quiz","test","pass","hundred"],char:"💯",fitzpatrick_scale:false,category:"symbols"},low_brightness:{keywords:["sun","afternoon","warm","summer"],char:"🔅",fitzpatrick_scale:false,category:"symbols"},high_brightness:{keywords:["sun","light"],char:"🔆",fitzpatrick_scale:false,category:"symbols"},trident:{keywords:["weapon","spear"],char:"🔱",fitzpatrick_scale:false,category:"symbols"},fleur_de_lis:{keywords:["decorative","scout"],char:"⚜",fitzpatrick_scale:false,category:"symbols"},part_alternation_mark:{keywords:["graph","presentation","stats","business","economics","bad"],char:"〽️",fitzpatrick_scale:false,category:"symbols"},warning:{keywords:["exclamation","wip","alert","error","problem","issue"],char:"⚠️",fitzpatrick_scale:false,category:"symbols"},children_crossing:{keywords:["school","warning","danger","sign","driving","yellow-diamond"],char:"🚸",fitzpatrick_scale:false,category:"symbols"},beginner:{keywords:["badge","shield"],char:"🔰",fitzpatrick_scale:false,category:"symbols"},recycle:{keywords:["arrow","environment","garbage","trash"],char:"♻️",fitzpatrick_scale:false,category:"symbols"},u6307:{keywords:["chinese","point","green-square","kanji"],char:"🈯",fitzpatrick_scale:false,category:"symbols"},chart:{keywords:["green-square","graph","presentation","stats"],char:"💹",fitzpatrick_scale:false,category:"symbols"},sparkle:{keywords:["stars","green-square","awesome","good","fireworks"],char:"❇️",fitzpatrick_scale:false,category:"symbols"},eight_spoked_asterisk:{keywords:["star","sparkle","green-square"],char:"✳️",fitzpatrick_scale:false,category:"symbols"},negative_squared_cross_mark:{keywords:["x","green-square","no","deny"],char:"❎",fitzpatrick_scale:false,category:"symbols"},white_check_mark:{keywords:["green-square","ok","agree","vote","election","answer","tick"],char:"✅",fitzpatrick_scale:false,category:"symbols"},diamond_shape_with_a_dot_inside:{keywords:["jewel","blue","gem","crystal","fancy"],char:"💠",fitzpatrick_scale:false,category:"symbols"},cyclone:{keywords:["weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],char:"🌀",fitzpatrick_scale:false,category:"symbols"},loop:{keywords:["tape","cassette"],char:"➿",fitzpatrick_scale:false,category:"symbols"},globe_with_meridians:{keywords:["earth","international","world","internet","interweb","i18n"],char:"🌐",fitzpatrick_scale:false,category:"symbols"},m:{keywords:["alphabet","blue-circle","letter"],char:"Ⓜ️",fitzpatrick_scale:false,category:"symbols"},atm:{keywords:["money","sales","cash","blue-square","payment","bank"],char:"🏧",fitzpatrick_scale:false,category:"symbols"},sa:{keywords:["japanese","blue-square","katakana"],char:"🈂️",fitzpatrick_scale:false,category:"symbols"},passport_control:{keywords:["custom","blue-square"],char:"🛂",fitzpatrick_scale:false,category:"symbols"},customs:{keywords:["passport","border","blue-square"],char:"🛃",fitzpatrick_scale:false,category:"symbols"},baggage_claim:{keywords:["blue-square","airport","transport"],char:"🛄",fitzpatrick_scale:false,category:"symbols"},left_luggage:{keywords:["blue-square","travel"],char:"🛅",fitzpatrick_scale:false,category:"symbols"},wheelchair:{keywords:["blue-square","disabled","a11y","accessibility"],char:"♿",fitzpatrick_scale:false,category:"symbols"},no_smoking:{keywords:["cigarette","blue-square","smell","smoke"],char:"🚭",fitzpatrick_scale:false,category:"symbols"},wc:{keywords:["toilet","restroom","blue-square"],char:"🚾",fitzpatrick_scale:false,category:"symbols"},parking:{keywords:["cars","blue-square","alphabet","letter"],char:"🅿️",fitzpatrick_scale:false,category:"symbols"},potable_water:{keywords:["blue-square","liquid","restroom","cleaning","faucet"],char:"🚰",fitzpatrick_scale:false,category:"symbols"},mens:{keywords:["toilet","restroom","wc","blue-square","gender","male"],char:"🚹",fitzpatrick_scale:false,category:"symbols"},womens:{keywords:["purple-square","woman","female","toilet","loo","restroom","gender"],char:"🚺",fitzpatrick_scale:false,category:"symbols"},baby_symbol:{keywords:["orange-square","child"],char:"🚼",fitzpatrick_scale:false,category:"symbols"},restroom:{keywords:["blue-square","toilet","refresh","wc","gender"],char:"🚻",fitzpatrick_scale:false,category:"symbols"},put_litter_in_its_place:{keywords:["blue-square","sign","human","info"],char:"🚮",fitzpatrick_scale:false,category:"symbols"},cinema:{keywords:["blue-square","record","film","movie","curtain","stage","theater"],char:"🎦",fitzpatrick_scale:false,category:"symbols"},signal_strength:{keywords:["blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],char:"📶",fitzpatrick_scale:false,category:"symbols"},koko:{keywords:["blue-square","here","katakana","japanese","destination"],char:"🈁",fitzpatrick_scale:false,category:"symbols"},ng:{keywords:["blue-square","words","shape","icon"],char:"🆖",fitzpatrick_scale:false,category:"symbols"},ok:{keywords:["good","agree","yes","blue-square"],char:"🆗",fitzpatrick_scale:false,category:"symbols"},up:{keywords:["blue-square","above","high"],char:"🆙",fitzpatrick_scale:false,category:"symbols"},cool:{keywords:["words","blue-square"],char:"🆒",fitzpatrick_scale:false,category:"symbols"},new:{keywords:["blue-square","words","start"],char:"🆕",fitzpatrick_scale:false,category:"symbols"},free:{keywords:["blue-square","words"],char:"🆓",fitzpatrick_scale:false,category:"symbols"},zero:{keywords:["0","numbers","blue-square","null"],char:"0️⃣",fitzpatrick_scale:false,category:"symbols"},one:{keywords:["blue-square","numbers","1"],char:"1️⃣",fitzpatrick_scale:false,category:"symbols"},two:{keywords:["numbers","2","prime","blue-square"],char:"2️⃣",fitzpatrick_scale:false,category:"symbols"},three:{keywords:["3","numbers","prime","blue-square"],char:"3️⃣",fitzpatrick_scale:false,category:"symbols"},four:{keywords:["4","numbers","blue-square"],char:"4️⃣",fitzpatrick_scale:false,category:"symbols"},five:{keywords:["5","numbers","blue-square","prime"],char:"5️⃣",fitzpatrick_scale:false,category:"symbols"},six:{keywords:["6","numbers","blue-square"],char:"6️⃣",fitzpatrick_scale:false,category:"symbols"},seven:{keywords:["7","numbers","blue-square","prime"],char:"7️⃣",fitzpatrick_scale:false,category:"symbols"},eight:{keywords:["8","blue-square","numbers"],char:"8️⃣",fitzpatrick_scale:false,category:"symbols"},nine:{keywords:["blue-square","numbers","9"],char:"9️⃣",fitzpatrick_scale:false,category:"symbols"},keycap_ten:{keywords:["numbers","10","blue-square"],char:"🔟",fitzpatrick_scale:false,category:"symbols"},asterisk:{keywords:["star","keycap"],char:"*⃣",fitzpatrick_scale:false,category:"symbols"},1234:{keywords:["numbers","blue-square"],char:"🔢",fitzpatrick_scale:false,category:"symbols"},eject_button:{keywords:["blue-square"],char:"⏏️",fitzpatrick_scale:false,category:"symbols"},arrow_forward:{keywords:["blue-square","right","direction","play"],char:"▶️",fitzpatrick_scale:false,category:"symbols"},pause_button:{keywords:["pause","blue-square"],char:"⏸",fitzpatrick_scale:false,category:"symbols"},next_track_button:{keywords:["forward","next","blue-square"],char:"⏭",fitzpatrick_scale:false,category:"symbols"},stop_button:{keywords:["blue-square"],char:"⏹",fitzpatrick_scale:false,category:"symbols"},record_button:{keywords:["blue-square"],char:"⏺",fitzpatrick_scale:false,category:"symbols"},play_or_pause_button:{keywords:["blue-square","play","pause"],char:"⏯",fitzpatrick_scale:false,category:"symbols"},previous_track_button:{keywords:["backward"],char:"⏮",fitzpatrick_scale:false,category:"symbols"},fast_forward:{keywords:["blue-square","play","speed","continue"],char:"⏩",fitzpatrick_scale:false,category:"symbols"},rewind:{keywords:["play","blue-square"],char:"⏪",fitzpatrick_scale:false,category:"symbols"},twisted_rightwards_arrows:{keywords:["blue-square","shuffle","music","random"],char:"🔀",fitzpatrick_scale:false,category:"symbols"},repeat:{keywords:["loop","record"],char:"🔁",fitzpatrick_scale:false,category:"symbols"},repeat_one:{keywords:["blue-square","loop"],char:"🔂",fitzpatrick_scale:false,category:"symbols"},arrow_backward:{keywords:["blue-square","left","direction"],char:"◀️",fitzpatrick_scale:false,category:"symbols"},arrow_up_small:{keywords:["blue-square","triangle","direction","point","forward","top"],char:"🔼",fitzpatrick_scale:false,category:"symbols"},arrow_down_small:{keywords:["blue-square","direction","bottom"],char:"🔽",fitzpatrick_scale:false,category:"symbols"},arrow_double_up:{keywords:["blue-square","direction","top"],char:"⏫",fitzpatrick_scale:false,category:"symbols"},arrow_double_down:{keywords:["blue-square","direction","bottom"],char:"⏬",fitzpatrick_scale:false,category:"symbols"},arrow_right:{keywords:["blue-square","next"],char:"➡️",fitzpatrick_scale:false,category:"symbols"},arrow_left:{keywords:["blue-square","previous","back"],char:"⬅️",fitzpatrick_scale:false,category:"symbols"},arrow_up:{keywords:["blue-square","continue","top","direction"],char:"⬆️",fitzpatrick_scale:false,category:"symbols"},arrow_down:{keywords:["blue-square","direction","bottom"],char:"⬇️",fitzpatrick_scale:false,category:"symbols"},arrow_upper_right:{keywords:["blue-square","point","direction","diagonal","northeast"],char:"↗️",fitzpatrick_scale:false,category:"symbols"},arrow_lower_right:{keywords:["blue-square","direction","diagonal","southeast"],char:"↘️",fitzpatrick_scale:false,category:"symbols"},arrow_lower_left:{keywords:["blue-square","direction","diagonal","southwest"],char:"↙️",fitzpatrick_scale:false,category:"symbols"},arrow_upper_left:{keywords:["blue-square","point","direction","diagonal","northwest"],char:"↖️",fitzpatrick_scale:false,category:"symbols"},arrow_up_down:{keywords:["blue-square","direction","way","vertical"],char:"↕️",fitzpatrick_scale:false,category:"symbols"},left_right_arrow:{keywords:["shape","direction","horizontal","sideways"],char:"↔️",fitzpatrick_scale:false,category:"symbols"},arrows_counterclockwise:{keywords:["blue-square","sync","cycle"],char:"🔄",fitzpatrick_scale:false,category:"symbols"},arrow_right_hook:{keywords:["blue-square","return","rotate","direction"],char:"↪️",fitzpatrick_scale:false,category:"symbols"},leftwards_arrow_with_hook:{keywords:["back","return","blue-square","undo","enter"],char:"↩️",fitzpatrick_scale:false,category:"symbols"},arrow_heading_up:{keywords:["blue-square","direction","top"],char:"⤴️",fitzpatrick_scale:false,category:"symbols"},arrow_heading_down:{keywords:["blue-square","direction","bottom"],char:"⤵️",fitzpatrick_scale:false,category:"symbols"},hash:{keywords:["symbol","blue-square","twitter"],char:"#️⃣",fitzpatrick_scale:false,category:"symbols"},information_source:{keywords:["blue-square","alphabet","letter"],char:"ℹ️",fitzpatrick_scale:false,category:"symbols"},abc:{keywords:["blue-square","alphabet"],char:"🔤",fitzpatrick_scale:false,category:"symbols"},abcd:{keywords:["blue-square","alphabet"],char:"🔡",fitzpatrick_scale:false,category:"symbols"},capital_abcd:{keywords:["alphabet","words","blue-square"],char:"🔠",fitzpatrick_scale:false,category:"symbols"},symbols:{keywords:["blue-square","music","note","ampersand","percent","glyphs","characters"],char:"🔣",fitzpatrick_scale:false,category:"symbols"},musical_note:{keywords:["score","tone","sound"],char:"🎵",fitzpatrick_scale:false,category:"symbols"},notes:{keywords:["music","score"],char:"🎶",fitzpatrick_scale:false,category:"symbols"},wavy_dash:{keywords:["draw","line","moustache","mustache","squiggle","scribble"],char:"〰️",fitzpatrick_scale:false,category:"symbols"},curly_loop:{keywords:["scribble","draw","shape","squiggle"],char:"➰",fitzpatrick_scale:false,category:"symbols"},heavy_check_mark:{keywords:["ok","nike","answer","yes","tick"],char:"✔️",fitzpatrick_scale:false,category:"symbols"},arrows_clockwise:{keywords:["sync","cycle","round","repeat"],char:"🔃",fitzpatrick_scale:false,category:"symbols"},heavy_plus_sign:{keywords:["math","calculation","addition","more","increase"],char:"➕",fitzpatrick_scale:false,category:"symbols"},heavy_minus_sign:{keywords:["math","calculation","subtract","less"],char:"➖",fitzpatrick_scale:false,category:"symbols"},heavy_division_sign:{keywords:["divide","math","calculation"],char:"➗",fitzpatrick_scale:false,category:"symbols"},heavy_multiplication_x:{keywords:["math","calculation"],char:"✖️",fitzpatrick_scale:false,category:"symbols"},infinity:{keywords:["forever"],char:"♾",fitzpatrick_scale:false,category:"symbols"},heavy_dollar_sign:{keywords:["money","sales","payment","currency","buck"],char:"💲",fitzpatrick_scale:false,category:"symbols"},currency_exchange:{keywords:["money","sales","dollar","travel"],char:"💱",fitzpatrick_scale:false,category:"symbols"},copyright:{keywords:["ip","license","circle","law","legal"],char:"©️",fitzpatrick_scale:false,category:"symbols"},Registroed:{keywords:["alphabet","circle"],char:"®️",fitzpatrick_scale:false,category:"symbols"},tm:{keywords:["trademark","brand","law","legal"],char:"™️",fitzpatrick_scale:false,category:"symbols"},end:{keywords:["words","arrow"],char:"🔚",fitzpatrick_scale:false,category:"symbols"},back:{keywords:["arrow","words","return"],char:"🔙",fitzpatrick_scale:false,category:"symbols"},on:{keywords:["arrow","words"],char:"🔛",fitzpatrick_scale:false,category:"symbols"},top:{keywords:["words","blue-square"],char:"🔝",fitzpatrick_scale:false,category:"symbols"},soon:{keywords:["arrow","words"],char:"🔜",fitzpatrick_scale:false,category:"symbols"},ballot_box_with_check:{keywords:["ok","agree","confirm","black-square","vote","election","yes","tick"],char:"☑️",fitzpatrick_scale:false,category:"symbols"},radio_button:{keywords:["input","old","music","circle"],char:"🔘",fitzpatrick_scale:false,category:"symbols"},white_circle:{keywords:["shape","round"],char:"⚪",fitzpatrick_scale:false,category:"symbols"},black_circle:{keywords:["shape","button","round"],char:"⚫",fitzpatrick_scale:false,category:"symbols"},red_circle:{keywords:["shape","error","danger"],char:"🔴",fitzpatrick_scale:false,category:"symbols"},large_blue_circle:{keywords:["shape","icon","button"],char:"🔵",fitzpatrick_scale:false,category:"symbols"},small_orange_diamond:{keywords:["shape","jewel","gem"],char:"🔸",fitzpatrick_scale:false,category:"symbols"},small_blue_diamond:{keywords:["shape","jewel","gem"],char:"🔹",fitzpatrick_scale:false,category:"symbols"},large_orange_diamond:{keywords:["shape","jewel","gem"],char:"🔶",fitzpatrick_scale:false,category:"symbols"},large_blue_diamond:{keywords:["shape","jewel","gem"],char:"🔷",fitzpatrick_scale:false,category:"symbols"},small_red_triangle:{keywords:["shape","direction","up","top"],char:"🔺",fitzpatrick_scale:false,category:"symbols"},black_small_square:{keywords:["shape","icon"],char:"▪️",fitzpatrick_scale:false,category:"symbols"},white_small_square:{keywords:["shape","icon"],char:"▫️",fitzpatrick_scale:false,category:"symbols"},black_large_square:{keywords:["shape","icon","button"],char:"⬛",fitzpatrick_scale:false,category:"symbols"},white_large_square:{keywords:["shape","icon","stone","button"],char:"⬜",fitzpatrick_scale:false,category:"symbols"},small_red_triangle_down:{keywords:["shape","direction","bottom"],char:"🔻",fitzpatrick_scale:false,category:"symbols"},black_medium_square:{keywords:["shape","button","icon"],char:"◼️",fitzpatrick_scale:false,category:"symbols"},white_medium_square:{keywords:["shape","stone","icon"],char:"◻️",fitzpatrick_scale:false,category:"symbols"},black_medium_small_square:{keywords:["icon","shape","button"],char:"◾",fitzpatrick_scale:false,category:"symbols"},white_medium_small_square:{keywords:["shape","stone","icon","button"],char:"◽",fitzpatrick_scale:false,category:"symbols"},black_square_button:{keywords:["shape","input","frame"],char:"🔲",fitzpatrick_scale:false,category:"symbols"},white_square_button:{keywords:["shape","input"],char:"🔳",fitzpatrick_scale:false,category:"symbols"},speaker:{keywords:["sound","volume","silence","broadcast"],char:"🔈",fitzpatrick_scale:false,category:"symbols"},sound:{keywords:["volume","speaker","broadcast"],char:"🔉",fitzpatrick_scale:false,category:"symbols"},loud_sound:{keywords:["volume","noise","noisy","speaker","broadcast"],char:"🔊",fitzpatrick_scale:false,category:"symbols"},mute:{keywords:["sound","volume","silence","quiet"],char:"🔇",fitzpatrick_scale:false,category:"symbols"},mega:{keywords:["sound","speaker","volume"],char:"📣",fitzpatrick_scale:false,category:"symbols"},loudspeaker:{keywords:["volume","sound"],char:"📢",fitzpatrick_scale:false,category:"symbols"},bell:{keywords:["sound","notification","christmas","xmas","chime"],char:"🔔",fitzpatrick_scale:false,category:"symbols"},no_bell:{keywords:["sound","volume","mute","quiet","silent"],char:"🔕",fitzpatrick_scale:false,category:"symbols"},black_joker:{keywords:["poker","cards","game","play","magic"],char:"🃏",fitzpatrick_scale:false,category:"symbols"},mahjong:{keywords:["game","play","chinese","kanji"],char:"🀄",fitzpatrick_scale:false,category:"symbols"},spades:{keywords:["poker","cards","suits","magic"],char:"♠️",fitzpatrick_scale:false,category:"symbols"},clubs:{keywords:["poker","cards","magic","suits"],char:"♣️",fitzpatrick_scale:false,category:"symbols"},hearts:{keywords:["poker","cards","magic","suits"],char:"♥️",fitzpatrick_scale:false,category:"symbols"},diamonds:{keywords:["poker","cards","magic","suits"],char:"♦️",fitzpatrick_scale:false,category:"symbols"},flower_playing_cards:{keywords:["game","sunset","red"],char:"🎴",fitzpatrick_scale:false,category:"symbols"},thought_balloon:{keywords:["bubble","cloud","speech","thinking","dream"],char:"💭",fitzpatrick_scale:false,category:"symbols"},right_anger_bubble:{keywords:["caption","speech","thinking","mad"],char:"🗯",fitzpatrick_scale:false,category:"symbols"},speech_balloon:{keywords:["bubble","words","message","talk","chatting"],char:"💬",fitzpatrick_scale:false,category:"symbols"},left_speech_bubble:{keywords:["words","message","talk","chatting"],char:"🗨",fitzpatrick_scale:false,category:"symbols"},clock1:{keywords:["time","late","early","schedule"],char:"🕐",fitzpatrick_scale:false,category:"symbols"},clock2:{keywords:["time","late","early","schedule"],char:"🕑",fitzpatrick_scale:false,category:"symbols"},clock3:{keywords:["time","late","early","schedule"],char:"🕒",fitzpatrick_scale:false,category:"symbols"},clock4:{keywords:["time","late","early","schedule"],char:"🕓",fitzpatrick_scale:false,category:"symbols"},clock5:{keywords:["time","late","early","schedule"],char:"🕔",fitzpatrick_scale:false,category:"symbols"},clock6:{keywords:["time","late","early","schedule","dawn","dusk"],char:"🕕",fitzpatrick_scale:false,category:"symbols"},clock7:{keywords:["time","late","early","schedule"],char:"🕖",fitzpatrick_scale:false,category:"symbols"},clock8:{keywords:["time","late","early","schedule"],char:"🕗",fitzpatrick_scale:false,category:"symbols"},clock9:{keywords:["time","late","early","schedule"],char:"🕘",fitzpatrick_scale:false,category:"symbols"},clock10:{keywords:["time","late","early","schedule"],char:"🕙",fitzpatrick_scale:false,category:"symbols"},clock11:{keywords:["time","late","early","schedule"],char:"🕚",fitzpatrick_scale:false,category:"symbols"},clock12:{keywords:["time","noon","midnight","midday","late","early","schedule"],char:"🕛",fitzpatrick_scale:false,category:"symbols"},clock130:{keywords:["time","late","early","schedule"],char:"🕜",fitzpatrick_scale:false,category:"symbols"},clock230:{keywords:["time","late","early","schedule"],char:"🕝",fitzpatrick_scale:false,category:"symbols"},clock330:{keywords:["time","late","early","schedule"],char:"🕞",fitzpatrick_scale:false,category:"symbols"},clock430:{keywords:["time","late","early","schedule"],char:"🕟",fitzpatrick_scale:false,category:"symbols"},clock530:{keywords:["time","late","early","schedule"],char:"🕠",fitzpatrick_scale:false,category:"symbols"},clock630:{keywords:["time","late","early","schedule"],char:"🕡",fitzpatrick_scale:false,category:"symbols"},clock730:{keywords:["time","late","early","schedule"],char:"🕢",fitzpatrick_scale:false,category:"symbols"},clock830:{keywords:["time","late","early","schedule"],char:"🕣",fitzpatrick_scale:false,category:"symbols"},clock930:{keywords:["time","late","early","schedule"],char:"🕤",fitzpatrick_scale:false,category:"symbols"},clock1030:{keywords:["time","late","early","schedule"],char:"🕥",fitzpatrick_scale:false,category:"symbols"},clock1130:{keywords:["time","late","early","schedule"],char:"🕦",fitzpatrick_scale:false,category:"symbols"},clock1230:{keywords:["time","late","early","schedule"],char:"🕧",fitzpatrick_scale:false,category:"symbols"},afghanistan:{keywords:["af","flag","nation","country","banner"],char:"🇦🇫",fitzpatrick_scale:false,category:"flags"},aland_islands:{keywords:["Åland","islands","flag","nation","country","banner"],char:"🇦🇽",fitzpatrick_scale:false,category:"flags"},albania:{keywords:["al","flag","nation","country","banner"],char:"🇦🇱",fitzpatrick_scale:false,category:"flags"},algeria:{keywords:["dz","flag","nation","country","banner"],char:"🇩🇿",fitzpatrick_scale:false,category:"flags"},american_samoa:{keywords:["american","ws","flag","nation","country","banner"],char:"🇦🇸",fitzpatrick_scale:false,category:"flags"},andorra:{keywords:["ad","flag","nation","country","banner"],char:"🇦🇩",fitzpatrick_scale:false,category:"flags"},angola:{keywords:["ao","flag","nation","country","banner"],char:"🇦🇴",fitzpatrick_scale:false,category:"flags"},anguilla:{keywords:["ai","flag","nation","country","banner"],char:"🇦🇮",fitzpatrick_scale:false,category:"flags"},antarctica:{keywords:["aq","flag","nation","country","banner"],char:"🇦🇶",fitzpatrick_scale:false,category:"flags"},antigua_barbuda:{keywords:["antigua","barbuda","flag","nation","country","banner"],char:"🇦🇬",fitzpatrick_scale:false,category:"flags"},argentina:{keywords:["ar","flag","nation","country","banner"],char:"🇦🇷",fitzpatrick_scale:false,category:"flags"},armenia:{keywords:["am","flag","nation","country","banner"],char:"🇦🇲",fitzpatrick_scale:false,category:"flags"},aruba:{keywords:["aw","flag","nation","country","banner"],char:"🇦🇼",fitzpatrick_scale:false,category:"flags"},australia:{keywords:["au","flag","nation","country","banner"],char:"🇦🇺",fitzpatrick_scale:false,category:"flags"},austria:{keywords:["at","flag","nation","country","banner"],char:"🇦🇹",fitzpatrick_scale:false,category:"flags"},azerbaijan:{keywords:["az","flag","nation","country","banner"],char:"🇦🇿",fitzpatrick_scale:false,category:"flags"},bahamas:{keywords:["bs","flag","nation","country","banner"],char:"🇧🇸",fitzpatrick_scale:false,category:"flags"},bahrain:{keywords:["bh","flag","nation","country","banner"],char:"🇧🇭",fitzpatrick_scale:false,category:"flags"},bangladesh:{keywords:["bd","flag","nation","country","banner"],char:"🇧🇩",fitzpatrick_scale:false,category:"flags"},barbados:{keywords:["bb","flag","nation","country","banner"],char:"🇧🇧",fitzpatrick_scale:false,category:"flags"},belarus:{keywords:["by","flag","nation","country","banner"],char:"🇧🇾",fitzpatrick_scale:false,category:"flags"},belgium:{keywords:["be","flag","nation","country","banner"],char:"🇧🇪",fitzpatrick_scale:false,category:"flags"},belize:{keywords:["bz","flag","nation","country","banner"],char:"🇧🇿",fitzpatrick_scale:false,category:"flags"},benin:{keywords:["bj","flag","nation","country","banner"],char:"🇧🇯",fitzpatrick_scale:false,category:"flags"},bermuda:{keywords:["bm","flag","nation","country","banner"],char:"🇧🇲",fitzpatrick_scale:false,category:"flags"},bhutan:{keywords:["bt","flag","nation","country","banner"],char:"🇧🇹",fitzpatrick_scale:false,category:"flags"},bolivia:{keywords:["bo","flag","nation","country","banner"],char:"🇧🇴",fitzpatrick_scale:false,category:"flags"},caribbean_netherlands:{keywords:["bonaire","flag","nation","country","banner"],char:"🇧🇶",fitzpatrick_scale:false,category:"flags"},bosnia_herzegovina:{keywords:["bosnia","herzegovina","flag","nation","country","banner"],char:"🇧🇦",fitzpatrick_scale:false,category:"flags"},botswana:{keywords:["bw","flag","nation","country","banner"],char:"🇧🇼",fitzpatrick_scale:false,category:"flags"},brazil:{keywords:["br","flag","nation","country","banner"],char:"🇧🇷",fitzpatrick_scale:false,category:"flags"},british_indian_ocean_territory:{keywords:["british","indian","ocean","territory","flag","nation","country","banner"],char:"🇮🇴",fitzpatrick_scale:false,category:"flags"},british_virgin_islands:{keywords:["british","virgin","islands","bvi","flag","nation","country","banner"],char:"🇻🇬",fitzpatrick_scale:false,category:"flags"},brunei:{keywords:["bn","darussalam","flag","nation","country","banner"],char:"🇧🇳",fitzpatrick_scale:false,category:"flags"},bulgaria:{keywords:["bg","flag","nation","country","banner"],char:"🇧🇬",fitzpatrick_scale:false,category:"flags"},burkina_faso:{keywords:["burkina","faso","flag","nation","country","banner"],char:"🇧🇫",fitzpatrick_scale:false,category:"flags"},burundi:{keywords:["bi","flag","nation","country","banner"],char:"🇧🇮",fitzpatrick_scale:false,category:"flags"},cape_verde:{keywords:["cabo","verde","flag","nation","country","banner"],char:"🇨🇻",fitzpatrick_scale:false,category:"flags"},cambodia:{keywords:["kh","flag","nation","country","banner"],char:"🇰🇭",fitzpatrick_scale:false,category:"flags"},cameroon:{keywords:["cm","flag","nation","country","banner"],char:"🇨🇲",fitzpatrick_scale:false,category:"flags"},canada:{keywords:["ca","flag","nation","country","banner"],char:"🇨🇦",fitzpatrick_scale:false,category:"flags"},canary_islands:{keywords:["canary","islands","flag","nation","country","banner"],char:"🇮🇨",fitzpatrick_scale:false,category:"flags"},cayman_islands:{keywords:["cayman","islands","flag","nation","country","banner"],char:"🇰🇾",fitzpatrick_scale:false,category:"flags"},central_african_republic:{keywords:["central","african","republic","flag","nation","country","banner"],char:"🇨🇫",fitzpatrick_scale:false,category:"flags"},chad:{keywords:["td","flag","nation","country","banner"],char:"🇹🇩",fitzpatrick_scale:false,category:"flags"},chile:{keywords:["flag","nation","country","banner"],char:"🇨🇱",fitzpatrick_scale:false,category:"flags"},cn:{keywords:["china","chinese","prc","flag","country","nation","banner"],char:"🇨🇳",fitzpatrick_scale:false,category:"flags"},christmas_island:{keywords:["christmas","island","flag","nation","country","banner"],char:"🇨🇽",fitzpatrick_scale:false,category:"flags"},cocos_islands:{keywords:["cocos","keeling","islands","flag","nation","country","banner"],char:"🇨🇨",fitzpatrick_scale:false,category:"flags"},colombia:{keywords:["co","flag","nation","country","banner"],char:"🇨🇴",fitzpatrick_scale:false,category:"flags"},comoros:{keywords:["km","flag","nation","country","banner"],char:"🇰🇲",fitzpatrick_scale:false,category:"flags"},congo_brazzaville:{keywords:["congo","flag","nation","country","banner"],char:"🇨🇬",fitzpatrick_scale:false,category:"flags"},congo_kinshasa:{keywords:["congo","democratic","republic","flag","nation","country","banner"],char:"🇨🇩",fitzpatrick_scale:false,category:"flags"},cook_islands:{keywords:["cook","islands","flag","nation","country","banner"],char:"🇨🇰",fitzpatrick_scale:false,category:"flags"},costa_rica:{keywords:["costa","rica","flag","nation","country","banner"],char:"🇨🇷",fitzpatrick_scale:false,category:"flags"},croatia:{keywords:["hr","flag","nation","country","banner"],char:"🇭🇷",fitzpatrick_scale:false,category:"flags"},cuba:{keywords:["cu","flag","nation","country","banner"],char:"🇨🇺",fitzpatrick_scale:false,category:"flags"},curacao:{keywords:["curaçao","flag","nation","country","banner"],char:"🇨🇼",fitzpatrick_scale:false,category:"flags"},cyprus:{keywords:["cy","flag","nation","country","banner"],char:"🇨🇾",fitzpatrick_scale:false,category:"flags"},czech_republic:{keywords:["cz","flag","nation","country","banner"],char:"🇨🇿",fitzpatrick_scale:false,category:"flags"},denmark:{keywords:["dk","flag","nation","country","banner"],char:"🇩🇰",fitzpatrick_scale:false,category:"flags"},djibouti:{keywords:["dj","flag","nation","country","banner"],char:"🇩🇯",fitzpatrick_scale:false,category:"flags"},dominica:{keywords:["dm","flag","nation","country","banner"],char:"🇩🇲",fitzpatrick_scale:false,category:"flags"},dominican_republic:{keywords:["dominican","republic","flag","nation","country","banner"],char:"🇩🇴",fitzpatrick_scale:false,category:"flags"},ecuador:{keywords:["ec","flag","nation","country","banner"],char:"🇪🇨",fitzpatrick_scale:false,category:"flags"},egypt:{keywords:["eg","flag","nation","country","banner"],char:"🇪🇬",fitzpatrick_scale:false,category:"flags"},el_salvador:{keywords:["el","salvador","flag","nation","country","banner"],char:"🇸🇻",fitzpatrick_scale:false,category:"flags"},equatorial_guinea:{keywords:["equatorial","gn","flag","nation","country","banner"],char:"🇬🇶",fitzpatrick_scale:false,category:"flags"},eritrea:{keywords:["er","flag","nation","country","banner"],char:"🇪🇷",fitzpatrick_scale:false,category:"flags"},estonia:{keywords:["ee","flag","nation","country","banner"],char:"🇪🇪",fitzpatrick_scale:false,category:"flags"},ethiopia:{keywords:["et","flag","nation","country","banner"],char:"🇪🇹",fitzpatrick_scale:false,category:"flags"},eu:{keywords:["european","union","flag","banner"],char:"🇪🇺",fitzpatrick_scale:false,category:"flags"},falkland_islands:{keywords:["falkland","islands","malvinas","flag","nation","country","banner"],char:"🇫🇰",fitzpatrick_scale:false,category:"flags"},faroe_islands:{keywords:["faroe","islands","flag","nation","country","banner"],char:"🇫🇴",fitzpatrick_scale:false,category:"flags"},fiji:{keywords:["fj","flag","nation","country","banner"],char:"🇫🇯",fitzpatrick_scale:false,category:"flags"},finland:{keywords:["fi","flag","nation","country","banner"],char:"🇫🇮",fitzpatrick_scale:false,category:"flags"},fr:{keywords:["banner","flag","nation","france","french","country"],char:"🇫🇷",fitzpatrick_scale:false,category:"flags"},french_guiana:{keywords:["french","guiana","flag","nation","country","banner"],char:"🇬🇫",fitzpatrick_scale:false,category:"flags"},french_polynesia:{keywords:["french","polynesia","flag","nation","country","banner"],char:"🇵🇫",fitzpatrick_scale:false,category:"flags"},french_southern_territories:{keywords:["french","southern","territories","flag","nation","country","banner"],char:"🇹🇫",fitzpatrick_scale:false,category:"flags"},gabon:{keywords:["ga","flag","nation","country","banner"],char:"🇬🇦",fitzpatrick_scale:false,category:"flags"},gambia:{keywords:["gm","flag","nation","country","banner"],char:"🇬🇲",fitzpatrick_scale:false,category:"flags"},georgia:{keywords:["ge","flag","nation","country","banner"],char:"🇬🇪",fitzpatrick_scale:false,category:"flags"},de:{keywords:["german","nation","flag","country","banner"],char:"🇩🇪",fitzpatrick_scale:false,category:"flags"},ghana:{keywords:["gh","flag","nation","country","banner"],char:"🇬🇭",fitzpatrick_scale:false,category:"flags"},gibraltar:{keywords:["gi","flag","nation","country","banner"],char:"🇬🇮",fitzpatrick_scale:false,category:"flags"},greece:{keywords:["gr","flag","nation","country","banner"],char:"🇬🇷",fitzpatrick_scale:false,category:"flags"},greenland:{keywords:["gl","flag","nation","country","banner"],char:"🇬🇱",fitzpatrick_scale:false,category:"flags"},grenada:{keywords:["gd","flag","nation","country","banner"],char:"🇬🇩",fitzpatrick_scale:false,category:"flags"},guadeloupe:{keywords:["gp","flag","nation","country","banner"],char:"🇬🇵",fitzpatrick_scale:false,category:"flags"},guam:{keywords:["gu","flag","nation","country","banner"],char:"🇬🇺",fitzpatrick_scale:false,category:"flags"},guatemala:{keywords:["gt","flag","nation","country","banner"],char:"🇬🇹",fitzpatrick_scale:false,category:"flags"},guernsey:{keywords:["gg","flag","nation","country","banner"],char:"🇬🇬",fitzpatrick_scale:false,category:"flags"},guinea:{keywords:["gn","flag","nation","country","banner"],char:"🇬🇳",fitzpatrick_scale:false,category:"flags"},guinea_bissau:{keywords:["gw","bissau","flag","nation","country","banner"],char:"🇬🇼",fitzpatrick_scale:false,category:"flags"},guyana:{keywords:["gy","flag","nation","country","banner"],char:"🇬🇾",fitzpatrick_scale:false,category:"flags"},haiti:{keywords:["ht","flag","nation","country","banner"],char:"🇭🇹",fitzpatrick_scale:false,category:"flags"},honduras:{keywords:["hn","flag","nation","country","banner"],char:"🇭🇳",fitzpatrick_scale:false,category:"flags"},hong_kong:{keywords:["hong","kong","flag","nation","country","banner"],char:"🇭🇰",fitzpatrick_scale:false,category:"flags"},hungary:{keywords:["hu","flag","nation","country","banner"],char:"🇭🇺",fitzpatrick_scale:false,category:"flags"},iceland:{keywords:["is","flag","nation","country","banner"],char:"🇮🇸",fitzpatrick_scale:false,category:"flags"},india:{keywords:["in","flag","nation","country","banner"],char:"🇮🇳",fitzpatrick_scale:false,category:"flags"},indonesia:{keywords:["flag","nation","country","banner"],char:"🇮🇩",fitzpatrick_scale:false,category:"flags"},iran:{keywords:["iran,","islamic","republic","flag","nation","country","banner"],char:"🇮🇷",fitzpatrick_scale:false,category:"flags"},iraq:{keywords:["iq","flag","nation","country","banner"],char:"🇮🇶",fitzpatrick_scale:false,category:"flags"},ireland:{keywords:["ie","flag","nation","country","banner"],char:"🇮🇪",fitzpatrick_scale:false,category:"flags"},isle_of_man:{keywords:["isle","man","flag","nation","country","banner"],char:"🇮🇲",fitzpatrick_scale:false,category:"flags"},israel:{keywords:["il","flag","nation","country","banner"],char:"🇮🇱",fitzpatrick_scale:false,category:"flags"},it:{keywords:["italy","flag","nation","country","banner"],char:"🇮🇹",fitzpatrick_scale:false,category:"flags"},cote_divoire:{keywords:["ivory","coast","flag","nation","country","banner"],char:"🇨🇮",fitzpatrick_scale:false,category:"flags"},jamaica:{keywords:["jm","flag","nation","country","banner"],char:"🇯🇲",fitzpatrick_scale:false,category:"flags"},jp:{keywords:["japanese","nation","flag","country","banner"],char:"🇯🇵",fitzpatrick_scale:false,category:"flags"},jersey:{keywords:["je","flag","nation","country","banner"],char:"🇯🇪",fitzpatrick_scale:false,category:"flags"},jordan:{keywords:["jo","flag","nation","country","banner"],char:"🇯🇴",fitzpatrick_scale:false,category:"flags"},kazakhstan:{keywords:["kz","flag","nation","country","banner"],char:"🇰🇿",fitzpatrick_scale:false,category:"flags"},kenya:{keywords:["ke","flag","nation","country","banner"],char:"🇰🇪",fitzpatrick_scale:false,category:"flags"},kiribati:{keywords:["ki","flag","nation","country","banner"],char:"🇰🇮",fitzpatrick_scale:false,category:"flags"},kosovo:{keywords:["xk","flag","nation","country","banner"],char:"🇽🇰",fitzpatrick_scale:false,category:"flags"},kuwait:{keywords:["kw","flag","nation","country","banner"],char:"🇰🇼",fitzpatrick_scale:false,category:"flags"},kyrgyzstan:{keywords:["kg","flag","nation","country","banner"],char:"🇰🇬",fitzpatrick_scale:false,category:"flags"},laos:{keywords:["lao","democratic","republic","flag","nation","country","banner"],char:"🇱🇦",fitzpatrick_scale:false,category:"flags"},latvia:{keywords:["lv","flag","nation","country","banner"],char:"🇱🇻",fitzpatrick_scale:false,category:"flags"},lebanon:{keywords:["lb","flag","nation","country","banner"],char:"🇱🇧",fitzpatrick_scale:false,category:"flags"},lesotho:{keywords:["ls","flag","nation","country","banner"],char:"🇱🇸",fitzpatrick_scale:false,category:"flags"},liberia:{keywords:["lr","flag","nation","country","banner"],char:"🇱🇷",fitzpatrick_scale:false,category:"flags"},libya:{keywords:["ly","flag","nation","country","banner"],char:"🇱🇾",fitzpatrick_scale:false,category:"flags"},liechtenstein:{keywords:["li","flag","nation","country","banner"],char:"🇱🇮",fitzpatrick_scale:false,category:"flags"},lithuania:{keywords:["lt","flag","nation","country","banner"],char:"🇱🇹",fitzpatrick_scale:false,category:"flags"},luxembourg:{keywords:["lu","flag","nation","country","banner"],char:"🇱🇺",fitzpatrick_scale:false,category:"flags"},macau:{keywords:["macao","flag","nation","country","banner"],char:"🇲🇴",fitzpatrick_scale:false,category:"flags"},macedonia:{keywords:["macedonia,","flag","nation","country","banner"],char:"🇲🇰",fitzpatrick_scale:false,category:"flags"},madagascar:{keywords:["mg","flag","nation","country","banner"],char:"🇲🇬",fitzpatrick_scale:false,category:"flags"},malawi:{keywords:["mw","flag","nation","country","banner"],char:"🇲🇼",fitzpatrick_scale:false,category:"flags"},malaysia:{keywords:["my","flag","nation","country","banner"],char:"🇲🇾",fitzpatrick_scale:false,category:"flags"},maldives:{keywords:["mv","flag","nation","country","banner"],char:"🇲🇻",fitzpatrick_scale:false,category:"flags"},mali:{keywords:["ml","flag","nation","country","banner"],char:"🇲🇱",fitzpatrick_scale:false,category:"flags"},malta:{keywords:["mt","flag","nation","country","banner"],char:"🇲🇹",fitzpatrick_scale:false,category:"flags"},marshall_islands:{keywords:["marshall","islands","flag","nation","country","banner"],char:"🇲🇭",fitzpatrick_scale:false,category:"flags"},martinique:{keywords:["mq","flag","nation","country","banner"],char:"🇲🇶",fitzpatrick_scale:false,category:"flags"},mauritania:{keywords:["mr","flag","nation","country","banner"],char:"🇲🇷",fitzpatrick_scale:false,category:"flags"},mauritius:{keywords:["mu","flag","nation","country","banner"],char:"🇲🇺",fitzpatrick_scale:false,category:"flags"},mayotte:{keywords:["yt","flag","nation","country","banner"],char:"🇾🇹",fitzpatrick_scale:false,category:"flags"},mexico:{keywords:["mx","flag","nation","country","banner"],char:"🇲🇽",fitzpatrick_scale:false,category:"flags"},micronesia:{keywords:["micronesia,","federated","states","flag","nation","country","banner"],char:"🇫🇲",fitzpatrick_scale:false,category:"flags"},moldova:{keywords:["moldova,","republic","flag","nation","country","banner"],char:"🇲🇩",fitzpatrick_scale:false,category:"flags"},monaco:{keywords:["mc","flag","nation","country","banner"],char:"🇲🇨",fitzpatrick_scale:false,category:"flags"},mongolia:{keywords:["mn","flag","nation","country","banner"],char:"🇲🇳",fitzpatrick_scale:false,category:"flags"},montenegro:{keywords:["me","flag","nation","country","banner"],char:"🇲🇪",fitzpatrick_scale:false,category:"flags"},montserrat:{keywords:["ms","flag","nation","country","banner"],char:"🇲🇸",fitzpatrick_scale:false,category:"flags"},morocco:{keywords:["ma","flag","nation","country","banner"],char:"🇲🇦",fitzpatrick_scale:false,category:"flags"},mozambique:{keywords:["mz","flag","nation","country","banner"],char:"🇲🇿",fitzpatrick_scale:false,category:"flags"},myanmar:{keywords:["mm","flag","nation","country","banner"],char:"🇲🇲",fitzpatrick_scale:false,category:"flags"},namibia:{keywords:["na","flag","nation","country","banner"],char:"🇳🇦",fitzpatrick_scale:false,category:"flags"},nauru:{keywords:["nr","flag","nation","country","banner"],char:"🇳🇷",fitzpatrick_scale:false,category:"flags"},nepal:{keywords:["np","flag","nation","country","banner"],char:"🇳🇵",fitzpatrick_scale:false,category:"flags"},netherlands:{keywords:["nl","flag","nation","country","banner"],char:"🇳🇱",fitzpatrick_scale:false,category:"flags"},new_caledonia:{keywords:["new","caledonia","flag","nation","country","banner"],char:"🇳🇨",fitzpatrick_scale:false,category:"flags"},new_zealand:{keywords:["new","zealand","flag","nation","country","banner"],char:"🇳🇿",fitzpatrick_scale:false,category:"flags"},nicaragua:{keywords:["ni","flag","nation","country","banner"],char:"🇳🇮",fitzpatrick_scale:false,category:"flags"},niger:{keywords:["ne","flag","nation","country","banner"],char:"🇳🇪",fitzpatrick_scale:false,category:"flags"},nigeria:{keywords:["flag","nation","country","banner"],char:"🇳🇬",fitzpatrick_scale:false,category:"flags"},niue:{keywords:["nu","flag","nation","country","banner"],char:"🇳🇺",fitzpatrick_scale:false,category:"flags"},norfolk_island:{keywords:["norfolk","island","flag","nation","country","banner"],char:"🇳🇫",fitzpatrick_scale:false,category:"flags"},northern_mariana_islands:{keywords:["northern","mariana","islands","flag","nation","country","banner"],char:"🇲🇵",fitzpatrick_scale:false,category:"flags"},north_korea:{keywords:["north","korea","nation","flag","country","banner"],char:"🇰🇵",fitzpatrick_scale:false,category:"flags"},norway:{keywords:["no","flag","nation","country","banner"],char:"🇳🇴",fitzpatrick_scale:false,category:"flags"},oman:{keywords:["om_symbol","flag","nation","country","banner"],char:"🇴🇲",fitzpatrick_scale:false,category:"flags"},pakistan:{keywords:["pk","flag","nation","country","banner"],char:"🇵🇰",fitzpatrick_scale:false,category:"flags"},palau:{keywords:["pw","flag","nation","country","banner"],char:"🇵🇼",fitzpatrick_scale:false,category:"flags"},palestinian_territories:{keywords:["palestine","palestinian","territories","flag","nation","country","banner"],char:"🇵🇸",fitzpatrick_scale:false,category:"flags"},panama:{keywords:["pa","flag","nation","country","banner"],char:"🇵🇦",fitzpatrick_scale:false,category:"flags"},papua_new_guinea:{keywords:["papua","new","guinea","flag","nation","country","banner"],char:"🇵🇬",fitzpatrick_scale:false,category:"flags"},paraguay:{keywords:["py","flag","nation","country","banner"],char:"🇵🇾",fitzpatrick_scale:false,category:"flags"},peru:{keywords:["pe","flag","nation","country","banner"],char:"🇵🇪",fitzpatrick_scale:false,category:"flags"},philippines:{keywords:["ph","flag","nation","country","banner"],char:"🇵🇭",fitzpatrick_scale:false,category:"flags"},pitcairn_islands:{keywords:["pitcairn","flag","nation","country","banner"],char:"🇵🇳",fitzpatrick_scale:false,category:"flags"},poland:{keywords:["pl","flag","nation","country","banner"],char:"🇵🇱",fitzpatrick_scale:false,category:"flags"},portugal:{keywords:["pt","flag","nation","country","banner"],char:"🇵🇹",fitzpatrick_scale:false,category:"flags"},puerto_rico:{keywords:["puerto","rico","flag","nation","country","banner"],char:"🇵🇷",fitzpatrick_scale:false,category:"flags"},qatar:{keywords:["qa","flag","nation","country","banner"],char:"🇶🇦",fitzpatrick_scale:false,category:"flags"},reunion:{keywords:["réunion","flag","nation","country","banner"],char:"🇷🇪",fitzpatrick_scale:false,category:"flags"},romania:{keywords:["ro","flag","nation","country","banner"],char:"🇷🇴",fitzpatrick_scale:false,category:"flags"},ru:{keywords:["russian","federation","flag","nation","country","banner"],char:"🇷🇺",fitzpatrick_scale:false,category:"flags"},rwanda:{keywords:["rw","flag","nation","country","banner"],char:"🇷🇼",fitzpatrick_scale:false,category:"flags"},st_barthelemy:{keywords:["saint","barthélemy","flag","nation","country","banner"],char:"🇧🇱",fitzpatrick_scale:false,category:"flags"},st_helena:{keywords:["saint","helena","ascension","tristan","cunha","flag","nation","country","banner"],char:"🇸🇭",fitzpatrick_scale:false,category:"flags"},st_kitts_nevis:{keywords:["saint","kitts","nevis","flag","nation","country","banner"],char:"🇰🇳",fitzpatrick_scale:false,category:"flags"},st_lucia:{keywords:["saint","lucia","flag","nation","country","banner"],char:"🇱🇨",fitzpatrick_scale:false,category:"flags"},st_pierre_miquelon:{keywords:["saint","pierre","miquelon","flag","nation","country","banner"],char:"🇵🇲",fitzpatrick_scale:false,category:"flags"},st_vincent_grenadines:{keywords:["saint","vincent","grenadines","flag","nation","country","banner"],char:"🇻🇨",fitzpatrick_scale:false,category:"flags"},samoa:{keywords:["ws","flag","nation","country","banner"],char:"🇼🇸",fitzpatrick_scale:false,category:"flags"},san_marino:{keywords:["san","marino","flag","nation","country","banner"],char:"🇸🇲",fitzpatrick_scale:false,category:"flags"},sao_tome_principe:{keywords:["sao","tome","principe","flag","nation","country","banner"],char:"🇸🇹",fitzpatrick_scale:false,category:"flags"},saudi_arabia:{keywords:["flag","nation","country","banner"],char:"🇸🇦",fitzpatrick_scale:false,category:"flags"},senegal:{keywords:["sn","flag","nation","country","banner"],char:"🇸🇳",fitzpatrick_scale:false,category:"flags"},serbia:{keywords:["rs","flag","nation","country","banner"],char:"🇷🇸",fitzpatrick_scale:false,category:"flags"},seychelles:{keywords:["sc","flag","nation","country","banner"],char:"🇸🇨",fitzpatrick_scale:false,category:"flags"},sierra_leone:{keywords:["sierra","leone","flag","nation","country","banner"],char:"🇸🇱",fitzpatrick_scale:false,category:"flags"},singapore:{keywords:["sg","flag","nation","country","banner"],char:"🇸🇬",fitzpatrick_scale:false,category:"flags"},sint_maarten:{keywords:["sint","maarten","dutch","flag","nation","country","banner"],char:"🇸🇽",fitzpatrick_scale:false,category:"flags"},slovakia:{keywords:["sk","flag","nation","country","banner"],char:"🇸🇰",fitzpatrick_scale:false,category:"flags"},slovenia:{keywords:["si","flag","nation","country","banner"],char:"🇸🇮",fitzpatrick_scale:false,category:"flags"},solomon_islands:{keywords:["solomon","islands","flag","nation","country","banner"],char:"🇸🇧",fitzpatrick_scale:false,category:"flags"},somalia:{keywords:["so","flag","nation","country","banner"],char:"🇸🇴",fitzpatrick_scale:false,category:"flags"},south_africa:{keywords:["south","africa","flag","nation","country","banner"],char:"🇿🇦",fitzpatrick_scale:false,category:"flags"},south_georgia_south_sandwich_islands:{keywords:["south","georgia","sandwich","islands","flag","nation","country","banner"],char:"🇬🇸",fitzpatrick_scale:false,category:"flags"},kr:{keywords:["south","korea","nation","flag","country","banner"],char:"🇰🇷",fitzpatrick_scale:false,category:"flags"},south_sudan:{keywords:["south","sd","flag","nation","country","banner"],char:"🇸🇸",fitzpatrick_scale:false,category:"flags"},es:{keywords:["spain","flag","nation","country","banner"],char:"🇪🇸",fitzpatrick_scale:false,category:"flags"},sri_lanka:{keywords:["sri","lanka","flag","nation","country","banner"],char:"🇱🇰",fitzpatrick_scale:false,category:"flags"},sudan:{keywords:["sd","flag","nation","country","banner"],char:"🇸🇩",fitzpatrick_scale:false,category:"flags"},suriname:{keywords:["sr","flag","nation","country","banner"],char:"🇸🇷",fitzpatrick_scale:false,category:"flags"},swaziland:{keywords:["sz","flag","nation","country","banner"],char:"🇸🇿",fitzpatrick_scale:false,category:"flags"},sweden:{keywords:["se","flag","nation","country","banner"],char:"🇸🇪",fitzpatrick_scale:false,category:"flags"},switzerland:{keywords:["ch","flag","nation","country","banner"],char:"🇨🇭",fitzpatrick_scale:false,category:"flags"},syria:{keywords:["syrian","arab","republic","flag","nation","country","banner"],char:"🇸🇾",fitzpatrick_scale:false,category:"flags"},taiwan:{keywords:["tw","flag","nation","country","banner"],char:"🇹🇼",fitzpatrick_scale:false,category:"flags"},tajikistan:{keywords:["tj","flag","nation","country","banner"],char:"🇹🇯",fitzpatrick_scale:false,category:"flags"},tanzania:{keywords:["tanzania,","united","republic","flag","nation","country","banner"],char:"🇹🇿",fitzpatrick_scale:false,category:"flags"},thailand:{keywords:["th","flag","nation","country","banner"],char:"🇹🇭",fitzpatrick_scale:false,category:"flags"},timor_leste:{keywords:["timor","leste","flag","nation","country","banner"],char:"🇹🇱",fitzpatrick_scale:false,category:"flags"},togo:{keywords:["tg","flag","nation","country","banner"],char:"🇹🇬",fitzpatrick_scale:false,category:"flags"},tokelau:{keywords:["tk","flag","nation","country","banner"],char:"🇹🇰",fitzpatrick_scale:false,category:"flags"},tonga:{keywords:["to","flag","nation","country","banner"],char:"🇹🇴",fitzpatrick_scale:false,category:"flags"},trinidad_tobago:{keywords:["trinidad","tobago","flag","nation","country","banner"],char:"🇹🇹",fitzpatrick_scale:false,category:"flags"},tunisia:{keywords:["tn","flag","nation","country","banner"],char:"🇹🇳",fitzpatrick_scale:false,category:"flags"},tr:{keywords:["turkey","flag","nation","country","banner"],char:"🇹🇷",fitzpatrick_scale:false,category:"flags"},turkmenistan:{keywords:["flag","nation","country","banner"],char:"🇹🇲",fitzpatrick_scale:false,category:"flags"},turks_caicos_islands:{keywords:["turks","caicos","islands","flag","nation","country","banner"],char:"🇹🇨",fitzpatrick_scale:false,category:"flags"},tuvalu:{keywords:["flag","nation","country","banner"],char:"🇹🇻",fitzpatrick_scale:false,category:"flags"},uganda:{keywords:["ug","flag","nation","country","banner"],char:"🇺🇬",fitzpatrick_scale:false,category:"flags"},ukraine:{keywords:["ua","flag","nation","country","banner"],char:"🇺🇦",fitzpatrick_scale:false,category:"flags"},united_arab_emirates:{keywords:["united","arab","emirates","flag","nation","country","banner"],char:"🇦🇪",fitzpatrick_scale:false,category:"flags"},uk:{keywords:["united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack"],char:"🇬🇧",fitzpatrick_scale:false,category:"flags"},england:{keywords:["flag","english"],char:"🏴󠁧󠁢󠁥󠁮󠁧󠁿",fitzpatrick_scale:false,category:"flags"},scotland:{keywords:["flag","scottish"],char:"🏴󠁧󠁢󠁳󠁣󠁴󠁿",fitzpatrick_scale:false,category:"flags"},wales:{keywords:["flag","welsh"],char:"🏴󠁧󠁢󠁷󠁬󠁳󠁿",fitzpatrick_scale:false,category:"flags"},us:{keywords:["united","states","america","flag","nation","country","banner"],char:"🇺🇸",fitzpatrick_scale:false,category:"flags"},us_virgin_islands:{keywords:["virgin","islands","us","flag","nation","country","banner"],char:"🇻🇮",fitzpatrick_scale:false,category:"flags"},uruguay:{keywords:["uy","flag","nation","country","banner"],char:"🇺🇾",fitzpatrick_scale:false,category:"flags"},uzbekistan:{keywords:["uz","flag","nation","country","banner"],char:"🇺🇿",fitzpatrick_scale:false,category:"flags"},vanuatu:{keywords:["vu","flag","nation","country","banner"],char:"🇻🇺",fitzpatrick_scale:false,category:"flags"},vatican_city:{keywords:["vatican","city","flag","nation","country","banner"],char:"🇻🇦",fitzpatrick_scale:false,category:"flags"},venezuela:{keywords:["ve","bolivarian","republic","flag","nation","country","banner"],char:"🇻🇪",fitzpatrick_scale:false,category:"flags"},vietnam:{keywords:["viet","nam","flag","nation","country","banner"],char:"🇻🇳",fitzpatrick_scale:false,category:"flags"},wallis_futuna:{keywords:["wallis","futuna","flag","nation","country","banner"],char:"🇼🇫",fitzpatrick_scale:false,category:"flags"},western_sahara:{keywords:["western","sahara","flag","nation","country","banner"],char:"🇪🇭",fitzpatrick_scale:false,category:"flags"},yemen:{keywords:["ye","flag","nation","country","banner"],char:"🇾🇪",fitzpatrick_scale:false,category:"flags"},zambia:{keywords:["zm","flag","nation","country","banner"],char:"🇿🇲",fitzpatrick_scale:false,category:"flags"},zimbabwe:{keywords:["zw","flag","nation","country","banner"],char:"🇿🇼",fitzpatrick_scale:false,category:"flags"},united_nations:{keywords:["un","flag","banner"],char:"🇺🇳",fitzpatrick_scale:false,category:"flags"},pirate_flag:{keywords:["skull","crossbones","flag","banner"],char:"🏴‍☠️",fitzpatrick_scale:false,category:"flags"}}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.min.js new file mode 100644 index 0000000..10caab8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/js/emojis.min.js @@ -0,0 +1,2 @@ +// Source: npm package: emojilib, file:emojis.json +window.tinymce.Resource.add("tinymce.plugins.emoticons",{grinning:{keywords:["face","smile","happy","joy",":D","grin"],char:"\u{1f600}",fitzpatrick_scale:!1,category:"people"},grimacing:{keywords:["face","grimace","teeth"],char:"\u{1f62c}",fitzpatrick_scale:!1,category:"people"},grin:{keywords:["face","happy","smile","joy","kawaii"],char:"\u{1f601}",fitzpatrick_scale:!1,category:"people"},joy:{keywords:["face","cry","tears","weep","happy","happytears","haha"],char:"\u{1f602}",fitzpatrick_scale:!1,category:"people"},rofl:{keywords:["face","rolling","floor","laughing","lol","haha"],char:"\u{1f923}",fitzpatrick_scale:!1,category:"people"},partying:{keywords:["face","celebration","woohoo"],char:"\u{1f973}",fitzpatrick_scale:!1,category:"people"},smiley:{keywords:["face","happy","joy","haha",":D",":)","smile","funny"],char:"\u{1f603}",fitzpatrick_scale:!1,category:"people"},smile:{keywords:["face","happy","joy","funny","haha","laugh","like",":D",":)"],char:"\u{1f604}",fitzpatrick_scale:!1,category:"people"},sweat_smile:{keywords:["face","hot","happy","laugh","sweat","smile","relief"],char:"\u{1f605}",fitzpatrick_scale:!1,category:"people"},laughing:{keywords:["happy","joy","lol","satisfied","haha","face","glad","XD","laugh"],char:"\u{1f606}",fitzpatrick_scale:!1,category:"people"},innocent:{keywords:["face","angel","heaven","halo"],char:"\u{1f607}",fitzpatrick_scale:!1,category:"people"},wink:{keywords:["face","happy","mischievous","secret",";)","smile","eye"],char:"\u{1f609}",fitzpatrick_scale:!1,category:"people"},blush:{keywords:["face","smile","happy","flushed","crush","embarrassed","shy","joy"],char:"\u{1f60a}",fitzpatrick_scale:!1,category:"people"},slightly_smiling_face:{keywords:["face","smile"],char:"\u{1f642}",fitzpatrick_scale:!1,category:"people"},upside_down_face:{keywords:["face","flipped","silly","smile"],char:"\u{1f643}",fitzpatrick_scale:!1,category:"people"},relaxed:{keywords:["face","blush","massage","happiness"],char:"\u263a\ufe0f",fitzpatrick_scale:!1,category:"people"},yum:{keywords:["happy","joy","tongue","smile","face","silly","yummy","nom","delicious","savouring"],char:"\u{1f60b}",fitzpatrick_scale:!1,category:"people"},relieved:{keywords:["face","relaxed","phew","massage","happiness"],char:"\u{1f60c}",fitzpatrick_scale:!1,category:"people"},heart_eyes:{keywords:["face","love","like","affection","valentines","infatuation","crush","heart"],char:"\u{1f60d}",fitzpatrick_scale:!1,category:"people"},smiling_face_with_three_hearts:{keywords:["face","love","like","affection","valentines","infatuation","crush","hearts","adore"],char:"\u{1f970}",fitzpatrick_scale:!1,category:"people"},kissing_heart:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:"\u{1f618}",fitzpatrick_scale:!1,category:"people"},kissing:{keywords:["love","like","face","3","valentines","infatuation","kiss"],char:"\u{1f617}",fitzpatrick_scale:!1,category:"people"},kissing_smiling_eyes:{keywords:["face","affection","valentines","infatuation","kiss"],char:"\u{1f619}",fitzpatrick_scale:!1,category:"people"},kissing_closed_eyes:{keywords:["face","love","like","affection","valentines","infatuation","kiss"],char:"\u{1f61a}",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_winking_eye:{keywords:["face","prank","childish","playful","mischievous","smile","wink","tongue"],char:"\u{1f61c}",fitzpatrick_scale:!1,category:"people"},zany:{keywords:["face","goofy","crazy"],char:"\u{1f92a}",fitzpatrick_scale:!1,category:"people"},raised_eyebrow:{keywords:["face","distrust","scepticism","disapproval","disbelief","surprise"],char:"\u{1f928}",fitzpatrick_scale:!1,category:"people"},monocle:{keywords:["face","stuffy","wealthy"],char:"\u{1f9d0}",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue_closed_eyes:{keywords:["face","prank","playful","mischievous","smile","tongue"],char:"\u{1f61d}",fitzpatrick_scale:!1,category:"people"},stuck_out_tongue:{keywords:["face","prank","childish","playful","mischievous","smile","tongue"],char:"\u{1f61b}",fitzpatrick_scale:!1,category:"people"},money_mouth_face:{keywords:["face","rich","dollar","money"],char:"\u{1f911}",fitzpatrick_scale:!1,category:"people"},nerd_face:{keywords:["face","nerdy","geek","dork"],char:"\u{1f913}",fitzpatrick_scale:!1,category:"people"},sunglasses:{keywords:["face","cool","smile","summer","beach","sunglass"],char:"\u{1f60e}",fitzpatrick_scale:!1,category:"people"},star_struck:{keywords:["face","smile","starry","eyes","grinning"],char:"\u{1f929}",fitzpatrick_scale:!1,category:"people"},clown_face:{keywords:["face"],char:"\u{1f921}",fitzpatrick_scale:!1,category:"people"},cowboy_hat_face:{keywords:["face","cowgirl","hat"],char:"\u{1f920}",fitzpatrick_scale:!1,category:"people"},hugs:{keywords:["face","smile","hug"],char:"\u{1f917}",fitzpatrick_scale:!1,category:"people"},smirk:{keywords:["face","smile","mean","prank","smug","sarcasm"],char:"\u{1f60f}",fitzpatrick_scale:!1,category:"people"},no_mouth:{keywords:["face","hellokitty"],char:"\u{1f636}",fitzpatrick_scale:!1,category:"people"},neutral_face:{keywords:["indifference","meh",":|","neutral"],char:"\u{1f610}",fitzpatrick_scale:!1,category:"people"},expressionless:{keywords:["face","indifferent","-_-","meh","deadpan"],char:"\u{1f611}",fitzpatrick_scale:!1,category:"people"},unamused:{keywords:["indifference","bored","straight face","serious","sarcasm","unimpressed","skeptical","dubious","side_eye"],char:"\u{1f612}",fitzpatrick_scale:!1,category:"people"},roll_eyes:{keywords:["face","eyeroll","frustrated"],char:"\u{1f644}",fitzpatrick_scale:!1,category:"people"},thinking:{keywords:["face","hmmm","think","consider"],char:"\u{1f914}",fitzpatrick_scale:!1,category:"people"},lying_face:{keywords:["face","lie","pinocchio"],char:"\u{1f925}",fitzpatrick_scale:!1,category:"people"},hand_over_mouth:{keywords:["face","whoops","shock","surprise"],char:"\u{1f92d}",fitzpatrick_scale:!1,category:"people"},shushing:{keywords:["face","quiet","shhh"],char:"\u{1f92b}",fitzpatrick_scale:!1,category:"people"},symbols_over_mouth:{keywords:["face","swearing","cursing","cussing","profanity","expletive"],char:"\u{1f92c}",fitzpatrick_scale:!1,category:"people"},exploding_head:{keywords:["face","shocked","mind","blown"],char:"\u{1f92f}",fitzpatrick_scale:!1,category:"people"},flushed:{keywords:["face","blush","shy","flattered"],char:"\u{1f633}",fitzpatrick_scale:!1,category:"people"},disappointed:{keywords:["face","sad","upset","depressed",":("],char:"\u{1f61e}",fitzpatrick_scale:!1,category:"people"},worried:{keywords:["face","concern","nervous",":("],char:"\u{1f61f}",fitzpatrick_scale:!1,category:"people"},angry:{keywords:["mad","face","annoyed","frustrated"],char:"\u{1f620}",fitzpatrick_scale:!1,category:"people"},rage:{keywords:["angry","mad","hate","despise"],char:"\u{1f621}",fitzpatrick_scale:!1,category:"people"},pensive:{keywords:["face","sad","depressed","upset"],char:"\u{1f614}",fitzpatrick_scale:!1,category:"people"},confused:{keywords:["face","indifference","huh","weird","hmmm",":/"],char:"\u{1f615}",fitzpatrick_scale:!1,category:"people"},slightly_frowning_face:{keywords:["face","frowning","disappointed","sad","upset"],char:"\u{1f641}",fitzpatrick_scale:!1,category:"people"},frowning_face:{keywords:["face","sad","upset","frown"],char:"\u2639",fitzpatrick_scale:!1,category:"people"},persevere:{keywords:["face","sick","no","upset","oops"],char:"\u{1f623}",fitzpatrick_scale:!1,category:"people"},confounded:{keywords:["face","confused","sick","unwell","oops",":S"],char:"\u{1f616}",fitzpatrick_scale:!1,category:"people"},tired_face:{keywords:["sick","whine","upset","frustrated"],char:"\u{1f62b}",fitzpatrick_scale:!1,category:"people"},weary:{keywords:["face","tired","sleepy","sad","frustrated","upset"],char:"\u{1f629}",fitzpatrick_scale:!1,category:"people"},pleading:{keywords:["face","begging","mercy"],char:"\u{1f97a}",fitzpatrick_scale:!1,category:"people"},triumph:{keywords:["face","gas","phew","proud","pride"],char:"\u{1f624}",fitzpatrick_scale:!1,category:"people"},open_mouth:{keywords:["face","surprise","impressed","wow","whoa",":O"],char:"\u{1f62e}",fitzpatrick_scale:!1,category:"people"},scream:{keywords:["face","munch","scared","omg"],char:"\u{1f631}",fitzpatrick_scale:!1,category:"people"},fearful:{keywords:["face","scared","terrified","nervous","oops","huh"],char:"\u{1f628}",fitzpatrick_scale:!1,category:"people"},cold_sweat:{keywords:["face","nervous","sweat"],char:"\u{1f630}",fitzpatrick_scale:!1,category:"people"},hushed:{keywords:["face","woo","shh"],char:"\u{1f62f}",fitzpatrick_scale:!1,category:"people"},frowning:{keywords:["face","aw","what"],char:"\u{1f626}",fitzpatrick_scale:!1,category:"people"},anguished:{keywords:["face","stunned","nervous"],char:"\u{1f627}",fitzpatrick_scale:!1,category:"people"},cry:{keywords:["face","tears","sad","depressed","upset",":'("],char:"\u{1f622}",fitzpatrick_scale:!1,category:"people"},disappointed_relieved:{keywords:["face","phew","sweat","nervous"],char:"\u{1f625}",fitzpatrick_scale:!1,category:"people"},drooling_face:{keywords:["face"],char:"\u{1f924}",fitzpatrick_scale:!1,category:"people"},sleepy:{keywords:["face","tired","rest","nap"],char:"\u{1f62a}",fitzpatrick_scale:!1,category:"people"},sweat:{keywords:["face","hot","sad","tired","exercise"],char:"\u{1f613}",fitzpatrick_scale:!1,category:"people"},hot:{keywords:["face","feverish","heat","red","sweating"],char:"\u{1f975}",fitzpatrick_scale:!1,category:"people"},cold:{keywords:["face","blue","freezing","frozen","frostbite","icicles"],char:"\u{1f976}",fitzpatrick_scale:!1,category:"people"},sob:{keywords:["face","cry","tears","sad","upset","depressed"],char:"\u{1f62d}",fitzpatrick_scale:!1,category:"people"},dizzy_face:{keywords:["spent","unconscious","xox","dizzy"],char:"\u{1f635}",fitzpatrick_scale:!1,category:"people"},astonished:{keywords:["face","xox","surprised","poisoned"],char:"\u{1f632}",fitzpatrick_scale:!1,category:"people"},zipper_mouth_face:{keywords:["face","sealed","zipper","secret"],char:"\u{1f910}",fitzpatrick_scale:!1,category:"people"},nauseated_face:{keywords:["face","vomit","gross","green","sick","throw up","ill"],char:"\u{1f922}",fitzpatrick_scale:!1,category:"people"},sneezing_face:{keywords:["face","gesundheit","sneeze","sick","allergy"],char:"\u{1f927}",fitzpatrick_scale:!1,category:"people"},vomiting:{keywords:["face","sick"],char:"\u{1f92e}",fitzpatrick_scale:!1,category:"people"},mask:{keywords:["face","sick","ill","disease"],char:"\u{1f637}",fitzpatrick_scale:!1,category:"people"},face_with_thermometer:{keywords:["sick","temperature","thermometer","cold","fever"],char:"\u{1f912}",fitzpatrick_scale:!1,category:"people"},face_with_head_bandage:{keywords:["injured","clumsy","bandage","hurt"],char:"\u{1f915}",fitzpatrick_scale:!1,category:"people"},woozy:{keywords:["face","dizzy","intoxicated","tipsy","wavy"],char:"\u{1f974}",fitzpatrick_scale:!1,category:"people"},sleeping:{keywords:["face","tired","sleepy","night","zzz"],char:"\u{1f634}",fitzpatrick_scale:!1,category:"people"},zzz:{keywords:["sleepy","tired","dream"],char:"\u{1f4a4}",fitzpatrick_scale:!1,category:"people"},poop:{keywords:["hankey","shitface","fail","turd","shit"],char:"\u{1f4a9}",fitzpatrick_scale:!1,category:"people"},smiling_imp:{keywords:["devil","horns"],char:"\u{1f608}",fitzpatrick_scale:!1,category:"people"},imp:{keywords:["devil","angry","horns"],char:"\u{1f47f}",fitzpatrick_scale:!1,category:"people"},japanese_ogre:{keywords:["monster","red","mask","halloween","scary","creepy","devil","demon","japanese","ogre"],char:"\u{1f479}",fitzpatrick_scale:!1,category:"people"},japanese_goblin:{keywords:["red","evil","mask","monster","scary","creepy","japanese","goblin"],char:"\u{1f47a}",fitzpatrick_scale:!1,category:"people"},skull:{keywords:["dead","skeleton","creepy","death"],char:"\u{1f480}",fitzpatrick_scale:!1,category:"people"},ghost:{keywords:["halloween","spooky","scary"],char:"\u{1f47b}",fitzpatrick_scale:!1,category:"people"},alien:{keywords:["UFO","paul","weird","outer_space"],char:"\u{1f47d}",fitzpatrick_scale:!1,category:"people"},robot:{keywords:["computer","machine","bot"],char:"\u{1f916}",fitzpatrick_scale:!1,category:"people"},smiley_cat:{keywords:["animal","cats","happy","smile"],char:"\u{1f63a}",fitzpatrick_scale:!1,category:"people"},smile_cat:{keywords:["animal","cats","smile"],char:"\u{1f638}",fitzpatrick_scale:!1,category:"people"},joy_cat:{keywords:["animal","cats","haha","happy","tears"],char:"\u{1f639}",fitzpatrick_scale:!1,category:"people"},heart_eyes_cat:{keywords:["animal","love","like","affection","cats","valentines","heart"],char:"\u{1f63b}",fitzpatrick_scale:!1,category:"people"},smirk_cat:{keywords:["animal","cats","smirk"],char:"\u{1f63c}",fitzpatrick_scale:!1,category:"people"},kissing_cat:{keywords:["animal","cats","kiss"],char:"\u{1f63d}",fitzpatrick_scale:!1,category:"people"},scream_cat:{keywords:["animal","cats","munch","scared","scream"],char:"\u{1f640}",fitzpatrick_scale:!1,category:"people"},crying_cat_face:{keywords:["animal","tears","weep","sad","cats","upset","cry"],char:"\u{1f63f}",fitzpatrick_scale:!1,category:"people"},pouting_cat:{keywords:["animal","cats"],char:"\u{1f63e}",fitzpatrick_scale:!1,category:"people"},palms_up:{keywords:["hands","gesture","cupped","prayer"],char:"\u{1f932}",fitzpatrick_scale:!0,category:"people"},raised_hands:{keywords:["gesture","hooray","yea","celebration","hands"],char:"\u{1f64c}",fitzpatrick_scale:!0,category:"people"},clap:{keywords:["hands","praise","applause","congrats","yay"],char:"\u{1f44f}",fitzpatrick_scale:!0,category:"people"},wave:{keywords:["hands","gesture","goodbye","solong","farewell","hello","hi","palm"],char:"\u{1f44b}",fitzpatrick_scale:!0,category:"people"},call_me_hand:{keywords:["hands","gesture"],char:"\u{1f919}",fitzpatrick_scale:!0,category:"people"},"+1":{keywords:["thumbsup","yes","awesome","good","agree","accept","cool","hand","like"],char:"\u{1f44d}",fitzpatrick_scale:!0,category:"people"},"-1":{keywords:["thumbsdown","no","dislike","hand"],char:"\u{1f44e}",fitzpatrick_scale:!0,category:"people"},facepunch:{keywords:["angry","violence","fist","hit","attack","hand"],char:"\u{1f44a}",fitzpatrick_scale:!0,category:"people"},fist:{keywords:["fingers","hand","grasp"],char:"\u270a",fitzpatrick_scale:!0,category:"people"},fist_left:{keywords:["hand","fistbump"],char:"\u{1f91b}",fitzpatrick_scale:!0,category:"people"},fist_right:{keywords:["hand","fistbump"],char:"\u{1f91c}",fitzpatrick_scale:!0,category:"people"},v:{keywords:["fingers","ohyeah","hand","peace","victory","two"],char:"\u270c",fitzpatrick_scale:!0,category:"people"},ok_hand:{keywords:["fingers","limbs","perfect","ok","okay"],char:"\u{1f44c}",fitzpatrick_scale:!0,category:"people"},raised_hand:{keywords:["fingers","stop","highfive","palm","ban"],char:"\u270b",fitzpatrick_scale:!0,category:"people"},raised_back_of_hand:{keywords:["fingers","raised","backhand"],char:"\u{1f91a}",fitzpatrick_scale:!0,category:"people"},open_hands:{keywords:["fingers","butterfly","hands","open"],char:"\u{1f450}",fitzpatrick_scale:!0,category:"people"},muscle:{keywords:["arm","flex","hand","summer","strong","biceps"],char:"\u{1f4aa}",fitzpatrick_scale:!0,category:"people"},pray:{keywords:["please","hope","wish","namaste","highfive"],char:"\u{1f64f}",fitzpatrick_scale:!0,category:"people"},foot:{keywords:["kick","stomp"],char:"\u{1f9b6}",fitzpatrick_scale:!0,category:"people"},leg:{keywords:["kick","limb"],char:"\u{1f9b5}",fitzpatrick_scale:!0,category:"people"},handshake:{keywords:["agreement","shake"],char:"\u{1f91d}",fitzpatrick_scale:!1,category:"people"},point_up:{keywords:["hand","fingers","direction","up"],char:"\u261d",fitzpatrick_scale:!0,category:"people"},point_up_2:{keywords:["fingers","hand","direction","up"],char:"\u{1f446}",fitzpatrick_scale:!0,category:"people"},point_down:{keywords:["fingers","hand","direction","down"],char:"\u{1f447}",fitzpatrick_scale:!0,category:"people"},point_left:{keywords:["direction","fingers","hand","left"],char:"\u{1f448}",fitzpatrick_scale:!0,category:"people"},point_right:{keywords:["fingers","hand","direction","right"],char:"\u{1f449}",fitzpatrick_scale:!0,category:"people"},fu:{keywords:["hand","fingers","rude","middle","flipping"],char:"\u{1f595}",fitzpatrick_scale:!0,category:"people"},raised_hand_with_fingers_splayed:{keywords:["hand","fingers","palm"],char:"\u{1f590}",fitzpatrick_scale:!0,category:"people"},love_you:{keywords:["hand","fingers","gesture"],char:"\u{1f91f}",fitzpatrick_scale:!0,category:"people"},metal:{keywords:["hand","fingers","evil_eye","sign_of_horns","rock_on"],char:"\u{1f918}",fitzpatrick_scale:!0,category:"people"},crossed_fingers:{keywords:["good","lucky"],char:"\u{1f91e}",fitzpatrick_scale:!0,category:"people"},vulcan_salute:{keywords:["hand","fingers","spock","star trek"],char:"\u{1f596}",fitzpatrick_scale:!0,category:"people"},writing_hand:{keywords:["lower_left_ballpoint_pen","stationery","write","compose"],char:"\u270d",fitzpatrick_scale:!0,category:"people"},selfie:{keywords:["camera","phone"],char:"\u{1f933}",fitzpatrick_scale:!0,category:"people"},nail_care:{keywords:["beauty","manicure","finger","fashion","nail"],char:"\u{1f485}",fitzpatrick_scale:!0,category:"people"},lips:{keywords:["mouth","kiss"],char:"\u{1f444}",fitzpatrick_scale:!1,category:"people"},tooth:{keywords:["teeth","dentist"],char:"\u{1f9b7}",fitzpatrick_scale:!1,category:"people"},tongue:{keywords:["mouth","playful"],char:"\u{1f445}",fitzpatrick_scale:!1,category:"people"},ear:{keywords:["face","hear","sound","listen"],char:"\u{1f442}",fitzpatrick_scale:!0,category:"people"},nose:{keywords:["smell","sniff"],char:"\u{1f443}",fitzpatrick_scale:!0,category:"people"},eye:{keywords:["face","look","see","watch","stare"],char:"\u{1f441}",fitzpatrick_scale:!1,category:"people"},eyes:{keywords:["look","watch","stalk","peek","see"],char:"\u{1f440}",fitzpatrick_scale:!1,category:"people"},brain:{keywords:["smart","intelligent"],char:"\u{1f9e0}",fitzpatrick_scale:!1,category:"people"},bust_in_silhouette:{keywords:["user","person","human"],char:"\u{1f464}",fitzpatrick_scale:!1,category:"people"},busts_in_silhouette:{keywords:["user","person","human","group","team"],char:"\u{1f465}",fitzpatrick_scale:!1,category:"people"},speaking_head:{keywords:["user","person","human","sing","say","talk"],char:"\u{1f5e3}",fitzpatrick_scale:!1,category:"people"},baby:{keywords:["child","boy","girl","toddler"],char:"\u{1f476}",fitzpatrick_scale:!0,category:"people"},child:{keywords:["gender-neutral","young"],char:"\u{1f9d2}",fitzpatrick_scale:!0,category:"people"},boy:{keywords:["man","male","guy","teenager"],char:"\u{1f466}",fitzpatrick_scale:!0,category:"people"},girl:{keywords:["female","woman","teenager"],char:"\u{1f467}",fitzpatrick_scale:!0,category:"people"},adult:{keywords:["gender-neutral","person"],char:"\u{1f9d1}",fitzpatrick_scale:!0,category:"people"},man:{keywords:["mustache","father","dad","guy","classy","sir","moustache"],char:"\u{1f468}",fitzpatrick_scale:!0,category:"people"},woman:{keywords:["female","girls","lady"],char:"\u{1f469}",fitzpatrick_scale:!0,category:"people"},blonde_woman:{keywords:["woman","female","girl","blonde","person"],char:"\u{1f471}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},blonde_man:{keywords:["man","male","boy","blonde","guy","person"],char:"\u{1f471}",fitzpatrick_scale:!0,category:"people"},bearded_person:{keywords:["person","bewhiskered"],char:"\u{1f9d4}",fitzpatrick_scale:!0,category:"people"},older_adult:{keywords:["human","elder","senior","gender-neutral"],char:"\u{1f9d3}",fitzpatrick_scale:!0,category:"people"},older_man:{keywords:["human","male","men","old","elder","senior"],char:"\u{1f474}",fitzpatrick_scale:!0,category:"people"},older_woman:{keywords:["human","female","women","lady","old","elder","senior"],char:"\u{1f475}",fitzpatrick_scale:!0,category:"people"},man_with_gua_pi_mao:{keywords:["male","boy","chinese"],char:"\u{1f472}",fitzpatrick_scale:!0,category:"people"},woman_with_headscarf:{keywords:["female","hijab","mantilla","tichel"],char:"\u{1f9d5}",fitzpatrick_scale:!0,category:"people"},woman_with_turban:{keywords:["female","indian","hinduism","arabs","woman"],char:"\u{1f473}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_with_turban:{keywords:["male","indian","hinduism","arabs"],char:"\u{1f473}",fitzpatrick_scale:!0,category:"people"},policewoman:{keywords:["woman","police","law","legal","enforcement","arrest","911","female"],char:"\u{1f46e}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},policeman:{keywords:["man","police","law","legal","enforcement","arrest","911"],char:"\u{1f46e}",fitzpatrick_scale:!0,category:"people"},construction_worker_woman:{keywords:["female","human","wip","build","construction","worker","labor","woman"],char:"\u{1f477}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},construction_worker_man:{keywords:["male","human","wip","guy","build","construction","worker","labor"],char:"\u{1f477}",fitzpatrick_scale:!0,category:"people"},guardswoman:{keywords:["uk","gb","british","female","royal","woman"],char:"\u{1f482}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},guardsman:{keywords:["uk","gb","british","male","guy","royal"],char:"\u{1f482}",fitzpatrick_scale:!0,category:"people"},female_detective:{keywords:["human","spy","detective","female","woman"],char:"\u{1f575}\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},male_detective:{keywords:["human","spy","detective"],char:"\u{1f575}",fitzpatrick_scale:!0,category:"people"},woman_health_worker:{keywords:["doctor","nurse","therapist","healthcare","woman","human"],char:"\u{1f469}\u200d\u2695\ufe0f",fitzpatrick_scale:!0,category:"people"},man_health_worker:{keywords:["doctor","nurse","therapist","healthcare","man","human"],char:"\u{1f468}\u200d\u2695\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_farmer:{keywords:["rancher","gardener","woman","human"],char:"\u{1f469}\u200d\u{1f33e}",fitzpatrick_scale:!0,category:"people"},man_farmer:{keywords:["rancher","gardener","man","human"],char:"\u{1f468}\u200d\u{1f33e}",fitzpatrick_scale:!0,category:"people"},woman_cook:{keywords:["chef","woman","human"],char:"\u{1f469}\u200d\u{1f373}",fitzpatrick_scale:!0,category:"people"},man_cook:{keywords:["chef","man","human"],char:"\u{1f468}\u200d\u{1f373}",fitzpatrick_scale:!0,category:"people"},woman_student:{keywords:["graduate","woman","human"],char:"\u{1f469}\u200d\u{1f393}",fitzpatrick_scale:!0,category:"people"},man_student:{keywords:["graduate","man","human"],char:"\u{1f468}\u200d\u{1f393}",fitzpatrick_scale:!0,category:"people"},woman_singer:{keywords:["rockstar","entertainer","woman","human"],char:"\u{1f469}\u200d\u{1f3a4}",fitzpatrick_scale:!0,category:"people"},man_singer:{keywords:["rockstar","entertainer","man","human"],char:"\u{1f468}\u200d\u{1f3a4}",fitzpatrick_scale:!0,category:"people"},woman_teacher:{keywords:["instructor","professor","woman","human"],char:"\u{1f469}\u200d\u{1f3eb}",fitzpatrick_scale:!0,category:"people"},man_teacher:{keywords:["instructor","professor","man","human"],char:"\u{1f468}\u200d\u{1f3eb}",fitzpatrick_scale:!0,category:"people"},woman_factory_worker:{keywords:["assembly","industrial","woman","human"],char:"\u{1f469}\u200d\u{1f3ed}",fitzpatrick_scale:!0,category:"people"},man_factory_worker:{keywords:["assembly","industrial","man","human"],char:"\u{1f468}\u200d\u{1f3ed}",fitzpatrick_scale:!0,category:"people"},woman_technologist:{keywords:["coder","developer","engineer","programmer","software","woman","human","laptop","computer"],char:"\u{1f469}\u200d\u{1f4bb}",fitzpatrick_scale:!0,category:"people"},man_technologist:{keywords:["coder","developer","engineer","programmer","software","man","human","laptop","computer"],char:"\u{1f468}\u200d\u{1f4bb}",fitzpatrick_scale:!0,category:"people"},woman_office_worker:{keywords:["business","manager","woman","human"],char:"\u{1f469}\u200d\u{1f4bc}",fitzpatrick_scale:!0,category:"people"},man_office_worker:{keywords:["business","manager","man","human"],char:"\u{1f468}\u200d\u{1f4bc}",fitzpatrick_scale:!0,category:"people"},woman_mechanic:{keywords:["plumber","woman","human","wrench"],char:"\u{1f469}\u200d\u{1f527}",fitzpatrick_scale:!0,category:"people"},man_mechanic:{keywords:["plumber","man","human","wrench"],char:"\u{1f468}\u200d\u{1f527}",fitzpatrick_scale:!0,category:"people"},woman_scientist:{keywords:["biologist","chemist","engineer","physicist","woman","human"],char:"\u{1f469}\u200d\u{1f52c}",fitzpatrick_scale:!0,category:"people"},man_scientist:{keywords:["biologist","chemist","engineer","physicist","man","human"],char:"\u{1f468}\u200d\u{1f52c}",fitzpatrick_scale:!0,category:"people"},woman_artist:{keywords:["painter","woman","human"],char:"\u{1f469}\u200d\u{1f3a8}",fitzpatrick_scale:!0,category:"people"},man_artist:{keywords:["painter","man","human"],char:"\u{1f468}\u200d\u{1f3a8}",fitzpatrick_scale:!0,category:"people"},woman_firefighter:{keywords:["fireman","woman","human"],char:"\u{1f469}\u200d\u{1f692}",fitzpatrick_scale:!0,category:"people"},man_firefighter:{keywords:["fireman","man","human"],char:"\u{1f468}\u200d\u{1f692}",fitzpatrick_scale:!0,category:"people"},woman_pilot:{keywords:["aviator","plane","woman","human"],char:"\u{1f469}\u200d\u2708\ufe0f",fitzpatrick_scale:!0,category:"people"},man_pilot:{keywords:["aviator","plane","man","human"],char:"\u{1f468}\u200d\u2708\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_astronaut:{keywords:["space","rocket","woman","human"],char:"\u{1f469}\u200d\u{1f680}",fitzpatrick_scale:!0,category:"people"},man_astronaut:{keywords:["space","rocket","man","human"],char:"\u{1f468}\u200d\u{1f680}",fitzpatrick_scale:!0,category:"people"},woman_judge:{keywords:["justice","court","woman","human"],char:"\u{1f469}\u200d\u2696\ufe0f",fitzpatrick_scale:!0,category:"people"},man_judge:{keywords:["justice","court","man","human"],char:"\u{1f468}\u200d\u2696\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_superhero:{keywords:["woman","female","good","heroine","superpowers"],char:"\u{1f9b8}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_superhero:{keywords:["man","male","good","hero","superpowers"],char:"\u{1f9b8}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_supervillain:{keywords:["woman","female","evil","bad","criminal","heroine","superpowers"],char:"\u{1f9b9}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_supervillain:{keywords:["man","male","evil","bad","criminal","hero","superpowers"],char:"\u{1f9b9}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},mrs_claus:{keywords:["woman","female","xmas","mother christmas"],char:"\u{1f936}",fitzpatrick_scale:!0,category:"people"},santa:{keywords:["festival","man","male","xmas","father christmas"],char:"\u{1f385}",fitzpatrick_scale:!0,category:"people"},sorceress:{keywords:["woman","female","mage","witch"],char:"\u{1f9d9}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},wizard:{keywords:["man","male","mage","sorcerer"],char:"\u{1f9d9}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_elf:{keywords:["woman","female"],char:"\u{1f9dd}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_elf:{keywords:["man","male"],char:"\u{1f9dd}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_vampire:{keywords:["woman","female"],char:"\u{1f9db}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_vampire:{keywords:["man","male","dracula"],char:"\u{1f9db}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_zombie:{keywords:["woman","female","undead","walking dead"],char:"\u{1f9df}\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"people"},man_zombie:{keywords:["man","male","dracula","undead","walking dead"],char:"\u{1f9df}\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},woman_genie:{keywords:["woman","female"],char:"\u{1f9de}\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"people"},man_genie:{keywords:["man","male"],char:"\u{1f9de}\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},mermaid:{keywords:["woman","female","merwoman","ariel"],char:"\u{1f9dc}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},merman:{keywords:["man","male","triton"],char:"\u{1f9dc}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_fairy:{keywords:["woman","female"],char:"\u{1f9da}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_fairy:{keywords:["man","male"],char:"\u{1f9da}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},angel:{keywords:["heaven","wings","halo"],char:"\u{1f47c}",fitzpatrick_scale:!0,category:"people"},pregnant_woman:{keywords:["baby"],char:"\u{1f930}",fitzpatrick_scale:!0,category:"people"},breastfeeding:{keywords:["nursing","baby"],char:"\u{1f931}",fitzpatrick_scale:!0,category:"people"},princess:{keywords:["girl","woman","female","blond","crown","royal","queen"],char:"\u{1f478}",fitzpatrick_scale:!0,category:"people"},prince:{keywords:["boy","man","male","crown","royal","king"],char:"\u{1f934}",fitzpatrick_scale:!0,category:"people"},bride_with_veil:{keywords:["couple","marriage","wedding","woman","bride"],char:"\u{1f470}",fitzpatrick_scale:!0,category:"people"},man_in_tuxedo:{keywords:["couple","marriage","wedding","groom"],char:"\u{1f935}",fitzpatrick_scale:!0,category:"people"},running_woman:{keywords:["woman","walking","exercise","race","running","female"],char:"\u{1f3c3}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},running_man:{keywords:["man","walking","exercise","race","running"],char:"\u{1f3c3}",fitzpatrick_scale:!0,category:"people"},walking_woman:{keywords:["human","feet","steps","woman","female"],char:"\u{1f6b6}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},walking_man:{keywords:["human","feet","steps"],char:"\u{1f6b6}",fitzpatrick_scale:!0,category:"people"},dancer:{keywords:["female","girl","woman","fun"],char:"\u{1f483}",fitzpatrick_scale:!0,category:"people"},man_dancing:{keywords:["male","boy","fun","dancer"],char:"\u{1f57a}",fitzpatrick_scale:!0,category:"people"},dancing_women:{keywords:["female","bunny","women","girls"],char:"\u{1f46f}",fitzpatrick_scale:!1,category:"people"},dancing_men:{keywords:["male","bunny","men","boys"],char:"\u{1f46f}\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"people"},couple:{keywords:["pair","people","human","love","date","dating","like","affection","valentines","marriage"],char:"\u{1f46b}",fitzpatrick_scale:!1,category:"people"},two_men_holding_hands:{keywords:["pair","couple","love","like","bromance","friendship","people","human"],char:"\u{1f46c}",fitzpatrick_scale:!1,category:"people"},two_women_holding_hands:{keywords:["pair","friendship","couple","love","like","female","people","human"],char:"\u{1f46d}",fitzpatrick_scale:!1,category:"people"},bowing_woman:{keywords:["woman","female","girl"],char:"\u{1f647}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},bowing_man:{keywords:["man","male","boy"],char:"\u{1f647}",fitzpatrick_scale:!0,category:"people"},man_facepalming:{keywords:["man","male","boy","disbelief"],char:"\u{1f926}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_facepalming:{keywords:["woman","female","girl","disbelief"],char:"\u{1f926}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_shrugging:{keywords:["woman","female","girl","confused","indifferent","doubt"],char:"\u{1f937}",fitzpatrick_scale:!0,category:"people"},man_shrugging:{keywords:["man","male","boy","confused","indifferent","doubt"],char:"\u{1f937}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},tipping_hand_woman:{keywords:["female","girl","woman","human","information"],char:"\u{1f481}",fitzpatrick_scale:!0,category:"people"},tipping_hand_man:{keywords:["male","boy","man","human","information"],char:"\u{1f481}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},no_good_woman:{keywords:["female","girl","woman","nope"],char:"\u{1f645}",fitzpatrick_scale:!0,category:"people"},no_good_man:{keywords:["male","boy","man","nope"],char:"\u{1f645}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},ok_woman:{keywords:["women","girl","female","pink","human","woman"],char:"\u{1f646}",fitzpatrick_scale:!0,category:"people"},ok_man:{keywords:["men","boy","male","blue","human","man"],char:"\u{1f646}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},raising_hand_woman:{keywords:["female","girl","woman"],char:"\u{1f64b}",fitzpatrick_scale:!0,category:"people"},raising_hand_man:{keywords:["male","boy","man"],char:"\u{1f64b}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},pouting_woman:{keywords:["female","girl","woman"],char:"\u{1f64e}",fitzpatrick_scale:!0,category:"people"},pouting_man:{keywords:["male","boy","man"],char:"\u{1f64e}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},frowning_woman:{keywords:["female","girl","woman","sad","depressed","discouraged","unhappy"],char:"\u{1f64d}",fitzpatrick_scale:!0,category:"people"},frowning_man:{keywords:["male","boy","man","sad","depressed","discouraged","unhappy"],char:"\u{1f64d}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},haircut_woman:{keywords:["female","girl","woman"],char:"\u{1f487}",fitzpatrick_scale:!0,category:"people"},haircut_man:{keywords:["male","boy","man"],char:"\u{1f487}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},massage_woman:{keywords:["female","girl","woman","head"],char:"\u{1f486}",fitzpatrick_scale:!0,category:"people"},massage_man:{keywords:["male","boy","man","head"],char:"\u{1f486}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},woman_in_steamy_room:{keywords:["female","woman","spa","steamroom","sauna"],char:"\u{1f9d6}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"people"},man_in_steamy_room:{keywords:["male","man","spa","steamroom","sauna"],char:"\u{1f9d6}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"people"},couple_with_heart_woman_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"\u{1f491}",fitzpatrick_scale:!1,category:"people"},couple_with_heart_woman_woman:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"\u{1f469}\u200d\u2764\ufe0f\u200d\u{1f469}",fitzpatrick_scale:!1,category:"people"},couple_with_heart_man_man:{keywords:["pair","love","like","affection","human","dating","valentines","marriage"],char:"\u{1f468}\u200d\u2764\ufe0f\u200d\u{1f468}",fitzpatrick_scale:!1,category:"people"},couplekiss_man_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:"\u{1f48f}",fitzpatrick_scale:!1,category:"people"},couplekiss_woman_woman:{keywords:["pair","valentines","love","like","dating","marriage"],char:"\u{1f469}\u200d\u2764\ufe0f\u200d\u{1f48b}\u200d\u{1f469}",fitzpatrick_scale:!1,category:"people"},couplekiss_man_man:{keywords:["pair","valentines","love","like","dating","marriage"],char:"\u{1f468}\u200d\u2764\ufe0f\u200d\u{1f48b}\u200d\u{1f468}",fitzpatrick_scale:!1,category:"people"},family_man_woman_boy:{keywords:["home","parents","child","mom","dad","father","mother","people","human"],char:"\u{1f46a}",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl:{keywords:["home","parents","people","human","child"],char:"\u{1f468}\u200d\u{1f469}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f469}\u200d\u{1f466}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f469}\u200d\u{1f469}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl:{keywords:["home","parents","people","human","children"],char:"\u{1f469}\u200d\u{1f469}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f469}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_woman_boy_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f469}\u200d\u{1f469}\u200d\u{1f466}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_woman_girl_girl:{keywords:["home","parents","people","human","children"],char:"\u{1f469}\u200d\u{1f469}\u200d\u{1f467}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_man_man_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f468}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_man_girl:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f468}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_man_man_girl_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f468}\u200d\u{1f467}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_man_boy_boy:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f468}\u200d\u{1f466}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_man_girl_girl:{keywords:["home","parents","people","human","children"],char:"\u{1f468}\u200d\u{1f468}\u200d\u{1f467}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_woman_boy:{keywords:["home","parent","people","human","child"],char:"\u{1f469}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_girl:{keywords:["home","parent","people","human","child"],char:"\u{1f469}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_woman_girl_boy:{keywords:["home","parent","people","human","children"],char:"\u{1f469}\u200d\u{1f467}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_boy_boy:{keywords:["home","parent","people","human","children"],char:"\u{1f469}\u200d\u{1f466}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_woman_girl_girl:{keywords:["home","parent","people","human","children"],char:"\u{1f469}\u200d\u{1f467}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_man_boy:{keywords:["home","parent","people","human","child"],char:"\u{1f468}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_girl:{keywords:["home","parent","people","human","child"],char:"\u{1f468}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},family_man_girl_boy:{keywords:["home","parent","people","human","children"],char:"\u{1f468}\u200d\u{1f467}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_boy_boy:{keywords:["home","parent","people","human","children"],char:"\u{1f468}\u200d\u{1f466}\u200d\u{1f466}",fitzpatrick_scale:!1,category:"people"},family_man_girl_girl:{keywords:["home","parent","people","human","children"],char:"\u{1f468}\u200d\u{1f467}\u200d\u{1f467}",fitzpatrick_scale:!1,category:"people"},yarn:{keywords:["ball","crochet","knit"],char:"\u{1f9f6}",fitzpatrick_scale:!1,category:"people"},thread:{keywords:["needle","sewing","spool","string"],char:"\u{1f9f5}",fitzpatrick_scale:!1,category:"people"},coat:{keywords:["jacket"],char:"\u{1f9e5}",fitzpatrick_scale:!1,category:"people"},labcoat:{keywords:["doctor","experiment","scientist","chemist"],char:"\u{1f97c}",fitzpatrick_scale:!1,category:"people"},womans_clothes:{keywords:["fashion","shopping_bags","female"],char:"\u{1f45a}",fitzpatrick_scale:!1,category:"people"},tshirt:{keywords:["fashion","cloth","casual","shirt","tee"],char:"\u{1f455}",fitzpatrick_scale:!1,category:"people"},jeans:{keywords:["fashion","shopping"],char:"\u{1f456}",fitzpatrick_scale:!1,category:"people"},necktie:{keywords:["shirt","suitup","formal","fashion","cloth","business"],char:"\u{1f454}",fitzpatrick_scale:!1,category:"people"},dress:{keywords:["clothes","fashion","shopping"],char:"\u{1f457}",fitzpatrick_scale:!1,category:"people"},bikini:{keywords:["swimming","female","woman","girl","fashion","beach","summer"],char:"\u{1f459}",fitzpatrick_scale:!1,category:"people"},kimono:{keywords:["dress","fashion","women","female","japanese"],char:"\u{1f458}",fitzpatrick_scale:!1,category:"people"},lipstick:{keywords:["female","girl","fashion","woman"],char:"\u{1f484}",fitzpatrick_scale:!1,category:"people"},kiss:{keywords:["face","lips","love","like","affection","valentines"],char:"\u{1f48b}",fitzpatrick_scale:!1,category:"people"},footprints:{keywords:["feet","tracking","walking","beach"],char:"\u{1f463}",fitzpatrick_scale:!1,category:"people"},flat_shoe:{keywords:["ballet","slip-on","slipper"],char:"\u{1f97f}",fitzpatrick_scale:!1,category:"people"},high_heel:{keywords:["fashion","shoes","female","pumps","stiletto"],char:"\u{1f460}",fitzpatrick_scale:!1,category:"people"},sandal:{keywords:["shoes","fashion","flip flops"],char:"\u{1f461}",fitzpatrick_scale:!1,category:"people"},boot:{keywords:["shoes","fashion"],char:"\u{1f462}",fitzpatrick_scale:!1,category:"people"},mans_shoe:{keywords:["fashion","male"],char:"\u{1f45e}",fitzpatrick_scale:!1,category:"people"},athletic_shoe:{keywords:["shoes","sports","sneakers"],char:"\u{1f45f}",fitzpatrick_scale:!1,category:"people"},hiking_boot:{keywords:["backpacking","camping","hiking"],char:"\u{1f97e}",fitzpatrick_scale:!1,category:"people"},socks:{keywords:["stockings","clothes"],char:"\u{1f9e6}",fitzpatrick_scale:!1,category:"people"},gloves:{keywords:["hands","winter","clothes"],char:"\u{1f9e4}",fitzpatrick_scale:!1,category:"people"},scarf:{keywords:["neck","winter","clothes"],char:"\u{1f9e3}",fitzpatrick_scale:!1,category:"people"},womans_hat:{keywords:["fashion","accessories","female","lady","spring"],char:"\u{1f452}",fitzpatrick_scale:!1,category:"people"},tophat:{keywords:["magic","gentleman","classy","circus"],char:"\u{1f3a9}",fitzpatrick_scale:!1,category:"people"},billed_hat:{keywords:["cap","baseball"],char:"\u{1f9e2}",fitzpatrick_scale:!1,category:"people"},rescue_worker_helmet:{keywords:["construction","build"],char:"\u26d1",fitzpatrick_scale:!1,category:"people"},mortar_board:{keywords:["school","college","degree","university","graduation","cap","hat","legal","learn","education"],char:"\u{1f393}",fitzpatrick_scale:!1,category:"people"},crown:{keywords:["king","kod","leader","royalty","lord"],char:"\u{1f451}",fitzpatrick_scale:!1,category:"people"},school_satchel:{keywords:["student","education","bag","backpack"],char:"\u{1f392}",fitzpatrick_scale:!1,category:"people"},luggage:{keywords:["packing","travel"],char:"\u{1f9f3}",fitzpatrick_scale:!1,category:"people"},pouch:{keywords:["bag","accessories","shopping"],char:"\u{1f45d}",fitzpatrick_scale:!1,category:"people"},purse:{keywords:["fashion","accessories","money","sales","shopping"],char:"\u{1f45b}",fitzpatrick_scale:!1,category:"people"},handbag:{keywords:["fashion","accessory","accessories","shopping"],char:"\u{1f45c}",fitzpatrick_scale:!1,category:"people"},briefcase:{keywords:["business","documents","work","law","legal","job","career"],char:"\u{1f4bc}",fitzpatrick_scale:!1,category:"people"},eyeglasses:{keywords:["fashion","accessories","eyesight","nerdy","dork","geek"],char:"\u{1f453}",fitzpatrick_scale:!1,category:"people"},dark_sunglasses:{keywords:["face","cool","accessories"],char:"\u{1f576}",fitzpatrick_scale:!1,category:"people"},goggles:{keywords:["eyes","protection","safety"],char:"\u{1f97d}",fitzpatrick_scale:!1,category:"people"},ring:{keywords:["wedding","propose","marriage","valentines","diamond","fashion","jewelry","gem","engagement"],char:"\u{1f48d}",fitzpatrick_scale:!1,category:"people"},closed_umbrella:{keywords:["weather","rain","drizzle"],char:"\u{1f302}",fitzpatrick_scale:!1,category:"people"},dog:{keywords:["animal","friend","nature","woof","puppy","pet","faithful"],char:"\u{1f436}",fitzpatrick_scale:!1,category:"animals_and_nature"},cat:{keywords:["animal","meow","nature","pet","kitten"],char:"\u{1f431}",fitzpatrick_scale:!1,category:"animals_and_nature"},mouse:{keywords:["animal","nature","cheese_wedge","rodent"],char:"\u{1f42d}",fitzpatrick_scale:!1,category:"animals_and_nature"},hamster:{keywords:["animal","nature"],char:"\u{1f439}",fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit:{keywords:["animal","nature","pet","spring","magic","bunny"],char:"\u{1f430}",fitzpatrick_scale:!1,category:"animals_and_nature"},fox_face:{keywords:["animal","nature","face"],char:"\u{1f98a}",fitzpatrick_scale:!1,category:"animals_and_nature"},bear:{keywords:["animal","nature","wild"],char:"\u{1f43b}",fitzpatrick_scale:!1,category:"animals_and_nature"},panda_face:{keywords:["animal","nature","panda"],char:"\u{1f43c}",fitzpatrick_scale:!1,category:"animals_and_nature"},koala:{keywords:["animal","nature"],char:"\u{1f428}",fitzpatrick_scale:!1,category:"animals_and_nature"},tiger:{keywords:["animal","cat","danger","wild","nature","roar"],char:"\u{1f42f}",fitzpatrick_scale:!1,category:"animals_and_nature"},lion:{keywords:["animal","nature"],char:"\u{1f981}",fitzpatrick_scale:!1,category:"animals_and_nature"},cow:{keywords:["beef","ox","animal","nature","moo","milk"],char:"\u{1f42e}",fitzpatrick_scale:!1,category:"animals_and_nature"},pig:{keywords:["animal","oink","nature"],char:"\u{1f437}",fitzpatrick_scale:!1,category:"animals_and_nature"},pig_nose:{keywords:["animal","oink"],char:"\u{1f43d}",fitzpatrick_scale:!1,category:"animals_and_nature"},frog:{keywords:["animal","nature","croak","toad"],char:"\u{1f438}",fitzpatrick_scale:!1,category:"animals_and_nature"},squid:{keywords:["animal","nature","ocean","sea"],char:"\u{1f991}",fitzpatrick_scale:!1,category:"animals_and_nature"},octopus:{keywords:["animal","creature","ocean","sea","nature","beach"],char:"\u{1f419}",fitzpatrick_scale:!1,category:"animals_and_nature"},shrimp:{keywords:["animal","ocean","nature","seafood"],char:"\u{1f990}",fitzpatrick_scale:!1,category:"animals_and_nature"},monkey_face:{keywords:["animal","nature","circus"],char:"\u{1f435}",fitzpatrick_scale:!1,category:"animals_and_nature"},gorilla:{keywords:["animal","nature","circus"],char:"\u{1f98d}",fitzpatrick_scale:!1,category:"animals_and_nature"},see_no_evil:{keywords:["monkey","animal","nature","haha"],char:"\u{1f648}",fitzpatrick_scale:!1,category:"animals_and_nature"},hear_no_evil:{keywords:["animal","monkey","nature"],char:"\u{1f649}",fitzpatrick_scale:!1,category:"animals_and_nature"},speak_no_evil:{keywords:["monkey","animal","nature","omg"],char:"\u{1f64a}",fitzpatrick_scale:!1,category:"animals_and_nature"},monkey:{keywords:["animal","nature","banana","circus"],char:"\u{1f412}",fitzpatrick_scale:!1,category:"animals_and_nature"},chicken:{keywords:["animal","cluck","nature","bird"],char:"\u{1f414}",fitzpatrick_scale:!1,category:"animals_and_nature"},penguin:{keywords:["animal","nature"],char:"\u{1f427}",fitzpatrick_scale:!1,category:"animals_and_nature"},bird:{keywords:["animal","nature","fly","tweet","spring"],char:"\u{1f426}",fitzpatrick_scale:!1,category:"animals_and_nature"},baby_chick:{keywords:["animal","chicken","bird"],char:"\u{1f424}",fitzpatrick_scale:!1,category:"animals_and_nature"},hatching_chick:{keywords:["animal","chicken","egg","born","baby","bird"],char:"\u{1f423}",fitzpatrick_scale:!1,category:"animals_and_nature"},hatched_chick:{keywords:["animal","chicken","baby","bird"],char:"\u{1f425}",fitzpatrick_scale:!1,category:"animals_and_nature"},duck:{keywords:["animal","nature","bird","mallard"],char:"\u{1f986}",fitzpatrick_scale:!1,category:"animals_and_nature"},eagle:{keywords:["animal","nature","bird"],char:"\u{1f985}",fitzpatrick_scale:!1,category:"animals_and_nature"},owl:{keywords:["animal","nature","bird","hoot"],char:"\u{1f989}",fitzpatrick_scale:!1,category:"animals_and_nature"},bat:{keywords:["animal","nature","blind","vampire"],char:"\u{1f987}",fitzpatrick_scale:!1,category:"animals_and_nature"},wolf:{keywords:["animal","nature","wild"],char:"\u{1f43a}",fitzpatrick_scale:!1,category:"animals_and_nature"},boar:{keywords:["animal","nature"],char:"\u{1f417}",fitzpatrick_scale:!1,category:"animals_and_nature"},horse:{keywords:["animal","brown","nature"],char:"\u{1f434}",fitzpatrick_scale:!1,category:"animals_and_nature"},unicorn:{keywords:["animal","nature","mystical"],char:"\u{1f984}",fitzpatrick_scale:!1,category:"animals_and_nature"},honeybee:{keywords:["animal","insect","nature","bug","spring","honey"],char:"\u{1f41d}",fitzpatrick_scale:!1,category:"animals_and_nature"},bug:{keywords:["animal","insect","nature","worm"],char:"\u{1f41b}",fitzpatrick_scale:!1,category:"animals_and_nature"},butterfly:{keywords:["animal","insect","nature","caterpillar"],char:"\u{1f98b}",fitzpatrick_scale:!1,category:"animals_and_nature"},snail:{keywords:["slow","animal","shell"],char:"\u{1f40c}",fitzpatrick_scale:!1,category:"animals_and_nature"},beetle:{keywords:["animal","insect","nature","ladybug"],char:"\u{1f41e}",fitzpatrick_scale:!1,category:"animals_and_nature"},ant:{keywords:["animal","insect","nature","bug"],char:"\u{1f41c}",fitzpatrick_scale:!1,category:"animals_and_nature"},grasshopper:{keywords:["animal","cricket","chirp"],char:"\u{1f997}",fitzpatrick_scale:!1,category:"animals_and_nature"},spider:{keywords:["animal","arachnid"],char:"\u{1f577}",fitzpatrick_scale:!1,category:"animals_and_nature"},scorpion:{keywords:["animal","arachnid"],char:"\u{1f982}",fitzpatrick_scale:!1,category:"animals_and_nature"},crab:{keywords:["animal","crustacean"],char:"\u{1f980}",fitzpatrick_scale:!1,category:"animals_and_nature"},snake:{keywords:["animal","evil","nature","hiss","python"],char:"\u{1f40d}",fitzpatrick_scale:!1,category:"animals_and_nature"},lizard:{keywords:["animal","nature","reptile"],char:"\u{1f98e}",fitzpatrick_scale:!1,category:"animals_and_nature"},"t-rex":{keywords:["animal","nature","dinosaur","tyrannosaurus","extinct"],char:"\u{1f996}",fitzpatrick_scale:!1,category:"animals_and_nature"},sauropod:{keywords:["animal","nature","dinosaur","brachiosaurus","brontosaurus","diplodocus","extinct"],char:"\u{1f995}",fitzpatrick_scale:!1,category:"animals_and_nature"},turtle:{keywords:["animal","slow","nature","tortoise"],char:"\u{1f422}",fitzpatrick_scale:!1,category:"animals_and_nature"},tropical_fish:{keywords:["animal","swim","ocean","beach","nemo"],char:"\u{1f420}",fitzpatrick_scale:!1,category:"animals_and_nature"},fish:{keywords:["animal","food","nature"],char:"\u{1f41f}",fitzpatrick_scale:!1,category:"animals_and_nature"},blowfish:{keywords:["animal","nature","food","sea","ocean"],char:"\u{1f421}",fitzpatrick_scale:!1,category:"animals_and_nature"},dolphin:{keywords:["animal","nature","fish","sea","ocean","flipper","fins","beach"],char:"\u{1f42c}",fitzpatrick_scale:!1,category:"animals_and_nature"},shark:{keywords:["animal","nature","fish","sea","ocean","jaws","fins","beach"],char:"\u{1f988}",fitzpatrick_scale:!1,category:"animals_and_nature"},whale:{keywords:["animal","nature","sea","ocean"],char:"\u{1f433}",fitzpatrick_scale:!1,category:"animals_and_nature"},whale2:{keywords:["animal","nature","sea","ocean"],char:"\u{1f40b}",fitzpatrick_scale:!1,category:"animals_and_nature"},crocodile:{keywords:["animal","nature","reptile","lizard","alligator"],char:"\u{1f40a}",fitzpatrick_scale:!1,category:"animals_and_nature"},leopard:{keywords:["animal","nature"],char:"\u{1f406}",fitzpatrick_scale:!1,category:"animals_and_nature"},zebra:{keywords:["animal","nature","stripes","safari"],char:"\u{1f993}",fitzpatrick_scale:!1,category:"animals_and_nature"},tiger2:{keywords:["animal","nature","roar"],char:"\u{1f405}",fitzpatrick_scale:!1,category:"animals_and_nature"},water_buffalo:{keywords:["animal","nature","ox","cow"],char:"\u{1f403}",fitzpatrick_scale:!1,category:"animals_and_nature"},ox:{keywords:["animal","cow","beef"],char:"\u{1f402}",fitzpatrick_scale:!1,category:"animals_and_nature"},cow2:{keywords:["beef","ox","animal","nature","moo","milk"],char:"\u{1f404}",fitzpatrick_scale:!1,category:"animals_and_nature"},deer:{keywords:["animal","nature","horns","venison"],char:"\u{1f98c}",fitzpatrick_scale:!1,category:"animals_and_nature"},dromedary_camel:{keywords:["animal","hot","desert","hump"],char:"\u{1f42a}",fitzpatrick_scale:!1,category:"animals_and_nature"},camel:{keywords:["animal","nature","hot","desert","hump"],char:"\u{1f42b}",fitzpatrick_scale:!1,category:"animals_and_nature"},giraffe:{keywords:["animal","nature","spots","safari"],char:"\u{1f992}",fitzpatrick_scale:!1,category:"animals_and_nature"},elephant:{keywords:["animal","nature","nose","th","circus"],char:"\u{1f418}",fitzpatrick_scale:!1,category:"animals_and_nature"},rhinoceros:{keywords:["animal","nature","horn"],char:"\u{1f98f}",fitzpatrick_scale:!1,category:"animals_and_nature"},goat:{keywords:["animal","nature"],char:"\u{1f410}",fitzpatrick_scale:!1,category:"animals_and_nature"},ram:{keywords:["animal","sheep","nature"],char:"\u{1f40f}",fitzpatrick_scale:!1,category:"animals_and_nature"},sheep:{keywords:["animal","nature","wool","shipit"],char:"\u{1f411}",fitzpatrick_scale:!1,category:"animals_and_nature"},racehorse:{keywords:["animal","gamble","luck"],char:"\u{1f40e}",fitzpatrick_scale:!1,category:"animals_and_nature"},pig2:{keywords:["animal","nature"],char:"\u{1f416}",fitzpatrick_scale:!1,category:"animals_and_nature"},rat:{keywords:["animal","mouse","rodent"],char:"\u{1f400}",fitzpatrick_scale:!1,category:"animals_and_nature"},mouse2:{keywords:["animal","nature","rodent"],char:"\u{1f401}",fitzpatrick_scale:!1,category:"animals_and_nature"},rooster:{keywords:["animal","nature","chicken"],char:"\u{1f413}",fitzpatrick_scale:!1,category:"animals_and_nature"},turkey:{keywords:["animal","bird"],char:"\u{1f983}",fitzpatrick_scale:!1,category:"animals_and_nature"},dove:{keywords:["animal","bird"],char:"\u{1f54a}",fitzpatrick_scale:!1,category:"animals_and_nature"},dog2:{keywords:["animal","nature","friend","doge","pet","faithful"],char:"\u{1f415}",fitzpatrick_scale:!1,category:"animals_and_nature"},poodle:{keywords:["dog","animal","101","nature","pet"],char:"\u{1f429}",fitzpatrick_scale:!1,category:"animals_and_nature"},cat2:{keywords:["animal","meow","pet","cats"],char:"\u{1f408}",fitzpatrick_scale:!1,category:"animals_and_nature"},rabbit2:{keywords:["animal","nature","pet","magic","spring"],char:"\u{1f407}",fitzpatrick_scale:!1,category:"animals_and_nature"},chipmunk:{keywords:["animal","nature","rodent","squirrel"],char:"\u{1f43f}",fitzpatrick_scale:!1,category:"animals_and_nature"},hedgehog:{keywords:["animal","nature","spiny"],char:"\u{1f994}",fitzpatrick_scale:!1,category:"animals_and_nature"},raccoon:{keywords:["animal","nature"],char:"\u{1f99d}",fitzpatrick_scale:!1,category:"animals_and_nature"},llama:{keywords:["animal","nature","alpaca"],char:"\u{1f999}",fitzpatrick_scale:!1,category:"animals_and_nature"},hippopotamus:{keywords:["animal","nature"],char:"\u{1f99b}",fitzpatrick_scale:!1,category:"animals_and_nature"},kangaroo:{keywords:["animal","nature","australia","joey","hop","marsupial"],char:"\u{1f998}",fitzpatrick_scale:!1,category:"animals_and_nature"},badger:{keywords:["animal","nature","honey"],char:"\u{1f9a1}",fitzpatrick_scale:!1,category:"animals_and_nature"},swan:{keywords:["animal","nature","bird"],char:"\u{1f9a2}",fitzpatrick_scale:!1,category:"animals_and_nature"},peacock:{keywords:["animal","nature","peahen","bird"],char:"\u{1f99a}",fitzpatrick_scale:!1,category:"animals_and_nature"},parrot:{keywords:["animal","nature","bird","pirate","talk"],char:"\u{1f99c}",fitzpatrick_scale:!1,category:"animals_and_nature"},lobster:{keywords:["animal","nature","bisque","claws","seafood"],char:"\u{1f99e}",fitzpatrick_scale:!1,category:"animals_and_nature"},mosquito:{keywords:["animal","nature","insect","malaria"],char:"\u{1f99f}",fitzpatrick_scale:!1,category:"animals_and_nature"},paw_prints:{keywords:["animal","tracking","footprints","dog","cat","pet","feet"],char:"\u{1f43e}",fitzpatrick_scale:!1,category:"animals_and_nature"},dragon:{keywords:["animal","myth","nature","chinese","green"],char:"\u{1f409}",fitzpatrick_scale:!1,category:"animals_and_nature"},dragon_face:{keywords:["animal","myth","nature","chinese","green"],char:"\u{1f432}",fitzpatrick_scale:!1,category:"animals_and_nature"},cactus:{keywords:["vegetable","plant","nature"],char:"\u{1f335}",fitzpatrick_scale:!1,category:"animals_and_nature"},christmas_tree:{keywords:["festival","vacation","december","xmas","celebration"],char:"\u{1f384}",fitzpatrick_scale:!1,category:"animals_and_nature"},evergreen_tree:{keywords:["plant","nature"],char:"\u{1f332}",fitzpatrick_scale:!1,category:"animals_and_nature"},deciduous_tree:{keywords:["plant","nature"],char:"\u{1f333}",fitzpatrick_scale:!1,category:"animals_and_nature"},palm_tree:{keywords:["plant","vegetable","nature","summer","beach","mojito","tropical"],char:"\u{1f334}",fitzpatrick_scale:!1,category:"animals_and_nature"},seedling:{keywords:["plant","nature","grass","lawn","spring"],char:"\u{1f331}",fitzpatrick_scale:!1,category:"animals_and_nature"},herb:{keywords:["vegetable","plant","medicine","weed","grass","lawn"],char:"\u{1f33f}",fitzpatrick_scale:!1,category:"animals_and_nature"},shamrock:{keywords:["vegetable","plant","nature","irish","clover"],char:"\u2618",fitzpatrick_scale:!1,category:"animals_and_nature"},four_leaf_clover:{keywords:["vegetable","plant","nature","lucky","irish"],char:"\u{1f340}",fitzpatrick_scale:!1,category:"animals_and_nature"},bamboo:{keywords:["plant","nature","vegetable","panda","pine_decoration"],char:"\u{1f38d}",fitzpatrick_scale:!1,category:"animals_and_nature"},tanabata_tree:{keywords:["plant","nature","branch","summer"],char:"\u{1f38b}",fitzpatrick_scale:!1,category:"animals_and_nature"},leaves:{keywords:["nature","plant","tree","vegetable","grass","lawn","spring"],char:"\u{1f343}",fitzpatrick_scale:!1,category:"animals_and_nature"},fallen_leaf:{keywords:["nature","plant","vegetable","leaves"],char:"\u{1f342}",fitzpatrick_scale:!1,category:"animals_and_nature"},maple_leaf:{keywords:["nature","plant","vegetable","ca","fall"],char:"\u{1f341}",fitzpatrick_scale:!1,category:"animals_and_nature"},ear_of_rice:{keywords:["nature","plant"],char:"\u{1f33e}",fitzpatrick_scale:!1,category:"animals_and_nature"},hibiscus:{keywords:["plant","vegetable","flowers","beach"],char:"\u{1f33a}",fitzpatrick_scale:!1,category:"animals_and_nature"},sunflower:{keywords:["nature","plant","fall"],char:"\u{1f33b}",fitzpatrick_scale:!1,category:"animals_and_nature"},rose:{keywords:["flowers","valentines","love","spring"],char:"\u{1f339}",fitzpatrick_scale:!1,category:"animals_and_nature"},wilted_flower:{keywords:["plant","nature","flower"],char:"\u{1f940}",fitzpatrick_scale:!1,category:"animals_and_nature"},tulip:{keywords:["flowers","plant","nature","summer","spring"],char:"\u{1f337}",fitzpatrick_scale:!1,category:"animals_and_nature"},blossom:{keywords:["nature","flowers","yellow"],char:"\u{1f33c}",fitzpatrick_scale:!1,category:"animals_and_nature"},cherry_blossom:{keywords:["nature","plant","spring","flower"],char:"\u{1f338}",fitzpatrick_scale:!1,category:"animals_and_nature"},bouquet:{keywords:["flowers","nature","spring"],char:"\u{1f490}",fitzpatrick_scale:!1,category:"animals_and_nature"},mushroom:{keywords:["plant","vegetable"],char:"\u{1f344}",fitzpatrick_scale:!1,category:"animals_and_nature"},chestnut:{keywords:["food","squirrel"],char:"\u{1f330}",fitzpatrick_scale:!1,category:"animals_and_nature"},jack_o_lantern:{keywords:["halloween","light","pumpkin","creepy","fall"],char:"\u{1f383}",fitzpatrick_scale:!1,category:"animals_and_nature"},shell:{keywords:["nature","sea","beach"],char:"\u{1f41a}",fitzpatrick_scale:!1,category:"animals_and_nature"},spider_web:{keywords:["animal","insect","arachnid","silk"],char:"\u{1f578}",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_americas:{keywords:["globe","world","USA","international"],char:"\u{1f30e}",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_africa:{keywords:["globe","world","international"],char:"\u{1f30d}",fitzpatrick_scale:!1,category:"animals_and_nature"},earth_asia:{keywords:["globe","world","east","international"],char:"\u{1f30f}",fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon:{keywords:["nature","yellow","twilight","planet","space","night","evening","sleep"],char:"\u{1f315}",fitzpatrick_scale:!1,category:"animals_and_nature"},waning_gibbous_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep","waxing_gibbous_moon"],char:"\u{1f316}",fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f317}",fitzpatrick_scale:!1,category:"animals_and_nature"},waning_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f318}",fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f311}",fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_crescent_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f312}",fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f313}",fitzpatrick_scale:!1,category:"animals_and_nature"},waxing_gibbous_moon:{keywords:["nature","night","sky","gray","twilight","planet","space","evening","sleep"],char:"\u{1f314}",fitzpatrick_scale:!1,category:"animals_and_nature"},new_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f31a}",fitzpatrick_scale:!1,category:"animals_and_nature"},full_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f31d}",fitzpatrick_scale:!1,category:"animals_and_nature"},first_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f31b}",fitzpatrick_scale:!1,category:"animals_and_nature"},last_quarter_moon_with_face:{keywords:["nature","twilight","planet","space","night","evening","sleep"],char:"\u{1f31c}",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_with_face:{keywords:["nature","morning","sky"],char:"\u{1f31e}",fitzpatrick_scale:!1,category:"animals_and_nature"},crescent_moon:{keywords:["night","sleep","sky","evening","magic"],char:"\u{1f319}",fitzpatrick_scale:!1,category:"animals_and_nature"},star:{keywords:["night","yellow"],char:"\u2b50",fitzpatrick_scale:!1,category:"animals_and_nature"},star2:{keywords:["night","sparkle","awesome","good","magic"],char:"\u{1f31f}",fitzpatrick_scale:!1,category:"animals_and_nature"},dizzy:{keywords:["star","sparkle","shoot","magic"],char:"\u{1f4ab}",fitzpatrick_scale:!1,category:"animals_and_nature"},sparkles:{keywords:["stars","shine","shiny","cool","awesome","good","magic"],char:"\u2728",fitzpatrick_scale:!1,category:"animals_and_nature"},comet:{keywords:["space"],char:"\u2604",fitzpatrick_scale:!1,category:"animals_and_nature"},sunny:{keywords:["weather","nature","brightness","summer","beach","spring"],char:"\u2600\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_small_cloud:{keywords:["weather"],char:"\u{1f324}",fitzpatrick_scale:!1,category:"animals_and_nature"},partly_sunny:{keywords:["weather","nature","cloudy","morning","fall","spring"],char:"\u26c5",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_large_cloud:{keywords:["weather"],char:"\u{1f325}",fitzpatrick_scale:!1,category:"animals_and_nature"},sun_behind_rain_cloud:{keywords:["weather"],char:"\u{1f326}",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud:{keywords:["weather","sky"],char:"\u2601\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_rain:{keywords:["weather"],char:"\u{1f327}",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning_and_rain:{keywords:["weather","lightning"],char:"\u26c8",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_lightning:{keywords:["weather","thunder"],char:"\u{1f329}",fitzpatrick_scale:!1,category:"animals_and_nature"},zap:{keywords:["thunder","weather","lightning bolt","fast"],char:"\u26a1",fitzpatrick_scale:!1,category:"animals_and_nature"},fire:{keywords:["hot","cook","flame"],char:"\u{1f525}",fitzpatrick_scale:!1,category:"animals_and_nature"},boom:{keywords:["bomb","explode","explosion","collision","blown"],char:"\u{1f4a5}",fitzpatrick_scale:!1,category:"animals_and_nature"},snowflake:{keywords:["winter","season","cold","weather","christmas","xmas"],char:"\u2744\ufe0f",fitzpatrick_scale:!1,category:"animals_and_nature"},cloud_with_snow:{keywords:["weather"],char:"\u{1f328}",fitzpatrick_scale:!1,category:"animals_and_nature"},snowman:{keywords:["winter","season","cold","weather","christmas","xmas","frozen","without_snow"],char:"\u26c4",fitzpatrick_scale:!1,category:"animals_and_nature"},snowman_with_snow:{keywords:["winter","season","cold","weather","christmas","xmas","frozen"],char:"\u2603",fitzpatrick_scale:!1,category:"animals_and_nature"},wind_face:{keywords:["gust","air"],char:"\u{1f32c}",fitzpatrick_scale:!1,category:"animals_and_nature"},dash:{keywords:["wind","air","fast","shoo","fart","smoke","puff"],char:"\u{1f4a8}",fitzpatrick_scale:!1,category:"animals_and_nature"},tornado:{keywords:["weather","cyclone","twister"],char:"\u{1f32a}",fitzpatrick_scale:!1,category:"animals_and_nature"},fog:{keywords:["weather"],char:"\u{1f32b}",fitzpatrick_scale:!1,category:"animals_and_nature"},open_umbrella:{keywords:["weather","spring"],char:"\u2602",fitzpatrick_scale:!1,category:"animals_and_nature"},umbrella:{keywords:["rainy","weather","spring"],char:"\u2614",fitzpatrick_scale:!1,category:"animals_and_nature"},droplet:{keywords:["water","drip","faucet","spring"],char:"\u{1f4a7}",fitzpatrick_scale:!1,category:"animals_and_nature"},sweat_drops:{keywords:["water","drip","oops"],char:"\u{1f4a6}",fitzpatrick_scale:!1,category:"animals_and_nature"},ocean:{keywords:["sea","water","wave","nature","tsunami","disaster"],char:"\u{1f30a}",fitzpatrick_scale:!1,category:"animals_and_nature"},green_apple:{keywords:["fruit","nature"],char:"\u{1f34f}",fitzpatrick_scale:!1,category:"food_and_drink"},apple:{keywords:["fruit","mac","school"],char:"\u{1f34e}",fitzpatrick_scale:!1,category:"food_and_drink"},pear:{keywords:["fruit","nature","food"],char:"\u{1f350}",fitzpatrick_scale:!1,category:"food_and_drink"},tangerine:{keywords:["food","fruit","nature","orange"],char:"\u{1f34a}",fitzpatrick_scale:!1,category:"food_and_drink"},lemon:{keywords:["fruit","nature"],char:"\u{1f34b}",fitzpatrick_scale:!1,category:"food_and_drink"},banana:{keywords:["fruit","food","monkey"],char:"\u{1f34c}",fitzpatrick_scale:!1,category:"food_and_drink"},watermelon:{keywords:["fruit","food","picnic","summer"],char:"\u{1f349}",fitzpatrick_scale:!1,category:"food_and_drink"},grapes:{keywords:["fruit","food","wine"],char:"\u{1f347}",fitzpatrick_scale:!1,category:"food_and_drink"},strawberry:{keywords:["fruit","food","nature"],char:"\u{1f353}",fitzpatrick_scale:!1,category:"food_and_drink"},melon:{keywords:["fruit","nature","food"],char:"\u{1f348}",fitzpatrick_scale:!1,category:"food_and_drink"},cherries:{keywords:["food","fruit"],char:"\u{1f352}",fitzpatrick_scale:!1,category:"food_and_drink"},peach:{keywords:["fruit","nature","food"],char:"\u{1f351}",fitzpatrick_scale:!1,category:"food_and_drink"},pineapple:{keywords:["fruit","nature","food"],char:"\u{1f34d}",fitzpatrick_scale:!1,category:"food_and_drink"},coconut:{keywords:["fruit","nature","food","palm"],char:"\u{1f965}",fitzpatrick_scale:!1,category:"food_and_drink"},kiwi_fruit:{keywords:["fruit","food"],char:"\u{1f95d}",fitzpatrick_scale:!1,category:"food_and_drink"},mango:{keywords:["fruit","food","tropical"],char:"\u{1f96d}",fitzpatrick_scale:!1,category:"food_and_drink"},avocado:{keywords:["fruit","food"],char:"\u{1f951}",fitzpatrick_scale:!1,category:"food_and_drink"},broccoli:{keywords:["fruit","food","vegetable"],char:"\u{1f966}",fitzpatrick_scale:!1,category:"food_and_drink"},tomato:{keywords:["fruit","vegetable","nature","food"],char:"\u{1f345}",fitzpatrick_scale:!1,category:"food_and_drink"},eggplant:{keywords:["vegetable","nature","food","aubergine"],char:"\u{1f346}",fitzpatrick_scale:!1,category:"food_and_drink"},cucumber:{keywords:["fruit","food","pickle"],char:"\u{1f952}",fitzpatrick_scale:!1,category:"food_and_drink"},carrot:{keywords:["vegetable","food","orange"],char:"\u{1f955}",fitzpatrick_scale:!1,category:"food_and_drink"},hot_pepper:{keywords:["food","spicy","chilli","chili"],char:"\u{1f336}",fitzpatrick_scale:!1,category:"food_and_drink"},potato:{keywords:["food","tuber","vegatable","starch"],char:"\u{1f954}",fitzpatrick_scale:!1,category:"food_and_drink"},corn:{keywords:["food","vegetable","plant"],char:"\u{1f33d}",fitzpatrick_scale:!1,category:"food_and_drink"},leafy_greens:{keywords:["food","vegetable","plant","bok choy","cabbage","kale","lettuce"],char:"\u{1f96c}",fitzpatrick_scale:!1,category:"food_and_drink"},sweet_potato:{keywords:["food","nature"],char:"\u{1f360}",fitzpatrick_scale:!1,category:"food_and_drink"},peanuts:{keywords:["food","nut"],char:"\u{1f95c}",fitzpatrick_scale:!1,category:"food_and_drink"},honey_pot:{keywords:["bees","sweet","kitchen"],char:"\u{1f36f}",fitzpatrick_scale:!1,category:"food_and_drink"},croissant:{keywords:["food","bread","french"],char:"\u{1f950}",fitzpatrick_scale:!1,category:"food_and_drink"},bread:{keywords:["food","wheat","breakfast","toast"],char:"\u{1f35e}",fitzpatrick_scale:!1,category:"food_and_drink"},baguette_bread:{keywords:["food","bread","french"],char:"\u{1f956}",fitzpatrick_scale:!1,category:"food_and_drink"},bagel:{keywords:["food","bread","bakery","schmear"],char:"\u{1f96f}",fitzpatrick_scale:!1,category:"food_and_drink"},pretzel:{keywords:["food","bread","twisted"],char:"\u{1f968}",fitzpatrick_scale:!1,category:"food_and_drink"},cheese:{keywords:["food","chadder"],char:"\u{1f9c0}",fitzpatrick_scale:!1,category:"food_and_drink"},egg:{keywords:["food","chicken","breakfast"],char:"\u{1f95a}",fitzpatrick_scale:!1,category:"food_and_drink"},bacon:{keywords:["food","breakfast","pork","pig","meat"],char:"\u{1f953}",fitzpatrick_scale:!1,category:"food_and_drink"},steak:{keywords:["food","cow","meat","cut","chop","lambchop","porkchop"],char:"\u{1f969}",fitzpatrick_scale:!1,category:"food_and_drink"},pancakes:{keywords:["food","breakfast","flapjacks","hotcakes"],char:"\u{1f95e}",fitzpatrick_scale:!1,category:"food_and_drink"},poultry_leg:{keywords:["food","meat","drumstick","bird","chicken","turkey"],char:"\u{1f357}",fitzpatrick_scale:!1,category:"food_and_drink"},meat_on_bone:{keywords:["good","food","drumstick"],char:"\u{1f356}",fitzpatrick_scale:!1,category:"food_and_drink"},bone:{keywords:["skeleton"],char:"\u{1f9b4}",fitzpatrick_scale:!1,category:"food_and_drink"},fried_shrimp:{keywords:["food","animal","appetizer","summer"],char:"\u{1f364}",fitzpatrick_scale:!1,category:"food_and_drink"},fried_egg:{keywords:["food","breakfast","kitchen","egg"],char:"\u{1f373}",fitzpatrick_scale:!1,category:"food_and_drink"},hamburger:{keywords:["meat","fast food","beef","cheeseburger","mcdonalds","burger king"],char:"\u{1f354}",fitzpatrick_scale:!1,category:"food_and_drink"},fries:{keywords:["chips","snack","fast food"],char:"\u{1f35f}",fitzpatrick_scale:!1,category:"food_and_drink"},stuffed_flatbread:{keywords:["food","flatbread","stuffed","gyro"],char:"\u{1f959}",fitzpatrick_scale:!1,category:"food_and_drink"},hotdog:{keywords:["food","frankfurter"],char:"\u{1f32d}",fitzpatrick_scale:!1,category:"food_and_drink"},pizza:{keywords:["food","party"],char:"\u{1f355}",fitzpatrick_scale:!1,category:"food_and_drink"},sandwich:{keywords:["food","lunch","bread"],char:"\u{1f96a}",fitzpatrick_scale:!1,category:"food_and_drink"},canned_food:{keywords:["food","soup"],char:"\u{1f96b}",fitzpatrick_scale:!1,category:"food_and_drink"},spaghetti:{keywords:["food","italian","noodle"],char:"\u{1f35d}",fitzpatrick_scale:!1,category:"food_and_drink"},taco:{keywords:["food","mexican"],char:"\u{1f32e}",fitzpatrick_scale:!1,category:"food_and_drink"},burrito:{keywords:["food","mexican"],char:"\u{1f32f}",fitzpatrick_scale:!1,category:"food_and_drink"},green_salad:{keywords:["food","healthy","lettuce"],char:"\u{1f957}",fitzpatrick_scale:!1,category:"food_and_drink"},shallow_pan_of_food:{keywords:["food","cooking","casserole","paella"],char:"\u{1f958}",fitzpatrick_scale:!1,category:"food_and_drink"},ramen:{keywords:["food","japanese","noodle","chopsticks"],char:"\u{1f35c}",fitzpatrick_scale:!1,category:"food_and_drink"},stew:{keywords:["food","meat","soup"],char:"\u{1f372}",fitzpatrick_scale:!1,category:"food_and_drink"},fish_cake:{keywords:["food","japan","sea","beach","narutomaki","pink","swirl","kamaboko","surimi","ramen"],char:"\u{1f365}",fitzpatrick_scale:!1,category:"food_and_drink"},fortune_cookie:{keywords:["food","prophecy"],char:"\u{1f960}",fitzpatrick_scale:!1,category:"food_and_drink"},sushi:{keywords:["food","fish","japanese","rice"],char:"\u{1f363}",fitzpatrick_scale:!1,category:"food_and_drink"},bento:{keywords:["food","japanese","box"],char:"\u{1f371}",fitzpatrick_scale:!1,category:"food_and_drink"},curry:{keywords:["food","spicy","hot","indian"],char:"\u{1f35b}",fitzpatrick_scale:!1,category:"food_and_drink"},rice_ball:{keywords:["food","japanese"],char:"\u{1f359}",fitzpatrick_scale:!1,category:"food_and_drink"},rice:{keywords:["food","china","asian"],char:"\u{1f35a}",fitzpatrick_scale:!1,category:"food_and_drink"},rice_cracker:{keywords:["food","japanese"],char:"\u{1f358}",fitzpatrick_scale:!1,category:"food_and_drink"},oden:{keywords:["food","japanese"],char:"\u{1f362}",fitzpatrick_scale:!1,category:"food_and_drink"},dango:{keywords:["food","dessert","sweet","japanese","barbecue","meat"],char:"\u{1f361}",fitzpatrick_scale:!1,category:"food_and_drink"},shaved_ice:{keywords:["hot","dessert","summer"],char:"\u{1f367}",fitzpatrick_scale:!1,category:"food_and_drink"},ice_cream:{keywords:["food","hot","dessert"],char:"\u{1f368}",fitzpatrick_scale:!1,category:"food_and_drink"},icecream:{keywords:["food","hot","dessert","summer"],char:"\u{1f366}",fitzpatrick_scale:!1,category:"food_and_drink"},pie:{keywords:["food","dessert","pastry"],char:"\u{1f967}",fitzpatrick_scale:!1,category:"food_and_drink"},cake:{keywords:["food","dessert"],char:"\u{1f370}",fitzpatrick_scale:!1,category:"food_and_drink"},cupcake:{keywords:["food","dessert","bakery","sweet"],char:"\u{1f9c1}",fitzpatrick_scale:!1,category:"food_and_drink"},moon_cake:{keywords:["food","autumn"],char:"\u{1f96e}",fitzpatrick_scale:!1,category:"food_and_drink"},birthday:{keywords:["food","dessert","cake"],char:"\u{1f382}",fitzpatrick_scale:!1,category:"food_and_drink"},custard:{keywords:["dessert","food"],char:"\u{1f36e}",fitzpatrick_scale:!1,category:"food_and_drink"},candy:{keywords:["snack","dessert","sweet","lolly"],char:"\u{1f36c}",fitzpatrick_scale:!1,category:"food_and_drink"},lollipop:{keywords:["food","snack","candy","sweet"],char:"\u{1f36d}",fitzpatrick_scale:!1,category:"food_and_drink"},chocolate_bar:{keywords:["food","snack","dessert","sweet"],char:"\u{1f36b}",fitzpatrick_scale:!1,category:"food_and_drink"},popcorn:{keywords:["food","movie theater","films","snack"],char:"\u{1f37f}",fitzpatrick_scale:!1,category:"food_and_drink"},dumpling:{keywords:["food","empanada","pierogi","potsticker"],char:"\u{1f95f}",fitzpatrick_scale:!1,category:"food_and_drink"},doughnut:{keywords:["food","dessert","snack","sweet","donut"],char:"\u{1f369}",fitzpatrick_scale:!1,category:"food_and_drink"},cookie:{keywords:["food","snack","oreo","chocolate","sweet","dessert"],char:"\u{1f36a}",fitzpatrick_scale:!1,category:"food_and_drink"},milk_glass:{keywords:["beverage","drink","cow"],char:"\u{1f95b}",fitzpatrick_scale:!1,category:"food_and_drink"},beer:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:"\u{1f37a}",fitzpatrick_scale:!1,category:"food_and_drink"},beers:{keywords:["relax","beverage","drink","drunk","party","pub","summer","alcohol","booze"],char:"\u{1f37b}",fitzpatrick_scale:!1,category:"food_and_drink"},clinking_glasses:{keywords:["beverage","drink","party","alcohol","celebrate","cheers","wine","champagne","toast"],char:"\u{1f942}",fitzpatrick_scale:!1,category:"food_and_drink"},wine_glass:{keywords:["drink","beverage","drunk","alcohol","booze"],char:"\u{1f377}",fitzpatrick_scale:!1,category:"food_and_drink"},tumbler_glass:{keywords:["drink","beverage","drunk","alcohol","liquor","booze","bourbon","scotch","whisky","glass","shot"],char:"\u{1f943}",fitzpatrick_scale:!1,category:"food_and_drink"},cocktail:{keywords:["drink","drunk","alcohol","beverage","booze","mojito"],char:"\u{1f378}",fitzpatrick_scale:!1,category:"food_and_drink"},tropical_drink:{keywords:["beverage","cocktail","summer","beach","alcohol","booze","mojito"],char:"\u{1f379}",fitzpatrick_scale:!1,category:"food_and_drink"},champagne:{keywords:["drink","wine","bottle","celebration"],char:"\u{1f37e}",fitzpatrick_scale:!1,category:"food_and_drink"},sake:{keywords:["wine","drink","drunk","beverage","japanese","alcohol","booze"],char:"\u{1f376}",fitzpatrick_scale:!1,category:"food_and_drink"},tea:{keywords:["drink","bowl","breakfast","green","british"],char:"\u{1f375}",fitzpatrick_scale:!1,category:"food_and_drink"},cup_with_straw:{keywords:["drink","soda"],char:"\u{1f964}",fitzpatrick_scale:!1,category:"food_and_drink"},coffee:{keywords:["beverage","caffeine","latte","espresso"],char:"\u2615",fitzpatrick_scale:!1,category:"food_and_drink"},baby_bottle:{keywords:["food","container","milk"],char:"\u{1f37c}",fitzpatrick_scale:!1,category:"food_and_drink"},salt:{keywords:["condiment","shaker"],char:"\u{1f9c2}",fitzpatrick_scale:!1,category:"food_and_drink"},spoon:{keywords:["cutlery","kitchen","tableware"],char:"\u{1f944}",fitzpatrick_scale:!1,category:"food_and_drink"},fork_and_knife:{keywords:["cutlery","kitchen"],char:"\u{1f374}",fitzpatrick_scale:!1,category:"food_and_drink"},plate_with_cutlery:{keywords:["food","eat","meal","lunch","dinner","restaurant"],char:"\u{1f37d}",fitzpatrick_scale:!1,category:"food_and_drink"},bowl_with_spoon:{keywords:["food","breakfast","cereal","oatmeal","porridge"],char:"\u{1f963}",fitzpatrick_scale:!1,category:"food_and_drink"},takeout_box:{keywords:["food","leftovers"],char:"\u{1f961}",fitzpatrick_scale:!1,category:"food_and_drink"},chopsticks:{keywords:["food"],char:"\u{1f962}",fitzpatrick_scale:!1,category:"food_and_drink"},soccer:{keywords:["sports","football"],char:"\u26bd",fitzpatrick_scale:!1,category:"activity"},basketball:{keywords:["sports","balls","NBA"],char:"\u{1f3c0}",fitzpatrick_scale:!1,category:"activity"},football:{keywords:["sports","balls","NFL"],char:"\u{1f3c8}",fitzpatrick_scale:!1,category:"activity"},baseball:{keywords:["sports","balls"],char:"\u26be",fitzpatrick_scale:!1,category:"activity"},softball:{keywords:["sports","balls"],char:"\u{1f94e}",fitzpatrick_scale:!1,category:"activity"},tennis:{keywords:["sports","balls","green"],char:"\u{1f3be}",fitzpatrick_scale:!1,category:"activity"},volleyball:{keywords:["sports","balls"],char:"\u{1f3d0}",fitzpatrick_scale:!1,category:"activity"},rugby_football:{keywords:["sports","team"],char:"\u{1f3c9}",fitzpatrick_scale:!1,category:"activity"},flying_disc:{keywords:["sports","frisbee","ultimate"],char:"\u{1f94f}",fitzpatrick_scale:!1,category:"activity"},"8ball":{keywords:["pool","hobby","game","luck","magic"],char:"\u{1f3b1}",fitzpatrick_scale:!1,category:"activity"},golf:{keywords:["sports","business","flag","hole","summer"],char:"\u26f3",fitzpatrick_scale:!1,category:"activity"},golfing_woman:{keywords:["sports","business","woman","female"],char:"\u{1f3cc}\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"activity"},golfing_man:{keywords:["sports","business"],char:"\u{1f3cc}",fitzpatrick_scale:!0,category:"activity"},ping_pong:{keywords:["sports","pingpong"],char:"\u{1f3d3}",fitzpatrick_scale:!1,category:"activity"},badminton:{keywords:["sports"],char:"\u{1f3f8}",fitzpatrick_scale:!1,category:"activity"},goal_net:{keywords:["sports"],char:"\u{1f945}",fitzpatrick_scale:!1,category:"activity"},ice_hockey:{keywords:["sports"],char:"\u{1f3d2}",fitzpatrick_scale:!1,category:"activity"},field_hockey:{keywords:["sports"],char:"\u{1f3d1}",fitzpatrick_scale:!1,category:"activity"},lacrosse:{keywords:["sports","ball","stick"],char:"\u{1f94d}",fitzpatrick_scale:!1,category:"activity"},cricket:{keywords:["sports"],char:"\u{1f3cf}",fitzpatrick_scale:!1,category:"activity"},ski:{keywords:["sports","winter","cold","snow"],char:"\u{1f3bf}",fitzpatrick_scale:!1,category:"activity"},skier:{keywords:["sports","winter","snow"],char:"\u26f7",fitzpatrick_scale:!1,category:"activity"},snowboarder:{keywords:["sports","winter"],char:"\u{1f3c2}",fitzpatrick_scale:!0,category:"activity"},person_fencing:{keywords:["sports","fencing","sword"],char:"\u{1f93a}",fitzpatrick_scale:!1,category:"activity"},women_wrestling:{keywords:["sports","wrestlers"],char:"\u{1f93c}\u200d\u2640\ufe0f",fitzpatrick_scale:!1,category:"activity"},men_wrestling:{keywords:["sports","wrestlers"],char:"\u{1f93c}\u200d\u2642\ufe0f",fitzpatrick_scale:!1,category:"activity"},woman_cartwheeling:{keywords:["gymnastics"],char:"\u{1f938}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_cartwheeling:{keywords:["gymnastics"],char:"\u{1f938}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},woman_playing_handball:{keywords:["sports"],char:"\u{1f93e}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_playing_handball:{keywords:["sports"],char:"\u{1f93e}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},ice_skate:{keywords:["sports"],char:"\u26f8",fitzpatrick_scale:!1,category:"activity"},curling_stone:{keywords:["sports"],char:"\u{1f94c}",fitzpatrick_scale:!1,category:"activity"},skateboard:{keywords:["board"],char:"\u{1f6f9}",fitzpatrick_scale:!1,category:"activity"},sled:{keywords:["sleigh","luge","toboggan"],char:"\u{1f6f7}",fitzpatrick_scale:!1,category:"activity"},bow_and_arrow:{keywords:["sports"],char:"\u{1f3f9}",fitzpatrick_scale:!1,category:"activity"},fishing_pole_and_fish:{keywords:["food","hobby","summer"],char:"\u{1f3a3}",fitzpatrick_scale:!1,category:"activity"},boxing_glove:{keywords:["sports","fighting"],char:"\u{1f94a}",fitzpatrick_scale:!1,category:"activity"},martial_arts_uniform:{keywords:["judo","karate","taekwondo"],char:"\u{1f94b}",fitzpatrick_scale:!1,category:"activity"},rowing_woman:{keywords:["sports","hobby","water","ship","woman","female"],char:"\u{1f6a3}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},rowing_man:{keywords:["sports","hobby","water","ship"],char:"\u{1f6a3}",fitzpatrick_scale:!0,category:"activity"},climbing_woman:{keywords:["sports","hobby","woman","female","rock"],char:"\u{1f9d7}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},climbing_man:{keywords:["sports","hobby","man","male","rock"],char:"\u{1f9d7}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},swimming_woman:{keywords:["sports","exercise","human","athlete","water","summer","woman","female"],char:"\u{1f3ca}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},swimming_man:{keywords:["sports","exercise","human","athlete","water","summer"],char:"\u{1f3ca}",fitzpatrick_scale:!0,category:"activity"},woman_playing_water_polo:{keywords:["sports","pool"],char:"\u{1f93d}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_playing_water_polo:{keywords:["sports","pool"],char:"\u{1f93d}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},woman_in_lotus_position:{keywords:["woman","female","meditation","yoga","serenity","zen","mindfulness"],char:"\u{1f9d8}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_in_lotus_position:{keywords:["man","male","meditation","yoga","serenity","zen","mindfulness"],char:"\u{1f9d8}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},surfing_woman:{keywords:["sports","ocean","sea","summer","beach","woman","female"],char:"\u{1f3c4}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},surfing_man:{keywords:["sports","ocean","sea","summer","beach"],char:"\u{1f3c4}",fitzpatrick_scale:!0,category:"activity"},bath:{keywords:["clean","shower","bathroom"],char:"\u{1f6c0}",fitzpatrick_scale:!0,category:"activity"},basketball_woman:{keywords:["sports","human","woman","female"],char:"\u26f9\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},basketball_man:{keywords:["sports","human"],char:"\u26f9",fitzpatrick_scale:!0,category:"activity"},weight_lifting_woman:{keywords:["sports","training","exercise","woman","female"],char:"\u{1f3cb}\ufe0f\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},weight_lifting_man:{keywords:["sports","training","exercise"],char:"\u{1f3cb}",fitzpatrick_scale:!0,category:"activity"},biking_woman:{keywords:["sports","bike","exercise","hipster","woman","female"],char:"\u{1f6b4}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},biking_man:{keywords:["sports","bike","exercise","hipster"],char:"\u{1f6b4}",fitzpatrick_scale:!0,category:"activity"},mountain_biking_woman:{keywords:["transportation","sports","human","race","bike","woman","female"],char:"\u{1f6b5}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},mountain_biking_man:{keywords:["transportation","sports","human","race","bike"],char:"\u{1f6b5}",fitzpatrick_scale:!0,category:"activity"},horse_racing:{keywords:["animal","betting","competition","gambling","luck"],char:"\u{1f3c7}",fitzpatrick_scale:!0,category:"activity"},business_suit_levitating:{keywords:["suit","business","levitate","hover","jump"],char:"\u{1f574}",fitzpatrick_scale:!0,category:"activity"},trophy:{keywords:["win","award","contest","place","ftw","ceremony"],char:"\u{1f3c6}",fitzpatrick_scale:!1,category:"activity"},running_shirt_with_sash:{keywords:["play","pageant"],char:"\u{1f3bd}",fitzpatrick_scale:!1,category:"activity"},medal_sports:{keywords:["award","winning"],char:"\u{1f3c5}",fitzpatrick_scale:!1,category:"activity"},medal_military:{keywords:["award","winning","army"],char:"\u{1f396}",fitzpatrick_scale:!1,category:"activity"},"1st_place_medal":{keywords:["award","winning","first"],char:"\u{1f947}",fitzpatrick_scale:!1,category:"activity"},"2nd_place_medal":{keywords:["award","second"],char:"\u{1f948}",fitzpatrick_scale:!1,category:"activity"},"3rd_place_medal":{keywords:["award","third"],char:"\u{1f949}",fitzpatrick_scale:!1,category:"activity"},reminder_ribbon:{keywords:["sports","cause","support","awareness"],char:"\u{1f397}",fitzpatrick_scale:!1,category:"activity"},rosette:{keywords:["flower","decoration","military"],char:"\u{1f3f5}",fitzpatrick_scale:!1,category:"activity"},ticket:{keywords:["event","concert","pass"],char:"\u{1f3ab}",fitzpatrick_scale:!1,category:"activity"},tickets:{keywords:["sports","concert","entrance"],char:"\u{1f39f}",fitzpatrick_scale:!1,category:"activity"},performing_arts:{keywords:["acting","theater","drama"],char:"\u{1f3ad}",fitzpatrick_scale:!1,category:"activity"},art:{keywords:["design","paint","draw","colors"],char:"\u{1f3a8}",fitzpatrick_scale:!1,category:"activity"},circus_tent:{keywords:["festival","carnival","party"],char:"\u{1f3aa}",fitzpatrick_scale:!1,category:"activity"},woman_juggling:{keywords:["juggle","balance","skill","multitask"],char:"\u{1f939}\u200d\u2640\ufe0f",fitzpatrick_scale:!0,category:"activity"},man_juggling:{keywords:["juggle","balance","skill","multitask"],char:"\u{1f939}\u200d\u2642\ufe0f",fitzpatrick_scale:!0,category:"activity"},microphone:{keywords:["sound","music","PA","sing","talkshow"],char:"\u{1f3a4}",fitzpatrick_scale:!1,category:"activity"},headphones:{keywords:["music","score","gadgets"],char:"\u{1f3a7}",fitzpatrick_scale:!1,category:"activity"},musical_score:{keywords:["treble","clef","compose"],char:"\u{1f3bc}",fitzpatrick_scale:!1,category:"activity"},musical_keyboard:{keywords:["piano","instrument","compose"],char:"\u{1f3b9}",fitzpatrick_scale:!1,category:"activity"},drum:{keywords:["music","instrument","drumsticks","snare"],char:"\u{1f941}",fitzpatrick_scale:!1,category:"activity"},saxophone:{keywords:["music","instrument","jazz","blues"],char:"\u{1f3b7}",fitzpatrick_scale:!1,category:"activity"},trumpet:{keywords:["music","brass"],char:"\u{1f3ba}",fitzpatrick_scale:!1,category:"activity"},guitar:{keywords:["music","instrument"],char:"\u{1f3b8}",fitzpatrick_scale:!1,category:"activity"},violin:{keywords:["music","instrument","orchestra","symphony"],char:"\u{1f3bb}",fitzpatrick_scale:!1,category:"activity"},clapper:{keywords:["movie","film","record"],char:"\u{1f3ac}",fitzpatrick_scale:!1,category:"activity"},video_game:{keywords:["play","console","PS4","controller"],char:"\u{1f3ae}",fitzpatrick_scale:!1,category:"activity"},space_invader:{keywords:["game","arcade","play"],char:"\u{1f47e}",fitzpatrick_scale:!1,category:"activity"},dart:{keywords:["game","play","bar","target","bullseye"],char:"\u{1f3af}",fitzpatrick_scale:!1,category:"activity"},game_die:{keywords:["dice","random","tabletop","play","luck"],char:"\u{1f3b2}",fitzpatrick_scale:!1,category:"activity"},chess_pawn:{keywords:["expendable"],char:"\u265f",fitzpatrick_scale:!1,category:"activity"},slot_machine:{keywords:["bet","gamble","vegas","fruit machine","luck","casino"],char:"\u{1f3b0}",fitzpatrick_scale:!1,category:"activity"},jigsaw:{keywords:["interlocking","puzzle","piece"],char:"\u{1f9e9}",fitzpatrick_scale:!1,category:"activity"},bowling:{keywords:["sports","fun","play"],char:"\u{1f3b3}",fitzpatrick_scale:!1,category:"activity"},red_car:{keywords:["red","transportation","vehicle"],char:"\u{1f697}",fitzpatrick_scale:!1,category:"travel_and_places"},taxi:{keywords:["uber","vehicle","cars","transportation"],char:"\u{1f695}",fitzpatrick_scale:!1,category:"travel_and_places"},blue_car:{keywords:["transportation","vehicle"],char:"\u{1f699}",fitzpatrick_scale:!1,category:"travel_and_places"},bus:{keywords:["car","vehicle","transportation"],char:"\u{1f68c}",fitzpatrick_scale:!1,category:"travel_and_places"},trolleybus:{keywords:["bart","transportation","vehicle"],char:"\u{1f68e}",fitzpatrick_scale:!1,category:"travel_and_places"},racing_car:{keywords:["sports","race","fast","formula","f1"],char:"\u{1f3ce}",fitzpatrick_scale:!1,category:"travel_and_places"},police_car:{keywords:["vehicle","cars","transportation","law","legal","enforcement"],char:"\u{1f693}",fitzpatrick_scale:!1,category:"travel_and_places"},ambulance:{keywords:["health","911","hospital"],char:"\u{1f691}",fitzpatrick_scale:!1,category:"travel_and_places"},fire_engine:{keywords:["transportation","cars","vehicle"],char:"\u{1f692}",fitzpatrick_scale:!1,category:"travel_and_places"},minibus:{keywords:["vehicle","car","transportation"],char:"\u{1f690}",fitzpatrick_scale:!1,category:"travel_and_places"},truck:{keywords:["cars","transportation"],char:"\u{1f69a}",fitzpatrick_scale:!1,category:"travel_and_places"},articulated_lorry:{keywords:["vehicle","cars","transportation","express"],char:"\u{1f69b}",fitzpatrick_scale:!1,category:"travel_and_places"},tractor:{keywords:["vehicle","car","farming","agriculture"],char:"\u{1f69c}",fitzpatrick_scale:!1,category:"travel_and_places"},kick_scooter:{keywords:["vehicle","kick","razor"],char:"\u{1f6f4}",fitzpatrick_scale:!1,category:"travel_and_places"},motorcycle:{keywords:["race","sports","fast"],char:"\u{1f3cd}",fitzpatrick_scale:!1,category:"travel_and_places"},bike:{keywords:["sports","bicycle","exercise","hipster"],char:"\u{1f6b2}",fitzpatrick_scale:!1,category:"travel_and_places"},motor_scooter:{keywords:["vehicle","vespa","sasha"],char:"\u{1f6f5}",fitzpatrick_scale:!1,category:"travel_and_places"},rotating_light:{keywords:["police","ambulance","911","emergency","alert","error","pinged","law","legal"],char:"\u{1f6a8}",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_police_car:{keywords:["vehicle","law","legal","enforcement","911"],char:"\u{1f694}",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_bus:{keywords:["vehicle","transportation"],char:"\u{1f68d}",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_automobile:{keywords:["car","vehicle","transportation"],char:"\u{1f698}",fitzpatrick_scale:!1,category:"travel_and_places"},oncoming_taxi:{keywords:["vehicle","cars","uber"],char:"\u{1f696}",fitzpatrick_scale:!1,category:"travel_and_places"},aerial_tramway:{keywords:["transportation","vehicle","ski"],char:"\u{1f6a1}",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_cableway:{keywords:["transportation","vehicle","ski"],char:"\u{1f6a0}",fitzpatrick_scale:!1,category:"travel_and_places"},suspension_railway:{keywords:["vehicle","transportation"],char:"\u{1f69f}",fitzpatrick_scale:!1,category:"travel_and_places"},railway_car:{keywords:["transportation","vehicle"],char:"\u{1f683}",fitzpatrick_scale:!1,category:"travel_and_places"},train:{keywords:["transportation","vehicle","carriage","public","travel"],char:"\u{1f68b}",fitzpatrick_scale:!1,category:"travel_and_places"},monorail:{keywords:["transportation","vehicle"],char:"\u{1f69d}",fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_side:{keywords:["transportation","vehicle"],char:"\u{1f684}",fitzpatrick_scale:!1,category:"travel_and_places"},bullettrain_front:{keywords:["transportation","vehicle","speed","fast","public","travel"],char:"\u{1f685}",fitzpatrick_scale:!1,category:"travel_and_places"},light_rail:{keywords:["transportation","vehicle"],char:"\u{1f688}",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_railway:{keywords:["transportation","vehicle"],char:"\u{1f69e}",fitzpatrick_scale:!1,category:"travel_and_places"},steam_locomotive:{keywords:["transportation","vehicle","train"],char:"\u{1f682}",fitzpatrick_scale:!1,category:"travel_and_places"},train2:{keywords:["transportation","vehicle"],char:"\u{1f686}",fitzpatrick_scale:!1,category:"travel_and_places"},metro:{keywords:["transportation","blue-square","mrt","underground","tube"],char:"\u{1f687}",fitzpatrick_scale:!1,category:"travel_and_places"},tram:{keywords:["transportation","vehicle"],char:"\u{1f68a}",fitzpatrick_scale:!1,category:"travel_and_places"},station:{keywords:["transportation","vehicle","public"],char:"\u{1f689}",fitzpatrick_scale:!1,category:"travel_and_places"},flying_saucer:{keywords:["transportation","vehicle","ufo"],char:"\u{1f6f8}",fitzpatrick_scale:!1,category:"travel_and_places"},helicopter:{keywords:["transportation","vehicle","fly"],char:"\u{1f681}",fitzpatrick_scale:!1,category:"travel_and_places"},small_airplane:{keywords:["flight","transportation","fly","vehicle"],char:"\u{1f6e9}",fitzpatrick_scale:!1,category:"travel_and_places"},airplane:{keywords:["vehicle","transportation","flight","fly"],char:"\u2708\ufe0f",fitzpatrick_scale:!1,category:"travel_and_places"},flight_departure:{keywords:["airport","flight","landing"],char:"\u{1f6eb}",fitzpatrick_scale:!1,category:"travel_and_places"},flight_arrival:{keywords:["airport","flight","boarding"],char:"\u{1f6ec}",fitzpatrick_scale:!1,category:"travel_and_places"},sailboat:{keywords:["ship","summer","transportation","water","sailing"],char:"\u26f5",fitzpatrick_scale:!1,category:"travel_and_places"},motor_boat:{keywords:["ship"],char:"\u{1f6e5}",fitzpatrick_scale:!1,category:"travel_and_places"},speedboat:{keywords:["ship","transportation","vehicle","summer"],char:"\u{1f6a4}",fitzpatrick_scale:!1,category:"travel_and_places"},ferry:{keywords:["boat","ship","yacht"],char:"\u26f4",fitzpatrick_scale:!1,category:"travel_and_places"},passenger_ship:{keywords:["yacht","cruise","ferry"],char:"\u{1f6f3}",fitzpatrick_scale:!1,category:"travel_and_places"},rocket:{keywords:["launch","ship","staffmode","NASA","outer space","outer_space","fly"],char:"\u{1f680}",fitzpatrick_scale:!1,category:"travel_and_places"},artificial_satellite:{keywords:["communication","gps","orbit","spaceflight","NASA","ISS"],char:"\u{1f6f0}",fitzpatrick_scale:!1,category:"travel_and_places"},seat:{keywords:["sit","airplane","transport","bus","flight","fly"],char:"\u{1f4ba}",fitzpatrick_scale:!1,category:"travel_and_places"},canoe:{keywords:["boat","paddle","water","ship"],char:"\u{1f6f6}",fitzpatrick_scale:!1,category:"travel_and_places"},anchor:{keywords:["ship","ferry","sea","boat"],char:"\u2693",fitzpatrick_scale:!1,category:"travel_and_places"},construction:{keywords:["wip","progress","caution","warning"],char:"\u{1f6a7}",fitzpatrick_scale:!1,category:"travel_and_places"},fuelpump:{keywords:["gas station","petroleum"],char:"\u26fd",fitzpatrick_scale:!1,category:"travel_and_places"},busstop:{keywords:["transportation","wait"],char:"\u{1f68f}",fitzpatrick_scale:!1,category:"travel_and_places"},vertical_traffic_light:{keywords:["transportation","driving"],char:"\u{1f6a6}",fitzpatrick_scale:!1,category:"travel_and_places"},traffic_light:{keywords:["transportation","signal"],char:"\u{1f6a5}",fitzpatrick_scale:!1,category:"travel_and_places"},checkered_flag:{keywords:["contest","finishline","race","gokart"],char:"\u{1f3c1}",fitzpatrick_scale:!1,category:"travel_and_places"},ship:{keywords:["transportation","titanic","deploy"],char:"\u{1f6a2}",fitzpatrick_scale:!1,category:"travel_and_places"},ferris_wheel:{keywords:["photo","carnival","londoneye"],char:"\u{1f3a1}",fitzpatrick_scale:!1,category:"travel_and_places"},roller_coaster:{keywords:["carnival","playground","photo","fun"],char:"\u{1f3a2}",fitzpatrick_scale:!1,category:"travel_and_places"},carousel_horse:{keywords:["photo","carnival"],char:"\u{1f3a0}",fitzpatrick_scale:!1,category:"travel_and_places"},building_construction:{keywords:["wip","working","progress"],char:"\u{1f3d7}",fitzpatrick_scale:!1,category:"travel_and_places"},foggy:{keywords:["photo","mountain"],char:"\u{1f301}",fitzpatrick_scale:!1,category:"travel_and_places"},tokyo_tower:{keywords:["photo","japanese"],char:"\u{1f5fc}",fitzpatrick_scale:!1,category:"travel_and_places"},factory:{keywords:["building","industry","pollution","smoke"],char:"\u{1f3ed}",fitzpatrick_scale:!1,category:"travel_and_places"},fountain:{keywords:["photo","summer","water","fresh"],char:"\u26f2",fitzpatrick_scale:!1,category:"travel_and_places"},rice_scene:{keywords:["photo","japan","asia","tsukimi"],char:"\u{1f391}",fitzpatrick_scale:!1,category:"travel_and_places"},mountain:{keywords:["photo","nature","environment"],char:"\u26f0",fitzpatrick_scale:!1,category:"travel_and_places"},mountain_snow:{keywords:["photo","nature","environment","winter","cold"],char:"\u{1f3d4}",fitzpatrick_scale:!1,category:"travel_and_places"},mount_fuji:{keywords:["photo","mountain","nature","japanese"],char:"\u{1f5fb}",fitzpatrick_scale:!1,category:"travel_and_places"},volcano:{keywords:["photo","nature","disaster"],char:"\u{1f30b}",fitzpatrick_scale:!1,category:"travel_and_places"},japan:{keywords:["nation","country","japanese","asia"],char:"\u{1f5fe}",fitzpatrick_scale:!1,category:"travel_and_places"},camping:{keywords:["photo","outdoors","tent"],char:"\u{1f3d5}",fitzpatrick_scale:!1,category:"travel_and_places"},tent:{keywords:["photo","camping","outdoors"],char:"\u26fa",fitzpatrick_scale:!1,category:"travel_and_places"},national_park:{keywords:["photo","environment","nature"],char:"\u{1f3de}",fitzpatrick_scale:!1,category:"travel_and_places"},motorway:{keywords:["road","cupertino","interstate","highway"],char:"\u{1f6e3}",fitzpatrick_scale:!1,category:"travel_and_places"},railway_track:{keywords:["train","transportation"],char:"\u{1f6e4}",fitzpatrick_scale:!1,category:"travel_and_places"},sunrise:{keywords:["morning","view","vacation","photo"],char:"\u{1f305}",fitzpatrick_scale:!1,category:"travel_and_places"},sunrise_over_mountains:{keywords:["view","vacation","photo"],char:"\u{1f304}",fitzpatrick_scale:!1,category:"travel_and_places"},desert:{keywords:["photo","warm","saharah"],char:"\u{1f3dc}",fitzpatrick_scale:!1,category:"travel_and_places"},beach_umbrella:{keywords:["weather","summer","sunny","sand","mojito"],char:"\u{1f3d6}",fitzpatrick_scale:!1,category:"travel_and_places"},desert_island:{keywords:["photo","tropical","mojito"],char:"\u{1f3dd}",fitzpatrick_scale:!1,category:"travel_and_places"},city_sunrise:{keywords:["photo","good morning","dawn"],char:"\u{1f307}",fitzpatrick_scale:!1,category:"travel_and_places"},city_sunset:{keywords:["photo","evening","sky","buildings"],char:"\u{1f306}",fitzpatrick_scale:!1,category:"travel_and_places"},cityscape:{keywords:["photo","night life","urban"],char:"\u{1f3d9}",fitzpatrick_scale:!1,category:"travel_and_places"},night_with_stars:{keywords:["evening","city","downtown"],char:"\u{1f303}",fitzpatrick_scale:!1,category:"travel_and_places"},bridge_at_night:{keywords:["photo","sanfrancisco"],char:"\u{1f309}",fitzpatrick_scale:!1,category:"travel_and_places"},milky_way:{keywords:["photo","space","stars"],char:"\u{1f30c}",fitzpatrick_scale:!1,category:"travel_and_places"},stars:{keywords:["night","photo"],char:"\u{1f320}",fitzpatrick_scale:!1,category:"travel_and_places"},sparkler:{keywords:["stars","night","shine"],char:"\u{1f387}",fitzpatrick_scale:!1,category:"travel_and_places"},fireworks:{keywords:["photo","festival","carnival","congratulations"],char:"\u{1f386}",fitzpatrick_scale:!1,category:"travel_and_places"},rainbow:{keywords:["nature","happy","unicorn_face","photo","sky","spring"],char:"\u{1f308}",fitzpatrick_scale:!1,category:"travel_and_places"},houses:{keywords:["buildings","photo"],char:"\u{1f3d8}",fitzpatrick_scale:!1,category:"travel_and_places"},european_castle:{keywords:["building","royalty","history"],char:"\u{1f3f0}",fitzpatrick_scale:!1,category:"travel_and_places"},japanese_castle:{keywords:["photo","building"],char:"\u{1f3ef}",fitzpatrick_scale:!1,category:"travel_and_places"},stadium:{keywords:["photo","place","sports","concert","venue"],char:"\u{1f3df}",fitzpatrick_scale:!1,category:"travel_and_places"},statue_of_liberty:{keywords:["american","newyork"],char:"\u{1f5fd}",fitzpatrick_scale:!1,category:"travel_and_places"},house:{keywords:["building","home"],char:"\u{1f3e0}",fitzpatrick_scale:!1,category:"travel_and_places"},house_with_garden:{keywords:["home","plant","nature"],char:"\u{1f3e1}",fitzpatrick_scale:!1,category:"travel_and_places"},derelict_house:{keywords:["abandon","evict","broken","building"],char:"\u{1f3da}",fitzpatrick_scale:!1,category:"travel_and_places"},office:{keywords:["building","bureau","work"],char:"\u{1f3e2}",fitzpatrick_scale:!1,category:"travel_and_places"},department_store:{keywords:["building","shopping","mall"],char:"\u{1f3ec}",fitzpatrick_scale:!1,category:"travel_and_places"},post_office:{keywords:["building","envelope","communication"],char:"\u{1f3e3}",fitzpatrick_scale:!1,category:"travel_and_places"},european_post_office:{keywords:["building","email"],char:"\u{1f3e4}",fitzpatrick_scale:!1,category:"travel_and_places"},hospital:{keywords:["building","health","surgery","doctor"],char:"\u{1f3e5}",fitzpatrick_scale:!1,category:"travel_and_places"},bank:{keywords:["building","money","sales","cash","business","enterprise"],char:"\u{1f3e6}",fitzpatrick_scale:!1,category:"travel_and_places"},hotel:{keywords:["building","accomodation","checkin"],char:"\u{1f3e8}",fitzpatrick_scale:!1,category:"travel_and_places"},convenience_store:{keywords:["building","shopping","groceries"],char:"\u{1f3ea}",fitzpatrick_scale:!1,category:"travel_and_places"},school:{keywords:["building","student","education","learn","teach"],char:"\u{1f3eb}",fitzpatrick_scale:!1,category:"travel_and_places"},love_hotel:{keywords:["like","affection","dating"],char:"\u{1f3e9}",fitzpatrick_scale:!1,category:"travel_and_places"},wedding:{keywords:["love","like","affection","couple","marriage","bride","groom"],char:"\u{1f492}",fitzpatrick_scale:!1,category:"travel_and_places"},classical_building:{keywords:["art","culture","history"],char:"\u{1f3db}",fitzpatrick_scale:!1,category:"travel_and_places"},church:{keywords:["building","religion","christ"],char:"\u26ea",fitzpatrick_scale:!1,category:"travel_and_places"},mosque:{keywords:["islam","worship","minaret"],char:"\u{1f54c}",fitzpatrick_scale:!1,category:"travel_and_places"},synagogue:{keywords:["judaism","worship","temple","jewish"],char:"\u{1f54d}",fitzpatrick_scale:!1,category:"travel_and_places"},kaaba:{keywords:["mecca","mosque","islam"],char:"\u{1f54b}",fitzpatrick_scale:!1,category:"travel_and_places"},shinto_shrine:{keywords:["temple","japan","kyoto"],char:"\u26e9",fitzpatrick_scale:!1,category:"travel_and_places"},watch:{keywords:["time","accessories"],char:"\u231a",fitzpatrick_scale:!1,category:"objects"},iphone:{keywords:["technology","apple","gadgets","dial"],char:"\u{1f4f1}",fitzpatrick_scale:!1,category:"objects"},calling:{keywords:["iphone","incoming"],char:"\u{1f4f2}",fitzpatrick_scale:!1,category:"objects"},computer:{keywords:["technology","laptop","screen","display","monitor"],char:"\u{1f4bb}",fitzpatrick_scale:!1,category:"objects"},keyboard:{keywords:["technology","computer","type","input","text"],char:"\u2328",fitzpatrick_scale:!1,category:"objects"},desktop_computer:{keywords:["technology","computing","screen"],char:"\u{1f5a5}",fitzpatrick_scale:!1,category:"objects"},printer:{keywords:["paper","ink"],char:"\u{1f5a8}",fitzpatrick_scale:!1,category:"objects"},computer_mouse:{keywords:["click"],char:"\u{1f5b1}",fitzpatrick_scale:!1,category:"objects"},trackball:{keywords:["technology","trackpad"],char:"\u{1f5b2}",fitzpatrick_scale:!1,category:"objects"},joystick:{keywords:["game","play"],char:"\u{1f579}",fitzpatrick_scale:!1,category:"objects"},clamp:{keywords:["tool"],char:"\u{1f5dc}",fitzpatrick_scale:!1,category:"objects"},minidisc:{keywords:["technology","record","data","disk","90s"],char:"\u{1f4bd}",fitzpatrick_scale:!1,category:"objects"},floppy_disk:{keywords:["oldschool","technology","save","90s","80s"],char:"\u{1f4be}",fitzpatrick_scale:!1,category:"objects"},cd:{keywords:["technology","dvd","disk","disc","90s"],char:"\u{1f4bf}",fitzpatrick_scale:!1,category:"objects"},dvd:{keywords:["cd","disk","disc"],char:"\u{1f4c0}",fitzpatrick_scale:!1,category:"objects"},vhs:{keywords:["record","video","oldschool","90s","80s"],char:"\u{1f4fc}",fitzpatrick_scale:!1,category:"objects"},camera:{keywords:["gadgets","photography"],char:"\u{1f4f7}",fitzpatrick_scale:!1,category:"objects"},camera_flash:{keywords:["photography","gadgets"],char:"\u{1f4f8}",fitzpatrick_scale:!1,category:"objects"},video_camera:{keywords:["film","record"],char:"\u{1f4f9}",fitzpatrick_scale:!1,category:"objects"},movie_camera:{keywords:["film","record"],char:"\u{1f3a5}",fitzpatrick_scale:!1,category:"objects"},film_projector:{keywords:["video","tape","record","movie"],char:"\u{1f4fd}",fitzpatrick_scale:!1,category:"objects"},film_strip:{keywords:["movie"],char:"\u{1f39e}",fitzpatrick_scale:!1,category:"objects"},telephone_receiver:{keywords:["technology","communication","dial"],char:"\u{1f4de}",fitzpatrick_scale:!1,category:"objects"},phone:{keywords:["technology","communication","dial","telephone"],char:"\u260e\ufe0f",fitzpatrick_scale:!1,category:"objects"},pager:{keywords:["bbcall","oldschool","90s"],char:"\u{1f4df}",fitzpatrick_scale:!1,category:"objects"},fax:{keywords:["communication","technology"],char:"\u{1f4e0}",fitzpatrick_scale:!1,category:"objects"},tv:{keywords:["technology","program","oldschool","show","television"],char:"\u{1f4fa}",fitzpatrick_scale:!1,category:"objects"},radio:{keywords:["communication","music","podcast","program"],char:"\u{1f4fb}",fitzpatrick_scale:!1,category:"objects"},studio_microphone:{keywords:["sing","recording","artist","talkshow"],char:"\u{1f399}",fitzpatrick_scale:!1,category:"objects"},level_slider:{keywords:["scale"],char:"\u{1f39a}",fitzpatrick_scale:!1,category:"objects"},control_knobs:{keywords:["dial"],char:"\u{1f39b}",fitzpatrick_scale:!1,category:"objects"},compass:{keywords:["magnetic","navigation","orienteering"],char:"\u{1f9ed}",fitzpatrick_scale:!1,category:"objects"},stopwatch:{keywords:["time","deadline"],char:"\u23f1",fitzpatrick_scale:!1,category:"objects"},timer_clock:{keywords:["alarm"],char:"\u23f2",fitzpatrick_scale:!1,category:"objects"},alarm_clock:{keywords:["time","wake"],char:"\u23f0",fitzpatrick_scale:!1,category:"objects"},mantelpiece_clock:{keywords:["time"],char:"\u{1f570}",fitzpatrick_scale:!1,category:"objects"},hourglass_flowing_sand:{keywords:["oldschool","time","countdown"],char:"\u23f3",fitzpatrick_scale:!1,category:"objects"},hourglass:{keywords:["time","clock","oldschool","limit","exam","quiz","test"],char:"\u231b",fitzpatrick_scale:!1,category:"objects"},satellite:{keywords:["communication","future","radio","space"],char:"\u{1f4e1}",fitzpatrick_scale:!1,category:"objects"},battery:{keywords:["power","energy","sustain"],char:"\u{1f50b}",fitzpatrick_scale:!1,category:"objects"},electric_plug:{keywords:["charger","power"],char:"\u{1f50c}",fitzpatrick_scale:!1,category:"objects"},bulb:{keywords:["light","electricity","idea"],char:"\u{1f4a1}",fitzpatrick_scale:!1,category:"objects"},flashlight:{keywords:["dark","camping","sight","night"],char:"\u{1f526}",fitzpatrick_scale:!1,category:"objects"},candle:{keywords:["fire","wax"],char:"\u{1f56f}",fitzpatrick_scale:!1,category:"objects"},fire_extinguisher:{keywords:["quench"],char:"\u{1f9ef}",fitzpatrick_scale:!1,category:"objects"},wastebasket:{keywords:["bin","trash","rubbish","garbage","toss"],char:"\u{1f5d1}",fitzpatrick_scale:!1,category:"objects"},oil_drum:{keywords:["barrell"],char:"\u{1f6e2}",fitzpatrick_scale:!1,category:"objects"},money_with_wings:{keywords:["dollar","bills","payment","sale"],char:"\u{1f4b8}",fitzpatrick_scale:!1,category:"objects"},dollar:{keywords:["money","sales","bill","currency"],char:"\u{1f4b5}",fitzpatrick_scale:!1,category:"objects"},yen:{keywords:["money","sales","japanese","dollar","currency"],char:"\u{1f4b4}",fitzpatrick_scale:!1,category:"objects"},euro:{keywords:["money","sales","dollar","currency"],char:"\u{1f4b6}",fitzpatrick_scale:!1,category:"objects"},pound:{keywords:["british","sterling","money","sales","bills","uk","england","currency"],char:"\u{1f4b7}",fitzpatrick_scale:!1,category:"objects"},moneybag:{keywords:["dollar","payment","coins","sale"],char:"\u{1f4b0}",fitzpatrick_scale:!1,category:"objects"},credit_card:{keywords:["money","sales","dollar","bill","payment","shopping"],char:"\u{1f4b3}",fitzpatrick_scale:!1,category:"objects"},gem:{keywords:["blue","ruby","diamond","jewelry"],char:"\u{1f48e}",fitzpatrick_scale:!1,category:"objects"},balance_scale:{keywords:["law","fairness","weight"],char:"\u2696",fitzpatrick_scale:!1,category:"objects"},toolbox:{keywords:["tools","diy","fix","maintainer","mechanic"],char:"\u{1f9f0}",fitzpatrick_scale:!1,category:"objects"},wrench:{keywords:["tools","diy","ikea","fix","maintainer"],char:"\u{1f527}",fitzpatrick_scale:!1,category:"objects"},hammer:{keywords:["tools","build","create"],char:"\u{1f528}",fitzpatrick_scale:!1,category:"objects"},hammer_and_pick:{keywords:["tools","build","create"],char:"\u2692",fitzpatrick_scale:!1,category:"objects"},hammer_and_wrench:{keywords:["tools","build","create"],char:"\u{1f6e0}",fitzpatrick_scale:!1,category:"objects"},pick:{keywords:["tools","dig"],char:"\u26cf",fitzpatrick_scale:!1,category:"objects"},nut_and_bolt:{keywords:["handy","tools","fix"],char:"\u{1f529}",fitzpatrick_scale:!1,category:"objects"},gear:{keywords:["cog"],char:"\u2699",fitzpatrick_scale:!1,category:"objects"},brick:{keywords:["bricks"],char:"\u{1f9f1}",fitzpatrick_scale:!1,category:"objects"},chains:{keywords:["lock","arrest"],char:"\u26d3",fitzpatrick_scale:!1,category:"objects"},magnet:{keywords:["attraction","magnetic"],char:"\u{1f9f2}",fitzpatrick_scale:!1,category:"objects"},gun:{keywords:["violence","weapon","pistol","revolver"],char:"\u{1f52b}",fitzpatrick_scale:!1,category:"objects"},bomb:{keywords:["boom","explode","explosion","terrorism"],char:"\u{1f4a3}",fitzpatrick_scale:!1,category:"objects"},firecracker:{keywords:["dynamite","boom","explode","explosion","explosive"],char:"\u{1f9e8}",fitzpatrick_scale:!1,category:"objects"},hocho:{keywords:["knife","blade","cutlery","kitchen","weapon"],char:"\u{1f52a}",fitzpatrick_scale:!1,category:"objects"},dagger:{keywords:["weapon"],char:"\u{1f5e1}",fitzpatrick_scale:!1,category:"objects"},crossed_swords:{keywords:["weapon"],char:"\u2694",fitzpatrick_scale:!1,category:"objects"},shield:{keywords:["protection","security"],char:"\u{1f6e1}",fitzpatrick_scale:!1,category:"objects"},smoking:{keywords:["kills","tobacco","cigarette","joint","smoke"],char:"\u{1f6ac}",fitzpatrick_scale:!1,category:"objects"},skull_and_crossbones:{keywords:["poison","danger","deadly","scary","death","pirate","evil"],char:"\u2620",fitzpatrick_scale:!1,category:"objects"},coffin:{keywords:["vampire","dead","die","death","rip","graveyard","cemetery","casket","funeral","box"],char:"\u26b0",fitzpatrick_scale:!1,category:"objects"},funeral_urn:{keywords:["dead","die","death","rip","ashes"],char:"\u26b1",fitzpatrick_scale:!1,category:"objects"},amphora:{keywords:["vase","jar"],char:"\u{1f3fa}",fitzpatrick_scale:!1,category:"objects"},crystal_ball:{keywords:["disco","party","magic","circus","fortune_teller"],char:"\u{1f52e}",fitzpatrick_scale:!1,category:"objects"},prayer_beads:{keywords:["dhikr","religious"],char:"\u{1f4ff}",fitzpatrick_scale:!1,category:"objects"},nazar_amulet:{keywords:["bead","charm"],char:"\u{1f9ff}",fitzpatrick_scale:!1,category:"objects"},barber:{keywords:["hair","salon","style"],char:"\u{1f488}",fitzpatrick_scale:!1,category:"objects"},alembic:{keywords:["distilling","science","experiment","chemistry"],char:"\u2697",fitzpatrick_scale:!1,category:"objects"},telescope:{keywords:["stars","space","zoom","science","astronomy"],char:"\u{1f52d}",fitzpatrick_scale:!1,category:"objects"},microscope:{keywords:["laboratory","experiment","zoomin","science","study"],char:"\u{1f52c}",fitzpatrick_scale:!1,category:"objects"},hole:{keywords:["embarrassing"],char:"\u{1f573}",fitzpatrick_scale:!1,category:"objects"},pill:{keywords:["health","medicine","doctor","pharmacy","drug"],char:"\u{1f48a}",fitzpatrick_scale:!1,category:"objects"},syringe:{keywords:["health","hospital","drugs","blood","medicine","needle","doctor","nurse"],char:"\u{1f489}",fitzpatrick_scale:!1,category:"objects"},dna:{keywords:["biologist","genetics","life"],char:"\u{1f9ec}",fitzpatrick_scale:!1,category:"objects"},microbe:{keywords:["amoeba","bacteria","germs"],char:"\u{1f9a0}",fitzpatrick_scale:!1,category:"objects"},petri_dish:{keywords:["bacteria","biology","culture","lab"],char:"\u{1f9eb}",fitzpatrick_scale:!1,category:"objects"},test_tube:{keywords:["chemistry","experiment","lab","science"],char:"\u{1f9ea}",fitzpatrick_scale:!1,category:"objects"},thermometer:{keywords:["weather","temperature","hot","cold"],char:"\u{1f321}",fitzpatrick_scale:!1,category:"objects"},broom:{keywords:["cleaning","sweeping","witch"],char:"\u{1f9f9}",fitzpatrick_scale:!1,category:"objects"},basket:{keywords:["laundry"],char:"\u{1f9fa}",fitzpatrick_scale:!1,category:"objects"},toilet_paper:{keywords:["roll"],char:"\u{1f9fb}",fitzpatrick_scale:!1,category:"objects"},label:{keywords:["sale","tag"],char:"\u{1f3f7}",fitzpatrick_scale:!1,category:"objects"},bookmark:{keywords:["favorite","label","save"],char:"\u{1f516}",fitzpatrick_scale:!1,category:"objects"},toilet:{keywords:["restroom","wc","washroom","bathroom","potty"],char:"\u{1f6bd}",fitzpatrick_scale:!1,category:"objects"},shower:{keywords:["clean","water","bathroom"],char:"\u{1f6bf}",fitzpatrick_scale:!1,category:"objects"},bathtub:{keywords:["clean","shower","bathroom"],char:"\u{1f6c1}",fitzpatrick_scale:!1,category:"objects"},soap:{keywords:["bar","bathing","cleaning","lather"],char:"\u{1f9fc}",fitzpatrick_scale:!1,category:"objects"},sponge:{keywords:["absorbing","cleaning","porous"],char:"\u{1f9fd}",fitzpatrick_scale:!1,category:"objects"},lotion_bottle:{keywords:["moisturizer","sunscreen"],char:"\u{1f9f4}",fitzpatrick_scale:!1,category:"objects"},key:{keywords:["lock","door","password"],char:"\u{1f511}",fitzpatrick_scale:!1,category:"objects"},old_key:{keywords:["lock","door","password"],char:"\u{1f5dd}",fitzpatrick_scale:!1,category:"objects"},couch_and_lamp:{keywords:["read","chill"],char:"\u{1f6cb}",fitzpatrick_scale:!1,category:"objects"},sleeping_bed:{keywords:["bed","rest"],char:"\u{1f6cc}",fitzpatrick_scale:!0,category:"objects"},bed:{keywords:["sleep","rest"],char:"\u{1f6cf}",fitzpatrick_scale:!1,category:"objects"},door:{keywords:["house","entry","exit"],char:"\u{1f6aa}",fitzpatrick_scale:!1,category:"objects"},bellhop_bell:{keywords:["service"],char:"\u{1f6ce}",fitzpatrick_scale:!1,category:"objects"},teddy_bear:{keywords:["plush","stuffed"],char:"\u{1f9f8}",fitzpatrick_scale:!1,category:"objects"},framed_picture:{keywords:["photography"],char:"\u{1f5bc}",fitzpatrick_scale:!1,category:"objects"},world_map:{keywords:["location","direction"],char:"\u{1f5fa}",fitzpatrick_scale:!1,category:"objects"},parasol_on_ground:{keywords:["weather","summer"],char:"\u26f1",fitzpatrick_scale:!1,category:"objects"},moyai:{keywords:["rock","easter island","moai"],char:"\u{1f5ff}",fitzpatrick_scale:!1,category:"objects"},shopping:{keywords:["mall","buy","purchase"],char:"\u{1f6cd}",fitzpatrick_scale:!1,category:"objects"},shopping_cart:{keywords:["trolley"],char:"\u{1f6d2}",fitzpatrick_scale:!1,category:"objects"},balloon:{keywords:["party","celebration","birthday","circus"],char:"\u{1f388}",fitzpatrick_scale:!1,category:"objects"},flags:{keywords:["fish","japanese","koinobori","carp","banner"],char:"\u{1f38f}",fitzpatrick_scale:!1,category:"objects"},ribbon:{keywords:["decoration","pink","girl","bowtie"],char:"\u{1f380}",fitzpatrick_scale:!1,category:"objects"},gift:{keywords:["present","birthday","christmas","xmas"],char:"\u{1f381}",fitzpatrick_scale:!1,category:"objects"},confetti_ball:{keywords:["festival","party","birthday","circus"],char:"\u{1f38a}",fitzpatrick_scale:!1,category:"objects"},tada:{keywords:["party","congratulations","birthday","magic","circus","celebration"],char:"\u{1f389}",fitzpatrick_scale:!1,category:"objects"},dolls:{keywords:["japanese","toy","kimono"],char:"\u{1f38e}",fitzpatrick_scale:!1,category:"objects"},wind_chime:{keywords:["nature","ding","spring","bell"],char:"\u{1f390}",fitzpatrick_scale:!1,category:"objects"},crossed_flags:{keywords:["japanese","nation","country","border"],char:"\u{1f38c}",fitzpatrick_scale:!1,category:"objects"},izakaya_lantern:{keywords:["light","paper","halloween","spooky"],char:"\u{1f3ee}",fitzpatrick_scale:!1,category:"objects"},red_envelope:{keywords:["gift"],char:"\u{1f9e7}",fitzpatrick_scale:!1,category:"objects"},email:{keywords:["letter","postal","inbox","communication"],char:"\u2709\ufe0f",fitzpatrick_scale:!1,category:"objects"},envelope_with_arrow:{keywords:["email","communication"],char:"\u{1f4e9}",fitzpatrick_scale:!1,category:"objects"},incoming_envelope:{keywords:["email","inbox"],char:"\u{1f4e8}",fitzpatrick_scale:!1,category:"objects"},"e-mail":{keywords:["communication","inbox"],char:"\u{1f4e7}",fitzpatrick_scale:!1,category:"objects"},love_letter:{keywords:["email","like","affection","envelope","valentines"],char:"\u{1f48c}",fitzpatrick_scale:!1,category:"objects"},postbox:{keywords:["email","letter","envelope"],char:"\u{1f4ee}",fitzpatrick_scale:!1,category:"objects"},mailbox_closed:{keywords:["email","communication","inbox"],char:"\u{1f4ea}",fitzpatrick_scale:!1,category:"objects"},mailbox:{keywords:["email","inbox","communication"],char:"\u{1f4eb}",fitzpatrick_scale:!1,category:"objects"},mailbox_with_mail:{keywords:["email","inbox","communication"],char:"\u{1f4ec}",fitzpatrick_scale:!1,category:"objects"},mailbox_with_no_mail:{keywords:["email","inbox"],char:"\u{1f4ed}",fitzpatrick_scale:!1,category:"objects"},package:{keywords:["mail","gift","cardboard","box","moving"],char:"\u{1f4e6}",fitzpatrick_scale:!1,category:"objects"},postal_horn:{keywords:["instrument","music"],char:"\u{1f4ef}",fitzpatrick_scale:!1,category:"objects"},inbox_tray:{keywords:["email","documents"],char:"\u{1f4e5}",fitzpatrick_scale:!1,category:"objects"},outbox_tray:{keywords:["inbox","email"],char:"\u{1f4e4}",fitzpatrick_scale:!1,category:"objects"},scroll:{keywords:["documents","ancient","history","paper"],char:"\u{1f4dc}",fitzpatrick_scale:!1,category:"objects"},page_with_curl:{keywords:["documents","office","paper"],char:"\u{1f4c3}",fitzpatrick_scale:!1,category:"objects"},bookmark_tabs:{keywords:["favorite","save","order","tidy"],char:"\u{1f4d1}",fitzpatrick_scale:!1,category:"objects"},receipt:{keywords:["accounting","expenses"],char:"\u{1f9fe}",fitzpatrick_scale:!1,category:"objects"},bar_chart:{keywords:["graph","presentation","stats"],char:"\u{1f4ca}",fitzpatrick_scale:!1,category:"objects"},chart_with_upwards_trend:{keywords:["graph","presentation","stats","recovery","business","economics","money","sales","good","success"],char:"\u{1f4c8}",fitzpatrick_scale:!1,category:"objects"},chart_with_downwards_trend:{keywords:["graph","presentation","stats","recession","business","economics","money","sales","bad","failure"],char:"\u{1f4c9}",fitzpatrick_scale:!1,category:"objects"},page_facing_up:{keywords:["documents","office","paper","information"],char:"\u{1f4c4}",fitzpatrick_scale:!1,category:"objects"},date:{keywords:["calendar","schedule"],char:"\u{1f4c5}",fitzpatrick_scale:!1,category:"objects"},calendar:{keywords:["schedule","date","planning"],char:"\u{1f4c6}",fitzpatrick_scale:!1,category:"objects"},spiral_calendar:{keywords:["date","schedule","planning"],char:"\u{1f5d3}",fitzpatrick_scale:!1,category:"objects"},card_index:{keywords:["business","stationery"],char:"\u{1f4c7}",fitzpatrick_scale:!1,category:"objects"},card_file_box:{keywords:["business","stationery"],char:"\u{1f5c3}",fitzpatrick_scale:!1,category:"objects"},ballot_box:{keywords:["election","vote"],char:"\u{1f5f3}",fitzpatrick_scale:!1,category:"objects"},file_cabinet:{keywords:["filing","organizing"],char:"\u{1f5c4}",fitzpatrick_scale:!1,category:"objects"},clipboard:{keywords:["stationery","documents"],char:"\u{1f4cb}",fitzpatrick_scale:!1,category:"objects"},spiral_notepad:{keywords:["memo","stationery"],char:"\u{1f5d2}",fitzpatrick_scale:!1,category:"objects"},file_folder:{keywords:["documents","business","office"],char:"\u{1f4c1}",fitzpatrick_scale:!1,category:"objects"},open_file_folder:{keywords:["documents","load"],char:"\u{1f4c2}",fitzpatrick_scale:!1,category:"objects"},card_index_dividers:{keywords:["organizing","business","stationery"],char:"\u{1f5c2}",fitzpatrick_scale:!1,category:"objects"},newspaper_roll:{keywords:["press","headline"],char:"\u{1f5de}",fitzpatrick_scale:!1,category:"objects"},newspaper:{keywords:["press","headline"],char:"\u{1f4f0}",fitzpatrick_scale:!1,category:"objects"},notebook:{keywords:["stationery","record","notes","paper","study"],char:"\u{1f4d3}",fitzpatrick_scale:!1,category:"objects"},closed_book:{keywords:["read","library","knowledge","textbook","learn"],char:"\u{1f4d5}",fitzpatrick_scale:!1,category:"objects"},green_book:{keywords:["read","library","knowledge","study"],char:"\u{1f4d7}",fitzpatrick_scale:!1,category:"objects"},blue_book:{keywords:["read","library","knowledge","learn","study"],char:"\u{1f4d8}",fitzpatrick_scale:!1,category:"objects"},orange_book:{keywords:["read","library","knowledge","textbook","study"],char:"\u{1f4d9}",fitzpatrick_scale:!1,category:"objects"},notebook_with_decorative_cover:{keywords:["classroom","notes","record","paper","study"],char:"\u{1f4d4}",fitzpatrick_scale:!1,category:"objects"},ledger:{keywords:["notes","paper"],char:"\u{1f4d2}",fitzpatrick_scale:!1,category:"objects"},books:{keywords:["literature","library","study"],char:"\u{1f4da}",fitzpatrick_scale:!1,category:"objects"},open_book:{keywords:["book","read","library","knowledge","literature","learn","study"],char:"\u{1f4d6}",fitzpatrick_scale:!1,category:"objects"},safety_pin:{keywords:["diaper"],char:"\u{1f9f7}",fitzpatrick_scale:!1,category:"objects"},link:{keywords:["rings","url"],char:"\u{1f517}",fitzpatrick_scale:!1,category:"objects"},paperclip:{keywords:["documents","stationery"],char:"\u{1f4ce}",fitzpatrick_scale:!1,category:"objects"},paperclips:{keywords:["documents","stationery"],char:"\u{1f587}",fitzpatrick_scale:!1,category:"objects"},scissors:{keywords:["stationery","cut"],char:"\u2702\ufe0f",fitzpatrick_scale:!1,category:"objects"},triangular_ruler:{keywords:["stationery","math","architect","sketch"],char:"\u{1f4d0}",fitzpatrick_scale:!1,category:"objects"},straight_ruler:{keywords:["stationery","calculate","length","math","school","drawing","architect","sketch"],char:"\u{1f4cf}",fitzpatrick_scale:!1,category:"objects"},abacus:{keywords:["calculation"],char:"\u{1f9ee}",fitzpatrick_scale:!1,category:"objects"},pushpin:{keywords:["stationery","mark","here"],char:"\u{1f4cc}",fitzpatrick_scale:!1,category:"objects"},round_pushpin:{keywords:["stationery","location","map","here"],char:"\u{1f4cd}",fitzpatrick_scale:!1,category:"objects"},triangular_flag_on_post:{keywords:["mark","milestone","place"],char:"\u{1f6a9}",fitzpatrick_scale:!1,category:"objects"},white_flag:{keywords:["losing","loser","lost","surrender","give up","fail"],char:"\u{1f3f3}",fitzpatrick_scale:!1,category:"objects"},black_flag:{keywords:["pirate"],char:"\u{1f3f4}",fitzpatrick_scale:!1,category:"objects"},rainbow_flag:{keywords:["flag","rainbow","pride","gay","lgbt","glbt","queer","homosexual","lesbian","bisexual","transgender"],char:"\u{1f3f3}\ufe0f\u200d\u{1f308}",fitzpatrick_scale:!1,category:"objects"},closed_lock_with_key:{keywords:["security","privacy"],char:"\u{1f510}",fitzpatrick_scale:!1,category:"objects"},lock:{keywords:["security","password","padlock"],char:"\u{1f512}",fitzpatrick_scale:!1,category:"objects"},unlock:{keywords:["privacy","security"],char:"\u{1f513}",fitzpatrick_scale:!1,category:"objects"},lock_with_ink_pen:{keywords:["security","secret"],char:"\u{1f50f}",fitzpatrick_scale:!1,category:"objects"},pen:{keywords:["stationery","writing","write"],char:"\u{1f58a}",fitzpatrick_scale:!1,category:"objects"},fountain_pen:{keywords:["stationery","writing","write"],char:"\u{1f58b}",fitzpatrick_scale:!1,category:"objects"},black_nib:{keywords:["pen","stationery","writing","write"],char:"\u2712\ufe0f",fitzpatrick_scale:!1,category:"objects"},memo:{keywords:["write","documents","stationery","pencil","paper","writing","legal","exam","quiz","test","study","compose"],char:"\u{1f4dd}",fitzpatrick_scale:!1,category:"objects"},pencil2:{keywords:["stationery","write","paper","writing","school","study"],char:"\u270f\ufe0f",fitzpatrick_scale:!1,category:"objects"},crayon:{keywords:["drawing","creativity"],char:"\u{1f58d}",fitzpatrick_scale:!1,category:"objects"},paintbrush:{keywords:["drawing","creativity","art"],char:"\u{1f58c}",fitzpatrick_scale:!1,category:"objects"},mag:{keywords:["Buscar","zoom","find","detective"],char:"\u{1f50d}",fitzpatrick_scale:!1,category:"objects"},mag_right:{keywords:["Buscar","zoom","find","detective"],char:"\u{1f50e}",fitzpatrick_scale:!1,category:"objects"},heart:{keywords:["love","like","valentines"],char:"\u2764\ufe0f",fitzpatrick_scale:!1,category:"symbols"},orange_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f9e1}",fitzpatrick_scale:!1,category:"symbols"},yellow_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f49b}",fitzpatrick_scale:!1,category:"symbols"},green_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f49a}",fitzpatrick_scale:!1,category:"symbols"},blue_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f499}",fitzpatrick_scale:!1,category:"symbols"},purple_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f49c}",fitzpatrick_scale:!1,category:"symbols"},black_heart:{keywords:["evil"],char:"\u{1f5a4}",fitzpatrick_scale:!1,category:"symbols"},broken_heart:{keywords:["sad","sorry","break","heart","heartbreak"],char:"\u{1f494}",fitzpatrick_scale:!1,category:"symbols"},heavy_heart_exclamation:{keywords:["decoration","love"],char:"\u2763",fitzpatrick_scale:!1,category:"symbols"},two_hearts:{keywords:["love","like","affection","valentines","heart"],char:"\u{1f495}",fitzpatrick_scale:!1,category:"symbols"},revolving_hearts:{keywords:["love","like","affection","valentines"],char:"\u{1f49e}",fitzpatrick_scale:!1,category:"symbols"},heartbeat:{keywords:["love","like","affection","valentines","pink","heart"],char:"\u{1f493}",fitzpatrick_scale:!1,category:"symbols"},heartpulse:{keywords:["like","love","affection","valentines","pink"],char:"\u{1f497}",fitzpatrick_scale:!1,category:"symbols"},sparkling_heart:{keywords:["love","like","affection","valentines"],char:"\u{1f496}",fitzpatrick_scale:!1,category:"symbols"},cupid:{keywords:["love","like","heart","affection","valentines"],char:"\u{1f498}",fitzpatrick_scale:!1,category:"symbols"},gift_heart:{keywords:["love","valentines"],char:"\u{1f49d}",fitzpatrick_scale:!1,category:"symbols"},heart_decoration:{keywords:["purple-square","love","like"],char:"\u{1f49f}",fitzpatrick_scale:!1,category:"symbols"},peace_symbol:{keywords:["hippie"],char:"\u262e",fitzpatrick_scale:!1,category:"symbols"},latin_cross:{keywords:["christianity"],char:"\u271d",fitzpatrick_scale:!1,category:"symbols"},star_and_crescent:{keywords:["islam"],char:"\u262a",fitzpatrick_scale:!1,category:"symbols"},om:{keywords:["hinduism","buddhism","sikhism","jainism"],char:"\u{1f549}",fitzpatrick_scale:!1,category:"symbols"},wheel_of_dharma:{keywords:["hinduism","buddhism","sikhism","jainism"],char:"\u2638",fitzpatrick_scale:!1,category:"symbols"},star_of_david:{keywords:["judaism"],char:"\u2721",fitzpatrick_scale:!1,category:"symbols"},six_pointed_star:{keywords:["purple-square","religion","jewish","hexagram"],char:"\u{1f52f}",fitzpatrick_scale:!1,category:"symbols"},menorah:{keywords:["hanukkah","candles","jewish"],char:"\u{1f54e}",fitzpatrick_scale:!1,category:"symbols"},yin_yang:{keywords:["balance"],char:"\u262f",fitzpatrick_scale:!1,category:"symbols"},orthodox_cross:{keywords:["suppedaneum","religion"],char:"\u2626",fitzpatrick_scale:!1,category:"symbols"},place_of_worship:{keywords:["religion","church","temple","prayer"],char:"\u{1f6d0}",fitzpatrick_scale:!1,category:"symbols"},ophiuchus:{keywords:["sign","purple-square","constellation","astrology"],char:"\u26ce",fitzpatrick_scale:!1,category:"symbols"},aries:{keywords:["sign","purple-square","zodiac","astrology"],char:"\u2648",fitzpatrick_scale:!1,category:"symbols"},taurus:{keywords:["purple-square","sign","zodiac","astrology"],char:"\u2649",fitzpatrick_scale:!1,category:"symbols"},gemini:{keywords:["sign","zodiac","purple-square","astrology"],char:"\u264a",fitzpatrick_scale:!1,category:"symbols"},cancer:{keywords:["sign","zodiac","purple-square","astrology"],char:"\u264b",fitzpatrick_scale:!1,category:"symbols"},leo:{keywords:["sign","purple-square","zodiac","astrology"],char:"\u264c",fitzpatrick_scale:!1,category:"symbols"},virgo:{keywords:["sign","zodiac","purple-square","astrology"],char:"\u264d",fitzpatrick_scale:!1,category:"symbols"},libra:{keywords:["sign","purple-square","zodiac","astrology"],char:"\u264e",fitzpatrick_scale:!1,category:"symbols"},scorpius:{keywords:["sign","zodiac","purple-square","astrology","scorpio"],char:"\u264f",fitzpatrick_scale:!1,category:"symbols"},sagittarius:{keywords:["sign","zodiac","purple-square","astrology"],char:"\u2650",fitzpatrick_scale:!1,category:"symbols"},capricorn:{keywords:["sign","zodiac","purple-square","astrology"],char:"\u2651",fitzpatrick_scale:!1,category:"symbols"},aquarius:{keywords:["sign","purple-square","zodiac","astrology"],char:"\u2652",fitzpatrick_scale:!1,category:"symbols"},pisces:{keywords:["purple-square","sign","zodiac","astrology"],char:"\u2653",fitzpatrick_scale:!1,category:"symbols"},id:{keywords:["purple-square","words"],char:"\u{1f194}",fitzpatrick_scale:!1,category:"symbols"},atom_symbol:{keywords:["science","physics","chemistry"],char:"\u269b",fitzpatrick_scale:!1,category:"symbols"},u7a7a:{keywords:["kanji","japanese","chinese","empty","sky","blue-square"],char:"\u{1f233}",fitzpatrick_scale:!1,category:"symbols"},u5272:{keywords:["cut","divide","chinese","kanji","pink-square"],char:"\u{1f239}",fitzpatrick_scale:!1,category:"symbols"},radioactive:{keywords:["nuclear","danger"],char:"\u2622",fitzpatrick_scale:!1,category:"symbols"},biohazard:{keywords:["danger"],char:"\u2623",fitzpatrick_scale:!1,category:"symbols"},mobile_phone_off:{keywords:["mute","orange-square","silence","quiet"],char:"\u{1f4f4}",fitzpatrick_scale:!1,category:"symbols"},vibration_mode:{keywords:["orange-square","phone"],char:"\u{1f4f3}",fitzpatrick_scale:!1,category:"symbols"},u6709:{keywords:["orange-square","chinese","have","kanji"],char:"\u{1f236}",fitzpatrick_scale:!1,category:"symbols"},u7121:{keywords:["nothing","chinese","kanji","japanese","orange-square"],char:"\u{1f21a}",fitzpatrick_scale:!1,category:"symbols"},u7533:{keywords:["chinese","japanese","kanji","orange-square"],char:"\u{1f238}",fitzpatrick_scale:!1,category:"symbols"},u55b6:{keywords:["japanese","opening hours","orange-square"],char:"\u{1f23a}",fitzpatrick_scale:!1,category:"symbols"},u6708:{keywords:["chinese","month","moon","japanese","orange-square","kanji"],char:"\u{1f237}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},eight_pointed_black_star:{keywords:["orange-square","shape","polygon"],char:"\u2734\ufe0f",fitzpatrick_scale:!1,category:"symbols"},vs:{keywords:["words","orange-square"],char:"\u{1f19a}",fitzpatrick_scale:!1,category:"symbols"},accept:{keywords:["ok","good","chinese","kanji","agree","yes","orange-circle"],char:"\u{1f251}",fitzpatrick_scale:!1,category:"symbols"},white_flower:{keywords:["japanese","spring"],char:"\u{1f4ae}",fitzpatrick_scale:!1,category:"symbols"},ideograph_advantage:{keywords:["chinese","kanji","obtain","get","circle"],char:"\u{1f250}",fitzpatrick_scale:!1,category:"symbols"},secret:{keywords:["privacy","chinese","sshh","kanji","red-circle"],char:"\u3299\ufe0f",fitzpatrick_scale:!1,category:"symbols"},congratulations:{keywords:["chinese","kanji","japanese","red-circle"],char:"\u3297\ufe0f",fitzpatrick_scale:!1,category:"symbols"},u5408:{keywords:["japanese","chinese","join","kanji","red-square"],char:"\u{1f234}",fitzpatrick_scale:!1,category:"symbols"},u6e80:{keywords:["full","chinese","japanese","red-square","kanji"],char:"\u{1f235}",fitzpatrick_scale:!1,category:"symbols"},u7981:{keywords:["kanji","japanese","chinese","forbidden","limit","restricted","red-square"],char:"\u{1f232}",fitzpatrick_scale:!1,category:"symbols"},a:{keywords:["red-square","alphabet","letter"],char:"\u{1f170}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},b:{keywords:["red-square","alphabet","letter"],char:"\u{1f171}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},ab:{keywords:["red-square","alphabet"],char:"\u{1f18e}",fitzpatrick_scale:!1,category:"symbols"},cl:{keywords:["alphabet","words","red-square"],char:"\u{1f191}",fitzpatrick_scale:!1,category:"symbols"},o2:{keywords:["alphabet","red-square","letter"],char:"\u{1f17e}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},sos:{keywords:["help","red-square","words","emergency","911"],char:"\u{1f198}",fitzpatrick_scale:!1,category:"symbols"},no_entry:{keywords:["limit","security","privacy","bad","denied","stop","circle"],char:"\u26d4",fitzpatrick_scale:!1,category:"symbols"},name_badge:{keywords:["fire","forbid"],char:"\u{1f4db}",fitzpatrick_scale:!1,category:"symbols"},no_entry_sign:{keywords:["forbid","stop","limit","denied","disallow","circle"],char:"\u{1f6ab}",fitzpatrick_scale:!1,category:"symbols"},x:{keywords:["no","delete","remove","cancel","red"],char:"\u274c",fitzpatrick_scale:!1,category:"symbols"},o:{keywords:["circle","round"],char:"\u2b55",fitzpatrick_scale:!1,category:"symbols"},stop_sign:{keywords:["stop"],char:"\u{1f6d1}",fitzpatrick_scale:!1,category:"symbols"},anger:{keywords:["angry","mad"],char:"\u{1f4a2}",fitzpatrick_scale:!1,category:"symbols"},hotsprings:{keywords:["bath","warm","relax"],char:"\u2668\ufe0f",fitzpatrick_scale:!1,category:"symbols"},no_pedestrians:{keywords:["rules","crossing","walking","circle"],char:"\u{1f6b7}",fitzpatrick_scale:!1,category:"symbols"},do_not_litter:{keywords:["trash","bin","garbage","circle"],char:"\u{1f6af}",fitzpatrick_scale:!1,category:"symbols"},no_bicycles:{keywords:["cyclist","prohibited","circle"],char:"\u{1f6b3}",fitzpatrick_scale:!1,category:"symbols"},"non-potable_water":{keywords:["drink","faucet","tap","circle"],char:"\u{1f6b1}",fitzpatrick_scale:!1,category:"symbols"},underage:{keywords:["18","drink","pub","night","minor","circle"],char:"\u{1f51e}",fitzpatrick_scale:!1,category:"symbols"},no_mobile_phones:{keywords:["iphone","mute","circle"],char:"\u{1f4f5}",fitzpatrick_scale:!1,category:"symbols"},exclamation:{keywords:["heavy_exclamation_mark","danger","surprise","punctuation","wow","warning"],char:"\u2757",fitzpatrick_scale:!1,category:"symbols"},grey_exclamation:{keywords:["surprise","punctuation","gray","wow","warning"],char:"\u2755",fitzpatrick_scale:!1,category:"symbols"},question:{keywords:["doubt","confused"],char:"\u2753",fitzpatrick_scale:!1,category:"symbols"},grey_question:{keywords:["doubts","gray","huh","confused"],char:"\u2754",fitzpatrick_scale:!1,category:"symbols"},bangbang:{keywords:["exclamation","surprise"],char:"\u203c\ufe0f",fitzpatrick_scale:!1,category:"symbols"},interrobang:{keywords:["wat","punctuation","surprise"],char:"\u2049\ufe0f",fitzpatrick_scale:!1,category:"symbols"},100:{keywords:["score","perfect","numbers","century","exam","quiz","test","pass","hundred"],char:"\u{1f4af}",fitzpatrick_scale:!1,category:"symbols"},low_brightness:{keywords:["sun","afternoon","warm","summer"],char:"\u{1f505}",fitzpatrick_scale:!1,category:"symbols"},high_brightness:{keywords:["sun","light"],char:"\u{1f506}",fitzpatrick_scale:!1,category:"symbols"},trident:{keywords:["weapon","spear"],char:"\u{1f531}",fitzpatrick_scale:!1,category:"symbols"},fleur_de_lis:{keywords:["decorative","scout"],char:"\u269c",fitzpatrick_scale:!1,category:"symbols"},part_alternation_mark:{keywords:["graph","presentation","stats","business","economics","bad"],char:"\u303d\ufe0f",fitzpatrick_scale:!1,category:"symbols"},warning:{keywords:["exclamation","wip","alert","error","problem","issue"],char:"\u26a0\ufe0f",fitzpatrick_scale:!1,category:"symbols"},children_crossing:{keywords:["school","warning","danger","sign","driving","yellow-diamond"],char:"\u{1f6b8}",fitzpatrick_scale:!1,category:"symbols"},beginner:{keywords:["badge","shield"],char:"\u{1f530}",fitzpatrick_scale:!1,category:"symbols"},recycle:{keywords:["arrow","environment","garbage","trash"],char:"\u267b\ufe0f",fitzpatrick_scale:!1,category:"symbols"},u6307:{keywords:["chinese","point","green-square","kanji"],char:"\u{1f22f}",fitzpatrick_scale:!1,category:"symbols"},chart:{keywords:["green-square","graph","presentation","stats"],char:"\u{1f4b9}",fitzpatrick_scale:!1,category:"symbols"},sparkle:{keywords:["stars","green-square","awesome","good","fireworks"],char:"\u2747\ufe0f",fitzpatrick_scale:!1,category:"symbols"},eight_spoked_asterisk:{keywords:["star","sparkle","green-square"],char:"\u2733\ufe0f",fitzpatrick_scale:!1,category:"symbols"},negative_squared_cross_mark:{keywords:["x","green-square","no","deny"],char:"\u274e",fitzpatrick_scale:!1,category:"symbols"},white_check_mark:{keywords:["green-square","ok","agree","vote","election","answer","tick"],char:"\u2705",fitzpatrick_scale:!1,category:"symbols"},diamond_shape_with_a_dot_inside:{keywords:["jewel","blue","gem","crystal","fancy"],char:"\u{1f4a0}",fitzpatrick_scale:!1,category:"symbols"},cyclone:{keywords:["weather","swirl","blue","cloud","vortex","spiral","whirlpool","spin","tornado","hurricane","typhoon"],char:"\u{1f300}",fitzpatrick_scale:!1,category:"symbols"},loop:{keywords:["tape","cassette"],char:"\u27bf",fitzpatrick_scale:!1,category:"symbols"},globe_with_meridians:{keywords:["earth","international","world","internet","interweb","i18n"],char:"\u{1f310}",fitzpatrick_scale:!1,category:"symbols"},m:{keywords:["alphabet","blue-circle","letter"],char:"\u24c2\ufe0f",fitzpatrick_scale:!1,category:"symbols"},atm:{keywords:["money","sales","cash","blue-square","payment","bank"],char:"\u{1f3e7}",fitzpatrick_scale:!1,category:"symbols"},sa:{keywords:["japanese","blue-square","katakana"],char:"\u{1f202}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},passport_control:{keywords:["custom","blue-square"],char:"\u{1f6c2}",fitzpatrick_scale:!1,category:"symbols"},customs:{keywords:["passport","border","blue-square"],char:"\u{1f6c3}",fitzpatrick_scale:!1,category:"symbols"},baggage_claim:{keywords:["blue-square","airport","transport"],char:"\u{1f6c4}",fitzpatrick_scale:!1,category:"symbols"},left_luggage:{keywords:["blue-square","travel"],char:"\u{1f6c5}",fitzpatrick_scale:!1,category:"symbols"},wheelchair:{keywords:["blue-square","disabled","a11y","accessibility"],char:"\u267f",fitzpatrick_scale:!1,category:"symbols"},no_smoking:{keywords:["cigarette","blue-square","smell","smoke"],char:"\u{1f6ad}",fitzpatrick_scale:!1,category:"symbols"},wc:{keywords:["toilet","restroom","blue-square"],char:"\u{1f6be}",fitzpatrick_scale:!1,category:"symbols"},parking:{keywords:["cars","blue-square","alphabet","letter"],char:"\u{1f17f}\ufe0f",fitzpatrick_scale:!1,category:"symbols"},potable_water:{keywords:["blue-square","liquid","restroom","cleaning","faucet"],char:"\u{1f6b0}",fitzpatrick_scale:!1,category:"symbols"},mens:{keywords:["toilet","restroom","wc","blue-square","gender","male"],char:"\u{1f6b9}",fitzpatrick_scale:!1,category:"symbols"},womens:{keywords:["purple-square","woman","female","toilet","loo","restroom","gender"],char:"\u{1f6ba}",fitzpatrick_scale:!1,category:"symbols"},baby_symbol:{keywords:["orange-square","child"],char:"\u{1f6bc}",fitzpatrick_scale:!1,category:"symbols"},restroom:{keywords:["blue-square","toilet","refresh","wc","gender"],char:"\u{1f6bb}",fitzpatrick_scale:!1,category:"symbols"},put_litter_in_its_place:{keywords:["blue-square","sign","human","info"],char:"\u{1f6ae}",fitzpatrick_scale:!1,category:"symbols"},cinema:{keywords:["blue-square","record","film","movie","curtain","stage","theater"],char:"\u{1f3a6}",fitzpatrick_scale:!1,category:"symbols"},signal_strength:{keywords:["blue-square","reception","phone","internet","connection","wifi","bluetooth","bars"],char:"\u{1f4f6}",fitzpatrick_scale:!1,category:"symbols"},koko:{keywords:["blue-square","here","katakana","japanese","destination"],char:"\u{1f201}",fitzpatrick_scale:!1,category:"symbols"},ng:{keywords:["blue-square","words","shape","icon"],char:"\u{1f196}",fitzpatrick_scale:!1,category:"symbols"},ok:{keywords:["good","agree","yes","blue-square"],char:"\u{1f197}",fitzpatrick_scale:!1,category:"symbols"},up:{keywords:["blue-square","above","high"],char:"\u{1f199}",fitzpatrick_scale:!1,category:"symbols"},cool:{keywords:["words","blue-square"],char:"\u{1f192}",fitzpatrick_scale:!1,category:"symbols"},new:{keywords:["blue-square","words","start"],char:"\u{1f195}",fitzpatrick_scale:!1,category:"symbols"},free:{keywords:["blue-square","words"],char:"\u{1f193}",fitzpatrick_scale:!1,category:"symbols"},zero:{keywords:["0","numbers","blue-square","null"],char:"0\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},one:{keywords:["blue-square","numbers","1"],char:"1\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},two:{keywords:["numbers","2","prime","blue-square"],char:"2\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},three:{keywords:["3","numbers","prime","blue-square"],char:"3\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},four:{keywords:["4","numbers","blue-square"],char:"4\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},five:{keywords:["5","numbers","blue-square","prime"],char:"5\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},six:{keywords:["6","numbers","blue-square"],char:"6\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},seven:{keywords:["7","numbers","blue-square","prime"],char:"7\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},eight:{keywords:["8","blue-square","numbers"],char:"8\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},nine:{keywords:["blue-square","numbers","9"],char:"9\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},keycap_ten:{keywords:["numbers","10","blue-square"],char:"\u{1f51f}",fitzpatrick_scale:!1,category:"symbols"},asterisk:{keywords:["star","keycap"],char:"*\u20e3",fitzpatrick_scale:!1,category:"symbols"},1234:{keywords:["numbers","blue-square"],char:"\u{1f522}",fitzpatrick_scale:!1,category:"symbols"},eject_button:{keywords:["blue-square"],char:"\u23cf\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_forward:{keywords:["blue-square","right","direction","play"],char:"\u25b6\ufe0f",fitzpatrick_scale:!1,category:"symbols"},pause_button:{keywords:["pause","blue-square"],char:"\u23f8",fitzpatrick_scale:!1,category:"symbols"},next_track_button:{keywords:["forward","next","blue-square"],char:"\u23ed",fitzpatrick_scale:!1,category:"symbols"},stop_button:{keywords:["blue-square"],char:"\u23f9",fitzpatrick_scale:!1,category:"symbols"},record_button:{keywords:["blue-square"],char:"\u23fa",fitzpatrick_scale:!1,category:"symbols"},play_or_pause_button:{keywords:["blue-square","play","pause"],char:"\u23ef",fitzpatrick_scale:!1,category:"symbols"},previous_track_button:{keywords:["backward"],char:"\u23ee",fitzpatrick_scale:!1,category:"symbols"},fast_forward:{keywords:["blue-square","play","speed","continue"],char:"\u23e9",fitzpatrick_scale:!1,category:"symbols"},rewind:{keywords:["play","blue-square"],char:"\u23ea",fitzpatrick_scale:!1,category:"symbols"},twisted_rightwards_arrows:{keywords:["blue-square","shuffle","music","random"],char:"\u{1f500}",fitzpatrick_scale:!1,category:"symbols"},repeat:{keywords:["loop","record"],char:"\u{1f501}",fitzpatrick_scale:!1,category:"symbols"},repeat_one:{keywords:["blue-square","loop"],char:"\u{1f502}",fitzpatrick_scale:!1,category:"symbols"},arrow_backward:{keywords:["blue-square","left","direction"],char:"\u25c0\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up_small:{keywords:["blue-square","triangle","direction","point","forward","top"],char:"\u{1f53c}",fitzpatrick_scale:!1,category:"symbols"},arrow_down_small:{keywords:["blue-square","direction","bottom"],char:"\u{1f53d}",fitzpatrick_scale:!1,category:"symbols"},arrow_double_up:{keywords:["blue-square","direction","top"],char:"\u23eb",fitzpatrick_scale:!1,category:"symbols"},arrow_double_down:{keywords:["blue-square","direction","bottom"],char:"\u23ec",fitzpatrick_scale:!1,category:"symbols"},arrow_right:{keywords:["blue-square","next"],char:"\u27a1\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_left:{keywords:["blue-square","previous","back"],char:"\u2b05\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up:{keywords:["blue-square","continue","top","direction"],char:"\u2b06\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_down:{keywords:["blue-square","direction","bottom"],char:"\u2b07\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_upper_right:{keywords:["blue-square","point","direction","diagonal","northeast"],char:"\u2197\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_lower_right:{keywords:["blue-square","direction","diagonal","southeast"],char:"\u2198\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_lower_left:{keywords:["blue-square","direction","diagonal","southwest"],char:"\u2199\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_upper_left:{keywords:["blue-square","point","direction","diagonal","northwest"],char:"\u2196\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_up_down:{keywords:["blue-square","direction","way","vertical"],char:"\u2195\ufe0f",fitzpatrick_scale:!1,category:"symbols"},left_right_arrow:{keywords:["shape","direction","horizontal","sideways"],char:"\u2194\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrows_counterclockwise:{keywords:["blue-square","sync","cycle"],char:"\u{1f504}",fitzpatrick_scale:!1,category:"symbols"},arrow_right_hook:{keywords:["blue-square","return","rotate","direction"],char:"\u21aa\ufe0f",fitzpatrick_scale:!1,category:"symbols"},leftwards_arrow_with_hook:{keywords:["back","return","blue-square","undo","enter"],char:"\u21a9\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_heading_up:{keywords:["blue-square","direction","top"],char:"\u2934\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrow_heading_down:{keywords:["blue-square","direction","bottom"],char:"\u2935\ufe0f",fitzpatrick_scale:!1,category:"symbols"},hash:{keywords:["symbol","blue-square","twitter"],char:"#\ufe0f\u20e3",fitzpatrick_scale:!1,category:"symbols"},information_source:{keywords:["blue-square","alphabet","letter"],char:"\u2139\ufe0f",fitzpatrick_scale:!1,category:"symbols"},abc:{keywords:["blue-square","alphabet"],char:"\u{1f524}",fitzpatrick_scale:!1,category:"symbols"},abcd:{keywords:["blue-square","alphabet"],char:"\u{1f521}",fitzpatrick_scale:!1,category:"symbols"},capital_abcd:{keywords:["alphabet","words","blue-square"],char:"\u{1f520}",fitzpatrick_scale:!1,category:"symbols"},symbols:{keywords:["blue-square","music","note","ampersand","percent","glyphs","characters"],char:"\u{1f523}",fitzpatrick_scale:!1,category:"symbols"},musical_note:{keywords:["score","tone","sound"],char:"\u{1f3b5}",fitzpatrick_scale:!1,category:"symbols"},notes:{keywords:["music","score"],char:"\u{1f3b6}",fitzpatrick_scale:!1,category:"symbols"},wavy_dash:{keywords:["draw","line","moustache","mustache","squiggle","scribble"],char:"\u3030\ufe0f",fitzpatrick_scale:!1,category:"symbols"},curly_loop:{keywords:["scribble","draw","shape","squiggle"],char:"\u27b0",fitzpatrick_scale:!1,category:"symbols"},heavy_check_mark:{keywords:["ok","nike","answer","yes","tick"],char:"\u2714\ufe0f",fitzpatrick_scale:!1,category:"symbols"},arrows_clockwise:{keywords:["sync","cycle","round","repeat"],char:"\u{1f503}",fitzpatrick_scale:!1,category:"symbols"},heavy_plus_sign:{keywords:["math","calculation","addition","more","increase"],char:"\u2795",fitzpatrick_scale:!1,category:"symbols"},heavy_minus_sign:{keywords:["math","calculation","subtract","less"],char:"\u2796",fitzpatrick_scale:!1,category:"symbols"},heavy_division_sign:{keywords:["divide","math","calculation"],char:"\u2797",fitzpatrick_scale:!1,category:"symbols"},heavy_multiplication_x:{keywords:["math","calculation"],char:"\u2716\ufe0f",fitzpatrick_scale:!1,category:"symbols"},infinity:{keywords:["forever"],char:"\u267e",fitzpatrick_scale:!1,category:"symbols"},heavy_dollar_sign:{keywords:["money","sales","payment","currency","buck"],char:"\u{1f4b2}",fitzpatrick_scale:!1,category:"symbols"},currency_exchange:{keywords:["money","sales","dollar","travel"],char:"\u{1f4b1}",fitzpatrick_scale:!1,category:"symbols"},copyright:{keywords:["ip","license","circle","law","legal"],char:"\xa9\ufe0f",fitzpatrick_scale:!1,category:"symbols"},Registroed:{keywords:["alphabet","circle"],char:"\xae\ufe0f",fitzpatrick_scale:!1,category:"symbols"},tm:{keywords:["trademark","brand","law","legal"],char:"\u2122\ufe0f",fitzpatrick_scale:!1,category:"symbols"},end:{keywords:["words","arrow"],char:"\u{1f51a}",fitzpatrick_scale:!1,category:"symbols"},back:{keywords:["arrow","words","return"],char:"\u{1f519}",fitzpatrick_scale:!1,category:"symbols"},on:{keywords:["arrow","words"],char:"\u{1f51b}",fitzpatrick_scale:!1,category:"symbols"},top:{keywords:["words","blue-square"],char:"\u{1f51d}",fitzpatrick_scale:!1,category:"symbols"},soon:{keywords:["arrow","words"],char:"\u{1f51c}",fitzpatrick_scale:!1,category:"symbols"},ballot_box_with_check:{keywords:["ok","agree","confirm","black-square","vote","election","yes","tick"],char:"\u2611\ufe0f",fitzpatrick_scale:!1,category:"symbols"},radio_button:{keywords:["input","old","music","circle"],char:"\u{1f518}",fitzpatrick_scale:!1,category:"symbols"},white_circle:{keywords:["shape","round"],char:"\u26aa",fitzpatrick_scale:!1,category:"symbols"},black_circle:{keywords:["shape","button","round"],char:"\u26ab",fitzpatrick_scale:!1,category:"symbols"},red_circle:{keywords:["shape","error","danger"],char:"\u{1f534}",fitzpatrick_scale:!1,category:"symbols"},large_blue_circle:{keywords:["shape","icon","button"],char:"\u{1f535}",fitzpatrick_scale:!1,category:"symbols"},small_orange_diamond:{keywords:["shape","jewel","gem"],char:"\u{1f538}",fitzpatrick_scale:!1,category:"symbols"},small_blue_diamond:{keywords:["shape","jewel","gem"],char:"\u{1f539}",fitzpatrick_scale:!1,category:"symbols"},large_orange_diamond:{keywords:["shape","jewel","gem"],char:"\u{1f536}",fitzpatrick_scale:!1,category:"symbols"},large_blue_diamond:{keywords:["shape","jewel","gem"],char:"\u{1f537}",fitzpatrick_scale:!1,category:"symbols"},small_red_triangle:{keywords:["shape","direction","up","top"],char:"\u{1f53a}",fitzpatrick_scale:!1,category:"symbols"},black_small_square:{keywords:["shape","icon"],char:"\u25aa\ufe0f",fitzpatrick_scale:!1,category:"symbols"},white_small_square:{keywords:["shape","icon"],char:"\u25ab\ufe0f",fitzpatrick_scale:!1,category:"symbols"},black_large_square:{keywords:["shape","icon","button"],char:"\u2b1b",fitzpatrick_scale:!1,category:"symbols"},white_large_square:{keywords:["shape","icon","stone","button"],char:"\u2b1c",fitzpatrick_scale:!1,category:"symbols"},small_red_triangle_down:{keywords:["shape","direction","bottom"],char:"\u{1f53b}",fitzpatrick_scale:!1,category:"symbols"},black_medium_square:{keywords:["shape","button","icon"],char:"\u25fc\ufe0f",fitzpatrick_scale:!1,category:"symbols"},white_medium_square:{keywords:["shape","stone","icon"],char:"\u25fb\ufe0f",fitzpatrick_scale:!1,category:"symbols"},black_medium_small_square:{keywords:["icon","shape","button"],char:"\u25fe",fitzpatrick_scale:!1,category:"symbols"},white_medium_small_square:{keywords:["shape","stone","icon","button"],char:"\u25fd",fitzpatrick_scale:!1,category:"symbols"},black_square_button:{keywords:["shape","input","frame"],char:"\u{1f532}",fitzpatrick_scale:!1,category:"symbols"},white_square_button:{keywords:["shape","input"],char:"\u{1f533}",fitzpatrick_scale:!1,category:"symbols"},speaker:{keywords:["sound","volume","silence","broadcast"],char:"\u{1f508}",fitzpatrick_scale:!1,category:"symbols"},sound:{keywords:["volume","speaker","broadcast"],char:"\u{1f509}",fitzpatrick_scale:!1,category:"symbols"},loud_sound:{keywords:["volume","noise","noisy","speaker","broadcast"],char:"\u{1f50a}",fitzpatrick_scale:!1,category:"symbols"},mute:{keywords:["sound","volume","silence","quiet"],char:"\u{1f507}",fitzpatrick_scale:!1,category:"symbols"},mega:{keywords:["sound","speaker","volume"],char:"\u{1f4e3}",fitzpatrick_scale:!1,category:"symbols"},loudspeaker:{keywords:["volume","sound"],char:"\u{1f4e2}",fitzpatrick_scale:!1,category:"symbols"},bell:{keywords:["sound","notification","christmas","xmas","chime"],char:"\u{1f514}",fitzpatrick_scale:!1,category:"symbols"},no_bell:{keywords:["sound","volume","mute","quiet","silent"],char:"\u{1f515}",fitzpatrick_scale:!1,category:"symbols"},black_joker:{keywords:["poker","cards","game","play","magic"],char:"\u{1f0cf}",fitzpatrick_scale:!1,category:"symbols"},mahjong:{keywords:["game","play","chinese","kanji"],char:"\u{1f004}",fitzpatrick_scale:!1,category:"symbols"},spades:{keywords:["poker","cards","suits","magic"],char:"\u2660\ufe0f",fitzpatrick_scale:!1,category:"symbols"},clubs:{keywords:["poker","cards","magic","suits"],char:"\u2663\ufe0f",fitzpatrick_scale:!1,category:"symbols"},hearts:{keywords:["poker","cards","magic","suits"],char:"\u2665\ufe0f",fitzpatrick_scale:!1,category:"symbols"},diamonds:{keywords:["poker","cards","magic","suits"],char:"\u2666\ufe0f",fitzpatrick_scale:!1,category:"symbols"},flower_playing_cards:{keywords:["game","sunset","red"],char:"\u{1f3b4}",fitzpatrick_scale:!1,category:"symbols"},thought_balloon:{keywords:["bubble","cloud","speech","thinking","dream"],char:"\u{1f4ad}",fitzpatrick_scale:!1,category:"symbols"},right_anger_bubble:{keywords:["caption","speech","thinking","mad"],char:"\u{1f5ef}",fitzpatrick_scale:!1,category:"symbols"},speech_balloon:{keywords:["bubble","words","message","talk","chatting"],char:"\u{1f4ac}",fitzpatrick_scale:!1,category:"symbols"},left_speech_bubble:{keywords:["words","message","talk","chatting"],char:"\u{1f5e8}",fitzpatrick_scale:!1,category:"symbols"},clock1:{keywords:["time","late","early","schedule"],char:"\u{1f550}",fitzpatrick_scale:!1,category:"symbols"},clock2:{keywords:["time","late","early","schedule"],char:"\u{1f551}",fitzpatrick_scale:!1,category:"symbols"},clock3:{keywords:["time","late","early","schedule"],char:"\u{1f552}",fitzpatrick_scale:!1,category:"symbols"},clock4:{keywords:["time","late","early","schedule"],char:"\u{1f553}",fitzpatrick_scale:!1,category:"symbols"},clock5:{keywords:["time","late","early","schedule"],char:"\u{1f554}",fitzpatrick_scale:!1,category:"symbols"},clock6:{keywords:["time","late","early","schedule","dawn","dusk"],char:"\u{1f555}",fitzpatrick_scale:!1,category:"symbols"},clock7:{keywords:["time","late","early","schedule"],char:"\u{1f556}",fitzpatrick_scale:!1,category:"symbols"},clock8:{keywords:["time","late","early","schedule"],char:"\u{1f557}",fitzpatrick_scale:!1,category:"symbols"},clock9:{keywords:["time","late","early","schedule"],char:"\u{1f558}",fitzpatrick_scale:!1,category:"symbols"},clock10:{keywords:["time","late","early","schedule"],char:"\u{1f559}",fitzpatrick_scale:!1,category:"symbols"},clock11:{keywords:["time","late","early","schedule"],char:"\u{1f55a}",fitzpatrick_scale:!1,category:"symbols"},clock12:{keywords:["time","noon","midnight","midday","late","early","schedule"],char:"\u{1f55b}",fitzpatrick_scale:!1,category:"symbols"},clock130:{keywords:["time","late","early","schedule"],char:"\u{1f55c}",fitzpatrick_scale:!1,category:"symbols"},clock230:{keywords:["time","late","early","schedule"],char:"\u{1f55d}",fitzpatrick_scale:!1,category:"symbols"},clock330:{keywords:["time","late","early","schedule"],char:"\u{1f55e}",fitzpatrick_scale:!1,category:"symbols"},clock430:{keywords:["time","late","early","schedule"],char:"\u{1f55f}",fitzpatrick_scale:!1,category:"symbols"},clock530:{keywords:["time","late","early","schedule"],char:"\u{1f560}",fitzpatrick_scale:!1,category:"symbols"},clock630:{keywords:["time","late","early","schedule"],char:"\u{1f561}",fitzpatrick_scale:!1,category:"symbols"},clock730:{keywords:["time","late","early","schedule"],char:"\u{1f562}",fitzpatrick_scale:!1,category:"symbols"},clock830:{keywords:["time","late","early","schedule"],char:"\u{1f563}",fitzpatrick_scale:!1,category:"symbols"},clock930:{keywords:["time","late","early","schedule"],char:"\u{1f564}",fitzpatrick_scale:!1,category:"symbols"},clock1030:{keywords:["time","late","early","schedule"],char:"\u{1f565}",fitzpatrick_scale:!1,category:"symbols"},clock1130:{keywords:["time","late","early","schedule"],char:"\u{1f566}",fitzpatrick_scale:!1,category:"symbols"},clock1230:{keywords:["time","late","early","schedule"],char:"\u{1f567}",fitzpatrick_scale:!1,category:"symbols"},afghanistan:{keywords:["af","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},aland_islands:{keywords:["\xc5land","islands","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1fd}",fitzpatrick_scale:!1,category:"flags"},albania:{keywords:["al","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},algeria:{keywords:["dz","flag","nation","country","banner"],char:"\u{1f1e9}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},american_samoa:{keywords:["american","ws","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},andorra:{keywords:["ad","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},angola:{keywords:["ao","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},anguilla:{keywords:["ai","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},antarctica:{keywords:["aq","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f6}",fitzpatrick_scale:!1,category:"flags"},antigua_barbuda:{keywords:["antigua","barbuda","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},argentina:{keywords:["ar","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},armenia:{keywords:["am","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},aruba:{keywords:["aw","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},australia:{keywords:["au","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},austria:{keywords:["at","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},azerbaijan:{keywords:["az","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},bahamas:{keywords:["bs","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},bahrain:{keywords:["bh","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},bangladesh:{keywords:["bd","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},barbados:{keywords:["bb","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1e7}",fitzpatrick_scale:!1,category:"flags"},belarus:{keywords:["by","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},belgium:{keywords:["be","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},belize:{keywords:["bz","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},benin:{keywords:["bj","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ef}",fitzpatrick_scale:!1,category:"flags"},bermuda:{keywords:["bm","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},bhutan:{keywords:["bt","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},bolivia:{keywords:["bo","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},caribbean_netherlands:{keywords:["bonaire","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f6}",fitzpatrick_scale:!1,category:"flags"},bosnia_herzegovina:{keywords:["bosnia","herzegovina","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},botswana:{keywords:["bw","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},brazil:{keywords:["br","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},british_indian_ocean_territory:{keywords:["british","indian","ocean","territory","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},british_virgin_islands:{keywords:["british","virgin","islands","bvi","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},brunei:{keywords:["bn","darussalam","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},bulgaria:{keywords:["bg","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},burkina_faso:{keywords:["burkina","faso","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},burundi:{keywords:["bi","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},cape_verde:{keywords:["cabo","verde","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1fb}",fitzpatrick_scale:!1,category:"flags"},cambodia:{keywords:["kh","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},cameroon:{keywords:["cm","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},canada:{keywords:["ca","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},canary_islands:{keywords:["canary","islands","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},cayman_islands:{keywords:["cayman","islands","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},central_african_republic:{keywords:["central","african","republic","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},chad:{keywords:["td","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},chile:{keywords:["flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},cn:{keywords:["china","chinese","prc","flag","country","nation","banner"],char:"\u{1f1e8}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},christmas_island:{keywords:["christmas","island","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1fd}",fitzpatrick_scale:!1,category:"flags"},cocos_islands:{keywords:["cocos","keeling","islands","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},colombia:{keywords:["co","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},comoros:{keywords:["km","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},congo_brazzaville:{keywords:["congo","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},congo_kinshasa:{keywords:["congo","democratic","republic","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},cook_islands:{keywords:["cook","islands","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},costa_rica:{keywords:["costa","rica","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},croatia:{keywords:["hr","flag","nation","country","banner"],char:"\u{1f1ed}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},cuba:{keywords:["cu","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},curacao:{keywords:["cura\xe7ao","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},cyprus:{keywords:["cy","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},czech_republic:{keywords:["cz","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},denmark:{keywords:["dk","flag","nation","country","banner"],char:"\u{1f1e9}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},djibouti:{keywords:["dj","flag","nation","country","banner"],char:"\u{1f1e9}\u{1f1ef}",fitzpatrick_scale:!1,category:"flags"},dominica:{keywords:["dm","flag","nation","country","banner"],char:"\u{1f1e9}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},dominican_republic:{keywords:["dominican","republic","flag","nation","country","banner"],char:"\u{1f1e9}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},ecuador:{keywords:["ec","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},egypt:{keywords:["eg","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},el_salvador:{keywords:["el","salvador","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1fb}",fitzpatrick_scale:!1,category:"flags"},equatorial_guinea:{keywords:["equatorial","gn","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f6}",fitzpatrick_scale:!1,category:"flags"},eritrea:{keywords:["er","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},estonia:{keywords:["ee","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},ethiopia:{keywords:["et","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},eu:{keywords:["european","union","flag","banner"],char:"\u{1f1ea}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},falkland_islands:{keywords:["falkland","islands","malvinas","flag","nation","country","banner"],char:"\u{1f1eb}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},faroe_islands:{keywords:["faroe","islands","flag","nation","country","banner"],char:"\u{1f1eb}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},fiji:{keywords:["fj","flag","nation","country","banner"],char:"\u{1f1eb}\u{1f1ef}",fitzpatrick_scale:!1,category:"flags"},finland:{keywords:["fi","flag","nation","country","banner"],char:"\u{1f1eb}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},fr:{keywords:["banner","flag","nation","france","french","country"],char:"\u{1f1eb}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},french_guiana:{keywords:["french","guiana","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},french_polynesia:{keywords:["french","polynesia","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},french_southern_territories:{keywords:["french","southern","territories","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},gabon:{keywords:["ga","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},gambia:{keywords:["gm","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},georgia:{keywords:["ge","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},de:{keywords:["german","nation","flag","country","banner"],char:"\u{1f1e9}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},ghana:{keywords:["gh","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},gibraltar:{keywords:["gi","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},greece:{keywords:["gr","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},greenland:{keywords:["gl","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},grenada:{keywords:["gd","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},guadeloupe:{keywords:["gp","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f5}",fitzpatrick_scale:!1,category:"flags"},guam:{keywords:["gu","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},guatemala:{keywords:["gt","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},guernsey:{keywords:["gg","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},guinea:{keywords:["gn","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},guinea_bissau:{keywords:["gw","bissau","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},guyana:{keywords:["gy","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},haiti:{keywords:["ht","flag","nation","country","banner"],char:"\u{1f1ed}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},honduras:{keywords:["hn","flag","nation","country","banner"],char:"\u{1f1ed}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},hong_kong:{keywords:["hong","kong","flag","nation","country","banner"],char:"\u{1f1ed}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},hungary:{keywords:["hu","flag","nation","country","banner"],char:"\u{1f1ed}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},iceland:{keywords:["is","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},india:{keywords:["in","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},indonesia:{keywords:["flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},iran:{keywords:["iran,","islamic","republic","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},iraq:{keywords:["iq","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f6}",fitzpatrick_scale:!1,category:"flags"},ireland:{keywords:["ie","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},isle_of_man:{keywords:["isle","man","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},israel:{keywords:["il","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},it:{keywords:["italy","flag","nation","country","banner"],char:"\u{1f1ee}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},cote_divoire:{keywords:["ivory","coast","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},jamaica:{keywords:["jm","flag","nation","country","banner"],char:"\u{1f1ef}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},jp:{keywords:["japanese","nation","flag","country","banner"],char:"\u{1f1ef}\u{1f1f5}",fitzpatrick_scale:!1,category:"flags"},jersey:{keywords:["je","flag","nation","country","banner"],char:"\u{1f1ef}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},jordan:{keywords:["jo","flag","nation","country","banner"],char:"\u{1f1ef}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},kazakhstan:{keywords:["kz","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},kenya:{keywords:["ke","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},kiribati:{keywords:["ki","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},kosovo:{keywords:["xk","flag","nation","country","banner"],char:"\u{1f1fd}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},kuwait:{keywords:["kw","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},kyrgyzstan:{keywords:["kg","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},laos:{keywords:["lao","democratic","republic","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},latvia:{keywords:["lv","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1fb}",fitzpatrick_scale:!1,category:"flags"},lebanon:{keywords:["lb","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1e7}",fitzpatrick_scale:!1,category:"flags"},lesotho:{keywords:["ls","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},liberia:{keywords:["lr","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},libya:{keywords:["ly","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},liechtenstein:{keywords:["li","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},lithuania:{keywords:["lt","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},luxembourg:{keywords:["lu","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},macau:{keywords:["macao","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},macedonia:{keywords:["macedonia,","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},madagascar:{keywords:["mg","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},malawi:{keywords:["mw","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},malaysia:{keywords:["my","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},maldives:{keywords:["mv","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1fb}",fitzpatrick_scale:!1,category:"flags"},mali:{keywords:["ml","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},malta:{keywords:["mt","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},marshall_islands:{keywords:["marshall","islands","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},martinique:{keywords:["mq","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f6}",fitzpatrick_scale:!1,category:"flags"},mauritania:{keywords:["mr","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},mauritius:{keywords:["mu","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},mayotte:{keywords:["yt","flag","nation","country","banner"],char:"\u{1f1fe}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},mexico:{keywords:["mx","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1fd}",fitzpatrick_scale:!1,category:"flags"},micronesia:{keywords:["micronesia,","federated","states","flag","nation","country","banner"],char:"\u{1f1eb}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},moldova:{keywords:["moldova,","republic","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},monaco:{keywords:["mc","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},mongolia:{keywords:["mn","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},montenegro:{keywords:["me","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},montserrat:{keywords:["ms","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},morocco:{keywords:["ma","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},mozambique:{keywords:["mz","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},myanmar:{keywords:["mm","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},namibia:{keywords:["na","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},nauru:{keywords:["nr","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},nepal:{keywords:["np","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1f5}",fitzpatrick_scale:!1,category:"flags"},netherlands:{keywords:["nl","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},new_caledonia:{keywords:["new","caledonia","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},new_zealand:{keywords:["new","zealand","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},nicaragua:{keywords:["ni","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},niger:{keywords:["ne","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},nigeria:{keywords:["flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},niue:{keywords:["nu","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},norfolk_island:{keywords:["norfolk","island","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},northern_mariana_islands:{keywords:["northern","mariana","islands","flag","nation","country","banner"],char:"\u{1f1f2}\u{1f1f5}",fitzpatrick_scale:!1,category:"flags"},north_korea:{keywords:["north","korea","nation","flag","country","banner"],char:"\u{1f1f0}\u{1f1f5}",fitzpatrick_scale:!1,category:"flags"},norway:{keywords:["no","flag","nation","country","banner"],char:"\u{1f1f3}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},oman:{keywords:["om_symbol","flag","nation","country","banner"],char:"\u{1f1f4}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},pakistan:{keywords:["pk","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},palau:{keywords:["pw","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},palestinian_territories:{keywords:["palestine","palestinian","territories","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},panama:{keywords:["pa","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},papua_new_guinea:{keywords:["papua","new","guinea","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},paraguay:{keywords:["py","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},peru:{keywords:["pe","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},philippines:{keywords:["ph","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},pitcairn_islands:{keywords:["pitcairn","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},poland:{keywords:["pl","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},portugal:{keywords:["pt","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},puerto_rico:{keywords:["puerto","rico","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},qatar:{keywords:["qa","flag","nation","country","banner"],char:"\u{1f1f6}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},reunion:{keywords:["r\xe9union","flag","nation","country","banner"],char:"\u{1f1f7}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},romania:{keywords:["ro","flag","nation","country","banner"],char:"\u{1f1f7}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},ru:{keywords:["russian","federation","flag","nation","country","banner"],char:"\u{1f1f7}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},rwanda:{keywords:["rw","flag","nation","country","banner"],char:"\u{1f1f7}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},st_barthelemy:{keywords:["saint","barth\xe9lemy","flag","nation","country","banner"],char:"\u{1f1e7}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},st_helena:{keywords:["saint","helena","ascension","tristan","cunha","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},st_kitts_nevis:{keywords:["saint","kitts","nevis","flag","nation","country","banner"],char:"\u{1f1f0}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},st_lucia:{keywords:["saint","lucia","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},st_pierre_miquelon:{keywords:["saint","pierre","miquelon","flag","nation","country","banner"],char:"\u{1f1f5}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},st_vincent_grenadines:{keywords:["saint","vincent","grenadines","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},samoa:{keywords:["ws","flag","nation","country","banner"],char:"\u{1f1fc}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},san_marino:{keywords:["san","marino","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},sao_tome_principe:{keywords:["sao","tome","principe","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},saudi_arabia:{keywords:["flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},senegal:{keywords:["sn","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},serbia:{keywords:["rs","flag","nation","country","banner"],char:"\u{1f1f7}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},seychelles:{keywords:["sc","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},sierra_leone:{keywords:["sierra","leone","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},singapore:{keywords:["sg","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},sint_maarten:{keywords:["sint","maarten","dutch","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1fd}",fitzpatrick_scale:!1,category:"flags"},slovakia:{keywords:["sk","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},slovenia:{keywords:["si","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},solomon_islands:{keywords:["solomon","islands","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1e7}",fitzpatrick_scale:!1,category:"flags"},somalia:{keywords:["so","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},south_africa:{keywords:["south","africa","flag","nation","country","banner"],char:"\u{1f1ff}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},south_georgia_south_sandwich_islands:{keywords:["south","georgia","sandwich","islands","flag","nation","country","banner"],char:"\u{1f1ec}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},kr:{keywords:["south","korea","nation","flag","country","banner"],char:"\u{1f1f0}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},south_sudan:{keywords:["south","sd","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},es:{keywords:["spain","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},sri_lanka:{keywords:["sri","lanka","flag","nation","country","banner"],char:"\u{1f1f1}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},sudan:{keywords:["sd","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1e9}",fitzpatrick_scale:!1,category:"flags"},suriname:{keywords:["sr","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},swaziland:{keywords:["sz","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},sweden:{keywords:["se","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},switzerland:{keywords:["ch","flag","nation","country","banner"],char:"\u{1f1e8}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},syria:{keywords:["syrian","arab","republic","flag","nation","country","banner"],char:"\u{1f1f8}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},taiwan:{keywords:["tw","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},tajikistan:{keywords:["tj","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1ef}",fitzpatrick_scale:!1,category:"flags"},tanzania:{keywords:["tanzania,","united","republic","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},thailand:{keywords:["th","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},timor_leste:{keywords:["timor","leste","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f1}",fitzpatrick_scale:!1,category:"flags"},togo:{keywords:["tg","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},tokelau:{keywords:["tk","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f0}",fitzpatrick_scale:!1,category:"flags"},tonga:{keywords:["to","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f4}",fitzpatrick_scale:!1,category:"flags"},trinidad_tobago:{keywords:["trinidad","tobago","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f9}",fitzpatrick_scale:!1,category:"flags"},tunisia:{keywords:["tn","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},tr:{keywords:["turkey","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f7}",fitzpatrick_scale:!1,category:"flags"},turkmenistan:{keywords:["flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},turks_caicos_islands:{keywords:["turks","caicos","islands","flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1e8}",fitzpatrick_scale:!1,category:"flags"},tuvalu:{keywords:["flag","nation","country","banner"],char:"\u{1f1f9}\u{1f1fb}",fitzpatrick_scale:!1,category:"flags"},uganda:{keywords:["ug","flag","nation","country","banner"],char:"\u{1f1fa}\u{1f1ec}",fitzpatrick_scale:!1,category:"flags"},ukraine:{keywords:["ua","flag","nation","country","banner"],char:"\u{1f1fa}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},united_arab_emirates:{keywords:["united","arab","emirates","flag","nation","country","banner"],char:"\u{1f1e6}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},uk:{keywords:["united","kingdom","great","britain","northern","ireland","flag","nation","country","banner","british","UK","english","england","union jack"],char:"\u{1f1ec}\u{1f1e7}",fitzpatrick_scale:!1,category:"flags"},england:{keywords:["flag","english"],char:"\u{1f3f4}\u{e0067}\u{e0062}\u{e0065}\u{e006e}\u{e0067}\u{e007f}",fitzpatrick_scale:!1,category:"flags"},scotland:{keywords:["flag","scottish"],char:"\u{1f3f4}\u{e0067}\u{e0062}\u{e0073}\u{e0063}\u{e0074}\u{e007f}",fitzpatrick_scale:!1,category:"flags"},wales:{keywords:["flag","welsh"],char:"\u{1f3f4}\u{e0067}\u{e0062}\u{e0077}\u{e006c}\u{e0073}\u{e007f}",fitzpatrick_scale:!1,category:"flags"},us:{keywords:["united","states","america","flag","nation","country","banner"],char:"\u{1f1fa}\u{1f1f8}",fitzpatrick_scale:!1,category:"flags"},us_virgin_islands:{keywords:["virgin","islands","us","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1ee}",fitzpatrick_scale:!1,category:"flags"},uruguay:{keywords:["uy","flag","nation","country","banner"],char:"\u{1f1fa}\u{1f1fe}",fitzpatrick_scale:!1,category:"flags"},uzbekistan:{keywords:["uz","flag","nation","country","banner"],char:"\u{1f1fa}\u{1f1ff}",fitzpatrick_scale:!1,category:"flags"},vanuatu:{keywords:["vu","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1fa}",fitzpatrick_scale:!1,category:"flags"},vatican_city:{keywords:["vatican","city","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1e6}",fitzpatrick_scale:!1,category:"flags"},venezuela:{keywords:["ve","bolivarian","republic","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},vietnam:{keywords:["viet","nam","flag","nation","country","banner"],char:"\u{1f1fb}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},wallis_futuna:{keywords:["wallis","futuna","flag","nation","country","banner"],char:"\u{1f1fc}\u{1f1eb}",fitzpatrick_scale:!1,category:"flags"},western_sahara:{keywords:["western","sahara","flag","nation","country","banner"],char:"\u{1f1ea}\u{1f1ed}",fitzpatrick_scale:!1,category:"flags"},yemen:{keywords:["ye","flag","nation","country","banner"],char:"\u{1f1fe}\u{1f1ea}",fitzpatrick_scale:!1,category:"flags"},zambia:{keywords:["zm","flag","nation","country","banner"],char:"\u{1f1ff}\u{1f1f2}",fitzpatrick_scale:!1,category:"flags"},zimbabwe:{keywords:["zw","flag","nation","country","banner"],char:"\u{1f1ff}\u{1f1fc}",fitzpatrick_scale:!1,category:"flags"},united_nations:{keywords:["un","flag","banner"],char:"\u{1f1fa}\u{1f1f3}",fitzpatrick_scale:!1,category:"flags"},pirate_flag:{keywords:["skull","crossbones","flag","banner"],char:"\u{1f3f4}\u200d\u2620\ufe0f",fitzpatrick_scale:!1,category:"flags"}}); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.js new file mode 100644 index 0000000..40036a6 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.js @@ -0,0 +1,583 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const eq = t => a => t === a; + const isNull = eq(null); + const isUndefined = eq(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + + const noop = () => { + }; + const constant = value => { + return () => { + return value; + }; + }; + const never = constant(false); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const exists = (xs, pred) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return true; + } + } + return false; + }; + const map$1 = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each$1 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + const last = (fn, rate) => { + let timer = null; + const cancel = () => { + if (!isNull(timer)) { + clearTimeout(timer); + timer = null; + } + }; + const throttle = (...args) => { + cancel(); + timer = setTimeout(() => { + timer = null; + fn.apply(null, args); + }, rate); + }; + return { + cancel, + throttle + }; + }; + + const insertEmoticon = (editor, ch) => { + editor.insertContent(ch); + }; + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const map = (obj, f) => { + return tupleMap(obj, (x, i) => ({ + k: i, + v: f(x, i) + })); + }; + const tupleMap = (obj, f) => { + const r = {}; + each(obj, (x, i) => { + const tuple = f(x, i); + r[tuple.k] = tuple.v; + }); + return r; + }; + const has = (obj, key) => hasOwnProperty.call(obj, key); + + const shallow = (old, nu) => { + return nu; + }; + const baseMerge = merger => { + return (...objects) => { + if (objects.length === 0) { + throw new Error(`Can't merge zero objects`); + } + const ret = {}; + for (let j = 0; j < objects.length; j++) { + const curObject = objects[j]; + for (const key in curObject) { + if (has(curObject, key)) { + ret[key] = merger(ret[key], curObject[key]); + } + } + } + return ret; + }; + }; + const merge = baseMerge(shallow); + + const singleton = doRevoke => { + const subject = Cell(Optional.none()); + const revoke = () => subject.get().each(doRevoke); + const clear = () => { + revoke(); + subject.set(Optional.none()); + }; + const isSet = () => subject.get().isSome(); + const get = () => subject.get(); + const set = s => { + revoke(); + subject.set(Optional.some(s)); + }; + return { + clear, + isSet, + get, + set + }; + }; + const value = () => { + const subject = singleton(noop); + const on = f => subject.get().each(f); + return { + ...subject, + on + }; + }; + + const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr; + const contains = (str, substr, start = 0, end) => { + const idx = str.indexOf(substr, start); + if (idx !== -1) { + return isUndefined(end) ? true : idx + substr.length <= end; + } else { + return false; + } + }; + const startsWith = (str, prefix) => { + return checkRange(str, prefix, 0); + }; + + var global = tinymce.util.Tools.resolve('tinymce.Resource'); + + const DEFAULT_ID = 'tinymce.plugins.emoticons'; + const option = name => editor => editor.options.get(name); + const Registro$2 = (editor, pluginUrl) => { + const RegistroOption = editor.options.Registro; + RegistroOption('emoticons_database', { + processor: 'string', + default: 'emojis' + }); + RegistroOption('emoticons_database_url', { + processor: 'string', + default: `${ pluginUrl }/js/${ getEmojiDatabase(editor) }${ editor.suffix }.js` + }); + RegistroOption('emoticons_database_id', { + processor: 'string', + default: DEFAULT_ID + }); + RegistroOption('emoticons_append', { + processor: 'object', + default: {} + }); + RegistroOption('emoticons_images_url', { + processor: 'string', + default: 'https://twemoji.maxcdn.com/v/13.0.1/72x72/' + }); + }; + const getEmojiDatabase = option('emoticons_database'); + const getEmojiDatabaseUrl = option('emoticons_database_url'); + const getEmojiDatabaseId = option('emoticons_database_id'); + const getAppendedEmoji = option('emoticons_append'); + const getEmojiImageUrl = option('emoticons_images_url'); + + const ALL_CATEGORY = 'All'; + const categoryNameMap = { + symbols: 'Symbols', + people: 'People', + animals_and_nature: 'Animals and Nature', + food_and_drink: 'Food and Drink', + activity: 'Activity', + travel_and_places: 'Travel and Places', + objects: 'Objects', + flags: 'Flags', + user: 'User Defined' + }; + const translateCategory = (categories, name) => has(categories, name) ? categories[name] : name; + const getUserDefinedEmoji = editor => { + const userDefinedEmoticons = getAppendedEmoji(editor); + return map(userDefinedEmoticons, value => ({ + keywords: [], + category: 'user', + ...value + })); + }; + const initDatabase = (editor, databaseUrl, databaseId) => { + const categories = value(); + const all = value(); + const emojiImagesUrl = getEmojiImageUrl(editor); + const getEmoji = lib => { + if (startsWith(lib.char, ' `src="${ emojiImagesUrl }${ url }"`); + } else { + return lib.char; + } + }; + const processEmojis = emojis => { + const cats = {}; + const everything = []; + each(emojis, (lib, title) => { + const entry = { + title, + keywords: lib.keywords, + char: getEmoji(lib), + category: translateCategory(categoryNameMap, lib.category) + }; + const current = cats[entry.category] !== undefined ? cats[entry.category] : []; + cats[entry.category] = current.concat([entry]); + everything.push(entry); + }); + categories.set(cats); + all.set(everything); + }; + editor.on('init', () => { + global.load(databaseId, databaseUrl).then(emojis => { + const userEmojis = getUserDefinedEmoji(editor); + processEmojis(merge(emojis, userEmojis)); + }, err => { + console.log(`Failed to load emojis: ${ err }`); + categories.set({}); + all.set([]); + }); + }); + const listCategory = category => { + if (category === ALL_CATEGORY) { + return listAll(); + } + return categories.get().bind(cats => Optional.from(cats[category])).getOr([]); + }; + const listAll = () => all.get().getOr([]); + const listCategories = () => [ALL_CATEGORY].concat(keys(categories.get().getOr({}))); + const waitForLoad = () => { + if (hasLoaded()) { + return Promise.resolve(true); + } else { + return new Promise((resolve, reject) => { + let numRetries = 15; + const interval = setInterval(() => { + if (hasLoaded()) { + clearInterval(interval); + resolve(true); + } else { + numRetries--; + if (numRetries < 0) { + console.log('Could not load emojis from url: ' + databaseUrl); + clearInterval(interval); + reject(false); + } + } + }, 100); + }); + } + }; + const hasLoaded = () => categories.isSet() && all.isSet(); + return { + listCategories, + hasLoaded, + waitForLoad, + listAll, + listCategory + }; + }; + + const emojiMatches = (emoji, lowerCasePattern) => contains(emoji.title.toLowerCase(), lowerCasePattern) || exists(emoji.keywords, k => contains(k.toLowerCase(), lowerCasePattern)); + const emojisFrom = (list, pattern, maxResults) => { + const matches = []; + const lowerCasePattern = pattern.toLowerCase(); + const reachedLimit = maxResults.fold(() => never, max => size => size >= max); + for (let i = 0; i < list.length; i++) { + if (pattern.length === 0 || emojiMatches(list[i], lowerCasePattern)) { + matches.push({ + value: list[i].char, + text: list[i].title, + icon: list[i].char + }); + if (reachedLimit(matches.length)) { + break; + } + } + } + return matches; + }; + + const patternName = 'pattern'; + const open = (editor, database) => { + const initialState = { + pattern: '', + results: emojisFrom(database.listAll(), '', Optional.some(300)) + }; + const currentTab = Cell(ALL_CATEGORY); + const scan = dialogApi => { + const dialogData = dialogApi.getData(); + const category = currentTab.get(); + const candidates = database.listCategory(category); + const results = emojisFrom(candidates, dialogData[patternName], category === ALL_CATEGORY ? Optional.some(300) : Optional.none()); + dialogApi.setData({ results }); + }; + const updateFilter = last(dialogApi => { + scan(dialogApi); + }, 200); + const BuscarField = { + label: 'Buscar', + type: 'input', + name: patternName + }; + const resultsField = { + type: 'collection', + name: 'results' + }; + const getInitialState = () => { + const body = { + type: 'tabpanel', + tabs: map$1(database.listCategories(), cat => ({ + title: cat, + name: cat, + items: [ + BuscarField, + resultsField + ] + })) + }; + return { + title: 'Emojis', + size: 'normal', + body, + initialData: initialState, + onTabChange: (dialogApi, details) => { + currentTab.set(details.newTabName); + updateFilter.throttle(dialogApi); + }, + onChange: updateFilter.throttle, + onAction: (dialogApi, actionData) => { + if (actionData.name === 'results') { + insertEmoticon(editor, actionData.value); + dialogApi.close(); + } + }, + buttons: [{ + type: 'cancel', + text: 'Close', + primary: true + }] + }; + }; + const dialogApi = editor.windowManager.open(getInitialState()); + dialogApi.focus(patternName); + if (!database.hasLoaded()) { + dialogApi.block('Loading emojis...'); + database.waitForLoad().then(() => { + dialogApi.redial(getInitialState()); + updateFilter.throttle(dialogApi); + dialogApi.focus(patternName); + dialogApi.unblock(); + }).catch(_err => { + dialogApi.redial({ + title: 'Emojis', + body: { + type: 'panel', + items: [{ + type: 'alertbanner', + level: 'error', + icon: 'warning', + text: 'Could not load emojis' + }] + }, + buttons: [{ + type: 'cancel', + text: 'Close', + primary: true + }], + initialData: { + pattern: '', + results: [] + } + }); + dialogApi.focus(patternName); + dialogApi.unblock(); + }); + } + }; + + const Registro$1 = (editor, database) => { + editor.addCommand('mceEmoticons', () => open(editor, database)); + }; + + const setup = editor => { + editor.on('PreInit', () => { + editor.parser.addAttributeFilter('data-emoticon', nodes => { + each$1(nodes, node => { + node.attr('data-mce-resize', 'false'); + node.attr('data-mce-placeholder', '1'); + }); + }); + }); + }; + + const init = (editor, database) => { + editor.ui.registry.addAutocompleter('emoticons', { + trigger: ':', + columns: 'auto', + minChars: 2, + fetch: (pattern, maxResults) => database.waitForLoad().then(() => { + const candidates = database.listAll(); + return emojisFrom(candidates, pattern, Optional.some(maxResults)); + }), + onAction: (autocompleteApi, rng, value) => { + editor.selection.setRng(rng); + editor.insertContent(value); + autocompleteApi.hide(); + } + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceEmoticons'); + editor.ui.registry.addButton('emoticons', { + tooltip: 'Emojis', + icon: 'emoji', + onAction + }); + editor.ui.registry.addMenuItem('emoticons', { + text: 'Emojis...', + icon: 'emoji', + onAction + }); + }; + + var Plugin = () => { + global$1.add('emoticons', (editor, pluginUrl) => { + Registro$2(editor, pluginUrl); + const databaseUrl = getEmojiDatabaseUrl(editor); + const databaseId = getEmojiDatabaseId(editor); + const database = initDatabase(editor, databaseUrl, databaseId); + Registro$1(editor, database); + Registro(editor); + init(editor, database); + setup(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.min.js new file mode 100644 index 0000000..95ba873 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/emoticons/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>t===e,o=e(null),n=e(void 0),s=()=>{},r=()=>!1;class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return null==t?a.none():a.some(t)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const i=(t,e)=>{const o=t.length,n=new Array(o);for(let s=0;s{let e=t;return{get:()=>e,set:t=>{e=t}}},c=Object.keys,u=Object.hasOwnProperty,g=(t,e)=>{const o=c(t);for(let n=0,s=o.length;nu.call(t,e),h=(d=(t,e)=>e,(...t)=>{if(0===t.length)throw new Error("Can't merge zero objects");const e={};for(let o=0;o{const t=(t=>{const e=l(a.none()),o=()=>e.get().each(t);return{clear:()=>{o(),e.set(a.none())},isSet:()=>e.get().isSome(),get:()=>e.get(),set:t=>{o(),e.set(a.some(t))}}})(s);return{...t,on:e=>t.get().each(e)}},v=(t,e,o=0,s)=>{const r=t.indexOf(e,o);return-1!==r&&(!!n(s)||r+e.length<=s)};var y=tinymce.util.Tools.resolve("tinymce.Resource");const f=t=>e=>e.options.get(t),b=f("emoticons_database"),w=f("emoticons_database_url"),_=f("emoticons_database_id"),j=f("emoticons_append"),C=f("emoticons_images_url"),k="All",A={symbols:"Symbols",people:"People",animals_and_nature:"Animals and Nature",food_and_drink:"Food and Drink",activity:"Activity",travel_and_places:"Travel and Places",objects:"Objects",flags:"Flags",user:"User Defined"},O=(t,e)=>m(t,e)?t[e]:e,x=t=>{const e=j(t);return o=t=>({keywords:[],category:"user",...t}),((t,e)=>{const o={};return g(t,((t,n)=>{const s=e(t,n);o[s.k]=s.v})),o})(e,((t,e)=>({k:e,v:o(t)})));var o},L=(t,e)=>v(t.title.toLowerCase(),e)||((t,o)=>{for(let o=0,s=t.length;o{const n=[],s=e.toLowerCase(),a=o.fold((()=>r),(t=>e=>e>=t));for(let o=0;o{const n={pattern:"",results:T(e.listAll(),"",a.some(300))},s=l(k),r=((t,e)=>{let n=null;const s=()=>{o(n)||(clearTimeout(n),n=null)};return{cancel:s,throttle:(...e)=>{s(),n=setTimeout((()=>{n=null,t.apply(null,e)}),200)}}})((t=>{(t=>{const o=t.getData(),n=s.get(),r=e.listCategory(n),i=T(r,o.pattern,n===k?a.some(300):a.none());t.setData({results:i})})(t)})),c={label:"Buscar",type:"input",name:D},u={type:"collection",name:"results"},g=()=>({title:"Emojis",size:"normal",body:{type:"tabpanel",tabs:i(e.listCategories(),(t=>({title:t,name:t,items:[c,u]})))},initialData:n,onTabChange:(t,e)=>{s.set(e.newTabName),r.throttle(t)},onChange:r.throttle,onAction:(e,o)=>{"results"===o.name&&(((t,e)=>{t.insertContent(e)})(t,o.value),e.close())},buttons:[{type:"cancel",text:"Close",primary:!0}]}),m=t.windowManager.open(g());m.focus(D),e.hasLoaded()||(m.block("Loading emojis..."),e.waitForLoad().then((()=>{m.redial(g()),r.throttle(m),m.focus(D),m.unblock()})).catch((t=>{m.redial({title:"Emojis",body:{type:"panel",items:[{type:"alertbanner",level:"error",icon:"warning",text:"Could not load emojis"}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),m.focus(D),m.unblock()})))};t.add("emoticons",((t,e)=>{((t,e)=>{const o=t.options.Registro;o("emoticons_database",{processor:"string",default:"emojis"}),o("emoticons_database_url",{processor:"string",default:`${e}/js/${b(t)}${t.suffix}.js`}),o("emoticons_database_id",{processor:"string",default:"tinymce.plugins.emoticons"}),o("emoticons_append",{processor:"object",default:{}}),o("emoticons_images_url",{processor:"string",default:"https://twemoji.maxcdn.com/v/13.0.1/72x72/"})})(t,e);const o=((t,e,o)=>{const n=p(),s=p(),r=C(t),i=t=>{return o="=o.length&&e.substr(0,0+o.length)===o?t.char.replace(/src="([^"]+)"/,((t,e)=>`src="${r}${e}"`)):t.char;var e,o};t.on("init",(()=>{y.load(o,e).then((e=>{const o=x(t);(t=>{const e={},o=[];g(t,((t,n)=>{const s={title:n,keywords:t.keywords,char:i(t),category:O(A,t.category)},r=void 0!==e[s.category]?e[s.category]:[];e[s.category]=r.concat([s]),o.push(s)})),n.set(e),s.set(o)})(h(e,o))}),(t=>{console.log(`Failed to load emojis: ${t}`),n.set({}),s.set([])}))}));const l=()=>s.get().getOr([]),u=()=>n.isSet()&&s.isSet();return{listCategories:()=>[k].concat(c(n.get().getOr({}))),hasLoaded:u,waitForLoad:()=>u()?Promise.resolve(!0):new Promise(((t,o)=>{let n=15;const s=setInterval((()=>{u()?(clearInterval(s),t(!0)):(n--,n<0&&(console.log("Could not load emojis from url: "+e),clearInterval(s),o(!1)))}),100)})),listAll:l,listCategory:t=>t===k?l():n.get().bind((e=>a.from(e[t]))).getOr([])}})(t,w(t),_(t));((t,e)=>{t.addCommand("mceEmoticons",(()=>E(t,e)))})(t,o),(t=>{const e=()=>t.execCommand("mceEmoticons");t.ui.registry.addButton("emoticons",{tooltip:"Emojis",icon:"emoji",onAction:e}),t.ui.registry.addMenuItem("emoticons",{text:"Emojis...",icon:"emoji",onAction:e})})(t),((t,e)=>{t.ui.registry.addAutocompleter("emoticons",{trigger:":",columns:"auto",minChars:2,fetch:(t,o)=>e.waitForLoad().then((()=>{const n=e.listAll();return T(n,t,a.some(o))})),onAction:(e,o,n)=>{t.selection.setRng(o),t.insertContent(n),e.hide()}})})(t,o),(t=>{t.on("PreInit",(()=>{t.parser.addAttributeFilter("data-emoticon",(t=>{((t,e)=>{for(let e=0,n=t.length;e { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const get$5 = fullscreenState => ({ isFullscreen: () => fullscreenState.get() !== null }); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType$1 = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq$1 = t => a => t === a; + const isString = isType$1('string'); + const isArray = isType$1('array'); + const isNull = eq$1(null); + const isBoolean = isSimpleType('boolean'); + const isUndefined = eq$1(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isNumber = isSimpleType('number'); + + const noop = () => { + }; + const compose = (fa, fb) => { + return (...args) => { + return fa(fb.apply(null, args)); + }; + }; + const compose1 = (fbc, fab) => a => fbc(fab(a)); + const constant = value => { + return () => { + return value; + }; + }; + function curry(fn, ...initialArgs) { + return (...restArgs) => { + const all = initialArgs.concat(restArgs); + return fn.apply(null, all); + }; + } + const never = constant(false); + const always = constant(true); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const singleton = doRevoke => { + const subject = Cell(Optional.none()); + const revoke = () => subject.get().each(doRevoke); + const clear = () => { + revoke(); + subject.set(Optional.none()); + }; + const isSet = () => subject.get().isSome(); + const get = () => subject.get(); + const set = s => { + revoke(); + subject.set(Optional.some(s)); + }; + return { + clear, + isSet, + get, + set + }; + }; + const unbindable = () => singleton(s => s.unbind()); + const value = () => { + const subject = singleton(noop); + const on = f => subject.get().each(f); + return { + ...subject, + on + }; + }; + + const first = (fn, rate) => { + let timer = null; + const cancel = () => { + if (!isNull(timer)) { + clearTimeout(timer); + timer = null; + } + }; + const throttle = (...args) => { + if (isNull(timer)) { + timer = setTimeout(() => { + timer = null; + fn.apply(null, args); + }, rate); + } + }; + return { + cancel, + throttle + }; + }; + + const nativePush = Array.prototype.push; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each$1 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const filter$1 = (xs, pred) => { + const r = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + const findUntil = (xs, pred, until) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(x); + } else if (until(x, i)) { + break; + } + } + return Optional.none(); + }; + const find$1 = (xs, pred) => { + return findUntil(xs, pred, never); + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind$3 = (xs, f) => flatten(map(xs, f)); + const get$4 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); + const head = xs => get$4(xs, 0); + const findMap = (arr, f) => { + for (let i = 0; i < arr.length; i++) { + const r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Optional.none(); + }; + + const keys = Object.keys; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + + const contains = (str, substr, start = 0, end) => { + const idx = str.indexOf(substr, start); + if (idx !== -1) { + return isUndefined(end) ? true : idx + substr.length <= end; + } else { + return false; + } + }; + + const isSupported$1 = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue); + + const fromHtml = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + const message = 'HTML does not have a single root node'; + console.error(message, html); + throw new Error(message); + } + return fromDom(div.childNodes[0]); + }; + const fromTag = (tag, scope) => { + const doc = scope || document; + const node = doc.createElement(tag); + return fromDom(node); + }; + const fromText = (text, scope) => { + const doc = scope || document; + const node = doc.createTextNode(text); + return fromDom(node); + }; + const fromDom = node => { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: node }; + }; + const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom); + const SugarElement = { + fromHtml, + fromTag, + fromText, + fromDom, + fromPoint + }; + + typeof window !== 'undefined' ? window : Function('return this;')(); + + const DOCUMENT = 9; + const DOCUMENT_FRAGMENT = 11; + const ELEMENT = 1; + const TEXT = 3; + + const type = element => element.dom.nodeType; + const isType = t => element => type(element) === t; + const isElement = isType(ELEMENT); + const isText = isType(TEXT); + const isDocument = isType(DOCUMENT); + const isDocumentFragment = isType(DOCUMENT_FRAGMENT); + + const is = (element, selector) => { + const dom = element.dom; + if (dom.nodeType !== ELEMENT) { + return false; + } else { + const elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0; + const all$1 = (selector, scope) => { + const base = scope === undefined ? document : scope.dom; + return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), SugarElement.fromDom); + }; + + const eq = (e1, e2) => e1.dom === e2.dom; + + const owner = element => SugarElement.fromDom(element.dom.ownerDocument); + const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos); + const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom); + const parents = (element, isRoot) => { + const stop = isFunction(isRoot) ? isRoot : never; + let dom = element.dom; + const ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + const rawParent = dom.parentNode; + const p = SugarElement.fromDom(rawParent); + ret.push(p); + if (stop(p) === true) { + break; + } else { + dom = rawParent; + } + } + return ret; + }; + const siblings$2 = element => { + const filterSelf = elements => filter$1(elements, x => !eq(element, x)); + return parent(element).map(children).map(filterSelf).getOr([]); + }; + const children = element => map(element.dom.childNodes, SugarElement.fromDom); + + const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host); + const supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode); + const isSupported = constant(supported); + const getRootNode = supported ? e => SugarElement.fromDom(e.dom.getRootNode()) : documentOrOwner; + const getShadowRoot = e => { + const r = getRootNode(e); + return isShadowRoot(r) ? Optional.some(r) : Optional.none(); + }; + const getShadowHost = e => SugarElement.fromDom(e.dom.host); + const getOriginalEventTarget = event => { + if (isSupported() && isNonNullable(event.target)) { + const el = SugarElement.fromDom(event.target); + if (isElement(el) && isOpenShadowHost(el)) { + if (event.composed && event.composedPath) { + const composedPath = event.composedPath(); + if (composedPath) { + return head(composedPath); + } + } + } + } + return Optional.from(event.target); + }; + const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot); + + const inBody = element => { + const dom = isText(element) ? element.dom.parentNode : element.dom; + if (dom === undefined || dom === null || dom.ownerDocument === null) { + return false; + } + const doc = dom.ownerDocument; + return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost)); + }; + const getBody = doc => { + const b = doc.dom.body; + if (b === null || b === undefined) { + throw new Error('Body is not available yet'); + } + return SugarElement.fromDom(b); + }; + + const rawSet = (dom, key, value) => { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + const set = (element, key, value) => { + rawSet(element.dom, key, value); + }; + const get$3 = (element, key) => { + const v = element.dom.getAttribute(key); + return v === null ? undefined : v; + }; + const remove = (element, key) => { + element.dom.removeAttribute(key); + }; + + const internalSet = (dom, property, value) => { + if (!isString(value)) { + console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); + throw new Error('CSS value must be a string: ' + value); + } + if (isSupported$1(dom)) { + dom.style.setProperty(property, value); + } + }; + const setAll = (element, css) => { + const dom = element.dom; + each(css, (v, k) => { + internalSet(dom, k, v); + }); + }; + const get$2 = (element, property) => { + const dom = element.dom; + const styles = window.getComputedStyle(dom); + const r = styles.getPropertyValue(property); + return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + }; + const getUnsafeProperty = (dom, property) => isSupported$1(dom) ? dom.style.getPropertyValue(property) : ''; + + const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({ + target, + x, + y, + stop, + prevent, + kill, + raw + }); + const fromRawEvent = rawEvent => { + const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target)); + const stop = () => rawEvent.stopPropagation(); + const prevent = () => rawEvent.preventDefault(); + const kill = compose(prevent, stop); + return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent); + }; + const handle = (filter, handler) => rawEvent => { + if (filter(rawEvent)) { + handler(fromRawEvent(rawEvent)); + } + }; + const binder = (element, event, filter, handler, useCapture) => { + const wrapped = handle(filter, handler); + element.dom.addEventListener(event, wrapped, useCapture); + return { unbind: curry(unbind, element, event, wrapped, useCapture) }; + }; + const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false); + const unbind = (element, event, handler, useCapture) => { + element.dom.removeEventListener(event, handler, useCapture); + }; + + const filter = always; + const bind$1 = (element, event, handler) => bind$2(element, event, filter, handler); + + const cached = f => { + let called = false; + let r; + return (...args) => { + if (!called) { + called = true; + r = f.apply(null, args); + } + return r; + }; + }; + + const DeviceType = (os, browser, userAgent, mediaMatch) => { + const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; + const isiPhone = os.isiOS() && !isiPad; + const isMobile = os.isiOS() || os.isAndroid(); + const isTouch = isMobile || mediaMatch('(pointer:coarse)'); + const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)'); + const isPhone = isiPhone || isMobile && !isTablet; + const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; + const isDesktop = !isPhone && !isTablet && !iOSwebview; + return { + isiPad: constant(isiPad), + isiPhone: constant(isiPhone), + isTablet: constant(isTablet), + isPhone: constant(isPhone), + isTouch: constant(isTouch), + isAndroid: os.isAndroid, + isiOS: os.isiOS, + isWebView: constant(iOSwebview), + isDesktop: constant(isDesktop) + }; + }; + + const firstMatch = (regexes, s) => { + for (let i = 0; i < regexes.length; i++) { + const x = regexes[i]; + if (x.test(s)) { + return x; + } + } + return undefined; + }; + const find = (regexes, agent) => { + const r = firstMatch(regexes, agent); + if (!r) { + return { + major: 0, + minor: 0 + }; + } + const group = i => { + return Number(agent.replace(r, '$' + i)); + }; + return nu$2(group(1), group(2)); + }; + const detect$3 = (versionRegexes, agent) => { + const cleanedAgent = String(agent).toLowerCase(); + if (versionRegexes.length === 0) { + return unknown$2(); + } + return find(versionRegexes, cleanedAgent); + }; + const unknown$2 = () => { + return nu$2(0, 0); + }; + const nu$2 = (major, minor) => { + return { + major, + minor + }; + }; + const Version = { + nu: nu$2, + detect: detect$3, + unknown: unknown$2 + }; + + const detectBrowser$1 = (browsers, userAgentData) => { + return findMap(userAgentData.brands, uaBrand => { + const lcBrand = uaBrand.brand.toLowerCase(); + return find$1(browsers, browser => { + var _a; + return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase()); + }).map(info => ({ + current: info.name, + version: Version.nu(parseInt(uaBrand.version, 10), 0) + })); + }); + }; + + const detect$2 = (candidates, userAgent) => { + const agent = String(userAgent).toLowerCase(); + return find$1(candidates, candidate => { + return candidate.Buscar(agent); + }); + }; + const detectBrowser = (browsers, userAgent) => { + return detect$2(browsers, userAgent).map(browser => { + const version = Version.detect(browser.versionRegexes, userAgent); + return { + current: browser.name, + version + }; + }); + }; + const detectOs = (oses, userAgent) => { + return detect$2(oses, userAgent).map(os => { + const version = Version.detect(os.versionRegexes, userAgent); + return { + current: os.name, + version + }; + }); + }; + + const normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; + const checkContains = target => { + return uastring => { + return contains(uastring, target); + }; + }; + const browsers = [ + { + name: 'Edge', + versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], + Buscar: uastring => { + return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit'); + } + }, + { + name: 'Chromium', + brand: 'Chromium', + versionRegexes: [ + /.*?chrome\/([0-9]+)\.([0-9]+).*/, + normalVersionRegex + ], + Buscar: uastring => { + return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe'); + } + }, + { + name: 'IE', + versionRegexes: [ + /.*?msie\ ?([0-9]+)\.([0-9]+).*/, + /.*?rv:([0-9]+)\.([0-9]+).*/ + ], + Buscar: uastring => { + return contains(uastring, 'msie') || contains(uastring, 'trident'); + } + }, + { + name: 'Opera', + versionRegexes: [ + normalVersionRegex, + /.*?opera\/([0-9]+)\.([0-9]+).*/ + ], + Buscar: checkContains('opera') + }, + { + name: 'Firefox', + versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], + Buscar: checkContains('firefox') + }, + { + name: 'Safari', + versionRegexes: [ + normalVersionRegex, + /.*?cpu os ([0-9]+)_([0-9]+).*/ + ], + Buscar: uastring => { + return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit'); + } + } + ]; + const oses = [ + { + name: 'Windows', + Buscar: checkContains('win'), + versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'iOS', + Buscar: uastring => { + return contains(uastring, 'iphone') || contains(uastring, 'ipad'); + }, + versionRegexes: [ + /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, + /.*cpu os ([0-9]+)_([0-9]+).*/, + /.*cpu iphone os ([0-9]+)_([0-9]+).*/ + ] + }, + { + name: 'Android', + Buscar: checkContains('android'), + versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'macOS', + Buscar: checkContains('mac os x'), + versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/] + }, + { + name: 'Linux', + Buscar: checkContains('linux'), + versionRegexes: [] + }, + { + name: 'Solaris', + Buscar: checkContains('sunos'), + versionRegexes: [] + }, + { + name: 'FreeBSD', + Buscar: checkContains('freebsd'), + versionRegexes: [] + }, + { + name: 'ChromeOS', + Buscar: checkContains('cros'), + versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/] + } + ]; + const PlatformInfo = { + browsers: constant(browsers), + oses: constant(oses) + }; + + const edge = 'Edge'; + const chromium = 'Chromium'; + const ie = 'IE'; + const opera = 'Opera'; + const firefox = 'Firefox'; + const safari = 'Safari'; + const unknown$1 = () => { + return nu$1({ + current: undefined, + version: Version.unknown() + }); + }; + const nu$1 = info => { + const current = info.current; + const version = info.version; + const isBrowser = name => () => current === name; + return { + current, + version, + isEdge: isBrowser(edge), + isChromium: isBrowser(chromium), + isIE: isBrowser(ie), + isOpera: isBrowser(opera), + isFirefox: isBrowser(firefox), + isSafari: isBrowser(safari) + }; + }; + const Browser = { + unknown: unknown$1, + nu: nu$1, + edge: constant(edge), + chromium: constant(chromium), + ie: constant(ie), + opera: constant(opera), + firefox: constant(firefox), + safari: constant(safari) + }; + + const windows = 'Windows'; + const ios = 'iOS'; + const android = 'Android'; + const linux = 'Linux'; + const macos = 'macOS'; + const solaris = 'Solaris'; + const freebsd = 'FreeBSD'; + const chromeos = 'ChromeOS'; + const unknown = () => { + return nu({ + current: undefined, + version: Version.unknown() + }); + }; + const nu = info => { + const current = info.current; + const version = info.version; + const isOS = name => () => current === name; + return { + current, + version, + isWindows: isOS(windows), + isiOS: isOS(ios), + isAndroid: isOS(android), + isMacOS: isOS(macos), + isLinux: isOS(linux), + isSolaris: isOS(solaris), + isFreeBSD: isOS(freebsd), + isChromeOS: isOS(chromeos) + }; + }; + const OperatingSystem = { + unknown, + nu, + windows: constant(windows), + ios: constant(ios), + android: constant(android), + linux: constant(linux), + macos: constant(macos), + solaris: constant(solaris), + freebsd: constant(freebsd), + chromeos: constant(chromeos) + }; + + const detect$1 = (userAgent, userAgentDataOpt, mediaMatch) => { + const browsers = PlatformInfo.browsers(); + const oses = PlatformInfo.oses(); + const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu); + const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu); + const deviceType = DeviceType(os, browser, userAgent, mediaMatch); + return { + browser, + os, + deviceType + }; + }; + const PlatformDetection = { detect: detect$1 }; + + const mediaMatch = query => window.matchMedia(query).matches; + let platform = cached(() => PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch)); + const detect = () => platform(); + + const r = (left, top) => { + const translate = (x, y) => r(left + x, top + y); + return { + left, + top, + translate + }; + }; + const SugarPosition = r; + + const get$1 = _DOC => { + const doc = _DOC !== undefined ? _DOC.dom : document; + const x = doc.body.scrollLeft || doc.documentElement.scrollLeft; + const y = doc.body.scrollTop || doc.documentElement.scrollTop; + return SugarPosition(x, y); + }; + + const get = _win => { + const win = _win === undefined ? window : _win; + if (detect().browser.isFirefox()) { + return Optional.none(); + } else { + return Optional.from(win.visualViewport); + } + }; + const bounds = (x, y, width, height) => ({ + x, + y, + width, + height, + right: x + width, + bottom: y + height + }); + const getBounds = _win => { + const win = _win === undefined ? window : _win; + const doc = win.document; + const scroll = get$1(SugarElement.fromDom(doc)); + return get(win).fold(() => { + const html = win.document.documentElement; + const width = html.clientWidth; + const height = html.clientHeight; + return bounds(scroll.left, scroll.top, width, height); + }, visualViewport => bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height)); + }; + const bind = (name, callback, _win) => get(_win).map(visualViewport => { + const handler = e => callback(fromRawEvent(e)); + visualViewport.addEventListener(name, handler); + return { unbind: () => visualViewport.removeEventListener(name, handler) }; + }).getOrThunk(() => ({ unbind: noop })); + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global = tinymce.util.Tools.resolve('tinymce.Env'); + + const fireFullscreenStateChanged = (editor, state) => { + editor.dispatch('FullscreenStateChanged', { state }); + editor.dispatch('ResizeEditor'); + }; + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('fullscreen_native', { + processor: 'boolean', + default: false + }); + }; + const getFullscreenNative = option('fullscreen_native'); + + const getFullscreenRoot = editor => { + const elem = SugarElement.fromDom(editor.getElement()); + return getShadowRoot(elem).map(getShadowHost).getOrThunk(() => getBody(owner(elem))); + }; + const getFullscreenElement = root => { + if (root.fullscreenElement !== undefined) { + return root.fullscreenElement; + } else if (root.msFullscreenElement !== undefined) { + return root.msFullscreenElement; + } else if (root.webkitFullscreenElement !== undefined) { + return root.webkitFullscreenElement; + } else { + return null; + } + }; + const getFullscreenchangeEventName = () => { + if (document.fullscreenElement !== undefined) { + return 'fullscreenchange'; + } else if (document.msFullscreenElement !== undefined) { + return 'MSFullscreenChange'; + } else if (document.webkitFullscreenElement !== undefined) { + return 'webkitfullscreenchange'; + } else { + return 'fullscreenchange'; + } + }; + const requestFullscreen = sugarElem => { + const elem = sugarElem.dom; + if (elem.requestFullscreen) { + elem.requestFullscreen(); + } else if (elem.msRequestFullscreen) { + elem.msRequestFullscreen(); + } else if (elem.webkitRequestFullScreen) { + elem.webkitRequestFullScreen(); + } + }; + const exitFullscreen = sugarDoc => { + const doc = sugarDoc.dom; + if (doc.exitFullscreen) { + doc.exitFullscreen(); + } else if (doc.msExitFullscreen) { + doc.msExitFullscreen(); + } else if (doc.webkitCancelFullScreen) { + doc.webkitCancelFullScreen(); + } + }; + const isFullscreenElement = elem => elem.dom === getFullscreenElement(owner(elem).dom); + + const ancestors$1 = (scope, predicate, isRoot) => filter$1(parents(scope, isRoot), predicate); + const siblings$1 = (scope, predicate) => filter$1(siblings$2(scope), predicate); + + const all = selector => all$1(selector); + const ancestors = (scope, selector, isRoot) => ancestors$1(scope, e => is(e, selector), isRoot); + const siblings = (scope, selector) => siblings$1(scope, e => is(e, selector)); + + const attr = 'data-ephox-mobile-fullscreen-style'; + const siblingStyles = 'display:none!important;'; + const ancestorPosition = 'position:absolute!important;'; + const ancestorStyles = 'top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;'; + const bgFallback = 'background-color:rgb(255,255,255)!important;'; + const isAndroid = global.os.isAndroid(); + const matchColor = editorBody => { + const color = get$2(editorBody, 'background-color'); + return color !== undefined && color !== '' ? 'background-color:' + color + '!important' : bgFallback; + }; + const clobberStyles = (dom, container, editorBody) => { + const gatherSiblings = element => { + return siblings(element, '*:not(.tox-silver-sink)'); + }; + const clobber = clobberStyle => element => { + const styles = get$3(element, 'style'); + const backup = styles === undefined ? 'no-styles' : styles.trim(); + if (backup === clobberStyle) { + return; + } else { + set(element, attr, backup); + setAll(element, dom.parseStyle(clobberStyle)); + } + }; + const ancestors$1 = ancestors(container, '*'); + const siblings$1 = bind$3(ancestors$1, gatherSiblings); + const bgColor = matchColor(editorBody); + each$1(siblings$1, clobber(siblingStyles)); + each$1(ancestors$1, clobber(ancestorPosition + ancestorStyles + bgColor)); + const containerStyles = isAndroid === true ? '' : ancestorPosition; + clobber(containerStyles + ancestorStyles + bgColor)(container); + }; + const restoreStyles = dom => { + const clobberedEls = all('[' + attr + ']'); + each$1(clobberedEls, element => { + const restore = get$3(element, attr); + if (restore && restore !== 'no-styles') { + setAll(element, dom.parseStyle(restore)); + } else { + remove(element, 'style'); + } + remove(element, attr); + }); + }; + + const DOM = global$1.DOM; + const getScrollPos = () => getBounds(window); + const setScrollPos = pos => window.scrollTo(pos.x, pos.y); + const viewportUpdate = get().fold(() => ({ + bind: noop, + unbind: noop + }), visualViewport => { + const editorContainer = value(); + const resizeBinder = unbindable(); + const scrollBinder = unbindable(); + const refreshScroll = () => { + document.body.scrollTop = 0; + document.documentElement.scrollTop = 0; + }; + const refreshVisualViewport = () => { + window.requestAnimationFrame(() => { + editorContainer.on(container => setAll(container, { + top: visualViewport.offsetTop + 'px', + left: visualViewport.offsetLeft + 'px', + height: visualViewport.height + 'px', + width: visualViewport.width + 'px' + })); + }); + }; + const update = first(() => { + refreshScroll(); + refreshVisualViewport(); + }, 50); + const bind$1 = element => { + editorContainer.set(element); + update.throttle(); + resizeBinder.set(bind('resize', update.throttle)); + scrollBinder.set(bind('scroll', update.throttle)); + }; + const unbind = () => { + editorContainer.on(() => { + resizeBinder.clear(); + scrollBinder.clear(); + }); + editorContainer.clear(); + }; + return { + bind: bind$1, + unbind + }; + }); + const toggleFullscreen = (editor, fullscreenState) => { + const body = document.body; + const documentElement = document.documentElement; + const editorContainer = editor.getContainer(); + const editorContainerS = SugarElement.fromDom(editorContainer); + const fullscreenRoot = getFullscreenRoot(editor); + const fullscreenInfo = fullscreenState.get(); + const editorBody = SugarElement.fromDom(editor.getBody()); + const isTouch = global.deviceType.isTouch(); + const editorContainerStyle = editorContainer.style; + const iframe = editor.iframeElement; + const iframeStyle = iframe === null || iframe === void 0 ? void 0 : iframe.style; + const handleClasses = handler => { + handler(body, 'tox-fullscreen'); + handler(documentElement, 'tox-fullscreen'); + handler(editorContainer, 'tox-fullscreen'); + getShadowRoot(editorContainerS).map(root => getShadowHost(root).dom).each(host => { + handler(host, 'tox-fullscreen'); + handler(host, 'tox-shadowhost'); + }); + }; + const cleanup = () => { + if (isTouch) { + restoreStyles(editor.dom); + } + handleClasses(DOM.removeClass); + viewportUpdate.unbind(); + Optional.from(fullscreenState.get()).each(info => info.fullscreenChangeHandler.unbind()); + }; + if (!fullscreenInfo) { + const fullscreenChangeHandler = bind$1(owner(fullscreenRoot), getFullscreenchangeEventName(), _evt => { + if (getFullscreenNative(editor)) { + if (!isFullscreenElement(fullscreenRoot) && fullscreenState.get() !== null) { + toggleFullscreen(editor, fullscreenState); + } + } + }); + const newFullScreenInfo = { + scrollPos: getScrollPos(), + containerWidth: editorContainerStyle.width, + containerHeight: editorContainerStyle.height, + containerTop: editorContainerStyle.top, + containerLeft: editorContainerStyle.left, + iframeWidth: iframeStyle.width, + iframeHeight: iframeStyle.height, + fullscreenChangeHandler + }; + if (isTouch) { + clobberStyles(editor.dom, editorContainerS, editorBody); + } + iframeStyle.width = iframeStyle.height = '100%'; + editorContainerStyle.width = editorContainerStyle.height = ''; + handleClasses(DOM.addClass); + viewportUpdate.bind(editorContainerS); + editor.on('remove', cleanup); + fullscreenState.set(newFullScreenInfo); + if (getFullscreenNative(editor)) { + requestFullscreen(fullscreenRoot); + } + fireFullscreenStateChanged(editor, true); + } else { + fullscreenInfo.fullscreenChangeHandler.unbind(); + if (getFullscreenNative(editor) && isFullscreenElement(fullscreenRoot)) { + exitFullscreen(owner(fullscreenRoot)); + } + iframeStyle.width = fullscreenInfo.iframeWidth; + iframeStyle.height = fullscreenInfo.iframeHeight; + editorContainerStyle.width = fullscreenInfo.containerWidth; + editorContainerStyle.height = fullscreenInfo.containerHeight; + editorContainerStyle.top = fullscreenInfo.containerTop; + editorContainerStyle.left = fullscreenInfo.containerLeft; + cleanup(); + setScrollPos(fullscreenInfo.scrollPos); + fullscreenState.set(null); + fireFullscreenStateChanged(editor, false); + editor.off('remove', cleanup); + } + }; + + const Registro$1 = (editor, fullscreenState) => { + editor.addCommand('mceFullScreen', () => { + toggleFullscreen(editor, fullscreenState); + }); + }; + + const makeSetupHandler = (editor, fullscreenState) => api => { + api.setActive(fullscreenState.get() !== null); + const editorEventCallback = e => api.setActive(e.state); + editor.on('FullscreenStateChanged', editorEventCallback); + return () => editor.off('FullscreenStateChanged', editorEventCallback); + }; + const Registro = (editor, fullscreenState) => { + const onAction = () => editor.execCommand('mceFullScreen'); + editor.ui.registry.addToggleMenuItem('fullscreen', { + text: 'Fullscreen', + icon: 'fullscreen', + shortcut: 'Meta+Shift+F', + onAction, + onSetup: makeSetupHandler(editor, fullscreenState) + }); + editor.ui.registry.addToggleButton('fullscreen', { + tooltip: 'Fullscreen', + icon: 'fullscreen', + onAction, + onSetup: makeSetupHandler(editor, fullscreenState) + }); + }; + + var Plugin = () => { + global$2.add('fullscreen', editor => { + const fullscreenState = Cell(null); + if (editor.inline) { + return get$5(fullscreenState); + } + Registro$2(editor); + Registro$1(editor, fullscreenState); + Registro(editor, fullscreenState); + editor.addShortcut('Meta+Shift+F', '', 'mceFullScreen'); + return get$5(fullscreenState); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/fullscreen/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/fullscreen/plugin.min.js new file mode 100644 index 0000000..8645529 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/fullscreen/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";const e=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}};var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const n=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,(o=String).prototype.isPrototypeOf(n)||(null===(s=r.constructor)||void 0===s?void 0:s.name)===o.name)?"string":t;var n,r,o,s})(t)===e,r=e=>t=>typeof t===e,o=e=>t=>e===t,s=n("string"),i=n("array"),l=o(null),a=r("boolean"),c=o(void 0),u=e=>!(e=>null==e)(e),d=r("function"),m=r("number"),h=()=>{},g=e=>()=>e;function p(e,...t){return(...n)=>{const r=t.concat(n);return e.apply(null,r)}}const f=g(!1),v=g(!0);class w{constructor(e,t){this.tag=e,this.value=t}static some(e){return new w(!0,e)}static none(){return w.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?w.some(e(this.value)):w.none()}bind(e){return this.tag?e(this.value):w.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:w.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return u(e)?w.some(e):w.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}w.singletonNone=new w(!1);const y=t=>{const n=e(w.none()),r=()=>n.get().each(t);return{clear:()=>{r(),n.set(w.none())},isSet:()=>n.get().isSome(),get:()=>n.get(),set:e=>{r(),n.set(w.some(e))}}},b=()=>y((e=>e.unbind())),S=Array.prototype.push,x=(e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o{for(let n=0,r=e.length;n{const n=[];for(let r=0,o=e.length;r((e,t,n)=>{for(let r=0,o=e.length;r{const o=e.indexOf(t,n);return-1!==o&&(!!c(r)||o+t.length<=r)},C=e=>void 0!==e.style&&d(e.style.getPropertyValue),A=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},R=A;"undefined"!=typeof window?window:Function("return this;")();const L=e=>t=>(e=>e.dom.nodeType)(t)===e,M=L(1),N=L(3),P=L(9),D=L(11),W=(e,t)=>{const n=e.dom;if(1!==n.nodeType)return!1;{const e=n;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},q=e=>R(e.dom.ownerDocument),H=e=>x(e.dom.childNodes,R),I=d(Element.prototype.attachShadow)&&d(Node.prototype.getRootNode),B=g(I),V=I?e=>R(e.dom.getRootNode()):e=>P(e)?e:q(e),_=e=>{const t=V(e);return D(n=t)&&u(n.dom.host)?w.some(t):w.none();var n},j=e=>R(e.dom.host),z=e=>{const t=N(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const n=t.ownerDocument;return _(R(t)).fold((()=>n.body.contains(t)),(r=z,o=j,e=>r(o(e))));var r,o},$=(e,t)=>{const n=e.dom.getAttribute(t);return null===n?void 0:n},U=(e,t)=>{e.dom.removeAttribute(t)},K=(e,t)=>{const n=e.dom;((e,t)=>{const n=T(e);for(let r=0,o=n.length;r{((e,t,n)=>{if(!s(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);C(e)&&e.style.setProperty(t,n)})(n,t,e)}))},X=e=>{const t=R((e=>{if(B()&&u(e.target)){const t=R(e.target);if(M(t)&&u(t.dom.shadowRoot)&&e.composed&&e.composedPath){const t=e.composedPath();if(t)return((e,t)=>0e.stopPropagation(),r=()=>e.preventDefault(),o=(s=r,i=n,(...e)=>s(i.apply(null,e)));var s,i;return((e,t,n,r,o,s,i)=>({target:e,x:t,y:n,stop:r,prevent:o,kill:s,raw:i}))(t,e.clientX,e.clientY,n,r,o,e)},Y=(e,t,n,r)=>{e.dom.removeEventListener(t,n,r)},G=v,J=(e,t,n)=>((e,t,n,r)=>((e,t,n,r,o)=>{const s=((e,t)=>n=>{e(n)&&t(X(n))})(n,r);return e.dom.addEventListener(t,s,o),{unbind:p(Y,e,t,s,o)}})(e,t,n,r,!1))(e,t,G,n),Q=()=>Z(0,0),Z=(e,t)=>({major:e,minor:t}),ee={nu:Z,detect:(e,t)=>{const n=String(t).toLowerCase();return 0===e.length?Q():((e,t)=>{const n=((e,t)=>{for(let n=0;nNumber(t.replace(n,"$"+e));return Z(r(1),r(2))})(e,n)},unknown:Q},te=(e,t)=>{const n=String(t).toLowerCase();return O(e,(e=>e.Buscar(n)))},ne=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,re=e=>t=>k(t,e),oe=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],Buscar:e=>k(e,"edge/")&&k(e,"chrome")&&k(e,"safari")&&k(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,ne],Buscar:e=>k(e,"chrome")&&!k(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],Buscar:e=>k(e,"msie")||k(e,"trident")},{name:"Opera",versionRegexes:[ne,/.*?opera\/([0-9]+)\.([0-9]+).*/],Buscar:re("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],Buscar:re("firefox")},{name:"Safari",versionRegexes:[ne,/.*?cpu os ([0-9]+)_([0-9]+).*/],Buscar:e=>(k(e,"safari")||k(e,"mobile/"))&&k(e,"applewebkit")}],se=[{name:"Windows",Buscar:re("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",Buscar:e=>k(e,"iphone")||k(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",Buscar:re("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",Buscar:re("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",Buscar:re("linux"),versionRegexes:[]},{name:"Solaris",Buscar:re("sunos"),versionRegexes:[]},{name:"FreeBSD",Buscar:re("freebsd"),versionRegexes:[]},{name:"ChromeOS",Buscar:re("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],ie={browsers:g(oe),oses:g(se)},le="Edge",ae="Chromium",ce="Opera",ue="Firefox",de="Safari",me=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isEdge:r(le),isChromium:r(ae),isIE:r("IE"),isOpera:r(ce),isFirefox:r(ue),isSafari:r(de)}},he=()=>me({current:void 0,version:ee.unknown()}),ge=me,pe=(g(le),g(ae),g("IE"),g(ce),g(ue),g(de),"Windows"),fe="Android",ve="Linux",we="macOS",ye="Solaris",be="FreeBSD",Se="ChromeOS",xe=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isWindows:r(pe),isiOS:r("iOS"),isAndroid:r(fe),isMacOS:r(we),isLinux:r(ve),isSolaris:r(ye),isFreeBSD:r(be),isChromeOS:r(Se)}},Ee=()=>xe({current:void 0,version:ee.unknown()}),Fe=xe,Oe=(g(pe),g("iOS"),g(fe),g(ve),g(we),g(ye),g(be),g(Se),(e,t,n)=>{const r=ie.browsers(),o=ie.oses(),s=t.bind((e=>((e,t)=>((e,t)=>{for(let n=0;n{const n=t.brand.toLowerCase();return O(e,(e=>{var t;return n===(null===(t=e.brand)||void 0===t?void 0:t.toLowerCase())})).map((e=>({current:e.name,version:ee.nu(parseInt(t.version,10),0)})))})))(r,e))).orThunk((()=>((e,t)=>te(e,t).map((e=>{const n=ee.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(r,e))).fold(he,ge),i=((e,t)=>te(e,t).map((e=>{const n=ee.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(o,e).fold(Ee,Fe),l=((e,t,n,r)=>{const o=e.isiOS()&&!0===/ipad/i.test(n),s=e.isiOS()&&!o,i=e.isiOS()||e.isAndroid(),l=i||r("(pointer:coarse)"),a=o||!s&&i&&r("(min-device-width:768px)"),c=s||i&&!a,u=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(n),d=!c&&!a&&!u;return{isiPad:g(o),isiPhone:g(s),isTablet:g(a),isPhone:g(c),isTouch:g(l),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:g(u),isDesktop:g(d)}})(i,s,e,n);return{browser:s,os:i,deviceType:l}}),Te=e=>window.matchMedia(e).matches;let ke=(e=>{let t,n=!1;return(...r)=>(n||(n=!0,t=e.apply(null,r)),t)})((()=>Oe(navigator.userAgent,w.from(navigator.userAgentData),Te)));const Ce=(e,t)=>({left:e,top:t,translate:(n,r)=>Ce(e+n,t+r)}),Ae=Ce,Re=e=>{const t=void 0===e?window:e;return ke().browser.isFirefox()?w.none():w.from(t.visualViewport)},Le=(e,t,n,r)=>({x:e,y:t,width:n,height:r,right:e+n,bottom:t+r}),Me=e=>{const t=void 0===e?window:e,n=t.document,r=(e=>{const t=void 0!==e?e.dom:document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop;return Ae(n,r)})(R(n));return Re(t).fold((()=>{const e=t.document.documentElement,n=e.clientWidth,o=e.clientHeight;return Le(r.left,r.top,n,o)}),(e=>Le(Math.max(e.pageLeft,r.left),Math.max(e.pageTop,r.top),e.width,e.height)))},Ne=(e,t,n)=>Re(n).map((n=>{const r=e=>t(X(e));return n.addEventListener(e,r),{unbind:()=>n.removeEventListener(e,r)}})).getOrThunk((()=>({unbind:h})));var Pe=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),De=tinymce.util.Tools.resolve("tinymce.Env");const We=(e,t)=>{e.dispatch("FullscreenStateChanged",{state:t}),e.dispatch("ResizeEditor")},qe=("fullscreen_native",e=>e.options.get("fullscreen_native"));const He=e=>{return e.dom===(void 0!==(t=q(e).dom).fullscreenElement?t.fullscreenElement:void 0!==t.msFullscreenElement?t.msFullscreenElement:void 0!==t.webkitFullscreenElement?t.webkitFullscreenElement:null);var t},Ie=(e,t,n)=>((e,t,n)=>F(((e,t)=>{const n=d(t)?t:f;let r=e.dom;const o=[];for(;null!==r.parentNode&&void 0!==r.parentNode;){const e=r.parentNode,t=R(e);if(o.push(t),!0===n(t))break;r=e}return o})(e,n),t))(e,(e=>W(e,t)),n),Be=(e,t)=>((e,n)=>{return F((e=>w.from(e.dom.parentNode).map(R))(r=e).map(H).map((e=>F(e,(e=>{return t=e,!(r.dom===t.dom);var t})))).getOr([]),(e=>W(e,t)));var r})(e),Ve="data-ephox-mobile-fullscreen-style",_e="position:absolute!important;",je="top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;",ze=De.os.isAndroid(),$e=e=>{const t=((e,t)=>{const n=e.dom,r=window.getComputedStyle(n).getPropertyValue(t);return""!==r||z(e)?r:((e,t)=>C(e)?e.style.getPropertyValue(t):"")(n,t)})(e,"background-color");return void 0!==t&&""!==t?"background-color:"+t+"!important":"background-color:rgb(255,255,255)!important;"},Ue=Pe.DOM,Ke=Re().fold((()=>({bind:h,unbind:h})),(e=>{const t=(()=>{const e=y(h);return{...e,on:t=>e.get().each(t)}})(),n=b(),r=b(),o=((e,t)=>{let n=null;return{cancel:()=>{l(n)||(clearTimeout(n),n=null)},throttle:(...t)=>{l(n)&&(n=setTimeout((()=>{n=null,e.apply(null,t)}),50))}}})((()=>{document.body.scrollTop=0,document.documentElement.scrollTop=0,window.requestAnimationFrame((()=>{t.on((t=>K(t,{top:e.offsetTop+"px",left:e.offsetLeft+"px",height:e.height+"px",width:e.width+"px"})))}))}));return{bind:e=>{t.set(e),o.throttle(),n.set(Ne("resize",o.throttle)),r.set(Ne("scroll",o.throttle))},unbind:()=>{t.on((()=>{n.clear(),r.clear()})),t.clear()}}})),Xe=(e,t)=>{const n=document.body,r=document.documentElement,o=e.getContainer(),l=R(o),c=(e=>{const t=R(e.getElement());return _(t).map(j).getOrThunk((()=>(e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return R(t)})(q(t))))})(e),u=t.get(),d=R(e.getBody()),h=De.deviceType.isTouch(),g=o.style,p=e.iframeElement,f=null==p?void 0:p.style,v=e=>{e(n,"tox-fullscreen"),e(r,"tox-fullscreen"),e(o,"tox-fullscreen"),_(l).map((e=>j(e).dom)).each((t=>{e(t,"tox-fullscreen"),e(t,"tox-shadowhost")}))},y=()=>{h&&(e=>{const t=((e,t)=>{const n=document;return 1!==(r=n).nodeType&&9!==r.nodeType&&11!==r.nodeType||0===r.childElementCount?[]:x(n.querySelectorAll(e),R);var r})("["+Ve+"]");E(t,(t=>{const n=$(t,Ve);n&&"no-styles"!==n?K(t,e.parseStyle(n)):U(t,"style"),U(t,Ve)}))})(e.dom),v(Ue.removeClass),Ke.unbind(),w.from(t.get()).each((e=>e.fullscreenChangeHandler.unbind()))};if(u)u.fullscreenChangeHandler.unbind(),qe(e)&&He(c)&&(e=>{const t=e.dom;t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.webkitCancelFullScreen&&t.webkitCancelFullScreen()})(q(c)),f.width=u.iframeWidth,f.height=u.iframeHeight,g.width=u.containerWidth,g.height=u.containerHeight,g.top=u.containerTop,g.left=u.containerLeft,y(),b=u.scrollPos,window.scrollTo(b.x,b.y),t.set(null),We(e,!1),e.off("remove",y);else{const n=J(q(c),void 0!==document.fullscreenElement?"fullscreenchange":void 0!==document.msFullscreenElement?"MSFullscreenChange":void 0!==document.webkitFullscreenElement?"webkitfullscreenchange":"fullscreenchange",(n=>{qe(e)&&(He(c)||null===t.get()||Xe(e,t))})),r={scrollPos:Me(window),containerWidth:g.width,containerHeight:g.height,containerTop:g.top,containerLeft:g.left,iframeWidth:f.width,iframeHeight:f.height,fullscreenChangeHandler:n};h&&((e,t,n)=>{const r=t=>n=>{const r=$(n,"style"),o=void 0===r?"no-styles":r.trim();o!==t&&(((e,t,n)=>{((e,t,n)=>{if(!(s(n)||a(n)||m(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")})(e.dom,t,n)})(n,Ve,o),K(n,e.parseStyle(t)))},o=Ie(t,"*"),l=(e=>{const t=[];for(let n=0,r=e.length;nBe(e,"*:not(.tox-silver-sink)")))),c=$e(n);E(l,r("display:none!important;")),E(o,r(_e+je+c)),r((!0===ze?"":_e)+je+c)(t)})(e.dom,l,d),f.width=f.height="100%",g.width=g.height="",v(Ue.addClass),Ke.bind(l),e.on("remove",y),t.set(r),qe(e)&&(e=>{const t=e.dom;t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.webkitRequestFullScreen&&t.webkitRequestFullScreen()})(c),We(e,!0)}var b},Ye=(e,t)=>n=>{n.setActive(null!==t.get());const r=e=>n.setActive(e.state);return e.on("FullscreenStateChanged",r),()=>e.off("FullscreenStateChanged",r)};t.add("fullscreen",(t=>{const n=e(null);return t.inline||((e=>{(0,e.options.Registro)("fullscreen_native",{processor:"boolean",default:!1})})(t),((e,t)=>{e.addCommand("mceFullScreen",(()=>{Xe(e,t)}))})(t,n),((e,t)=>{const n=()=>e.execCommand("mceFullScreen");e.ui.registry.addToggleMenuItem("fullscreen",{text:"Fullscreen",icon:"fullscreen",shortcut:"Meta+Shift+F",onAction:n,onSetup:Ye(e,t)}),e.ui.registry.addToggleButton("fullscreen",{tooltip:"Fullscreen",icon:"fullscreen",onAction:n,onSetup:Ye(e,t)})})(t,n),t.addShortcut("Meta+Shift+F","","mceFullScreen")),(e=>({isFullscreen:()=>null!==e.get()}))(n)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/help/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/index.js new file mode 100644 index 0000000..7f4bfe0 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/index.js @@ -0,0 +1,7 @@ +// Exports the "help" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/help') +// ES2015: +// import 'tinymce/plugins/help' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.js new file mode 100644 index 0000000..d462c59 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.js @@ -0,0 +1,931 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + let unique = 0; + const generate = prefix => { + const date = new Date(); + const time = date.getTime(); + const random = Math.floor(Math.random() * 1000000000); + unique++; + return prefix + '_' + random + unique + String(time); + }; + + const get$1 = customTabs => { + const addTab = spec => { + var _a; + const name = (_a = spec.name) !== null && _a !== void 0 ? _a : generate('tab-name'); + const currentCustomTabs = customTabs.get(); + currentCustomTabs[name] = spec; + customTabs.set(currentCustomTabs); + }; + return { addTab }; + }; + + const Registro$2 = (editor, dialogOpener) => { + editor.addCommand('mceHelp', dialogOpener); + }; + + const option = name => editor => editor.options.get(name); + const Registro$1 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('help_tabs', { processor: 'array' }); + }; + const getHelpTabs = option('help_tabs'); + const getForcedPlugins = option('forced_plugins'); + + const Registro = (editor, dialogOpener) => { + editor.ui.registry.addButton('help', { + icon: 'help', + tooltip: 'Help', + onAction: dialogOpener + }); + editor.ui.registry.addMenuItem('help', { + text: 'Help', + icon: 'help', + shortcut: 'Alt+0', + onAction: dialogOpener + }); + }; + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq = t => a => t === a; + const isString = isType('string'); + const isUndefined = eq(undefined); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + + const constant = value => { + return () => { + return value; + }; + }; + const never = constant(false); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativeSlice = Array.prototype.slice; + const nativeIndexOf = Array.prototype.indexOf; + const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t); + const contains = (xs, x) => rawIndexOf(xs, x) > -1; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const filter = (xs, pred) => { + const r = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + const findUntil = (xs, pred, until) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(x); + } else if (until(x, i)) { + break; + } + } + return Optional.none(); + }; + const find = (xs, pred) => { + return findUntil(xs, pred, never); + }; + const sort = (xs, comparator) => { + const copy = nativeSlice.call(xs, 0); + copy.sort(comparator); + return copy; + }; + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const get = (obj, key) => { + return has(obj, key) ? Optional.from(obj[key]) : Optional.none(); + }; + const has = (obj, key) => hasOwnProperty.call(obj, key); + + const cat = arr => { + const r = []; + const push = x => { + r.push(x); + }; + for (let i = 0; i < arr.length; i++) { + arr[i].each(push); + } + return r; + }; + + const description = `

        Editor UI keyboard navigation

        + +

        Activating keyboard navigation

        + +

        The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

        +
          +
        • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
        • +
        • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
        • +
        • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
        • +
        + +

        Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

        + +

        Moving between UI sections

        + +

        When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

        +
          +
        • the menubar
        • +
        • each group of the toolbar
        • +
        • the sidebar
        • +
        • the element path in the footer
        • +
        • the wordcount toggle button in the footer
        • +
        • the branding link in the footer
        • +
        • the editor resize handle in the footer
        • +
        + +

        Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

        + +

        Moving within UI sections

        + +

        Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

        +
          +
        • moving between menus in the menubar
        • +
        • moving between buttons in a toolbar group
        • +
        • moving between items in the element path
        • +
        + +

        In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

        + +

        Executing buttons

        + +

        To execute a button, navigate the selection to the desired button and hit space or enter.

        + +

        Opening, navigating and closing menus

        + +

        When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

        + +

        To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

        + +

        Context toolbars and menus

        + +

        To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

        + +

        Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

        + +

        Dialog navigation

        + +

        There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

        + +

        When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Usuarios can navigate between interactive Componentes by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

        + +

        When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s Componentes, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

        `; + const tab$3 = () => { + const body = { + type: 'htmlpanel', + presets: 'document', + html: description + }; + return { + name: 'keyboardnav', + title: 'Keyboard Navigation', + items: [body] + }; + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.Env'); + + const convertText = source => { + const isMac = global$2.os.isMacOS() || global$2.os.isiOS(); + const mac = { + alt: '⌥', + ctrl: '⌃', + shift: '⇧', + meta: '⌘', + access: '⌃⌥' + }; + const other = { + meta: 'Ctrl ', + access: 'Shift + Alt ' + }; + const replace = isMac ? mac : other; + const shortcut = source.split('+'); + const updated = map(shortcut, segment => { + const Buscar = segment.toLowerCase().trim(); + return has(replace, Buscar) ? replace[Buscar] : segment; + }); + return isMac ? updated.join('').replace(/\s/, '') : updated.join('+'); + }; + + const shortcuts = [ + { + shortcuts: ['Meta + B'], + action: 'Bold' + }, + { + shortcuts: ['Meta + I'], + action: 'Italic' + }, + { + shortcuts: ['Meta + U'], + action: 'Underline' + }, + { + shortcuts: ['Meta + A'], + action: 'Select all' + }, + { + shortcuts: [ + 'Meta + Y', + 'Meta + Shift + Z' + ], + action: 'Redo' + }, + { + shortcuts: ['Meta + Z'], + action: 'Undo' + }, + { + shortcuts: ['Access + 1'], + action: 'Heading 1' + }, + { + shortcuts: ['Access + 2'], + action: 'Heading 2' + }, + { + shortcuts: ['Access + 3'], + action: 'Heading 3' + }, + { + shortcuts: ['Access + 4'], + action: 'Heading 4' + }, + { + shortcuts: ['Access + 5'], + action: 'Heading 5' + }, + { + shortcuts: ['Access + 6'], + action: 'Heading 6' + }, + { + shortcuts: ['Access + 7'], + action: 'Paragraph' + }, + { + shortcuts: ['Access + 8'], + action: 'Div' + }, + { + shortcuts: ['Access + 9'], + action: 'Address' + }, + { + shortcuts: ['Alt + 0'], + action: 'Open help dialog' + }, + { + shortcuts: ['Alt + F9'], + action: 'Focus to menubar' + }, + { + shortcuts: ['Alt + F10'], + action: 'Focus to toolbar' + }, + { + shortcuts: ['Alt + F11'], + action: 'Focus to element path' + }, + { + shortcuts: ['Ctrl + F9'], + action: 'Focus to contextual toolbar' + }, + { + shortcuts: ['Shift + Enter'], + action: 'Open popup menu for split buttons' + }, + { + shortcuts: ['Meta + K'], + action: 'Insert link (if link plugin activated)' + }, + { + shortcuts: ['Meta + S'], + action: 'Save (if save plugin activated)' + }, + { + shortcuts: ['Meta + F'], + action: 'Find (if Buscarreplace plugin activated)' + }, + { + shortcuts: ['Meta + Shift + F'], + action: 'Switch to or from fullscreen mode' + } + ]; + + const tab$2 = () => { + const shortcutList = map(shortcuts, shortcut => { + const shortcutText = map(shortcut.shortcuts, convertText).join(' or '); + return [ + shortcut.action, + shortcutText + ]; + }); + const tablePanel = { + type: 'table', + header: [ + 'Action', + 'Shortcut' + ], + cells: shortcutList + }; + return { + name: 'shortcuts', + title: 'Handy Shortcuts', + items: [tablePanel] + }; + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.I18n'); + + const urls = map([ + { + key: 'advlist', + name: 'Advanced List' + }, + { + key: 'anchor', + name: 'Anchor' + }, + { + key: 'autolink', + name: 'Autolink' + }, + { + key: 'autoresize', + name: 'Autoresize' + }, + { + key: 'autosave', + name: 'Autosave' + }, + { + key: 'charmap', + name: 'Character Map' + }, + { + key: 'code', + name: 'Code' + }, + { + key: 'codesample', + name: 'Code Sample' + }, + { + key: 'colorpicker', + name: 'Color Picker' + }, + { + key: 'directionality', + name: 'Directionality' + }, + { + key: 'emoticons', + name: 'Emoticons' + }, + { + key: 'fullscreen', + name: 'Full Screen' + }, + { + key: 'help', + name: 'Help' + }, + { + key: 'image', + name: 'Image' + }, + { + key: 'importcss', + name: 'Import CSS' + }, + { + key: 'insertdatetime', + name: 'Insert Date/Time' + }, + { + key: 'link', + name: 'Link' + }, + { + key: 'lists', + name: 'Lists' + }, + { + key: 'media', + name: 'Media' + }, + { + key: 'nonbreaking', + name: 'Nonbreaking' + }, + { + key: 'pagebreak', + name: 'Page Break' + }, + { + key: 'preview', + name: 'Preview' + }, + { + key: 'quickbars', + name: 'Quick Toolbars' + }, + { + key: 'save', + name: 'Save' + }, + { + key: 'Buscarreplace', + name: 'Buscar and Replace' + }, + { + key: 'table', + name: 'Table' + }, + { + key: 'template', + name: 'Template' + }, + { + key: 'textcolor', + name: 'Text Color' + }, + { + key: 'visualblocks', + name: 'Visual Blocks' + }, + { + key: 'visualchars', + name: 'Visual Characters' + }, + { + key: 'wordcount', + name: 'Word Count' + }, + { + key: 'a11ychecker', + name: 'Accessibility Checker', + type: 'premium' + }, + { + key: 'advcode', + name: 'Advanced Code Editor', + type: 'premium' + }, + { + key: 'advtable', + name: 'Advanced Tablas', + type: 'premium' + }, + { + key: 'casechange', + name: 'Case Change', + type: 'premium' + }, + { + key: 'checklist', + name: 'Checklist', + type: 'premium' + }, + { + key: 'editimage', + name: 'Enhanced Image Editing', + type: 'premium' + }, + { + key: 'footnotes', + name: 'Footnotes', + type: 'premium' + }, + { + key: 'typography', + name: 'Advanced Typography', + type: 'premium' + }, + { + key: 'mediaembed', + name: 'Enhanced Media Embed', + type: 'premium', + slug: 'introduction-to-mediaembed' + }, + { + key: 'export', + name: 'Export', + type: 'premium' + }, + { + key: 'formatpainter', + name: 'Format Painter', + type: 'premium' + }, + { + key: 'inlinecss', + name: 'Inline CSS', + type: 'premium' + }, + { + key: 'linkchecker', + name: 'Link Checker', + type: 'premium' + }, + { + key: 'mentions', + name: 'Mentions', + type: 'premium' + }, + { + key: 'mergetags', + name: 'Merge Tags', + type: 'premium' + }, + { + key: 'pageembed', + name: 'Page Embed', + type: 'premium' + }, + { + key: 'permanentpen', + name: 'Permanent Pen', + type: 'premium' + }, + { + key: 'powerpaste', + name: 'PowerPaste', + type: 'premium', + slug: 'introduction-to-powerpaste' + }, + { + key: 'rtc', + name: 'Real-Time Collaboration', + type: 'premium', + slug: 'rtc-introduction' + }, + { + key: 'tinymcespellchecker', + name: 'Spell Checker Pro', + type: 'premium', + slug: 'introduction-to-tiny-spellchecker' + }, + { + key: 'autocorrect', + name: 'Spelling Autocorrect', + type: 'premium' + }, + { + key: 'tableofcontents', + name: 'Table of Contents', + type: 'premium' + }, + { + key: 'tinycomments', + name: 'Tiny Comments', + type: 'premium', + slug: 'introduction-to-tiny-comments' + }, + { + key: 'tinydrive', + name: 'Tiny Drive', + type: 'premium', + slug: 'tinydrive-introduction' + } + ], item => ({ + ...item, + type: item.type || 'opensource', + slug: item.slug || item.key + })); + + const tab$1 = editor => { + const availablePlugins = () => { + const premiumPlugins = filter(urls, ({type}) => { + return type === 'premium'; + }); + const sortedPremiumPlugins = sort(map(premiumPlugins, p => p.name), (s1, s2) => s1.localeCompare(s2)); + const premiumPluginList = map(sortedPremiumPlugins, pluginName => `
      • ${ pluginName }
      • `).join(''); + return '
        ' + '

        ' + global$1.translate('Premium plugins:') + '

        ' + '' + '
        '; + }; + const makeLink = p => `${ p.name }`; + const identifyUnknownPlugin = (editor, key) => { + const getMetadata = editor.plugins[key].getMetadata; + if (isFunction(getMetadata)) { + const metadata = getMetadata(); + return { + name: metadata.name, + html: makeLink(metadata) + }; + } else { + return { + name: key, + html: key + }; + } + }; + const getPluginData = (editor, key) => find(urls, x => { + return x.key === key; + }).fold(() => { + return identifyUnknownPlugin(editor, key); + }, x => { + const name = x.type === 'premium' ? `${ x.name }*` : x.name; + const html = makeLink({ + name, + url: `https://www.tiny.cloud/docs/tinymce/6/${ x.slug }/` + }); + return { + name, + html + }; + }); + const getPluginKeys = editor => { + const keys$1 = keys(editor.plugins); + const forcedPlugins = getForcedPlugins(editor); + return isUndefined(forcedPlugins) ? keys$1 : filter(keys$1, k => !contains(forcedPlugins, k)); + }; + const pluginLister = editor => { + const pluginKeys = getPluginKeys(editor); + const sortedPluginData = sort(map(pluginKeys, k => getPluginData(editor, k)), (pd1, pd2) => pd1.name.localeCompare(pd2.name)); + const pluginLis = map(sortedPluginData, key => { + return '
      • ' + key.html + '
      • '; + }); + const count = pluginLis.length; + const pluginsString = pluginLis.join(''); + const html = '

        ' + global$1.translate([ + 'Plugins installed ({0}):', + count + ]) + '

        ' + '
          ' + pluginsString + '
        '; + return html; + }; + const installedPlugins = editor => { + if (editor == null) { + return ''; + } + return '
        ' + pluginLister(editor) + '
        '; + }; + const htmlPanel = { + type: 'htmlpanel', + presets: 'document', + html: [ + installedPlugins(editor), + availablePlugins() + ].join('') + }; + return { + name: 'plugins', + title: 'Plugins', + items: [htmlPanel] + }; + }; + + var global = tinymce.util.Tools.resolve('tinymce.EditorManager'); + + const tab = () => { + const getVersion = (major, minor) => major.indexOf('@') === 0 ? 'X.X.X' : major + '.' + minor; + const version = getVersion(global.majorVersion, global.minorVersion); + const changeLogLink = 'TinyMCE ' + version + ''; + const htmlPanel = { + type: 'htmlpanel', + html: '

        ' + global$1.translate([ + 'You are using {0}', + changeLogLink + ]) + '

        ', + presets: 'document' + }; + return { + name: 'versions', + title: 'Version', + items: [htmlPanel] + }; + }; + + const parseHelpTabsSetting = (tabsFromSettings, tabs) => { + const newTabs = {}; + const names = map(tabsFromSettings, t => { + var _a; + if (isString(t)) { + if (has(tabs, t)) { + newTabs[t] = tabs[t]; + } + return t; + } else { + const name = (_a = t.name) !== null && _a !== void 0 ? _a : generate('tab-name'); + newTabs[name] = t; + return name; + } + }); + return { + tabs: newTabs, + names + }; + }; + const getNamesFromTabs = tabs => { + const names = keys(tabs); + const idx = names.indexOf('versions'); + if (idx !== -1) { + names.splice(idx, 1); + names.push('versions'); + } + return { + tabs, + names + }; + }; + const parseCustomTabs = (editor, customTabs) => { + const shortcuts = tab$2(); + const nav = tab$3(); + const plugins = tab$1(editor); + const versions = tab(); + const tabs = { + [shortcuts.name]: shortcuts, + [nav.name]: nav, + [plugins.name]: plugins, + [versions.name]: versions, + ...customTabs.get() + }; + return Optional.from(getHelpTabs(editor)).fold(() => getNamesFromTabs(tabs), tabsFromSettings => parseHelpTabsSetting(tabsFromSettings, tabs)); + }; + const init = (editor, customTabs) => () => { + const {tabs, names} = parseCustomTabs(editor, customTabs); + const foundTabs = map(names, name => get(tabs, name)); + const dialogTabs = cat(foundTabs); + const body = { + type: 'tabpanel', + tabs: dialogTabs + }; + editor.windowManager.open({ + title: 'Help', + size: 'medium', + body, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: {} + }); + }; + + var Plugin = () => { + global$3.add('help', editor => { + const customTabs = Cell({}); + const api = get$1(customTabs); + Registro$1(editor); + const dialogOpener = init(editor, customTabs); + Registro(editor, dialogOpener); + Registro$2(editor, dialogOpener); + editor.shortcuts.add('Alt+0', 'Open help dialog', 'mceHelp'); + return api; + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.min.js new file mode 100644 index 0000000..e6395b4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/help/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");let t=0;const n=e=>{const n=(new Date).getTime(),a=Math.floor(1e9*Math.random());return t++,e+"_"+a+t+String(n)},a=e=>t=>t.options.get(e),o=a("help_tabs"),i=a("forced_plugins"),r=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=a=e,(o=String).prototype.isPrototypeOf(n)||(null===(i=a.constructor)||void 0===i?void 0:i.name)===o.name)?"string":t;var n,a,o,i})(e));const s=(void 0,e=>undefined===e);const l=e=>"function"==typeof e,c=(!1,()=>false);class u{constructor(e,t){this.tag=e,this.value=t}static some(e){return new u(!0,e)}static none(){return u.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?u.some(e(this.value)):u.none()}bind(e){return this.tag?e(this.value):u.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:u.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?u.none():u.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}u.singletonNone=new u(!1);const m=Array.prototype.slice,h=Array.prototype.indexOf,p=(e,t)=>{const n=e.length,a=new Array(n);for(let o=0;o{const n=[];for(let a=0,o=e.length;a{const n=m.call(e,0);return n.sort(t),n},y=Object.keys,b=Object.hasOwnProperty,k=(e,t)=>b.call(e,t);var v=tinymce.util.Tools.resolve("tinymce.Env");const f=e=>{const t=v.os.isMacOS()||v.os.isiOS(),n=t?{alt:"⌥",ctrl:"⌃",shift:"⇧",meta:"⌘",access:"⌃⌥"}:{meta:"Ctrl ",access:"Shift + Alt "},a=e.split("+"),o=p(a,(e=>{const t=e.toLowerCase().trim();return k(n,t)?n[t]:e}));return t?o.join("").replace(/\s/,""):o.join("+")},w=[{shortcuts:["Meta + B"],action:"Bold"},{shortcuts:["Meta + I"],action:"Italic"},{shortcuts:["Meta + U"],action:"Underline"},{shortcuts:["Meta + A"],action:"Select all"},{shortcuts:["Meta + Y","Meta + Shift + Z"],action:"Redo"},{shortcuts:["Meta + Z"],action:"Undo"},{shortcuts:["Access + 1"],action:"Heading 1"},{shortcuts:["Access + 2"],action:"Heading 2"},{shortcuts:["Access + 3"],action:"Heading 3"},{shortcuts:["Access + 4"],action:"Heading 4"},{shortcuts:["Access + 5"],action:"Heading 5"},{shortcuts:["Access + 6"],action:"Heading 6"},{shortcuts:["Access + 7"],action:"Paragraph"},{shortcuts:["Access + 8"],action:"Div"},{shortcuts:["Access + 9"],action:"Address"},{shortcuts:["Alt + 0"],action:"Open help dialog"},{shortcuts:["Alt + F9"],action:"Focus to menubar"},{shortcuts:["Alt + F10"],action:"Focus to toolbar"},{shortcuts:["Alt + F11"],action:"Focus to element path"},{shortcuts:["Ctrl + F9"],action:"Focus to contextual toolbar"},{shortcuts:["Shift + Enter"],action:"Open popup menu for split buttons"},{shortcuts:["Meta + K"],action:"Insert link (if link plugin activated)"},{shortcuts:["Meta + S"],action:"Save (if save plugin activated)"},{shortcuts:["Meta + F"],action:"Find (if Buscarreplace plugin activated)"},{shortcuts:["Meta + Shift + F"],action:"Switch to or from fullscreen mode"}],A=()=>({name:"shortcuts",title:"Handy Shortcuts",items:[{type:"table",header:["Action","Shortcut"],cells:p(w,(e=>{const t=p(e.shortcuts,f).join(" or ");return[e.action,t]}))}]});var x=tinymce.util.Tools.resolve("tinymce.util.I18n");const T=p([{key:"advlist",name:"Advanced List"},{key:"anchor",name:"Anchor"},{key:"autolink",name:"Autolink"},{key:"autoresize",name:"Autoresize"},{key:"autosave",name:"Autosave"},{key:"charmap",name:"Character Map"},{key:"code",name:"Code"},{key:"codesample",name:"Code Sample"},{key:"colorpicker",name:"Color Picker"},{key:"directionality",name:"Directionality"},{key:"emoticons",name:"Emoticons"},{key:"fullscreen",name:"Full Screen"},{key:"help",name:"Help"},{key:"image",name:"Image"},{key:"importcss",name:"Import CSS"},{key:"insertdatetime",name:"Insert Date/Time"},{key:"link",name:"Link"},{key:"lists",name:"Lists"},{key:"media",name:"Media"},{key:"nonbreaking",name:"Nonbreaking"},{key:"pagebreak",name:"Page Break"},{key:"preview",name:"Preview"},{key:"quickbars",name:"Quick Toolbars"},{key:"save",name:"Save"},{key:"Buscarreplace",name:"Buscar and Replace"},{key:"table",name:"Table"},{key:"template",name:"Template"},{key:"textcolor",name:"Text Color"},{key:"visualblocks",name:"Visual Blocks"},{key:"visualchars",name:"Visual Characters"},{key:"wordcount",name:"Word Count"},{key:"a11ychecker",name:"Accessibility Checker",type:"premium"},{key:"advcode",name:"Advanced Code Editor",type:"premium"},{key:"advtable",name:"Advanced Tablas",type:"premium"},{key:"casechange",name:"Case Change",type:"premium"},{key:"checklist",name:"Checklist",type:"premium"},{key:"editimage",name:"Enhanced Image Editing",type:"premium"},{key:"footnotes",name:"Footnotes",type:"premium"},{key:"typography",name:"Advanced Typography",type:"premium"},{key:"mediaembed",name:"Enhanced Media Embed",type:"premium",slug:"introduction-to-mediaembed"},{key:"export",name:"Export",type:"premium"},{key:"formatpainter",name:"Format Painter",type:"premium"},{key:"inlinecss",name:"Inline CSS",type:"premium"},{key:"linkchecker",name:"Link Checker",type:"premium"},{key:"mentions",name:"Mentions",type:"premium"},{key:"mergetags",name:"Merge Tags",type:"premium"},{key:"pageembed",name:"Page Embed",type:"premium"},{key:"permanentpen",name:"Permanent Pen",type:"premium"},{key:"powerpaste",name:"PowerPaste",type:"premium",slug:"introduction-to-powerpaste"},{key:"rtc",name:"Real-Time Collaboration",type:"premium",slug:"rtc-introduction"},{key:"tinymcespellchecker",name:"Spell Checker Pro",type:"premium",slug:"introduction-to-tiny-spellchecker"},{key:"autocorrect",name:"Spelling Autocorrect",type:"premium"},{key:"tableofcontents",name:"Table of Contents",type:"premium"},{key:"tinycomments",name:"Tiny Comments",type:"premium",slug:"introduction-to-tiny-comments"},{key:"tinydrive",name:"Tiny Drive",type:"premium",slug:"tinydrive-introduction"}],(e=>({...e,type:e.type||"opensource",slug:e.slug||e.key}))),C=e=>{const t=e=>`${e.name}`,n=(e,n)=>{return(a=T,o=e=>e.key===n,((e,t,n)=>{for(let a=0,o=e.length;a((e,n)=>{const a=e.plugins[n].getMetadata;if(l(a)){const e=a();return{name:e.name,html:t(e)}}return{name:n,html:n}})(e,n)),(e=>{const n="premium"===e.type?`${e.name}*`:e.name;return{name:n,html:t({name:n,url:`https://www.tiny.cloud/docs/tinymce/6/${e.slug}/`})}}));var a,o},a=e=>{const t=(e=>{const t=y(e.plugins),n=i(e);return s(n)?t:d(t,(e=>!(((e,t)=>h.call(e,t))(n,e)>-1)))})(e),a=g(p(t,(t=>n(e,t))),((e,t)=>e.name.localeCompare(t.name))),o=p(a,(e=>"
      • "+e.html+"
      • ")),r=o.length,l=o.join("");return"

        "+x.translate(["Plugins installed ({0}):",r])+"

          "+l+"
        "},o={type:"htmlpanel",presets:"document",html:[(e=>null==e?"":'
        '+a(e)+"
        ")(e),(()=>{const e=d(T,(({type:e})=>"premium"===e)),t=g(p(e,(e=>e.name)),((e,t)=>e.localeCompare(t))),n=p(t,(e=>`
      • ${e}
      • `)).join("");return'

        '+x.translate("Premium plugins:")+"

        "})()].join("")};return{name:"plugins",title:"Plugins",items:[o]}};var M=tinymce.util.Tools.resolve("tinymce.EditorManager");const S=(e,t)=>()=>{const{tabs:a,names:i}=((e,t)=>{const a=A(),i={name:"keyboardnav",title:"Keyboard Navigation",items:[{type:"htmlpanel",presets:"document",html:"

        Editor UI keyboard navigation

        \n\n

        Activating keyboard navigation

        \n\n

        The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

        \n
          \n
        • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
        • \n
        • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
        • \n
        • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
        • \n
        \n\n

        Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

        \n\n

        Moving between UI sections

        \n\n

        When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

        \n
          \n
        • the menubar
        • \n
        • each group of the toolbar
        • \n
        • the sidebar
        • \n
        • the element path in the footer
        • \n
        • the wordcount toggle button in the footer
        • \n
        • the branding link in the footer
        • \n
        • the editor resize handle in the footer
        • \n
        \n\n

        Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

        \n\n

        Moving within UI sections

        \n\n

        Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

        \n
          \n
        • moving between menus in the menubar
        • \n
        • moving between buttons in a toolbar group
        • \n
        • moving between items in the element path
        • \n
        \n\n

        In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

        \n\n

        Executing buttons

        \n\n

        To execute a button, navigate the selection to the desired button and hit space or enter.

        \n\n

        Opening, navigating and closing menus

        \n\n

        When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

        \n\n

        To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

        \n\n

        Context toolbars and menus

        \n\n

        To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

        \n\n

        Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

        \n\n

        Dialog navigation

        \n\n

        There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

        \n\n

        When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Usuarios can navigate between interactive Componentes by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

        \n\n

        When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s Componentes, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

        "}]},s=C(e),l=(()=>{var e,t;const n='TinyMCE '+(e=M.majorVersion,t=M.minorVersion,(0===e.indexOf("@")?"X.X.X":e+"."+t)+"");return{name:"versions",title:"Version",items:[{type:"htmlpanel",html:"

        "+x.translate(["You are using {0}",n])+"

        ",presets:"document"}]}})(),c={[a.name]:a,[i.name]:i,[s.name]:s,[l.name]:l,...t.get()};return u.from(o(e)).fold((()=>(e=>{const t=y(e),n=t.indexOf("versions");return-1!==n&&(t.splice(n,1),t.push("versions")),{tabs:e,names:t}})(c)),(e=>((e,t)=>{const a={},o=p(e,(e=>{var o;if(r(e))return k(t,e)&&(a[e]=t[e]),e;{const t=null!==(o=e.name)&&void 0!==o?o:n("tab-name");return a[t]=e,t}}));return{tabs:a,names:o}})(e,c)))})(e,t),s={type:"tabpanel",tabs:(e=>{const t=[],n=e=>{t.push(e)};for(let t=0;t{return k(t=a,n=e)?u.from(t[n]):u.none();var t,n})))};e.windowManager.open({title:"Help",size:"medium",body:s,buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{}})};e.add("help",(e=>{const t=(e=>{let t={};return{get:()=>t,set:e=>{t=e}}})(),a=(e=>({addTab:t=>{var a;const o=null!==(a=t.name)&&void 0!==a?a:n("tab-name"),i=e.get();i[o]=t,e.set(i)}}))(t);(e=>{(0,e.options.Registro)("help_tabs",{processor:"array"})})(e);const o=S(e,t);return((e,t)=>{e.ui.registry.addButton("help",{icon:"help",tooltip:"Help",onAction:t}),e.ui.registry.addMenuItem("help",{text:"Help",icon:"help",shortcut:"Alt+0",onAction:t})})(e,o),((e,t)=>{e.addCommand("mceHelp",t)})(e,o),e.shortcuts.add("Alt+0","Open help dialog","mceHelp"),a}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/image/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/index.js new file mode 100644 index 0000000..092c73a --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/index.js @@ -0,0 +1,7 @@ +// Exports the "image" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/image') +// ES2015: +// import 'tinymce/plugins/image' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.js new file mode 100644 index 0000000..df3d25b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.js @@ -0,0 +1,1488 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const getPrototypeOf = Object.getPrototypeOf; + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq = t => a => t === a; + const is = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf(o) === proto); + const isString = isType('string'); + const isObject = isType('object'); + const isPlainObject = value => is(value, Object); + const isArray = isType('array'); + const isNull = eq(null); + const isBoolean = isSimpleType('boolean'); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isNumber = isSimpleType('number'); + const isArrayOf = (value, pred) => { + if (isArray(value)) { + for (let i = 0, len = value.length; i < len; ++i) { + if (!pred(value[i])) { + return false; + } + } + return true; + } + return false; + }; + + const noop = () => { + }; + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const objAcc = r => (x, i) => { + r[i] = x; + }; + const internalFilter = (obj, pred, onTrue, onFalse) => { + each(obj, (x, i) => { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + }; + const filter = (obj, pred) => { + const t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + const has = (obj, key) => hasOwnProperty.call(obj, key); + const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null; + + const nativePush = Array.prototype.push; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const get = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); + const head = xs => get(xs, 0); + const findMap = (arr, f) => { + for (let i = 0; i < arr.length; i++) { + const r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Optional.none(); + }; + + typeof window !== 'undefined' ? window : Function('return this;')(); + + const rawSet = (dom, key, value) => { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + const set = (element, key, value) => { + rawSet(element.dom, key, value); + }; + const remove = (element, key) => { + element.dom.removeAttribute(key); + }; + + const fromHtml = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + const message = 'HTML does not have a single root node'; + console.error(message, html); + throw new Error(message); + } + return fromDom(div.childNodes[0]); + }; + const fromTag = (tag, scope) => { + const doc = scope || document; + const node = doc.createElement(tag); + return fromDom(node); + }; + const fromText = (text, scope) => { + const doc = scope || document; + const node = doc.createTextNode(text); + return fromDom(node); + }; + const fromDom = node => { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: node }; + }; + const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom); + const SugarElement = { + fromHtml, + fromTag, + fromText, + fromDom, + fromPoint + }; + + var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI'); + + const isNotEmpty = s => s.length > 0; + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('image_dimensions', { + processor: 'boolean', + default: true + }); + RegistroOption('image_advtab', { + processor: 'boolean', + default: false + }); + RegistroOption('image_uploadtab', { + processor: 'boolean', + default: true + }); + RegistroOption('image_prepend_url', { + processor: 'string', + default: '' + }); + RegistroOption('image_class_list', { processor: 'object[]' }); + RegistroOption('image_description', { + processor: 'boolean', + default: true + }); + RegistroOption('image_title', { + processor: 'boolean', + default: false + }); + RegistroOption('image_caption', { + processor: 'boolean', + default: false + }); + RegistroOption('image_list', { + processor: value => { + const valid = value === false || isString(value) || isArrayOf(value, isObject) || isFunction(value); + return valid ? { + value, + valid + } : { + valid: false, + message: 'Must be false, a string, an array or a function.' + }; + }, + default: false + }); + }; + const hasDimensions = option('image_dimensions'); + const hasAdvTab = option('image_advtab'); + const hasUploadTab = option('image_uploadtab'); + const getPrependUrl = option('image_prepend_url'); + const getClassList = option('image_class_list'); + const hasDescription = option('image_description'); + const hasImageTitle = option('image_title'); + const hasImageCaption = option('image_caption'); + const getImageList = option('image_list'); + const showAccessibilityOptions = option('a11y_advanced_options'); + const isAutomaticUploadsEnabled = option('automatic_uploads'); + const hasUploadUrl = editor => isNotEmpty(editor.options.get('images_upload_url')); + const hasUploadHandler = editor => isNonNullable(editor.options.get('images_upload_handler')); + + const parseIntAndGetMax = (val1, val2) => Math.max(parseInt(val1, 10), parseInt(val2, 10)); + const getImageSize = url => new Promise(callback => { + const img = document.createElement('img'); + const done = dimensions => { + img.onload = img.onerror = null; + if (img.parentNode) { + img.parentNode.removeChild(img); + } + callback(dimensions); + }; + img.onload = () => { + const width = parseIntAndGetMax(img.width, img.clientWidth); + const height = parseIntAndGetMax(img.height, img.clientHeight); + const dimensions = { + width, + height + }; + done(Promise.resolve(dimensions)); + }; + img.onerror = () => { + done(Promise.reject(`Failed to get image dimensions for: ${ url }`)); + }; + const style = img.style; + style.visibility = 'hidden'; + style.position = 'fixed'; + style.bottom = style.left = '0px'; + style.width = style.height = 'auto'; + document.body.appendChild(img); + img.src = url; + }); + const removePixelSuffix = value => { + if (value) { + value = value.replace(/px$/, ''); + } + return value; + }; + const addPixelSuffix = value => { + if (value.length > 0 && /^[0-9]+$/.test(value)) { + value += 'px'; + } + return value; + }; + const mergeMargins = css => { + if (css.margin) { + const splitMargin = String(css.margin).split(' '); + switch (splitMargin.length) { + case 1: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[0]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[0]; + break; + case 2: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 3: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 4: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[3]; + } + delete css.margin; + } + return css; + }; + const createImageList = (editor, callback) => { + const imageList = getImageList(editor); + if (isString(imageList)) { + fetch(imageList).then(res => { + if (res.ok) { + res.json().then(callback); + } + }); + } else if (isFunction(imageList)) { + imageList(callback); + } else { + callback(imageList); + } + }; + const waitLoadImage = (editor, data, imgElm) => { + const selectImage = () => { + imgElm.onload = imgElm.onerror = null; + if (editor.selection) { + editor.selection.select(imgElm); + editor.nodeChanged(); + } + }; + imgElm.onload = () => { + if (!data.width && !data.height && hasDimensions(editor)) { + editor.dom.setAttribs(imgElm, { + width: String(imgElm.clientWidth), + height: String(imgElm.clientHeight) + }); + } + selectImage(); + }; + imgElm.onerror = selectImage; + }; + const blobToDataUri = blob => new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => { + resolve(reader.result); + }; + reader.onerror = () => { + var _a; + reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message); + }; + reader.readAsDataURL(blob); + }); + const isPlaceholderImage = imgElm => imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder')); + const isSafeImageUrl = (editor, src) => { + const getOption = editor.options.get; + return global$2.isDomSafe(src, 'img', { + allow_html_data_urls: getOption('allow_html_data_urls'), + allow_script_urls: getOption('allow_script_urls'), + allow_svg_data_urls: getOption('allow_svg_data_urls') + }); + }; + + const DOM = global$3.DOM; + const getHspace = image => { + if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) { + return removePixelSuffix(image.style.marginLeft); + } else { + return ''; + } + }; + const getVspace = image => { + if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) { + return removePixelSuffix(image.style.marginTop); + } else { + return ''; + } + }; + const getBorder = image => { + if (image.style.borderWidth) { + return removePixelSuffix(image.style.borderWidth); + } else { + return ''; + } + }; + const getAttrib = (image, name) => { + var _a; + if (image.hasAttribute(name)) { + return (_a = image.getAttribute(name)) !== null && _a !== void 0 ? _a : ''; + } else { + return ''; + } + }; + const hasCaption = image => image.parentNode !== null && image.parentNode.nodeName === 'FIGURE'; + const updateAttrib = (image, name, value) => { + if (value === '' || value === null) { + image.removeAttribute(name); + } else { + image.setAttribute(name, value); + } + }; + const wrapInFigure = image => { + const figureElm = DOM.create('figure', { class: 'image' }); + DOM.insertAfter(figureElm, image); + figureElm.appendChild(image); + figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption')); + figureElm.contentEditable = 'false'; + }; + const removeFigure = image => { + const figureElm = image.parentNode; + if (isNonNullable(figureElm)) { + DOM.insertAfter(image, figureElm); + DOM.remove(figureElm); + } + }; + const toggleCaption = image => { + if (hasCaption(image)) { + removeFigure(image); + } else { + wrapInFigure(image); + } + }; + const normalizeStyle = (image, normalizeCss) => { + const attrValue = image.getAttribute('style'); + const value = normalizeCss(attrValue !== null ? attrValue : ''); + if (value.length > 0) { + image.setAttribute('style', value); + image.setAttribute('data-mce-style', value); + } else { + image.removeAttribute('style'); + } + }; + const setSize = (name, normalizeCss) => (image, name, value) => { + const styles = image.style; + if (styles[name]) { + styles[name] = addPixelSuffix(value); + normalizeStyle(image, normalizeCss); + } else { + updateAttrib(image, name, value); + } + }; + const getSize = (image, name) => { + if (image.style[name]) { + return removePixelSuffix(image.style[name]); + } else { + return getAttrib(image, name); + } + }; + const setHspace = (image, value) => { + const pxValue = addPixelSuffix(value); + image.style.marginLeft = pxValue; + image.style.marginRight = pxValue; + }; + const setVspace = (image, value) => { + const pxValue = addPixelSuffix(value); + image.style.marginTop = pxValue; + image.style.marginBottom = pxValue; + }; + const setBorder = (image, value) => { + const pxValue = addPixelSuffix(value); + image.style.borderWidth = pxValue; + }; + const setBorderStyle = (image, value) => { + image.style.borderStyle = value; + }; + const getBorderStyle = image => { + var _a; + return (_a = image.style.borderStyle) !== null && _a !== void 0 ? _a : ''; + }; + const isFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE'; + const isImage = elm => elm.nodeName === 'IMG'; + const getIsDecorative = image => DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation'; + const getAlt = image => { + if (getIsDecorative(image)) { + return ''; + } else { + return getAttrib(image, 'alt'); + } + }; + const defaultData = () => ({ + src: '', + alt: '', + title: '', + width: '', + height: '', + class: '', + style: '', + caption: false, + hspace: '', + vspace: '', + border: '', + borderStyle: '', + isDecorative: false + }); + const getStyleValue = (normalizeCss, data) => { + var _a; + const image = document.createElement('img'); + updateAttrib(image, 'style', data.style); + if (getHspace(image) || data.hspace !== '') { + setHspace(image, data.hspace); + } + if (getVspace(image) || data.vspace !== '') { + setVspace(image, data.vspace); + } + if (getBorder(image) || data.border !== '') { + setBorder(image, data.border); + } + if (getBorderStyle(image) || data.borderStyle !== '') { + setBorderStyle(image, data.borderStyle); + } + return normalizeCss((_a = image.getAttribute('style')) !== null && _a !== void 0 ? _a : ''); + }; + const create = (normalizeCss, data) => { + const image = document.createElement('img'); + write(normalizeCss, { + ...data, + caption: false + }, image); + setAlt(image, data.alt, data.isDecorative); + if (data.caption) { + const figure = DOM.create('figure', { class: 'image' }); + figure.appendChild(image); + figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption')); + figure.contentEditable = 'false'; + return figure; + } else { + return image; + } + }; + const read = (normalizeCss, image) => ({ + src: getAttrib(image, 'src'), + alt: getAlt(image), + title: getAttrib(image, 'title'), + width: getSize(image, 'width'), + height: getSize(image, 'height'), + class: getAttrib(image, 'class'), + style: normalizeCss(getAttrib(image, 'style')), + caption: hasCaption(image), + hspace: getHspace(image), + vspace: getVspace(image), + border: getBorder(image), + borderStyle: getBorderStyle(image), + isDecorative: getIsDecorative(image) + }); + const updateProp = (image, oldData, newData, name, set) => { + if (newData[name] !== oldData[name]) { + set(image, name, String(newData[name])); + } + }; + const setAlt = (image, alt, isDecorative) => { + if (isDecorative) { + DOM.setAttrib(image, 'role', 'presentation'); + const sugarImage = SugarElement.fromDom(image); + set(sugarImage, 'alt', ''); + } else { + if (isNull(alt)) { + const sugarImage = SugarElement.fromDom(image); + remove(sugarImage, 'alt'); + } else { + const sugarImage = SugarElement.fromDom(image); + set(sugarImage, 'alt', alt); + } + if (DOM.getAttrib(image, 'role') === 'presentation') { + DOM.setAttrib(image, 'role', ''); + } + } + }; + const updateAlt = (image, oldData, newData) => { + if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) { + setAlt(image, newData.alt, newData.isDecorative); + } + }; + const normalized = (set, normalizeCss) => (image, name, value) => { + set(image, value); + normalizeStyle(image, normalizeCss); + }; + const write = (normalizeCss, newData, image) => { + const oldData = read(normalizeCss, image); + updateProp(image, oldData, newData, 'caption', (image, _name, _value) => toggleCaption(image)); + updateProp(image, oldData, newData, 'src', updateAttrib); + updateProp(image, oldData, newData, 'title', updateAttrib); + updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss)); + updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss)); + updateProp(image, oldData, newData, 'class', updateAttrib); + updateProp(image, oldData, newData, 'style', normalized((image, value) => updateAttrib(image, 'style', value), normalizeCss)); + updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss)); + updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss)); + updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss)); + updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss)); + updateAlt(image, oldData, newData); + }; + + const normalizeCss$1 = (editor, cssText) => { + const css = editor.dom.styles.parse(cssText); + const mergedCss = mergeMargins(css); + const compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss)); + return editor.dom.styles.serialize(compressed); + }; + const getSelectedImage = editor => { + const imgElm = editor.selection.getNode(); + const figureElm = editor.dom.getParent(imgElm, 'figure.image'); + if (figureElm) { + return editor.dom.select('img', figureElm)[0]; + } + if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) { + return null; + } + return imgElm; + }; + const splitTextBlock = (editor, figure) => { + var _a; + const dom = editor.dom; + const textBlockElements = filter(editor.schema.getTextBlockElements(), (_, parentElm) => !editor.schema.isValidChild(parentElm, 'figure')); + const textBlock = dom.getParent(figure.parentNode, node => hasNonNullableKey(textBlockElements, node.nodeName), editor.getBody()); + if (textBlock) { + return (_a = dom.split(textBlock, figure)) !== null && _a !== void 0 ? _a : figure; + } else { + return figure; + } + }; + const readImageDataFromSelection = editor => { + const image = getSelectedImage(editor); + return image ? read(css => normalizeCss$1(editor, css), image) : defaultData(); + }; + const insertImageAtCaret = (editor, data) => { + const elm = create(css => normalizeCss$1(editor, css), data); + editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew'); + editor.focus(); + editor.selection.setContent(elm.outerHTML); + const insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0]; + editor.dom.setAttrib(insertedElm, 'data-mce-id', null); + if (isFigure(insertedElm)) { + const figure = splitTextBlock(editor, insertedElm); + editor.selection.select(figure); + } else { + editor.selection.select(insertedElm); + } + }; + const syncSrcAttr = (editor, image) => { + editor.dom.setAttrib(image, 'src', image.getAttribute('src')); + }; + const deleteImage = (editor, image) => { + if (image) { + const elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image; + editor.dom.remove(elm); + editor.focus(); + editor.nodeChanged(); + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + editor.selection.setCursorLocation(); + } + } + }; + const writeImageDataToSelection = (editor, data) => { + const image = getSelectedImage(editor); + if (image) { + write(css => normalizeCss$1(editor, css), data, image); + syncSrcAttr(editor, image); + if (isFigure(image.parentNode)) { + const figure = image.parentNode; + splitTextBlock(editor, figure); + editor.selection.select(image.parentNode); + } else { + editor.selection.select(image); + waitLoadImage(editor, data, image); + } + } + }; + const sanitizeImageData = (editor, data) => { + const src = data.src; + return { + ...data, + src: isSafeImageUrl(editor, src) ? src : '' + }; + }; + const insertOrUpdateImage = (editor, partialData) => { + const image = getSelectedImage(editor); + if (image) { + const selectedImageData = read(css => normalizeCss$1(editor, css), image); + const data = { + ...selectedImageData, + ...partialData + }; + const sanitizedData = sanitizeImageData(editor, data); + if (data.src) { + writeImageDataToSelection(editor, sanitizedData); + } else { + deleteImage(editor, image); + } + } else if (partialData.src) { + insertImageAtCaret(editor, { + ...defaultData(), + ...partialData + }); + } + }; + + const deep = (old, nu) => { + const bothObjects = isPlainObject(old) && isPlainObject(nu); + return bothObjects ? deepMerge(old, nu) : nu; + }; + const baseMerge = merger => { + return (...objects) => { + if (objects.length === 0) { + throw new Error(`Can't merge zero objects`); + } + const ret = {}; + for (let j = 0; j < objects.length; j++) { + const curObject = objects[j]; + for (const key in curObject) { + if (has(curObject, key)) { + ret[key] = merger(ret[key], curObject[key]); + } + } + } + return ret; + }; + }; + const deepMerge = baseMerge(deep); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader'); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const getValue = item => isString(item.value) ? item.value : ''; + const getText = item => { + if (isString(item.text)) { + return item.text; + } else if (isString(item.title)) { + return item.title; + } else { + return ''; + } + }; + const sanitizeList = (list, extractValue) => { + const out = []; + global.each(list, item => { + const text = getText(item); + if (item.menu !== undefined) { + const items = sanitizeList(item.menu, extractValue); + out.push({ + text, + items + }); + } else { + const value = extractValue(item); + out.push({ + text, + value + }); + } + }); + return out; + }; + const sanitizer = (extractor = getValue) => list => { + if (list) { + return Optional.from(list).map(list => sanitizeList(list, extractor)); + } else { + return Optional.none(); + } + }; + const sanitize = list => sanitizer(getValue)(list); + const isGroup = item => has(item, 'items'); + const findEntryDelegate = (list, value) => findMap(list, item => { + if (isGroup(item)) { + return findEntryDelegate(item.items, value); + } else if (item.value === value) { + return Optional.some(item); + } else { + return Optional.none(); + } + }); + const findEntry = (optList, value) => optList.bind(list => findEntryDelegate(list, value)); + const ListUtils = { + sanitizer, + sanitize, + findEntry + }; + + const makeTab$2 = _info => ({ + title: 'Advanced', + name: 'advanced', + items: [{ + type: 'grid', + columns: 2, + items: [ + { + type: 'input', + label: 'Vertical space', + name: 'vspace', + inputMode: 'numeric' + }, + { + type: 'input', + label: 'Horizontal space', + name: 'hspace', + inputMode: 'numeric' + }, + { + type: 'input', + label: 'Border width', + name: 'border', + inputMode: 'numeric' + }, + { + type: 'listbox', + name: 'borderstyle', + label: 'Border style', + items: [ + { + text: 'Select...', + value: '' + }, + { + text: 'Solid', + value: 'solid' + }, + { + text: 'Dotted', + value: 'dotted' + }, + { + text: 'Dashed', + value: 'dashed' + }, + { + text: 'Double', + value: 'double' + }, + { + text: 'Groove', + value: 'groove' + }, + { + text: 'Ridge', + value: 'ridge' + }, + { + text: 'Inset', + value: 'inset' + }, + { + text: 'Outset', + value: 'outset' + }, + { + text: 'None', + value: 'none' + }, + { + text: 'Hidden', + value: 'hidden' + } + ] + } + ] + }] + }); + const AdvTab = { makeTab: makeTab$2 }; + + const collect = editor => { + const urlListSanitizer = ListUtils.sanitizer(item => editor.convertURL(item.value || item.url || '', 'src')); + const futureImageList = new Promise(completer => { + createImageList(editor, imageList => { + completer(urlListSanitizer(imageList).map(items => flatten([ + [{ + text: 'None', + value: '' + }], + items + ]))); + }); + }); + const classList = ListUtils.sanitize(getClassList(editor)); + const hasAdvTab$1 = hasAdvTab(editor); + const hasUploadTab$1 = hasUploadTab(editor); + const hasUploadUrl$1 = hasUploadUrl(editor); + const hasUploadHandler$1 = hasUploadHandler(editor); + const image = readImageDataFromSelection(editor); + const hasDescription$1 = hasDescription(editor); + const hasImageTitle$1 = hasImageTitle(editor); + const hasDimensions$1 = hasDimensions(editor); + const hasImageCaption$1 = hasImageCaption(editor); + const hasAccessibilityOptions = showAccessibilityOptions(editor); + const automaticUploads = isAutomaticUploadsEnabled(editor); + const prependURL = Optional.some(getPrependUrl(editor)).filter(preUrl => isString(preUrl) && preUrl.length > 0); + return futureImageList.then(imageList => ({ + image, + imageList, + classList, + hasAdvTab: hasAdvTab$1, + hasUploadTab: hasUploadTab$1, + hasUploadUrl: hasUploadUrl$1, + hasUploadHandler: hasUploadHandler$1, + hasDescription: hasDescription$1, + hasImageTitle: hasImageTitle$1, + hasDimensions: hasDimensions$1, + hasImageCaption: hasImageCaption$1, + prependURL, + hasAccessibilityOptions, + automaticUploads + })); + }; + + const makeItems = info => { + const imageUrl = { + name: 'src', + type: 'urlinput', + filetype: 'image', + label: 'Source' + }; + const imageList = info.imageList.map(items => ({ + name: 'images', + type: 'listbox', + label: 'Image list', + items + })); + const imageDescription = { + name: 'alt', + type: 'input', + label: 'Alternative description', + enabled: !(info.hasAccessibilityOptions && info.image.isDecorative) + }; + const imageTitle = { + name: 'title', + type: 'input', + label: 'Image title' + }; + const imageDimensions = { + name: 'dimensions', + type: 'sizeinput' + }; + const isDecorative = { + type: 'label', + label: 'Accessibility', + items: [{ + name: 'isDecorative', + type: 'checkbox', + label: 'Image is decorative' + }] + }; + const classList = info.classList.map(items => ({ + name: 'classes', + type: 'listbox', + label: 'Class', + items + })); + const caption = { + type: 'label', + label: 'Caption', + items: [{ + type: 'checkbox', + name: 'caption', + label: 'Show caption' + }] + }; + const getDialogContainerType = useColumns => useColumns ? { + type: 'grid', + columns: 2 + } : { type: 'panel' }; + return flatten([ + [imageUrl], + imageList.toArray(), + info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [], + info.hasDescription ? [imageDescription] : [], + info.hasImageTitle ? [imageTitle] : [], + info.hasDimensions ? [imageDimensions] : [], + [{ + ...getDialogContainerType(info.classList.isSome() && info.hasImageCaption), + items: flatten([ + classList.toArray(), + info.hasImageCaption ? [caption] : [] + ]) + }] + ]); + }; + const makeTab$1 = info => ({ + title: 'General', + name: 'general', + items: makeItems(info) + }); + const MainTab = { + makeTab: makeTab$1, + makeItems + }; + + const makeTab = _info => { + const items = [{ + type: 'dropzone', + name: 'fileinput' + }]; + return { + title: 'Upload', + name: 'upload', + items + }; + }; + const UploadTab = { makeTab }; + + const createState = info => ({ + prevImage: ListUtils.findEntry(info.imageList, info.image.src), + prevAlt: info.image.alt, + open: true + }); + const fromImageData = image => ({ + src: { + value: image.src, + meta: {} + }, + images: image.src, + alt: image.alt, + title: image.title, + dimensions: { + width: image.width, + height: image.height + }, + classes: image.class, + caption: image.caption, + style: image.style, + vspace: image.vspace, + border: image.border, + hspace: image.hspace, + borderstyle: image.borderStyle, + fileinput: [], + isDecorative: image.isDecorative + }); + const toImageData = (data, removeEmptyAlt) => ({ + src: data.src.value, + alt: (data.alt === null || data.alt.length === 0) && removeEmptyAlt ? null : data.alt, + title: data.title, + width: data.dimensions.width, + height: data.dimensions.height, + class: data.classes, + style: data.style, + caption: data.caption, + hspace: data.hspace, + vspace: data.vspace, + border: data.border, + borderStyle: data.borderstyle, + isDecorative: data.isDecorative + }); + const addPrependUrl2 = (info, srcURL) => { + if (!/^(?:[a-zA-Z]+:)?\/\//.test(srcURL)) { + return info.prependURL.bind(prependUrl => { + if (srcURL.substring(0, prependUrl.length) !== prependUrl) { + return Optional.some(prependUrl + srcURL); + } + return Optional.none(); + }); + } + return Optional.none(); + }; + const addPrependUrl = (info, api) => { + const data = api.getData(); + addPrependUrl2(info, data.src.value).each(srcURL => { + api.setData({ + src: { + value: srcURL, + meta: data.src.meta + } + }); + }); + }; + const formFillFromMeta2 = (info, data, meta) => { + if (info.hasDescription && isString(meta.alt)) { + data.alt = meta.alt; + } + if (info.hasAccessibilityOptions) { + data.isDecorative = meta.isDecorative || data.isDecorative || false; + } + if (info.hasImageTitle && isString(meta.title)) { + data.title = meta.title; + } + if (info.hasDimensions) { + if (isString(meta.width)) { + data.dimensions.width = meta.width; + } + if (isString(meta.height)) { + data.dimensions.height = meta.height; + } + } + if (isString(meta.class)) { + ListUtils.findEntry(info.classList, meta.class).each(entry => { + data.classes = entry.value; + }); + } + if (info.hasImageCaption) { + if (isBoolean(meta.caption)) { + data.caption = meta.caption; + } + } + if (info.hasAdvTab) { + if (isString(meta.style)) { + data.style = meta.style; + } + if (isString(meta.vspace)) { + data.vspace = meta.vspace; + } + if (isString(meta.border)) { + data.border = meta.border; + } + if (isString(meta.hspace)) { + data.hspace = meta.hspace; + } + if (isString(meta.borderstyle)) { + data.borderstyle = meta.borderstyle; + } + } + }; + const formFillFromMeta = (info, api) => { + const data = api.getData(); + const meta = data.src.meta; + if (meta !== undefined) { + const newData = deepMerge({}, data); + formFillFromMeta2(info, newData, meta); + api.setData(newData); + } + }; + const calculateImageSize = (helpers, info, state, api) => { + const data = api.getData(); + const url = data.src.value; + const meta = data.src.meta || {}; + if (!meta.width && !meta.height && info.hasDimensions) { + if (isNotEmpty(url)) { + helpers.imageSize(url).then(size => { + if (state.open) { + api.setData({ dimensions: size }); + } + }).catch(e => console.error(e)); + } else { + api.setData({ + dimensions: { + width: '', + height: '' + } + }); + } + } + }; + const updateImagesDropdown = (info, state, api) => { + const data = api.getData(); + const image = ListUtils.findEntry(info.imageList, data.src.value); + state.prevImage = image; + api.setData({ images: image.map(entry => entry.value).getOr('') }); + }; + const changeSrc = (helpers, info, state, api) => { + addPrependUrl(info, api); + formFillFromMeta(info, api); + calculateImageSize(helpers, info, state, api); + updateImagesDropdown(info, state, api); + }; + const changeImages = (helpers, info, state, api) => { + const data = api.getData(); + const image = ListUtils.findEntry(info.imageList, data.images); + image.each(img => { + const updateAlt = data.alt === '' || state.prevImage.map(image => image.text === data.alt).getOr(false); + if (updateAlt) { + if (img.value === '') { + api.setData({ + src: img, + alt: state.prevAlt + }); + } else { + api.setData({ + src: img, + alt: img.text + }); + } + } else { + api.setData({ src: img }); + } + }); + state.prevImage = image; + changeSrc(helpers, info, state, api); + }; + const changeFileInput = (helpers, info, state, api) => { + const data = api.getData(); + api.block('Uploading image'); + head(data.fileinput).fold(() => { + api.unblock(); + }, file => { + const blobUri = URL.createObjectURL(file); + const finalize = () => { + api.unblock(); + URL.revokeObjectURL(blobUri); + }; + const updateSrcAndSwitchTab = url => { + api.setData({ + src: { + value: url, + meta: {} + } + }); + api.showTab('general'); + changeSrc(helpers, info, state, api); + }; + blobToDataUri(file).then(dataUrl => { + const blobInfo = helpers.createBlobCache(file, blobUri, dataUrl); + if (info.automaticUploads) { + helpers.uploadImage(blobInfo).then(result => { + updateSrcAndSwitchTab(result.url); + finalize(); + }).catch(err => { + finalize(); + helpers.alertErr(err); + }); + } else { + helpers.addToBlobCache(blobInfo); + updateSrcAndSwitchTab(blobInfo.blobUri()); + api.unblock(); + } + }); + }); + }; + const changeHandler = (helpers, info, state) => (api, evt) => { + if (evt.name === 'src') { + changeSrc(helpers, info, state, api); + } else if (evt.name === 'images') { + changeImages(helpers, info, state, api); + } else if (evt.name === 'alt') { + state.prevAlt = api.getData().alt; + } else if (evt.name === 'fileinput') { + changeFileInput(helpers, info, state, api); + } else if (evt.name === 'isDecorative') { + api.setEnabled('alt', !api.getData().isDecorative); + } + }; + const closeHandler = state => () => { + state.open = false; + }; + const makeDialogBody = info => { + if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) { + const tabPanel = { + type: 'tabpanel', + tabs: flatten([ + [MainTab.makeTab(info)], + info.hasAdvTab ? [AdvTab.makeTab(info)] : [], + info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : [] + ]) + }; + return tabPanel; + } else { + const panel = { + type: 'panel', + items: MainTab.makeItems(info) + }; + return panel; + } + }; + const submitHandler = (editor, info, helpers) => api => { + const data = deepMerge(fromImageData(info.image), api.getData()); + const finalData = { + ...data, + style: getStyleValue(helpers.normalizeCss, toImageData(data, false)) + }; + editor.execCommand('mceUpdateImage', false, toImageData(finalData, info.hasAccessibilityOptions)); + editor.editorUpload.uploadImagesAuto(); + api.close(); + }; + const imageSize = editor => url => { + if (!isSafeImageUrl(editor, url)) { + return Promise.resolve({ + width: '', + height: '' + }); + } else { + return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(dimensions => ({ + width: String(dimensions.width), + height: String(dimensions.height) + })); + } + }; + const createBlobCache = editor => (file, blobUri, dataUrl) => { + var _a; + return editor.editorUpload.blobCache.create({ + blob: file, + blobUri, + name: (_a = file.name) === null || _a === void 0 ? void 0 : _a.replace(/\.[^\.]+$/, ''), + filename: file.name, + base64: dataUrl.split(',')[1] + }); + }; + const addToBlobCache = editor => blobInfo => { + editor.editorUpload.blobCache.add(blobInfo); + }; + const alertErr = editor => message => { + editor.windowManager.alert(message); + }; + const normalizeCss = editor => cssText => normalizeCss$1(editor, cssText); + const parseStyle = editor => cssText => editor.dom.parseStyle(cssText); + const serializeStyle = editor => (stylesArg, name) => editor.dom.serializeStyle(stylesArg, name); + const uploadImage = editor => blobInfo => global$1(editor).upload([blobInfo], false).then(results => { + var _a; + if (results.length === 0) { + return Promise.reject('Failed to upload image'); + } else if (results[0].status === false) { + return Promise.reject((_a = results[0].error) === null || _a === void 0 ? void 0 : _a.message); + } else { + return results[0]; + } + }); + const Dialog = editor => { + const helpers = { + imageSize: imageSize(editor), + addToBlobCache: addToBlobCache(editor), + createBlobCache: createBlobCache(editor), + alertErr: alertErr(editor), + normalizeCss: normalizeCss(editor), + parseStyle: parseStyle(editor), + serializeStyle: serializeStyle(editor), + uploadImage: uploadImage(editor) + }; + const open = () => { + collect(editor).then(info => { + const state = createState(info); + return { + title: 'Insert/Edit Image', + size: 'normal', + body: makeDialogBody(info), + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: fromImageData(info.image), + onSubmit: submitHandler(editor, info, helpers), + onChange: changeHandler(helpers, info, state), + onClose: closeHandler(state) + }; + }).then(editor.windowManager.open); + }; + return { open }; + }; + + const Registro$1 = editor => { + editor.addCommand('mceImage', Dialog(editor).open); + editor.addCommand('mceUpdateImage', (_ui, data) => { + editor.undoManager.transact(() => insertOrUpdateImage(editor, data)); + }); + }; + + const hasImageClass = node => { + const className = node.attr('class'); + return isNonNullable(className) && /\bimage\b/.test(className); + }; + const toggleContentEdiTablastate = state => nodes => { + let i = nodes.length; + const toggleContentEditable = node => { + node.attr('contenteditable', state ? 'true' : null); + }; + while (i--) { + const node = nodes[i]; + if (hasImageClass(node)) { + node.attr('contenteditable', state ? 'false' : null); + global.each(node.getAll('figcaption'), toggleContentEditable); + } + } + }; + const setup = editor => { + editor.on('PreInit', () => { + editor.parser.addNodeFilter('figure', toggleContentEdiTablastate(true)); + editor.serializer.addNodeFilter('figure', toggleContentEdiTablastate(false)); + }); + }; + + const Registro = editor => { + editor.ui.registry.addToggleButton('image', { + icon: 'image', + tooltip: 'Insert/edit image', + onAction: Dialog(editor).open, + onSetup: buttonApi => { + buttonApi.setActive(isNonNullable(getSelectedImage(editor))); + return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object]):not([data-mce-placeholder]),figure.image', buttonApi.setActive).unbind; + } + }); + editor.ui.registry.addMenuItem('image', { + icon: 'image', + text: 'Image...', + onAction: Dialog(editor).open + }); + editor.ui.registry.addContextMenu('image', { update: element => isFigure(element) || isImage(element) && !isPlaceholderImage(element) ? ['image'] : [] }); + }; + + var Plugin = () => { + global$4.add('image', editor => { + Registro$2(editor); + setup(editor); + Registro(editor); + Registro$1(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.min.js new file mode 100644 index 0000000..6fd4562 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/image/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=Object.getPrototypeOf,a=(e,t,a)=>{var i;return!!a(e,t.prototype)||(null===(i=e.constructor)||void 0===i?void 0:i.name)===t.name},i=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&a(e,String,((e,t)=>t.isPrototypeOf(e)))?"string":t})(t)===e,s=e=>t=>typeof t===e,r=i("string"),o=i("object"),n=e=>((e,i)=>o(e)&&a(e,i,((e,a)=>t(e)===a)))(e,Object),l=i("array"),c=(null,e=>null===e);const m=s("boolean"),d=e=>!(e=>null==e)(e),g=s("function"),u=s("number"),p=()=>{};class h{constructor(e,t){this.tag=e,this.value=t}static some(e){return new h(!0,e)}static none(){return h.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?h.some(e(this.value)):h.none()}bind(e){return this.tag?e(this.value):h.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:h.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return d(e)?h.some(e):h.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}h.singletonNone=new h(!1);const b=Object.keys,v=Object.hasOwnProperty,y=(e,t)=>v.call(e,t),f=Array.prototype.push,w=e=>{const t=[];for(let a=0,i=e.length;a{((e,t,a)=>{if(!(r(a)||m(a)||u(a)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",a,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,a+"")})(e.dom,t,a)},D=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},_=D;var C=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),I=tinymce.util.Tools.resolve("tinymce.util.URI");const U=e=>e.length>0,x=e=>t=>t.options.get(e),S=x("image_dimensions"),N=x("image_advtab"),T=x("image_uploadtab"),O=x("image_prepend_url"),L=x("image_class_list"),E=x("image_description"),j=x("image_title"),M=x("image_caption"),R=x("image_list"),k=x("a11y_advanced_options"),z=x("automatic_uploads"),P=(e,t)=>Math.max(parseInt(e,10),parseInt(t,10)),B=e=>(e&&(e=e.replace(/px$/,"")),e),F=e=>(e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e),H=e=>"IMG"===e.nodeName&&(e.hasAttribute("data-mce-object")||e.hasAttribute("data-mce-placeholder")),G=(e,t)=>{const a=e.options.get;return I.isDomSafe(t,"img",{allow_html_data_urls:a("allow_html_data_urls"),allow_script_urls:a("allow_script_urls"),allow_svg_data_urls:a("allow_svg_data_urls")})},W=C.DOM,$=e=>e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?B(e.style.marginLeft):"",V=e=>e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?B(e.style.marginTop):"",K=e=>e.style.borderWidth?B(e.style.borderWidth):"",Z=(e,t)=>{var a;return e.hasAttribute(t)&&null!==(a=e.getAttribute(t))&&void 0!==a?a:""},q=e=>null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName,J=(e,t,a)=>{""===a||null===a?e.removeAttribute(t):e.setAttribute(t,a)},Q=(e,t)=>{const a=e.getAttribute("style"),i=t(null!==a?a:"");i.length>0?(e.setAttribute("style",i),e.setAttribute("data-mce-style",i)):e.removeAttribute("style")},X=(e,t)=>(e,a,i)=>{const s=e.style;s[a]?(s[a]=F(i),Q(e,t)):J(e,a,i)},Y=(e,t)=>e.style[t]?B(e.style[t]):Z(e,t),ee=(e,t)=>{const a=F(t);e.style.marginLeft=a,e.style.marginRight=a},te=(e,t)=>{const a=F(t);e.style.marginTop=a,e.style.marginBottom=a},ae=(e,t)=>{const a=F(t);e.style.borderWidth=a},ie=(e,t)=>{e.style.borderStyle=t},se=e=>{var t;return null!==(t=e.style.borderStyle)&&void 0!==t?t:""},re=e=>d(e)&&"FIGURE"===e.nodeName,oe=e=>0===W.getAttrib(e,"alt").length&&"presentation"===W.getAttrib(e,"role"),ne=e=>oe(e)?"":Z(e,"alt"),le=(e,t)=>{var a;const i=document.createElement("img");return J(i,"style",t.style),($(i)||""!==t.hspace)&&ee(i,t.hspace),(V(i)||""!==t.vspace)&&te(i,t.vspace),(K(i)||""!==t.border)&&ae(i,t.border),(se(i)||""!==t.borderStyle)&&ie(i,t.borderStyle),e(null!==(a=i.getAttribute("style"))&&void 0!==a?a:"")},ce=(e,t)=>({src:Z(t,"src"),alt:ne(t),title:Z(t,"title"),width:Y(t,"width"),height:Y(t,"height"),class:Z(t,"class"),style:e(Z(t,"style")),caption:q(t),hspace:$(t),vspace:V(t),border:K(t),borderStyle:se(t),isDecorative:oe(t)}),me=(e,t,a,i,s)=>{a[i]!==t[i]&&s(e,i,String(a[i]))},de=(e,t,a)=>{if(a){W.setAttrib(e,"role","presentation");const t=_(e);A(t,"alt","")}else{if(c(t)){"alt",_(e).dom.removeAttribute("alt")}else{const a=_(e);A(a,"alt",t)}"presentation"===W.getAttrib(e,"role")&&W.setAttrib(e,"role","")}},ge=(e,t)=>(a,i,s)=>{e(a,s),Q(a,t)},ue=(e,t,a)=>{const i=ce(e,a);me(a,i,t,"caption",((e,t,a)=>(e=>{q(e)?(e=>{const t=e.parentNode;d(t)&&(W.insertAfter(e,t),W.remove(t))})(e):(e=>{const t=W.create("figure",{class:"image"});W.insertAfter(t,e),t.appendChild(e),t.appendChild(W.create("figcaption",{contentEditable:"true"},"Caption")),t.contentEditable="false"})(e)})(e))),me(a,i,t,"src",J),me(a,i,t,"title",J),me(a,i,t,"width",X(0,e)),me(a,i,t,"height",X(0,e)),me(a,i,t,"class",J),me(a,i,t,"style",ge(((e,t)=>J(e,"style",t)),e)),me(a,i,t,"hspace",ge(ee,e)),me(a,i,t,"vspace",ge(te,e)),me(a,i,t,"border",ge(ae,e)),me(a,i,t,"borderStyle",ge(ie,e)),((e,t,a)=>{a.alt===t.alt&&a.isDecorative===t.isDecorative||de(e,a.alt,a.isDecorative)})(a,i,t)},pe=(e,t)=>{const a=(e=>{if(e.margin){const t=String(e.margin).split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e})(e.dom.styles.parse(t)),i=e.dom.styles.parse(e.dom.styles.serialize(a));return e.dom.styles.serialize(i)},he=e=>{const t=e.selection.getNode(),a=e.dom.getParent(t,"figure.image");return a?e.dom.select("img",a)[0]:t&&("IMG"!==t.nodeName||H(t))?null:t},be=(e,t)=>{var a;const i=e.dom,s=((t,a)=>{const i={};var s;return((e,t,a,i)=>{((e,t)=>{const a=b(e);for(let i=0,s=a.length;i{(t(e,s)?a:i)(e,s)}))})(t,((t,a)=>!e.schema.isValidChild(a,"figure")),(s=i,(e,t)=>{s[t]=e}),p),i})(e.schema.getTextBlockElements()),r=i.getParent(t.parentNode,(e=>{return t=s,a=e.nodeName,y(t,a)&&void 0!==t[a]&&null!==t[a];var t,a}),e.getBody());return r&&null!==(a=i.split(r,t))&&void 0!==a?a:t},ve=(e,t)=>{const a=((t,a)=>{const i=document.createElement("img");if(ue((t=>pe(e,t)),{...a,caption:!1},i),de(i,a.alt,a.isDecorative),a.caption){const e=W.create("figure",{class:"image"});return e.appendChild(i),e.appendChild(W.create("figcaption",{contentEditable:"true"},"Caption")),e.contentEditable="false",e}return i})(0,t);e.dom.setAttrib(a,"data-mce-id","__mcenew"),e.focus(),e.selection.setContent(a.outerHTML);const i=e.dom.select('*[data-mce-id="__mcenew"]')[0];if(e.dom.setAttrib(i,"data-mce-id",null),re(i)){const t=be(e,i);e.selection.select(t)}else e.selection.select(i)},ye=(e,t)=>{const a=he(e);if(a){const i={...ce((t=>pe(e,t)),a),...t},s=((e,t)=>{const a=t.src;return{...t,src:G(e,a)?a:""}})(e,i);i.src?((e,t)=>{const a=he(e);if(a)if(ue((t=>pe(e,t)),t,a),((e,t)=>{e.dom.setAttrib(t,"src",t.getAttribute("src"))})(e,a),re(a.parentNode)){const t=a.parentNode;be(e,t),e.selection.select(a.parentNode)}else e.selection.select(a),((e,t,a)=>{const i=()=>{a.onload=a.onerror=null,e.selection&&(e.selection.select(a),e.nodeChanged())};a.onload=()=>{t.width||t.height||!S(e)||e.dom.setAttribs(a,{width:String(a.clientWidth),height:String(a.clientHeight)}),i()},a.onerror=i})(e,t,a)})(e,s):((e,t)=>{if(t){const a=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(a),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}})(e,a)}else t.src&&ve(e,{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1,...t})},fe=(we=(e,t)=>n(e)&&n(t)?fe(e,t):t,(...e)=>{if(0===e.length)throw new Error("Can't merge zero objects");const t={};for(let a=0;ar(e.value)?e.value:"",Ce=(e,t)=>{const a=[];return De.each(e,(e=>{const i=(e=>r(e.text)?e.text:r(e.title)?e.title:"")(e);if(void 0!==e.menu){const s=Ce(e.menu,t);a.push({text:i,items:s})}else{const s=t(e);a.push({text:i,value:s})}})),a},Ie=(e=_e)=>t=>t?h.from(t).map((t=>Ce(t,e))):h.none(),Ue=(e,t)=>((e,a)=>{for(let a=0;ay(e,"items"))(i=e[a])?Ue(i.items,t):i.value===t?h.some(i):h.none();if(s.isSome())return s}var i;return h.none()})(e),xe=Ie,Se=(e,t)=>e.bind((e=>Ue(e,t))),Ne=e=>{const t=xe((t=>e.convertURL(t.value||t.url||"","src"))),a=new Promise((a=>{((e,t)=>{const a=R(e);r(a)?fetch(a).then((e=>{e.ok&&e.json().then(t)})):g(a)?a(t):t(a)})(e,(e=>{a(t(e).map((e=>w([[{text:"None",value:""}],e]))))}))})),i=(A=L(e),Ie(_e)(A)),s=N(e),o=T(e),n=(e=>U(e.options.get("images_upload_url")))(e),l=(e=>d(e.options.get("images_upload_handler")))(e),c=(e=>{const t=he(e);return t?ce((t=>pe(e,t)),t):{src:"",alt:"",title:"",width:"",height:"",class:"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:"",isDecorative:!1}})(e),m=E(e),u=j(e),p=S(e),b=M(e),v=k(e),y=z(e),f=h.some(O(e)).filter((e=>r(e)&&e.length>0));var A;return a.then((e=>({image:c,imageList:e,classList:i,hasAdvTab:s,hasUploadTab:o,hasUploadUrl:n,hasUploadHandler:l,hasDescription:m,hasImageTitle:u,hasDimensions:p,hasImageCaption:b,prependURL:f,hasAccessibilityOptions:v,automaticUploads:y})))},Te=e=>{const t=e.imageList.map((e=>({name:"images",type:"listbox",label:"Image list",items:e}))),a={name:"alt",type:"input",label:"Alternative description",enabled:!(e.hasAccessibilityOptions&&e.image.isDecorative)},i=e.classList.map((e=>({name:"classes",type:"listbox",label:"Class",items:e})));return w([[{name:"src",type:"urlinput",filetype:"image",label:"Source"}],t.toArray(),e.hasAccessibilityOptions&&e.hasDescription?[{type:"label",label:"Accessibility",items:[{name:"isDecorative",type:"checkbox",label:"Image is decorative"}]}]:[],e.hasDescription?[a]:[],e.hasImageTitle?[{name:"title",type:"input",label:"Image title"}]:[],e.hasDimensions?[{name:"dimensions",type:"sizeinput"}]:[],[{...(s=e.classList.isSome()&&e.hasImageCaption,s?{type:"grid",columns:2}:{type:"panel"}),items:w([i.toArray(),e.hasImageCaption?[{type:"label",label:"Caption",items:[{type:"checkbox",name:"caption",label:"Show caption"}]}]:[]])}]]);var s},Oe=e=>({title:"General",name:"general",items:Te(e)}),Le=Te,Ee=e=>({src:{value:e.src,meta:{}},images:e.src,alt:e.alt,title:e.title,dimensions:{width:e.width,height:e.height},classes:e.class,caption:e.caption,style:e.style,vspace:e.vspace,border:e.border,hspace:e.hspace,borderstyle:e.borderStyle,fileinput:[],isDecorative:e.isDecorative}),je=(e,t)=>({src:e.src.value,alt:null!==e.alt&&0!==e.alt.length||!t?e.alt:null,title:e.title,width:e.dimensions.width,height:e.dimensions.height,class:e.classes,style:e.style,caption:e.caption,hspace:e.hspace,vspace:e.vspace,border:e.border,borderStyle:e.borderstyle,isDecorative:e.isDecorative}),Me=(e,t,a,i)=>{((e,t)=>{const a=t.getData();((e,t)=>/^(?:[a-zA-Z]+:)?\/\//.test(t)?h.none():e.prependURL.bind((e=>t.substring(0,e.length)!==e?h.some(e+t):h.none())))(e,a.src.value).each((e=>{t.setData({src:{value:e,meta:a.src.meta}})}))})(t,i),((e,t)=>{const a=t.getData(),i=a.src.meta;if(void 0!==i){const s=fe({},a);((e,t,a)=>{e.hasDescription&&r(a.alt)&&(t.alt=a.alt),e.hasAccessibilityOptions&&(t.isDecorative=a.isDecorative||t.isDecorative||!1),e.hasImageTitle&&r(a.title)&&(t.title=a.title),e.hasDimensions&&(r(a.width)&&(t.dimensions.width=a.width),r(a.height)&&(t.dimensions.height=a.height)),r(a.class)&&Se(e.classList,a.class).each((e=>{t.classes=e.value})),e.hasImageCaption&&m(a.caption)&&(t.caption=a.caption),e.hasAdvTab&&(r(a.style)&&(t.style=a.style),r(a.vspace)&&(t.vspace=a.vspace),r(a.border)&&(t.border=a.border),r(a.hspace)&&(t.hspace=a.hspace),r(a.borderstyle)&&(t.borderstyle=a.borderstyle))})(e,s,i),t.setData(s)}})(t,i),((e,t,a,i)=>{const s=i.getData(),r=s.src.value,o=s.src.meta||{};o.width||o.height||!t.hasDimensions||(U(r)?e.imageSize(r).then((e=>{a.open&&i.setData({dimensions:e})})).catch((e=>console.error(e))):i.setData({dimensions:{width:"",height:""}}))})(e,t,a,i),((e,t,a)=>{const i=a.getData(),s=Se(e.imageList,i.src.value);t.prevImage=s,a.setData({images:s.map((e=>e.value)).getOr("")})})(t,a,i)},Re=(e,t,a,i)=>{const s=i.getData();var r;i.block("Uploading image"),(r=s.fileinput,((e,t)=>0{i.unblock()}),(s=>{const r=URL.createObjectURL(s),o=()=>{i.unblock(),URL.revokeObjectURL(r)},n=s=>{i.setData({src:{value:s,meta:{}}}),i.showTab("general"),Me(e,t,a,i)};var l;(l=s,new Promise(((e,t)=>{const a=new FileReader;a.onload=()=>{e(a.result)},a.onerror=()=>{var e;t(null===(e=a.error)||void 0===e?void 0:e.message)},a.readAsDataURL(l)}))).then((a=>{const l=e.createBlobCache(s,r,a);t.automaticUploads?e.uploadImage(l).then((e=>{n(e.url),o()})).catch((t=>{o(),e.alertErr(t)})):(e.addToBlobCache(l),n(l.blobUri()),i.unblock())}))}))},ke=(e,t,a)=>(i,s)=>{"src"===s.name?Me(e,t,a,i):"images"===s.name?((e,t,a,i)=>{const s=i.getData(),r=Se(t.imageList,s.images);r.each((e=>{const t=""===s.alt||a.prevImage.map((e=>e.text===s.alt)).getOr(!1);t?""===e.value?i.setData({src:e,alt:a.prevAlt}):i.setData({src:e,alt:e.text}):i.setData({src:e})})),a.prevImage=r,Me(e,t,a,i)})(e,t,a,i):"alt"===s.name?a.prevAlt=i.getData().alt:"fileinput"===s.name?Re(e,t,a,i):"isDecorative"===s.name&&i.setEnabled("alt",!i.getData().isDecorative)},ze=e=>()=>{e.open=!1},Pe=e=>e.hasAdvTab||e.hasUploadUrl||e.hasUploadHandler?{type:"tabpanel",tabs:w([[Oe(e)],e.hasAdvTab?[{title:"Advanced",name:"advanced",items:[{type:"grid",columns:2,items:[{type:"input",label:"Vertical space",name:"vspace",inputMode:"numeric"},{type:"input",label:"Horizontal space",name:"hspace",inputMode:"numeric"},{type:"input",label:"Border width",name:"border",inputMode:"numeric"},{type:"listbox",name:"borderstyle",label:"Border style",items:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]}]:[],e.hasUploadTab&&(e.hasUploadUrl||e.hasUploadHandler)?[{title:"Upload",name:"upload",items:[{type:"dropzone",name:"fileinput"}]}]:[]])}:{type:"panel",items:Le(e)},Be=(e,t,a)=>i=>{const s=fe(Ee(t.image),i.getData()),r={...s,style:le(a.normalizeCss,je(s,!1))};e.execCommand("mceUpdateImage",!1,je(r,t.hasAccessibilityOptions)),e.editorUpload.uploadImagesAuto(),i.close()},Fe=e=>t=>G(e,t)?(e=>new Promise((t=>{const a=document.createElement("img"),i=e=>{a.onload=a.onerror=null,a.parentNode&&a.parentNode.removeChild(a),t(e)};a.onload=()=>{const e={width:P(a.width,a.clientWidth),height:P(a.height,a.clientHeight)};i(Promise.resolve(e))},a.onerror=()=>{i(Promise.reject(`Failed to get image dimensions for: ${e}`))};const s=a.style;s.visibility="hidden",s.position="fixed",s.bottom=s.left="0px",s.width=s.height="auto",document.body.appendChild(a),a.src=e})))(e.documentBaseURI.toAbsolute(t)).then((e=>({width:String(e.width),height:String(e.height)}))):Promise.resolve({width:"",height:""}),He=e=>(t,a,i)=>{var s;return e.editorUpload.blobCache.create({blob:t,blobUri:a,name:null===(s=t.name)||void 0===s?void 0:s.replace(/\.[^\.]+$/,""),filename:t.name,base64:i.split(",")[1]})},Ge=e=>t=>{e.editorUpload.blobCache.add(t)},We=e=>t=>{e.windowManager.alert(t)},$e=e=>t=>pe(e,t),Ve=e=>t=>e.dom.parseStyle(t),Ke=e=>(t,a)=>e.dom.serializeStyle(t,a),Ze=e=>t=>Ae(e).upload([t],!1).then((e=>{var t;return 0===e.length?Promise.reject("Failed to upload image"):!1===e[0].status?Promise.reject(null===(t=e[0].error)||void 0===t?void 0:t.message):e[0]})),qe=e=>{const t={imageSize:Fe(e),addToBlobCache:Ge(e),createBlobCache:He(e),alertErr:We(e),normalizeCss:$e(e),parseStyle:Ve(e),serializeStyle:Ke(e),uploadImage:Ze(e)};return{open:()=>{Ne(e).then((a=>{const i=(e=>({prevImage:Se(e.imageList,e.image.src),prevAlt:e.image.alt,open:!0}))(a);return{title:"Insert/Edit Image",size:"normal",body:Pe(a),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:Ee(a.image),onSubmit:Be(e,a,t),onChange:ke(t,a,i),onClose:ze(i)}})).then(e.windowManager.open)}}},Je=e=>{const t=e.attr("class");return d(t)&&/\bimage\b/.test(t)},Qe=e=>t=>{let a=t.length;const i=t=>{t.attr("contenteditable",e?"true":null)};for(;a--;){const s=t[a];Je(s)&&(s.attr("contenteditable",e?"false":null),De.each(s.getAll("figcaption"),i))}};e.add("image",(e=>{(e=>{const t=e.options.Registro;t("image_dimensions",{processor:"boolean",default:!0}),t("image_advtab",{processor:"boolean",default:!1}),t("image_uploadtab",{processor:"boolean",default:!0}),t("image_prepend_url",{processor:"string",default:""}),t("image_class_list",{processor:"object[]"}),t("image_description",{processor:"boolean",default:!0}),t("image_title",{processor:"boolean",default:!1}),t("image_caption",{processor:"boolean",default:!1}),t("image_list",{processor:e=>{const t=!1===e||r(e)||((e,t)=>{if(l(e)){for(let a=0,i=e.length;a{e.on("PreInit",(()=>{e.parser.addNodeFilter("figure",Qe(!0)),e.serializer.addNodeFilter("figure",Qe(!1))}))})(e),(e=>{e.ui.registry.addToggleButton("image",{icon:"image",tooltip:"Insert/edit image",onAction:qe(e).open,onSetup:t=>(t.setActive(d(he(e))),e.selection.selectorChangedWithUnbind("img:not([data-mce-object]):not([data-mce-placeholder]),figure.image",t.setActive).unbind)}),e.ui.registry.addMenuItem("image",{icon:"image",text:"Image...",onAction:qe(e).open}),e.ui.registry.addContextMenu("image",{update:e=>re(e)||"IMG"===e.nodeName&&!H(e)?["image"]:[]})})(e),(e=>{e.addCommand("mceImage",qe(e).open),e.addCommand("mceUpdateImage",((t,a)=>{e.undoManager.transact((()=>ye(e,a)))}))})(e)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/index.js new file mode 100644 index 0000000..b78264c --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/index.js @@ -0,0 +1,7 @@ +// Exports the "importcss" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/importcss') +// ES2015: +// import 'tinymce/plugins/importcss' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.js new file mode 100644 index 0000000..d188802 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.js @@ -0,0 +1,344 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$4 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const isString = isType('string'); + const isObject = isType('object'); + const isArray = isType('array'); + const isFunction = isSimpleType('function'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.EditorManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.Env'); + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const option = name => editor => editor.options.get(name); + const Registro = editor => { + const RegistroOption = editor.options.Registro; + const filterProcessor = value => isString(value) || isFunction(value) || isObject(value); + RegistroOption('importcss_merge_classes', { + processor: 'boolean', + default: true + }); + RegistroOption('importcss_exclusive', { + processor: 'boolean', + default: true + }); + RegistroOption('importcss_selector_converter', { processor: 'function' }); + RegistroOption('importcss_selector_filter', { processor: filterProcessor }); + RegistroOption('importcss_file_filter', { processor: filterProcessor }); + RegistroOption('importcss_groups', { processor: 'object[]' }); + RegistroOption('importcss_append', { + processor: 'boolean', + default: false + }); + }; + const shouldMergeClasses = option('importcss_merge_classes'); + const shouldImportExclusive = option('importcss_exclusive'); + const getSelectorConverter = option('importcss_selector_converter'); + const getSelectorFilter = option('importcss_selector_filter'); + const getCssGroups = option('importcss_groups'); + const shouldAppend = option('importcss_append'); + const getFileFilter = option('importcss_file_filter'); + const getSkin = option('skin'); + const getSkinUrl = option('skin_url'); + + const nativePush = Array.prototype.push; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind = (xs, f) => flatten(map(xs, f)); + + const generate = () => { + const ungroupedOrder = []; + const groupOrder = []; + const groups = {}; + const addItemToGroup = (groupTitle, itemInfo) => { + if (groups[groupTitle]) { + groups[groupTitle].push(itemInfo); + } else { + groupOrder.push(groupTitle); + groups[groupTitle] = [itemInfo]; + } + }; + const addItem = itemInfo => { + ungroupedOrder.push(itemInfo); + }; + const toFormats = () => { + const groupItems = bind(groupOrder, g => { + const items = groups[g]; + return items.length === 0 ? [] : [{ + title: g, + items + }]; + }); + return groupItems.concat(ungroupedOrder); + }; + return { + addItemToGroup, + addItem, + toFormats + }; + }; + + const internalEditorStyle = /^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/; + const removeCacheSuffix = url => { + const cacheSuffix = global$1.cacheSuffix; + if (isString(url)) { + url = url.replace('?' + cacheSuffix, '').replace('&' + cacheSuffix, ''); + } + return url; + }; + const isSkinContentCss = (editor, href) => { + const skin = getSkin(editor); + if (skin) { + const skinUrlBase = getSkinUrl(editor); + const skinUrl = skinUrlBase ? editor.documentBaseURI.toAbsolute(skinUrlBase) : global$2.baseURL + '/skins/ui/' + skin; + const contentSkinUrlPart = global$2.baseURL + '/skins/content/'; + return href === skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css' || href.indexOf(contentSkinUrlPart) !== -1; + } + return false; + }; + const compileFilter = filter => { + if (isString(filter)) { + return value => { + return value.indexOf(filter) !== -1; + }; + } else if (filter instanceof RegExp) { + return value => { + return filter.test(value); + }; + } + return filter; + }; + const isCssImportRule = rule => rule.styleSheet; + const isCssPageRule = rule => rule.selectorText; + const getSelectors = (editor, doc, fileFilter) => { + const selectors = []; + const contentCSSUrls = {}; + const append = (styleSheet, imported) => { + let href = styleSheet.href; + let rules; + href = removeCacheSuffix(href); + if (!href || fileFilter && !fileFilter(href, imported) || isSkinContentCss(editor, href)) { + return; + } + global.each(styleSheet.imports, styleSheet => { + append(styleSheet, true); + }); + try { + rules = styleSheet.cssRules || styleSheet.rules; + } catch (e) { + } + global.each(rules, cssRule => { + if (isCssImportRule(cssRule)) { + append(cssRule.styleSheet, true); + } else if (isCssPageRule(cssRule)) { + global.each(cssRule.selectorText.split(','), selector => { + selectors.push(global.trim(selector)); + }); + } + }); + }; + global.each(editor.contentCSS, url => { + contentCSSUrls[url] = true; + }); + if (!fileFilter) { + fileFilter = (href, imported) => { + return imported || contentCSSUrls[href]; + }; + } + try { + global.each(doc.styleSheets, styleSheet => { + append(styleSheet); + }); + } catch (e) { + } + return selectors; + }; + const defaultConvertSelectorToFormat = (editor, selectorText) => { + let format = {}; + const selector = /^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(selectorText); + if (!selector) { + return; + } + const elementName = selector[1]; + const classes = selector[2].substr(1).split('.').join(' '); + const inlineSelectorElements = global.makeMap('a,img'); + if (selector[1]) { + format = { title: selectorText }; + if (editor.schema.getTextBlockElements()[elementName]) { + format.block = elementName; + } else if (editor.schema.getBlockElements()[elementName] || inlineSelectorElements[elementName.toLowerCase()]) { + format.selector = elementName; + } else { + format.inline = elementName; + } + } else if (selector[2]) { + format = { + inline: 'span', + title: selectorText.substr(1), + classes + }; + } + if (shouldMergeClasses(editor)) { + format.classes = classes; + } else { + format.attributes = { class: classes }; + } + return format; + }; + const getGroupsBySelector = (groups, selector) => { + return global.grep(groups, group => { + return !group.filter || group.filter(selector); + }); + }; + const compileUserDefinedGroups = groups => { + return global.map(groups, group => { + return global.extend({}, group, { + original: group, + selectors: {}, + filter: compileFilter(group.filter) + }); + }); + }; + const isExclusiveMode = (editor, group) => { + return group === null || shouldImportExclusive(editor); + }; + const isUniqueSelector = (editor, selector, group, globallyUniqueSelectors) => { + return !(isExclusiveMode(editor, group) ? selector in globallyUniqueSelectors : selector in group.selectors); + }; + const markUniqueSelector = (editor, selector, group, globallyUniqueSelectors) => { + if (isExclusiveMode(editor, group)) { + globallyUniqueSelectors[selector] = true; + } else { + group.selectors[selector] = true; + } + }; + const convertSelectorToFormat = (editor, plugin, selector, group) => { + let selectorConverter; + const converter = getSelectorConverter(editor); + if (group && group.selector_converter) { + selectorConverter = group.selector_converter; + } else if (converter) { + selectorConverter = converter; + } else { + selectorConverter = () => { + return defaultConvertSelectorToFormat(editor, selector); + }; + } + return selectorConverter.call(plugin, selector, group); + }; + const setup = editor => { + editor.on('init', () => { + const model = generate(); + const globallyUniqueSelectors = {}; + const selectorFilter = compileFilter(getSelectorFilter(editor)); + const groups = compileUserDefinedGroups(getCssGroups(editor)); + const processSelector = (selector, group) => { + if (isUniqueSelector(editor, selector, group, globallyUniqueSelectors)) { + markUniqueSelector(editor, selector, group, globallyUniqueSelectors); + const format = convertSelectorToFormat(editor, editor.plugins.importcss, selector, group); + if (format) { + const formatName = format.name || global$3.DOM.uniqueId(); + editor.formatter.Registro(formatName, format); + return { + title: format.title, + format: formatName + }; + } + } + return null; + }; + global.each(getSelectors(editor, editor.getDoc(), compileFilter(getFileFilter(editor))), selector => { + if (!internalEditorStyle.test(selector)) { + if (!selectorFilter || selectorFilter(selector)) { + const selectorGroups = getGroupsBySelector(groups, selector); + if (selectorGroups.length > 0) { + global.each(selectorGroups, group => { + const menuItem = processSelector(selector, group); + if (menuItem) { + model.addItemToGroup(group.title, menuItem); + } + }); + } else { + const menuItem = processSelector(selector, null); + if (menuItem) { + model.addItem(menuItem); + } + } + } + } + }); + const items = model.toFormats(); + editor.dispatch('addStyleModifications', { + items, + replace: !shouldAppend(editor) + }); + }); + }; + + const get = editor => { + const convertSelectorToFormat = selectorText => { + return defaultConvertSelectorToFormat(editor, selectorText); + }; + return { convertSelectorToFormat }; + }; + + var Plugin = () => { + global$4.add('importcss', editor => { + Registro(editor); + setup(editor); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.min.js new file mode 100644 index 0000000..a6bde63 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/importcss/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=("function",e=>"function"==typeof e);var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),_=p("importcss_file_filter"),g=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),w=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;s{const s=e.length,r=new Array(s);for(let o=0;oa.map(e,(e=>a.extend({},e,{original:e,selectors:{},filter:T(e.filter)}))))(d(e)),u=(t,s)=>{if(((e,t,s,r)=>!(k(e,s)?t in r:t in s.selectors))(e,t,s,r)){((e,t,s,r)=>{k(e,s)?r[t]=!0:s.selectors[t]=!0})(e,t,s,r);const o=((e,t,s,r)=>{let o;const n=f(e);return o=r&&r.selector_converter?r.selector_converter:n||(()=>S(e,s)),o.call(t,s,r)})(e,e.plugins.importcss,t,s);if(o){const t=o.name||c.DOM.uniqueId();return e.formatter.Registro(t,o),{title:o.title,format:t}}}return null};a.each(((e,t,r)=>{const o=[],n={},c=(t,n)=>{let p,u=t.href;if(u=(e=>{const t=l.cacheSuffix;return s(e)&&(e=e.replace("?"+t,"").replace("&"+t,"")),e})(u),u&&(!r||r(u,n))&&!((e,t)=>{const s=g(e);if(s){const r=v(e),o=r?e.documentBaseURI.toAbsolute(r):i.baseURL+"/skins/ui/"+s,n=i.baseURL+"/skins/content/";return t===o+"/content"+(e.inline?".inline":"")+".min.css"||-1!==t.indexOf(n)}return!1})(e,u)){a.each(t.imports,(e=>{c(e,!0)}));try{p=t.cssRules||t.rules}catch(e){}a.each(p,(e=>{e.styleSheet?c(e.styleSheet,!0):e.selectorText&&a.each(e.selectorText.split(","),(e=>{o.push(a.trim(e))}))}))}};a.each(e.contentCSS,(e=>{n[e]=!0})),r||(r=(e,t)=>t||n[e]);try{a.each(t.styleSheets,(e=>{c(e)}))}catch(e){}return o})(e,e.getDoc(),T(_(e))),(e=>{if(!x.test(e)&&(!n||n(e))){const s=((e,t)=>a.grep(e,(e=>!e.filter||e.filter(t))))(p,e);if(s.length>0)a.each(s,(s=>{const r=u(e,s);r&&t.addItemToGroup(s.title,r)}));else{const s=u(e,null);s&&t.addItem(s)}}}));const m=t.toFormats();e.dispatch("addStyleModifications",{items:m,replace:!h(e)})}))};e.add("importcss",(e=>((e=>{const t=e.options.Registro,o=e=>s(e)||n(e)||r(e);t("importcss_merge_classes",{processor:"boolean",default:!0}),t("importcss_exclusive",{processor:"boolean",default:!0}),t("importcss_selector_converter",{processor:"function"}),t("importcss_selector_filter",{processor:o}),t("importcss_file_filter",{processor:o}),t("importcss_groups",{processor:"object[]"}),t("importcss_append",{processor:"boolean",default:!1})})(e),w(e),(e=>({convertSelectorToFormat:t=>S(e,t)}))(e))))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/index.js new file mode 100644 index 0000000..22a7f6e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/index.js @@ -0,0 +1,7 @@ +// Exports the "insertdatetime" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/insertdatetime') +// ES2015: +// import 'tinymce/plugins/insertdatetime' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.js new file mode 100644 index 0000000..f3a58db --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.js @@ -0,0 +1,175 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('insertdatetime_dateformat', { + processor: 'string', + default: editor.translate('%Y-%m-%d') + }); + RegistroOption('insertdatetime_timeformat', { + processor: 'string', + default: editor.translate('%H:%M:%S') + }); + RegistroOption('insertdatetime_formats', { + processor: 'string[]', + default: [ + '%H:%M:%S', + '%Y-%m-%d', + '%I:%M:%S %p', + '%D' + ] + }); + RegistroOption('insertdatetime_element', { + processor: 'boolean', + default: false + }); + }; + const getDateFormat = option('insertdatetime_dateformat'); + const getTimeFormat = option('insertdatetime_timeformat'); + const getFormats = option('insertdatetime_formats'); + const shouldInsertTimeElement = option('insertdatetime_element'); + const getDefaultDateTime = editor => { + const formats = getFormats(editor); + return formats.length > 0 ? formats[0] : getTimeFormat(editor); + }; + + const daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' '); + const daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' '); + const monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '); + const monthsLong = 'January February March April May June July August September October November December'.split(' '); + const addZeros = (value, len) => { + value = '' + value; + if (value.length < len) { + for (let i = 0; i < len - value.length; i++) { + value = '0' + value; + } + } + return value; + }; + const getDateTime = (editor, fmt, date = new Date()) => { + fmt = fmt.replace('%D', '%m/%d/%Y'); + fmt = fmt.replace('%r', '%I:%M:%S %p'); + fmt = fmt.replace('%Y', '' + date.getFullYear()); + fmt = fmt.replace('%y', '' + date.getYear()); + fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2)); + fmt = fmt.replace('%d', addZeros(date.getDate(), 2)); + fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2)); + fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2)); + fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2)); + fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1)); + fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM')); + fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()])); + fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()])); + fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()])); + fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()])); + fmt = fmt.replace('%%', '%'); + return fmt; + }; + const updateElement = (editor, timeElm, computerTime, userTime) => { + const newTimeElm = editor.dom.create('time', { datetime: computerTime }, userTime); + editor.dom.replace(newTimeElm, timeElm); + editor.selection.select(newTimeElm, true); + editor.selection.collapse(false); + }; + const insertDateTime = (editor, format) => { + if (shouldInsertTimeElement(editor)) { + const userTime = getDateTime(editor, format); + let computerTime; + if (/%[HMSIp]/.test(format)) { + computerTime = getDateTime(editor, '%Y-%m-%dT%H:%M'); + } else { + computerTime = getDateTime(editor, '%Y-%m-%d'); + } + const timeElm = editor.dom.getParent(editor.selection.getStart(), 'time'); + if (timeElm) { + updateElement(editor, timeElm, computerTime, userTime); + } else { + editor.insertContent(''); + } + } else { + editor.insertContent(getDateTime(editor, format)); + } + }; + + const Registro$1 = editor => { + editor.addCommand('mceInsertDate', (_ui, value) => { + insertDateTime(editor, value !== null && value !== void 0 ? value : getDateFormat(editor)); + }); + editor.addCommand('mceInsertTime', (_ui, value) => { + insertDateTime(editor, value !== null && value !== void 0 ? value : getTimeFormat(editor)); + }); + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + var global = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const Registro = editor => { + const formats = getFormats(editor); + const defaultFormat = Cell(getDefaultDateTime(editor)); + const insertDateTime = format => editor.execCommand('mceInsertDate', false, format); + editor.ui.registry.addSplitButton('insertdatetime', { + icon: 'insert-time', + tooltip: 'Insert date/time', + select: value => value === defaultFormat.get(), + fetch: done => { + done(global.map(formats, format => ({ + type: 'choiceitem', + text: getDateTime(editor, format), + value: format + }))); + }, + onAction: _api => { + insertDateTime(defaultFormat.get()); + }, + onItemAction: (_api, value) => { + defaultFormat.set(value); + insertDateTime(value); + } + }); + const makeMenuItemHandler = format => () => { + defaultFormat.set(format); + insertDateTime(format); + }; + editor.ui.registry.addNestedMenuItem('insertdatetime', { + icon: 'insert-time', + text: 'Date/time', + getSubmenuItems: () => global.map(formats, format => ({ + type: 'menuitem', + text: getDateTime(editor, format), + onAction: makeMenuItemHandler(format) + })) + }); + }; + + var Plugin = () => { + global$1.add('insertdatetime', editor => { + Registro$2(editor); + Registro$1(editor); + Registro(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.min.js new file mode 100644 index 0000000..e036a75 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/insertdatetime/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),a=t("insertdatetime_dateformat"),r=t("insertdatetime_timeformat"),n=t("insertdatetime_formats"),s=t("insertdatetime_element"),i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),l="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),c=(e,t)=>{if((e=""+e).length(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",c(a.getMonth()+1,2))).replace("%d",c(a.getDate(),2))).replace("%H",""+c(a.getHours(),2))).replace("%M",""+c(a.getMinutes(),2))).replace("%S",""+c(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(m[a.getMonth()]))).replace("%b",""+e.translate(l[a.getMonth()]))).replace("%A",""+e.translate(o[a.getDay()]))).replace("%a",""+e.translate(i[a.getDay()]))).replace("%%","%"),u=(e,t)=>{if(s(e)){const a=d(e,t);let r;r=/%[HMSIp]/.test(t)?d(e,"%Y-%m-%dT%H:%M"):d(e,"%Y-%m-%d");const n=e.dom.getParent(e.selection.getStart(),"time");n?((e,t,a,r)=>{const n=e.dom.create("time",{datetime:a},r);e.dom.replace(n,t),e.selection.select(n,!0),e.selection.collapse(!1)})(e,n,r,a):e.insertContent('")}else e.insertContent(d(e,t))};var p=tinymce.util.Tools.resolve("tinymce.util.Tools");e.add("insertdatetime",(e=>{(e=>{const t=e.options.Registro;t("insertdatetime_dateformat",{processor:"string",default:e.translate("%Y-%m-%d")}),t("insertdatetime_timeformat",{processor:"string",default:e.translate("%H:%M:%S")}),t("insertdatetime_formats",{processor:"string[]",default:["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"]}),t("insertdatetime_element",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mceInsertDate",((t,r)=>{u(e,null!=r?r:a(e))})),e.addCommand("mceInsertTime",((t,a)=>{u(e,null!=a?a:r(e))}))})(e),(e=>{const t=n(e),a=(e=>{let t=e;return{get:()=>t,set:e=>{t=e}}})((e=>{const t=n(e);return t.length>0?t[0]:r(e)})(e)),s=t=>e.execCommand("mceInsertDate",!1,t);e.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:e=>e===a.get(),fetch:a=>{a(p.map(t,(t=>({type:"choiceitem",text:d(e,t),value:t}))))},onAction:e=>{s(a.get())},onItemAction:(e,t)=>{a.set(t),s(t)}});const i=e=>()=>{a.set(e),s(e)};e.ui.registry.addNestedMenuItem("insertdatetime",{icon:"insert-time",text:"Date/time",getSubmenuItems:()=>p.map(t,(t=>({type:"menuitem",text:d(e,t),onAction:i(t)})))})})(e)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/link/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/index.js new file mode 100644 index 0000000..ff52930 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/index.js @@ -0,0 +1,7 @@ +// Exports the "link" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/link') +// ES2015: +// import 'tinymce/plugins/link' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.js new file mode 100644 index 0000000..7f28361 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.js @@ -0,0 +1,1213 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const eq = t => a => t === a; + const isString = isType('string'); + const isObject = isType('object'); + const isArray = isType('array'); + const isNull = eq(null); + const isBoolean = isSimpleType('boolean'); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isArrayOf = (value, pred) => { + if (isArray(value)) { + for (let i = 0, len = value.length; i < len; ++i) { + if (!pred(value[i])) { + return false; + } + } + return true; + } + return false; + }; + + const noop = () => { + }; + const constant = value => { + return () => { + return value; + }; + }; + const tripleEquals = (a, b) => { + return a === b; + }; + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativeIndexOf = Array.prototype.indexOf; + const nativePush = Array.prototype.push; + const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t); + const contains = (xs, x) => rawIndexOf(xs, x) > -1; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each$1 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const foldl = (xs, f, acc) => { + each$1(xs, (x, i) => { + acc = f(acc, x, i); + }); + return acc; + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind = (xs, f) => flatten(map(xs, f)); + const findMap = (arr, f) => { + for (let i = 0; i < arr.length; i++) { + const r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Optional.none(); + }; + + const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs)); + const cat = arr => { + const r = []; + const push = x => { + r.push(x); + }; + for (let i = 0; i < arr.length; i++) { + arr[i].each(push); + } + return r; + }; + const someIf = (b, a) => b ? Optional.some(a) : Optional.none(); + + const option = name => editor => editor.options.get(name); + const Registro$1 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('link_assume_external_targets', { + processor: value => { + const valid = isString(value) || isBoolean(value); + if (valid) { + if (value === true) { + return { + value: 1, + valid + }; + } else if (value === 'http' || value === 'https') { + return { + value, + valid + }; + } else { + return { + value: 0, + valid + }; + } + } else { + return { + valid: false, + message: 'Must be a string or a boolean.' + }; + } + }, + default: false + }); + RegistroOption('link_context_toolbar', { + processor: 'boolean', + default: false + }); + RegistroOption('link_list', { processor: value => isString(value) || isFunction(value) || isArrayOf(value, isObject) }); + RegistroOption('link_default_target', { processor: 'string' }); + RegistroOption('link_default_protocol', { + processor: 'string', + default: 'https' + }); + RegistroOption('link_target_list', { + processor: value => isBoolean(value) || isArrayOf(value, isObject), + default: true + }); + RegistroOption('link_rel_list', { + processor: 'object[]', + default: [] + }); + RegistroOption('link_class_list', { + processor: 'object[]', + default: [] + }); + RegistroOption('link_title', { + processor: 'boolean', + default: true + }); + RegistroOption('allow_unsafe_link_target', { + processor: 'boolean', + default: false + }); + RegistroOption('link_quicklink', { + processor: 'boolean', + default: false + }); + }; + const assumeExternalTargets = option('link_assume_external_targets'); + const hasContextToolbar = option('link_context_toolbar'); + const getLinkList = option('link_list'); + const getDefaultLinkTarget = option('link_default_target'); + const getDefaultLinkProtocol = option('link_default_protocol'); + const getTargetList = option('link_target_list'); + const getRelList = option('link_rel_list'); + const getLinkClassList = option('link_class_list'); + const shouldShowLinkTitle = option('link_title'); + const allowUnsafeLinkTarget = option('allow_unsafe_link_target'); + const useQuickLink = option('link_quicklink'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const getValue = item => isString(item.value) ? item.value : ''; + const getText = item => { + if (isString(item.text)) { + return item.text; + } else if (isString(item.title)) { + return item.title; + } else { + return ''; + } + }; + const sanitizeList = (list, extractValue) => { + const out = []; + global$4.each(list, item => { + const text = getText(item); + if (item.menu !== undefined) { + const items = sanitizeList(item.menu, extractValue); + out.push({ + text, + items + }); + } else { + const value = extractValue(item); + out.push({ + text, + value + }); + } + }); + return out; + }; + const sanitizeWith = (extracter = getValue) => list => Optional.from(list).map(list => sanitizeList(list, extracter)); + const sanitize = list => sanitizeWith(getValue)(list); + const createUi = (name, label) => items => ({ + name, + type: 'listbox', + label, + items + }); + const ListOptions = { + sanitize, + sanitizeWith, + createUi, + getValue + }; + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const objAcc = r => (x, i) => { + r[i] = x; + }; + const internalFilter = (obj, pred, onTrue, onFalse) => { + each(obj, (x, i) => { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + }; + const filter = (obj, pred) => { + const t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + const has = (obj, key) => hasOwnProperty.call(obj, key); + const hasNonNullableKey = (obj, key) => has(obj, key) && obj[key] !== undefined && obj[key] !== null; + + var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.URI'); + + const isAnchor = elm => isNonNullable(elm) && elm.nodeName.toLowerCase() === 'a'; + const isLink = elm => isAnchor(elm) && !!getHref(elm); + const collectNodesInRange = (rng, predicate) => { + if (rng.collapsed) { + return []; + } else { + const contents = rng.cloneContents(); + const firstChild = contents.firstChild; + const walker = new global$3(firstChild, contents); + const elements = []; + let current = firstChild; + do { + if (predicate(current)) { + elements.push(current); + } + } while (current = walker.next()); + return elements; + } + }; + const hasProtocol = url => /^\w+:/i.test(url); + const getHref = elm => { + var _a, _b; + return (_b = (_a = elm.getAttribute('data-mce-href')) !== null && _a !== void 0 ? _a : elm.getAttribute('href')) !== null && _b !== void 0 ? _b : ''; + }; + const applyRelTargetRules = (rel, isUnsafe) => { + const rules = ['noopener']; + const rels = rel ? rel.split(/\s+/) : []; + const toString = rels => global$4.trim(rels.sort().join(' ')); + const addTargetRules = rels => { + rels = removeTargetRules(rels); + return rels.length > 0 ? rels.concat(rules) : rules; + }; + const removeTargetRules = rels => rels.filter(val => global$4.inArray(rules, val) === -1); + const newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels); + return newRels.length > 0 ? toString(newRels) : ''; + }; + const trimCaretContainers = text => text.replace(/\uFEFF/g, ''); + const getAnchorElement = (editor, selectedElm) => { + selectedElm = selectedElm || editor.selection.getNode(); + if (isImageFigure(selectedElm)) { + return Optional.from(editor.dom.select('a[href]', selectedElm)[0]); + } else { + return Optional.from(editor.dom.getParent(selectedElm, 'a[href]')); + } + }; + const isInAnchor = (editor, selectedElm) => getAnchorElement(editor, selectedElm).isSome(); + const getAnchorText = (selection, anchorElm) => { + const text = anchorElm.fold(() => selection.getContent({ format: 'text' }), anchorElm => anchorElm.innerText || anchorElm.textContent || ''); + return trimCaretContainers(text); + }; + const hasLinks = elements => global$4.grep(elements, isLink).length > 0; + const hasLinksInSelection = rng => collectNodesInRange(rng, isLink).length > 0; + const isOnlyTextSelected = editor => { + const inlineTextElements = editor.schema.getTextInlineElements(); + const isElement = elm => elm.nodeType === 1 && !isAnchor(elm) && !has(inlineTextElements, elm.nodeName.toLowerCase()); + const isInBlockAnchor = getAnchorElement(editor).exists(anchor => anchor.hasAttribute('data-mce-block')); + if (isInBlockAnchor) { + return false; + } + const rng = editor.selection.getRng(); + if (!rng.collapsed) { + const elements = collectNodesInRange(rng, isElement); + return elements.length === 0; + } else { + return true; + } + }; + const isImageFigure = elm => isNonNullable(elm) && elm.nodeName === 'FIGURE' && /\bimage\b/i.test(elm.className); + const getLinkAttrs = data => { + const attrs = [ + 'title', + 'rel', + 'class', + 'target' + ]; + return foldl(attrs, (acc, key) => { + data[key].each(value => { + acc[key] = value.length > 0 ? value : null; + }); + return acc; + }, { href: data.href }); + }; + const handleExternalTargets = (href, assumeExternalTargets) => { + if ((assumeExternalTargets === 'http' || assumeExternalTargets === 'https') && !hasProtocol(href)) { + return assumeExternalTargets + '://' + href; + } + return href; + }; + const applyLinkOverrides = (editor, linkAttrs) => { + const newLinkAttrs = { ...linkAttrs }; + if (getRelList(editor).length === 0 && !allowUnsafeLinkTarget(editor)) { + const newRel = applyRelTargetRules(newLinkAttrs.rel, newLinkAttrs.target === '_blank'); + newLinkAttrs.rel = newRel ? newRel : null; + } + if (Optional.from(newLinkAttrs.target).isNone() && getTargetList(editor) === false) { + newLinkAttrs.target = getDefaultLinkTarget(editor); + } + newLinkAttrs.href = handleExternalTargets(newLinkAttrs.href, assumeExternalTargets(editor)); + return newLinkAttrs; + }; + const updateLink = (editor, anchorElm, text, linkAttrs) => { + text.each(text => { + if (has(anchorElm, 'innerText')) { + anchorElm.innerText = text; + } else { + anchorElm.textContent = text; + } + }); + editor.dom.setAttribs(anchorElm, linkAttrs); + editor.selection.select(anchorElm); + }; + const createLink = (editor, selectedElm, text, linkAttrs) => { + const dom = editor.dom; + if (isImageFigure(selectedElm)) { + linkImageFigure(dom, selectedElm, linkAttrs); + } else { + text.fold(() => { + editor.execCommand('mceInsertLink', false, linkAttrs); + }, text => { + editor.insertContent(dom.createHTML('a', linkAttrs, dom.encode(text))); + }); + } + }; + const linkDomMutation = (editor, attachState, data) => { + const selectedElm = editor.selection.getNode(); + const anchorElm = getAnchorElement(editor, selectedElm); + const linkAttrs = applyLinkOverrides(editor, getLinkAttrs(data)); + editor.undoManager.transact(() => { + if (data.href === attachState.href) { + attachState.attach(); + } + anchorElm.fold(() => { + createLink(editor, selectedElm, data.text, linkAttrs); + }, elm => { + editor.focus(); + updateLink(editor, elm, data.text, linkAttrs); + }); + }); + }; + const unlinkSelection = editor => { + const dom = editor.dom, selection = editor.selection; + const bookmark = selection.getBookmark(); + const rng = selection.getRng().cloneRange(); + const startAnchorElm = dom.getParent(rng.startContainer, 'a[href]', editor.getBody()); + const endAnchorElm = dom.getParent(rng.endContainer, 'a[href]', editor.getBody()); + if (startAnchorElm) { + rng.setStartBefore(startAnchorElm); + } + if (endAnchorElm) { + rng.setEndAfter(endAnchorElm); + } + selection.setRng(rng); + editor.execCommand('unlink'); + selection.moveToBookmark(bookmark); + }; + const unlinkDomMutation = editor => { + editor.undoManager.transact(() => { + const node = editor.selection.getNode(); + if (isImageFigure(node)) { + unlinkImageFigure(editor, node); + } else { + unlinkSelection(editor); + } + editor.focus(); + }); + }; + const unwrapOptions = data => { + const { + class: cls, + href, + rel, + target, + text, + title + } = data; + return filter({ + class: cls.getOrNull(), + href, + rel: rel.getOrNull(), + target: target.getOrNull(), + text: text.getOrNull(), + title: title.getOrNull() + }, (v, _k) => isNull(v) === false); + }; + const sanitizeData = (editor, data) => { + const getOption = editor.options.get; + const uriOptions = { + allow_html_data_urls: getOption('allow_html_data_urls'), + allow_script_urls: getOption('allow_script_urls'), + allow_svg_data_urls: getOption('allow_svg_data_urls') + }; + const href = data.href; + return { + ...data, + href: global$2.isDomSafe(href, 'a', uriOptions) ? href : '' + }; + }; + const link = (editor, attachState, data) => { + const sanitizedData = sanitizeData(editor, data); + editor.hasPlugin('rtc', true) ? editor.execCommand('createlink', false, unwrapOptions(sanitizedData)) : linkDomMutation(editor, attachState, sanitizedData); + }; + const unlink = editor => { + editor.hasPlugin('rtc', true) ? editor.execCommand('unlink') : unlinkDomMutation(editor); + }; + const unlinkImageFigure = (editor, fig) => { + var _a; + const img = editor.dom.select('img', fig)[0]; + if (img) { + const a = editor.dom.getParents(img, 'a[href]', fig)[0]; + if (a) { + (_a = a.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(img, a); + editor.dom.remove(a); + } + } + }; + const linkImageFigure = (dom, fig, attrs) => { + var _a; + const img = dom.select('img', fig)[0]; + if (img) { + const a = dom.create('a', attrs); + (_a = img.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(a, img); + a.appendChild(img); + } + }; + + const isListGroup = item => hasNonNullableKey(item, 'items'); + const findTextByValue = (value, catalog) => findMap(catalog, item => { + if (isListGroup(item)) { + return findTextByValue(value, item.items); + } else { + return someIf(item.value === value, item); + } + }); + const getDelta = (persistentText, fieldName, catalog, data) => { + const value = data[fieldName]; + const hasPersistentText = persistentText.length > 0; + return value !== undefined ? findTextByValue(value, catalog).map(i => ({ + url: { + value: i.value, + meta: { + text: hasPersistentText ? persistentText : i.text, + attach: noop + } + }, + text: hasPersistentText ? persistentText : i.text + })) : Optional.none(); + }; + const findCatalog = (catalogs, fieldName) => { + if (fieldName === 'link') { + return catalogs.link; + } else if (fieldName === 'anchor') { + return catalogs.anchor; + } else { + return Optional.none(); + } + }; + const init = (initialData, linkCatalog) => { + const persistentData = { + text: initialData.text, + title: initialData.title + }; + const getTitleFromUrlChange = url => { + var _a; + return someIf(persistentData.title.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.title).getOr('')); + }; + const getTextFromUrlChange = url => { + var _a; + return someIf(persistentData.text.length <= 0, Optional.from((_a = url.meta) === null || _a === void 0 ? void 0 : _a.text).getOr(url.value)); + }; + const onUrlChange = data => { + const text = getTextFromUrlChange(data.url); + const title = getTitleFromUrlChange(data.url); + if (text.isSome() || title.isSome()) { + return Optional.some({ + ...text.map(text => ({ text })).getOr({}), + ...title.map(title => ({ title })).getOr({}) + }); + } else { + return Optional.none(); + } + }; + const onCatalogChange = (data, change) => { + const catalog = findCatalog(linkCatalog, change).getOr([]); + return getDelta(persistentData.text, change, catalog, data); + }; + const onChange = (getData, change) => { + const name = change.name; + if (name === 'url') { + return onUrlChange(getData()); + } else if (contains([ + 'anchor', + 'link' + ], name)) { + return onCatalogChange(getData(), name); + } else if (name === 'text' || name === 'title') { + persistentData[name] = getData()[name]; + return Optional.none(); + } else { + return Optional.none(); + } + }; + return { onChange }; + }; + const DialogChanges = { + init, + getDelta + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + const delayedConfirm = (editor, message, callback) => { + const rng = editor.selection.getRng(); + global$1.setEditorTimeout(editor, () => { + editor.windowManager.confirm(message, state => { + editor.selection.setRng(rng); + callback(state); + }); + }); + }; + const tryEmailTransform = data => { + const url = data.href; + const suggestMailTo = url.indexOf('@') > 0 && url.indexOf('/') === -1 && url.indexOf('mailto:') === -1; + return suggestMailTo ? Optional.some({ + message: 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', + preprocess: oldData => ({ + ...oldData, + href: 'mailto:' + url + }) + }) : Optional.none(); + }; + const tryProtocolTransform = (assumeExternalTargets, defaultLinkProtocol) => data => { + const url = data.href; + const suggestProtocol = assumeExternalTargets === 1 && !hasProtocol(url) || assumeExternalTargets === 0 && /^\s*www(\.|\d\.)/i.test(url); + return suggestProtocol ? Optional.some({ + message: `The URL you entered seems to be an external link. Do you want to add the required ${ defaultLinkProtocol }:// prefix?`, + preprocess: oldData => ({ + ...oldData, + href: defaultLinkProtocol + '://' + url + }) + }) : Optional.none(); + }; + const preprocess = (editor, data) => findMap([ + tryEmailTransform, + tryProtocolTransform(assumeExternalTargets(editor), getDefaultLinkProtocol(editor)) + ], f => f(data)).fold(() => Promise.resolve(data), transform => new Promise(callback => { + delayedConfirm(editor, transform.message, state => { + callback(state ? transform.preprocess(data) : data); + }); + })); + const DialogConfirms = { preprocess }; + + const getAnchors = editor => { + const anchorNodes = editor.dom.select('a:not([href])'); + const anchors = bind(anchorNodes, anchor => { + const id = anchor.name || anchor.id; + return id ? [{ + text: id, + value: '#' + id + }] : []; + }); + return anchors.length > 0 ? Optional.some([{ + text: 'None', + value: '' + }].concat(anchors)) : Optional.none(); + }; + const AnchorListOptions = { getAnchors }; + + const getClasses = editor => { + const list = getLinkClassList(editor); + if (list.length > 0) { + return ListOptions.sanitize(list); + } + return Optional.none(); + }; + const ClassListOptions = { getClasses }; + + const parseJson = text => { + try { + return Optional.some(JSON.parse(text)); + } catch (err) { + return Optional.none(); + } + }; + const getLinks = editor => { + const extractor = item => editor.convertURL(item.value || item.url || '', 'href'); + const linkList = getLinkList(editor); + return new Promise(resolve => { + if (isString(linkList)) { + fetch(linkList).then(res => res.ok ? res.text().then(parseJson) : Promise.reject()).then(resolve, () => resolve(Optional.none())); + } else if (isFunction(linkList)) { + linkList(output => resolve(Optional.some(output))); + } else { + resolve(Optional.from(linkList)); + } + }).then(optItems => optItems.bind(ListOptions.sanitizeWith(extractor)).map(items => { + if (items.length > 0) { + const noneItem = [{ + text: 'None', + value: '' + }]; + return noneItem.concat(items); + } else { + return items; + } + })); + }; + const LinkListOptions = { getLinks }; + + const getRels = (editor, initialTarget) => { + const list = getRelList(editor); + if (list.length > 0) { + const isTargetBlank = is(initialTarget, '_blank'); + const enforceSafe = allowUnsafeLinkTarget(editor) === false; + const safeRelExtractor = item => applyRelTargetRules(ListOptions.getValue(item), isTargetBlank); + const sanitizer = enforceSafe ? ListOptions.sanitizeWith(safeRelExtractor) : ListOptions.sanitize; + return sanitizer(list); + } + return Optional.none(); + }; + const RelOptions = { getRels }; + + const fallbacks = [ + { + text: 'Current window', + value: '' + }, + { + text: 'New window', + value: '_blank' + } + ]; + const getTargets = editor => { + const list = getTargetList(editor); + if (isArray(list)) { + return ListOptions.sanitize(list).orThunk(() => Optional.some(fallbacks)); + } else if (list === false) { + return Optional.none(); + } + return Optional.some(fallbacks); + }; + const TargetOptions = { getTargets }; + + const nonEmptyAttr = (dom, elem, name) => { + const val = dom.getAttrib(elem, name); + return val !== null && val.length > 0 ? Optional.some(val) : Optional.none(); + }; + const extractFromAnchor = (editor, anchor) => { + const dom = editor.dom; + const onlyText = isOnlyTextSelected(editor); + const text = onlyText ? Optional.some(getAnchorText(editor.selection, anchor)) : Optional.none(); + const url = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'href'))); + const target = anchor.bind(anchorElm => Optional.from(dom.getAttrib(anchorElm, 'target'))); + const rel = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'rel')); + const linkClass = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'class')); + const title = anchor.bind(anchorElm => nonEmptyAttr(dom, anchorElm, 'title')); + return { + url, + text, + title, + target, + rel, + linkClass + }; + }; + const collect = (editor, linkNode) => LinkListOptions.getLinks(editor).then(links => { + const anchor = extractFromAnchor(editor, linkNode); + return { + anchor, + catalogs: { + targets: TargetOptions.getTargets(editor), + rels: RelOptions.getRels(editor, anchor.target), + classes: ClassListOptions.getClasses(editor), + anchor: AnchorListOptions.getAnchors(editor), + link: links + }, + optNode: linkNode, + flags: { titleEnabled: shouldShowLinkTitle(editor) } + }; + }); + const DiaIniciar Sesionfo = { collect }; + + const handleSubmit = (editor, info) => api => { + const data = api.getData(); + if (!data.url.value) { + unlink(editor); + api.close(); + return; + } + const getChangedValue = key => Optional.from(data[key]).filter(value => !is(info.anchor[key], value)); + const changedData = { + href: data.url.value, + text: getChangedValue('text'), + target: getChangedValue('target'), + rel: getChangedValue('rel'), + class: getChangedValue('linkClass'), + title: getChangedValue('title') + }; + const attachState = { + href: data.url.value, + attach: data.url.meta !== undefined && data.url.meta.attach ? data.url.meta.attach : noop + }; + DialogConfirms.preprocess(editor, changedData).then(pData => { + link(editor, attachState, pData); + }); + api.close(); + }; + const collectData = editor => { + const anchorNode = getAnchorElement(editor); + return DiaIniciar Sesionfo.collect(editor, anchorNode); + }; + const getInitialData = (info, defaultTarget) => { + const anchor = info.anchor; + const url = anchor.url.getOr(''); + return { + url: { + value: url, + meta: { original: { value: url } } + }, + text: anchor.text.getOr(''), + title: anchor.title.getOr(''), + anchor: url, + link: url, + rel: anchor.rel.getOr(''), + target: anchor.target.or(defaultTarget).getOr(''), + linkClass: anchor.linkClass.getOr('') + }; + }; + const makeDialog = (settings, onSubmit, editor) => { + const urlInput = [{ + name: 'url', + type: 'urlinput', + filetype: 'file', + label: 'URL' + }]; + const displayText = settings.anchor.text.map(() => ({ + name: 'text', + type: 'input', + label: 'Text to display' + })).toArray(); + const titleText = settings.flags.titleEnabled ? [{ + name: 'title', + type: 'input', + label: 'Title' + }] : []; + const defaultTarget = Optional.from(getDefaultLinkTarget(editor)); + const initialData = getInitialData(settings, defaultTarget); + const catalogs = settings.catalogs; + const dialogDelta = DialogChanges.init(initialData, catalogs); + const body = { + type: 'panel', + items: flatten([ + urlInput, + displayText, + titleText, + cat([ + catalogs.anchor.map(ListOptions.createUi('anchor', 'Anchors')), + catalogs.rels.map(ListOptions.createUi('rel', 'Rel')), + catalogs.targets.map(ListOptions.createUi('target', 'Open link in...')), + catalogs.link.map(ListOptions.createUi('link', 'Link list')), + catalogs.classes.map(ListOptions.createUi('linkClass', 'Class')) + ]) + ]) + }; + return { + title: 'Insert/Edit Link', + size: 'normal', + body, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData, + onChange: (api, {name}) => { + dialogDelta.onChange(api.getData, { name }).each(newData => { + api.setData(newData); + }); + }, + onSubmit + }; + }; + const open$1 = editor => { + const data = collectData(editor); + data.then(info => { + const onSubmit = handleSubmit(editor, info); + return makeDialog(info, onSubmit, editor); + }).then(spec => { + editor.windowManager.open(spec); + }); + }; + + const Registro = editor => { + editor.addCommand('mceLink', (_ui, value) => { + if ((value === null || value === void 0 ? void 0 : value.dialog) === true || !useQuickLink(editor)) { + open$1(editor); + } else { + editor.dispatch('contexttoolbar-show', { toolbarKey: 'quicklink' }); + } + }); + }; + + var global = tinymce.util.Tools.resolve('tinymce.util.VK'); + + const appendClickRemove = (link, evt) => { + document.body.appendChild(link); + link.dispatchEvent(evt); + document.body.removeChild(link); + }; + const open = url => { + const link = document.createElement('a'); + link.target = '_blank'; + link.href = url; + link.rel = 'noreferrer noopener'; + const evt = document.createEvent('MouseEvents'); + evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + appendClickRemove(link, evt); + }; + + const getLink = (editor, elm) => editor.dom.getParent(elm, 'a[href]'); + const getSelectedLink = editor => getLink(editor, editor.selection.getStart()); + const hasOnlyAltModifier = e => { + return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; + }; + const gotoLink = (editor, a) => { + if (a) { + const href = getHref(a); + if (/^#/.test(href)) { + const targetEl = editor.dom.select(href); + if (targetEl.length) { + editor.selection.scrollIntoView(targetEl[0], true); + } + } else { + open(a.href); + } + } + }; + const openDialog = editor => () => { + editor.execCommand('mceLink', false, { dialog: true }); + }; + const gotoSelectedLink = editor => () => { + gotoLink(editor, getSelectedLink(editor)); + }; + const setupGotoLinks = editor => { + editor.on('click', e => { + const link = getLink(editor, e.target); + if (link && global.metaKeyPressed(e)) { + e.preventDefault(); + gotoLink(editor, link); + } + }); + editor.on('keydown', e => { + if (!e.isDefaultPrevented() && e.keyCode === 13 && hasOnlyAltModifier(e)) { + const link = getSelectedLink(editor); + if (link) { + e.preventDefault(); + gotoLink(editor, link); + } + } + }); + }; + const toggleState = (editor, toggler) => { + editor.on('NodeChange', toggler); + return () => editor.off('NodeChange', toggler); + }; + const toggleActiveState = editor => api => { + const updateState = () => api.setActive(!editor.mode.isReadOnly() && isInAnchor(editor, editor.selection.getNode())); + updateState(); + return toggleState(editor, updateState); + }; + const toggleEnabledState = editor => api => { + const updateState = () => api.setEnabled(isInAnchor(editor, editor.selection.getNode())); + updateState(); + return toggleState(editor, updateState); + }; + const toggleUnlinkState = editor => api => { + const hasLinks$1 = parents => hasLinks(parents) || hasLinksInSelection(editor.selection.getRng()); + const parents = editor.dom.getParents(editor.selection.getStart()); + api.setEnabled(hasLinks$1(parents)); + return toggleState(editor, e => api.setEnabled(hasLinks$1(e.parents))); + }; + + const setup = editor => { + editor.addShortcut('Meta+K', '', () => { + editor.execCommand('mceLink'); + }); + }; + + const setupButtons = editor => { + editor.ui.registry.addToggleButton('link', { + icon: 'link', + tooltip: 'Insert/edit link', + onAction: openDialog(editor), + onSetup: toggleActiveState(editor) + }); + editor.ui.registry.addButton('openlink', { + icon: 'new-tab', + tooltip: 'Open link', + onAction: gotoSelectedLink(editor), + onSetup: toggleEnabledState(editor) + }); + editor.ui.registry.addButton('unlink', { + icon: 'unlink', + tooltip: 'Remove link', + onAction: () => unlink(editor), + onSetup: toggleUnlinkState(editor) + }); + }; + const setupMenuItems = editor => { + editor.ui.registry.addMenuItem('openlink', { + text: 'Open link', + icon: 'new-tab', + onAction: gotoSelectedLink(editor), + onSetup: toggleEnabledState(editor) + }); + editor.ui.registry.addMenuItem('link', { + icon: 'link', + text: 'Link...', + shortcut: 'Meta+K', + onAction: openDialog(editor) + }); + editor.ui.registry.addMenuItem('unlink', { + icon: 'unlink', + text: 'Remove link', + onAction: () => unlink(editor), + onSetup: toggleUnlinkState(editor) + }); + }; + const setupContextMenu = editor => { + const inLink = 'link unlink openlink'; + const noLink = 'link'; + editor.ui.registry.addContextMenu('link', { update: element => hasLinks(editor.dom.getParents(element, 'a')) ? inLink : noLink }); + }; + const setupContextToolbars = editor => { + const collapseSelectionToEnd = editor => { + editor.selection.collapse(false); + }; + const onSetupLink = buttonApi => { + const node = editor.selection.getNode(); + buttonApi.setEnabled(isInAnchor(editor, node)); + return noop; + }; + const getLinkText = value => { + const anchor = getAnchorElement(editor); + const onlyText = isOnlyTextSelected(editor); + if (anchor.isNone() && onlyText) { + const text = getAnchorText(editor.selection, anchor); + return Optional.some(text.length > 0 ? text : value); + } else { + return Optional.none(); + } + }; + editor.ui.registry.addContextForm('quicklink', { + launch: { + type: 'contextformtogglebutton', + icon: 'link', + tooltip: 'Link', + onSetup: toggleActiveState(editor) + }, + label: 'Link', + predicate: node => hasContextToolbar(editor) && isInAnchor(editor, node), + initValue: () => { + const elm = getAnchorElement(editor); + return elm.fold(constant(''), getHref); + }, + commands: [ + { + type: 'contextformtogglebutton', + icon: 'link', + tooltip: 'Link', + primary: true, + onSetup: buttonApi => { + const node = editor.selection.getNode(); + buttonApi.setActive(isInAnchor(editor, node)); + return toggleActiveState(editor)(buttonApi); + }, + onAction: formApi => { + const value = formApi.getValue(); + const text = getLinkText(value); + const attachState = { + href: value, + attach: noop + }; + link(editor, attachState, { + href: value, + text, + title: Optional.none(), + rel: Optional.none(), + target: Optional.none(), + class: Optional.none() + }); + collapseSelectionToEnd(editor); + formApi.hide(); + } + }, + { + type: 'contextformbutton', + icon: 'unlink', + tooltip: 'Remove link', + onSetup: onSetupLink, + onAction: formApi => { + unlink(editor); + formApi.hide(); + } + }, + { + type: 'contextformbutton', + icon: 'new-tab', + tooltip: 'Open link', + onSetup: onSetupLink, + onAction: formApi => { + gotoSelectedLink(editor)(); + formApi.hide(); + } + } + ] + }); + }; + + var Plugin = () => { + global$5.add('link', editor => { + Registro$1(editor); + setupButtons(editor); + setupMenuItems(editor); + setupContextMenu(editor); + setupContextToolbars(editor); + setupGotoLinks(editor); + Registro(editor); + setup(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.min.js new file mode 100644 index 0000000..3caae34 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/link/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(l=o.constructor)||void 0===l?void 0:l.name)===r.name)?"string":t;var n,o,r,l})(t)===e,n=e=>t=>typeof t===e,o=t("string"),r=t("object"),l=t("array"),a=(null,e=>null===e);const i=n("boolean"),s=e=>!(e=>null==e)(e),c=n("function"),u=(e,t)=>{if(l(e)){for(let n=0,o=e.length;n{},d=(e,t)=>e===t;class m{constructor(e,t){this.tag=e,this.value=t}static some(e){return new m(!0,e)}static none(){return m.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?m.some(e(this.value)):m.none()}bind(e){return this.tag?e(this.value):m.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:m.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?m.some(e):m.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}m.singletonNone=new m(!1);const h=Array.prototype.indexOf,f=Array.prototype.push,p=e=>{const t=[];for(let n=0,o=e.length;n{for(let n=0;ne.exists((e=>n(e,t))),y=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;te?m.some(t):m.none(),b=e=>t=>t.options.get(e),_=b("link_assume_external_targets"),w=b("link_context_toolbar"),C=b("link_list"),O=b("link_default_target"),N=b("link_default_protocol"),A=b("link_target_list"),S=b("link_rel_list"),T=b("link_class_list"),E=b("link_title"),P=b("allow_unsafe_link_target"),R=b("link_quicklink");var L=tinymce.util.Tools.resolve("tinymce.util.Tools");const M=e=>o(e.value)?e.value:"",D=(e,t)=>{const n=[];return L.each(e,(e=>{const r=(e=>o(e.text)?e.text:o(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=D(e.menu,t);n.push({text:r,items:o})}else{const o=t(e);n.push({text:r,value:o})}})),n},B=(e=M)=>t=>m.from(t).map((t=>D(t,e))),I=e=>B(M)(e),j=B,K=(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),U=M,q=Object.keys,F=Object.hasOwnProperty,V=(e,t)=>F.call(e,t);var $=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),z=tinymce.util.Tools.resolve("tinymce.util.URI");const G=e=>s(e)&&"a"===e.nodeName.toLowerCase(),H=e=>G(e)&&!!Q(e),J=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),o=n.firstChild,r=new $(o,n),l=[];let a=o;do{t(a)&&l.push(a)}while(a=r.next());return l}},W=e=>/^\w+:/i.test(e),Q=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},X=(e,t)=>{const n=["noopener"],o=e?e.split(/\s+/):[],r=e=>e.filter((e=>-1===L.inArray(n,e))),l=t?(e=>(e=r(e)).length>0?e.concat(n):n)(o):r(o);return l.length>0?(e=>L.trim(e.sort().join(" ")))(l):""},Y=(e,t)=>(t=t||e.selection.getNode(),oe(t)?m.from(e.dom.select("a[href]",t)[0]):m.from(e.dom.getParent(t,"a[href]"))),Z=(e,t)=>Y(e,t).isSome(),ee=(e,t)=>t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||"")).replace(/\uFEFF/g,""),te=e=>L.grep(e,H).length>0,ne=e=>{const t=e.schema.getTextInlineElements();if(Y(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const n=e.selection.getRng();return!!n.collapsed||0===J(n,(e=>1===e.nodeType&&!G(e)&&!V(t,e.nodeName.toLowerCase()))).length},oe=e=>s(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),re=(e,t,n)=>{const o=e.selection.getNode(),r=Y(e,o),l=((e,t)=>{const n={...t};if(0===S(e).length&&!P(e)){const e=X(n.rel,"_blank"===n.target);n.rel=e||null}return m.from(n.target).isNone()&&!1===A(e)&&(n.target=O(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||W(e)?e:t+"://"+e)(n.href,_(e)),n})(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),o={href:e.href},((e,t)=>{for(let n=0,o=e.length;n{o=n(o,e)})),o;var t,n,o})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),r.fold((()=>{((e,t,n,o)=>{const r=e.dom;oe(t)?ce(r,t,o):n.fold((()=>{e.execCommand("mceInsertLink",!1,o)}),(t=>{e.insertContent(r.createHTML("a",o,r.encode(t)))}))})(e,o,n.text,l)}),(t=>{e.focus(),((e,t,n,o)=>{n.each((e=>{V(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,o),e.selection.select(t)})(e,t,n.text,l)}))}))},le=e=>{const{class:t,href:n,rel:o,target:r,text:l,title:i}=e;return((e,t)=>{const n={};var o;return((e,t,n,o)=>{((e,t)=>{const n=q(e);for(let o=0,r=n.length;o{(t(e,r)?n:o)(e,r)}))})(e,((e,t)=>!1===a(e)),(o=n,(e,t)=>{o[t]=e}),g),n})({class:t.getOrNull(),href:n,rel:o.getOrNull(),target:r.getOrNull(),text:l.getOrNull(),title:i.getOrNull()})},ae=(e,t,n)=>{const o=((e,t)=>{const n=e.options.get,o={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},r=t.href;return{...t,href:z.isDomSafe(r,"a",o)?r:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,le(o)):re(e,t,o)},ie=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();oe(t)?se(e,t):(e=>{const t=e.dom,n=e.selection,o=n.getBookmark(),r=n.getRng().cloneRange(),l=t.getParent(r.startContainer,"a[href]",e.getBody()),a=t.getParent(r.endContainer,"a[href]",e.getBody());l&&r.setStartBefore(l),a&&r.setEndAfter(a),n.setRng(r),e.execCommand("unlink"),n.moveToBookmark(o)})(e),e.focus()}))})(e)},se=(e,t)=>{var n;const o=e.dom.select("img",t)[0];if(o){const r=e.dom.getParents(o,"a[href]",t)[0];r&&(null===(n=r.parentNode)||void 0===n||n.insertBefore(o,r),e.dom.remove(r))}},ce=(e,t,n)=>{var o;const r=e.select("img",t)[0];if(r){const t=e.create("a",n);null===(o=r.parentNode)||void 0===o||o.insertBefore(t,r),t.appendChild(r)}},ue=(e,t)=>k(t,(t=>(e=>{return V(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n})(t)?ue(e,t.items):x(t.value===e,t))),ge=(e,t)=>{const n={text:e.text,title:e.title},o=(e,o)=>{const r=(l=t,a=o,"link"===a?l.link:"anchor"===a?l.anchor:m.none()).getOr([]);var l,a;return((e,t,n,o)=>{const r=o[t],l=e.length>0;return void 0!==r?ue(r,n).map((t=>({url:{value:t.value,meta:{text:l?e:t.text,attach:g}},text:l?e:t.text}))):m.none()})(n.text,o,r,e)};return{onChange:(e,t)=>{const r=t.name;return"url"===r?(e=>{const t=(o=e.url,x(n.text.length<=0,m.from(null===(r=o.meta)||void 0===r?void 0:r.text).getOr(o.value)));var o,r;const l=(e=>{var t;return x(n.title.length<=0,m.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||l.isSome()?m.some({...t.map((e=>({text:e}))).getOr({}),...l.map((e=>({title:e}))).getOr({})}):m.none()})(e()):((e,t)=>h.call(e,t))(["anchor","link"],r)>-1?o(e(),r):"text"===r||"title"===r?(n[r]=e()[r],m.none()):m.none()}}};var de=tinymce.util.Tools.resolve("tinymce.util.Delay");const me=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?m.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):m.none()},he=(e,t)=>n=>{const o=n.href;return 1===e&&!W(o)||0===e&&/^\s*www(\.|\d\.)/i.test(o)?m.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+o})}):m.none()},fe=e=>{const t=e.dom.select("a:not([href])"),n=p(((e,t)=>{const n=e.length,o=new Array(n);for(let r=0;r{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]})));return n.length>0?m.some([{text:"None",value:""}].concat(n)):m.none()},pe=e=>{const t=T(e);return t.length>0?I(t):m.none()},ke=e=>{try{return m.some(JSON.parse(e))}catch(e){return m.none()}},ve=(e,t)=>{const n=S(e);if(n.length>0){const o=v(t,"_blank"),r=e=>X(U(e),o);return(!1===P(e)?j(r):I)(n)}return m.none()},ye=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],xe=e=>{const t=A(e);return l(t)?I(t).orThunk((()=>m.some(ye))):!1===t?m.none():m.some(ye)},be=(e,t,n)=>{const o=e.getAttrib(t,n);return null!==o&&o.length>0?m.some(o):m.none()},_e=(e,t)=>(e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=C(e);return new Promise((e=>{o(n)?fetch(n).then((e=>e.ok?e.text().then(ke):Promise.reject())).then(e,(()=>e(m.none()))):c(n)?n((t=>e(m.some(t)))):e(m.from(n))})).then((e=>e.bind(j(t)).map((e=>e.length>0?[{text:"None",value:""}].concat(e):e))))})(e).then((n=>{const o=((e,t)=>{const n=e.dom,o=ne(e)?m.some(ee(e.selection,t)):m.none(),r=t.bind((e=>m.from(n.getAttrib(e,"href")))),l=t.bind((e=>m.from(n.getAttrib(e,"target")))),a=t.bind((e=>be(n,e,"rel"))),i=t.bind((e=>be(n,e,"class")));return{url:r,text:o,title:t.bind((e=>be(n,e,"title"))),target:l,rel:a,linkClass:i}})(e,t);return{anchor:o,catalogs:{targets:xe(e),rels:ve(e,o.target),classes:pe(e),anchor:fe(e),link:n},optNode:t,flags:{titleEnabled:E(e)}}})),we=e=>{const t=(e=>{const t=Y(e);return _e(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const o=n.getData();if(!o.url.value)return ie(e),void n.close();const r=e=>m.from(o[e]).filter((n=>!v(t.anchor[e],n))),l={href:o.url.value,text:r("text"),target:r("target"),rel:r("rel"),class:r("linkClass"),title:r("title")},a={href:o.url.value,attach:void 0!==o.url.meta&&o.url.meta.attach?o.url.meta.attach:g};((e,t)=>k([me,he(_(e),N(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((o=>{((e,t,n)=>{const o=e.selection.getRng();de.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(o),n(t)}))}))})(e,n.message,(e=>{o(e?n.preprocess(t):t)}))})))))(e,l).then((t=>{ae(e,a,t)})),n.close()})(e,t);return((e,t,n)=>{const o=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),r=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],l=((e,t)=>{const n=e.anchor,o=n.url.getOr("");return{url:{value:o,meta:{original:{value:o}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:o,link:o,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,m.from(O(n))),a=e.catalogs,i=ge(l,a);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:p([[{name:"url",type:"urlinput",filetype:"file",label:"URL"}],o,r,y([a.anchor.map(K("anchor","Anchors")),a.rels.map(K("rel","Rel")),a.targets.map(K("target","Open link in...")),a.link.map(K("link","Link list")),a.classes.map(K("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onChange:(e,{name:t})=>{i.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Ce=tinymce.util.Tools.resolve("tinymce.util.VK");const Oe=(e,t)=>e.dom.getParent(t,"a[href]"),Ne=e=>Oe(e,e.selection.getStart()),Ae=(e,t)=>{if(t){const n=Q(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else(e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)})(t.href)}},Se=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},Te=e=>()=>{Ae(e,Ne(e))},Ee=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Pe=e=>t=>{const n=()=>t.setActive(!e.mode.isReadOnly()&&Z(e,e.selection.getNode()));return n(),Ee(e,n)},Re=e=>t=>{const n=()=>t.setEnabled(Z(e,e.selection.getNode()));return n(),Ee(e,n)},Le=e=>t=>{const n=t=>{return te(t)||(n=e.selection.getRng(),J(n,H).length>0);var n},o=e.dom.getParents(e.selection.getStart());return t.setEnabled(n(o)),Ee(e,(e=>t.setEnabled(n(e.parents))))};e.add("link",(e=>{(e=>{const t=e.options.Registro;t("link_assume_external_targets",{processor:e=>{const t=o(e)||i(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>o(e)||c(e)||u(e,r)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>i(e)||u(e,r),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Se(e),onSetup:Pe(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:Te(e),onSetup:Re(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ie(e),onSetup:Le(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:Te(e),onSetup:Re(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onAction:Se(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ie(e),onSetup:Le(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>te(e.dom.getParents(t,"a"))?"link unlink openlink":"link"})})(e),(e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(Z(e,n)),g};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Pe(e)},label:"Link",predicate:t=>w(e)&&Z(e,t),initValue:()=>Y(e).fold((()=>""),Q),commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(Z(e,n)),Pe(e)(t)},onAction:t=>{const n=t.getValue(),o=(t=>{const n=Y(e),o=ne(e);if(n.isNone()&&o){const o=ee(e.selection,n);return m.some(o.length>0?o:t)}return m.none()})(n);ae(e,{href:n,attach:g},{href:n,text:o,title:m.none(),rel:m.none(),target:m.none(),class:m.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ie(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{Te(e)(),t.hide()}}]})})(e),(e=>{e.on("click",(t=>{const n=Oe(e,t.target);n&&Ce.metaKeyPressed(t)&&(t.preventDefault(),Ae(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=Ne(e);n&&(t.preventDefault(),Ae(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&R(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):we(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/index.js new file mode 100644 index 0000000..c7d055e --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/index.js @@ -0,0 +1,7 @@ +// Exports the "lists" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/lists') +// ES2015: +// import 'tinymce/plugins/lists' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.js new file mode 100644 index 0000000..11e47a4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.js @@ -0,0 +1,1866 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType$1 = type => value => typeOf(value) === type; + const isSimpleType = type => value => typeof value === type; + const isString = isType$1('string'); + const isObject = isType$1('object'); + const isArray = isType$1('array'); + const isBoolean = isSimpleType('boolean'); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + const isFunction = isSimpleType('function'); + const isNumber = isSimpleType('number'); + + const noop = () => { + }; + const constant = value => { + return () => { + return value; + }; + }; + const tripleEquals = (a, b) => { + return a === b; + }; + const not = f => t => !f(t); + const never = constant(false); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativeSlice = Array.prototype.slice; + const nativeIndexOf = Array.prototype.indexOf; + const nativePush = Array.prototype.push; + const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t); + const contains$1 = (xs, x) => rawIndexOf(xs, x) > -1; + const exists = (xs, pred) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return true; + } + } + return false; + }; + const map = (xs, f) => { + const len = xs.length; + const r = new Array(len); + for (let i = 0; i < len; i++) { + const x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + const each$1 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const filter$1 = (xs, pred) => { + const r = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + const groupBy = (xs, f) => { + if (xs.length === 0) { + return []; + } else { + let wasType = f(xs[0]); + const r = []; + let group = []; + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + const type = f(x); + if (type !== wasType) { + r.push(group); + group = []; + } + wasType = type; + group.push(x); + } + if (group.length !== 0) { + r.push(group); + } + return r; + } + }; + const foldl = (xs, f, acc) => { + each$1(xs, (x, i) => { + acc = f(acc, x, i); + }); + return acc; + }; + const findUntil = (xs, pred, until) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (pred(x, i)) { + return Optional.some(x); + } else if (until(x, i)) { + break; + } + } + return Optional.none(); + }; + const find = (xs, pred) => { + return findUntil(xs, pred, never); + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + const bind = (xs, f) => flatten(map(xs, f)); + const reverse = xs => { + const r = nativeSlice.call(xs, 0); + r.reverse(); + return r; + }; + const get$1 = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none(); + const head = xs => get$1(xs, 0); + const last = xs => get$1(xs, xs.length - 1); + const unique = (xs, comparator) => { + const r = []; + const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$1(r, x); + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + if (!isDuplicated(x)) { + r.push(x); + } + } + return r; + }; + + const is$2 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs)); + const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone()); + const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none(); + + const ELEMENT = 1; + + const fromHtml = (html, scope) => { + const doc = scope || document; + const div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + const message = 'HTML does not have a single root node'; + console.error(message, html); + throw new Error(message); + } + return fromDom$1(div.childNodes[0]); + }; + const fromTag = (tag, scope) => { + const doc = scope || document; + const node = doc.createElement(tag); + return fromDom$1(node); + }; + const fromText = (text, scope) => { + const doc = scope || document; + const node = doc.createTextNode(text); + return fromDom$1(node); + }; + const fromDom$1 = node => { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: node }; + }; + const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1); + const SugarElement = { + fromHtml, + fromTag, + fromText, + fromDom: fromDom$1, + fromPoint + }; + + const is$1 = (element, selector) => { + const dom = element.dom; + if (dom.nodeType !== ELEMENT) { + return false; + } else { + const elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + + const eq = (e1, e2) => e1.dom === e2.dom; + const contains = (e1, e2) => { + const d1 = e1.dom; + const d2 = e2.dom; + return d1 === d2 ? false : d1.contains(d2); + }; + const is = is$1; + + var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => { + if (is(scope, a)) { + return Optional.some(scope); + } else if (isFunction(isRoot) && isRoot(scope)) { + return Optional.none(); + } else { + return ancestor(scope, a, isRoot); + } + }; + + typeof window !== 'undefined' ? window : Function('return this;')(); + + const name = element => { + const r = element.dom.nodeName; + return r.toLowerCase(); + }; + const type = element => element.dom.nodeType; + const isType = t => element => type(element) === t; + const isElement$1 = isType(ELEMENT); + const isTag = tag => e => isElement$1(e) && name(e) === tag; + + const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom); + const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom); + const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom); + const children = element => map(element.dom.childNodes, SugarElement.fromDom); + const child = (element, index) => { + const cs = element.dom.childNodes; + return Optional.from(cs[index]).map(SugarElement.fromDom); + }; + const firstChild = element => child(element, 0); + const lastChild = element => child(element, element.dom.childNodes.length - 1); + + const ancestor = (scope, predicate, isRoot) => { + let element = scope.dom; + const stop = isFunction(isRoot) ? isRoot : never; + while (element.parentNode) { + element = element.parentNode; + const el = SugarElement.fromDom(element); + if (predicate(el)) { + return Optional.some(el); + } else if (stop(el)) { + break; + } + } + return Optional.none(); + }; + const closest = (scope, predicate, isRoot) => { + const is = (s, test) => test(s); + return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot); + }; + + const before$1 = (marker, element) => { + const parent$1 = parent(marker); + parent$1.each(v => { + v.dom.insertBefore(element.dom, marker.dom); + }); + }; + const after = (marker, element) => { + const sibling = nextSibling(marker); + sibling.fold(() => { + const parent$1 = parent(marker); + parent$1.each(v => { + append$1(v, element); + }); + }, v => { + before$1(v, element); + }); + }; + const append$1 = (parent, element) => { + parent.dom.appendChild(element.dom); + }; + + const before = (marker, elements) => { + each$1(elements, x => { + before$1(marker, x); + }); + }; + const append = (parent, elements) => { + each$1(elements, x => { + append$1(parent, x); + }); + }; + + const empty = element => { + element.dom.textContent = ''; + each$1(children(element), rogue => { + remove(rogue); + }); + }; + const remove = element => { + const dom = element.dom; + if (dom.parentNode !== null) { + dom.parentNode.removeChild(dom); + } + }; + + var global$5 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK'); + + const fromDom = nodes => map(nodes, SugarElement.fromDom); + + const keys = Object.keys; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const objAcc = r => (x, i) => { + r[i] = x; + }; + const internalFilter = (obj, pred, onTrue, onFalse) => { + each(obj, (x, i) => { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + }; + const filter = (obj, pred) => { + const t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + + const rawSet = (dom, key, value) => { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + const setAll = (element, attrs) => { + const dom = element.dom; + each(attrs, (v, k) => { + rawSet(dom, k, v); + }); + }; + const clone$1 = element => foldl(element.dom.attributes, (acc, attr) => { + acc[attr.name] = attr.value; + return acc; + }, {}); + + const clone = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep)); + const deep = original => clone(original, true); + const shallowAs = (original, tag) => { + const nu = SugarElement.fromTag(tag); + const attributes = clone$1(original); + setAll(nu, attributes); + return nu; + }; + const mutate = (original, tag) => { + const nu = shallowAs(original, tag); + after(original, nu); + const children$1 = children(original); + append(nu, children$1); + remove(original); + return nu; + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + const matchNodeName = name => node => isNonNullable(node) && node.nodeName.toLowerCase() === name; + const matchNodeNames = regex => node => isNonNullable(node) && regex.test(node.nodeName); + const isTextNode = node => isNonNullable(node) && node.nodeType === 3; + const isElement = node => isNonNullable(node) && node.nodeType === 1; + const isListNode = matchNodeNames(/^(OL|UL|DL)$/); + const isOlUlNode = matchNodeNames(/^(OL|UL)$/); + const isOlNode = matchNodeName('ol'); + const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/); + const isDlItemNode = matchNodeNames(/^(DT|DD)$/); + const isTableCellNode = matchNodeNames(/^(TH|TD)$/); + const isBr = matchNodeName('br'); + const isFirstChild = node => { + var _a; + return ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === node; + }; + const isTextBlock = (editor, node) => isNonNullable(node) && node.nodeName in editor.schema.getTextBlockElements(); + const isBlock = (node, blockElements) => isNonNullable(node) && node.nodeName in blockElements; + const isBogusBr = (dom, node) => { + if (!isBr(node)) { + return false; + } + return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling); + }; + const isEmpty$1 = (dom, elm, keepBookmarks) => { + const empty = dom.isEmpty(elm); + if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) { + return false; + } + return empty; + }; + const isChildOfBody = (dom, elm) => dom.isChildOf(elm, dom.getRoot()); + + const option = name => editor => editor.options.get(name); + const Registro$3 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('lists_indent_on_tab', { + processor: 'boolean', + default: true + }); + }; + const shouldIndentOnTab = option('lists_indent_on_tab'); + const getForcedRootBlock = option('forced_root_block'); + const getForcedRootBlockAttrs = option('forced_root_block_attrs'); + + const createTextBlock = (editor, contentNode) => { + const dom = editor.dom; + const blockElements = editor.schema.getBlockElements(); + const fragment = dom.createFragment(); + const blockName = getForcedRootBlock(editor); + const blockAttrs = getForcedRootBlockAttrs(editor); + let node; + let textBlock; + let hasContentNode = false; + textBlock = dom.create(blockName, blockAttrs); + if (!isBlock(contentNode.firstChild, blockElements)) { + fragment.appendChild(textBlock); + } + while (node = contentNode.firstChild) { + const nodeName = node.nodeName; + if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { + hasContentNode = true; + } + if (isBlock(node, blockElements)) { + fragment.appendChild(node); + textBlock = null; + } else { + if (!textBlock) { + textBlock = dom.create(blockName, blockAttrs); + fragment.appendChild(textBlock); + } + textBlock.appendChild(node); + } + } + if (!hasContentNode && textBlock) { + textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' })); + } + return fragment; + }; + + const DOM$2 = global$2.DOM; + const splitList = (editor, list, li) => { + const removeAndKeepBookmarks = targetNode => { + const parent = targetNode.parentNode; + if (parent) { + global$1.each(bookmarks, node => { + parent.insertBefore(node, li.parentNode); + }); + } + DOM$2.remove(targetNode); + }; + const bookmarks = DOM$2.select('span[data-mce-type="bookmark"]', list); + const newBlock = createTextBlock(editor, li); + const tmpRng = DOM$2.createRng(); + tmpRng.setStartAfter(li); + tmpRng.setEndAfter(list); + const fragment = tmpRng.extractContents(); + for (let node = fragment.firstChild; node; node = node.firstChild) { + if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { + DOM$2.remove(node); + break; + } + } + if (!editor.dom.isEmpty(fragment)) { + DOM$2.insertAfter(fragment, list); + } + DOM$2.insertAfter(newBlock, list); + const parent = li.parentElement; + if (parent && isEmpty$1(editor.dom, parent)) { + removeAndKeepBookmarks(parent); + } + DOM$2.remove(li); + if (isEmpty$1(editor.dom, list)) { + DOM$2.remove(list); + } + }; + + const isDescriptionDetail = isTag('dd'); + const isDescriptionTerm = isTag('dt'); + const outdentDlItem = (editor, item) => { + if (isDescriptionDetail(item)) { + mutate(item, 'dt'); + } else if (isDescriptionTerm(item)) { + parentElement(item).each(dl => splitList(editor, dl.dom, item.dom)); + } + }; + const indentDlItem = item => { + if (isDescriptionTerm(item)) { + mutate(item, 'dd'); + } + }; + const dlIndentation = (editor, indentation, dlItems) => { + if (indentation === 'Indent') { + each$1(dlItems, indentDlItem); + } else { + each$1(dlItems, item => outdentDlItem(editor, item)); + } + }; + + const getNormalizedPoint = (container, offset) => { + if (isTextNode(container)) { + return { + container, + offset + }; + } + const node = global$5.getNode(container, offset); + if (isTextNode(node)) { + return { + container: node, + offset: offset >= container.childNodes.length ? node.data.length : 0 + }; + } else if (node.previousSibling && isTextNode(node.previousSibling)) { + return { + container: node.previousSibling, + offset: node.previousSibling.data.length + }; + } else if (node.nextSibling && isTextNode(node.nextSibling)) { + return { + container: node.nextSibling, + offset: 0 + }; + } + return { + container, + offset + }; + }; + const normalizeRange = rng => { + const outRng = rng.cloneRange(); + const rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset); + outRng.setStart(rangeStart.container, rangeStart.offset); + const rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset); + outRng.setEnd(rangeEnd.container, rangeEnd.offset); + return outRng; + }; + + const listNames = [ + 'OL', + 'UL', + 'DL' + ]; + const listSelector = listNames.join(','); + const getParentList = (editor, node) => { + const selectionStart = node || editor.selection.getStart(true); + return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart)); + }; + const isParentListSelected = (parentList, selectedBlocks) => isNonNullable(parentList) && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; + const findSubLists = parentList => filter$1(parentList.querySelectorAll(listSelector), isListNode); + const getSelectedSubLists = editor => { + const parentList = getParentList(editor); + const selectedBlocks = editor.selection.getSelectedBlocks(); + if (isParentListSelected(parentList, selectedBlocks)) { + return findSubLists(parentList); + } else { + return filter$1(selectedBlocks, elm => { + return isListNode(elm) && parentList !== elm; + }); + } + }; + const findParentListItemsNodes = (editor, elms) => { + const listItemsElms = global$1.map(elms, elm => { + const parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListHost(editor, elm)); + return parentLi ? parentLi : elm; + }); + return unique(listItemsElms); + }; + const getSelectedListItems = editor => { + const selectedBlocks = editor.selection.getSelectedBlocks(); + return filter$1(findParentListItemsNodes(editor, selectedBlocks), isListItemNode); + }; + const getSelectedDlItems = editor => filter$1(getSelectedListItems(editor), isDlItemNode); + const getClosestEditingHost = (editor, elm) => { + const parentTableCell = editor.dom.getParents(elm, 'TD,TH'); + return parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody(); + }; + const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, listName => schema.isValidChild(node.nodeName, listName)); + const getClosestListHost = (editor, elm) => { + const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock); + const parentBlock = find(parentBlocks, elm => isListHost(editor.schema, elm)); + return parentBlock.getOr(editor.getBody()); + }; + const findLastParentListNode = (editor, elm) => { + const parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListHost(editor, elm)); + return last(parentLists); + }; + const getSelectedLists = editor => { + const firstList = findLastParentListNode(editor, editor.selection.getStart()); + const subsequentLists = filter$1(editor.selection.getSelectedBlocks(), isOlUlNode); + return firstList.toArray().concat(subsequentLists); + }; + const getSelectedListRoots = editor => { + const selectedLists = getSelectedLists(editor); + return getUniqueListRoots(editor, selectedLists); + }; + const getUniqueListRoots = (editor, lists) => { + const listRoots = map(lists, list => findLastParentListNode(editor, list).getOr(list)); + return unique(listRoots); + }; + + const isCustomList = list => /\btox\-/.test(list.className); + const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode).exists(list => list.nodeName === listName && !isCustomList(list)); + const isWithinNonEditable = (editor, element) => element !== null && editor.dom.getContentEditableParent(element) === 'false'; + const selectionIsWithinNonEditableList = editor => { + const parentList = getParentList(editor); + return isWithinNonEditable(editor, parentList); + }; + const isWithinNonEditableList = (editor, element) => { + const parentList = editor.dom.getParent(element, 'ol,ul,dl'); + return isWithinNonEditable(editor, parentList); + }; + const setNodeChangeHandler = (editor, nodeChangeHandler) => { + const initialNode = editor.selection.getNode(); + nodeChangeHandler({ + parents: editor.dom.getParents(initialNode), + element: initialNode + }); + editor.on('NodeChange', nodeChangeHandler); + return () => editor.off('NodeChange', nodeChangeHandler); + }; + + const fromElements = (elements, scope) => { + const doc = scope || document; + const fragment = doc.createDocumentFragment(); + each$1(elements, element => { + fragment.appendChild(element.dom); + }); + return SugarElement.fromDom(fragment); + }; + + const fireListEvent = (editor, action, element) => editor.dispatch('ListMutation', { + action, + element + }); + + const blank = r => s => s.replace(r, ''); + const trim = blank(/^\s+|\s+$/g); + const isNotEmpty = s => s.length > 0; + const isEmpty = s => !isNotEmpty(s); + + const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue); + + const internalSet = (dom, property, value) => { + if (!isString(value)) { + console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); + throw new Error('CSS value must be a string: ' + value); + } + if (isSupported(dom)) { + dom.style.setProperty(property, value); + } + }; + const set = (element, property, value) => { + const dom = element.dom; + internalSet(dom, property, value); + }; + + const joinSegment = (parent, child) => { + append$1(parent.item, child.list); + }; + const joinSegments = segments => { + for (let i = 1; i < segments.length; i++) { + joinSegment(segments[i - 1], segments[i]); + } + }; + const appendSegments = (head$1, tail) => { + lift2(last(head$1), head(tail), joinSegment); + }; + const createSegment = (scope, listType) => { + const segment = { + list: SugarElement.fromTag(listType, scope), + item: SugarElement.fromTag('li', scope) + }; + append$1(segment.list, segment.item); + return segment; + }; + const createSegments = (scope, entry, size) => { + const segments = []; + for (let i = 0; i < size; i++) { + segments.push(createSegment(scope, entry.listType)); + } + return segments; + }; + const populateSegments = (segments, entry) => { + for (let i = 0; i < segments.length - 1; i++) { + set(segments[i].item, 'list-style-type', 'none'); + } + last(segments).each(segment => { + setAll(segment.list, entry.listAttributes); + setAll(segment.item, entry.itemAttributes); + append(segment.item, entry.content); + }); + }; + const normalizeSegment = (segment, entry) => { + if (name(segment.list) !== entry.listType) { + segment.list = mutate(segment.list, entry.listType); + } + setAll(segment.list, entry.listAttributes); + }; + const createItem = (scope, attr, content) => { + const item = SugarElement.fromTag('li', scope); + setAll(item, attr); + append(item, content); + return item; + }; + const appendItem = (segment, item) => { + append$1(segment.list, item); + segment.item = item; + }; + const writeShallow = (scope, cast, entry) => { + const newCast = cast.slice(0, entry.depth); + last(newCast).each(segment => { + const item = createItem(scope, entry.itemAttributes, entry.content); + appendItem(segment, item); + normalizeSegment(segment, entry); + }); + return newCast; + }; + const writeDeep = (scope, cast, entry) => { + const segments = createSegments(scope, entry, entry.depth - cast.length); + joinSegments(segments); + populateSegments(segments, entry); + appendSegments(cast, segments); + return cast.concat(segments); + }; + const composeList = (scope, entries) => { + const cast = foldl(entries, (cast, entry) => { + return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry); + }, []); + return head(cast).map(segment => segment.list); + }; + + const isList = el => is(el, 'OL,UL'); + const hasFirstChildList = el => firstChild(el).exists(isList); + const hasLastChildList = el => lastChild(el).exists(isList); + + const isIndented = entry => entry.depth > 0; + const isSelected = entry => entry.isSelected; + const cloneItemContent = li => { + const children$1 = children(li); + const content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; + return map(content, deep); + }; + const createEntry = (li, depth, isSelected) => parent(li).filter(isElement$1).map(list => ({ + depth, + dirty: false, + isSelected, + content: cloneItemContent(li), + itemAttributes: clone$1(li), + listAttributes: clone$1(list), + listType: name(list) + })); + + const indentEntry = (indentation, entry) => { + switch (indentation) { + case 'Indent': + entry.depth++; + break; + case 'Outdent': + entry.depth--; + break; + case 'Flatten': + entry.depth = 0; + } + entry.dirty = true; + }; + + const cloneListProperties = (target, source) => { + target.listType = source.listType; + target.listAttributes = { ...source.listAttributes }; + }; + const cleanListProperties = entry => { + entry.listAttributes = filter(entry.listAttributes, (_value, key) => key !== 'start'); + }; + const closestSiblingEntry = (entries, start) => { + const depth = entries[start].depth; + const matches = entry => entry.depth === depth && !entry.dirty; + const until = entry => entry.depth < depth; + return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(() => findUntil(entries.slice(start + 1), matches, until)); + }; + const normalizeEntries = entries => { + each$1(entries, (entry, i) => { + closestSiblingEntry(entries, i).fold(() => { + if (entry.dirty) { + cleanListProperties(entry); + } + }, matchingEntry => cloneListProperties(entry, matchingEntry)); + }); + return entries; + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + const parseItem = (depth, itemSelection, selectionState, item) => firstChild(item).filter(isList).fold(() => { + itemSelection.each(selection => { + if (eq(selection.start, item)) { + selectionState.set(true); + } + }); + const currentItemEntry = createEntry(item, depth, selectionState.get()); + itemSelection.each(selection => { + if (eq(selection.end, item)) { + selectionState.set(false); + } + }); + const childListEntries = lastChild(item).filter(isList).map(list => parseList(depth, itemSelection, selectionState, list)).getOr([]); + return currentItemEntry.toArray().concat(childListEntries); + }, list => parseList(depth, itemSelection, selectionState, list)); + const parseList = (depth, itemSelection, selectionState, list) => bind(children(list), element => { + const parser = isList(element) ? parseList : parseItem; + const newDepth = depth + 1; + return parser(newDepth, itemSelection, selectionState, element); + }); + const parseLists = (lists, itemSelection) => { + const selectionState = Cell(false); + const initialDepth = 0; + return map(lists, list => ({ + sourceList: list, + entries: parseList(initialDepth, itemSelection, selectionState, list) + })); + }; + + const outdentedComposer = (editor, entries) => { + const normalizedEntries = normalizeEntries(entries); + return map(normalizedEntries, entry => { + const content = fromElements(entry.content); + return SugarElement.fromDom(createTextBlock(editor, content.dom)); + }); + }; + const indentedComposer = (editor, entries) => { + const normalizedEntries = normalizeEntries(entries); + return composeList(editor.contentDocument, normalizedEntries).toArray(); + }; + const composeEntries = (editor, entries) => bind(groupBy(entries, isIndented), entries => { + const groupIsIndented = head(entries).exists(isIndented); + return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries); + }); + const indentSelectedEntries = (entries, indentation) => { + each$1(filter$1(entries, isSelected), entry => indentEntry(indentation, entry)); + }; + const getItemSelection = editor => { + const selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom); + return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), (start, end) => ({ + start, + end + })); + }; + const listIndentation = (editor, lists, indentation) => { + const entrySets = parseLists(lists, getItemSelection(editor)); + each$1(entrySets, entrySet => { + indentSelectedEntries(entrySet.entries, indentation); + const composedLists = composeEntries(editor, entrySet.entries); + each$1(composedLists, composedList => { + fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom); + }); + before(entrySet.sourceList, composedLists); + remove(entrySet.sourceList); + }); + }; + + const selectionIndentation = (editor, indentation) => { + const lists = fromDom(getSelectedListRoots(editor)); + const dlItems = fromDom(getSelectedDlItems(editor)); + let isHandled = false; + if (lists.length || dlItems.length) { + const bookmark = editor.selection.getBookmark(); + listIndentation(editor, lists, indentation); + dlIndentation(editor, indentation, dlItems); + editor.selection.moveToBookmark(bookmark); + editor.selection.setRng(normalizeRange(editor.selection.getRng())); + editor.nodeChanged(); + isHandled = true; + } + return isHandled; + }; + const handleIndentation = (editor, indentation) => !selectionIsWithinNonEditableList(editor) && selectionIndentation(editor, indentation); + const indentListSelection = editor => handleIndentation(editor, 'Indent'); + const outdentListSelection = editor => handleIndentation(editor, 'Outdent'); + const flattenListSelection = editor => handleIndentation(editor, 'Flatten'); + + var global = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager'); + + const DOM$1 = global$2.DOM; + const createBookmark = rng => { + const bookmark = {}; + const setupEndPoint = start => { + let container = rng[start ? 'startContainer' : 'endContainer']; + let offset = rng[start ? 'startOffset' : 'endOffset']; + if (isElement(container)) { + const offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' }); + if (container.hasChildNodes()) { + offset = Math.min(offset, container.childNodes.length - 1); + if (start) { + container.insertBefore(offsetNode, container.childNodes[offset]); + } else { + DOM$1.insertAfter(offsetNode, container.childNodes[offset]); + } + } else { + container.appendChild(offsetNode); + } + container = offsetNode; + offset = 0; + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + }; + setupEndPoint(true); + if (!rng.collapsed) { + setupEndPoint(); + } + return bookmark; + }; + const resolveBookmark = bookmark => { + const restoreEndPoint = start => { + const nodeIndex = container => { + var _a; + let node = (_a = container.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild; + let idx = 0; + while (node) { + if (node === container) { + return idx; + } + if (!isElement(node) || node.getAttribute('data-mce-type') !== 'bookmark') { + idx++; + } + node = node.nextSibling; + } + return -1; + }; + let container = bookmark[start ? 'startContainer' : 'endContainer']; + let offset = bookmark[start ? 'startOffset' : 'endOffset']; + if (!container) { + return; + } + if (isElement(container) && container.parentNode) { + const node = container; + offset = nodeIndex(container); + container = container.parentNode; + DOM$1.remove(node); + if (!container.hasChildNodes() && DOM$1.isBlock(container)) { + container.appendChild(DOM$1.create('br')); + } + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + }; + restoreEndPoint(true); + restoreEndPoint(); + const rng = DOM$1.createRng(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + if (bookmark.endContainer) { + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } + return normalizeRange(rng); + }; + + const listToggleActionFromListName = listName => { + switch (listName) { + case 'UL': + return 'ToggleUlList'; + case 'OL': + return 'ToggleOlList'; + case 'DL': + return 'ToggleDLList'; + } + }; + + const updateListStyle = (dom, el, detail) => { + const type = detail['list-style-type'] ? detail['list-style-type'] : null; + dom.setStyle(el, 'list-style-type', type); + }; + const setAttribs = (elm, attrs) => { + global$1.each(attrs, (value, key) => { + elm.setAttribute(key, value); + }); + }; + const updateListAttrs = (dom, el, detail) => { + setAttribs(el, detail['list-attributes']); + global$1.each(dom.select('li', el), li => { + setAttribs(li, detail['list-item-attributes']); + }); + }; + const updateListWithDetails = (dom, el, detail) => { + updateListStyle(dom, el, detail); + updateListAttrs(dom, el, detail); + }; + const removeStyles = (dom, element, styles) => { + global$1.each(styles, style => dom.setStyle(element, style, '')); + }; + const getEndPointNode = (editor, rng, start, root) => { + let container = rng[start ? 'startContainer' : 'endContainer']; + const offset = rng[start ? 'startOffset' : 'endOffset']; + if (isElement(container)) { + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + } + if (!start && isBr(container.nextSibling)) { + container = container.nextSibling; + } + while (container.parentNode !== root) { + const parent = container.parentNode; + if (isTextBlock(editor, container)) { + return container; + } + if (/^(TD|TH)$/.test(parent.nodeName)) { + return container; + } + container = parent; + } + return container; + }; + const getSelectedTextBlocks = (editor, rng, root) => { + const textBlocks = []; + const dom = editor.dom; + const startNode = getEndPointNode(editor, rng, true, root); + const endNode = getEndPointNode(editor, rng, false, root); + let block; + const siblings = []; + for (let node = startNode; node; node = node.nextSibling) { + siblings.push(node); + if (node === endNode) { + break; + } + } + global$1.each(siblings, node => { + var _a; + if (isTextBlock(editor, node)) { + textBlocks.push(node); + block = null; + return; + } + if (dom.isBlock(node) || isBr(node)) { + if (isBr(node)) { + dom.remove(node); + } + block = null; + return; + } + const nextSibling = node.nextSibling; + if (global.isBookmarkNode(node)) { + if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) { + block = null; + return; + } + } + if (!block) { + block = dom.create('p'); + (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(block, node); + textBlocks.push(block); + } + block.appendChild(node); + }); + return textBlocks; + }; + const hasCompatibleStyle = (dom, sib, detail) => { + const sibStyle = dom.getStyle(sib, 'list-style-type'); + let detailStyle = detail ? detail['list-style-type'] : ''; + detailStyle = detailStyle === null ? '' : detailStyle; + return sibStyle === detailStyle; + }; + const applyList = (editor, listName, detail) => { + const rng = editor.selection.getRng(); + let listItemName = 'LI'; + const root = getClosestListHost(editor, editor.selection.getStart(true)); + const dom = editor.dom; + if (dom.getContentEditable(editor.selection.getNode()) === 'false') { + return; + } + listName = listName.toUpperCase(); + if (listName === 'DL') { + listItemName = 'DT'; + } + const bookmark = createBookmark(rng); + const selectedTextBlocks = getSelectedTextBlocks(editor, rng, root); + global$1.each(selectedTextBlocks, block => { + let listBlock; + const sibling = block.previousSibling; + const parent = block.parentNode; + if (!isListItemNode(parent)) { + if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) { + listBlock = sibling; + block = dom.rename(block, listItemName); + sibling.appendChild(block); + } else { + listBlock = dom.create(listName); + parent.insertBefore(listBlock, block); + listBlock.appendChild(block); + block = dom.rename(block, listItemName); + } + removeStyles(dom, block, [ + 'margin', + 'margin-right', + 'margin-bottom', + 'margin-left', + 'margin-top', + 'padding', + 'padding-right', + 'padding-bottom', + 'padding-left', + 'padding-top' + ]); + updateListWithDetails(dom, listBlock, detail); + mergeWithAdjacentLists(editor.dom, listBlock); + } + }); + editor.selection.setRng(resolveBookmark(bookmark)); + }; + const isValidLists = (list1, list2) => { + return isListNode(list1) && list1.nodeName === (list2 === null || list2 === void 0 ? void 0 : list2.nodeName); + }; + const hasSameListStyle = (dom, list1, list2) => { + const targetStyle = dom.getStyle(list1, 'list-style-type', true); + const style = dom.getStyle(list2, 'list-style-type', true); + return targetStyle === style; + }; + const hasSameClasses = (elm1, elm2) => { + return elm1.className === elm2.className; + }; + const shouldMerge = (dom, list1, list2) => { + return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); + }; + const mergeWithAdjacentLists = (dom, listBlock) => { + let node; + let sibling = listBlock.nextSibling; + if (shouldMerge(dom, listBlock, sibling)) { + const liSibling = sibling; + while (node = liSibling.firstChild) { + listBlock.appendChild(node); + } + dom.remove(liSibling); + } + sibling = listBlock.previousSibling; + if (shouldMerge(dom, listBlock, sibling)) { + const liSibling = sibling; + while (node = liSibling.lastChild) { + listBlock.insertBefore(node, listBlock.firstChild); + } + dom.remove(liSibling); + } + }; + const updateList$1 = (editor, list, listName, detail) => { + if (list.nodeName !== listName) { + const newList = editor.dom.rename(list, listName); + updateListWithDetails(editor.dom, newList, detail); + fireListEvent(editor, listToggleActionFromListName(listName), newList); + } else { + updateListWithDetails(editor.dom, list, detail); + fireListEvent(editor, listToggleActionFromListName(listName), list); + } + }; + const toggleMultipleLists = (editor, parentList, lists, listName, detail) => { + const parentIsList = isListNode(parentList); + if (parentIsList && parentList.nodeName === listName && !hasListStyleDetail(detail)) { + flattenListSelection(editor); + } else { + applyList(editor, listName, detail); + const bookmark = createBookmark(editor.selection.getRng()); + const allLists = parentIsList ? [ + parentList, + ...lists + ] : lists; + global$1.each(allLists, elm => { + updateList$1(editor, elm, listName, detail); + }); + editor.selection.setRng(resolveBookmark(bookmark)); + } + }; + const hasListStyleDetail = detail => { + return 'list-style-type' in detail; + }; + const toggleSingleList = (editor, parentList, listName, detail) => { + if (parentList === editor.getBody()) { + return; + } + if (parentList) { + if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) { + flattenListSelection(editor); + } else { + const bookmark = createBookmark(editor.selection.getRng()); + updateListWithDetails(editor.dom, parentList, detail); + const newList = editor.dom.rename(parentList, listName); + mergeWithAdjacentLists(editor.dom, newList); + editor.selection.setRng(resolveBookmark(bookmark)); + applyList(editor, listName, detail); + fireListEvent(editor, listToggleActionFromListName(listName), newList); + } + } else { + applyList(editor, listName, detail); + fireListEvent(editor, listToggleActionFromListName(listName), parentList); + } + }; + const toggleList = (editor, listName, _detail) => { + const parentList = getParentList(editor); + if (isWithinNonEditableList(editor, parentList)) { + return; + } + const selectedSubLists = getSelectedSubLists(editor); + const detail = isObject(_detail) ? _detail : {}; + if (selectedSubLists.length > 0) { + toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); + } else { + toggleSingleList(editor, parentList, listName, detail); + } + }; + + const DOM = global$2.DOM; + const normalizeList = (dom, list) => { + const parentNode = list.parentElement; + if (parentNode && parentNode.nodeName === 'LI' && parentNode.firstChild === list) { + const sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(list); + if (isEmpty$1(dom, parentNode)) { + DOM.remove(parentNode); + } + } else { + DOM.setStyle(parentNode, 'listStyleType', 'none'); + } + } + if (isListNode(parentNode)) { + const sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(list); + } + } + }; + const normalizeLists = (dom, element) => { + const lists = global$1.grep(dom.select('ol,ul', element)); + global$1.each(lists, list => { + normalizeList(dom, list); + }); + }; + + const findNextCaretContainer = (editor, rng, isForward, root) => { + let node = rng.startContainer; + const offset = rng.startOffset; + if (isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) { + return node; + } + const nonEmptyBlocks = editor.schema.getNonEmptyElements(); + if (isElement(node)) { + node = global$5.getNode(node, offset); + } + const walker = new global$4(node, root); + if (isForward) { + if (isBogusBr(editor.dom, node)) { + walker.next(); + } + } + const walkFn = isForward ? walker.next.bind(walker) : walker.prev2.bind(walker); + while (node = walkFn()) { + if (node.nodeName === 'LI' && !node.hasChildNodes()) { + return node; + } + if (nonEmptyBlocks[node.nodeName]) { + return node; + } + if (isTextNode(node) && node.data.length > 0) { + return node; + } + } + return null; + }; + const hasOnlyOneBlockChild = (dom, elm) => { + const childNodes = elm.childNodes; + return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); + }; + const unwrapSingleBlockChild = (dom, elm) => { + if (hasOnlyOneBlockChild(dom, elm)) { + dom.remove(elm.firstChild, true); + } + }; + const moveChildren = (dom, fromElm, toElm) => { + let node; + const targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; + unwrapSingleBlockChild(dom, fromElm); + if (!isEmpty$1(dom, fromElm, true)) { + while (node = fromElm.firstChild) { + targetElm.appendChild(node); + } + } + }; + const mergeLiElements = (dom, fromElm, toElm) => { + let listNode; + const ul = fromElm.parentNode; + if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) { + return; + } + if (isListNode(toElm.lastChild)) { + listNode = toElm.lastChild; + } + if (ul === toElm.lastChild) { + if (isBr(ul.previousSibling)) { + dom.remove(ul.previousSibling); + } + } + const node = toElm.lastChild; + if (node && isBr(node) && fromElm.hasChildNodes()) { + dom.remove(node); + } + if (isEmpty$1(dom, toElm, true)) { + empty(SugarElement.fromDom(toElm)); + } + moveChildren(dom, fromElm, toElm); + if (listNode) { + toElm.appendChild(listNode); + } + const contains$1 = contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm)); + const nestedLists = contains$1 ? dom.getParents(fromElm, isListNode, toElm) : []; + dom.remove(fromElm); + each$1(nestedLists, list => { + if (isEmpty$1(dom, list) && list !== dom.getRoot()) { + dom.remove(list); + } + }); + }; + const mergeIntoEmptyLi = (editor, fromLi, toLi) => { + empty(SugarElement.fromDom(toLi)); + mergeLiElements(editor.dom, fromLi, toLi); + editor.selection.setCursorLocation(toLi, 0); + }; + const mergeForward = (editor, rng, fromLi, toLi) => { + const dom = editor.dom; + if (dom.isEmpty(toLi)) { + mergeIntoEmptyLi(editor, fromLi, toLi); + } else { + const bookmark = createBookmark(rng); + mergeLiElements(dom, fromLi, toLi); + editor.selection.setRng(resolveBookmark(bookmark)); + } + }; + const mergeBackward = (editor, rng, fromLi, toLi) => { + const bookmark = createBookmark(rng); + mergeLiElements(editor.dom, fromLi, toLi); + const resolvedBookmark = resolveBookmark(bookmark); + editor.selection.setRng(resolvedBookmark); + }; + const backspaceDeleteFromListToListCaret = (editor, isForward) => { + const dom = editor.dom, selection = editor.selection; + const selectionStartElm = selection.getStart(); + const root = getClosestEditingHost(editor, selectionStartElm); + const li = dom.getParent(selection.getStart(), 'LI', root); + if (li) { + const ul = li.parentElement; + if (ul === editor.getBody() && isEmpty$1(dom, ul)) { + return true; + } + const rng = normalizeRange(selection.getRng()); + const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); + if (otherLi && otherLi !== li) { + editor.undoManager.transact(() => { + if (isForward) { + mergeForward(editor, rng, otherLi, li); + } else { + if (isFirstChild(li)) { + outdentListSelection(editor); + } else { + mergeBackward(editor, rng, li, otherLi); + } + } + }); + return true; + } else if (!otherLi) { + if (!isForward && rng.startOffset === 0 && rng.endOffset === 0) { + editor.undoManager.transact(() => { + flattenListSelection(editor); + }); + return true; + } + } + } + return false; + }; + const removeBlock = (dom, block, root) => { + const parentBlock = dom.getParent(block.parentNode, dom.isBlock, root); + dom.remove(block); + if (parentBlock && dom.isEmpty(parentBlock)) { + dom.remove(parentBlock); + } + }; + const backspaceDeleteIntoListCaret = (editor, isForward) => { + const dom = editor.dom; + const selectionStartElm = editor.selection.getStart(); + const root = getClosestEditingHost(editor, selectionStartElm); + const block = dom.getParent(selectionStartElm, dom.isBlock, root); + if (block && dom.isEmpty(block)) { + const rng = normalizeRange(editor.selection.getRng()); + const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); + if (otherLi) { + const findValidElement = element => contains$1([ + 'td', + 'th', + 'caption' + ], name(element)); + const findRoot = node => node.dom === root; + const otherLiCell = closest(SugarElement.fromDom(otherLi), findValidElement, findRoot); + const caretCell = closest(SugarElement.fromDom(rng.startContainer), findValidElement, findRoot); + if (!equals(otherLiCell, caretCell, eq)) { + return false; + } + editor.undoManager.transact(() => { + removeBlock(dom, block, root); + mergeWithAdjacentLists(dom, otherLi.parentNode); + editor.selection.select(otherLi, true); + editor.selection.collapse(isForward); + }); + return true; + } + } + return false; + }; + const backspaceDeleteCaret = (editor, isForward) => { + return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); + }; + const hasListSelection = editor => { + const selectionStartElm = editor.selection.getStart(); + const root = getClosestEditingHost(editor, selectionStartElm); + const startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root); + return startListParent || getSelectedListItems(editor).length > 0; + }; + const backspaceDeleteRange = editor => { + if (hasListSelection(editor)) { + editor.undoManager.transact(() => { + editor.execCommand('Delete'); + normalizeLists(editor.dom, editor.getBody()); + }); + return true; + } + return false; + }; + const backspaceDelete = (editor, isForward) => { + const selection = editor.selection; + return !isWithinNonEditableList(editor, selection.getNode()) && (selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor)); + }; + const setup$1 = editor => { + editor.on('ExecCommand', e => { + const cmd = e.command.toLowerCase(); + if ((cmd === 'delete' || cmd === 'forwarddelete') && hasListSelection(editor)) { + normalizeLists(editor.dom, editor.getBody()); + } + }); + editor.on('keydown', e => { + if (e.keyCode === global$3.BACKSPACE) { + if (backspaceDelete(editor, false)) { + e.preventDefault(); + } + } else if (e.keyCode === global$3.DELETE) { + if (backspaceDelete(editor, true)) { + e.preventDefault(); + } + } + }); + }; + + const get = editor => ({ + backspaceDelete: isForward => { + backspaceDelete(editor, isForward); + } + }); + + const updateList = (editor, update) => { + const parentList = getParentList(editor); + if (parentList === null || isWithinNonEditableList(editor, parentList)) { + return; + } + editor.undoManager.transact(() => { + if (isObject(update.styles)) { + editor.dom.setStyles(parentList, update.styles); + } + if (isObject(update.attrs)) { + each(update.attrs, (v, k) => editor.dom.setAttrib(parentList, k, v)); + } + }); + }; + + const parseAlphabeticBase26 = str => { + const chars = reverse(trim(str).split('')); + const values = map(chars, (char, i) => { + const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1; + return Math.pow(26, i) * charValue; + }); + return foldl(values, (sum, v) => sum + v, 0); + }; + const composeAlphabeticBase26 = value => { + value--; + if (value < 0) { + return ''; + } else { + const remainder = value % 26; + const quotient = Math.floor(value / 26); + const rest = composeAlphabeticBase26(quotient); + const char = String.fromCharCode('A'.charCodeAt(0) + remainder); + return rest + char; + } + }; + const isUppercase = str => /^[A-Z]+$/.test(str); + const isLowercase = str => /^[a-z]+$/.test(str); + const isNumeric = str => /^[0-9]+$/.test(str); + const deduceListType = start => { + if (isNumeric(start)) { + return 2; + } else if (isUppercase(start)) { + return 0; + } else if (isLowercase(start)) { + return 1; + } else if (isEmpty(start)) { + return 3; + } else { + return 4; + } + }; + const parseStartValue = start => { + switch (deduceListType(start)) { + case 2: + return Optional.some({ + listStyleType: Optional.none(), + start + }); + case 0: + return Optional.some({ + listStyleType: Optional.some('upper-alpha'), + start: parseAlphabeticBase26(start).toString() + }); + case 1: + return Optional.some({ + listStyleType: Optional.some('lower-alpha'), + start: parseAlphabeticBase26(start).toString() + }); + case 3: + return Optional.some({ + listStyleType: Optional.none(), + start: '' + }); + case 4: + return Optional.none(); + } + }; + const parseDetail = detail => { + const start = parseInt(detail.start, 10); + if (is$2(detail.listStyleType, 'upper-alpha')) { + return composeAlphabeticBase26(start); + } else if (is$2(detail.listStyleType, 'lower-alpha')) { + return composeAlphabeticBase26(start).toLowerCase(); + } else { + return detail.start; + } + }; + + const open = editor => { + const currentList = getParentList(editor); + if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) { + return; + } + editor.windowManager.open({ + title: 'List Properties', + body: { + type: 'panel', + items: [{ + type: 'input', + name: 'start', + label: 'Start list at number', + inputMode: 'numeric' + }] + }, + initialData: { + start: parseDetail({ + start: editor.dom.getAttrib(currentList, 'start', '1'), + listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type')) + }) + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: api => { + const data = api.getData(); + parseStartValue(data.start).each(detail => { + editor.execCommand('mceListUpdate', false, { + attrs: { start: detail.start === '1' ? '' : detail.start }, + styles: { 'list-style-type': detail.listStyleType.getOr('') } + }); + }); + api.close(); + } + }); + }; + + const queryListCommandState = (editor, listName) => () => { + const parentList = getParentList(editor); + return isNonNullable(parentList) && parentList.nodeName === listName; + }; + const RegistroDialog = editor => { + editor.addCommand('mceListProps', () => { + open(editor); + }); + }; + const Registro$2 = editor => { + editor.on('BeforeExecCommand', e => { + const cmd = e.command.toLowerCase(); + if (cmd === 'indent') { + indentListSelection(editor); + } else if (cmd === 'outdent') { + outdentListSelection(editor); + } + }); + editor.addCommand('InsertUnorderedList', (ui, detail) => { + toggleList(editor, 'UL', detail); + }); + editor.addCommand('InsertOrderedList', (ui, detail) => { + toggleList(editor, 'OL', detail); + }); + editor.addCommand('InsertDefinitionList', (ui, detail) => { + toggleList(editor, 'DL', detail); + }); + editor.addCommand('RemoveList', () => { + flattenListSelection(editor); + }); + RegistroDialog(editor); + editor.addCommand('mceListUpdate', (ui, detail) => { + if (isObject(detail)) { + updateList(editor, detail); + } + }); + editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); + editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); + editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); + }; + + const setupTabKey = editor => { + editor.on('keydown', e => { + if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) { + return; + } + editor.undoManager.transact(() => { + if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) { + e.preventDefault(); + } + }); + }); + }; + const setup = editor => { + if (shouldIndentOnTab(editor)) { + setupTabKey(editor); + } + setup$1(editor); + }; + + const setupToggleButtonHandler = (editor, listName) => api => { + const toggleButtonHandler = e => { + api.setActive(inList(e.parents, listName)); + api.setEnabled(!isWithinNonEditableList(editor, e.element)); + }; + return setNodeChangeHandler(editor, toggleButtonHandler); + }; + const Registro$1 = editor => { + const exec = command => () => editor.execCommand(command); + if (!editor.hasPlugin('advlist')) { + editor.ui.registry.addToggleButton('numlist', { + icon: 'ordered-list', + active: false, + tooltip: 'Numbered list', + onAction: exec('InsertOrderedList'), + onSetup: setupToggleButtonHandler(editor, 'OL') + }); + editor.ui.registry.addToggleButton('bullist', { + icon: 'unordered-list', + active: false, + tooltip: 'Bullet list', + onAction: exec('InsertUnorderedList'), + onSetup: setupToggleButtonHandler(editor, 'UL') + }); + } + }; + + const setupMenuButtonHandler = (editor, listName) => api => { + const menuButtonHandler = e => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element)); + return setNodeChangeHandler(editor, menuButtonHandler); + }; + const Registro = editor => { + const listProperties = { + text: 'List properties...', + icon: 'ordered-list', + onAction: () => editor.execCommand('mceListProps'), + onSetup: setupMenuButtonHandler(editor, 'OL') + }; + editor.ui.registry.addMenuItem('listprops', listProperties); + editor.ui.registry.addContextMenu('lists', { + update: node => { + const parentList = getParentList(editor, node); + return isOlNode(parentList) ? ['listprops'] : []; + } + }); + }; + + var Plugin = () => { + global$6.add('lists', editor => { + Registro$3(editor); + if (!editor.hasPlugin('rtc', true)) { + setup(editor); + Registro$2(editor); + } else { + RegistroDialog(editor); + } + Registro$1(editor); + Registro(editor); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.min.js new file mode 100644 index 0000000..e60136d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/lists/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(n=r=t,(o=String).prototype.isPrototypeOf(n)||(null===(s=r.constructor)||void 0===s?void 0:s.name)===o.name)?"string":e;var n,r,o,s})(e)===t,n=t=>e=>typeof e===t,r=e("string"),o=e("object"),s=e("array"),i=n("boolean"),a=t=>!(t=>null==t)(t),l=n("function"),d=n("number"),c=()=>{},u=(t,e)=>t===e,m=t=>e=>!t(e),p=(!1,()=>false);class g{constructor(t,e){this.tag=t,this.value=e}static some(t){return new g(!0,t)}static none(){return g.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?g.some(t(this.value)):g.none()}bind(t){return this.tag?t(this.value):g.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:g.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return a(t)?g.some(t):g.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}g.singletonNone=new g(!1);const h=Array.prototype.slice,f=Array.prototype.indexOf,y=Array.prototype.push,v=(t,e)=>{return n=t,r=e,f.call(n,r)>-1;var n,r},C=(t,e)=>{for(let n=0,r=t.length;n{const n=t.length,r=new Array(n);for(let o=0;o{for(let n=0,r=t.length;n{const n=[];for(let r=0,o=t.length;r(S(t,((t,r)=>{n=e(n,t,r)})),n),O=(t,e,n)=>{for(let r=0,o=t.length;rO(t,e,p),T=(t,e)=>(t=>{const e=[];for(let n=0,r=t.length;n{const e=h.call(t,0);return e.reverse(),e},w=(t,e)=>e>=0&&ew(t,0),E=t=>w(t,t.length-1),B=(t,e)=>{const n=[],r=l(e)?t=>C(n,(n=>e(n,t))):t=>v(n,t);for(let e=0,o=t.length;et.exists((t=>n(t,e))),I=(t,e,n)=>t.isSome()&&e.isSome()?g.some(n(t.getOrDie(),e.getOrDie())):g.none(),P=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},M=(t,e)=>{const n=(e||document).createElement(t);return P(n)},R=P,U=(t,e)=>t.dom===e.dom;"undefined"!=typeof window?window:Function("return this;")();const $=t=>t.dom.nodeName.toLowerCase(),_=(1,t=>1===(t=>t.dom.nodeType)(t));const H=t=>e=>_(e)&&$(e)===t,j=t=>g.from(t.dom.parentNode).map(R),F=t=>b(t.dom.childNodes,R),K=(t,e)=>{const n=t.dom.childNodes;return g.from(n[e]).map(R)},V=t=>K(t,0),z=t=>K(t,t.dom.childNodes.length-1),Q=(t,e,n)=>{let r=t.dom;const o=l(n)?n:p;for(;r.parentNode;){r=r.parentNode;const t=R(r);if(e(t))return g.some(t);if(o(t))break}return g.none()},q=(t,e,n)=>((t,e,n,r,o)=>r(n)?g.some(n):l(o)&&o(n)?g.none():e(n,r,o))(0,Q,t,e,n),W=(t,e)=>{j(t).each((n=>{n.dom.insertBefore(e.dom,t.dom)}))},Z=(t,e)=>{t.dom.appendChild(e.dom)},G=(t,e)=>{S(e,(e=>{Z(t,e)}))},J=t=>{t.dom.textContent="",S(F(t),(t=>{X(t)}))},X=t=>{const e=t.dom;null!==e.parentNode&&e.parentNode.removeChild(e)};var Y=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),tt=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),et=tinymce.util.Tools.resolve("tinymce.util.VK");const nt=t=>b(t,R),rt=Object.keys,ot=(t,e)=>{const n=rt(t);for(let r=0,o=n.length;r{const n=t.dom;ot(e,((t,e)=>{((t,e,n)=>{if(!(r(n)||i(n)||d(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(n,e,t)}))},it=t=>L(t.dom.attributes,((t,e)=>(t[e.name]=e.value,t)),{}),at=t=>((t,e)=>R(t.dom.cloneNode(!0)))(t),lt=(t,e)=>{const n=((t,e)=>{const n=M(e),r=it(t);return st(n,r),n})(t,e);((t,e)=>{const n=(t=>g.from(t.dom.nextSibling).map(R))(t);n.fold((()=>{j(t).each((t=>{Z(t,e)}))}),(t=>{W(t,e)}))})(t,n);const r=F(t);return G(n,r),X(t),n};var dt=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),ct=tinymce.util.Tools.resolve("tinymce.util.Tools");const ut=t=>e=>a(e)&&e.nodeName.toLowerCase()===t,mt=t=>e=>a(e)&&t.test(e.nodeName),pt=t=>a(t)&&3===t.nodeType,gt=t=>a(t)&&1===t.nodeType,ht=mt(/^(OL|UL|DL)$/),ft=mt(/^(OL|UL)$/),yt=ut("ol"),vt=mt(/^(LI|DT|DD)$/),Ct=mt(/^(DT|DD)$/),bt=mt(/^(TH|TD)$/),St=ut("br"),Nt=(t,e)=>a(e)&&e.nodeName in t.schema.getTextBlockElements(),Lt=(t,e)=>a(t)&&t.nodeName in e,Ot=(t,e,n)=>{const r=t.isEmpty(e);return!(n&&t.select("span[data-mce-type=bookmark]",e).length>0)&&r},kt=(t,e)=>t.isChildOf(e,t.getRoot()),Tt=t=>e=>e.options.get(t),At=Tt("lists_indent_on_tab"),wt=Tt("forced_root_block"),Dt=Tt("forced_root_block_attrs"),Et=(t,e)=>{const n=t.dom,r=t.schema.getBlockElements(),o=n.createFragment(),s=wt(t),i=Dt(t);let a,l,d=!1;for(l=n.create(s,i),Lt(e.firstChild,r)||o.appendChild(l);a=e.firstChild;){const t=a.nodeName;d||"SPAN"===t&&"bookmark"===a.getAttribute("data-mce-type")||(d=!0),Lt(a,r)?(o.appendChild(a),l=null):(l||(l=n.create(s,i),o.appendChild(l)),l.appendChild(a))}return!d&&l&&l.appendChild(n.create("br",{"data-mce-bogus":"1"})),o},Bt=dt.DOM,xt=H("dd"),It=H("dt"),Pt=(t,e)=>{var n;xt(e)?lt(e,"dt"):It(e)&&(n=e,g.from(n.dom.parentElement).map(R)).each((n=>((t,e,n)=>{const r=Bt.select('span[data-mce-type="bookmark"]',e),o=Et(t,n),s=Bt.createRng();s.setStartAfter(n),s.setEndAfter(e);const i=s.extractContents();for(let e=i.firstChild;e;e=e.firstChild)if("LI"===e.nodeName&&t.dom.isEmpty(e)){Bt.remove(e);break}t.dom.isEmpty(i)||Bt.insertAfter(i,e),Bt.insertAfter(o,e);const a=n.parentElement;a&&Ot(t.dom,a)&&(t=>{const e=t.parentNode;e&&ct.each(r,(t=>{e.insertBefore(t,n.parentNode)})),Bt.remove(t)})(a),Bt.remove(n),Ot(t.dom,e)&&Bt.remove(e)})(t,n.dom,e.dom)))},Mt=t=>{It(t)&<(t,"dd")},Rt=(t,e)=>{if(pt(t))return{container:t,offset:e};const n=Y.getNode(t,e);return pt(n)?{container:n,offset:e>=t.childNodes.length?n.data.length:0}:n.previousSibling&&pt(n.previousSibling)?{container:n.previousSibling,offset:n.previousSibling.data.length}:n.nextSibling&&pt(n.nextSibling)?{container:n.nextSibling,offset:0}:{container:t,offset:e}},Ut=t=>{const e=t.cloneRange(),n=Rt(t.startContainer,t.startOffset);e.setStart(n.container,n.offset);const r=Rt(t.endContainer,t.endOffset);return e.setEnd(r.container,r.offset),e},$t=["OL","UL","DL"],_t=$t.join(","),Ht=(t,e)=>{const n=e||t.selection.getStart(!0);return t.dom.getParent(n,_t,Kt(t,n))},jt=t=>{const e=t.selection.getSelectedBlocks();return N(((t,e)=>{const n=ct.map(e,(e=>t.dom.getParent(e,"li,dd,dt",Kt(t,e))||e));return B(n)})(t,e),vt)},Ft=(t,e)=>{const n=t.dom.getParents(e,"TD,TH");return n.length>0?n[0]:t.getBody()},Kt=(t,e)=>{const n=t.dom.getParents(e,t.dom.isBlock),r=k(n,(e=>{return n=t.schema,!ht(r=e)&&!vt(r)&&C($t,(t=>n.isValidChild(r.nodeName,t)));var n,r}));return r.getOr(t.getBody())},Vt=(t,e)=>{const n=t.dom.getParents(e,"ol,ul",Kt(t,e));return E(n)},zt=(t,e)=>{const n=b(e,(e=>Vt(t,e).getOr(e)));return B(n)},Qt=t=>/\btox\-/.test(t.className),qt=(t,e)=>O(t,ht,bt).exists((t=>t.nodeName===e&&!Qt(t))),Wt=(t,e)=>null!==e&&"false"===t.dom.getContentEditableParent(e),Zt=(t,e)=>{const n=t.dom.getParent(e,"ol,ul,dl");return Wt(t,n)},Gt=(t,e)=>{const n=t.selection.getNode();return e({parents:t.dom.getParents(n),element:n}),t.on("NodeChange",e),()=>t.off("NodeChange",e)},Jt=(t,e,n)=>t.dispatch("ListMutation",{action:e,element:n}),Xt=(Yt=/^\s+|\s+$/g,t=>t.replace(Yt,""));var Yt;const te=(t,e,n)=>{((t,e,n)=>{if(!r(n))throw console.error("Invalid call to CSS.set. Property ",e,":: Value ",n,":: Element ",t),new Error("CSS value must be a string: "+n);(t=>void 0!==t.style&&l(t.style.getPropertyValue))(t)&&t.style.setProperty(e,n)})(t.dom,e,n)},ee=(t,e)=>{Z(t.item,e.list)},ne=(t,e)=>{const n={list:M(e,t),item:M("li",t)};return Z(n.list,n.item),n},re=t=>((t,e)=>{const n=t.dom;if(1!==n.nodeType)return!1;{const t=n;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}})(t,"OL,UL"),oe=t=>V(t).exists(re),se=t=>t.depth>0,ie=t=>t.isSelected,ae=t=>{const e=F(t),n=z(t).exists(re)?e.slice(0,-1):e;return b(n,at)},le=t=>(S(t,((e,n)=>{((t,e)=>{const n=t[e].depth,r=t=>t.depth===n&&!t.dirty,o=t=>t.depthO(t.slice(e+1),r,o)))})(t,n).fold((()=>{e.dirty&&(t=>{t.listAttributes=((t,e)=>{const n={};var r;return((t,e,n,r)=>{ot(t,((t,o)=>{(e(t,o)?n:r)(t,o)}))})(t,e,(r=n,(t,e)=>{r[e]=t}),c),n})(t.listAttributes,((t,e)=>"start"!==e))})(e)}),(t=>{return r=t,(n=e).listType=r.listType,void(n.listAttributes={...r.listAttributes});var n,r}))})),t),de=(t,e,n,r)=>V(r).filter(re).fold((()=>{e.each((t=>{U(t.start,r)&&n.set(!0)}));const o=((t,e,n)=>j(t).filter(_).map((r=>({depth:e,dirty:!1,isSelected:n,content:ae(t),itemAttributes:it(t),listAttributes:it(r),listType:$(r)}))))(r,t,n.get());e.each((t=>{U(t.end,r)&&n.set(!1)}));const s=z(r).filter(re).map((r=>ce(t,e,n,r))).getOr([]);return o.toArray().concat(s)}),(r=>ce(t,e,n,r))),ce=(t,e,n,r)=>T(F(r),(r=>(re(r)?ce:de)(t+1,e,n,r))),ue=(t,e)=>{const n=le(e);return((t,e)=>{const n=L(e,((e,n)=>n.depth>e.length?((t,e,n)=>{const r=((t,e,n)=>{const r=[];for(let o=0;o{for(let e=1;e{for(let e=0;e{st(t.list,e.listAttributes),st(t.item,e.itemAttributes),G(t.item,e.content)}))})(r,n),o=r,I(E(e),D(o),ee),e.concat(r)})(t,e,n):((t,e,n)=>{const r=e.slice(0,n.depth);return E(r).each((e=>{const r=((t,e,n)=>{const r=M("li",t);return st(r,e),G(r,n),r})(t,n.itemAttributes,n.content);((t,e)=>{Z(t.list,e),t.item=e})(e,r),((t,e)=>{$(t.list)!==e.listType&&(t.list=lt(t.list,e.listType)),st(t.list,e.listAttributes)})(e,n)})),r})(t,e,n)),[]);return D(n).map((t=>t.list))})(t.contentDocument,n).toArray()},me=(t,e,n)=>{const r=((t,e)=>{const n=(t=>{let e=!1;return{get:()=>e,set:t=>{e=t}}})();return b(t,(t=>({sourceList:t,entries:ce(0,e,n,t)})))})(e,(t=>{const e=b(jt(t),R);return I(k(e,m(oe)),k(A(e),m(oe)),((t,e)=>({start:t,end:e})))})(t));S(r,(e=>{((t,e)=>{S(N(t,ie),(t=>((t,e)=>{switch(t){case"Indent":e.depth++;break;case"Outdent":e.depth--;break;case"Flatten":e.depth=0}e.dirty=!0})(e,t)))})(e.entries,n);const r=((t,e)=>T(((t,e)=>{if(0===t.length)return[];{let n=e(t[0]);const r=[];let o=[];for(let s=0,i=t.length;sD(e).exists(se)?ue(t,e):((t,e)=>{const n=le(e);return b(n,(e=>{const n=((t,e)=>{const n=document.createDocumentFragment();return S(t,(t=>{n.appendChild(t.dom)})),R(n)})(e.content);return R(Et(t,n.dom))}))})(t,e))))(t,e.entries);var o;S(r,(e=>{Jt(t,"Indent"===n?"IndentList":"OutdentList",e.dom)})),o=e.sourceList,S(r,(t=>{W(o,t)})),X(e.sourceList)}))},pe=(t,e)=>{const n=nt((t=>{const e=(t=>{const e=Vt(t,t.selection.getStart()),n=N(t.selection.getSelectedBlocks(),ft);return e.toArray().concat(n)})(t);return zt(t,e)})(t)),r=nt((t=>N(jt(t),Ct))(t));let o=!1;if(n.length||r.length){const s=t.selection.getBookmark();me(t,n,e),((t,e,n)=>{S(n,"Indent"===e?Mt:e=>Pt(t,e))})(t,e,r),t.selection.moveToBookmark(s),t.selection.setRng(Ut(t.selection.getRng())),t.nodeChanged(),o=!0}return o},ge=(t,e)=>!(t=>{const e=Ht(t);return Wt(t,e)})(t)&&pe(t,e),he=t=>ge(t,"Indent"),fe=t=>ge(t,"Outdent"),ye=t=>ge(t,"Flatten");var ve=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager");const Ce=dt.DOM,be=t=>{const e={},n=n=>{let r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"];if(gt(r)){const t=Ce.create("span",{"data-mce-type":"bookmark"});r.hasChildNodes()?(o=Math.min(o,r.childNodes.length-1),n?r.insertBefore(t,r.childNodes[o]):Ce.insertAfter(t,r.childNodes[o])):r.appendChild(t),r=t,o=0}e[n?"startContainer":"endContainer"]=r,e[n?"startOffset":"endOffset"]=o};return n(!0),t.collapsed||n(),e},Se=t=>{const e=e=>{let n=t[e?"startContainer":"endContainer"],r=t[e?"startOffset":"endOffset"];if(n){if(gt(n)&&n.parentNode){const t=n;r=(t=>{var e;let n=null===(e=t.parentNode)||void 0===e?void 0:e.firstChild,r=0;for(;n;){if(n===t)return r;gt(n)&&"bookmark"===n.getAttribute("data-mce-type")||r++,n=n.nextSibling}return-1})(n),n=n.parentNode,Ce.remove(t),!n.hasChildNodes()&&Ce.isBlock(n)&&n.appendChild(Ce.create("br"))}t[e?"startContainer":"endContainer"]=n,t[e?"startOffset":"endOffset"]=r}};e(!0),e();const n=Ce.createRng();return n.setStart(t.startContainer,t.startOffset),t.endContainer&&n.setEnd(t.endContainer,t.endOffset),Ut(n)},Ne=t=>{switch(t){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}},Le=(t,e)=>{ct.each(e,((e,n)=>{t.setAttribute(n,e)}))},Oe=(t,e,n)=>{((t,e,n)=>{const r=n["list-style-type"]?n["list-style-type"]:null;t.setStyle(e,"list-style-type",r)})(t,e,n),((t,e,n)=>{Le(e,n["list-attributes"]),ct.each(t.select("li",e),(t=>{Le(t,n["list-item-attributes"])}))})(t,e,n)},ke=(t,e,n,r)=>{let o=e[n?"startContainer":"endContainer"];const s=e[n?"startOffset":"endOffset"];for(gt(o)&&(o=o.childNodes[Math.min(s,o.childNodes.length-1)]||o),!n&&St(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){const e=o.parentNode;if(Nt(t,o))return o;if(/^(TD|TH)$/.test(e.nodeName))return o;o=e}return o},Te=(t,e,n)=>{const r=t.selection.getRng();let o="LI";const s=Kt(t,t.selection.getStart(!0)),i=t.dom;if("false"===i.getContentEditable(t.selection.getNode()))return;"DL"===(e=e.toUpperCase())&&(o="DT");const a=be(r),l=((t,e,n)=>{const r=[],o=t.dom,s=ke(t,e,!0,n),i=ke(t,e,!1,n);let a;const l=[];for(let t=s;t&&(l.push(t),t!==i);t=t.nextSibling);return ct.each(l,(e=>{var s;if(Nt(t,e))return r.push(e),void(a=null);if(o.isBlock(e)||St(e))return St(e)&&o.remove(e),void(a=null);const i=e.nextSibling;ve.isBookmarkNode(e)&&(ht(i)||Nt(t,i)||!i&&e.parentNode===n)?a=null:(a||(a=o.create("p"),null===(s=e.parentNode)||void 0===s||s.insertBefore(a,e),r.push(a)),a.appendChild(e))})),r})(t,r,s);ct.each(l,(r=>{let s;const a=r.previousSibling,l=r.parentNode;vt(l)||(a&&ht(a)&&a.nodeName===e&&((t,e,n)=>{const r=t.getStyle(e,"list-style-type");let o=n?n["list-style-type"]:"";return o=null===o?"":o,r===o})(i,a,n)?(s=a,r=i.rename(r,o),a.appendChild(r)):(s=i.create(e),l.insertBefore(s,r),s.appendChild(r),r=i.rename(r,o)),((t,e,n)=>{ct.each(["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],(n=>t.setStyle(e,n,"")))})(i,r),Oe(i,s,n),we(t.dom,s))})),t.selection.setRng(Se(a))},Ae=(t,e,n)=>{return((t,e)=>ht(t)&&t.nodeName===(null==e?void 0:e.nodeName))(e,n)&&((t,e,n)=>t.getStyle(e,"list-style-type",!0)===t.getStyle(n,"list-style-type",!0))(t,e,n)&&(r=n,e.className===r.className);var r},we=(t,e)=>{let n,r=e.nextSibling;if(Ae(t,e,r)){const o=r;for(;n=o.firstChild;)e.appendChild(n);t.remove(o)}if(r=e.previousSibling,Ae(t,e,r)){const o=r;for(;n=o.lastChild;)e.insertBefore(n,e.firstChild);t.remove(o)}},De=t=>"list-style-type"in t,Ee=(t,e,n)=>{const r=Ht(t);if(Zt(t,r))return;const s=(t=>{const e=Ht(t),n=t.selection.getSelectedBlocks();return((t,e)=>a(t)&&1===e.length&&e[0]===t)(e,n)?(t=>N(t.querySelectorAll(_t),ht))(e):N(n,(t=>ht(t)&&e!==t))})(t),i=o(n)?n:{};s.length>0?((t,e,n,r,o)=>{const s=ht(e);if(s&&e.nodeName===r&&!De(o))ye(t);else{Te(t,r,o);const i=be(t.selection.getRng()),a=s?[e,...n]:n;ct.each(a,(e=>{((t,e,n,r)=>{if(e.nodeName!==n){const o=t.dom.rename(e,n);Oe(t.dom,o,r),Jt(t,Ne(n),o)}else Oe(t.dom,e,r),Jt(t,Ne(n),e)})(t,e,r,o)})),t.selection.setRng(Se(i))}})(t,r,s,e,i):((t,e,n,r)=>{if(e!==t.getBody())if(e)if(e.nodeName!==n||De(r)||Qt(e)){const o=be(t.selection.getRng());Oe(t.dom,e,r);const s=t.dom.rename(e,n);we(t.dom,s),t.selection.setRng(Se(o)),Te(t,n,r),Jt(t,Ne(n),s)}else ye(t);else Te(t,n,r),Jt(t,Ne(n),e)})(t,r,e,i)},Be=dt.DOM,xe=(t,e)=>{const n=ct.grep(t.select("ol,ul",e));ct.each(n,(e=>{((t,e)=>{const n=e.parentElement;if(n&&"LI"===n.nodeName&&n.firstChild===e){const r=n.previousSibling;r&&"LI"===r.nodeName?(r.appendChild(e),Ot(t,n)&&Be.remove(n)):Be.setStyle(n,"listStyleType","none")}if(ht(n)){const t=n.previousSibling;t&&"LI"===t.nodeName&&t.appendChild(e)}})(t,e)}))},Ie=(t,e,n,r)=>{let o=e.startContainer;const s=e.startOffset;if(pt(o)&&(n?s0))return o;const i=t.schema.getNonEmptyElements();gt(o)&&(o=Y.getNode(o,s));const a=new tt(o,r);n&&((t,e)=>!!St(e)&&t.isBlock(e.nextSibling)&&!St(e.previousSibling))(t.dom,o)&&a.next();const l=n?a.next.bind(a):a.prev2.bind(a);for(;o=l();){if("LI"===o.nodeName&&!o.hasChildNodes())return o;if(i[o.nodeName])return o;if(pt(o)&&o.data.length>0)return o}return null},Pe=(t,e)=>{const n=e.childNodes;return 1===n.length&&!ht(n[0])&&t.isBlock(n[0])},Me=(t,e,n)=>{let r;const o=e.parentNode;if(!kt(t,e)||!kt(t,n))return;ht(n.lastChild)&&(r=n.lastChild),o===n.lastChild&&St(o.previousSibling)&&t.remove(o.previousSibling);const s=n.lastChild;s&&St(s)&&e.hasChildNodes()&&t.remove(s),Ot(t,n,!0)&&J(R(n)),((t,e,n)=>{let r;const o=Pe(t,n)?n.firstChild:n;if(((t,e)=>{Pe(t,e)&&t.remove(e.firstChild,!0)})(t,e),!Ot(t,e,!0))for(;r=e.firstChild;)o.appendChild(r)})(t,e,n),r&&n.appendChild(r);const i=((t,e)=>{const n=t.dom,r=e.dom;return n!==r&&n.contains(r)})(R(n),R(e))?t.getParents(e,ht,n):[];t.remove(e),S(i,(e=>{Ot(t,e)&&e!==t.getRoot()&&t.remove(e)}))},Re=(t,e)=>{const n=t.dom,r=t.selection,o=r.getStart(),s=Ft(t,o),i=n.getParent(r.getStart(),"LI",s);if(i){const o=i.parentElement;if(o===t.getBody()&&Ot(n,o))return!0;const a=Ut(r.getRng()),l=n.getParent(Ie(t,a,e,s),"LI",s);if(l&&l!==i)return t.undoManager.transact((()=>{var n,r;e?((t,e,n,r)=>{const o=t.dom;if(o.isEmpty(r))((t,e,n)=>{J(R(n)),Me(t.dom,e,n),t.selection.setCursorLocation(n,0)})(t,n,r);else{const s=be(e);Me(o,n,r),t.selection.setRng(Se(s))}})(t,a,l,i):(null===(r=(n=i).parentNode)||void 0===r?void 0:r.firstChild)===n?fe(t):((t,e,n,r)=>{const o=be(e);Me(t.dom,n,r);const s=Se(o);t.selection.setRng(s)})(t,a,i,l)})),!0;if(!l&&!e&&0===a.startOffset&&0===a.endOffset)return t.undoManager.transact((()=>{ye(t)})),!0}return!1},Ue=t=>{const e=t.selection.getStart(),n=Ft(t,e);return t.dom.getParent(e,"LI,DT,DD",n)||jt(t).length>0},$e=(t,e)=>{const n=t.selection;return!Zt(t,n.getNode())&&(n.isCollapsed()?((t,e)=>Re(t,e)||((t,e)=>{const n=t.dom,r=t.selection.getStart(),o=Ft(t,r),s=n.getParent(r,n.isBlock,o);if(s&&n.isEmpty(s)){const r=Ut(t.selection.getRng()),i=n.getParent(Ie(t,r,e,o),"LI",o);if(i){const a=t=>v(["td","th","caption"],$(t)),l=t=>t.dom===o;return!!((t,e,n=u)=>I(t,e,n).getOr(t.isNone()&&e.isNone()))(q(R(i),a,l),q(R(r.startContainer),a,l),U)&&(t.undoManager.transact((()=>{((t,e,n)=>{const r=t.getParent(e.parentNode,t.isBlock,n);t.remove(e),r&&t.isEmpty(r)&&t.remove(r)})(n,s,o),we(n,i.parentNode),t.selection.select(i,!0),t.selection.collapse(e)})),!0)}}return!1})(t,e))(t,e):(t=>!!Ue(t)&&(t.undoManager.transact((()=>{t.execCommand("Delete"),xe(t.dom,t.getBody())})),!0))(t))},_e=t=>{const e=A(Xt(t).split("")),n=b(e,((t,e)=>{const n=t.toUpperCase().charCodeAt(0)-"A".charCodeAt(0)+1;return Math.pow(26,e)*n}));return L(n,((t,e)=>t+e),0)},He=t=>{if(--t<0)return"";{const e=t%26,n=Math.floor(t/26);return He(n)+String.fromCharCode("A".charCodeAt(0)+e)}},je=t=>{const e=parseInt(t.start,10);return x(t.listStyleType,"upper-alpha")?He(e):x(t.listStyleType,"lower-alpha")?He(e).toLowerCase():t.start},Fe=(t,e)=>()=>{const n=Ht(t);return a(n)&&n.nodeName===e},Ke=t=>{t.addCommand("mceListProps",(()=>{(t=>{const e=Ht(t);yt(e)&&!Zt(t,e)&&t.windowManager.open({title:"List Properties",body:{type:"panel",items:[{type:"input",name:"start",label:"Start list at number",inputMode:"numeric"}]},initialData:{start:je({start:t.dom.getAttrib(e,"start","1"),listStyleType:g.from(t.dom.getStyle(e,"list-style-type"))})},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:e=>{(t=>{switch((t=>/^[0-9]+$/.test(t)?2:/^[A-Z]+$/.test(t)?0:/^[a-z]+$/.test(t)?1:t.length>0?4:3)(t)){case 2:return g.some({listStyleType:g.none(),start:t});case 0:return g.some({listStyleType:g.some("upper-alpha"),start:_e(t).toString()});case 1:return g.some({listStyleType:g.some("lower-alpha"),start:_e(t).toString()});case 3:return g.some({listStyleType:g.none(),start:""});case 4:return g.none()}})(e.getData().start).each((e=>{t.execCommand("mceListUpdate",!1,{attrs:{start:"1"===e.start?"":e.start},styles:{"list-style-type":e.listStyleType.getOr("")}})})),e.close()}})})(t)}))},Ve=(t,e)=>n=>Gt(t,(r=>{n.setActive(qt(r.parents,e)),n.setEnabled(!Zt(t,r.element))})),ze=(t,e)=>n=>Gt(t,(r=>n.setEnabled(qt(r.parents,e)&&!Zt(t,r.element))));t.add("lists",(t=>((t=>{(0,t.options.Registro)("lists_indent_on_tab",{processor:"boolean",default:!0})})(t),t.hasPlugin("rtc",!0)?Ke(t):((t=>{At(t)&&(t=>{t.on("keydown",(e=>{e.keyCode!==et.TAB||et.metaKeyPressed(e)||t.undoManager.transact((()=>{(e.shiftKey?fe(t):he(t))&&e.preventDefault()}))}))})(t),(t=>{t.on("ExecCommand",(e=>{const n=e.command.toLowerCase();"delete"!==n&&"forwarddelete"!==n||!Ue(t)||xe(t.dom,t.getBody())})),t.on("keydown",(e=>{e.keyCode===et.BACKSPACE?$e(t,!1)&&e.preventDefault():e.keyCode===et.DELETE&&$e(t,!0)&&e.preventDefault()}))})(t)})(t),(t=>{t.on("BeforeExecCommand",(e=>{const n=e.command.toLowerCase();"indent"===n?he(t):"outdent"===n&&fe(t)})),t.addCommand("InsertUnorderedList",((e,n)=>{Ee(t,"UL",n)})),t.addCommand("InsertOrderedList",((e,n)=>{Ee(t,"OL",n)})),t.addCommand("InsertDefinitionList",((e,n)=>{Ee(t,"DL",n)})),t.addCommand("RemoveList",(()=>{ye(t)})),Ke(t),t.addCommand("mceListUpdate",((e,n)=>{o(n)&&((t,e)=>{const n=Ht(t);null===n||Zt(t,n)||t.undoManager.transact((()=>{o(e.styles)&&t.dom.setStyles(n,e.styles),o(e.attrs)&&ot(e.attrs,((e,r)=>t.dom.setAttrib(n,r,e)))}))})(t,n)})),t.addQueryStateHandler("InsertUnorderedList",Fe(t,"UL")),t.addQueryStateHandler("InsertOrderedList",Fe(t,"OL")),t.addQueryStateHandler("InsertDefinitionList",Fe(t,"DL"))})(t)),(t=>{const e=e=>()=>t.execCommand(e);t.hasPlugin("advlist")||(t.ui.registry.addToggleButton("numlist",{icon:"ordered-list",active:!1,tooltip:"Numbered list",onAction:e("InsertOrderedList"),onSetup:Ve(t,"OL")}),t.ui.registry.addToggleButton("bullist",{icon:"unordered-list",active:!1,tooltip:"Bullet list",onAction:e("InsertUnorderedList"),onSetup:Ve(t,"UL")}))})(t),(t=>{const e={text:"List properties...",icon:"ordered-list",onAction:()=>t.execCommand("mceListProps"),onSetup:ze(t,"OL")};t.ui.registry.addMenuItem("listprops",e),t.ui.registry.addContextMenu("lists",{update:e=>{const n=Ht(t,e);return yt(n)?["listprops"]:[]}})})(t),(t=>({backspaceDelete:e=>{$e(t,e)}}))(t))))}(); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/media/index.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/index.js new file mode 100644 index 0000000..b69a10d --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/index.js @@ -0,0 +1,7 @@ +// Exports the "media" plugin for usage with module loaders +// Usage: +// CommonJS: +// require('tinymce/plugins/media') +// ES2015: +// import 'tinymce/plugins/media' +require('./plugin.js'); \ No newline at end of file diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.js new file mode 100644 index 0000000..bb18f2b --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.js @@ -0,0 +1,1172 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ + +(function () { + 'use strict'; + + var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + const hasProto = (v, constructor, predicate) => { + var _a; + if (predicate(v, constructor.prototype)) { + return true; + } else { + return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name; + } + }; + const typeOf = x => { + const t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && Array.isArray(x)) { + return 'array'; + } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) { + return 'string'; + } else { + return t; + } + }; + const isType = type => value => typeOf(value) === type; + const isString = isType('string'); + const isObject = isType('object'); + const isArray = isType('array'); + const isNullable = a => a === null || a === undefined; + const isNonNullable = a => !isNullable(a); + + class Optional { + constructor(tag, value) { + this.tag = tag; + this.value = value; + } + static some(value) { + return new Optional(true, value); + } + static none() { + return Optional.singletonNone; + } + fold(onNone, onSome) { + if (this.tag) { + return onSome(this.value); + } else { + return onNone(); + } + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(mapper) { + if (this.tag) { + return Optional.some(mapper(this.value)); + } else { + return Optional.none(); + } + } + bind(binder) { + if (this.tag) { + return binder(this.value); + } else { + return Optional.none(); + } + } + exists(predicate) { + return this.tag && predicate(this.value); + } + forall(predicate) { + return !this.tag || predicate(this.value); + } + filter(predicate) { + if (!this.tag || predicate(this.value)) { + return this; + } else { + return Optional.none(); + } + } + getOr(replacement) { + return this.tag ? this.value : replacement; + } + or(replacement) { + return this.tag ? this : replacement; + } + getOrThunk(thunk) { + return this.tag ? this.value : thunk(); + } + orThunk(thunk) { + return this.tag ? this : thunk(); + } + getOrDie(message) { + if (!this.tag) { + throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None'); + } else { + return this.value; + } + } + static from(value) { + return isNonNullable(value) ? Optional.some(value) : Optional.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(worker) { + if (this.tag) { + worker(this.value); + } + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${ this.value })` : 'none()'; + } + } + Optional.singletonNone = new Optional(false); + + const nativePush = Array.prototype.push; + const each$1 = (xs, f) => { + for (let i = 0, len = xs.length; i < len; i++) { + const x = xs[i]; + f(x, i); + } + }; + const flatten = xs => { + const r = []; + for (let i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + + const Cell = initial => { + let value = initial; + const get = () => { + return value; + }; + const set = v => { + value = v; + }; + return { + get, + set + }; + }; + + const keys = Object.keys; + const hasOwnProperty = Object.hasOwnProperty; + const each = (obj, f) => { + const props = keys(obj); + for (let k = 0, len = props.length; k < len; k++) { + const i = props[k]; + const x = obj[i]; + f(x, i); + } + }; + const get$1 = (obj, key) => { + return has(obj, key) ? Optional.from(obj[key]) : Optional.none(); + }; + const has = (obj, key) => hasOwnProperty.call(obj, key); + + const option = name => editor => editor.options.get(name); + const Registro$2 = editor => { + const RegistroOption = editor.options.Registro; + RegistroOption('audio_template_callback', { processor: 'function' }); + RegistroOption('video_template_callback', { processor: 'function' }); + RegistroOption('iframe_template_callback', { processor: 'function' }); + RegistroOption('media_live_embeds', { + processor: 'boolean', + default: true + }); + RegistroOption('media_filter_html', { + processor: 'boolean', + default: true + }); + RegistroOption('media_url_resolver', { processor: 'function' }); + RegistroOption('media_alt_source', { + processor: 'boolean', + default: true + }); + RegistroOption('media_poster', { + processor: 'boolean', + default: true + }); + RegistroOption('media_dimensions', { + processor: 'boolean', + default: true + }); + }; + const getAudioTemplateCallback = option('audio_template_callback'); + const getVideoTemplateCallback = option('video_template_callback'); + const getIframeTemplateCallback = option('iframe_template_callback'); + const hasLiveEmbeds = option('media_live_embeds'); + const shouldFilterHtml = option('media_filter_html'); + const getUrlResolver = option('media_url_resolver'); + const hasAltSource = option('media_alt_source'); + const hasPoster = option('media_poster'); + const hasDimensions = option('media_dimensions'); + + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.html.DomParser'); + + const DOM$1 = global$4.DOM; + const trimPx = value => value.replace(/px$/, ''); + const getEphoxEmbedData = node => { + const style = node.attr('style'); + const styles = style ? DOM$1.parseStyle(style) : {}; + return { + type: 'ephox-embed-iri', + source: node.attr('data-ephox-embed-iri'), + altsource: '', + poster: '', + width: get$1(styles, 'max-width').map(trimPx).getOr(''), + height: get$1(styles, 'max-height').map(trimPx).getOr('') + }; + }; + const htmlToData = (html, schema) => { + let data = {}; + const parser = global$3({ + validate: false, + forced_root_block: false + }, schema); + const rootNode = parser.parse(html); + for (let node = rootNode; node; node = node.walk()) { + if (node.type === 1) { + const name = node.name; + if (node.attr('data-ephox-embed-iri')) { + data = getEphoxEmbedData(node); + break; + } else { + if (!data.source && name === 'param') { + data.source = node.attr('movie'); + } + if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') { + if (!data.type) { + data.type = name; + } + data = global$5.extend(node.attributes.map, data); + } + if (name === 'script') { + data = { + type: 'script', + source: node.attr('src') + }; + } + if (name === 'source') { + if (!data.source) { + data.source = node.attr('src'); + } else if (!data.altsource) { + data.altsource = node.attr('src'); + } + } + if (name === 'img' && !data.poster) { + data.poster = node.attr('src'); + } + } + } + } + data.source = data.source || data.src || ''; + data.altsource = data.altsource || ''; + data.poster = data.poster || ''; + return data; + }; + + const guess = url => { + var _a; + const mimes = { + mp3: 'audio/mpeg', + m4a: 'audio/x-m4a', + wav: 'audio/wav', + mp4: 'video/mp4', + webm: 'video/webm', + ogg: 'video/ogg', + swf: 'application/x-shockwave-flash' + }; + const fileEnd = (_a = url.toLowerCase().split('.').pop()) !== null && _a !== void 0 ? _a : ''; + return get$1(mimes, fileEnd).getOr(''); + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.html.Node'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.html.Serializer'); + + const Parser = (schema, settings = {}) => global$3({ + forced_root_block: false, + validate: false, + allow_conditional_comments: true, + ...settings + }, schema); + + const DOM = global$4.DOM; + const addPx = value => /^[0-9.]+$/.test(value) ? value + 'px' : value; + const updateEphoxEmbed = (data, node) => { + const style = node.attr('style'); + const styleMap = style ? DOM.parseStyle(style) : {}; + if (isNonNullable(data.width)) { + styleMap['max-width'] = addPx(data.width); + } + if (isNonNullable(data.height)) { + styleMap['max-height'] = addPx(data.height); + } + node.attr('style', DOM.serializeStyle(styleMap)); + }; + const sources = [ + 'source', + 'altsource' + ]; + const updateHtml = (html, data, updateAll, schema) => { + let numSources = 0; + let sourceCount = 0; + const parser = Parser(schema); + parser.addNodeFilter('source', nodes => numSources = nodes.length); + const rootNode = parser.parse(html); + for (let node = rootNode; node; node = node.walk()) { + if (node.type === 1) { + const name = node.name; + if (node.attr('data-ephox-embed-iri')) { + updateEphoxEmbed(data, node); + break; + } else { + switch (name) { + case 'video': + case 'object': + case 'embed': + case 'img': + case 'iframe': + if (data.height !== undefined && data.width !== undefined) { + node.attr('width', data.width); + node.attr('height', data.height); + } + break; + } + if (updateAll) { + switch (name) { + case 'video': + node.attr('poster', data.poster); + node.attr('src', null); + for (let index = numSources; index < 2; index++) { + if (data[sources[index]]) { + const source = new global$2('source', 1); + source.attr('src', data[sources[index]]); + source.attr('type', data[sources[index] + 'mime'] || null); + node.append(source); + } + } + break; + case 'iframe': + node.attr('src', data.source); + break; + case 'object': + const hasImage = node.getAll('img').length > 0; + if (data.poster && !hasImage) { + node.attr('src', data.poster); + const img = new global$2('img', 1); + img.attr('src', data.poster); + img.attr('width', data.width); + img.attr('height', data.height); + node.append(img); + } + break; + case 'source': + if (sourceCount < 2) { + node.attr('src', data[sources[sourceCount]]); + node.attr('type', data[sources[sourceCount] + 'mime'] || null); + if (!data[sources[sourceCount]]) { + node.remove(); + continue; + } + } + sourceCount++; + break; + case 'img': + if (!data.poster) { + node.remove(); + } + break; + } + } + } + } + } + return global$1({}, schema).serialize(rootNode); + }; + + const urlPatterns = [ + { + regex: /youtu\.be\/([\w\-_\?&=.]+)/i, + type: 'iframe', + w: 560, + h: 314, + url: 'www.youtube.com/embed/$1', + allowFullscreen: true + }, + { + regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i, + type: 'iframe', + w: 560, + h: 314, + url: 'www.youtube.com/embed/$2?$4', + allowFullscreen: true + }, + { + regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i, + type: 'iframe', + w: 560, + h: 314, + url: 'www.youtube.com/embed/$1', + allowFullscreen: true + }, + { + regex: /vimeo\.com\/([0-9]+)/, + type: 'iframe', + w: 425, + h: 350, + url: 'player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc', + allowFullscreen: true + }, + { + regex: /vimeo\.com\/(.*)\/([0-9]+)/, + type: 'iframe', + w: 425, + h: 350, + url: 'player.vimeo.com/video/$2?title=0&byline=0', + allowFullscreen: true + }, + { + regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, + type: 'iframe', + w: 425, + h: 350, + url: 'maps.google.com/maps/ms?msid=$2&output=embed"', + allowFullscreen: false + }, + { + regex: /dailymotion\.com\/video\/([^_]+)/, + type: 'iframe', + w: 480, + h: 270, + url: 'www.dailymotion.com/embed/video/$1', + allowFullscreen: true + }, + { + regex: /dai\.ly\/([^_]+)/, + type: 'iframe', + w: 480, + h: 270, + url: 'www.dailymotion.com/embed/video/$1', + allowFullscreen: true + } + ]; + const getProtocol = url => { + const protocolMatches = url.match(/^(https?:\/\/|www\.)(.+)$/i); + if (protocolMatches && protocolMatches.length > 1) { + return protocolMatches[1] === 'www.' ? 'https://' : protocolMatches[1]; + } else { + return 'https://'; + } + }; + const getUrl = (pattern, url) => { + const protocol = getProtocol(url); + const match = pattern.regex.exec(url); + let newUrl = protocol + pattern.url; + if (isNonNullable(match)) { + for (let i = 0; i < match.length; i++) { + newUrl = newUrl.replace('$' + i, () => match[i] ? match[i] : ''); + } + } + return newUrl.replace(/\?$/, ''); + }; + const matchPattern = url => { + const patterns = urlPatterns.filter(pattern => pattern.regex.test(url)); + if (patterns.length > 0) { + return global$5.extend({}, patterns[0], { url: getUrl(patterns[0], url) }); + } else { + return null; + } + }; + + const getIframeHtml = (data, iframeTemplateCallback) => { + if (iframeTemplateCallback) { + return iframeTemplateCallback(data); + } else { + const allowFullscreen = data.allowfullscreen ? ' allowFullscreen="1"' : ''; + return ''; + } + }; + const getFlashHtml = data => { + let html = ''; + if (data.poster) { + html += ''; + } + html += ''; + return html; + }; + const getAudioHtml = (data, audioTemplateCallback) => { + if (audioTemplateCallback) { + return audioTemplateCallback(data); + } else { + return ''; + } + }; + const getVideoHtml = (data, videoTemplateCallback) => { + if (videoTemplateCallback) { + return videoTemplateCallback(data); + } else { + return ''; + } + }; + const getScriptHtml = data => { + return ''; + }; + const dataToHtml = (editor, dataIn) => { + var _a; + const data = global$5.extend({}, dataIn); + if (!data.source) { + global$5.extend(data, htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema)); + if (!data.source) { + return ''; + } + } + if (!data.altsource) { + data.altsource = ''; + } + if (!data.poster) { + data.poster = ''; + } + data.source = editor.convertURL(data.source, 'source'); + data.altsource = editor.convertURL(data.altsource, 'source'); + data.sourcemime = guess(data.source); + data.altsourcemime = guess(data.altsource); + data.poster = editor.convertURL(data.poster, 'poster'); + const pattern = matchPattern(data.source); + if (pattern) { + data.source = pattern.url; + data.type = pattern.type; + data.allowfullscreen = pattern.allowFullscreen; + data.width = data.width || String(pattern.w); + data.height = data.height || String(pattern.h); + } + if (data.embed) { + return updateHtml(data.embed, data, true, editor.schema); + } else { + const audioTemplateCallback = getAudioTemplateCallback(editor); + const videoTemplateCallback = getVideoTemplateCallback(editor); + const iframeTemplateCallback = getIframeTemplateCallback(editor); + data.width = data.width || '300'; + data.height = data.height || '150'; + global$5.each(data, (value, key) => { + data[key] = editor.dom.encode('' + value); + }); + if (data.type === 'iframe') { + return getIframeHtml(data, iframeTemplateCallback); + } else if (data.sourcemime === 'application/x-shockwave-flash') { + return getFlashHtml(data); + } else if (data.sourcemime.indexOf('audio') !== -1) { + return getAudioHtml(data, audioTemplateCallback); + } else if (data.type === 'script') { + return getScriptHtml(data); + } else { + return getVideoHtml(data, videoTemplateCallback); + } + } + }; + + const isMediaElement = element => element.hasAttribute('data-mce-object') || element.hasAttribute('data-ephox-embed-iri'); + const setup$2 = editor => { + editor.on('click keyup touchend', () => { + const selectedNode = editor.selection.getNode(); + if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { + if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { + selectedNode.setAttribute('data-mce-selected', '2'); + } + } + }); + editor.on('ObjectSelected', e => { + const objectType = e.target.getAttribute('data-mce-object'); + if (objectType === 'script') { + e.preventDefault(); + } + }); + editor.on('ObjectResized', e => { + const target = e.target; + if (target.getAttribute('data-mce-object')) { + let html = target.getAttribute('data-mce-html'); + if (html) { + html = unescape(html); + target.setAttribute('data-mce-html', escape(updateHtml(html, { + width: String(e.width), + height: String(e.height) + }, false, editor.schema))); + } + } + }); + }; + + const cache = {}; + const embedPromise = (data, dataToHtml, handler) => { + return new Promise((res, rej) => { + const wrappedResolve = response => { + if (response.html) { + cache[data.source] = response; + } + return res({ + url: data.source, + html: response.html ? response.html : dataToHtml(data) + }); + }; + if (cache[data.source]) { + wrappedResolve(cache[data.source]); + } else { + handler({ url: data.source }, wrappedResolve, rej); + } + }); + }; + const defaultPromise = (data, dataToHtml) => Promise.resolve({ + html: dataToHtml(data), + url: data.source + }); + const loadedData = editor => data => dataToHtml(editor, data); + const getEmbedHtml = (editor, data) => { + const embedHandler = getUrlResolver(editor); + return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); + }; + const isCached = url => has(cache, url); + + const extractMeta = (sourceInput, data) => get$1(data, sourceInput).bind(mainData => get$1(mainData, 'meta')); + const getValue = (data, metaData, sourceInput) => prop => { + const getFromData = () => get$1(data, prop); + const getFromMetaData = () => get$1(metaData, prop); + const getNonEmptyValue = c => get$1(c, 'value').bind(v => v.length > 0 ? Optional.some(v) : Optional.none()); + const getFromValueFirst = () => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(() => Optional.from(child))); + const getFromMetaFirst = () => getFromMetaData().orThunk(() => getFromData().bind(child => isObject(child) ? getNonEmptyValue(child) : Optional.from(child))); + return { [prop]: (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr('') }; + }; + const getDimensions = (data, metaData) => { + const dimensions = {}; + get$1(data, 'dimensions').each(dims => { + each$1([ + 'width', + 'height' + ], prop => { + get$1(metaData, prop).orThunk(() => get$1(dims, prop)).each(value => dimensions[prop] = value); + }); + }); + return dimensions; + }; + const unwrap = (data, sourceInput) => { + const metaData = sourceInput && sourceInput !== 'dimensions' ? extractMeta(sourceInput, data).getOr({}) : {}; + const get = getValue(data, metaData, sourceInput); + return { + ...get('source'), + ...get('altsource'), + ...get('poster'), + ...get('embed'), + ...getDimensions(data, metaData) + }; + }; + const wrap = data => { + const wrapped = { + ...data, + source: { value: get$1(data, 'source').getOr('') }, + altsource: { value: get$1(data, 'altsource').getOr('') }, + poster: { value: get$1(data, 'poster').getOr('') } + }; + each$1([ + 'width', + 'height' + ], prop => { + get$1(data, prop).each(value => { + const dimensions = wrapped.dimensions || {}; + dimensions[prop] = value; + wrapped.dimensions = dimensions; + }); + }); + return wrapped; + }; + const handleError = editor => error => { + const errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; + editor.notificationManager.open({ + type: 'error', + text: errorMessage + }); + }; + const getEditorData = editor => { + const element = editor.selection.getNode(); + const snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : ''; + return { + embed: snippet, + ...htmlToData(snippet, editor.schema) + }; + }; + const addEmbedHtml = (api, editor) => response => { + if (isString(response.url) && response.url.trim().length > 0) { + const html = response.html; + const snippetData = htmlToData(html, editor.schema); + const nuData = { + ...snippetData, + source: response.url, + embed: html + }; + api.setData(wrap(nuData)); + } + }; + const selectPlaceholder = (editor, beforeObjects) => { + const afterObjects = editor.dom.select('*[data-mce-object]'); + for (let i = 0; i < beforeObjects.length; i++) { + for (let y = afterObjects.length - 1; y >= 0; y--) { + if (beforeObjects[i] === afterObjects[y]) { + afterObjects.splice(y, 1); + } + } + } + editor.selection.select(afterObjects[0]); + }; + const handleInsert = (editor, html) => { + const beforeObjects = editor.dom.select('*[data-mce-object]'); + editor.insertContent(html); + selectPlaceholder(editor, beforeObjects); + editor.nodeChanged(); + }; + const submitForm = (prevData, newData, editor) => { + var _a; + newData.embed = updateHtml((_a = newData.embed) !== null && _a !== void 0 ? _a : '', newData, false, editor.schema); + if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) { + handleInsert(editor, newData.embed); + } else { + getEmbedHtml(editor, newData).then(response => { + handleInsert(editor, response.html); + }).catch(handleError(editor)); + } + }; + const showDialog = editor => { + const editorData = getEditorData(editor); + const currentData = Cell(editorData); + const initialData = wrap(editorData); + const handleSource = (prevData, api) => { + const serviceData = unwrap(api.getData(), 'source'); + if (prevData.source !== serviceData.source) { + addEmbedHtml(win, editor)({ + url: serviceData.source, + html: '' + }); + getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor)); + } + }; + const handleEmbed = api => { + var _a; + const data = unwrap(api.getData()); + const dataFromEmbed = htmlToData((_a = data.embed) !== null && _a !== void 0 ? _a : '', editor.schema); + api.setData(wrap(dataFromEmbed)); + }; + const handleUpdate = (api, sourceInput) => { + const data = unwrap(api.getData(), sourceInput); + const embed = dataToHtml(editor, data); + api.setData(wrap({ + ...data, + embed + })); + }; + const mediaInput = [{ + name: 'source', + type: 'urlinput', + filetype: 'media', + label: 'Source' + }]; + const sizeInput = !hasDimensions(editor) ? [] : [{ + type: 'sizeinput', + name: 'dimensions', + label: 'Constrain proportions', + constrain: true + }]; + const generalTab = { + title: 'General', + name: 'general', + items: flatten([ + mediaInput, + sizeInput + ]) + }; + const embedTextarea = { + type: 'textarea', + name: 'embed', + label: 'Paste your embed code below:' + }; + const embedTab = { + title: 'Embed', + items: [embedTextarea] + }; + const advancedFormItems = []; + if (hasAltSource(editor)) { + advancedFormItems.push({ + name: 'altsource', + type: 'urlinput', + filetype: 'media', + label: 'Alternative source URL' + }); + } + if (hasPoster(editor)) { + advancedFormItems.push({ + name: 'poster', + type: 'urlinput', + filetype: 'image', + label: 'Media poster (Image URL)' + }); + } + const advancedTab = { + title: 'Advanced', + name: 'advanced', + items: advancedFormItems + }; + const tabs = [ + generalTab, + embedTab + ]; + if (advancedFormItems.length > 0) { + tabs.push(advancedTab); + } + const body = { + type: 'tabpanel', + tabs + }; + const win = editor.windowManager.open({ + title: 'Insert/Edit Media', + size: 'normal', + body, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: api => { + const serviceData = unwrap(api.getData()); + submitForm(currentData.get(), serviceData, editor); + api.close(); + }, + onChange: (api, detail) => { + switch (detail.name) { + case 'source': + handleSource(currentData.get(), api); + break; + case 'embed': + handleEmbed(api); + break; + case 'dimensions': + case 'altsource': + case 'poster': + handleUpdate(api, detail.name); + break; + } + currentData.set(unwrap(api.getData())); + }, + initialData + }); + }; + + const get = editor => { + const showDialog$1 = () => { + showDialog(editor); + }; + return { showDialog: showDialog$1 }; + }; + + const Registro$1 = editor => { + const showDialog$1 = () => { + showDialog(editor); + }; + editor.addCommand('mceMedia', showDialog$1); + }; + + const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr; + const startsWith = (str, prefix) => { + return checkRange(str, prefix, 0); + }; + + var global = tinymce.util.Tools.resolve('tinymce.Env'); + + const isLiveEmbedNode = node => { + const name = node.name; + return name === 'iframe' || name === 'video' || name === 'audio'; + }; + const getDimension = (node, styles, dimension, defaultValue = null) => { + const value = node.attr(dimension); + if (isNonNullable(value)) { + return value; + } else if (!has(styles, dimension)) { + return defaultValue; + } else { + return null; + } + }; + const setDimensions = (node, previewNode, styles) => { + const useDefaults = previewNode.name === 'img' || node.name === 'video'; + const defaultWidth = useDefaults ? '300' : null; + const fallbackHeight = node.name === 'audio' ? '30' : '150'; + const defaultHeight = useDefaults ? fallbackHeight : null; + previewNode.attr({ + width: getDimension(node, styles, 'width', defaultWidth), + height: getDimension(node, styles, 'height', defaultHeight) + }); + }; + const appendNodeContent = (editor, nodeName, previewNode, html) => { + const newNode = Parser(editor.schema).parse(html, { context: nodeName }); + while (newNode.firstChild) { + previewNode.append(newNode.firstChild); + } + }; + const createPlaceholderNode = (editor, node) => { + const name = node.name; + const placeHolder = new global$2('img', 1); + retainAttributesAndInnerHtml(editor, node, placeHolder); + setDimensions(node, placeHolder, {}); + placeHolder.attr({ + 'style': node.attr('style'), + 'src': global.transparentSrc, + 'data-mce-object': name, + 'class': 'mce-object mce-object-' + name + }); + return placeHolder; + }; + const createPreviewNode = (editor, node) => { + var _a; + const name = node.name; + const previewWrapper = new global$2('span', 1); + previewWrapper.attr({ + 'contentEditable': 'false', + 'style': node.attr('style'), + 'data-mce-object': name, + 'class': 'mce-preview-object mce-object-' + name + }); + retainAttributesAndInnerHtml(editor, node, previewWrapper); + const styles = editor.dom.parseStyle((_a = node.attr('style')) !== null && _a !== void 0 ? _a : ''); + const previewNode = new global$2(name, 1); + setDimensions(node, previewNode, styles); + previewNode.attr({ + src: node.attr('src'), + style: node.attr('style'), + class: node.attr('class') + }); + if (name === 'iframe') { + previewNode.attr({ + allowfullscreen: node.attr('allowfullscreen'), + frameborder: '0' + }); + } else { + const attrs = [ + 'controls', + 'crossorigin', + 'currentTime', + 'loop', + 'muted', + 'poster', + 'preload' + ]; + each$1(attrs, attrName => { + previewNode.attr(attrName, node.attr(attrName)); + }); + const sanitizedHtml = previewWrapper.attr('data-mce-html'); + if (isNonNullable(sanitizedHtml)) { + appendNodeContent(editor, name, previewNode, unescape(sanitizedHtml)); + } + } + const shimNode = new global$2('span', 1); + shimNode.attr('class', 'mce-shim'); + previewWrapper.append(previewNode); + previewWrapper.append(shimNode); + return previewWrapper; + }; + const retainAttributesAndInnerHtml = (editor, sourceNode, targetNode) => { + var _a; + const attribs = (_a = sourceNode.attributes) !== null && _a !== void 0 ? _a : []; + let ai = attribs.length; + while (ai--) { + const attrName = attribs[ai].name; + let attrValue = attribs[ai].value; + if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style' && !startsWith(attrName, 'data-mce-')) { + if (attrName === 'data' || attrName === 'src') { + attrValue = editor.convertURL(attrValue, attrName); + } + targetNode.attr('data-mce-p-' + attrName, attrValue); + } + } + const serializer = global$1({ inner: true }, editor.schema); + const tempNode = new global$2('div', 1); + each$1(sourceNode.children(), child => tempNode.append(child)); + const innerHtml = serializer.serialize(tempNode); + if (innerHtml) { + targetNode.attr('data-mce-html', escape(innerHtml)); + targetNode.empty(); + } + }; + const isPageEmbedWrapper = node => { + const nodeClass = node.attr('class'); + return isString(nodeClass) && /\btiny-pageembed\b/.test(nodeClass); + }; + const isWithinEmbedWrapper = node => { + let tempNode = node; + while (tempNode = tempNode.parent) { + if (tempNode.attr('data-ephox-embed-iri') || isPageEmbedWrapper(tempNode)) { + return true; + } + } + return false; + }; + const placeHolderConverter = editor => nodes => { + let i = nodes.length; + let node; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + if (node.parent.attr('data-mce-object')) { + continue; + } + if (isLiveEmbedNode(node) && hasLiveEmbeds(editor)) { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPreviewNode(editor, node)); + } + } else { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPlaceholderNode(editor, node)); + } + } + } + }; + + const parseAndSanitize = (editor, context, html) => { + const validate = shouldFilterHtml(editor); + return Parser(editor.schema, { validate }).parse(html, { context }); + }; + + const setup$1 = editor => { + editor.on('PreInit', () => { + const {schema, serializer, parser} = editor; + const boolAttrs = schema.getBoolAttrs(); + each$1('webkitallowfullscreen mozallowfullscreen'.split(' '), name => { + boolAttrs[name] = {}; + }); + each({ embed: ['wmode'] }, (attrs, name) => { + const rule = schema.getElementRule(name); + if (rule) { + each$1(attrs, attr => { + rule.attributes[attr] = {}; + rule.attributesOrder.push(attr); + }); + } + }); + parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor)); + serializer.addAttributeFilter('data-mce-object', (nodes, name) => { + var _a; + let i = nodes.length; + while (i--) { + const node = nodes[i]; + if (!node.parent) { + continue; + } + const realElmName = node.attr(name); + const realElm = new global$2(realElmName, 1); + if (realElmName !== 'audio' && realElmName !== 'script') { + const className = node.attr('class'); + if (className && className.indexOf('mce-preview-object') !== -1 && node.firstChild) { + realElm.attr({ + width: node.firstChild.attr('width'), + height: node.firstChild.attr('height') + }); + } else { + realElm.attr({ + width: node.attr('width'), + height: node.attr('height') + }); + } + } + realElm.attr({ style: node.attr('style') }); + const attribs = (_a = node.attributes) !== null && _a !== void 0 ? _a : []; + let ai = attribs.length; + while (ai--) { + const attrName = attribs[ai].name; + if (attrName.indexOf('data-mce-p-') === 0) { + realElm.attr(attrName.substr(11), attribs[ai].value); + } + } + if (realElmName === 'script') { + realElm.attr('type', 'text/javascript'); + } + const innerHtml = node.attr('data-mce-html'); + if (innerHtml) { + const fragment = parseAndSanitize(editor, realElmName, unescape(innerHtml)); + each$1(fragment.children(), child => realElm.append(child)); + } + node.replace(realElm); + } + }); + }); + editor.on('SetContent', () => { + const dom = editor.dom; + each$1(dom.select('span.mce-preview-object'), elm => { + if (dom.select('span.mce-shim', elm).length === 0) { + dom.add(elm, 'span', { class: 'mce-shim' }); + } + }); + }); + }; + + const setup = editor => { + editor.on('ResolveName', e => { + let name; + if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { + e.name = name; + } + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceMedia'); + editor.ui.registry.addToggleButton('media', { + tooltip: 'Insert/edit media', + icon: 'embed', + onAction, + onSetup: buttonApi => { + const selection = editor.selection; + buttonApi.setActive(isMediaElement(selection.getNode())); + return selection.selectorChangedWithUnbind('img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]', buttonApi.setActive).unbind; + } + }); + editor.ui.registry.addMenuItem('media', { + icon: 'embed', + text: 'Media...', + onAction + }); + }; + + var Plugin = () => { + global$6.add('media', editor => { + Registro$2(editor); + Registro$1(editor); + Registro(editor); + setup(editor); + setup$1(editor); + setup$2(editor); + return get(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.min.js new file mode 100644 index 0000000..0ee88f4 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/media/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=a=e,(o=String).prototype.isPrototypeOf(r)||(null===(s=a.constructor)||void 0===s?void 0:s.name)===o.name)?"string":t;var r,a,o,s})(t)===e,r=t("string"),a=t("object"),o=t("array"),s=e=>!(e=>null==e)(e);class i{constructor(e,t){this.tag=e,this.value=t}static some(e){return new i(!0,e)}static none(){return i.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?i.some(e(this.value)):i.none()}bind(e){return this.tag?e(this.value):i.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:i.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?i.some(e):i.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}i.singletonNone=new i(!1);const n=Array.prototype.push,c=(e,t)=>{for(let r=0,a=e.length;r{const t=[];for(let r=0,a=e.length;rh(e,t)?i.from(e[t]):i.none(),h=(e,t)=>u.call(e,t),p=e=>t=>t.options.get(e),g=p("audio_template_callback"),b=p("video_template_callback"),w=p("iframe_template_callback"),v=p("media_live_embeds"),f=p("media_filter_html"),y=p("media_url_resolver"),x=p("media_alt_source"),_=p("media_poster"),j=p("media_dimensions");var k=tinymce.util.Tools.resolve("tinymce.util.Tools"),O=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),A=tinymce.util.Tools.resolve("tinymce.html.DomParser");const S=O.DOM,C=e=>e.replace(/px$/,""),D=e=>{const t=e.attr("style"),r=t?S.parseStyle(t):{};return{type:"ephox-embed-iri",source:e.attr("data-ephox-embed-iri"),altsource:"",poster:"",width:d(r,"max-width").map(C).getOr(""),height:d(r,"max-height").map(C).getOr("")}},T=(e,t)=>{let r={};for(let a=A({validate:!1,forced_root_block:!1},t).parse(e);a;a=a.walk())if(1===a.type){const e=a.name;if(a.attr("data-ephox-embed-iri")){r=D(a);break}r.source||"param"!==e||(r.source=a.attr("movie")),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(r.type||(r.type=e),r=k.extend(a.attributes.map,r)),"script"===e&&(r={type:"script",source:a.attr("src")}),"source"===e&&(r.source?r.altsource||(r.altsource=a.attr("src")):r.source=a.attr("src")),"img"!==e||r.poster||(r.poster=a.attr("src"))}return r.source=r.source||r.src||"",r.altsource=r.altsource||"",r.poster=r.poster||"",r},$=e=>{var t;const r=null!==(t=e.toLowerCase().split(".").pop())&&void 0!==t?t:"";return d({mp3:"audio/mpeg",m4a:"audio/x-m4a",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"},r).getOr("")};var z=tinymce.util.Tools.resolve("tinymce.html.Node"),M=tinymce.util.Tools.resolve("tinymce.html.Serializer");const F=(e,t={})=>A({forced_root_block:!1,validate:!1,allow_conditional_comments:!0,...t},e),N=O.DOM,R=e=>/^[0-9.]+$/.test(e)?e+"px":e,U=(e,t)=>{const r=t.attr("style"),a=r?N.parseStyle(r):{};s(e.width)&&(a["max-width"]=R(e.width)),s(e.height)&&(a["max-height"]=R(e.height)),t.attr("style",N.serializeStyle(a))},P=["source","altsource"],E=(e,t,r,a)=>{let o=0,s=0;const i=F(a);i.addNodeFilter("source",(e=>o=e.length));const n=i.parse(e);for(let e=n;e;e=e.walk())if(1===e.type){const a=e.name;if(e.attr("data-ephox-embed-iri")){U(t,e);break}switch(a){case"video":case"object":case"embed":case"img":case"iframe":void 0!==t.height&&void 0!==t.width&&(e.attr("width",t.width),e.attr("height",t.height))}if(r)switch(a){case"video":e.attr("poster",t.poster),e.attr("src",null);for(let r=o;r<2;r++)if(t[P[r]]){const a=new z("source",1);a.attr("src",t[P[r]]),a.attr("type",t[P[r]+"mime"]||null),e.append(a)}break;case"iframe":e.attr("src",t.source);break;case"object":const r=e.getAll("img").length>0;if(t.poster&&!r){e.attr("src",t.poster);const r=new z("img",1);r.attr("src",t.poster),r.attr("width",t.width),r.attr("height",t.height),e.append(r)}break;case"source":if(s<2&&(e.attr("src",t[P[s]]),e.attr("type",t[P[s]+"mime"]||null),!t[P[s]])){e.remove();continue}s++;break;case"img":t.poster||e.remove()}}return M({},a).serialize(n)},L=[{regex:/youtu\.be\/([\w\-_\?&=.]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$2?$4",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,type:"iframe",w:560,h:314,url:"www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"player.vimeo.com/video/$2?title=0&byline=0",allowFullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],I=(e,t)=>{const r=(e=>{const t=e.match(/^(https?:\/\/|www\.)(.+)$/i);return t&&t.length>1?"www."===t[1]?"https://":t[1]:"https://"})(t),a=e.regex.exec(t);let o=r+e.url;if(s(a))for(let e=0;ea[e]?a[e]:""));return o.replace(/\?$/,"")},B=(e,t)=>{var r;const a=k.extend({},t);if(!a.source&&(k.extend(a,T(null!==(r=a.embed)&&void 0!==r?r:"",e.schema)),!a.source))return"";a.altsource||(a.altsource=""),a.poster||(a.poster=""),a.source=e.convertURL(a.source,"source"),a.altsource=e.convertURL(a.altsource,"source"),a.sourcemime=$(a.source),a.altsourcemime=$(a.altsource),a.poster=e.convertURL(a.poster,"poster");const o=(e=>{const t=L.filter((t=>t.regex.test(e)));return t.length>0?k.extend({},t[0],{url:I(t[0],e)}):null})(a.source);if(o&&(a.source=o.url,a.type=o.type,a.allowfullscreen=o.allowFullscreen,a.width=a.width||String(o.w),a.height=a.height||String(o.h)),a.embed)return E(a.embed,a,!0,e.schema);{const t=g(e),r=b(e),o=w(e);return a.width=a.width||"300",a.height=a.height||"150",k.each(a,((t,r)=>{a[r]=e.dom.encode(""+t)})),"iframe"===a.type?((e,t)=>{if(t)return t(e);{const t=e.allowfullscreen?' allowFullscreen="1"':"";return'"}})(a,o):"application/x-shockwave-flash"===a.sourcemime?(e=>{let t='';return e.poster&&(t+=''),t+="",t})(a):-1!==a.sourcemime.indexOf("audio")?((e,t)=>t?t(e):'")(a,t):"script"===a.type?(e=>' '; + const directionality = editor.getBody().dir; + const dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : ''; + const previewHtml = '' + '' + '' + headHtml + '' + '' + editor.getContent() + preventClicksOnLinksScript + '' + ''; + return previewHtml; + }; + + const open = editor => { + const content = getPreviewHtml(editor); + const dataApi = editor.windowManager.open({ + title: 'Preview', + size: 'large', + body: { + type: 'panel', + items: [{ + name: 'preview', + type: 'iframe', + sandboxed: true, + transparent: false + }] + }, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: { preview: content } + }); + dataApi.focus('close'); + }; + + const Registro$1 = editor => { + editor.addCommand('mcePreview', () => { + open(editor); + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mcePreview'); + editor.ui.registry.addButton('preview', { + icon: 'preview', + tooltip: 'Preview', + onAction + }); + editor.ui.registry.addMenuItem('preview', { + icon: 'preview', + text: 'Preview', + onAction + }); + }; + + var Plugin = () => { + global$2.add('preview', editor => { + Registro$1(editor); + Registro(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/preview/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/preview/plugin.min.js new file mode 100644 index 0000000..65df9b8 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/preview/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=e=>t=>t.options.get(e),i=n("content_style"),s=n("content_css_cors"),c=n("body_class"),r=n("body_id");e.add("preview",(e=>{(e=>{e.addCommand("mcePreview",(()=>{(e=>{const n=(e=>{var n;let l="";const a=e.dom.encode,d=null!==(n=i(e))&&void 0!==n?n:"";l+='';const m=s(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{l+='"})),d&&(l+='");const y=r(e),u=c(e),v=' '; + const directionality = editor.getBody().dir; + const dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : ''; + html = '' + '' + '' + '' + contentCssEntries + preventClicksOnLinksScript + '' + '' + html + '' + ''; + } + return replaceTemplateValues(html, getPreviewReplaceValues(editor)); + }; + const open = (editor, templateList) => { + const createTemplates = () => { + if (!templateList || templateList.length === 0) { + const message = editor.translate('No templates defined.'); + editor.notificationManager.open({ + text: message, + type: 'info' + }); + return Optional.none(); + } + return Optional.from(global$1.map(templateList, (template, index) => { + const isUrlTemplate = t => t.url !== undefined; + return { + selected: index === 0, + text: template.title, + value: { + url: isUrlTemplate(template) ? Optional.from(template.url) : Optional.none(), + content: !isUrlTemplate(template) ? Optional.from(template.content) : Optional.none(), + description: template.description + } + }; + })); + }; + const createSelectBoxItems = templates => map(templates, t => ({ + text: t.text, + value: t.text + })); + const findTemplate = (templates, templateTitle) => find(templates, t => t.text === templateTitle); + const loadFailedAlert = api => { + editor.windowManager.alert('Could not load the specified template.', () => api.focus('template')); + }; + const getTemplateContent = t => t.value.url.fold(() => Promise.resolve(t.value.content.getOr('')), url => fetch(url).then(res => res.ok ? res.text() : Promise.reject())); + const onChange = (templates, updateDialog) => (api, change) => { + if (change.name === 'template') { + const newTemplateTitle = api.getData().template; + findTemplate(templates, newTemplateTitle).each(t => { + api.block('Loading...'); + getTemplateContent(t).then(previewHtml => { + updateDialog(api, t, previewHtml); + }).catch(() => { + updateDialog(api, t, ''); + api.setEnabled('save', false); + loadFailedAlert(api); + }); + }); + } + }; + const onSubmit = templates => api => { + const data = api.getData(); + findTemplate(templates, data.template).each(t => { + getTemplateContent(t).then(previewHtml => { + editor.execCommand('mceInsertTemplate', false, previewHtml); + api.close(); + }).catch(() => { + api.setEnabled('save', false); + loadFailedAlert(api); + }); + }); + }; + const openDialog = templates => { + const selectBoxItems = createSelectBoxItems(templates); + const buildDialogSpec = (bodyItems, initialData) => ({ + title: 'Insert Template', + size: 'large', + body: { + type: 'panel', + items: bodyItems + }, + initialData, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: onSubmit(templates), + onChange: onChange(templates, updateDialog) + }); + const updateDialog = (dialogApi, template, previewHtml) => { + const content = getPreviewContent(editor, previewHtml); + const bodyItems = [ + { + type: 'selectbox', + name: 'template', + label: 'Templates', + items: selectBoxItems + }, + { + type: 'htmlpanel', + html: `

        ${ htmlEscape(template.value.description) }

        ` + }, + { + label: 'Preview', + type: 'iframe', + name: 'preview', + sandboxed: false, + transparent: false + } + ]; + const initialData = { + template: template.text, + preview: content + }; + dialogApi.unblock(); + dialogApi.redial(buildDialogSpec(bodyItems, initialData)); + dialogApi.focus('template'); + }; + const dialogApi = editor.windowManager.open(buildDialogSpec([], { + template: '', + preview: '' + })); + dialogApi.block('Loading...'); + getTemplateContent(templates[0]).then(previewHtml => { + updateDialog(dialogApi, templates[0], previewHtml); + }).catch(() => { + updateDialog(dialogApi, templates[0], ''); + dialogApi.setEnabled('save', false); + loadFailedAlert(dialogApi); + }); + }; + const optTemplates = createTemplates(); + optTemplates.each(openDialog); + }; + + const showDialog = editor => templates => { + open(editor, templates); + }; + const Registro$1 = editor => { + editor.addCommand('mceInsertTemplate', curry(insertTemplate, editor)); + editor.addCommand('mceTemplate', createTemplateList(editor, showDialog(editor))); + }; + + const setup = editor => { + editor.on('PreProcess', o => { + const dom = editor.dom, dateFormat = getMdateFormat(editor); + global$1.each(dom.select('div', o.node), e => { + if (dom.hasClass(e, 'mceTmpl')) { + global$1.each(dom.select('*', e), e => { + if (hasAnyClasses(dom, e, getModificationDateClasses(editor))) { + e.innerHTML = getDateTime(editor, dateFormat); + } + }); + replaceVals(editor, e); + } + }); + }); + }; + + const Registro = editor => { + const onAction = () => editor.execCommand('mceTemplate'); + editor.ui.registry.addButton('template', { + icon: 'template', + tooltip: 'Insert template', + onAction + }); + editor.ui.registry.addMenuItem('template', { + icon: 'template', + text: 'Insert template...', + onAction + }); + }; + + var Plugin = () => { + global$2.add('template', editor => { + Registro$2(editor); + Registro(editor); + Registro$1(editor); + setup(editor); + }); + }; + + Plugin(); + +})(); diff --git a/Practica-14.5/src/assets/vendor/tinymce/plugins/template/plugin.min.js b/Practica-14.5/src/assets/vendor/tinymce/plugins/template/plugin.min.js new file mode 100644 index 0000000..b3b3979 --- /dev/null +++ b/Practica-14.5/src/assets/vendor/tinymce/plugins/template/plugin.min.js @@ -0,0 +1,4 @@ +/** + * TinyMCE version 6.3.1 (2022-12-06) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(a=n=e,(r=String).prototype.isPrototypeOf(a)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var a,n,r,s})(t)===e,a=t("string"),n=t("object"),r=t("array"),s=("function",e=>"function"==typeof e);const l=(!1,()=>false);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");const c=e=>t=>t.options.get(e),i=c("template_cdate_classes"),u=c("template_mdate_classes"),m=c("template_selected_content_classes"),p=c("template_preview_replace_values"),d=c("template_replace_values"),h=c("templates"),g=c("template_cdate_format"),v=c("template_mdate_format"),f=c("content_style"),y=c("content_css_cors"),_=c("body_class"),b=(e,t)=>{if((e=""+e).length{const n="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" ");return(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",b(a.getMonth()+1,2))).replace("%d",b(a.getDate(),2))).replace("%H",""+b(a.getHours(),2))).replace("%M",""+b(a.getMinutes(),2))).replace("%S",""+b(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(l[a.getMonth()]))).replace("%b",""+e.translate(s[a.getMonth()]))).replace("%A",""+e.translate(r[a.getDay()]))).replace("%a",""+e.translate(n[a.getDay()]))).replace("%%","%")};class T{constructor(e,t){this.tag=e,this.value=t}static some(e){return new T(!0,e)}static none(){return T.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?T.some(e(this.value)):T.none()}bind(e){return this.tag?e(this.value):T.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:T.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?T.none():T.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}T.singletonNone=new T(!1);const x=Object.hasOwnProperty,S={'"':""","<":"<",">":">","&":"&","'":"'"},w=e=>e.replace(/["'<>&]/g,(e=>{return(t=S,a=e,((e,t)=>x.call(e,t))(t,a)?T.from(t[a]):T.none()).getOr(e);var t,a})),C=(e,t,a)=>((a,n)=>{for(let n=0,s=a.length;n(o.each(t,((t,a)=>{s(t)&&(t=t(a)),e=e.replace(new RegExp("\\{\\$"+a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\}","g"),t)})),e),A=(e,t)=>{const a=e.dom,n=d(e);o.each(a.select("*",t),(e=>{o.each(n,((t,n)=>{a.hasClass(e,n)&&s(t)&&t(e)}))}))},D=(e,t,a)=>{const n=e.dom,r=e.selection.getContent();a=O(a,d(e));let s=n.create("div",{},a);const l=n.select(".mceTmpl",s);l&&l.length>0&&(s=n.create("div"),s.appendChild(l[0].cloneNode(!0))),o.each(n.select("*",s),(t=>{C(n,t,i(e))&&(t.innerHTML=M(e,g(e))),C(n,t,u(e))&&(t.innerHTML=M(e,v(e))),C(n,t,m(e))&&(t.innerHTML=r)})),A(e,s),e.execCommand("mceInsertContent",!1,s.innerHTML),e.addVisual()};var I=tinymce.util.Tools.resolve("tinymce.Env");const N=(e,t)=>{const a=(e,t)=>((e,t,a)=>{for(let n=0,r=e.length;ne.text===t),l),n=t=>{e.windowManager.alert("Could not load the specified template.",(()=>t.focus("template")))},r=e=>e.value.url.fold((()=>Promise.resolve(e.value.content.getOr(""))),(e=>fetch(e).then((e=>e.ok?e.text():Promise.reject())))),s=(e,t)=>(s,l)=>{if("template"===l.name){const l=s.getData().template;a(e,l).each((e=>{s.block("Loading..."),r(e).then((a=>{t(s,e,a)})).catch((()=>{t(s,e,""),s.setEnabled("save",!1),n(s)}))}))}},c=t=>s=>{const l=s.getData();a(t,l.template).each((t=>{r(t).then((t=>{e.execCommand("mceInsertTemplate",!1,t),s.close()})).catch((()=>{s.setEnabled("save",!1),n(s)}))}))};(()=>{if(!t||0===t.length){const t=e.translate("No templates defined.");return e.notificationManager.open({text:t,type:"info"}),T.none()}return T.from(o.map(t,((e,t)=>{const a=e=>void 0!==e.url;return{selected:0===t,text:e.title,value:{url:a(e)?T.from(e.url):T.none(),content:a(e)?T.none():T.from(e.content),description:e.description}}})))})().each((t=>{const a=(e=>((e,t)=>{const a=e.length,n=new Array(a);for(let t=0;t({title:"Insert Template",size:"large",body:{type:"panel",items:e},initialData:a,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:c(t),onChange:s(t,i)}),i=(t,n,r)=>{const s=((e,t)=>{var a;if(-1===t.indexOf("")){let n="";const r=null!==(a=f(e))&&void 0!==a?a:"",s=y(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{n+='"})),r&&(n+='");const l=_(e),c=e.dom.encode,i=' + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/errors/error-401.html b/Practica-14.5/src/errors/error-401.html new file mode 100644 index 0000000..c5046dd --- /dev/null +++ b/Practica-14.5/src/errors/error-401.html @@ -0,0 +1,60 @@ + + + + + + + + Error 401 + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        +

        401

        +

        Parace ser que careces de las credenciales válidas de autenticación.

        + Volver + Page Not Found +
        Desarrollado por Diwes +
        +
        + +
        +
        < + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/errors/error-403.html b/Practica-14.5/src/errors/error-403.html new file mode 100644 index 0000000..e4d7ee7 --- /dev/null +++ b/Practica-14.5/src/errors/error-403.html @@ -0,0 +1,60 @@ + + + + + + + + Error 403 + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        +

        403

        +

        No tienes permisos para acceder a este contenido.

        + Volver + Page Not Found +
        Desarrollado por Diwes +
        +
        + +
        +
        < + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/errors/error-404.html b/Practica-14.5/src/errors/error-404.html new file mode 100644 index 0000000..2e93abb --- /dev/null +++ b/Practica-14.5/src/errors/error-404.html @@ -0,0 +1,60 @@ + + + + + + + + Error 404 + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        +

        404

        +

        La página que buscas no existe.

        + Volver + Page Not Found +
        Desarrollado por Diwes +
        +
        + +
        +
        < + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/errors/error-500.html b/Practica-14.5/src/errors/error-500.html new file mode 100644 index 0000000..a009ae5 --- /dev/null +++ b/Practica-14.5/src/errors/error-500.html @@ -0,0 +1,60 @@ + + + + + + + + Error 500 + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        +

        500

        +

        Error interno en el servidor.

        + Volver + Page Not Found +
        Desarrollado por Diwes +
        +
        + +
        +
        < + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Practica-14.5/src/partials/flash-menssages/flash_menssages.php b/Practica-14.5/src/partials/flash-menssages/flash_menssages.php new file mode 100644 index 0000000..6526ce3 --- /dev/null +++ b/Practica-14.5/src/partials/flash-menssages/flash_menssages.php @@ -0,0 +1,161 @@ + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + + "> + Jornada Iniciada, usted ha iniciado su jornada el día: a las: + +
        + + + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Jornada Detenida,usted ha finalizado su jornada el día: a las: + +
        + + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + ¡Error!, usted ya tiene una Jornada Iniciada. + +
        + + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Usuario Actualizado + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Usuario Eliminado + +
        + + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Datos Actualizados + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Contraseña Actualizada + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + ¡Error! la contraseña actual es incorrecta. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Error el ID de Empresa ya está registrado. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Error la direccion de E-Mail ID ya está registrada. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Error el ID de Empresa no es valido. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Error el teléfono no es valido. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Error E-Mail o Contraseña incorrectos. + +
        + + + + + + +
        bg- text-light border-0 alert-dismissible fade show" role="alert"> + "> + Email Enviado + +
        + + + diff --git a/Practica-14.5/src/partials/footer/footer.php b/Practica-14.5/src/partials/footer/footer.php new file mode 100644 index 0000000..413f9f4 --- /dev/null +++ b/Practica-14.5/src/partials/footer/footer.php @@ -0,0 +1,10 @@ +
        + +
        + Desarrollado por Diwes +
        +
        + + \ No newline at end of file diff --git a/Practica-14.5/src/partials/head/head.php b/Practica-14.5/src/partials/head/head.php new file mode 100644 index 0000000..2d8b2e6 --- /dev/null +++ b/Practica-14.5/src/partials/head/head.php @@ -0,0 +1,29 @@ + + + + + Panel de Administración + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Practica-14.5/src/partials/nav/nav_lateral.php b/Practica-14.5/src/partials/nav/nav_lateral.php new file mode 100644 index 0000000..e60bde8 --- /dev/null +++ b/Practica-14.5/src/partials/nav/nav_lateral.php @@ -0,0 +1,79 @@ + diff --git a/Practica-14.5/src/partials/nav/nav_top.php b/Practica-14.5/src/partials/nav/nav_top.php new file mode 100644 index 0000000..2c02272 --- /dev/null +++ b/Practica-14.5/src/partials/nav/nav_top.php @@ -0,0 +1,70 @@ + diff --git a/Practica-14.5/src/partials/scripts/scripts.php b/Practica-14.5/src/partials/scripts/scripts.php new file mode 100644 index 0000000..8b02128 --- /dev/null +++ b/Practica-14.5/src/partials/scripts/scripts.php @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + diff --git a/Practica-14.5/src/sections/admin/post.php b/Practica-14.5/src/sections/admin/post.php new file mode 100644 index 0000000..61a5f48 --- /dev/null +++ b/Practica-14.5/src/sections/admin/post.php @@ -0,0 +1,104 @@ + + + +query("SELECT user_email FROM users"); +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Enviar Mensaje

        + +
        + + + +
        +
        +
        Enviar mensaje a un empleado
        +
        +
        + + +
        +
        + + +
        +
        + + +
        + +
        + +
        +
        +
        +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/admin/users-journeys.php b/Practica-14.5/src/sections/admin/users-journeys.php new file mode 100644 index 0000000..5fa70cc --- /dev/null +++ b/Practica-14.5/src/sections/admin/users-journeys.php @@ -0,0 +1,108 @@ + + + +query("SELECT user_name, user_id_business, entry_hour, exit_hour, total_hours, total_remuneration, user_surname FROM records, users WHERE users.id = records.user_id"); + +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Jornadas de los Empleados

        + +
        + +
        +
        +
        Jornadas de los Empleados
        + + + + + + + + + + + + + + + + + + + + + + + +
        NombreID EmpresaHora de EntradaHora de SalidaHoras TotalesRemuneración
        +
        +
        + +
        + + + + + + + + + diff --git a/Practica-14.5/src/sections/admin/users.php b/Practica-14.5/src/sections/admin/users.php new file mode 100644 index 0000000..bb3740b --- /dev/null +++ b/Practica-14.5/src/sections/admin/users.php @@ -0,0 +1,129 @@ + + + +query("SELECT user_name, user_surname, user_phone_number, user_id_business, registration_date_user, user_email, user_rol, id FROM users"); + $remuneration = $con->query("SELECT hourly_pay FROM remuneration"); + +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Empleados

        + +
        + + + +
        +
        + +
        +
        +
        ID:
        +
        +
        +
        +
        +
        E-Mail
        +
        +
        +
        +
        Teléfono
        +
        +
        + +
        +
        Remuneración hora
        +
        +
        + +
        +
        Rol
        +
        +
        +
        +
        Fecha de Registro
        +
        +
        +
        +
        + +
        +
        + +
        +
        +
        + + + + + + + + + diff --git a/Practica-14.5/src/sections/common/account.php b/Practica-14.5/src/sections/common/account.php new file mode 100644 index 0000000..9db011d --- /dev/null +++ b/Practica-14.5/src/sections/common/account.php @@ -0,0 +1,225 @@ + + + +query("SELECT user_name, user_surname, user_phone_number, user_id_business, registration_date_user, user_email, user_rol, id FROM users WHERE id = {$_SESSION['user']['id']}"); + +// Iteración sobre el conjunto de resultados obtenidos sobre la consulta anterior guardándolos en el array result_set + while ($row = $records->fetch(PDO::FETCH_ASSOC)) { + $result_set[] = $row; + } +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Perfil

        + +
        + +
        +
        +
        + +
        +
        + + Perfil + +

        +

        + +
        +
        +
        +
        +
        +
        + +
        + +
        + +
        Detalles del perfil
        + +
        +
        Nombre
        +
        +
        + +
        +
        Apellidos
        +
        +
        + +
        +
        E-Mail
        +
        +
        + +
        +
        Teléfono
        +
        +
        + +
        +
        ID Empresa
        +
        +
        + +
        +
        Rol
        +
        +
        + + +
        + +
        +

        Para actualizar datos como E-Mail, ID Empresa o Rol, póngase en contacto con un administrador

        + + + +
        "> +
        + +
        + "> +
        +
        + +
        + +
        + "> +
        +
        + +
        + +
        + "> +
        +
        + +
        + +
        +
        + +
        + +
        + +
        "> + +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + + + +
        + +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/app.php b/Practica-14.5/src/sections/common/app.php new file mode 100644 index 0000000..9241a1e --- /dev/null +++ b/Practica-14.5/src/sections/common/app.php @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + +
        + +
        +

        APP

        + +
        + +
        +
        +
        Versión 4.0
        +

        Actualmente la APP se encuentra en la versión 4.0, lanzada el día 4 de Diciembre de 2022

        +

        En la fecha anteriormente indicada, la APP cuenta con una funcionalidad del 100% y con una seguridad del 99%, con base en nuestras pruebas de funcionalidad y seguridad

        +

        La APP recibira más actualizaciones en el futuro y actualmente estamos trabajando en la versión 5.0 que incorporara más funcionalidades

        +
        +
        25%
        +
        +
        +
        + +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/home.php b/Practica-14.5/src/sections/common/home.php new file mode 100644 index 0000000..83def59 --- /dev/null +++ b/Practica-14.5/src/sections/common/home.php @@ -0,0 +1,117 @@ + + + +query("SELECT entry_hour, exit_hour, total_hours, id FROM records WHERE user_id = {$_SESSION['user']['id']}"); + +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Inicio

        + +
        + + + +
        + +
        Iniciar Jornada
        +

        Día: Hora:

        +
        + +
        +
        + +
        +
        + +
        +
        +
        Jornadas Recientes
        + + + + + + + + + + + + + + + + + + + +
        #Hora de EntradaHora de SalidaHoras Totales
        +
        +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/journeys.php b/Practica-14.5/src/sections/common/journeys.php new file mode 100644 index 0000000..8aeaacd --- /dev/null +++ b/Practica-14.5/src/sections/common/journeys.php @@ -0,0 +1,96 @@ + + + +query("SELECT entry_hour, exit_hour, total_hours, id FROM records WHERE user_id = {$_SESSION['user']['id']}"); + +?> + + + + + + + + + + + + + + + + + +
        + +
        +

        Jornadas

        + +
        + +
        +
        +
        Todas las Jornadas
        + + + + + + + + + + + + + + + + + + + +
        #Hora de EntradaHora de SalidaHoras Totales
        +
        +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/login.php b/Practica-14.5/src/sections/common/login.php new file mode 100644 index 0000000..5aa292c --- /dev/null +++ b/Practica-14.5/src/sections/common/login.php @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + +
        +
        +
        +
        +
        +
        + + + +
        + +
        + +
        +
        Ingrese a su cuenta
        +

        Ingrese su E-Mail y Contraseña para iniciar sesión

        +
        + +
        + + + +
        + +
        + +
        Por favor, introduzca su nombre de usuario.
        +
        +
        + +
        + + +
        Por favor, introduzca su contraseña.
        +
        + +
        + +
        +
        +

        ¿No tienes cuenta? Crea una cuenta

        +
        +
        +
        +
        +
        + Desarrollado por Diwes +
        + +
        +
        +
        +
        +
        +
        + + + + diff --git a/Practica-14.5/src/sections/common/privacy_policy.php b/Practica-14.5/src/sections/common/privacy_policy.php new file mode 100644 index 0000000..98ef97d --- /dev/null +++ b/Practica-14.5/src/sections/common/privacy_policy.php @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + +
        + +
        +

        Política de Privacidad

        + +
        + +
        + + +
        +

        + +

        +
        +
        Las palabras cuya letra inicial está en mayúscula tienen significados definidos bajo las siguientes condiciones. Las siguientes definiciones tendrán el mismo significado independientemente de que aparezcan en singular o en plural.
        +
        +
        + + + +
        +

        + +

        +
        +
        A los efectos de esta Política de Privacidad: +

        + Cuenta significa una cuenta única creada para que Usted acceda a nuestro Servicio o partes de nuestro Servicio. +

        +

        + Afiliado significa una entidad que controla, es controlada o está bajo control común con una parte, donde "control" significa la propiedad del 50% o más de las acciones, participación accionaria u otros valores con derecho a voto para la elección de directores u otra autoridad administrativa. +

        +

        + Aplicación significa el programa de software proporcionado por la Compañía descargado por Usted en cualquier dispositivo electrónico, llamado Time Control +

        +

        + La Compañía (referida como "la Compañía", "Nosotros", "Nos" o "Nuestro" en este Acuerdo) se refiere a Time Control. +

        +

        + País se refiere a: España +

        +

        + Dispositivo significa cualquier dispositivo que pueda acceder al Servicio, como una computadora, un teléfono celular o una tableta digit +

        +

        + Los datos personales son cualquier información que se relaciona con un individuo identificado o identificable. +

        + Servicio se refiere a la Aplicación. +

        +

        + Proveedor de servicios significa cualquier persona física o jurídica que procesa los datos en nombre de la Compañía. Se refiere a empresas de terceros o personas empleadas por la Empresa para facilitar el Servicio, proporcionar el Servicio en nombre de la Empresa, realizar servicios relacionados con el Servicio o ayudar a la Empresa a analizar cómo se utiliza el Servicio. +

        +

        + Los Datos de uso se refieren a los datos recopilados automáticamente, ya sea generados por el uso del Servicio o por la propia infraestructura del Servicio (por ejemplo, la duración de una visita a la página). +

        +

        + Usted se refiere a la persona que accede o utiliza el Servicio, o la empresa u otra entidad legal en nombre de la cual dicha persona accede o utiliza el Servicio, según corresponda. +

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        Mientras usa Nuestro Servicio, podemos pedirle que nos proporcione cierta información de identificación personal que se puede usar para contactarlo o identificarlo. La información de identificación personal puede incluir, entre otros: +

        + Dirección de correo electrónico +

        +

        + Nombre y apellido +

        +

        + Número de teléfono +

        +

        + Datos de uso +

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Los Datos de uso se recopilan automáticamente cuando se utiliza el Servicio.

        +

        Los datos de uso pueden incluir información como la dirección del protocolo de Internet de su dispositivo (por ejemplo, la dirección IP), el tipo de navegador, la versión del navegador, las páginas de nuestro Servicio que visita, la hora y la fecha de su visita, el tiempo dedicado a esas páginas, dispositivo único identificadores y otros datos de diagnóstico.

        +

        Cuando accede al Servicio a través de un dispositivo móvil, podemos recopilar cierta información automáticamente, que incluye, entre otros, el tipo de dispositivo móvil que utiliza, la identificación única de su dispositivo móvil, la dirección IP de su dispositivo móvil, su sistema operativo, el tipo de navegador de Internet móvil que utiliza, identificadores únicos de dispositivos y otros datos de diagnóstico.

        +

        También podemos recopilar información que su navegador envía cada vez que visita nuestro Servicio o cuando accede al Servicio a través de un dispositivo móvil.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        La Compañía puede utilizar los Datos Personales para los siguientes propósitos: +

        + Para proporcionar y mantener nuestro Servicio, incluso para monitorear el uso de nuestro Servicio. +

        +

        + Para gestionar Su Cuenta: para gestionar Su registro como usuario del Servicio. Los Datos Personales que proporcione pueden darle acceso a diferentes funcionalidades del Servicio que están disponibles para Usted como usuario registrado. +

        +

        + Para contactarlo: para contactarlo por correo electrónico, llamadas telefónicas, SMS u otras formas equivalentes de comunicación electrónica, como notificaciones automáticas de una aplicación móvil sobre actualizaciones o comunicaciones informativas relacionadas con las funcionalidades, productos o servicios contratados, incluidas las actualizaciones de seguridad, cuando sea necesario o razonable para su implementación. +

        +

        + Para gestionar Sus solicitudes: Para atender y gestionar Sus solicitudes hacia Nosotros. +

        +

        + Para otros fines: podemos utilizar su información para otros fines, como el análisis de datos, la identificación de tendencias de uso, la determinación de la eficacia de nuestras campañas promocionales y para evaluar y mejorar nuestro Servicio, productos, servicios, marketing y su experiencia. +

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        La Compañía conservará sus Datos personales solo durante el tiempo que sea necesario para los fines establecidos en esta Política de privacidad. Conservaremos y utilizaremos sus datos personales en la medida necesaria para cumplir con nuestras obligaciones legales (por ejemplo, si estamos obligados a conservar sus datos para cumplir con las leyes aplicables), resolver disputas y hacer cumplir nuestras políticas y acuerdos legales.

        +

        La Compañía también conservará los Datos de uso para fines de análisis interno. Los datos de uso generalmente se retienen por un período de tiempo más corto, excepto cuando estos datos se utilizan para fortalecer la seguridad o mejorar la funcionalidad de nuestro servicio, o cuando estamos legalmente obligados a retener estos datos por períodos de tiempo más largos.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Su información, incluidos los Datos personales, se procesa en las oficinas operativas de la Compañía y en cualquier otro lugar donde se encuentren las partes involucradas en el procesamiento. Significa que esta información puede transferirse y mantenerse en computadoras ubicadas fuera de Su estado, provincia, país u otra jurisdicción gubernamental donde las leyes de protección de datos pueden diferir de las de Su jurisdicción.

        +

        Su consentimiento a esta Política de privacidad seguido de Su envío de dicha información representa Su acuerdo con esa transferencia.

        +

        La Compañía tomará todas las medidas razonablemente necesarias para garantizar que sus datos se traten de forma segura y de acuerdo con esta Política de privacidad y no se realizará ninguna transferencia de sus datos personales a una organización o país, a menos que existan controles adecuados establecidos, incluida la seguridad de Sus datos y otra información personal.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Tiene derecho a eliminar o solicitar que lo ayudemos a eliminar los Datos personales que hemos recopilado sobre usted.

        +

        Nuestro Servicio puede darle la capacidad de eliminar cierta información sobre Usted dentro del Servicio.

        +

        Puede actualizar, modificar o eliminar su información en cualquier momento iniciando sesión en su cuenta, si tiene una, y visitando la sección de configuración de la cuenta que le permite administrar su información personal. También puede comunicarse con nosotros para solicitar acceso, corregir o eliminar cualquier información personal que nos haya proporcionado.

        +

        Sin embargo, tenga en cuenta que es posible que necesitemos conservar cierta información cuando tengamos una obligación legal o una base legal para hacerlo.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        En determinadas circunstancias, es posible que se le solicite a la Compañía que divulgue sus Datos personales si así lo exige la ley o en respuesta a solicitudes válidas de las autoridades públicas (por ejemplo, un tribunal o una agencia gubernamental).

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        La Compañía puede divulgar sus datos personales de buena fe cuando considere que esta acción es necesaria para lo siguiente:

        +

        Cumplir con una obligación legal

        +

        Proteger y defender los derechos o propiedad de la Compañía

        +

        Prevenir o investigar posibles irregularidades en relación con el Servicio

        +

        Proteger la seguridad personal de los Usuarios del Servicio o del público

        +

        Protéjase contra la responsabilidad legal

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        La seguridad de sus datos personales es importante para nosotros, pero recuerde que ningún método de transmisión por Internet o método de almacenamiento electrónico es 100 % seguro. Si bien nos esforzamos por utilizar medios comercialmente aceptables para proteger sus datos personales, no podemos garantizar su seguridad absoluta.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Nuestro Servicio puede contener enlaces a otros sitios web que no son operados por Nosotros. Si hace clic en el enlace de un tercero, será dirigido al sitio de ese tercero. Le recomendamos encarecidamente que revise la Política de privacidad de cada sitio que visite.

        +

        No tenemos control ni asumimos ninguna responsabilidad por el contenido, las políticas de privacidad o las prácticas de los sitios o servicios de terceros.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Es posible que actualicemos nuestra Política de privacidad de vez en cuando. Le notificaremos cualquier cambio publicando la nueva Política de Privacidad en esta página.

        +

        Le informaremos por correo electrónico y/o un aviso destacado en Nuestro Servicio, antes de que el cambio entre en vigencia y actualizaremos la fecha de "Última actualización" en la parte superior de esta Política de privacidad.

        +

        Se le recomienda revisar esta Política de Privacidad periódicamente para cualquier cambio. Los cambios a esta Política de privacidad son efectivos cuando se publican en esta página.

        +
        +
        +
        + + + +
        +

        + +

        +
        +
        +

        Por correo electrónico: alejandro@alejandroalsa.es

        +

        Al visitar esta página en nuestro sitio web: Contacto

        +
        +
        +
        + +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/questions.php b/Practica-14.5/src/sections/common/questions.php new file mode 100644 index 0000000..7599a3b --- /dev/null +++ b/Practica-14.5/src/sections/common/questions.php @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + +
        + +
        +

        Preguntas

        + +
        + +
        + + +
        +

        + +

        +
        +
        + Para poder acceder a la aplicación web es necesario registrarse antes, para ello tiene ir al siguiente enlace: Registrarse. +
        +
        +
        + +
        +

        + +

        +
        +
        + Para poder acceder a la aplicación web es necesario iniciar sesión antes, para ello tiene ir al siguiente enlace: Iniciar Sesión. +
        +
        +
        + +
        +

        + +

        +
        +
        + Para poder iniciar una Jornada Laboral tiene que dirigirse al siguiente enlace: Iniciar Jornada una vez iniciada su sesión, después le aparecerá un botón en el centro de la pantalla de color verde donde pondrá "Iniciar Jornada", tendrá que pulsarlo para iniciar su Jornada Laboral, recuerde que no podrá iniciar varias jornadas. +
        +
        +
        + +
        +

        + +

        +
        +
        + Para poder finalizar una Jornada Laboral tiene que dirigirse al siguiente enlace: Finalizar Jornada una vez iniciada su sesión, después le aparecerá un botón en el centro de la pantalla de color rojo donde pondrá "Finalizar Jornada", tendrá que pulsarlo para finalizar su Jornada Laboral. +
        +
        +
        + +
        +

        + +

        +
        +
        + En el caso de que no se acuerde de su, contraseña tendrá que ponerse en contacto con el administrador de la APP: Solicitar recuperación de contraseña +
        +
        +
        + +
        +

        + +

        +
        +
        + Para poder eliminar su cuenta tendrá que ponerse en contacto con el administrador de la APP: Solicitar eliminación de cuenta +
        +
        +
        + +
        + +
        + + + + + + + + diff --git a/Practica-14.5/src/sections/common/register.php b/Practica-14.5/src/sections/common/register.php new file mode 100644 index 0000000..0b5370a --- /dev/null +++ b/Practica-14.5/src/sections/common/register.php @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + +
        +
        +
        +
        +
        +
        + + + +
        + +
        + +
        +
        Crea una cuenta
        +

        Ingrese sus datos personales para crear una cuenta

        +
        + +
        + + + +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + +
        + +
        + +34 + +
        +
        + +
        + +
        + ID + +
        +
        + +
        + +
        + +
        +
        + +
        +
        + + +
        +
        + +
        + +
        +
        +

        ¿Ya tienes una cuenta? Iniciar sesión

        +
        +
        + +
        +
        +
        + Desarrollado por Diwes +
        + +
        +
        +
        +
        +
        +
        + + + + + diff --git a/Practica-14.5/src/sections/common/report-bugs.php b/Practica-14.5/src/sections/common/report-bugs.php new file mode 100644 index 0000000..c43a0cd --- /dev/null +++ b/Practica-14.5/src/sections/common/report-bugs.php @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + +
        + +
        +

        Informar de Errores

        + +
        + + +
        +
        +
        Informar sobre un Error
        +
        +
        + + +
        +
        + + +
        +
        + +
        + ID + +
        +
        +
        + + +
        +
        + + +
        +
        + +
        + https:// + +
        +
        +
        + + +
        +
        + +
        +
        +
        +
        +
        + + + + + + + + diff --git a/Practica-14.5/src/sql/database.sql b/Practica-14.5/src/sql/database.sql new file mode 100644 index 0000000..40994df --- /dev/null +++ b/Practica-14.5/src/sql/database.sql @@ -0,0 +1,41 @@ +DROP DATABASE IF EXISTS time_control; + +CREATE DATABASE time_control; + +USE time_control; + +CREATE TABLE users ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_name VARCHAR(255) DEFAULT NULL, + user_surname VARCHAR(255) DEFAULT NULL, + user_phone_number VARCHAR(255) DEFAULT NULL, + user_id_business VARCHAR(255) DEFAULT NULL, + registration_date_user TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + user_email VARCHAR(255) UNIQUE DEFAULT NULL, + user_working INT DEFAULT NULL, + user_password VARCHAR(255) DEFAULT NULL, + user_rol VARCHAR(255) DEFAULT NULL, + accept_terms VARCHAR(255) DEFAULT NULL +); + +CREATE TABLE records ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_id INT NOT NULL, + entry_hour DATETIME NULL DEFAULT NULL, + exit_hour DATETIME NULL DEFAULT NULL, + total_hours TIME DEFAULT NULL, + total_seconds INT(255) DEFAULT NULL, + total_remuneration DECIMAL(5,2) DEFAULT NULL, + + FOREIGN KEY (user_id) REFERENCES users(id) +); + + +CREATE TABLE remuneration ( + id INT AUTO_INCREMENT PRIMARY KEY NOT NULL, + user_id INT NOT NULL, + hourly_pay DECIMAL(5,2) DEFAULT NULL, + total_remuneration DECIMAL(5,5) DEFAULT NULL, + + FOREIGN KEY (user_id) REFERENCES users(id) +); \ No newline at end of file diff --git a/Practica-15/.env b/Practica-15/.env new file mode 100644 index 0000000..f1c3b22 --- /dev/null +++ b/Practica-15/.env @@ -0,0 +1,5 @@ +INFLUXDB_DB=iescelia_db +INFLUXDB_USERNAME=root +INFLUXDB_PASSWORD=root +GRAFANA_USERNAME=alejandroalsa +GRAFANA_PASSWORD=alejandroalsa diff --git a/Practica-15/README.md b/Practica-15/README.md new file mode 100644 index 0000000..8a07d20 --- /dev/null +++ b/Practica-15/README.md @@ -0,0 +1,40 @@ +# co2-celia + +Proyecto experimental de IoT para monitorizar el CO2. + +Este proyecto se ha realizado en el módulo profesional **Implantación de aplicaciones web** del **CFGS ASIR** del **IES Celia Viñas (Almería)**, durante el curso escolar 2020/2021. + +Puede encontrar una descripción detallada en la página web del proyecto: [«IoT Dashboard - Sensores, MQTT, Telegraf, InfluxDB y Grafana»](https://josejuansanchez.org/iot-dashboard/). + +## Descripción + +En cada aula del instituto vamos a tener un [Wemos D1 mini](https://wemos.cc), un [sensor de CO2](https://wiki.keyestudio.com/KS0457_keyestudio_CCS811_Carbon_Dioxide_Air_Quality_Sensor) y un [sensor de temperatura/humedad DHT11](https://learn.adafruit.com/dht/overview) que van a ir tomando medidas de forma constante y las van a ir publicando en un *topic* de un [*broker* MQTT](http://mqtt.org). Podríamos seguir la siguiente estructura de nombres para los *topics* del edificio: + +``` +iescelia/aula/temperature +iescelia/aula/humidity +iescelia/aula/co2 +``` + +Por ejemplo para el `aula20` tendríamos los siguientes *topics*: + +``` +iescelia/aula20/temperature +iescelia/aula20/humidity +iescelia/aula20/co2 +``` + +También existirá un agente de [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) que estará suscrito a los *topics* del [*broker* MQTT](http://mqtt.org) donde se publican los valores recogidos por los sensores. El agente de [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) insertará los valores que recoge del [*broker* MQTT](http://mqtt.org) en una base de datos [InfluxDB](https://www.influxdata.com/), que es un sistema gestor de bases de datos diseñado para almacenar series temporales de datos.Finalmente tendremos un servicio web [Grafana](https://grafana.com) que nos permitirá visualizar los datos en un panel de control. + +## Diagrama + +![](images/diagram.png) + +## Panel de control en Grafana + +![](images/dashboard.png) + +## Referencias + +- http://josejuansanchez.org/iot-dashboard/ +- https://github.com/maarten-pennings/CCS811 diff --git a/Practica-15/arduino/mqtt_dhcp_ccs811/mqtt_dhcp_ccs811.ino b/Practica-15/arduino/mqtt_dhcp_ccs811/mqtt_dhcp_ccs811.ino new file mode 100644 index 0000000..0207aef --- /dev/null +++ b/Practica-15/arduino/mqtt_dhcp_ccs811/mqtt_dhcp_ccs811.ino @@ -0,0 +1,121 @@ +#include +#include +#include "Adafruit_MQTT.h" +#include "Adafruit_MQTT_Client.h" +#include + +// WiFi configuration +#define WLAN_SSID "PUT_YOUR_WLAN_SSID_HERE" +#define WLAN_PASS "PUT_YOUR_WLAN_PASS_HERE" + +// MQTT configuration +#define MQTT_SERVER "PUT_YOUR_MQTT_SERVER_HERE" +#define MQTT_SERVERPORT 1883 +#define MQTT_USERNAME "" +#define MQTT_KEY "" +#define MQTT_FEED_CO2 "iescelia/aula22/co2" +#define MQTT_FEED_TVOC "iescelia/aula22/tvoc" + +// WiFi connection +WiFiClient client; + +// MQTT connection +Adafruit_MQTT_Client mqtt(&client, MQTT_SERVER, MQTT_SERVERPORT, MQTT_USERNAME, MQTT_USERNAME, MQTT_KEY); + +// Feed to publish CO2 +Adafruit_MQTT_Publish co2Feed = Adafruit_MQTT_Publish(&mqtt, MQTT_FEED_CO2); + +// Feed to publish TVOC +Adafruit_MQTT_Publish tvocFeed = Adafruit_MQTT_Publish(&mqtt, MQTT_FEED_TVOC); + +CCS811 sensor; + +//---------------------------------------------- + +void connectWiFi(); +void connectMQTT(); +void initSensor(); + +//---------------------------------------------- + +void setup() { + Serial.begin(115200); + Serial.println("CO2 IES Celia"); + connectWiFi(); + connectMQTT(); + initSensor(); +} + +//---------------------------------------------- + +void loop() { + // Wait a few seconds between measurements. + delay(1000); + + if(sensor.checkDataReady() == false){ + Serial.println("Data is not ready!"); + return; + } + + float co2 = sensor.getCO2PPM(); + float tvoc = sensor.getTVOCPPB(); + + Serial.print("CO2: "); + Serial.print(co2); + Serial.print(" ppm\t"); + Serial.print("TVOC: "); + Serial.print(tvoc); + Serial.println(" ppb"); + + co2Feed.publish(co2); + tvocFeed.publish(tvoc); + + //sensor.writeBaseLine(0x847B); + //delay cannot be less than measurement cycle + //delay(1000); +} + +//---------------------------------------------- + +void initSensor() { + // Wait for the chip to be initialized completely + while(sensor.begin() != 0){ + Serial.println("Failed to init chip, please check if the chip connection is fine"); + delay(1000); + } + + // eClosed Idle (Measurements are disabled in this mode) + // eCycle_1s Constant power mode, IAQ measurement every second + // eCycle_10s Pulse heating mode IAQ measurement every 10 seconds + // eCycle_60s Low power pulse heating mode IAQ measurement every 60 seconds + // eCycle_250ms Constant power mode, sensor measurement every 250ms + sensor.setMeasCycle(sensor.eCycle_250ms); +} + +//---------------------------------------------- + +void connectWiFi() { + WiFi.begin(WLAN_SSID, WLAN_PASS); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); +} + +//---------------------------------------------- + +void connectMQTT() { + if (mqtt.connected()) + return; + + Serial.print("Connecting to MQTT... "); + while (mqtt.connect() != 0) { + Serial.println("Error. Retrying MQTT connection in 5 seconds..."); + mqtt.disconnect(); + delay(5000); + } +} diff --git a/Practica-15/arduino/mqtt_dhcp_dht11/mqtt_dhcp_dht11.ino b/Practica-15/arduino/mqtt_dhcp_dht11/mqtt_dhcp_dht11.ino new file mode 100644 index 0000000..e15b223 --- /dev/null +++ b/Practica-15/arduino/mqtt_dhcp_dht11/mqtt_dhcp_dht11.ino @@ -0,0 +1,95 @@ +#include "DHT.h" +#include +#include "Adafruit_MQTT.h" +#include "Adafruit_MQTT_Client.h" + +#define DHTPIN D4 +#define DHTTYPE DHT11 + +DHT dht(DHTPIN, DHTTYPE); + +// WiFi configuration +#define WLAN_SSID "PUT_YOUR_WLAN_SSID_HERE" +#define WLAN_PASS "PUT_YOUR_WLAN_PASS_HERE" + +// MQTT configuration +#define MQTT_SERVER "PUT_YOUR_MQTT_SERVER_HERE" +#define MQTT_SERVERPORT 1883 +#define MQTT_USERNAME "" +#define MQTT_KEY "" +#define MQTT_FEED_TEMP "iescelia/aula22/temperature" +#define MQTT_FEED_HUMI "iescelia/aula22/humidity" + +WiFiClient client; + +Adafruit_MQTT_Client mqtt(&client, MQTT_SERVER, MQTT_SERVERPORT, MQTT_USERNAME, MQTT_USERNAME, MQTT_KEY); + +Adafruit_MQTT_Publish temperatureFeed = Adafruit_MQTT_Publish(&mqtt, MQTT_FEED_TEMP); + +Adafruit_MQTT_Publish humidityFeed = Adafruit_MQTT_Publish(&mqtt, MQTT_FEED_HUMI); + +//---------------------------------------------- + +void connectWiFi(); + +//---------------------------------------------- + +void setup() { + Serial.begin(115200); + Serial.println("IoT demo"); + dht.begin(); + connectWiFi(); + connectMQTT(); +} + +//---------------------------------------------- + +void loop() { + delay(2000); + + float h = dht.readHumidity(); + float t = dht.readTemperature(); + + if (isnan(h) || isnan(t)) { + Serial.println("Failed to read from DHT sensor!"); + return; + } + + Serial.print("Humidity: "); + Serial.print(h); + Serial.print(" %\t"); + Serial.print("Temperature: "); + Serial.print(t); + Serial.println(" *C "); + + temperatureFeed.publish(t); + humidityFeed.publish(h); +} + +//---------------------------------------------- + +void connectWiFi() { + WiFi.begin(WLAN_SSID, WLAN_PASS); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); +} + +//---------------------------------------------- + +void connectMQTT() { + if (mqtt.connected()) + return; + + Serial.print("Connecting to MQTT... "); + while (mqtt.connect() != 0) { + Serial.println("Error. Retrying MQTT connection in 5 seconds..."); + mqtt.disconnect(); + delay(5000); + } +} \ No newline at end of file diff --git a/Practica-15/docker-compose.yml b/Practica-15/docker-compose.yml new file mode 100644 index 0000000..d425cdd --- /dev/null +++ b/Practica-15/docker-compose.yml @@ -0,0 +1,63 @@ +version: '3' + +services: + mosquitto: + image: eclipse-mosquitto:2 + ports: + - 1883:1883 + volumes: + - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf + - mosquitto_data:/mosquitto/data + - mosquitto_log:/mosquitto/log + + telegraf: + image: telegraf:1.18 + volumes: + - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf + depends_on: + - influxdb + + influxdb: + image: influxdb:1.8 + ports: + - 8086:8086 + volumes: + - influxdb_data:/var/lib/influxdb + environment: + - INFLUXDB_DB=${INFLUXDB_DB} + - INFLUXDB_ADMIN_USER=${INFLUXDB_USERNAME} + - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_PASSWORD} + - INFLUXDB_HTTP_AUTH_ENABLED=true + + grafana: + image: grafana/grafana:7.4.0 + ports: + - 3000:3000 + volumes: + - grafana_data:/var/lib/grafana + - ./grafana-provisioning/:/etc/grafana/provisioning + depends_on: + - influxdb + environment: + - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME} + - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} + + chronograf: + image: chronograf:1.8 + ports: + - 8888:8888 + volumes: + - chronograf_data:/var/lib/chronograf + depends_on: + - influxdb + environment: + - INFLUXDB_URL=http://influxdb:8086 + - INFLUXDB_USERNAME=${INFLUXDB_USERNAME} + - INFLUXDB_PASSWORD=${INFLUXDB_PASSWORD} + +volumes: + mosquitto_data: + mosquitto_log: + influxdb_data: + grafana_data: + chronograf_data: \ No newline at end of file diff --git a/Practica-15/grafana-provisioning/dashboards/CO2Dashboard.json b/Practica-15/grafana-provisioning/dashboards/CO2Dashboard.json new file mode 100644 index 0000000..5e0665c --- /dev/null +++ b/Practica-15/grafana-provisioning/dashboards/CO2Dashboard.json @@ -0,0 +1,428 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "links": [], + "panels": [ + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "fill": 2, + "gridPos": { + "h": 6, + "w": 9, + "x": 0, + "y": 0 + }, + "id": 2, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": null, + "sortDesc": null, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": true, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "mqtt_consumer", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "topic", + "operator": "=", + "value": "iescelia/aula22/co2" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Aula 22 - CO2", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": "ppm", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "ppm", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "fill": 2, + "gridPos": { + "h": 6, + "w": 9, + "x": 9, + "y": 0 + }, + "id": 6, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": null, + "sortDesc": null, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": true, + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "mqtt_consumer", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "topic", + "operator": "=", + "value": "iescelia/aula22/tvoc" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Aula 22 - TVOC", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": "ppb", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": "ppb", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorPrefix": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "InfluxDB", + "format": "none", + "gauge": { + "maxValue": 5000, + "minValue": 400, + "show": true, + "thresholdLabels": true, + "thresholdMarkers": true + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 0 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": true + }, + "tableColumn": "", + "targets": [ + { + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "mqtt_consumer", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "topic", + "operator": "=", + "value": "iescelia/aula22/co2" + } + ] + } + ], + "thresholds": "1000,2500", + "title": "Aula 22 - CO2", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + } + ], + "refresh": "10s", + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-24h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "CO2 Dashboard", + "uid": "P-BEgsdMz", + "version": 1 +} \ No newline at end of file diff --git a/Practica-15/grafana-provisioning/dashboards/dashboard.yml b/Practica-15/grafana-provisioning/dashboards/dashboard.yml new file mode 100644 index 0000000..a919613 --- /dev/null +++ b/Practica-15/grafana-provisioning/dashboards/dashboard.yml @@ -0,0 +1,9 @@ +apiVersion: 1 +providers: +- name: InfluxDB + folder: '' + type: file + disableDeletion: false + editable: true + options: + path: /etc/grafana/provisioning/dashboards \ No newline at end of file diff --git a/Practica-15/grafana-provisioning/datasources/datasource.yml b/Practica-15/grafana-provisioning/datasources/datasource.yml new file mode 100644 index 0000000..a42e9c9 --- /dev/null +++ b/Practica-15/grafana-provisioning/datasources/datasource.yml @@ -0,0 +1,11 @@ +apiVersion: 1 +datasources: + - name: InfluxDB + type: influxdb + access: proxy + database: iescelia_db + user: root + password: root + url: http://influxdb:8086 + isDefault: true + editable: true \ No newline at end of file diff --git a/Practica-15/images/dashboard.png b/Practica-15/images/dashboard.png new file mode 100644 index 0000000..e2de883 Binary files /dev/null and b/Practica-15/images/dashboard.png differ diff --git a/Practica-15/images/diagram.png b/Practica-15/images/diagram.png new file mode 100644 index 0000000..7ad1ce6 Binary files /dev/null and b/Practica-15/images/diagram.png differ diff --git a/Practica-15/infraestructura/00-terminate_all_instances.sh b/Practica-15/infraestructura/00-terminate_all_instances.sh new file mode 100644 index 0000000..497d63a --- /dev/null +++ b/Practica-15/infraestructura/00-terminate_all_instances.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Eliminamos todas las intancias que están en ejecución +aws ec2 terminate-instances \ + --instance-ids $(aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" \ + --query "Reservations[*].Instances[*].InstanceId" \ + --output text) \ No newline at end of file diff --git a/Practica-15/infraestructura/01-delete_all_security_groups.sh b/Practica-15/infraestructura/01-delete_all_security_groups.sh new file mode 100644 index 0000000..3ffe06b --- /dev/null +++ b/Practica-15/infraestructura/01-delete_all_security_groups.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Guardamos una lista con todos los identificadores de las instancias EC2 +SG_ID_LIST=$(aws ec2 describe-security-groups \ + --query "SecurityGroups[*].GroupId" \ + --output text) + +# Recorremos la lista de ids y eliminamos las instancias +for ID in $SG_ID_LIST +do + echo "Eliminando $ID ..." + aws ec2 delete-security-group --group-id $ID +done \ No newline at end of file diff --git a/Practica-15/infraestructura/02-delete_all_elastic_ips.sh b/Practica-15/infraestructura/02-delete_all_elastic_ips.sh new file mode 100644 index 0000000..b47fb42 --- /dev/null +++ b/Practica-15/infraestructura/02-delete_all_elastic_ips.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Obtenemos la lista de Id de las direcciones IP elásticas públicas +ELASTIC_IP_IDS=$(aws ec2 describe-addresses \ + --query Addresses[*].AllocationId \ + --output text) + +# Recorremos la lista de Ids de IPs elásticas y las eliminamos +for ID in $ELASTIC_IP_IDS +do + echo "Eliminando $ID ..." + aws ec2 release-address --allocation-id $ID +done \ No newline at end of file diff --git a/Practica-15/infraestructura/03-create_security_groups.sh b/Practica-15/infraestructura/03-create_security_groups.sh new file mode 100644 index 0000000..08b58ac --- /dev/null +++ b/Practica-15/infraestructura/03-create_security_groups.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Creamos el grupo de seguridad: iot-sg +aws ec2 create-security-group \ + --group-name iot-sg \ + --description "Reglas para el grupo de seguridad iot-sg" + +# Creamos una regla de accesso SSH +aws ec2 authorize-security-group-ingress \ + --group-name iot-sg \ + --protocol tcp \ + --port 22 \ + --cidr 0.0.0.0/0 + +# Creamos una regla de accesso HTTP (Grafana) +aws ec2 authorize-security-group-ingress \ + --group-name iot-sg \ + --protocol tcp \ + --port 80 \ + --cidr 0.0.0.0/0 + +# Creamos una regla de accesso MQTT +aws ec2 authorize-security-group-ingress \ + --group-name iot-sg \ + --protocol tcp \ + --port 1883 \ + --cidr 0.0.0.0/0 \ No newline at end of file diff --git a/Practica-15/infraestructura/04-create_instances.sh b/Practica-15/infraestructura/04-create_instances.sh new file mode 100644 index 0000000..130d55a --- /dev/null +++ b/Practica-15/infraestructura/04-create_instances.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Variables de configuración +AMI_ID=ami-09d56f8956ab235b3 +COUNT=1 +INSTANCE_TYPE=t2.micro +KEY_NAME=vockey +SECURITY_GROUP=iot-sg +INSTANCE_NAME=iot-ec2 + +# Creamos una intancia EC2 +aws ec2 run-instances \ + --image-id $AMI_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME}]" diff --git a/Practica-15/infraestructura/05-create_elastic_ip.sh b/Practica-15/infraestructura/05-create_elastic_ip.sh new file mode 100644 index 0000000..6a9c8db --- /dev/null +++ b/Practica-15/infraestructura/05-create_elastic_ip.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -x + +# Deshabilitamos la paginación de la salida de los comandos de AWS CLI +# Referencia: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cliv2-migration.html#cliv2-migration-output-pager +export AWS_PAGER="" + +# Configuramos el nombre de la instancia a la que le vamos a asignar la IP elástica +INSTANCE_NAME=iot-ec2 + +# Obtenemos el Id de la instancia a partir de su nombre +INSTANCE_ID=$(aws ec2 describe-instances \ + --filters "Name=tag:Name,Values=$INSTANCE_NAME" \ + "Name=instance-state-name,Values=running" \ + --query "Reservations[*].Instances[*].InstanceId" \ + --output text) + +# Creamos una IP elástica +ELASTIC_IP=$(aws ec2 allocate-address --query PublicIp --output text) + +# Asociamos la IP elástica a la instancia del balanceador +aws ec2 associate-address --instance-id $INSTANCE_ID --public-ip $ELASTIC_IP \ No newline at end of file diff --git a/Practica-15/mosquitto/mosquitto.conf b/Practica-15/mosquitto/mosquitto.conf new file mode 100644 index 0000000..daa4137 --- /dev/null +++ b/Practica-15/mosquitto/mosquitto.conf @@ -0,0 +1,2 @@ +listener 1883 +allow_anonymous true \ No newline at end of file diff --git a/Practica-15/screenshots/01.png b/Practica-15/screenshots/01.png new file mode 100644 index 0000000..c9cd2e2 Binary files /dev/null and b/Practica-15/screenshots/01.png differ diff --git a/Practica-15/screenshots/02.png b/Practica-15/screenshots/02.png new file mode 100644 index 0000000..7b7d8c2 Binary files /dev/null and b/Practica-15/screenshots/02.png differ diff --git a/Practica-15/screenshots/03.png b/Practica-15/screenshots/03.png new file mode 100644 index 0000000..e2de883 Binary files /dev/null and b/Practica-15/screenshots/03.png differ diff --git a/Practica-15/screenshots/04.png b/Practica-15/screenshots/04.png new file mode 100644 index 0000000..b053718 Binary files /dev/null and b/Practica-15/screenshots/04.png differ diff --git a/Practica-15/telegraf/telegraf.conf b/Practica-15/telegraf/telegraf.conf new file mode 100644 index 0000000..9d7485f --- /dev/null +++ b/Practica-15/telegraf/telegraf.conf @@ -0,0 +1,6169 @@ +# Telegraf Configuration +# +# Telegraf is entirely plugin driven. All metrics are gathered from the +# declared inputs, and sent to the declared outputs. +# +# Plugins must be declared in here to be active. +# To deactivate a plugin, comment out the name and any variables. +# +# Use 'telegraf -config telegraf.conf -test' to see what metrics a config +# file would generate. +# +# Environment variables can be used anywhere in this config file, simply surround +# them with ${}. For strings the variable must be within quotes (ie, "${STR_VAR}"), +# for numbers and booleans they should be plain (ie, ${INT_VAR}, ${BOOL_VAR}) + + +# Global tags can be specified here in key="value" format. +[global_tags] + # dc = "us-east-1" # will tag all metrics with dc=us-east-1 + # rack = "1a" + ## Environment variables can be used as tags, and throughout the config file + # user = "$USER" + + +# Configuration for telegraf agent +[agent] + ## Default data collection interval for all inputs + interval = "10s" + ## Rounds collection interval to 'interval' + ## ie, if interval="10s" then always collect on :00, :10, :20, etc. + round_interval = true + + ## Telegraf will send metrics to outputs in batches of at most + ## metric_batch_size metrics. + ## This controls the size of writes that Telegraf sends to output plugins. + metric_batch_size = 1000 + + ## Maximum number of unwritten metrics per output. Increasing this value + ## allows for longer periods of output downtime without dropping metrics at the + ## cost of higher maximum memory usage. + metric_buffer_limit = 10000 + + ## Collection jitter is used to jitter the collection by a random amount. + ## Each plugin will sleep for a random time within jitter before collecting. + ## This can be used to avoid many plugins querying things like sysfs at the + ## same time, which can have a measurable effect on the system. + collection_jitter = "0s" + + ## Default flushing interval for all outputs. Maximum flush_interval will be + ## flush_interval + flush_jitter + flush_interval = "10s" + ## Jitter the flush interval by a random amount. This is primarily to avoid + ## large write spikes for users running a large number of telegraf instances. + ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s + flush_jitter = "0s" + + ## By default or when set to "0s", precision will be set to the same + ## timestamp order as the collection interval, with the maximum being 1s. + ## ie, when interval = "10s", precision will be "1s" + ## when interval = "250ms", precision will be "1ms" + ## Precision will NOT be used for service inputs. It is up to each individual + ## service input to set the timestamp at the appropriate precision. + ## Valid time units are "ns", "us" (or "µs"), "ms", "s". + precision = "" + + ## Log at debug level. + # debug = false + ## Log only error level messages. + # quiet = false + + ## Log target controls the destination for logs and can be one of "file", + ## "stderr" or, on Windows, "eventlog". When set to "file", the output file + ## is determined by the "logfile" setting. + # logtarget = "file" + + ## Name of the file to be logged to when using the "file" logtarget. If set to + ## the empty string then logs are written to stderr. + # logfile = "" + + ## The logfile will be rotated after the time interval specified. When set + ## to 0 no time based rotation is performed. Logs are rotated only when + ## written to, if there is no log activity rotation may be delayed. + # logfile_rotation_interval = "0d" + + ## The logfile will be rotated when it becomes larger than the specified + ## size. When set to 0 no size based rotation is performed. + # logfile_rotation_max_size = "0MB" + + ## Maximum number of rotated archives to keep, any older logs are deleted. + ## If set to -1, no archives are removed. + # logfile_rotation_max_archives = 5 + + ## Override default hostname, if empty use os.Hostname() + hostname = "" + ## If set to true, do no set the "host" tag in the telegraf agent. + omit_hostname = false + + +############################################################################### +# OUTPUT PLUGINS # +############################################################################### + + +# Configuration for sending metrics to InfluxDB +[[outputs.influxdb]] + ## The full HTTP or UDP URL for your InfluxDB instance. + ## + ## Multiple URLs can be specified for a single cluster, only ONE of the + ## urls will be written to each interval. + # urls = ["unix:///var/run/influxdb.sock"] + #urls = ["upd://influxdb:8086"] + urls = ["http://influxdb:8086"] + + ## The target database for metrics; will be created as needed. + ## For UDP url endpoint database needs to be configured on server side. + database = "iescelia_db" + + ## The value of this tag will be used to determine the database. If this + ## tag is not set the 'database' option is used as the default. + # database_tag = "" + + ## If true, the database tag will not be added to the metric. + # exclude_database_tag = false + + ## If true, no CREATE DATABASE queries will be sent. Set to true when using + ## Telegraf with a user without permissions to create databases or when the + ## database already exists. + skip_database_creation = true + + ## Name of existing retention policy to write to. Empty string writes to + ## the default retention policy. Only takes effect when using HTTP. + # retention_policy = "" + + ## Write consistency (clusters only), can be: "any", "one", "quorum", "all". + ## Only takes effect when using HTTP. + # write_consistency = "any" + + ## Timeout for HTTP messages. + # timeout = "5s" + + ## HTTP Basic Auth + username = "root" + password = "root" + + ## HTTP User-Agent + # user_agent = "telegraf" + + ## UDP payload size is the maximum packet size to send. + # udp_payload = "512B" + + ## Optional TLS Config for use on HTTP connections. + # tls_ca = "/etc/telegraf/ca.pem" + # tls_cert = "/etc/telegraf/cert.pem" + # tls_key = "/etc/telegraf/key.pem" + ## Use TLS but skip chain & host verification + # insecure_skip_verify = false + + ## HTTP Proxy override, if unset values the standard proxy environment + ## variables are consulted to determine which proxy, if any, should be used. + # http_proxy = "http://corporate.proxy:3128" + + ## Additional HTTP headers + # http_headers = {"X-Special-Header" = "Special-Value"} + + ## HTTP Content-Encoding for write request body, can be set to "gzip" to + ## compress body or "identity" to apply no encoding. + # content_encoding = "identity" + + ## When true, Telegraf will output unsigned integers as unsigned values, + ## i.e.: "42u". You will need a version of InfluxDB supporting unsigned + ## integer values. Enabling this option will result in field type errors if + ## existing data has been written. + # influx_uint_support = false + + +# # Configuration for Amon Server to send metrics to. +# [[outputs.amon]] +# ## Amon Server Key +# server_key = "my-server-key" # required. +# +# ## Amon Instance URL +# amon_instance = "https://youramoninstance" # required +# +# ## Connection timeout. +# # timeout = "5s" + + +# # Publishes metrics to an AMQP broker +# [[outputs.amqp]] +# ## Broker to publish to. +# ## deprecated in 1.7; use the brokers option +# # url = "amqp://localhost:5672/influxdb" +# +# ## Brokers to publish to. If multiple brokers are specified a random broker +# ## will be selected anytime a connection is established. This can be +# ## helpful for load balancing when not using a dedicated load balancer. +# brokers = ["amqp://localhost:5672/influxdb"] +# +# ## Maximum messages to send over a connection. Once this is reached, the +# ## connection is closed and a new connection is made. This can be helpful for +# ## load balancing when not using a dedicated load balancer. +# # max_messages = 0 +# +# ## Exchange to declare and publish to. +# exchange = "telegraf" +# +# ## Exchange type; common types are "direct", "fanout", "topic", "header", "x-consistent-hash". +# # exchange_type = "topic" +# +# ## If true, exchange will be passively declared. +# # exchange_passive = false +# +# ## Exchange durability can be either "transient" or "durable". +# # exchange_durability = "durable" +# +# ## Additional exchange arguments. +# # exchange_arguments = { } +# # exchange_arguments = {"hash_propery" = "timestamp"} +# +# ## Authentication credentials for the PLAIN auth_method. +# # username = "" +# # password = "" +# +# ## Auth method. PLAIN and EXTERNAL are supported +# ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as +# ## described here: https://www.rabbitmq.com/plugins.html +# # auth_method = "PLAIN" +# +# ## Metric tag to use as a routing key. +# ## ie, if this tag exists, its value will be used as the routing key +# # routing_tag = "host" +# +# ## Static routing key. Used when no routing_tag is set or as a fallback +# ## when the tag specified in routing tag is not found. +# # routing_key = "" +# # routing_key = "telegraf" +# +# ## Delivery Mode controls if a published message is persistent. +# ## One of "transient" or "persistent". +# # delivery_mode = "transient" +# +# ## InfluxDB database added as a message header. +# ## deprecated in 1.7; use the headers option +# # database = "telegraf" +# +# ## InfluxDB retention policy added as a message header +# ## deprecated in 1.7; use the headers option +# # retention_policy = "default" +# +# ## Static headers added to each published message. +# # headers = { } +# # headers = {"database" = "telegraf", "retention_policy" = "default"} +# +# ## Connection timeout. If not provided, will default to 5s. 0s means no +# ## timeout (not recommended). +# # timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## If true use batch serialization format instead of line based delimiting. +# ## Only applies to data formats which are not line based such as JSON. +# ## Recommended to set to true. +# # use_batch_format = false +# +# ## Content encoding for message payloads, can be set to "gzip" to or +# ## "identity" to apply no encoding. +# ## +# ## Please note that when use_batch_format = false each amqp message contains only +# ## a single metric, it is recommended to use compression with batch format +# ## for best results. +# # content_encoding = "identity" +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# # data_format = "influx" + + +# # Send metrics to Azure Application Insights +# [[outputs.application_insights]] +# ## Instrumentation key of the Application Insights resource. +# instrumentation_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx" +# +# ## Timeout for closing (default: 5s). +# # timeout = "5s" +# +# ## Enable additional diagnostic logging. +# # enable_diagnostic_logging = false +# +# ## Context Tag Sources add Application Insights context tags to a tag value. +# ## +# ## For list of allowed context tag keys see: +# ## https://github.com/Microsoft/ApplicationInsights-Go/blob/master/appinsights/contracts/contexttagkeys.go +# # [outputs.application_insights.context_tag_sources] +# # "ai.cloud.role" = "kubernetes_container_name" +# # "ai.cloud.roleInstance" = "kubernetes_pod_name" + + +# # Send aggregate metrics to Azure Monitor +# [[outputs.azure_monitor]] +# ## Timeout for HTTP writes. +# # timeout = "20s" +# +# ## Set the namespace prefix, defaults to "Telegraf/". +# # namespace_prefix = "Telegraf/" +# +# ## Azure Monitor doesn't have a string value type, so convert string +# ## fields to dimensions (a.k.a. tags) if enabled. Azure Monitor allows +# ## a maximum of 10 dimensions so Telegraf will only send the first 10 +# ## alphanumeric dimensions. +# # strings_as_dimensions = false +# +# ## Both region and resource_id must be set or be available via the +# ## Instance Metadata service on Azure Virtual Machines. +# # +# ## Azure Region to publish metrics against. +# ## ex: region = "southcentralus" +# # region = "" +# # +# ## The Azure Resource ID against which metric will be logged, e.g. +# ## ex: resource_id = "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/" +# # resource_id = "" +# +# ## Optionally, if in Azure US Government, China or other sovereign +# ## cloud environment, set appropriate REST endpoint for receiving +# ## metrics. (Note: region may be unused in this context) +# # endpoint_url = "https://monitoring.core.usgovcloudapi.net" + + +# # Publish Telegraf metrics to a Google Cloud PubSub topic +# [[outputs.cloud_pubsub]] +# ## Required. Name of Google Cloud Platform (GCP) Project that owns +# ## the given PubSub topic. +# project = "my-project" +# +# ## Required. Name of PubSub topic to publish metrics to. +# topic = "my-topic" +# +# ## Required. Data format to consume. +# ## Each data format has its own unique set of configuration options. +# ## Read more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" +# +# ## Optional. Filepath for GCP credentials JSON file to authorize calls to +# ## PubSub APIs. If not set explicitly, Telegraf will attempt to use +# ## Application Default Credentials, which is preferred. +# # credentials_file = "path/to/my/creds.json" +# +# ## Optional. If true, will send all metrics per write in one PubSub message. +# # send_batched = true +# +# ## The following publish_* parameters specifically configures batching +# ## requests made to the GCP Cloud PubSub API via the PubSub Golang library. Read +# ## more here: https://godoc.org/cloud.google.com/go/pubsub#PublishSettings +# +# ## Optional. Send a request to PubSub (i.e. actually publish a batch) +# ## when it has this many PubSub messages. If send_batched is true, +# ## this is ignored and treated as if it were 1. +# # publish_count_threshold = 1000 +# +# ## Optional. Send a request to PubSub (i.e. actually publish a batch) +# ## when it has this many PubSub messages. If send_batched is true, +# ## this is ignored and treated as if it were 1 +# # publish_byte_threshold = 1000000 +# +# ## Optional. Specifically configures requests made to the PubSub API. +# # publish_num_go_routines = 2 +# +# ## Optional. Specifies a timeout for requests to the PubSub API. +# # publish_timeout = "30s" +# +# ## Optional. If true, published PubSub message data will be base64-encoded. +# # base64_data = false +# +# ## Optional. PubSub attributes to add to metrics. +# # [[inputs.pubsub.attributes]] +# # my_attr = "tag_value" + + +# # Configuration for AWS CloudWatch output. +# [[outputs.cloudwatch]] +# ## Amazon REGION +# region = "us-east-1" +# +# ## Amazon Credentials +# ## Credentials are loaded in the following order +# ## 1) Assumed credentials via STS if role_arn is specified +# ## 2) explicit credentials from 'access_key' and 'secret_key' +# ## 3) shared profile from 'profile' +# ## 4) environment variables +# ## 5) shared credentials file +# ## 6) EC2 Instance Profile +# #access_key = "" +# #secret_key = "" +# #token = "" +# #role_arn = "" +# #profile = "" +# #shared_credential_file = "" +# +# ## Endpoint to make request against, the correct endpoint is automatically +# ## determined and this option should only be set if you wish to override the +# ## default. +# ## ex: endpoint_url = "http://localhost:8000" +# # endpoint_url = "" +# +# ## Namespace for the CloudWatch MetricDatums +# namespace = "InfluxData/Telegraf" +# +# ## If you have a large amount of metrics, you should consider to send statistic +# ## values instead of raw metrics which could not only improve performance but +# ## also save AWS API cost. If enable this flag, this plugin would parse the required +# ## CloudWatch statistic fields (count, min, max, and sum) and send them to CloudWatch. +# ## You could use basicstats aggregator to calculate those fields. If not all statistic +# ## fields are available, all fields would still be sent as raw metrics. +# # write_statistics = false +# +# ## Enable high resolution metrics of 1 second (if not enabled, standard resolution are of 60 seconds precision) +# # high_resolution_metrics = false + + +# # Configuration for CrateDB to send metrics to. +# [[outputs.cratedb]] +# # A github.com/jackc/pgx connection string. +# # See https://godoc.org/github.com/jackc/pgx#ParseDSN +# url = "postgres://user:password@localhost/schema?sslmode=disable" +# # Timeout for all CrateDB queries. +# timeout = "5s" +# # Name of the table to store metrics in. +# table = "metrics" +# # If true, and the metrics table does not exist, create it automatically. +# table_create = true + + +# # Configuration for DataDog API to send metrics to. +# [[outputs.datadog]] +# ## Datadog API key +# apikey = "my-secret-key" # required. +# +# # The base endpoint URL can optionally be specified but it defaults to: +# #url = "https://app.datadoghq.com/api/v1/series" +# +# ## Connection timeout. +# # timeout = "5s" + + +# # Send metrics to nowhere at all +# [[outputs.discard]] +# # no configuration + + +# # Configuration for Elasticsearch to send metrics to. +# [[outputs.elasticsearch]] +# ## The full HTTP endpoint URL for your Elasticsearch instance +# ## Multiple urls can be specified as part of the same cluster, +# ## this means that only ONE of the urls will be written to each interval. +# urls = [ "http://node1.es.example.com:9200" ] # required. +# ## Elasticsearch client timeout, defaults to "5s" if not set. +# timeout = "5s" +# ## Set to true to ask Elasticsearch a list of all cluster nodes, +# ## thus it is not necessary to list all nodes in the urls config option. +# enable_sniffer = false +# ## Set the interval to check if the Elasticsearch nodes are available +# ## Setting to "0s" will disable the health check (not recommended in production) +# health_check_interval = "10s" +# ## HTTP basic authentication details +# # username = "telegraf" +# # password = "mypassword" +# +# ## Index Config +# ## The target index for metrics (Elasticsearch will create if it not exists). +# ## You can use the date specifiers below to create indexes per time frame. +# ## The metric timestamp will be used to decide the destination index name +# # %Y - year (2016) +# # %y - last two digits of year (00..99) +# # %m - month (01..12) +# # %d - day of month (e.g., 01) +# # %H - hour (00..23) +# # %V - week of the year (ISO week) (01..53) +# ## Additionally, you can specify a tag name using the notation {{tag_name}} +# ## which will be used as part of the index name. If the tag does not exist, +# ## the default tag value will be used. +# # index_name = "telegraf-{{host}}-%Y.%m.%d" +# # default_tag_value = "none" +# index_name = "telegraf-%Y.%m.%d" # required. +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Template Config +# ## Set to true if you want telegraf to manage its index template. +# ## If enabled it will create a recommended index template for telegraf indexes +# manage_template = true +# ## The template name used for telegraf indexes +# template_name = "telegraf" +# ## Set to true if you want telegraf to overwrite an existing template +# overwrite_template = false + + +# # Send metrics to command as input over stdin +# [[outputs.exec]] +# ## Command to injest metrics via stdin. +# command = ["tee", "-a", "/dev/null"] +# +# ## Timeout for command to complete. +# # timeout = "5s" +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# # data_format = "influx" + + +# # Send telegraf metrics to file(s) +# [[outputs.file]] +# ## Files to write to, "stdout" is a specially handled file. +# files = ["stdout", "/tmp/metrics.out"] +# +# ## Use batch serialization format instead of line based delimiting. The +# ## batch format allows for the production of non line based output formats and +# ## may more effiently encode metric groups. +# # use_batch_format = false +# +# ## The file will be rotated after the time interval specified. When set +# ## to 0 no time based rotation is performed. +# # rotation_interval = "0d" +# +# ## The logfile will be rotated when it becomes larger than the specified +# ## size. When set to 0 no size based rotation is performed. +# # rotation_max_size = "0MB" +# +# ## Maximum number of rotated archives to keep, any older logs are deleted. +# ## If set to -1, no archives are removed. +# # rotation_max_archives = 5 +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# data_format = "influx" + + +# # Configuration for Graphite server to send metrics to +# [[outputs.graphite]] +# ## TCP endpoint for your graphite instance. +# ## If multiple endpoints are configured, output will be load balanced. +# ## Only one of the endpoints will be written to with each iteration. +# servers = ["localhost:2003"] +# ## Prefix metrics name +# prefix = "" +# ## Graphite output template +# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# template = "host.tags.measurement.field" +# +# ## Enable Graphite tags support +# # graphite_tag_support = false +# +# ## timeout in seconds for the write connection to graphite +# timeout = 2 +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Send telegraf metrics to graylog(s) +# [[outputs.graylog]] +# ## UDP endpoint for your graylog instance. +# servers = ["127.0.0.1:12201", "192.168.1.1:12201"] + + +# # Configurable HTTP health check resource based on metrics +# [[outputs.health]] +# ## Address and port to listen on. +# ## ex: service_address = "http://localhost:8080" +# ## service_address = "unix:///var/run/telegraf-health.sock" +# # service_address = "http://:8080" +# +# ## The maximum duration for reading the entire request. +# # read_timeout = "5s" +# ## The maximum duration for writing the entire response. +# # write_timeout = "5s" +# +# ## Username and password to accept for HTTP basic authentication. +# # basic_username = "user1" +# # basic_password = "secret" +# +# ## Allowed CA certificates for client certificates. +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## TLS server certificate and private key. +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## One or more check sub-tables should be defined, it is also recommended to +# ## use metric filtering to limit the metrics that flow into this output. +# ## +# ## When using the default buffer sizes, this example will fail when the +# ## metric buffer is half full. +# ## +# ## namepass = ["internal_write"] +# ## tagpass = { output = ["influxdb"] } +# ## +# ## [[outputs.health.compares]] +# ## field = "buffer_size" +# ## lt = 5000.0 +# ## +# ## [[outputs.health.contains]] +# ## field = "buffer_size" + + +# # A plugin that can transmit metrics over HTTP +# [[outputs.http]] +# ## URL is the address to send metrics to +# url = "http://127.0.0.1:8080/telegraf" +# +# ## Timeout for HTTP message +# # timeout = "5s" +# +# ## HTTP method, one of: "POST" or "PUT" +# # method = "POST" +# +# ## HTTP Basic Auth credentials +# # username = "username" +# # password = "pa$$word" +# +# ## OAuth2 Client Credentials Grant +# # client_id = "clientid" +# # client_secret = "secret" +# # token_url = "https://indentityprovider/oauth2/v1/token" +# # scopes = ["urn:opc:idm:__myscopes__"] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Data format to output. +# ## Each data format has it's own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# # data_format = "influx" +# +# ## HTTP Content-Encoding for write request body, can be set to "gzip" to +# ## compress body or "identity" to apply no encoding. +# # content_encoding = "identity" +# +# ## Additional HTTP headers +# # [outputs.http.headers] +# # # Should be set manually to "application/json" for json data_format +# # Content-Type = "text/plain; charset=utf-8" + + +# # Configuration for sending metrics to InfluxDB +# [[outputs.influxdb_v2]] +# ## The URLs of the InfluxDB cluster nodes. +# ## +# ## Multiple URLs can be specified for a single cluster, only ONE of the +# ## urls will be written to each interval. +# ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] +# urls = ["http://127.0.0.1:9999"] +# +# ## Token for authentication. +# token = "" +# +# ## Organization is the name of the organization you wish to write to; must exist. +# organization = "" +# +# ## Destination bucket to write into. +# bucket = "" +# +# ## The value of this tag will be used to determine the bucket. If this +# ## tag is not set the 'bucket' option is used as the default. +# # bucket_tag = "" +# +# ## If true, the bucket tag will not be added to the metric. +# # exclude_bucket_tag = false +# +# ## Timeout for HTTP messages. +# # timeout = "5s" +# +# ## Additional HTTP headers +# # http_headers = {"X-Special-Header" = "Special-Value"} +# +# ## HTTP Proxy override, if unset values the standard proxy environment +# ## variables are consulted to determine which proxy, if any, should be used. +# # http_proxy = "http://corporate.proxy:3128" +# +# ## HTTP User-Agent +# # user_agent = "telegraf" +# +# ## Content-Encoding for write request body, can be set to "gzip" to +# ## compress body or "identity" to apply no encoding. +# # content_encoding = "gzip" +# +# ## Enable or disable uint support for writing uints influxdb 2.0. +# # influx_uint_support = false +# +# ## Optional TLS Config for use on HTTP connections. +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Configuration for sending metrics to an Instrumental project +# [[outputs.instrumental]] +# ## Project API Token (required) +# api_token = "API Token" # required +# ## Prefix the metrics with a given name +# prefix = "" +# ## Stats output template (Graphite formatting) +# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite +# template = "host.tags.measurement.field" +# ## Timeout in seconds to connect +# timeout = "2s" +# ## Display Communcation to Instrumental +# debug = false + + +# # Configuration for the Kafka server to send metrics to +# [[outputs.kafka]] +# ## URLs of kafka brokers +# brokers = ["localhost:9092"] +# ## Kafka topic for producer messages +# topic = "telegraf" +# +# ## Optional Client id +# # client_id = "Telegraf" +# +# ## Set the minimal supported Kafka version. Setting this enables the use of new +# ## Kafka features and APIs. Of particular interest, lz4 compression +# ## requires at least version 0.10.0.0. +# ## ex: version = "1.1.0" +# # version = "" +# +# ## Optional topic suffix configuration. +# ## If the section is omitted, no suffix is used. +# ## Following topic suffix methods are supported: +# ## measurement - suffix equals to separator + measurement's name +# ## tags - suffix equals to separator + specified tags' values +# ## interleaved with separator +# +# ## Suffix equals to "_" + measurement name +# # [outputs.kafka.topic_suffix] +# # method = "measurement" +# # separator = "_" +# +# ## Suffix equals to "__" + measurement's "foo" tag value. +# ## If there's no such a tag, suffix equals to an empty string +# # [outputs.kafka.topic_suffix] +# # method = "tags" +# # keys = ["foo"] +# # separator = "__" +# +# ## Suffix equals to "_" + measurement's "foo" and "bar" +# ## tag values, separated by "_". If there is no such tags, +# ## their values treated as empty strings. +# # [outputs.kafka.topic_suffix] +# # method = "tags" +# # keys = ["foo", "bar"] +# # separator = "_" +# +# ## Telegraf tag to use as a routing key +# ## ie, if this tag exists, its value will be used as the routing key +# routing_tag = "host" +# +# ## Static routing key. Used when no routing_tag is set or as a fallback +# ## when the tag specified in routing tag is not found. If set to "random", +# ## a random value will be generated for each message. +# ## ex: routing_key = "random" +# ## routing_key = "telegraf" +# # routing_key = "" +# +# ## CompressionCodec represents the various compression codecs recognized by +# ## Kafka in messages. +# ## 0 : No compression +# ## 1 : Gzip compression +# ## 2 : Snappy compression +# ## 3 : LZ4 compression +# # compression_codec = 0 +# +# ## RequiredAcks is used in Produce Requests to tell the broker how many +# ## replica acknowledgements it must see before responding +# ## 0 : the producer never waits for an acknowledgement from the broker. +# ## This option provides the lowest latency but the weakest durability +# ## guarantees (some data will be lost when a server fails). +# ## 1 : the producer gets an acknowledgement after the leader replica has +# ## received the data. This option provides better durability as the +# ## client waits until the server acknowledges the request as successful +# ## (only messages that were written to the now-dead leader but not yet +# ## replicated will be lost). +# ## -1: the producer gets an acknowledgement after all in-sync replicas have +# ## received the data. This option provides the best durability, we +# ## guarantee that no messages will be lost as long as at least one in +# ## sync replica remains. +# # required_acks = -1 +# +# ## The maximum number of times to retry sending a metric before failing +# ## until the next flush. +# # max_retry = 3 +# +# ## The maximum permitted size of a message. Should be set equal to or +# ## smaller than the broker's 'message.max.bytes'. +# # max_message_bytes = 1000000 +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Optional SASL Config +# # sasl_username = "kafka" +# # sasl_password = "secret" +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# # data_format = "influx" + + +# # Configuration for the AWS Kinesis output. +# [[outputs.kinesis]] +# ## Amazon REGION of kinesis endpoint. +# region = "ap-southeast-2" +# +# ## Amazon Credentials +# ## Credentials are loaded in the following order +# ## 1) Assumed credentials via STS if role_arn is specified +# ## 2) explicit credentials from 'access_key' and 'secret_key' +# ## 3) shared profile from 'profile' +# ## 4) environment variables +# ## 5) shared credentials file +# ## 6) EC2 Instance Profile +# #access_key = "" +# #secret_key = "" +# #token = "" +# #role_arn = "" +# #profile = "" +# #shared_credential_file = "" +# +# ## Endpoint to make request against, the correct endpoint is automatically +# ## determined and this option should only be set if you wish to override the +# ## default. +# ## ex: endpoint_url = "http://localhost:8000" +# # endpoint_url = "" +# +# ## Kinesis StreamName must exist prior to starting telegraf. +# streamname = "StreamName" +# ## DEPRECATED: PartitionKey as used for sharding data. +# partitionkey = "PartitionKey" +# ## DEPRECATED: If set the paritionKey will be a random UUID on every put. +# ## This allows for scaling across multiple shards in a stream. +# ## This will cause issues with ordering. +# use_random_partitionkey = false +# ## The partition key can be calculated using one of several methods: +# ## +# ## Use a static value for all writes: +# # [outputs.kinesis.partition] +# # method = "static" +# # key = "howdy" +# # +# ## Use a random partition key on each write: +# # [outputs.kinesis.partition] +# # method = "random" +# # +# ## Use the measurement name as the partition key: +# # [outputs.kinesis.partition] +# # method = "measurement" +# # +# ## Use the value of a tag for all writes, if the tag is not set the empty +# ## default option will be used. When no default, defaults to "telegraf" +# # [outputs.kinesis.partition] +# # method = "tag" +# # key = "host" +# # default = "mykey" +# +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# data_format = "influx" +# +# ## debug will show upstream aws messages. +# debug = false + + +# # Configuration for Librato API to send metrics to. +# [[outputs.librato]] +# ## Librator API Docs +# ## http://dev.librato.com/v1/metrics-authentication +# ## Librato API user +# api_user = "telegraf@influxdb.com" # required. +# ## Librato API token +# api_token = "my-secret-token" # required. +# ## Debug +# # debug = false +# ## Connection timeout. +# # timeout = "5s" +# ## Output source Template (same as graphite buckets) +# ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite +# ## This template is used in librato's source (not metric's name) +# template = "host" +# + + +# # Configuration for MQTT server to send metrics to +# [[outputs.mqtt]] +# servers = ["localhost:1883"] # required. +# +# ## MQTT outputs send metrics to this topic format +# ## "///" +# ## ex: prefix/web01.example.com/mem +# topic_prefix = "telegraf" +# +# ## QoS policy for messages +# ## 0 = at most once +# ## 1 = at least once +# ## 2 = exactly once +# # qos = 2 +# +# ## username and password to connect MQTT server. +# # username = "telegraf" +# # password = "metricsmetricsmetricsmetrics" +# +# ## client ID, if not set a random ID is generated +# # client_id = "" +# +# ## Timeout for write operations. default: 5s +# # timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## When true, metrics will be sent in one MQTT message per flush. Otherwise, +# ## metrics are written one metric per MQTT message. +# # batch = false +# +# ## When true, metric will have RETAIN flag set, making broker cache entries until someone +# ## actually reads it +# # retain = false +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# data_format = "influx" + + +# # Send telegraf measurements to NATS +# [[outputs.nats]] +# ## URLs of NATS servers +# servers = ["nats://localhost:4222"] +# ## Optional credentials +# # username = "" +# # password = "" +# ## NATS subject for producer messages +# subject = "telegraf" +# +# ## Use Transport Layer Security +# # secure = false +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# data_format = "influx" + + +# # Send telegraf measurements to NSQD +# [[outputs.nsq]] +# ## Location of nsqd instance listening on TCP +# server = "localhost:4150" +# ## NSQ topic for producer messages +# topic = "telegraf" +# +# ## Data format to output. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md +# data_format = "influx" + + +# # Configuration for OpenTSDB server to send metrics to +# [[outputs.opentsdb]] +# ## prefix for metrics keys +# prefix = "my.specific.prefix." +# +# ## DNS name of the OpenTSDB server +# ## Using "opentsdb.example.com" or "tcp://opentsdb.example.com" will use the +# ## telnet API. "http://opentsdb.example.com" will use the Http API. +# host = "opentsdb.example.com" +# +# ## Port of the OpenTSDB server +# port = 4242 +# +# ## Number of data points to send to OpenTSDB in Http requests. +# ## Not used with telnet API. +# http_batch_size = 50 +# +# ## URI Path for Http requests to OpenTSDB. +# ## Used in cases where OpenTSDB is located behind a reverse proxy. +# http_path = "/api/put" +# +# ## Debug true - Prints OpenTSDB communication +# debug = false +# +# ## Separator separates measurement name from field +# separator = "_" + + +# # Configuration for the Prometheus client to spawn +# [[outputs.prometheus_client]] +# ## Address to listen on +# listen = ":9273" +# +# ## Metric version controls the mapping from Telegraf metrics into +# ## Prometheus format. When using the prometheus input, use the same value in +# ## both plugins to ensure metrics are round-tripped without modification. +# ## +# ## example: metric_version = 1; deprecated in 1.13 +# ## metric_version = 2; recommended version +# # metric_version = 1 +# +# ## Use HTTP Basic Authentication. +# # basic_username = "Foo" +# # basic_password = "Bar" +# +# ## If set, the IP Ranges which are allowed to access metrics. +# ## ex: ip_range = ["192.168.0.0/24", "192.168.1.0/30"] +# # ip_range = [] +# +# ## Path to publish the metrics on. +# # path = "/metrics" +# +# ## Expiration interval for each metric. 0 == no expiration +# # expiration_interval = "60s" +# +# ## Collectors to enable, valid entries are "gocollector" and "process". +# ## If unset, both are enabled. +# # collectors_exclude = ["gocollector", "process"] +# +# ## Send string metrics as Prometheus labels. +# ## Unless set to false all string metrics will be sent as labels. +# # string_as_label = true +# +# ## If set, enable TLS with the given certificate. +# # tls_cert = "/etc/ssl/telegraf.crt" +# # tls_key = "/etc/ssl/telegraf.key" +# +# ## Set one or more allowed client CA certificate file names to +# ## enable mutually authenticated TLS connections +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Export metric collection time. +# # export_timestamp = false + + +# # Configuration for the Riemann server to send metrics to +# [[outputs.riemann]] +# ## The full TCP or UDP URL of the Riemann server +# url = "tcp://localhost:5555" +# +# ## Riemann event TTL, floating-point time in seconds. +# ## Defines how long that an event is considered valid for in Riemann +# # ttl = 30.0 +# +# ## Separator to use between measurement and field name in Riemann service name +# ## This does not have any effect if 'measurement_as_attribute' is set to 'true' +# separator = "/" +# +# ## Set measurement name as Riemann attribute 'measurement', instead of prepending it to the Riemann service name +# # measurement_as_attribute = false +# +# ## Send string metrics as Riemann event states. +# ## Unless enabled all string metrics will be ignored +# # string_as_state = false +# +# ## A list of tag keys whose values get sent as Riemann tags. +# ## If empty, all Telegraf tag values will be sent as tags +# # tag_keys = ["telegraf","custom_tag"] +# +# ## Additional Riemann tags to send. +# # tags = ["telegraf-output"] +# +# ## Description for Riemann event +# # description_text = "metrics collected from telegraf" +# +# ## Riemann client write timeout, defaults to "5s" if not set. +# # timeout = "5s" + + +# # Configuration for the Riemann server to send metrics to +# [[outputs.riemann_legacy]] +# ## URL of server +# url = "localhost:5555" +# ## transport protocol to use either tcp or udp +# transport = "tcp" +# ## separator to use between input name and field name in Riemann service name +# separator = " " + + +# # Generic socket writer capable of handling multiple socket types. +# [[outputs.socket_writer]] +# ## URL to connect to +# # address = "tcp://127.0.0.1:8094" +# # address = "tcp://example.com:http" +# # address = "tcp4://127.0.0.1:8094" +# # address = "tcp6://127.0.0.1:8094" +# # address = "tcp6://[2001:db8::1]:8094" +# # address = "udp://127.0.0.1:8094" +# # address = "udp4://127.0.0.1:8094" +# # address = "udp6://127.0.0.1:8094" +# # address = "unix:///tmp/telegraf.sock" +# # address = "unixgram:///tmp/telegraf.sock" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Period between keep alive probes. +# ## Only applies to TCP sockets. +# ## 0 disables keep alive probes. +# ## Defaults to the OS configuration. +# # keep_alive_period = "5m" +# +# ## Data format to generate. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# # data_format = "influx" + + +# # Configuration for Google Cloud Stackdriver to send metrics to +# [[outputs.stackdriver]] +# ## GCP Project +# project = "erudite-bloom-151019" +# +# ## The namespace for the metric descriptor +# namespace = "telegraf" +# +# ## Custom resource type +# # resource_type = "generic_node" +# +# ## Additonal resource labels +# # [outputs.stackdriver.resource_labels] +# # node_id = "$HOSTNAME" +# # namespace = "myapp" +# # location = "eu-north0" + + +# # Configuration for Syslog server to send metrics to +# [[outputs.syslog]] +# ## URL to connect to +# ## ex: address = "tcp://127.0.0.1:8094" +# ## ex: address = "tcp4://127.0.0.1:8094" +# ## ex: address = "tcp6://127.0.0.1:8094" +# ## ex: address = "tcp6://[2001:db8::1]:8094" +# ## ex: address = "udp://127.0.0.1:8094" +# ## ex: address = "udp4://127.0.0.1:8094" +# ## ex: address = "udp6://127.0.0.1:8094" +# address = "tcp://127.0.0.1:8094" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Period between keep alive probes. +# ## Only applies to TCP sockets. +# ## 0 disables keep alive probes. +# ## Defaults to the OS configuration. +# # keep_alive_period = "5m" +# +# ## The framing technique with which it is expected that messages are +# ## transported (default = "octet-counting"). Whether the messages come +# ## using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), +# ## or the non-transparent framing technique (RFC6587#section-3.4.2). Must +# ## be one of "octet-counting", "non-transparent". +# # framing = "octet-counting" +# +# ## The trailer to be expected in case of non-trasparent framing (default = "LF"). +# ## Must be one of "LF", or "NUL". +# # trailer = "LF" +# +# ## SD-PARAMs settings +# ## Syslog messages can contain key/value pairs within zero or more +# ## structured data sections. For each unrecognised metric tag/field a +# ## SD-PARAMS is created. +# ## +# ## Example: +# ## [[outputs.syslog]] +# ## sdparam_separator = "_" +# ## default_sdid = "default@32473" +# ## sdids = ["foo@123", "bar@456"] +# ## +# ## input => xyzzy,x=y foo@123_value=42,bar@456_value2=84,something_else=1 +# ## output (structured data only) => [foo@123 value=42][bar@456 value2=84][default@32473 something_else=1 x=y] +# +# ## SD-PARAMs separator between the sdid and tag/field key (default = "_") +# # sdparam_separator = "_" +# +# ## Default sdid used for tags/fields that don't contain a prefix defined in +# ## the explict sdids setting below If no default is specified, no SD-PARAMs +# ## will be used for unrecognised field. +# # default_sdid = "default@32473" +# +# ## List of explicit prefixes to extract from tag/field keys and use as the +# ## SDID, if they match (see above example for more details): +# # sdids = ["foo@123", "bar@456"] +# +# ## Default severity value. Severity and Facility are used to calculate the +# ## message PRI value (RFC5424#section-6.2.1). Used when no metric field +# ## with key "severity_code" is defined. If unset, 5 (notice) is the default +# # default_severity_code = 5 +# +# ## Default facility value. Facility and Severity are used to calculate the +# ## message PRI value (RFC5424#section-6.2.1). Used when no metric field with +# ## key "facility_code" is defined. If unset, 1 (user-level) is the default +# # default_facility_code = 1 +# +# ## Default APP-NAME value (RFC5424#section-6.2.5) +# ## Used when no metric tag with key "appname" is defined. +# ## If unset, "Telegraf" is the default +# # default_appname = "Telegraf" + + +# # Configuration for Wavefront server to send metrics to +# [[outputs.wavefront]] +# ## Url for Wavefront Direct Ingestion or using HTTP with Wavefront Proxy +# ## If using Wavefront Proxy, also specify port. example: http://proxyserver:2878 +# url = "https://metrics.wavefront.com" +# +# ## Authentication Token for Wavefront. Only required if using Direct Ingestion +# #token = "DUMMY_TOKEN" +# +# ## DNS name of the wavefront proxy server. Do not use if url is specified +# #host = "wavefront.example.com" +# +# ## Port that the Wavefront proxy server listens on. Do not use if url is specified +# #port = 2878 +# +# ## prefix for metrics keys +# #prefix = "my.specific.prefix." +# +# ## whether to use "value" for name of simple fields. default is false +# #simple_fields = false +# +# ## character to use between metric and field name. default is . (dot) +# #metric_separator = "." +# +# ## Convert metric name paths to use metricSeparator character +# ## When true will convert all _ (underscore) characters in final metric name. default is true +# #convert_paths = true +# +# ## Use Strict rules to sanitize metric and tag names from invalid characters +# ## When enabled forward slash (/) and comma (,) will be accpeted +# #use_strict = false +# +# ## Use Regex to sanitize metric and tag names from invalid characters +# ## Regex is more thorough, but significantly slower. default is false +# #use_regex = false +# +# ## point tags to use as the source name for Wavefront (if none found, host will be used) +# #source_override = ["hostname", "address", "agent_host", "node_host"] +# +# ## whether to convert boolean values to numeric values, with false -> 0.0 and true -> 1.0. default is true +# #convert_bool = true +# +# ## Define a mapping, namespaced by metric prefix, from string values to numeric values +# ## deprecated in 1.9; use the enum processor plugin +# #[[outputs.wavefront.string_to_number.elasticsearch]] +# # green = 1.0 +# # yellow = 0.5 +# # red = 0.0 + + +############################################################################### +# PROCESSOR PLUGINS # +############################################################################### + + +# # Clone metrics and apply modifications. +# [[processors.clone]] +# ## All modifications on inputs and aggregators can be overridden: +# # name_override = "new_name" +# # name_prefix = "new_name_prefix" +# # name_suffix = "new_name_suffix" +# +# ## Tags to be added (all values must be strings) +# # [processors.clone.tags] +# # additional_tag = "tag_value" + + +# # Convert values to another metric value type +# [[processors.converter]] +# ## Tags to convert +# ## +# ## The table key determines the target type, and the array of key-values +# ## select the keys to convert. The array may contain globs. +# ## = [...] +# [processors.converter.tags] +# string = [] +# integer = [] +# unsigned = [] +# boolean = [] +# float = [] +# +# ## Fields to convert +# ## +# ## The table key determines the target type, and the array of key-values +# ## select the keys to convert. The array may contain globs. +# ## = [...] +# [processors.converter.fields] +# tag = [] +# string = [] +# integer = [] +# unsigned = [] +# boolean = [] +# float = [] + + +# # Dates measurements, tags, and fields that pass through this filter. +# [[processors.date]] +# ## New tag to create +# tag_key = "month" +# +# ## Date format string, must be a representation of the Go "reference time" +# ## which is "Mon Jan 2 15:04:05 -0700 MST 2006". +# date_format = "Jan" + + +# # Map enum values according to given table. +# [[processors.enum]] +# [[processors.enum.mapping]] +# ## Name of the field to map +# field = "status" +# +# ## Name of the tag to map +# # tag = "status" +# +# ## Destination tag or field to be used for the mapped value. By default the +# ## source tag or field is used, overwriting the original value. +# dest = "status_code" +# +# ## Default value to be used for all values not contained in the mapping +# ## table. When unset, the unmodified value for the field will be used if no +# ## match is found. +# # default = 0 +# +# ## Table of mappings +# [processors.enum.mapping.value_mappings] +# green = 1 +# amber = 2 +# red = 3 + + +# # Apply metric modifications using override semantics. +# [[processors.override]] +# ## All modifications on inputs and aggregators can be overridden: +# # name_override = "new_name" +# # name_prefix = "new_name_prefix" +# # name_suffix = "new_name_suffix" +# +# ## Tags to be added (all values must be strings) +# # [processors.override.tags] +# # additional_tag = "tag_value" + + +# # Parse a value in a specified field/tag(s) and add the result in a new metric +# [[processors.parser]] +# ## The name of the fields whose value will be parsed. +# parse_fields = [] +# +# ## If true, incoming metrics are not emitted. +# drop_original = false +# +# ## If set to override, emitted metrics will be merged by overriding the +# ## original metric using the newly parsed metrics. +# merge = "override" +# +# ## The dataformat to be read from files +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Rotate a single valued metric into a multi field metric +# [[processors.pivot]] +# ## Tag to use for naming the new field. +# tag_key = "name" +# ## Field to use as the value of the new field. +# value_key = "value" + + +# # Print all metrics that pass through this filter. +# [[processors.printer]] + + +# # Transforms tag and field values with regex pattern +# [[processors.regex]] +# ## Tag and field conversions defined in a separate sub-tables +# # [[processors.regex.tags]] +# # ## Tag to change +# # key = "resp_code" +# # ## Regular expression to match on a tag value +# # pattern = "^(\\d)\\d\\d$" +# # ## Matches of the pattern will be replaced with this string. Use ${1} +# # ## notation to use the text of the first submatch. +# # replacement = "${1}xx" +# +# # [[processors.regex.fields]] +# # ## Field to change +# # key = "request" +# # ## All the power of the Go regular expressions available here +# # ## For example, named subgroups +# # pattern = "^/api(?P/[\\w/]+)\\S*" +# # replacement = "${method}" +# # ## If result_key is present, a new field will be created +# # ## instead of changing existing field +# # result_key = "method" +# +# ## Multiple conversions may be applied for one field sequentially +# ## Let's extract one more value +# # [[processors.regex.fields]] +# # key = "request" +# # pattern = ".*category=(\\w+).*" +# # replacement = "${1}" +# # result_key = "search_category" + + +# # Rename measurements, tags, and fields that pass through this filter. +# [[processors.rename]] + + +# # Perform string processing on tags, fields, and measurements +# [[processors.strings]] +# ## Convert a tag value to uppercase +# # [[processors.strings.uppercase]] +# # tag = "method" +# +# ## Convert a field value to lowercase and store in a new field +# # [[processors.strings.lowercase]] +# # field = "uri_stem" +# # dest = "uri_stem_normalised" +# +# ## Trim leading and trailing whitespace using the default cutset +# # [[processors.strings.trim]] +# # field = "message" +# +# ## Trim leading characters in cutset +# # [[processors.strings.trim_left]] +# # field = "message" +# # cutset = "\t" +# +# ## Trim trailing characters in cutset +# # [[processors.strings.trim_right]] +# # field = "message" +# # cutset = "\r\n" +# +# ## Trim the given prefix from the field +# # [[processors.strings.trim_prefix]] +# # field = "my_value" +# # prefix = "my_" +# +# ## Trim the given suffix from the field +# # [[processors.strings.trim_suffix]] +# # field = "read_count" +# # suffix = "_count" +# +# ## Replace all non-overlapping instances of old with new +# # [[processors.strings.replace]] +# # measurement = "*" +# # old = ":" +# # new = "_" +# +# ## Trims strings based on width +# # [[processors.strings.left]] +# # field = "message" +# # width = 10 +# +# ## Decode a base64 encoded utf-8 string +# # [[processors.strings.base64decode]] +# # field = "message" + + +# # Restricts the number of tags that can pass through this filter and chooses which tags to preserve when over the limit. +# [[processors.tag_limit]] +# ## Maximum number of tags to preserve +# limit = 10 +# +# ## List of tags to preferentially preserve +# keep = ["foo", "bar", "baz"] + + +# # Print all metrics that pass through this filter. +# [[processors.topk]] +# ## How many seconds between aggregations +# # period = 10 +# +# ## How many top metrics to return +# # k = 10 +# +# ## Over which tags should the aggregation be done. Globs can be specified, in +# ## which case any tag matching the glob will aggregated over. If set to an +# ## empty list is no aggregation over tags is done +# # group_by = ['*'] +# +# ## Over which fields are the top k are calculated +# # fields = ["value"] +# +# ## What aggregation to use. Options: sum, mean, min, max +# # aggregation = "mean" +# +# ## Instead of the top k largest metrics, return the bottom k lowest metrics +# # bottomk = false +# +# ## The plugin assigns each metric a GroupBy tag generated from its name and +# ## tags. If this setting is different than "" the plugin will add a +# ## tag (which name will be the value of this setting) to each metric with +# ## the value of the calculated GroupBy tag. Useful for debugging +# # add_groupby_tag = "" +# +# ## These settings provide a way to know the position of each metric in +# ## the top k. The 'add_rank_field' setting allows to specify for which +# ## fields the position is required. If the list is non empty, then a field +# ## will be added to each and every metric for each string present in this +# ## setting. This field will contain the ranking of the group that +# ## the metric belonged to when aggregated over that field. +# ## The name of the field will be set to the name of the aggregation field, +# ## suffixed with the string '_topk_rank' +# # add_rank_fields = [] +# +# ## These settings provide a way to know what values the plugin is generating +# ## when aggregating metrics. The 'add_agregate_field' setting allows to +# ## specify for which fields the final aggregation value is required. If the +# ## list is non empty, then a field will be added to each every metric for +# ## each field present in this setting. This field will contain +# ## the computed aggregation for the group that the metric belonged to when +# ## aggregated over that field. +# ## The name of the field will be set to the name of the aggregation field, +# ## suffixed with the string '_topk_aggregate' +# # add_aggregate_fields = [] + + +# # Rotate multi field metric into several single field metrics +# [[processors.unpivot]] +# ## Tag to use for the name. +# tag_key = "name" +# ## Field to use for the name of the value. +# value_key = "value" + + +############################################################################### +# AGGREGATOR PLUGINS # +############################################################################### + + +# # Keep the aggregate basicstats of each metric passing through. +# [[aggregators.basicstats]] +# ## The period on which to flush & clear the aggregator. +# period = "30s" +# +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = false +# +# ## Configures which basic stats to push as fields +# # stats = ["count", "min", "max", "mean", "stdev", "s2", "sum"] + + +# # Report the final metric of a series +# [[aggregators.final]] +# ## The period on which to flush & clear the aggregator. +# period = "30s" +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = false +# +# ## The time that a series is not updated until considering it final. +# series_timeout = "5m" + + +# # Create aggregate histograms. +# [[aggregators.histogram]] +# ## The period in which to flush the aggregator. +# period = "30s" +# +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = false +# +# ## If true, the histogram will be reset on flush instead +# ## of accumulating the results. +# reset = false +# +# ## Example config that aggregates all fields of the metric. +# # [[aggregators.histogram.config]] +# # ## The set of buckets. +# # buckets = [0.0, 15.6, 34.5, 49.1, 71.5, 80.5, 94.5, 100.0] +# # ## The name of metric. +# # measurement_name = "cpu" +# +# ## Example config that aggregates only specific fields of the metric. +# # [[aggregators.histogram.config]] +# # ## The set of buckets. +# # buckets = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] +# # ## The name of metric. +# # measurement_name = "diskio" +# # ## The concrete fields of metric +# # fields = ["io_time", "read_time", "write_time"] + + +# # Merge metrics into multifield metrics by series key +# [[aggregators.merge]] +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = true + + +# # Keep the aggregate min/max of each metric passing through. +# [[aggregators.minmax]] +# ## General Aggregator Arguments: +# ## The period on which to flush & clear the aggregator. +# period = "30s" +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = false + + +# # Count the occurrence of values in fields. +# [[aggregators.valuecounter]] +# ## General Aggregator Arguments: +# ## The period on which to flush & clear the aggregator. +# period = "30s" +# ## If true, the original metric will be dropped by the +# ## aggregator and will not get sent to the output plugins. +# drop_original = false +# ## The fields for which the values will be counted +# fields = [] + + +############################################################################### +# INPUT PLUGINS # +############################################################################### + + +# Read metrics about cpu usage +[[inputs.cpu]] + ## Whether to report per-cpu stats or not + percpu = true + ## Whether to report total system cpu stats or not + totalcpu = true + ## If true, collect raw CPU time metrics. + collect_cpu_time = false + ## If true, compute and report the sum of all non-idle CPU states. + report_active = false + + +# Read metrics about disk usage by mount point +[[inputs.disk]] + ## By default stats will be gathered for all mount points. + ## Set mount_points will restrict the stats to only the specified mount points. + # mount_points = ["/"] + + ## Ignore mount points by filesystem type. + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +# Read metrics about disk IO by device +[[inputs.diskio]] + ## By default, telegraf will gather stats for all devices including + ## disk partitions. + ## Setting devices will restrict the stats to the specified devices. + # devices = ["sda", "sdb", "vd*"] + ## Uncomment the following line if you need disk serial numbers. + # skip_serial_number = false + # + ## On systems which support it, device metadata can be added in the form of + ## tags. + ## Currently only Linux is supported via udev properties. You can view + ## available properties for a device by running: + ## 'udevadm info -q property -n /dev/sda' + ## Note: Most, but not all, udev properties can be accessed this way. Properties + ## that are currently inaccessible include DEVTYPE, DEVNAME, and DEVPATH. + # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"] + # + ## Using the same metadata source as device_tags, you can also customize the + ## name of the device via templates. + ## The 'name_templates' parameter is a list of templates to try and apply to + ## the device. The template may contain variables in the form of '$PROPERTY' or + ## '${PROPERTY}'. The first template which does not contain any variables not + ## present for the device is used as the device name tag. + ## The typical use case is for LVM volumes, to get the VG/LV name instead of + ## the near-meaningless DM-0 name. + # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"] + + +# Get kernel statistics from /proc/stat +[[inputs.kernel]] + # no configuration + + +# Read metrics about memory usage +[[inputs.mem]] + # no configuration + + +# Get the number of processes and group them by status +[[inputs.processes]] + # no configuration + + +# Read metrics about swap memory usage +[[inputs.swap]] + # no configuration + + +# Read metrics about system load & uptime +[[inputs.system]] + ## Uncomment to remove deprecated metrics. + # fielddrop = ["uptime_format"] + + +# # Gather ActiveMQ metrics +# [[inputs.activemq]] +# ## ActiveMQ WebConsole URL +# url = "http://127.0.0.1:8161" +# +# ## Required ActiveMQ Endpoint +# ## deprecated in 1.11; use the url option +# # server = "127.0.0.1" +# # port = 8161 +# +# ## Credentials for basic HTTP authentication +# # username = "admin" +# # password = "admin" +# +# ## Required ActiveMQ webadmin root path +# # webadmin = "admin" +# +# ## Maximum time to receive response. +# # response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read stats from aerospike server(s) +# [[inputs.aerospike]] +# ## Aerospike servers to connect to (with port) +# ## This plugin will query all namespaces the aerospike +# ## server has configured and get stats for them. +# servers = ["localhost:3000"] +# +# # username = "telegraf" +# # password = "pa$$word" +# +# ## Optional TLS Config +# # enable_tls = false +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## If false, skip chain & host verification +# # insecure_skip_verify = true + + +# # Read Apache status information (mod_status) +# [[inputs.apache]] +# ## An array of URLs to gather from, must be directed at the machine +# ## readable version of the mod_status page including the auto query string. +# ## Default is "http://localhost/server-status?auto". +# urls = ["http://localhost/server-status?auto"] +# +# ## Credentials for basic HTTP authentication. +# # username = "myuser" +# # password = "mypassword" +# +# ## Maximum time to receive response. +# # response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Monitor APC UPSes connected to apcupsd +# [[inputs.apcupsd]] +# # A list of running apcupsd server to connect to. +# # If not provided will default to tcp://127.0.0.1:3551 +# servers = ["tcp://127.0.0.1:3551"] +# +# ## Timeout for dialing server. +# timeout = "5s" + + +# # Gather metrics from Apache Aurora schedulers +# [[inputs.aurora]] +# ## Schedulers are the base addresses of your Aurora Schedulers +# schedulers = ["http://127.0.0.1:8081"] +# +# ## Set of role types to collect metrics from. +# ## +# ## The scheduler roles are checked each interval by contacting the +# ## scheduler nodes; zookeeper is not contacted. +# # roles = ["leader", "follower"] +# +# ## Timeout is the max time for total network operations. +# # timeout = "5s" +# +# ## Username and password are sent using HTTP Basic Auth. +# # username = "username" +# # password = "pa$$word" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Gather Azure Storage Queue metrics +# [[inputs.azure_storage_queue]] +# ## Required Azure Storage Account name +# account_name = "mystorageaccount" +# +# ## Required Azure Storage Account access key +# account_key = "storageaccountaccesskey" +# +# ## Set to false to disable peeking age of oldest message (executes faster) +# # peek_oldest_message_age = true + + +# # Read metrics of bcache from stats_total and dirty_data +# [[inputs.bcache]] +# ## Bcache sets path +# ## If not specified, then default is: +# bcachePath = "/sys/fs/bcache" +# +# ## By default, telegraf gather stats for all bcache devices +# ## Setting devices will restrict the stats to the specified +# ## bcache devices. +# bcacheDevs = ["bcache0"] + + +# # Collects Beanstalkd server and tubes stats +# [[inputs.beanstalkd]] +# ## Server to collect data from +# server = "localhost:11300" +# +# ## List of tubes to gather stats about. +# ## If no tubes specified then data gathered for each tube on server reported by list-tubes command +# tubes = ["notifications"] + + +# # Read BIND nameserver XML statistics +# [[inputs.bind]] +# ## An array of BIND XML statistics URI to gather stats. +# ## Default is "http://localhost:8053/xml/v3". +# # urls = ["http://localhost:8053/xml/v3"] +# # gather_memory_contexts = false +# # gather_views = false + + +# # Collect bond interface status, slaves statuses and failures count +# [[inputs.bond]] +# ## Sets 'proc' directory path +# ## If not specified, then default is /proc +# # host_proc = "/proc" +# +# ## By default, telegraf gather stats for all bond interfaces +# ## Setting interfaces will restrict the stats to the specified +# ## bond interfaces. +# # bond_interfaces = ["bond0"] + + +# # Collect Kafka topics and consumers status from Burrow HTTP API. +# [[inputs.burrow]] +# ## Burrow API endpoints in format "schema://host:port". +# ## Default is "http://localhost:8000". +# servers = ["http://localhost:8000"] +# +# ## Override Burrow API prefix. +# ## Useful when Burrow is behind reverse-proxy. +# # api_prefix = "/v3/kafka" +# +# ## Maximum time to receive response. +# # response_timeout = "5s" +# +# ## Limit per-server concurrent connections. +# ## Useful in case of large number of topics or consumer groups. +# # concurrent_connections = 20 +# +# ## Filter clusters, default is no filtering. +# ## Values can be specified as glob patterns. +# # clusters_include = [] +# # clusters_exclude = [] +# +# ## Filter consumer groups, default is no filtering. +# ## Values can be specified as glob patterns. +# # groups_include = [] +# # groups_exclude = [] +# +# ## Filter topics, default is no filtering. +# ## Values can be specified as glob patterns. +# # topics_include = [] +# # topics_exclude = [] +# +# ## Credentials for basic HTTP authentication. +# # username = "" +# # password = "" +# +# ## Optional SSL config +# # ssl_ca = "/etc/telegraf/ca.pem" +# # ssl_cert = "/etc/telegraf/cert.pem" +# # ssl_key = "/etc/telegraf/key.pem" +# # insecure_skip_verify = false + + +# # Collects performance metrics from the MON and OSD nodes in a Ceph storage cluster. +# [[inputs.ceph]] +# ## This is the recommended interval to poll. Too frequent and you will lose +# ## data points due to timeouts during rebalancing and recovery +# interval = '1m' +# +# ## All configuration values are optional, defaults are shown below +# +# ## location of ceph binary +# ceph_binary = "/usr/bin/ceph" +# +# ## directory in which to look for socket files +# socket_dir = "/var/run/ceph" +# +# ## prefix of MON and OSD socket files, used to determine socket type +# mon_prefix = "ceph-mon" +# osd_prefix = "ceph-osd" +# +# ## suffix used to identify socket files +# socket_suffix = "asok" +# +# ## Ceph user to authenticate as +# ceph_user = "client.admin" +# +# ## Ceph configuration to use to locate the cluster +# ceph_config = "/etc/ceph/ceph.conf" +# +# ## Whether to gather statistics via the admin socket +# gather_admin_socket_stats = true +# +# ## Whether to gather statistics via ceph commands +# gather_cluster_stats = false + + +# # Read specific statistics per cgroup +# [[inputs.cgroup]] +# ## Directories in which to look for files, globs are supported. +# ## Consider restricting paths to the set of cgroups you really +# ## want to monitor if you have a large number of cgroups, to avoid +# ## any cardinality issues. +# # paths = [ +# # "/cgroup/memory", +# # "/cgroup/memory/child1", +# # "/cgroup/memory/child2/*", +# # ] +# ## cgroup stat fields, as file names, globs are supported. +# ## these file names are appended to each path from above. +# # files = ["memory.*usage*", "memory.limit_in_bytes"] + + +# # Get standard chrony metrics, requires chronyc executable. +# [[inputs.chrony]] +# ## If true, chronyc tries to perform a DNS lookup for the time server. +# # dns_lookup = false + + +# # Pull Metric Statistics from Amazon CloudWatch +# [[inputs.cloudwatch]] +# ## Amazon Region +# region = "us-east-1" +# +# ## Amazon Credentials +# ## Credentials are loaded in the following order +# ## 1) Assumed credentials via STS if role_arn is specified +# ## 2) explicit credentials from 'access_key' and 'secret_key' +# ## 3) shared profile from 'profile' +# ## 4) environment variables +# ## 5) shared credentials file +# ## 6) EC2 Instance Profile +# # access_key = "" +# # secret_key = "" +# # token = "" +# # role_arn = "" +# # profile = "" +# # shared_credential_file = "" +# +# ## Endpoint to make request against, the correct endpoint is automatically +# ## determined and this option should only be set if you wish to override the +# ## default. +# ## ex: endpoint_url = "http://localhost:8000" +# # endpoint_url = "" +# +# # The minimum period for Cloudwatch metrics is 1 minute (60s). However not all +# # metrics are made available to the 1 minute period. Some are collected at +# # 3 minute, 5 minute, or larger intervals. See https://aws.amazon.com/cloudwatch/faqs/#monitoring. +# # Note that if a period is configured that is smaller than the minimum for a +# # particular metric, that metric will not be returned by the Cloudwatch API +# # and will not be collected by Telegraf. +# # +# ## Requested CloudWatch aggregation Period (required - must be a multiple of 60s) +# period = "5m" +# +# ## Collection Delay (required - must account for metrics availability via CloudWatch API) +# delay = "5m" +# +# ## Recommended: use metric 'interval' that is a multiple of 'period' to avoid +# ## gaps or overlap in pulled data +# interval = "5m" +# +# ## Configure the TTL for the internal cache of metrics. +# # cache_ttl = "1h" +# +# ## Metric Statistic Namespace (required) +# namespace = "AWS/ELB" +# +# ## Maximum requests per second. Note that the global default AWS rate limit is +# ## 50 reqs/sec, so if you define multiple namespaces, these should add up to a +# ## maximum of 50. +# ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html +# # ratelimit = 25 +# +# ## Timeout for http requests made by the cloudwatch client. +# # timeout = "5s" +# +# ## Namespace-wide statistic filters. These allow fewer queries to be made to +# ## cloudwatch. +# # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] +# # statistic_exclude = [] +# +# ## Metrics to Pull +# ## Defaults to all Metrics in Namespace if nothing is provided +# ## Refreshes Namespace available metrics every 1h +# #[[inputs.cloudwatch.metrics]] +# # names = ["Latency", "RequestCount"] +# # +# # ## Statistic filters for Metric. These allow for retrieving specific +# # ## statistics for an individual metric. +# # # statistic_include = [ "average", "sum", "minimum", "maximum", sample_count" ] +# # # statistic_exclude = [] +# # +# # ## Dimension filters for Metric. All dimensions defined for the metric names +# # ## must be specified in order to retrieve the metric statistics. +# # [[inputs.cloudwatch.metrics.dimensions]] +# # name = "LoadBalancerName" +# # value = "p-example" + + +# # Collects conntrack stats from the configured directories and files. +# [[inputs.conntrack]] +# ## The following defaults would work with multiple versions of conntrack. +# ## Note the nf_ and ip_ filename prefixes are mutually exclusive across +# ## kernel versions, as are the directory locations. +# +# ## Superset of filenames to look for within the conntrack dirs. +# ## Missing files will be ignored. +# files = ["ip_conntrack_count","ip_conntrack_max", +# "nf_conntrack_count","nf_conntrack_max"] +# +# ## Directories to search within for the conntrack files above. +# ## Missing directrories will be ignored. +# dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] + + +# # Gather health check statuses from services registered in Consul +# [[inputs.consul]] +# ## Consul server address +# # address = "localhost" +# +# ## URI scheme for the Consul server, one of "http", "https" +# # scheme = "http" +# +# ## ACL token used in every request +# # token = "" +# +# ## HTTP Basic Authentication username and password. +# # username = "" +# # password = "" +# +# ## Data center to query the health checks from +# # datacenter = "" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = true +# +# ## Consul checks' tag splitting +# # When tags are formatted like "key:value" with ":" as a delimiter then +# # they will be splitted and reported as proper key:value in Telegraf +# # tag_delimiter = ":" + + +# # Read metrics from one or many couchbase clusters +# [[inputs.couchbase]] +# ## specify servers via a url matching: +# ## [protocol://][:password]@address[:port] +# ## e.g. +# ## http://couchbase-0.example.com/ +# ## http://admin:secret@couchbase-0.example.com:8091/ +# ## +# ## If no servers are specified, then localhost is used as the host. +# ## If no protocol is specified, HTTP is used. +# ## If no port is specified, 8091 is used. +# servers = ["http://localhost:8091"] + + +# # Read CouchDB Stats from one or more servers +# [[inputs.couchdb]] +# ## Works with CouchDB stats endpoints out of the box +# ## Multiple Hosts from which to read CouchDB stats: +# hosts = ["http://localhost:8086/_stats"] +# +# ## Use HTTP Basic Authentication. +# # basic_username = "telegraf" +# # basic_password = "p@ssw0rd" + + +# # Input plugin for DC/OS metrics +# [[inputs.dcos]] +# ## The DC/OS cluster URL. +# cluster_url = "https://dcos-ee-master-1" +# +# ## The ID of the service account. +# service_account_id = "telegraf" +# ## The private key file for the service account. +# service_account_private_key = "/etc/telegraf/telegraf-sa-key.pem" +# +# ## Path containing login token. If set, will read on every gather. +# # token_file = "/home/dcos/.dcos/token" +# +# ## In all filter options if both include and exclude are empty all items +# ## will be collected. Arrays may contain glob patterns. +# ## +# ## Node IDs to collect metrics from. If a node is excluded, no metrics will +# ## be collected for its containers or apps. +# # node_include = [] +# # node_exclude = [] +# ## Container IDs to collect container metrics from. +# # container_include = [] +# # container_exclude = [] +# ## Container IDs to collect app metrics from. +# # app_include = [] +# # app_exclude = [] +# +# ## Maximum concurrent connections to the cluster. +# # max_connections = 10 +# ## Maximum time to receive a response from cluster. +# # response_timeout = "20s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## If false, skip chain & host verification +# # insecure_skip_verify = true +# +# ## Recommended filtering to reduce series cardinality. +# # [inputs.dcos.tagdrop] +# # path = ["/var/lib/mesos/slave/slaves/*"] + + +# # Read metrics from one or many disque servers +# [[inputs.disque]] +# ## An array of URI to gather stats about. Specify an ip or hostname +# ## with optional port and password. +# ## ie disque://localhost, disque://10.10.3.33:18832, 10.0.0.1:10000, etc. +# ## If no servers are specified, then localhost is used as the host. +# servers = ["localhost"] + + +# # Provide a native collection for dmsetup based statistics for dm-cache +# [[inputs.dmcache]] +# ## Whether to report per-device stats or not +# per_device = true + + +# # Query given DNS server and gives statistics +# [[inputs.dns_query]] +# ## servers to query +# servers = ["8.8.8.8"] +# +# ## Network is the network protocol name. +# # network = "udp" +# +# ## Domains or subdomains to query. +# # domains = ["."] +# +# ## Query record type. +# ## Posible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV. +# # record_type = "A" +# +# ## Dns server port. +# # port = 53 +# +# ## Query timeout in seconds. +# # timeout = 2 + + +# # Read metrics about docker containers +# [[inputs.docker]] +# ## Docker Endpoint +# ## To use TCP, set endpoint = "tcp://[ip]:[port]" +# ## To use environment variables (ie, docker-machine), set endpoint = "ENV" +# endpoint = "unix:///var/run/docker.sock" +# +# ## Set to true to collect Swarm metrics(desired_replicas, running_replicas) +# gather_services = false +# +# ## Only collect metrics for these containers, collect all if empty +# container_names = [] +# +# ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars +# source_tag = false +# +# ## Containers to include and exclude. Globs accepted. +# ## Note that an empty array for both will include all containers +# container_name_include = [] +# container_name_exclude = [] +# +# ## Container states to include and exclude. Globs accepted. +# ## When empty only containers in the "running" state will be captured. +# ## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"] +# ## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"] +# # container_state_include = [] +# # container_state_exclude = [] +# +# ## Timeout for docker list, info, and stats commands +# timeout = "5s" +# +# ## Whether to report for each container per-device blkio (8:0, 8:1...) and +# ## network (eth0, eth1, ...) stats or not +# perdevice = true +# +# ## Whether to report for each container total blkio and network stats or not +# total = false +# +# ## Which environment variables should we use as a tag +# ##tag_env = ["JAVA_HOME", "HEAP_SIZE"] +# +# ## docker labels to include and exclude as tags. Globs accepted. +# ## Note that an empty array for both will include all labels as tags +# docker_label_include = [] +# docker_label_exclude = [] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read statistics from one or many dovecot servers +# [[inputs.dovecot]] +# ## specify dovecot servers via an address:port list +# ## e.g. +# ## localhost:24242 +# ## +# ## If no servers are specified, then localhost is used as the host. +# servers = ["localhost:24242"] +# +# ## Type is one of "user", "domain", "ip", or "global" +# type = "global" +# +# ## Wildcard matches like "*.com". An empty string "" is same as "*" +# ## If type = "ip" filters should be +# filters = [""] + + +# # Read metrics about docker containers from Fargate/ECS v2 meta endpoints. +# [[inputs.ecs]] +# ## ECS metadata url +# # endpoint_url = "http://169.254.170.2" +# +# ## Containers to include and exclude. Globs accepted. +# ## Note that an empty array for both will include all containers +# # container_name_include = [] +# # container_name_exclude = [] +# +# ## Container states to include and exclude. Globs accepted. +# ## When empty only containers in the "RUNNING" state will be captured. +# ## Possible values are "NONE", "PULLED", "CREATED", "RUNNING", +# ## "RESOURCES_PROVISIONED", "STOPPED". +# # container_status_include = [] +# # container_status_exclude = [] +# +# ## ecs labels to include and exclude as tags. Globs accepted. +# ## Note that an empty array for both will include all labels as tags +# ecs_label_include = [ "com.amazonaws.ecs.*" ] +# ecs_label_exclude = [] +# +# ## Timeout for queries. +# # timeout = "5s" + + +# # Read stats from one or more Elasticsearch servers or clusters +# [[inputs.elasticsearch]] +# ## specify a list of one or more Elasticsearch servers +# # you can add username and password to your url to use basic authentication: +# # servers = ["http://user:pass@localhost:9200"] +# servers = ["http://localhost:9200"] +# +# ## Timeout for HTTP requests to the elastic search server(s) +# http_timeout = "5s" +# +# ## When local is true (the default), the node will read only its own stats. +# ## Set local to false when you want to read the node stats from all nodes +# ## of the cluster. +# local = true +# +# ## Set cluster_health to true when you want to also obtain cluster health stats +# cluster_health = false +# +# ## Adjust cluster_health_level when you want to also obtain detailed health stats +# ## The options are +# ## - indices (default) +# ## - cluster +# # cluster_health_level = "indices" +# +# ## Set cluster_stats to true when you want to also obtain cluster stats. +# cluster_stats = false +# +# ## Only gather cluster_stats from the master node. To work this require local = true +# cluster_stats_only_from_master = true +# +# ## Indices to collect; can be one or more indices names or _all +# indices_include = ["_all"] +# +# ## One of "shards", "cluster", "indices" +# indices_level = "shards" +# +# ## node_stats is a list of sub-stats that you want to have gathered. Valid options +# ## are "indices", "os", "process", "jvm", "thread_pool", "fs", "transport", "http", +# ## "breaker". Per default, all stats are gathered. +# # node_stats = ["jvm", "http"] +# +# ## HTTP Basic Authentication username and password. +# # username = "" +# # password = "" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Returns ethtool statistics for given interfaces +# [[inputs.ethtool]] +# ## List of interfaces to pull metrics for +# # interface_include = ["eth0"] +# +# ## List of interfaces to ignore when pulling metrics. +# # interface_exclude = ["eth1"] + + +# # Read metrics from one or more commands that can output to stdout +# [[inputs.exec]] +# ## Commands array +# commands = [ +# "/tmp/test.sh", +# "/usr/bin/mycollector --foo=bar", +# "/tmp/collect_*.sh" +# ] +# +# ## Timeout for each command to complete. +# timeout = "5s" +# +# ## measurement name suffix (for separating different commands) +# name_suffix = "_mycollector" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read metrics from fail2ban. +# [[inputs.fail2ban]] +# ## Use sudo to run fail2ban-client +# use_sudo = false + + +# # Read devices value(s) from a Fibaro controller +# [[inputs.fibaro]] +# ## Required Fibaro controller address/hostname. +# ## Note: at the time of writing this plugin, Fibaro only implemented http - no https available +# url = "http://:80" +# +# ## Required credentials to access the API (http://) +# username = "" +# password = "" +# +# ## Amount of time allowed to complete the HTTP request +# # timeout = "5s" + + +# # Reload and gather from file[s] on telegraf's interval. +# [[inputs.file]] +# ## Files to parse each interval. +# ## These accept standard unix glob matching rules, but with the addition of +# ## ** as a "super asterisk". ie: +# ## /var/log/**.log -> recursively find all .log files in /var/log +# ## /var/log/*/*.log -> find all .log files with a parent dir in /var/log +# ## /var/log/apache.log -> only read the apache log file +# files = ["/var/log/apache/access.log"] +# +# ## The dataformat to be read from files +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" +# +# ## Name a tag containing the name of the file the data was parsed from. Leave empty +# ## to disable. +# # file_tag = "" + + +# # Count files in a directory +# [[inputs.filecount]] +# ## Directory to gather stats about. +# ## deprecated in 1.9; use the directories option +# # directory = "/var/cache/apt/archives" +# +# ## Directories to gather stats about. +# ## This accept standard unit glob matching rules, but with the addition of +# ## ** as a "super asterisk". ie: +# ## /var/log/** -> recursively find all directories in /var/log and count files in each directories +# ## /var/log/*/* -> find all directories with a parent dir in /var/log and count files in each directories +# ## /var/log -> count all files in /var/log and all of its subdirectories +# directories = ["/var/cache/apt/archives"] +# +# ## Only count files that match the name pattern. Defaults to "*". +# name = "*.deb" +# +# ## Count files in subdirectories. Defaults to true. +# recursive = false +# +# ## Only count regular files. Defaults to true. +# regular_only = true +# +# ## Follow all symlinks while walking the directory tree. Defaults to false. +# follow_symlinks = false +# +# ## Only count files that are at least this size. If size is +# ## a negative number, only count files that are smaller than the +# ## absolute value of size. Acceptable units are B, KiB, MiB, KB, ... +# ## Without quotes and units, interpreted as size in bytes. +# size = "0B" +# +# ## Only count files that have not been touched for at least this +# ## duration. If mtime is negative, only count files that have been +# ## touched in this duration. Defaults to "0s". +# mtime = "0s" + + +# # Read stats about given file(s) +# [[inputs.filestat]] +# ## Files to gather stats about. +# ## These accept standard unix glob matching rules, but with the addition of +# ## ** as a "super asterisk". ie: +# ## "/var/log/**.log" -> recursively find all .log files in /var/log +# ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log +# ## "/var/log/apache.log" -> just tail the apache log file +# ## +# ## See https://github.com/gobwas/glob for more examples +# ## +# files = ["/var/log/**.log"] +# +# ## If true, read the entire file and calculate an md5 checksum. +# md5 = false + + +# # Read real time temps from fireboard.io servers +# [[inputs.fireboard]] +# ## Specify auth token for your account +# auth_token = "invalidAuthToken" +# ## You can override the fireboard server URL if necessary +# # url = https://fireboard.io/api/v1/devices.json +# ## You can set a different http_timeout if you need to +# ## You should set a string using an number and time indicator +# ## for example "12s" for 12 seconds. +# # http_timeout = "4s" + + +# # Read metrics exposed by fluentd in_monitor plugin +# [[inputs.fluentd]] +# ## This plugin reads information exposed by fluentd (using /api/plugins.json endpoint). +# ## +# ## Endpoint: +# ## - only one URI is allowed +# ## - https is not supported +# endpoint = "http://localhost:24220/api/plugins.json" +# +# ## Define which plugins have to be excluded (based on "type" field - e.g. monitor_agent) +# exclude = [ +# "monitor_agent", +# "dummy", +# ] + + +# # Gather repository information from GitHub hosted repositories. +# [[inputs.github]] +# ## List of repositories to monitor. +# repositories = [ +# "influxdata/telegraf", +# "influxdata/influxdb" +# ] +# +# ## Github API access token. Unauthenticated requests are limited to 60 per hour. +# # access_token = "" +# +# ## Github API enterprise url. Github Enterprise accounts must specify their base url. +# # enterprise_base_url = "" +# +# ## Timeout for HTTP requests. +# # http_timeout = "5s" + + +# # Read flattened metrics from one or more GrayLog HTTP endpoints +# [[inputs.graylog]] +# ## API endpoint, currently supported API: +# ## +# ## - multiple (Ex http://:12900/system/metrics/multiple) +# ## - namespace (Ex http://:12900/system/metrics/namespace/{namespace}) +# ## +# ## For namespace endpoint, the metrics array will be ignored for that call. +# ## Endpoint can contain namespace and multiple type calls. +# ## +# ## Please check http://[graylog-server-ip]:12900/api-browser for full list +# ## of endpoints +# servers = [ +# "http://[graylog-server-ip]:12900/system/metrics/multiple", +# ] +# +# ## Metrics list +# ## List of metrics can be found on Graylog webservice documentation. +# ## Or by hitting the the web service api at: +# ## http://[graylog-host]:12900/system/metrics +# metrics = [ +# "jvm.cl.loaded", +# "jvm.memory.pools.Metaspace.committed" +# ] +# +# ## Username and password +# username = "" +# password = "" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read metrics of haproxy, via socket or csv stats page +# [[inputs.haproxy]] +# ## An array of address to gather stats about. Specify an ip on hostname +# ## with optional port. ie localhost, 10.10.3.33:1936, etc. +# ## Make sure you specify the complete path to the stats endpoint +# ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats +# +# ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats +# servers = ["http://myhaproxy.com:1936/haproxy?stats"] +# +# ## Credentials for basic HTTP authentication +# # username = "admin" +# # password = "admin" +# +# ## You can also use local socket with standard wildcard globbing. +# ## Server address not starting with 'http' will be treated as a possible +# ## socket, so both examples below are valid. +# # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"] +# +# ## By default, some of the fields are renamed from what haproxy calls them. +# ## Setting this option to true results in the plugin keeping the original +# ## field names. +# # keep_field_names = false +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Monitor disks' temperatures using hddtemp +# [[inputs.hddtemp]] +# ## By default, telegraf gathers temps data from all disks detected by the +# ## hddtemp. +# ## +# ## Only collect temps from the selected disks. +# ## +# ## A * as the device name will return the temperature values of all disks. +# ## +# # address = "127.0.0.1:7634" +# # devices = ["sda", "*"] + + +# # Read formatted metrics from one or more HTTP endpoints +# [[inputs.http]] +# ## One or more URLs from which to read formatted metrics +# urls = [ +# "http://localhost/metrics" +# ] +# +# ## HTTP method +# # method = "GET" +# +# ## Optional HTTP headers +# # headers = {"X-Special-Header" = "Special-Value"} +# +# ## Optional HTTP Basic Auth Credentials +# # username = "username" +# # password = "pa$$word" +# +# ## HTTP entity-body to send with POST/PUT requests. +# # body = "" +# +# ## HTTP Content-Encoding for write request body, can be set to "gzip" to +# ## compress body or "identity" to apply no encoding. +# # content_encoding = "identity" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Amount of time allowed to complete the HTTP request +# # timeout = "5s" +# +# ## List of success status codes +# # success_status_codes = [200] +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# # data_format = "influx" + + +# # HTTP/HTTPS request given an address a method and a timeout +# [[inputs.http_response]] +# ## Deprecated in 1.12, use 'urls' +# ## Server address (default http://localhost) +# # address = "http://localhost" +# +# ## List of urls to query. +# # urls = ["http://localhost"] +# +# ## Set http_proxy (telegraf uses the system wide proxy settings if it's is not set) +# # http_proxy = "http://localhost:8888" +# +# ## Set response_timeout (default 5 seconds) +# # response_timeout = "5s" +# +# ## HTTP Request Method +# # method = "GET" +# +# ## Whether to follow redirects from the server (defaults to false) +# # follow_redirects = false +# +# ## Optional HTTP Request Body +# # body = ''' +# # {'fake':'data'} +# # ''' +# +# ## Optional substring or regex match in body of the response +# # response_string_match = "\"service_status\": \"up\"" +# # response_string_match = "ok" +# # response_string_match = "\".*_status\".?:.?\"up\"" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## HTTP Request Headers (all values must be strings) +# # [inputs.http_response.headers] +# # Host = "github.com" +# +# ## Interface to use when dialing an address +# # interface = "eth0" + + +# # Read flattened metrics from one or more JSON HTTP endpoints +# [[inputs.httpjson]] +# ## NOTE This plugin only reads numerical measurements, strings and booleans +# ## will be ignored. +# +# ## Name for the service being polled. Will be appended to the name of the +# ## measurement e.g. httpjson_webserver_stats +# ## +# ## Deprecated (1.3.0): Use name_override, name_suffix, name_prefix instead. +# name = "webserver_stats" +# +# ## URL of each server in the service's cluster +# servers = [ +# "http://localhost:9999/stats/", +# "http://localhost:9998/stats/", +# ] +# ## Set response_timeout (default 5 seconds) +# response_timeout = "5s" +# +# ## HTTP method to use: GET or POST (case-sensitive) +# method = "GET" +# +# ## List of tag names to extract from top-level of JSON server response +# # tag_keys = [ +# # "my_tag_1", +# # "my_tag_2" +# # ] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## HTTP parameters (all values must be strings). For "GET" requests, data +# ## will be included in the query. For "POST" requests, data will be included +# ## in the request body as "x-www-form-urlencoded". +# # [inputs.httpjson.parameters] +# # event_type = "cpu_spike" +# # threshold = "0.75" +# +# ## HTTP Headers (all values must be strings) +# # [inputs.httpjson.headers] +# # X-Auth-Token = "my-xauth-token" +# # apiVersion = "v1" + + +# # Gather Icinga2 status +# [[inputs.icinga2]] +# ## Required Icinga2 server address +# # server = "https://localhost:5665" +# +# ## Required Icinga2 object type ("services" or "hosts") +# # object_type = "services" +# +# ## Credentials for basic HTTP authentication +# # username = "admin" +# # password = "admin" +# +# ## Maximum time to receive response. +# # response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = true + + +# # Read InfluxDB-formatted JSON metrics from one or more HTTP endpoints +# [[inputs.influxdb]] +# ## Works with InfluxDB debug endpoints out of the box, +# ## but other services can use this format too. +# ## See the influxdb plugin's README for more details. +# +# ## Multiple URLs from which to read InfluxDB-formatted JSON +# ## Default is "http://localhost:8086/debug/vars". +# urls = [ +# "http://localhost:8086/debug/vars" +# ] +# +# ## Username and password to send using HTTP Basic Authentication. +# # username = "" +# # password = "" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## http request & header timeout +# timeout = "5s" + + +# # Collect statistics about itself +# [[inputs.internal]] +# ## If true, collect telegraf memory stats. +# # collect_memstats = true + + +# # This plugin gathers interrupts data from /proc/interrupts and /proc/softirqs. +# [[inputs.interrupts]] +# ## When set to true, cpu metrics are tagged with the cpu. Otherwise cpu is +# ## stored as a field. +# ## +# ## The default is false for backwards compatibility, and will be changed to +# ## true in a future version. It is recommended to set to true on new +# ## deployments. +# # cpu_as_tag = false +# +# ## To filter which IRQs to collect, make use of tagpass / tagdrop, i.e. +# # [inputs.interrupts.tagdrop] +# # irq = [ "NET_RX", "TASKLET" ] + + +# # Read metrics from the bare metal servers via IPMI +# [[inputs.ipmi_sensor]] +# ## optionally specify the path to the ipmitool executable +# # path = "/usr/bin/ipmitool" +# ## +# ## optionally force session privilege level. Can be CALLBACK, USER, OPERATOR, ADMINISTRATOR +# # privilege = "ADMINISTRATOR" +# ## +# ## optionally specify one or more servers via a url matching +# ## [username[:password]@][protocol[(address)]] +# ## e.g. +# ## root:passwd@lan(127.0.0.1) +# ## +# ## if no servers are specified, local machine sensor stats will be queried +# ## +# # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"] +# +# ## Recommended: use metric 'interval' that is a multiple of 'timeout' to avoid +# ## gaps or overlap in pulled data +# interval = "30s" +# +# ## Timeout for the ipmitool command to complete +# timeout = "20s" +# +# ## Schema Version: (Optional, defaults to version 1) +# metric_version = 2 + + +# # Gather packets and bytes counters from Linux ipsets +# [[inputs.ipset]] +# ## By default, we only show sets which have already matched at least 1 packet. +# ## set include_unmatched_sets = true to gather them all. +# include_unmatched_sets = false +# ## Adjust your sudo settings appropriately if using this option ("sudo ipset save") +# use_sudo = false +# ## The default timeout of 1s for ipset execution can be overridden here: +# # timeout = "1s" + + +# # Gather packets and bytes throughput from iptables +# [[inputs.iptables]] +# ## iptables require root access on most systems. +# ## Setting 'use_sudo' to true will make use of sudo to run iptables. +# ## Users must configure sudo to allow telegraf user to run iptables with no password. +# ## iptables can be restricted to only list command "iptables -nvL". +# use_sudo = false +# ## Setting 'use_lock' to true runs iptables with the "-w" option. +# ## Adjust your sudo settings appropriately if using this option ("iptables -w 5 -nvl") +# use_lock = false +# ## Define an alternate executable, such as "ip6tables". Default is "iptables". +# # binary = "ip6tables" +# ## defines the table to monitor: +# table = "filter" +# ## defines the chains to monitor. +# ## NOTE: iptables rules without a comment will not be monitored. +# ## Read the plugin documentation for more information. +# chains = [ "INPUT" ] + + +# # Collect virtual and real server stats from Linux IPVS +# [[inputs.ipvs]] +# # no configuration + + +# # Read jobs and cluster metrics from Jenkins instances +# [[inputs.jenkins]] +# ## The Jenkins URL in the format "schema://host:port" +# url = "http://my-jenkins-instance:8080" +# # username = "admin" +# # password = "admin" +# +# ## Set response_timeout +# response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use SSL but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Optional Max Job Build Age filter +# ## Default 1 hour, ignore builds older than max_build_age +# # max_build_age = "1h" +# +# ## Optional Sub Job Depth filter +# ## Jenkins can have unlimited layer of sub jobs +# ## This config will limit the layers of pulling, default value 0 means +# ## unlimited pulling until no more sub jobs +# # max_subjob_depth = 0 +# +# ## Optional Sub Job Per Layer +# ## In workflow-multibranch-plugin, each branch will be created as a sub job. +# ## This config will limit to call only the lasted branches in each layer, +# ## empty will use default value 10 +# # max_subjob_per_layer = 10 +# +# ## Jobs to exclude from gathering +# # job_exclude = [ "job1", "job2/subjob1/subjob2", "job3/*"] +# +# ## Nodes to exclude from gathering +# # node_exclude = [ "node1", "node2" ] +# +# ## Worker pool for jenkins plugin only +# ## Empty this field will use default value 5 +# # max_connections = 5 + + +# # Read JMX metrics through Jolokia +# [[inputs.jolokia]] +# # DEPRECATED: the jolokia plugin has been deprecated in favor of the +# # jolokia2 plugin +# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2 +# +# ## This is the context root used to compose the jolokia url +# ## NOTE that Jolokia requires a trailing slash at the end of the context root +# ## NOTE that your jolokia security policy must allow for POST requests. +# context = "/jolokia/" +# +# ## This specifies the mode used +# # mode = "proxy" +# # +# ## When in proxy mode this section is used to specify further +# ## proxy address configurations. +# ## Remember to change host address to fit your environment. +# # [inputs.jolokia.proxy] +# # host = "127.0.0.1" +# # port = "8080" +# +# ## Optional http timeouts +# ## +# ## response_header_timeout, if non-zero, specifies the amount of time to wait +# ## for a server's response headers after fully writing the request. +# # response_header_timeout = "3s" +# ## +# ## client_timeout specifies a time limit for requests made by this client. +# ## Includes connection time, any redirects, and reading the response body. +# # client_timeout = "4s" +# +# ## Attribute delimiter +# ## +# ## When multiple attributes are returned for a single +# ## [inputs.jolokia.metrics], the field name is a concatenation of the metric +# ## name, and the attribute name, separated by the given delimiter. +# # delimiter = "_" +# +# ## List of servers exposing jolokia read service +# [[inputs.jolokia.servers]] +# name = "as-server-01" +# host = "127.0.0.1" +# port = "8080" +# # username = "myuser" +# # password = "mypassword" +# +# ## List of metrics collected on above servers +# ## Each metric consists in a name, a jmx path and either +# ## a pass or drop slice attribute. +# ## This collect all heap memory usage metrics. +# [[inputs.jolokia.metrics]] +# name = "heap_memory_usage" +# mbean = "java.lang:type=Memory" +# attribute = "HeapMemoryUsage" +# +# ## This collect thread counts metrics. +# [[inputs.jolokia.metrics]] +# name = "thread_count" +# mbean = "java.lang:type=Threading" +# attribute = "TotalStartedThreadCount,ThreadCount,DaemonThreadCount,PeakThreadCount" +# +# ## This collect number of class loaded/unloaded counts metrics. +# [[inputs.jolokia.metrics]] +# name = "class_count" +# mbean = "java.lang:type=ClassLoading" +# attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount" + + +# # Read JMX metrics from a Jolokia REST agent endpoint +# [[inputs.jolokia2_agent]] +# # default_tag_prefix = "" +# # default_field_prefix = "" +# # default_field_separator = "." +# +# # Add agents URLs to query +# urls = ["http://localhost:8080/jolokia"] +# # username = "" +# # password = "" +# # response_timeout = "5s" +# +# ## Optional TLS config +# # tls_ca = "/var/private/ca.pem" +# # tls_cert = "/var/private/client.pem" +# # tls_key = "/var/private/client-key.pem" +# # insecure_skip_verify = false +# +# ## Add metrics to read +# [[inputs.jolokia2_agent.metric]] +# name = "java_runtime" +# mbean = "java.lang:type=Runtime" +# paths = ["Uptime"] + + +# # Read JMX metrics from a Jolokia REST proxy endpoint +# [[inputs.jolokia2_proxy]] +# # default_tag_prefix = "" +# # default_field_prefix = "" +# # default_field_separator = "." +# +# ## Proxy agent +# url = "http://localhost:8080/jolokia" +# # username = "" +# # password = "" +# # response_timeout = "5s" +# +# ## Optional TLS config +# # tls_ca = "/var/private/ca.pem" +# # tls_cert = "/var/private/client.pem" +# # tls_key = "/var/private/client-key.pem" +# # insecure_skip_verify = false +# +# ## Add proxy targets to query +# # default_target_username = "" +# # default_target_password = "" +# [[inputs.jolokia2_proxy.target]] +# url = "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi" +# # username = "" +# # password = "" +# +# ## Add metrics to read +# [[inputs.jolokia2_proxy.metric]] +# name = "java_runtime" +# mbean = "java.lang:type=Runtime" +# paths = ["Uptime"] + + +# # Read Kapacitor-formatted JSON metrics from one or more HTTP endpoints +# [[inputs.kapacitor]] +# ## Multiple URLs from which to read Kapacitor-formatted JSON +# ## Default is "http://localhost:9092/kapacitor/v1/debug/vars". +# urls = [ +# "http://localhost:9092/kapacitor/v1/debug/vars" +# ] +# +# ## Time limit for http requests +# timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Get kernel statistics from /proc/vmstat +# [[inputs.kernel_vmstat]] +# # no configuration + + +# # Read status information from one or more Kibana servers +# [[inputs.kibana]] +# ## specify a list of one or more Kibana servers +# servers = ["http://localhost:5601"] +# +# ## Timeout for HTTP requests +# timeout = "5s" +# +# ## HTTP Basic Auth credentials +# # username = "username" +# # password = "pa$$word" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read metrics from the Kubernetes api +# [[inputs.kube_inventory]] +# ## URL for the Kubernetes API +# url = "https://127.0.0.1" +# +# ## Namespace to use. Set to "" to use all namespaces. +# # namespace = "default" +# +# ## Use bearer token for authorization. ('bearer_token' takes priority) +# ## If both of these are empty, we'll use the default serviceaccount: +# ## at: /run/secrets/kubernetes.io/serviceaccount/token +# # bearer_token = "/path/to/bearer/token" +# ## OR +# # bearer_token_string = "abc_123" +# +# ## Set response_timeout (default 5 seconds) +# # response_timeout = "5s" +# +# ## Optional Resources to exclude from gathering +# ## Leave them with blank with try to gather everything available. +# ## Values can be - "daemonsets", deployments", "endpoints", "ingress", "nodes", +# ## "persistentvolumes", "persistentvolumeclaims", "pods", "services", "statefulsets" +# # resource_exclude = [ "deployments", "nodes", "statefulsets" ] +# +# ## Optional Resources to include when gathering +# ## Overrides resource_exclude if both set. +# # resource_include = [ "deployments", "nodes", "statefulsets" ] +# +# ## Optional TLS Config +# # tls_ca = "/path/to/cafile" +# # tls_cert = "/path/to/certfile" +# # tls_key = "/path/to/keyfile" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read metrics from the kubernetes kubelet api +# [[inputs.kubernetes]] +# ## URL for the kubelet +# url = "http://127.0.0.1:10255" +# +# ## Use bearer token for authorization. ('bearer_token' takes priority) +# ## If both of these are empty, we'll use the default serviceaccount: +# ## at: /run/secrets/kubernetes.io/serviceaccount/token +# # bearer_token = "/path/to/bearer/token" +# ## OR +# # bearer_token_string = "abc_123" +# +# ## Set response_timeout (default 5 seconds) +# # response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = /path/to/cafile +# # tls_cert = /path/to/certfile +# # tls_key = /path/to/keyfile +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read metrics from a LeoFS Server via SNMP +# [[inputs.leofs]] +# ## An array of URLs of the form: +# ## host [ ":" port] +# servers = ["127.0.0.1:4020"] + + +# # Provides Linux sysctl fs metrics +# [[inputs.linux_sysctl_fs]] +# # no configuration + + +# # Read metrics exposed by Logstash +# [[inputs.logstash]] +# ## The URL of the exposed Logstash API endpoint. +# url = "http://127.0.0.1:9600" +# +# ## Use Logstash 5 single pipeline API, set to true when monitoring +# ## Logstash 5. +# # single_pipeline = false +# +# ## Enable optional collection components. Can contain +# ## "pipelines", "process", and "jvm". +# # collect = ["pipelines", "process", "jvm"] +# +# ## Timeout for HTTP requests. +# # timeout = "5s" +# +# ## Optional HTTP Basic Auth credentials. +# # username = "username" +# # password = "pa$$word" +# +# ## Optional TLS Config. +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## Use TLS but skip chain & host verification. +# # insecure_skip_verify = false +# +# ## Optional HTTP headers. +# # [inputs.logstash.headers] +# # "X-Special-Header" = "Special-Value" + + +# # Read metrics from local Lustre service on OST, MDS +# [[inputs.lustre2]] +# ## An array of /proc globs to search for Lustre stats +# ## If not specified, the default will work on Lustre 2.5.x +# ## +# # ost_procfiles = [ +# # "/proc/fs/lustre/obdfilter/*/stats", +# # "/proc/fs/lustre/osd-ldiskfs/*/stats", +# # "/proc/fs/lustre/obdfilter/*/job_stats", +# # ] +# # mds_procfiles = [ +# # "/proc/fs/lustre/mdt/*/md_stats", +# # "/proc/fs/lustre/mdt/*/job_stats", +# # ] + + +# # Gathers metrics from the /3.0/reports MailChimp API +# [[inputs.mailchimp]] +# ## MailChimp API key +# ## get from https://admin.mailchimp.com/account/api/ +# api_key = "" # required +# ## Reports for campaigns sent more than days_old ago will not be collected. +# ## 0 means collect all. +# days_old = 0 +# ## Campaign ID to get, if empty gets all campaigns, this option overrides days_old +# # campaign_id = "" + + +# # Retrives information on a specific host in a MarkLogic Cluster +# [[inputs.marklogic]] +# ## Base URL of the MarkLogic HTTP Server. +# url = "http://localhost:8002" +# +# ## List of specific hostnames to retrieve information. At least (1) required. +# # hosts = ["hostname1", "hostname2"] +# +# ## Using HTTP Basic Authentication. Management API requires 'manage-user' role privileges +# # username = "myuser" +# # password = "mypassword" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read metrics from one or many mcrouter servers +# [[inputs.mcrouter]] +# ## An array of address to gather stats about. Specify an ip or hostname +# ## with port. ie tcp://localhost:11211, tcp://10.0.0.1:11211, etc. +# servers = ["tcp://localhost:11211", "unix:///var/run/mcrouter.sock"] +# +# ## Timeout for metric collections from all servers. Minimum timeout is "1s". +# # timeout = "5s" + + +# # Read metrics from one or many memcached servers +# [[inputs.memcached]] +# ## An array of address to gather stats about. Specify an ip on hostname +# ## with optional port. ie localhost, 10.0.0.1:11211, etc. +# servers = ["localhost:11211"] +# # unix_sockets = ["/var/run/memcached.sock"] + + +# # Telegraf plugin for gathering metrics from N Mesos masters +# [[inputs.mesos]] +# ## Timeout, in ms. +# timeout = 100 +# +# ## A list of Mesos masters. +# masters = ["http://localhost:5050"] +# +# ## Master metrics groups to be collected, by default, all enabled. +# master_collections = [ +# "resources", +# "master", +# "system", +# "agents", +# "frameworks", +# "framework_offers", +# "tasks", +# "messages", +# "evqueue", +# "registrar", +# "allocator", +# ] +# +# ## A list of Mesos slaves, default is [] +# # slaves = [] +# +# ## Slave metrics groups to be collected, by default, all enabled. +# # slave_collections = [ +# # "resources", +# # "agent", +# # "system", +# # "executors", +# # "tasks", +# # "messages", +# # ] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Collects scores from a Minecraft server's scoreboard using the RCON protocol +# [[inputs.minecraft]] +# ## Address of the Minecraft server. +# # server = "localhost" +# +# ## Server RCON Port. +# # port = "25575" +# +# ## Server RCON Password. +# password = "" +# +# ## Uncomment to remove deprecated metric components. +# # tagdrop = ["server"] + + +# # Read metrics from one or many MongoDB servers +# [[inputs.mongodb]] +# ## An array of URLs of the form: +# ## "mongodb://" [user ":" pass "@"] host [ ":" port] +# ## For example: +# ## mongodb://user:auth_key@10.10.3.30:27017, +# ## mongodb://10.10.3.33:18832, +# servers = ["mongodb://127.0.0.1:27017"] +# +# ## When true, collect per database stats +# # gather_perdb_stats = false +# +# ## When true, collect per collection stats +# # gather_col_stats = false +# +# ## List of db where collections stats are collected +# ## If empty, all db are concerned +# # col_stats_dbs = ["local"] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Aggregates the contents of multiple files into a single point +# [[inputs.multifile]] +# ## Base directory where telegraf will look for files. +# ## Omit this option to use absolute paths. +# base_dir = "/sys/bus/i2c/devices/1-0076/iio:device0" +# +# ## If true, Telegraf discard all data when a single file can't be read. +# ## Else, Telegraf omits the field generated from this file. +# # fail_early = true +# +# ## Files to parse each interval. +# [[inputs.multifile.file]] +# file = "in_pressure_input" +# dest = "pressure" +# conversion = "float" +# [[inputs.multifile.file]] +# file = "in_temp_input" +# dest = "temperature" +# conversion = "float(3)" +# [[inputs.multifile.file]] +# file = "in_humidityrelative_input" +# dest = "humidityrelative" +# conversion = "float(3)" + + +# # Read metrics from one or many mysql servers +# [[inputs.mysql]] +# ## specify servers via a url matching: +# ## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]] +# ## see https://github.com/go-sql-driver/mysql#dsn-data-source-name +# ## e.g. +# ## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"] +# ## servers = ["user@tcp(127.0.0.1:3306)/?tls=false"] +# # +# ## If no servers are specified, then localhost is used as the host. +# servers = ["tcp(127.0.0.1:3306)/"] +# +# ## Selects the metric output format. +# ## +# ## This option exists to maintain backwards compatibility, if you have +# ## existing metrics do not set or change this value until you are ready to +# ## migrate to the new format. +# ## +# ## If you do not have existing metrics from this plugin set to the latest +# ## version. +# ## +# ## Telegraf >=1.6: metric_version = 2 +# ## <1.6: metric_version = 1 (or unset) +# metric_version = 2 +# +# ## if the list is empty, then metrics are gathered from all databasee tables +# # table_schema_databases = [] +# +# ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided above list +# # gather_table_schema = false +# +# ## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST +# # gather_process_list = false +# +# ## gather user statistics from INFORMATION_SCHEMA.USER_STATISTICS +# # gather_user_statistics = false +# +# ## gather auto_increment columns and max values from information schema +# # gather_info_schema_auto_inc = false +# +# ## gather metrics from INFORMATION_SCHEMA.INNODB_METRICS +# # gather_innodb_metrics = false +# +# ## gather metrics from SHOW SLAVE STATUS command output +# # gather_slave_status = false +# +# ## gather metrics from SHOW BINARY LOGS command output +# # gather_binary_logs = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.GLOBAL_VARIABLES +# # gather_global_variables = true +# +# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_TABLE +# # gather_table_io_waits = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_LOCK_WAITS +# # gather_table_lock_waits = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_INDEX_USAGE +# # gather_index_io_waits = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.EVENT_WAITS +# # gather_event_waits = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME +# # gather_file_events_stats = false +# +# ## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST +# # gather_perf_events_statements = false +# +# ## the limits for metrics form perf_events_statements +# # perf_events_statements_digest_text_limit = 120 +# # perf_events_statements_limit = 250 +# # perf_events_statements_time_limit = 86400 +# +# ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES) +# ## example: interval_slow = "30m" +# # interval_slow = "" +# +# ## Optional TLS Config (will be used if tls=custom parameter specified in server uri) +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Provides metrics about the state of a NATS server +# [[inputs.nats]] +# ## The address of the monitoring endpoint of the NATS server +# server = "http://localhost:8222" +# +# ## Maximum time to receive response +# # response_timeout = "5s" + + +# # Neptune Apex data collector +# [[inputs.neptune_apex]] +# ## The Neptune Apex plugin reads the publicly available status.xml data from a local Apex. +# ## Measurements will be logged under "apex". +# +# ## The base URL of the local Apex(es). If you specify more than one server, they will +# ## be differentiated by the "source" tag. +# servers = [ +# "http://apex.local", +# ] +# +# ## The response_timeout specifies how long to wait for a reply from the Apex. +# #response_timeout = "5s" + + +# # Read metrics about network interface usage +# [[inputs.net]] +# ## By default, telegraf gathers stats from any up interface (excluding loopback) +# ## Setting interfaces will tell it to gather these explicit interfaces, +# ## regardless of status. +# ## +# # interfaces = ["eth0"] +# ## +# ## On linux systems telegraf also collects protocol stats. +# ## Setting ignore_protocol_stats to true will skip reporting of protocol metrics. +# ## +# # ignore_protocol_stats = false +# ## + + +# # Collect response time of a TCP or UDP connection +# [[inputs.net_response]] +# ## Protocol, must be "tcp" or "udp" +# ## NOTE: because the "udp" protocol does not respond to requests, it requires +# ## a send/expect string pair (see below). +# protocol = "tcp" +# ## Server address (default localhost) +# address = "localhost:80" +# +# ## Set timeout +# # timeout = "1s" +# +# ## Set read timeout (only used if expecting a response) +# # read_timeout = "1s" +# +# ## The following options are required for UDP checks. For TCP, they are +# ## optional. The plugin will send the given string to the server and then +# ## expect to receive the given 'expect' string back. +# ## string sent to the server +# # send = "ssh" +# ## expected string in answer +# # expect = "ssh" +# +# ## Uncomment to remove deprecated fields +# # fielddrop = ["result_type", "string_found"] + + +# # Read TCP metrics such as established, time wait and sockets counts. +# [[inputs.netstat]] +# # no configuration + + +# # Read Nginx's basic status information (ngx_http_stub_status_module) +# [[inputs.nginx]] +# # An array of Nginx stub_status URI to gather stats. +# urls = ["http://localhost/server_status"] +# +# ## Optional TLS Config +# tls_ca = "/etc/telegraf/ca.pem" +# tls_cert = "/etc/telegraf/cert.cer" +# tls_key = "/etc/telegraf/key.key" +# ## Use TLS but skip chain & host verification +# insecure_skip_verify = false +# +# # HTTP response timeout (default: 5s) +# response_timeout = "5s" + + +# # Read Nginx Plus' full status information (ngx_http_status_module) +# [[inputs.nginx_plus]] +# ## An array of ngx_http_status_module or status URI to gather stats. +# urls = ["http://localhost/status"] +# +# # HTTP response timeout (default: 5s) +# response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read Nginx Plus Api documentation +# [[inputs.nginx_plus_api]] +# ## An array of API URI to gather stats. +# urls = ["http://localhost/api"] +# +# # Nginx API version, default: 3 +# # api_version = 3 +# +# # HTTP response timeout (default: 5s) +# response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read nginx_upstream_check module status information (https://github.com/yaoweibin/nginx_upstream_check_module) +# [[inputs.nginx_upstream_check]] +# ## An URL where Nginx Upstream check module is enabled +# ## It should be set to return a JSON formatted response +# url = "http://127.0.0.1/status?format=json" +# +# ## HTTP method +# # method = "GET" +# +# ## Optional HTTP headers +# # headers = {"X-Special-Header" = "Special-Value"} +# +# ## Override HTTP "Host" header +# # host_header = "check.example.com" +# +# ## Timeout for HTTP requests +# timeout = "5s" +# +# ## Optional HTTP Basic Auth credentials +# # username = "username" +# # password = "pa$$word" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read Nginx virtual host traffic status module information (nginx-module-vts) +# [[inputs.nginx_vts]] +# ## An array of ngx_http_status_module or status URI to gather stats. +# urls = ["http://localhost/status"] +# +# ## HTTP response timeout (default: 5s) +# response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Read NSQ topic and channel statistics. +# [[inputs.nsq]] +# ## An array of NSQD HTTP API endpoints +# endpoints = ["http://localhost:4151"] +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Collect kernel snmp counters and network interface statistics +# [[inputs.nstat]] +# ## file paths for proc files. If empty default paths will be used: +# ## /proc/net/netstat, /proc/net/snmp, /proc/net/snmp6 +# ## These can also be overridden with env variables, see README. +# proc_net_netstat = "/proc/net/netstat" +# proc_net_snmp = "/proc/net/snmp" +# proc_net_snmp6 = "/proc/net/snmp6" +# ## dump metrics with 0 values too +# dump_zeros = true + + +# # Get standard NTP query metrics, requires ntpq executable. +# [[inputs.ntpq]] +# ## If false, set the -n ntpq flag. Can reduce metric gather time. +# dns_lookup = true + + +# # Pulls statistics from nvidia GPUs attached to the host +# [[inputs.nvidia_smi]] +# ## Optional: path to nvidia-smi binary, defaults to $PATH via exec.LookPath +# # bin_path = "/usr/bin/nvidia-smi" +# +# ## Optional: timeout for GPU polling +# # timeout = "5s" + + +# # OpenLDAP cn=Monitor plugin +# [[inputs.openldap]] +# host = "localhost" +# port = 389 +# +# # ldaps, starttls, or no encryption. default is an empty string, disabling all encryption. +# # note that port will likely need to be changed to 636 for ldaps +# # valid options: "" | "starttls" | "ldaps" +# tls = "" +# +# # skip peer certificate verification. Default is false. +# insecure_skip_verify = false +# +# # Path to PEM-encoded Root certificate to use to verify server certificate +# tls_ca = "/etc/ssl/certs.pem" +# +# # dn/password to bind with. If bind_dn is empty, an anonymous bind is performed. +# bind_dn = "" +# bind_password = "" +# +# # Reverse metric names so they sort more naturally. Recommended. +# # This defaults to false if unset, but is set to true when generating a new config +# reverse_metric_names = true + + +# # Get standard NTP query metrics from OpenNTPD. +# [[inputs.openntpd]] +# ## Run ntpctl binary with sudo. +# # use_sudo = false +# +# ## Location of the ntpctl binary. +# # binary = "/usr/sbin/ntpctl" +# +# ## Maximum time the ntpctl binary is allowed to run. +# # timeout = "5ms" + + +# # A plugin to collect stats from Opensmtpd - a validating, recursive, and caching DNS resolver +# [[inputs.opensmtpd]] +# ## If running as a restricted user you can prepend sudo for additional access: +# #use_sudo = false +# +# ## The default location of the smtpctl binary can be overridden with: +# binary = "/usr/sbin/smtpctl" +# +# ## The default timeout of 1000ms can be overriden with (in milliseconds): +# timeout = 1000 + + +# # Read current weather and forecasts data from openweathermap.org +# [[inputs.openweathermap]] +# ## OpenWeatherMap API key. +# app_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +# +# ## City ID's to collect weather data from. +# city_id = ["5391959"] +# +# ## Language of the description field. Can be one of "ar", "bg", +# ## "ca", "cz", "de", "el", "en", "fa", "fi", "fr", "gl", "hr", "hu", +# ## "it", "ja", "kr", "la", "lt", "mk", "nl", "pl", "pt", "ro", "ru", +# ## "se", "sk", "sl", "es", "tr", "ua", "vi", "zh_cn", "zh_tw" +# # lang = "en" +# +# ## APIs to fetch; can contain "weather" or "forecast". +# fetch = ["weather", "forecast"] +# +# ## OpenWeatherMap base URL +# # base_url = "https://api.openweathermap.org/" +# +# ## Timeout for HTTP response. +# # response_timeout = "5s" +# +# ## Preferred unit system for temperature and wind speed. Can be one of +# ## "metric", "imperial", or "standard". +# # units = "metric" +# +# ## Query interval; OpenWeatherMap updates their weather data every 10 +# ## minutes. +# interval = "10m" + + +# # Read metrics of passenger using passenger-status +# [[inputs.passenger]] +# ## Path of passenger-status. +# ## +# ## Plugin gather metric via parsing XML output of passenger-status +# ## More information about the tool: +# ## https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html +# ## +# ## If no path is specified, then the plugin simply execute passenger-status +# ## hopefully it can be found in your PATH +# command = "passenger-status -v --show=xml" + + +# # Gather counters from PF +# [[inputs.pf]] +# ## PF require root access on most systems. +# ## Setting 'use_sudo' to true will make use of sudo to run pfctl. +# ## Users must configure sudo to allow telegraf user to run pfctl with no password. +# ## pfctl can be restricted to only list command "pfctl -s info". +# use_sudo = false + + +# # Read metrics of phpfpm, via HTTP status page or socket +# [[inputs.phpfpm]] +# ## An array of addresses to gather stats about. Specify an ip or hostname +# ## with optional port and path +# ## +# ## Plugin can be configured in three modes (either can be used): +# ## - http: the URL must start with http:// or https://, ie: +# ## "http://localhost/status" +# ## "http://192.168.130.1/status?full" +# ## +# ## - unixsocket: path to fpm socket, ie: +# ## "/var/run/php5-fpm.sock" +# ## or using a custom fpm status path: +# ## "/var/run/php5-fpm.sock:fpm-custom-status-path" +# ## +# ## - fcgi: the URL must start with fcgi:// or cgi://, and port must be present, ie: +# ## "fcgi://10.0.0.12:9000/status" +# ## "cgi://10.0.10.12:9001/status" +# ## +# ## Example of multiple gathering from local socket and remote host +# ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"] +# urls = ["http://localhost/status"] +# +# ## Duration allowed to complete HTTP requests. +# # timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Ping given url(s) and return statistics +# [[inputs.ping]] +# ## Hosts to send ping packets to. +# urls = ["example.org"] +# +# ## Method used for sending pings, can be either "exec" or "native". When set +# ## to "exec" the systems ping command will be executed. When set to "native" +# ## the plugin will send pings directly. +# ## +# ## While the default is "exec" for backwards compatibility, new deployments +# ## are encouraged to use the "native" method for improved compatibility and +# ## performance. +# # method = "exec" +# +# ## Number of ping packets to send per interval. Corresponds to the "-c" +# ## option of the ping command. +# # count = 1 +# +# ## Time to wait between sending ping packets in seconds. Operates like the +# ## "-i" option of the ping command. +# # ping_interval = 1.0 +# +# ## If set, the time to wait for a ping response in seconds. Operates like +# ## the "-W" option of the ping command. +# # timeout = 1.0 +# +# ## If set, the total ping deadline, in seconds. Operates like the -w option +# ## of the ping command. +# # deadline = 10 +# +# ## Interface or source address to send ping from. Operates like the -I or -S +# ## option of the ping command. +# # interface = "" +# +# ## Specify the ping executable binary. +# # binary = "ping" +# +# ## Arguments for ping command. When arguments is not empty, the command from +# ## the binary option will be used and other options (ping_interval, timeout, +# ## etc) will be ignored. +# # arguments = ["-c", "3"] +# +# ## Use only IPv6 addresses when resolving a hostname. +# # ipv6 = false + + +# # Measure postfix queue statistics +# [[inputs.postfix]] +# ## Postfix queue directory. If not provided, telegraf will try to use +# ## 'postconf -h queue_directory' to determine it. +# # queue_directory = "/var/spool/postfix" + + +# # Read metrics from one or many PowerDNS servers +# [[inputs.powerdns]] +# ## An array of sockets to gather stats about. +# ## Specify a path to unix socket. +# unix_sockets = ["/var/run/pdns.controlsocket"] + + +# # Read metrics from one or many PowerDNS Recursor servers +# [[inputs.powerdns_recursor]] +# ## Path to the Recursor control socket. +# unix_sockets = ["/var/run/pdns_recursor.controlsocket"] +# +# ## Directory to create receive socket. This default is likely not writable, +# ## please reference the full plugin documentation for a recommended setup. +# # socket_dir = "/var/run/" +# ## Socket permissions for the receive socket. +# # socket_mode = "0666" + + +# # Monitor process cpu and memory usage +# [[inputs.procstat]] +# ## PID file to monitor process +# pid_file = "/var/run/nginx.pid" +# ## executable name (ie, pgrep ) +# # exe = "nginx" +# ## pattern as argument for pgrep (ie, pgrep -f ) +# # pattern = "nginx" +# ## user as argument for pgrep (ie, pgrep -u ) +# # user = "nginx" +# ## Systemd unit name +# # systemd_unit = "nginx.service" +# ## CGroup name or path +# # cgroup = "systemd/system.slice/nginx.service" +# +# ## Windows service name +# # win_service = "" +# +# ## override for process_name +# ## This is optional; default is sourced from /proc//status +# # process_name = "bar" +# +# ## Field name prefix +# # prefix = "" +# +# ## When true add the full cmdline as a tag. +# # cmdline_tag = false +# +# ## Add PID as a tag instead of a field; useful to differentiate between +# ## processes whose tags are otherwise the same. Can create a large number +# ## of series, use judiciously. +# # pid_tag = false +# +# ## Method to use when finding process IDs. Can be one of 'pgrep', or +# ## 'native'. The pgrep finder calls the pgrep executable in the PATH while +# ## the native finder performs the search directly in a manor dependent on the +# ## platform. Default is 'pgrep' +# # pid_finder = "pgrep" + + +# # Reads last_run_summary.yaml file and converts to measurments +# [[inputs.puppetagent]] +# ## Location of puppet last run summary file +# location = "/var/lib/puppet/state/last_run_summary.yaml" + + +# # Reads metrics from RabbitMQ servers via the Management Plugin +# [[inputs.rabbitmq]] +# ## Management Plugin url. (default: http://localhost:15672) +# # url = "http://localhost:15672" +# ## Tag added to rabbitmq_overview series; deprecated: use tags +# # name = "rmq-server-1" +# ## Credentials +# # username = "guest" +# # password = "guest" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Optional request timeouts +# ## +# ## ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait +# ## for a server's response headers after fully writing the request. +# # header_timeout = "3s" +# ## +# ## client_timeout specifies a time limit for requests made by this client. +# ## Includes connection time, any redirects, and reading the response body. +# # client_timeout = "4s" +# +# ## A list of nodes to gather as the rabbitmq_node measurement. If not +# ## specified, metrics for all nodes are gathered. +# # nodes = ["rabbit@node1", "rabbit@node2"] +# +# ## A list of queues to gather as the rabbitmq_queue measurement. If not +# ## specified, metrics for all queues are gathered. +# # queues = ["telegraf"] +# +# ## A list of exchanges to gather as the rabbitmq_exchange measurement. If not +# ## specified, metrics for all exchanges are gathered. +# # exchanges = ["telegraf"] +# +# ## Queues to include and exclude. Globs accepted. +# ## Note that an empty array for both will include all queues +# queue_name_include = [] +# queue_name_exclude = [] +# +# ## Federation upstreams include and exclude when gathering the rabbitmq_federation measurement. +# ## If neither are specified, metrics for all federation upstreams are gathered. +# ## Federation link metrics will only be gathered for queues and exchanges +# ## whose non-federation metrics will be collected (e.g a queue excluded +# ## by the 'queue_name_exclude' option will also be excluded from federation). +# ## Globs accepted. +# # federation_upstream_include = ["dataCentre-*"] +# # federation_upstream_exclude = [] + + +# # Read raindrops stats (raindrops - real-time stats for preforking Rack servers) +# [[inputs.raindrops]] +# ## An array of raindrops middleware URI to gather stats. +# urls = ["http://localhost:8080/_raindrops"] + + +# # Read metrics from one or many redis servers +# [[inputs.redis]] +# ## specify servers via a url matching: +# ## [protocol://][:password]@address[:port] +# ## e.g. +# ## tcp://localhost:6379 +# ## tcp://:password@192.168.99.100 +# ## unix:///var/run/redis.sock +# ## +# ## If no servers are specified, then localhost is used as the host. +# ## If no port is specified, 6379 is used +# servers = ["tcp://localhost:6379"] +# +# ## specify server password +# # password = "s#cr@t%" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = true + + +# # Read metrics from one or many RethinkDB servers +# [[inputs.rethinkdb]] +# ## An array of URI to gather stats about. Specify an ip or hostname +# ## with optional port add password. ie, +# ## rethinkdb://user:auth_key@10.10.3.30:28105, +# ## rethinkdb://10.10.3.33:18832, +# ## 10.0.0.1:10000, etc. +# servers = ["127.0.0.1:28015"] +# ## +# ## If you use actual rethinkdb of > 2.3.0 with username/password authorization, +# ## protocol have to be named "rethinkdb2" - it will use 1_0 H. +# # servers = ["rethinkdb2://username:password@127.0.0.1:28015"] +# ## +# ## If you use older versions of rethinkdb (<2.2) with auth_key, protocol +# ## have to be named "rethinkdb". +# # servers = ["rethinkdb://username:auth_key@127.0.0.1:28015"] + + +# # Read metrics one or many Riak servers +# [[inputs.riak]] +# # Specify a list of one or more riak http servers +# servers = ["http://localhost:8098"] + + +# # Read API usage and limits for a Salesforce organisation +# [[inputs.salesforce]] +# ## specify your credentials +# ## +# username = "your_username" +# password = "your_password" +# ## +# ## (optional) security token +# # security_token = "your_security_token" +# ## +# ## (optional) environment type (sandbox or production) +# ## default is: production +# ## +# # environment = "production" +# ## +# ## (optional) API version (default: "39.0") +# ## +# # version = "39.0" + + +# # Monitor sensors, requires lm-sensors package +# [[inputs.sensors]] +# ## Remove numbers from field names. +# ## If true, a field name like 'temp1_input' will be changed to 'temp_input'. +# # remove_numbers = true +# +# ## Timeout is the maximum amount of time that the sensors command can run. +# # timeout = "5s" + + +# # Read metrics from storage devices supporting S.M.A.R.T. +# [[inputs.smart]] +# ## Optionally specify the path to the smartctl executable +# # path = "/usr/bin/smartctl" +# +# ## On most platforms smartctl requires root access. +# ## Setting 'use_sudo' to true will make use of sudo to run smartctl. +# ## Sudo must be configured to to allow the telegraf user to run smartctl +# ## without a password. +# # use_sudo = false +# +# ## Skip checking disks in this power mode. Defaults to +# ## "standby" to not wake up disks that have stoped rotating. +# ## See --nocheck in the man pages for smartctl. +# ## smartctl version 5.41 and 5.42 have faulty detection of +# ## power mode and might require changing this value to +# ## "never" depending on your disks. +# # nocheck = "standby" +# +# ## Gather all returned S.M.A.R.T. attribute metrics and the detailed +# ## information from each drive into the 'smart_attribute' measurement. +# # attributes = false +# +# ## Optionally specify devices to exclude from reporting. +# # excludes = [ "/dev/pass6" ] +# +# ## Optionally specify devices and device type, if unset +# ## a scan (smartctl --scan) for S.M.A.R.T. devices will +# ## done and all found will be included except for the +# ## excluded in excludes. +# # devices = [ "/dev/ada0 -d atacam" ] +# +# ## Timeout for the smartctl command to complete. +# # timeout = "30s" + + +# # Retrieves SNMP values from remote agents +# [[inputs.snmp]] +# ## Agent addresses to retrieve values from. +# ## example: agents = ["udp://127.0.0.1:161"] +# ## agents = ["tcp://127.0.0.1:161"] +# agents = ["udp://127.0.0.1:161"] +# +# ## Timeout for each request. +# # timeout = "5s" +# +# ## SNMP version; can be 1, 2, or 3. +# # version = 2 +# +# ## SNMP community string. +# # community = "public" +# +# ## Number of retries to attempt. +# # retries = 3 +# +# ## The GETBULK max-repetitions parameter. +# # max_repetitions = 10 +# +# ## SNMPv3 authentication and encryption options. +# ## +# ## Security Name. +# # sec_name = "myuser" +# ## Authentication protocol; one of "MD5", "SHA", or "". +# # auth_protocol = "MD5" +# ## Authentication password. +# # auth_password = "pass" +# ## Security Level; one of "noAuthNoPriv", "authNoPriv", or "authPriv". +# # sec_level = "authNoPriv" +# ## Context Name. +# # context_name = "" +# ## Privacy protocol used for encrypted messages; one of "DES", "AES" or "". +# # priv_protocol = "" +# ## Privacy password used for encrypted messages. +# # priv_password = "" +# +# ## Add fields and tables defining the variables you wish to collect. This +# ## example collects the system uptime and interface variables. Reference the +# ## full plugin documentation for configuration details. + + +# # DEPRECATED! PLEASE USE inputs.snmp INSTEAD. +# [[inputs.snmp_legacy]] +# ## Use 'oids.txt' file to translate oids to names +# ## To generate 'oids.txt' you need to run: +# ## snmptranslate -m all -Tz -On | sed -e 's/"//g' > /tmp/oids.txt +# ## Or if you have an other MIB folder with custom MIBs +# ## snmptranslate -M /mycustommibfolder -Tz -On -m all | sed -e 's/"//g' > oids.txt +# snmptranslate_file = "/tmp/oids.txt" +# [[inputs.snmp.host]] +# address = "192.168.2.2:161" +# # SNMP community +# community = "public" # default public +# # SNMP version (1, 2 or 3) +# # Version 3 not supported yet +# version = 2 # default 2 +# # SNMP response timeout +# timeout = 2.0 # default 2.0 +# # SNMP request retries +# retries = 2 # default 2 +# # Which get/bulk do you want to collect for this host +# collect = ["mybulk", "sysservices", "sysdescr"] +# # Simple list of OIDs to get, in addition to "collect" +# get_oids = [] +# +# [[inputs.snmp.host]] +# address = "192.168.2.3:161" +# community = "public" +# version = 2 +# timeout = 2.0 +# retries = 2 +# collect = ["mybulk"] +# get_oids = [ +# "ifNumber", +# ".1.3.6.1.2.1.1.3.0", +# ] +# +# [[inputs.snmp.get]] +# name = "ifnumber" +# oid = "ifNumber" +# +# [[inputs.snmp.get]] +# name = "interface_speed" +# oid = "ifSpeed" +# instance = "0" +# +# [[inputs.snmp.get]] +# name = "sysuptime" +# oid = ".1.3.6.1.2.1.1.3.0" +# unit = "second" +# +# [[inputs.snmp.bulk]] +# name = "mybulk" +# max_repetition = 127 +# oid = ".1.3.6.1.2.1.1" +# +# [[inputs.snmp.bulk]] +# name = "ifoutoctets" +# max_repetition = 127 +# oid = "ifOutOctets" +# +# [[inputs.snmp.host]] +# address = "192.168.2.13:161" +# #address = "127.0.0.1:161" +# community = "public" +# version = 2 +# timeout = 2.0 +# retries = 2 +# #collect = ["mybulk", "sysservices", "sysdescr", "systype"] +# collect = ["sysuptime" ] +# [[inputs.snmp.host.table]] +# name = "iftable3" +# include_instances = ["enp5s0", "eth1"] +# +# # SNMP TABLEs +# # table without mapping neither subtables +# [[inputs.snmp.table]] +# name = "iftable1" +# oid = ".1.3.6.1.2.1.31.1.1.1" +# +# # table without mapping but with subtables +# [[inputs.snmp.table]] +# name = "iftable2" +# oid = ".1.3.6.1.2.1.31.1.1.1" +# sub_tables = [".1.3.6.1.2.1.2.2.1.13"] +# +# # table with mapping but without subtables +# [[inputs.snmp.table]] +# name = "iftable3" +# oid = ".1.3.6.1.2.1.31.1.1.1" +# # if empty. get all instances +# mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" +# # if empty, get all subtables +# +# # table with both mapping and subtables +# [[inputs.snmp.table]] +# name = "iftable4" +# oid = ".1.3.6.1.2.1.31.1.1.1" +# # if empty get all instances +# mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" +# # if empty get all subtables +# # sub_tables could be not "real subtables" +# sub_tables=[".1.3.6.1.2.1.2.2.1.13", "bytes_recv", "bytes_send"] + + +# # Read stats from one or more Solr servers or cores +# [[inputs.solr]] +# ## specify a list of one or more Solr servers +# servers = ["http://localhost:8983"] +# +# ## specify a list of one or more Solr cores (default - all) +# # cores = ["main"] +# +# ## Optional HTTP Basic Auth Credentials +# # username = "username" +# # password = "pa$$word" + + +# # Read metrics from Microsoft SQL Server +# [[inputs.sqlserver]] +# ## Specify instances to monitor with a list of connection strings. +# ## All connection parameters are optional. +# ## By default, the host is localhost, listening on default port, TCP 1433. +# ## for Windows, the user is the currently running AD user (SSO). +# ## See https://github.com/denisenkom/go-mssqldb for detailed connection +# ## parameters, in particular, tls connections can be created like so: +# ## "encrypt=true;certificate=;hostNameInCertificate=" +# # servers = [ +# # "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;", +# # ] +# +# ## Optional parameter, setting this to 2 will use a new version +# ## of the collection queries that break compatibility with the original +# ## dashboards. +# query_version = 2 +# +# ## If you are using AzureDB, setting this to true will gather resource utilization metrics +# # azuredb = false +# +# ## If you would like to exclude some of the metrics queries, list them here +# ## Possible choices: +# ## - PerformanceCounters +# ## - WaitStatsCategorized +# ## - DatabaseIO +# ## - DatabaseProperties +# ## - CPUHistory +# ## - DatabaseSize +# ## - DatabaseStats +# ## - MemoryClerk +# ## - VolumeSpace +# ## - PerformanceMetrics +# ## - Schedulers +# ## - AzureDBResourceStats +# ## - AzureDBResourceGovernance +# ## - SqlRequests +# ## - ServerProperties +# exclude_query = [ 'Schedulers' ] + + +# # Gather timeseries from Google Cloud Platform v3 monitoring API +# [[inputs.stackdriver]] +# ## GCP Project +# project = "erudite-bloom-151019" +# +# ## Include timeseries that start with the given metric type. +# metric_type_prefix_include = [ +# "compute.googleapis.com/", +# ] +# +# ## Exclude timeseries that start with the given metric type. +# # metric_type_prefix_exclude = [] +# +# ## Many metrics are updated once per minute; it is recommended to override +# ## the agent level interval with a value of 1m or greater. +# interval = "1m" +# +# ## Maximum number of API calls to make per second. The quota for accounts +# ## varies, it can be viewed on the API dashboard: +# ## https://cloud.google.com/monitoring/quotas#quotas_and_limits +# # rate_limit = 14 +# +# ## The delay and window options control the number of points selected on +# ## each gather. When set, metrics are gathered between: +# ## start: now() - delay - window +# ## end: now() - delay +# # +# ## Collection delay; if set too low metrics may not yet be available. +# # delay = "5m" +# # +# ## If unset, the window will start at 1m and be updated dynamically to span +# ## the time between calls (approximately the length of the plugin interval). +# # window = "1m" +# +# ## TTL for cached list of metric types. This is the maximum amount of time +# ## it may take to discover new metrics. +# # cache_ttl = "1h" +# +# ## If true, raw bucket counts are collected for distribution value types. +# ## For a more lightweight collection, you may wish to disable and use +# ## distribution_aggregation_aligners instead. +# # gather_raw_distribution_buckets = true +# +# ## Aggregate functions to be used for metrics whose value type is +# ## distribution. These aggregate values are recorded in in addition to raw +# ## bucket counts; if they are enabled. +# ## +# ## For a list of aligner strings see: +# ## https://cloud.google.com/monitoring/api/ref_v3/rpc/google.monitoring.v3#aligner +# # distribution_aggregation_aligners = [ +# # "ALIGN_PERCENTILE_99", +# # "ALIGN_PERCENTILE_95", +# # "ALIGN_PERCENTILE_50", +# # ] +# +# ## Filters can be added to reduce the number of time series matched. All +# ## functions are supported: starts_with, ends_with, has_substring, and +# ## one_of. Only the '=' operator is supported. +# ## +# ## The logical operators when combining filters are defined statically using +# ## the following values: +# ## filter ::= {AND } +# ## resource_labels ::= {OR } +# ## metric_labels ::= {OR } +# ## +# ## For more details, see https://cloud.google.com/monitoring/api/v3/filters +# # +# ## Resource labels refine the time series selection with the following expression: +# ## resource.labels. = +# # [[inputs.stackdriver.filter.resource_labels]] +# # key = "instance_name" +# # value = 'starts_with("localhost")' +# # +# ## Metric labels refine the time series selection with the following expression: +# ## metric.labels. = +# # [[inputs.stackdriver.filter.metric_labels]] +# # key = "device_name" +# # value = 'one_of("sda", "sdb")' + + +# # Get synproxy counter statistics from procfs +# [[inputs.synproxy]] +# # no configuration + + +# # Sysstat metrics collector +# [[inputs.sysstat]] +# ## Path to the sadc command. +# # +# ## Common Defaults: +# ## Debian/Ubuntu: /usr/lib/sysstat/sadc +# ## Arch: /usr/lib/sa/sadc +# ## RHEL/CentOS: /usr/lib64/sa/sadc +# sadc_path = "/usr/lib/sa/sadc" # required +# +# ## Path to the sadf command, if it is not in PATH +# # sadf_path = "/usr/bin/sadf" +# +# ## Activities is a list of activities, that are passed as argument to the +# ## sadc collector utility (e.g: DISK, SNMP etc...) +# ## The more activities that are added, the more data is collected. +# # activities = ["DISK"] +# +# ## Group metrics to measurements. +# ## +# ## If group is false each metric will be prefixed with a description +# ## and represents itself a measurement. +# ## +# ## If Group is true, corresponding metrics are grouped to a single measurement. +# # group = true +# +# ## Options for the sadf command. The values on the left represent the sadf +# ## options and the values on the right their description (which are used for +# ## grouping and prefixing metrics). +# ## +# ## Run 'sar -h' or 'man sar' to find out the supported options for your +# ## sysstat version. +# [inputs.sysstat.options] +# -C = "cpu" +# -B = "paging" +# -b = "io" +# -d = "disk" # requires DISK activity +# "-n ALL" = "network" +# "-P ALL" = "per_cpu" +# -q = "queue" +# -R = "mem" +# -r = "mem_util" +# -S = "swap_util" +# -u = "cpu_util" +# -v = "inode" +# -W = "swap" +# -w = "task" +# # -H = "hugepages" # only available for newer linux distributions +# # "-I ALL" = "interrupts" # requires INT activity +# +# ## Device tags can be used to add additional tags for devices. +# ## For example the configuration below adds a tag vg with value rootvg for +# ## all metrics with sda devices. +# # [[inputs.sysstat.device_tags.sda]] +# # vg = "rootvg" + + +# # Gather systemd units state +# [[inputs.systemd_units]] +# ## Set timeout for systemctl execution +# # timeout = "1s" +# # +# ## Filter for a specific unit type, default is "service", other possible +# ## values are "socket", "target", "device", "mount", "automount", "swap", +# ## "timer", "path", "slice" and "scope ": +# # unittype = "service" + + +# # Reads metrics from a Teamspeak 3 Server via ServerQuery +# [[inputs.teamspeak]] +# ## Server address for Teamspeak 3 ServerQuery +# # server = "127.0.0.1:10011" +# ## Username for ServerQuery +# username = "serverqueryuser" +# ## Password for ServerQuery +# password = "secret" +# ## Array of virtual servers +# # virtual_servers = [1] + + +# # Read metrics about temperature +# [[inputs.temp]] +# # no configuration + + +# # Read Tengine's basic status information (ngx_http_reqstat_module) +# [[inputs.tengine]] +# # An array of Tengine reqstat module URI to gather stats. +# urls = ["http://127.0.0.1/us"] +# +# # HTTP response timeout (default: 5s) +# # response_timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.cer" +# # tls_key = "/etc/telegraf/key.key" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Gather metrics from the Tomcat server status page. +# [[inputs.tomcat]] +# ## URL of the Tomcat server status +# # url = "http://127.0.0.1:8080/manager/status/all?XML=true" +# +# ## HTTP Basic Auth Credentials +# # username = "tomcat" +# # password = "s3cret" +# +# ## Request timeout +# # timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Inserts sine and cosine waves for demonstration purposes +# [[inputs.trig]] +# ## Set the amplitude +# amplitude = 10.0 + + +# # Read Twemproxy stats data +# [[inputs.twemproxy]] +# ## Twemproxy stats address and port (no scheme) +# addr = "localhost:22222" +# ## Monitor pool name +# pools = ["redis_pool", "mc_pool"] + + +# # A plugin to collect stats from the Unbound DNS resolver +# [[inputs.unbound]] +# ## Address of server to connect to, read from unbound conf default, optionally ':port' +# ## Will lookup IP if given a hostname +# server = "127.0.0.1:8953" +# +# ## If running as a restricted user you can prepend sudo for additional access: +# # use_sudo = false +# +# ## The default location of the unbound-control binary can be overridden with: +# # binary = "/usr/sbin/unbound-control" +# +# ## The default timeout of 1s can be overriden with: +# # timeout = "1s" +# +# ## When set to true, thread metrics are tagged with the thread id. +# ## +# ## The default is false for backwards compatibility, and will be changed to +# ## true in a future version. It is recommended to set to true on new +# ## deployments. +# thread_as_tag = false + + +# # Read uWSGI metrics. +# [[inputs.uwsgi]] +# ## List with urls of uWSGI Stats servers. URL must match pattern: +# ## scheme://address[:port] +# ## +# ## For example: +# ## servers = ["tcp://localhost:5050", "http://localhost:1717", "unix:///tmp/statsock"] +# servers = ["tcp://127.0.0.1:1717"] +# +# ## General connection timout +# # timeout = "5s" + + +# # A plugin to collect stats from Varnish HTTP Cache +# [[inputs.varnish]] +# ## If running as a restricted user you can prepend sudo for additional access: +# #use_sudo = false +# +# ## The default location of the varnishstat binary can be overridden with: +# binary = "/usr/bin/varnishstat" +# +# ## By default, telegraf gather stats for 3 metric points. +# ## Setting stats will override the defaults shown below. +# ## Glob matching can be used, ie, stats = ["MAIN.*"] +# ## stats may also be set to ["*"], which will collect all stats +# stats = ["MAIN.cache_hit", "MAIN.cache_miss", "MAIN.uptime"] +# +# ## Optional name for the varnish instance (or working directory) to query +# ## Usually appened after -n in varnish cli +# # instance_name = instanceName +# +# ## Timeout for varnishstat command +# # timeout = "1s" + + +# # Monitor wifi signal strength and quality +# [[inputs.wireless]] +# ## Sets 'proc' directory path +# ## If not specified, then default is /proc +# # host_proc = "/proc" + + +# # Reads metrics from a SSL certificate +# [[inputs.x509_cert]] +# ## List certificate sources +# sources = ["/etc/ssl/certs/ssl-cert-snakeoil.pem", "tcp://example.org:443"] +# +# ## Timeout for SSL connection +# # timeout = "5s" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" + + +# # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, and pools +# [[inputs.zfs]] +# ## ZFS kstat path. Ignored on FreeBSD +# ## If not specified, then default is: +# # kstatPath = "/proc/spl/kstat/zfs" +# +# ## By default, telegraf gather all zfs stats +# ## If not specified, then default is: +# # kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"] +# ## For Linux, the default is: +# # kstatMetrics = ["abdstats", "arcstats", "dnodestats", "dbufcachestats", +# # "dmu_tx", "fm", "vdev_mirror_stats", "zfetchstats", "zil"] +# ## By default, don't gather zpool stats +# # poolMetrics = false + + +# # Reads 'mntr' stats from one or many zookeeper servers +# [[inputs.zookeeper]] +# ## An array of address to gather stats about. Specify an ip or hostname +# ## with port. ie localhost:2181, 10.0.0.1:2181, etc. +# +# ## If no servers are specified, then localhost is used as the host. +# ## If no port is specified, 2181 is used +# servers = [":2181"] +# +# ## Timeout for metric collections from all servers. Minimum timeout is "1s". +# # timeout = "5s" +# +# ## Optional TLS Config +# # enable_tls = true +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## If false, skip chain & host verification +# # insecure_skip_verify = true + + +############################################################################### +# SERVICE INPUT PLUGINS # +############################################################################### + + +# # AMQP consumer plugin +# [[inputs.amqp_consumer]] +# ## Broker to consume from. +# ## deprecated in 1.7; use the brokers option +# # url = "amqp://localhost:5672/influxdb" +# +# ## Brokers to consume from. If multiple brokers are specified a random broker +# ## will be selected anytime a connection is established. This can be +# ## helpful for load balancing when not using a dedicated load balancer. +# brokers = ["amqp://localhost:5672/influxdb"] +# +# ## Authentication credentials for the PLAIN auth_method. +# # username = "" +# # password = "" +# +# ## Name of the exchange to declare. If unset, no exchange will be declared. +# exchange = "telegraf" +# +# ## Exchange type; common types are "direct", "fanout", "topic", "header", "x-consistent-hash". +# # exchange_type = "topic" +# +# ## If true, exchange will be passively declared. +# # exchange_passive = false +# +# ## Exchange durability can be either "transient" or "durable". +# # exchange_durability = "durable" +# +# ## Additional exchange arguments. +# # exchange_arguments = { } +# # exchange_arguments = {"hash_propery" = "timestamp"} +# +# ## AMQP queue name. +# queue = "telegraf" +# +# ## AMQP queue durability can be "transient" or "durable". +# queue_durability = "durable" +# +# ## If true, queue will be passively declared. +# # queue_passive = false +# +# ## A binding between the exchange and queue using this binding key is +# ## created. If unset, no binding is created. +# binding_key = "#" +# +# ## Maximum number of messages server should give to the worker. +# # prefetch_count = 50 +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Auth method. PLAIN and EXTERNAL are supported +# ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as +# ## described here: https://www.rabbitmq.com/plugins.html +# # auth_method = "PLAIN" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Content encoding for message payloads, can be set to "gzip" to or +# ## "identity" to apply no encoding. +# # content_encoding = "identity" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read Cassandra metrics through Jolokia +# [[inputs.cassandra]] +# ## DEPRECATED: The cassandra plugin has been deprecated. Please use the +# ## jolokia2 plugin instead. +# ## +# ## see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2 +# +# context = "/jolokia/read" +# ## List of cassandra servers exposing jolokia read service +# servers = ["myuser:mypassword@10.10.10.1:8778","10.10.10.2:8778",":8778"] +# ## List of metrics collected on above servers +# ## Each metric consists of a jmx path. +# ## This will collect all heap memory usage metrics from the jvm and +# ## ReadLatency metrics for all keyspaces and tables. +# ## "type=Table" in the query works with Cassandra3.0. Older versions might +# ## need to use "type=ColumnFamily" +# metrics = [ +# "/java.lang:type=Memory/HeapMemoryUsage", +# "/org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadLatency" +# ] + + +# # Cisco GNMI telemetry input plugin based on GNMI telemetry data produced in IOS XR +# [[inputs.cisco_telemetry_gnmi]] +# ## Address and port of the GNMI GRPC server +# addresses = ["10.49.234.114:57777"] +# +# ## define credentials +# username = "cisco" +# password = "cisco" +# +# ## GNMI encoding requested (one of: "proto", "json", "json_ietf") +# # encoding = "proto" +# +# ## redial in case of failures after +# redial = "10s" +# +# ## enable client-side TLS and define CA to authenticate the device +# # enable_tls = true +# # tls_ca = "/etc/telegraf/ca.pem" +# # insecure_skip_verify = true +# +# ## define client-side TLS certificate & key to authenticate to the device +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## GNMI subscription prefix (optional, can usually be left empty) +# ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths +# # origin = "" +# # prefix = "" +# # target = "" +# +# ## Define additional aliases to map telemetry encoding paths to simple measurement names +# #[inputs.cisco_telemetry_gnmi.aliases] +# # ifcounters = "openconfig:/interfaces/interface/state/counters" +# +# [[inputs.cisco_telemetry_gnmi.subscription]] +# ## Name of the measurement that will be emitted +# name = "ifcounters" +# +# ## Origin and path of the subscription +# ## See: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md#222-paths +# ## +# ## origin usually refers to a (YANG) data model implemented by the device +# ## and path to a specific substructe inside it that should be subscribed to (similar to an XPath) +# ## YANG models can be found e.g. here: https://github.com/YangModels/yang/tree/master/vendor/cisco/xr +# origin = "openconfig-interfaces" +# path = "/interfaces/interface/state/counters" +# +# # Subscription mode (one of: "target_defined", "sample", "on_change") and interval +# subscription_mode = "sample" +# sample_interval = "10s" +# +# ## Suppress redundant transmissions when measured values are unchanged +# # suppress_redundant = false +# +# ## If suppression is enabled, send updates at least every X seconds anyway +# # heartbeat_interval = "60s" + + +# # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms +# [[inputs.cisco_telemetry_mdt]] +# ## Telemetry transport can be "tcp" or "grpc". TLS is only supported when +# ## using the grpc transport. +# transport = "grpc" +# +# ## Address and port to host telemetry listener +# service_address = ":57000" +# +# ## Enable TLS; grpc transport only. +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## Enable TLS client authentication and define allowed CA certificates; grpc +# ## transport only. +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Define (for certain nested telemetry measurements with embedded tags) which fields are tags +# # embedded_tags = ["Cisco-IOS-XR-qos-ma-oper:qos/interface-table/interface/input/service-policy-names/service-policy-instance/statistics/class-stats/class-name"] +# +# ## Define aliases to map telemetry encoding paths to simple measurement names +# [inputs.cisco_telemetry_mdt.aliases] +# ifstats = "ietf-interfaces:interfaces-state/interface/statistics" + + +# # Read metrics from Google PubSub +# [[inputs.cloud_pubsub]] +# ## Required. Name of Google Cloud Platform (GCP) Project that owns +# ## the given PubSub subscription. +# project = "my-project" +# +# ## Required. Name of PubSub subscription to ingest metrics from. +# subscription = "my-subscription" +# +# ## Required. Data format to consume. +# ## Each data format has its own unique set of configuration options. +# ## Read more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" +# +# ## Optional. Filepath for GCP credentials JSON file to authorize calls to +# ## PubSub APIs. If not set explicitly, Telegraf will attempt to use +# ## Application Default Credentials, which is preferred. +# # credentials_file = "path/to/my/creds.json" +# +# ## Optional. Number of seconds to wait before attempting to restart the +# ## PubSub subscription receiver after an unexpected error. +# ## If the streaming pull for a PubSub Subscription fails (receiver), +# ## the agent attempts to restart receiving messages after this many seconds. +# # retry_delay_seconds = 5 +# +# ## Optional. Maximum byte length of a message to consume. +# ## Larger messages are dropped with an error. If less than 0 or unspecified, +# ## treated as no limit. +# # max_message_len = 1000000 +# +# ## Optional. Maximum messages to read from PubSub that have not been written +# ## to an output. Defaults to 1000. +# ## For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message contains 10 metrics and the output +# ## metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## The following are optional Subscription ReceiveSettings in PubSub. +# ## Read more about these values: +# ## https://godoc.org/cloud.google.com/go/pubsub#ReceiveSettings +# +# ## Optional. Maximum number of seconds for which a PubSub subscription +# ## should auto-extend the PubSub ACK deadline for each message. If less than +# ## 0, auto-extension is disabled. +# # max_extension = 0 +# +# ## Optional. Maximum number of unprocessed messages in PubSub +# ## (unacknowledged but not yet expired in PubSub). +# ## A value of 0 is treated as the default PubSub value. +# ## Negative values will be treated as unlimited. +# # max_outstanding_messages = 0 +# +# ## Optional. Maximum size in bytes of unprocessed messages in PubSub +# ## (unacknowledged but not yet expired in PubSub). +# ## A value of 0 is treated as the default PubSub value. +# ## Negative values will be treated as unlimited. +# # max_outstanding_bytes = 0 +# +# ## Optional. Max number of goroutines a PubSub Subscription receiver can spawn +# ## to pull messages from PubSub concurrently. This limit applies to each +# ## subscription separately and is treated as the PubSub default if less than +# ## 1. Note this setting does not limit the number of messages that can be +# ## processed concurrently (use "max_outstanding_messages" instead). +# # max_receiver_go_routines = 0 +# +# ## Optional. If true, Telegraf will attempt to base64 decode the +# ## PubSub message data before parsing +# # base64_data = false + + +# # Google Cloud Pub/Sub Push HTTP listener +# [[inputs.cloud_pubsub_push]] +# ## Address and port to host HTTP listener on +# service_address = ":8080" +# +# ## Application secret to verify messages originate from Cloud Pub/Sub +# # token = "" +# +# ## Path to listen to. +# # path = "/" +# +# ## Maximum duration before timing out read of the request +# # read_timeout = "10s" +# ## Maximum duration before timing out write of the response. This should be set to a value +# ## large enough that you can send at least 'metric_batch_size' number of messages within the +# ## duration. +# # write_timeout = "10s" +# +# ## Maximum allowed http request body size in bytes. +# ## 0 means to use the default of 524,288,00 bytes (500 mebibytes) +# # max_body_size = "500MB" +# +# ## Whether to add the pubsub metadata, such as message attributes and subscription as a tag. +# # add_meta = false +# +# ## Optional. Maximum messages to read from PubSub that have not been written +# ## to an output. Defaults to 1000. +# ## For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message contains 10 metrics and the output +# ## metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Set one or more allowed client CA certificate file names to +# ## enable mutually authenticated TLS connections +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Add service certificate and key +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read logging output from the Docker engine +# [[inputs.docker_log]] +# ## Docker Endpoint +# ## To use TCP, set endpoint = "tcp://[ip]:[port]" +# ## To use environment variables (ie, docker-machine), set endpoint = "ENV" +# # endpoint = "unix:///var/run/docker.sock" +# +# ## When true, container logs are read from the beginning; otherwise +# ## reading begins at the end of the log. +# # from_beginning = false +# +# ## Timeout for Docker API calls. +# # timeout = "5s" +# +# ## Containers to include and exclude. Globs accepted. +# ## Note that an empty array for both will include all containers +# # container_name_include = [] +# # container_name_exclude = [] +# +# ## Container states to include and exclude. Globs accepted. +# ## When empty only containers in the "running" state will be captured. +# # container_state_include = [] +# # container_state_exclude = [] +# +# ## docker labels to include and exclude as tags. Globs accepted. +# ## Note that an empty array for both will include all labels as tags +# # docker_label_include = [] +# # docker_label_exclude = [] +# +# ## Set the source tag for the metrics to the container ID hostname, eg first 12 chars +# source_tag = false +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Influx HTTP write listener +# [[inputs.http_listener]] +# ## Address and port to host HTTP listener on +# service_address = ":8186" +# +# ## maximum duration before timing out read of the request +# read_timeout = "10s" +# ## maximum duration before timing out write of the response +# write_timeout = "10s" +# +# ## Maximum allowed http request body size in bytes. +# ## 0 means to use the default of 524,288,000 bytes (500 mebibytes) +# max_body_size = "500MiB" +# +# ## Maximum line size allowed to be sent in bytes. +# ## 0 means to use the default of 65536 bytes (64 kibibytes) +# max_line_size = "64KiB" +# +# +# ## Optional tag name used to store the database. +# ## If the write has a database in the query string then it will be kept in this tag name. +# ## This tag can be used in downstream outputs. +# ## The default value of nothing means it will be off and the database will not be recorded. +# # database_tag = "" +# +# ## Set one or more allowed client CA certificate file names to +# ## enable mutually authenticated TLS connections +# tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Add service certificate and key +# tls_cert = "/etc/telegraf/cert.pem" +# tls_key = "/etc/telegraf/key.pem" +# +# ## Optional username and password to accept for HTTP basic authentication. +# ## You probably want to make sure you have TLS configured above for this. +# # basic_username = "foobar" +# # basic_password = "barfoo" + + +# # Generic HTTP write listener +# [[inputs.http_listener_v2]] +# ## Address and port to host HTTP listener on +# service_address = ":8080" +# +# ## Path to listen to. +# # path = "/telegraf" +# +# ## HTTP methods to accept. +# # methods = ["POST", "PUT"] +# +# ## maximum duration before timing out read of the request +# # read_timeout = "10s" +# ## maximum duration before timing out write of the response +# # write_timeout = "10s" +# +# ## Maximum allowed http request body size in bytes. +# ## 0 means to use the default of 524,288,00 bytes (500 mebibytes) +# # max_body_size = "500MB" +# +# ## Part of the request to consume. Available options are "body" and +# ## "query". +# # data_source = "body" +# +# ## Set one or more allowed client CA certificate file names to +# ## enable mutually authenticated TLS connections +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Add service certificate and key +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## Optional username and password to accept for HTTP basic authentication. +# ## You probably want to make sure you have TLS configured above for this. +# # basic_username = "foobar" +# # basic_password = "barfoo" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Influx HTTP write listener +# [[inputs.influxdb_listener]] +# ## Address and port to host HTTP listener on +# service_address = ":8186" +# +# ## maximum duration before timing out read of the request +# read_timeout = "10s" +# ## maximum duration before timing out write of the response +# write_timeout = "10s" +# +# ## Maximum allowed http request body size in bytes. +# ## 0 means to use the default of 524,288,000 bytes (500 mebibytes) +# max_body_size = "500MiB" +# +# ## Maximum line size allowed to be sent in bytes. +# ## 0 means to use the default of 65536 bytes (64 kibibytes) +# max_line_size = "64KiB" +# +# +# ## Optional tag name used to store the database. +# ## If the write has a database in the query string then it will be kept in this tag name. +# ## This tag can be used in downstream outputs. +# ## The default value of nothing means it will be off and the database will not be recorded. +# # database_tag = "" +# +# ## Set one or more allowed client CA certificate file names to +# ## enable mutually authenticated TLS connections +# tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Add service certificate and key +# tls_cert = "/etc/telegraf/cert.pem" +# tls_key = "/etc/telegraf/key.pem" +# +# ## Optional username and password to accept for HTTP basic authentication. +# ## You probably want to make sure you have TLS configured above for this. +# # basic_username = "foobar" +# # basic_password = "barfoo" + + +# # Read JTI OpenConfig Telemetry from listed sensors +# [[inputs.jti_openconfig_telemetry]] +# ## List of device addresses to collect telemetry from +# servers = ["localhost:1883"] +# +# ## Authentication details. Username and password are must if device expects +# ## authentication. Client ID must be unique when connecting from multiple instances +# ## of telegraf to the same device +# username = "user" +# password = "pass" +# client_id = "telegraf" +# +# ## Frequency to get data +# sample_frequency = "1000ms" +# +# ## Sensors to subscribe for +# ## A identifier for each sensor can be provided in path by separating with space +# ## Else sensor path will be used as identifier +# ## When identifier is used, we can provide a list of space separated sensors. +# ## A single subscription will be created with all these sensors and data will +# ## be saved to measurement with this identifier name +# sensors = [ +# "/interfaces/", +# "collection /components/ /lldp", +# ] +# +# ## We allow specifying sensor group level reporting rate. To do this, specify the +# ## reporting rate in Duration at the beginning of sensor paths / collection +# ## name. For entries without reporting rate, we use configured sample frequency +# sensors = [ +# "1000ms customReporting /interfaces /lldp", +# "2000ms collection /components", +# "/interfaces", +# ] +# +# ## Optional TLS Config +# # enable_tls = true +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Delay between retry attempts of failed RPC calls or streams. Defaults to 1000ms. +# ## Failed streams/calls will not be retried if 0 is provided +# retry_delay = "1000ms" +# +# ## To treat all string values as tags, set this to true +# str_as_tags = false + + +# # Read metrics from Kafka topics +# [[inputs.kafka_consumer]] +# ## Kafka brokers. +# brokers = ["localhost:9092"] +# +# ## Topics to consume. +# topics = ["telegraf"] +# +# ## When set this tag will be added to all metrics with the topic as the value. +# # topic_tag = "" +# +# ## Optional Client id +# # client_id = "Telegraf" +# +# ## Set the minimal supported Kafka version. Setting this enables the use of new +# ## Kafka features and APIs. Must be 0.10.2.0 or greater. +# ## ex: version = "1.1.0" +# # version = "" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Optional SASL Config +# # sasl_username = "kafka" +# # sasl_password = "secret" +# +# ## Name of the consumer group. +# # consumer_group = "telegraf_metrics_consumers" +# +# ## Initial offset position; one of "oldest" or "newest". +# # offset = "oldest" +# +# ## Consumer group partition assignment strategy; one of "range", "roundrobin" or "sticky". +# # balance_strategy = "range" +# +# ## Maximum length of a message to consume, in bytes (default 0/unlimited); +# ## larger messages are dropped +# max_message_len = 1000000 +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read metrics from Kafka topic(s) +# [[inputs.kafka_consumer_legacy]] +# ## topic(s) to consume +# topics = ["telegraf"] +# +# ## an array of Zookeeper connection strings +# zookeeper_peers = ["localhost:2181"] +# +# ## Zookeeper Chroot +# zookeeper_chroot = "" +# +# ## the name of the consumer group +# consumer_group = "telegraf_metrics_consumers" +# +# ## Offset (must be either "oldest" or "newest") +# offset = "oldest" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" +# +# ## Maximum length of a message to consume, in bytes (default 0/unlimited); +# ## larger messages are dropped +# max_message_len = 65536 + + +# # Configuration for the AWS Kinesis input. +# [[inputs.kinesis_consumer]] +# ## Amazon REGION of kinesis endpoint. +# region = "ap-southeast-2" +# +# ## Amazon Credentials +# ## Credentials are loaded in the following order +# ## 1) Assumed credentials via STS if role_arn is specified +# ## 2) explicit credentials from 'access_key' and 'secret_key' +# ## 3) shared profile from 'profile' +# ## 4) environment variables +# ## 5) shared credentials file +# ## 6) EC2 Instance Profile +# # access_key = "" +# # secret_key = "" +# # token = "" +# # role_arn = "" +# # profile = "" +# # shared_credential_file = "" +# +# ## Endpoint to make request against, the correct endpoint is automatically +# ## determined and this option should only be set if you wish to override the +# ## default. +# ## ex: endpoint_url = "http://localhost:8000" +# # endpoint_url = "" +# +# ## Kinesis StreamName must exist prior to starting telegraf. +# streamname = "StreamName" +# +# ## Shard iterator type (only 'TRIM_HORIZON' and 'LATEST' currently supported) +# # shard_iterator_type = "TRIM_HORIZON" +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" +# +# ## Optional +# ## Configuration for a dynamodb checkpoint +# [inputs.kinesis_consumer.checkpoint_dynamodb] +# ## unique name for this consumer +# app_name = "default" +# table_name = "default" + + +# # Stream and parse log file(s). +# [[inputs.logparser]] +# ## Log files to parse. +# ## These accept standard unix glob matching rules, but with the addition of +# ## ** as a "super asterisk". ie: +# ## /var/log/**.log -> recursively find all .log files in /var/log +# ## /var/log/*/*.log -> find all .log files with a parent dir in /var/log +# ## /var/log/apache.log -> only tail the apache log file +# files = ["/var/log/apache/access.log"] +# +# ## Read files that currently exist from the beginning. Files that are created +# ## while telegraf is running (and that match the "files" globs) will always +# ## be read from the beginning. +# from_beginning = false +# +# ## Method used to watch for file updates. Can be either "inotify" or "poll". +# # watch_method = "inotify" +# +# ## Parse logstash-style "grok" patterns: +# [inputs.logparser.grok] +# ## This is a list of patterns to check the given log file(s) for. +# ## Note that adding patterns here increases processing time. The most +# ## efficient configuration is to have one pattern per logparser. +# ## Other common built-in patterns are: +# ## %{COMMON_LOG_FORMAT} (plain apache & nginx access logs) +# ## %{COMBINED_LOG_FORMAT} (access logs + referrer & agent) +# patterns = ["%{COMBINED_LOG_FORMAT}"] +# +# ## Name of the outputted measurement name. +# measurement = "apache_access_log" +# +# ## Full path(s) to custom pattern files. +# custom_pattern_files = [] +# +# ## Custom patterns can also be defined here. Put one pattern per line. +# custom_patterns = ''' +# ''' +# +# ## Timezone allows you to provide an override for timestamps that +# ## don't already include an offset +# ## e.g. 04/06/2016 12:41:45 data one two 5.43µs +# ## +# ## Default: "" which renders UTC +# ## Options are as follows: +# ## 1. Local -- interpret based on machine localtime +# ## 2. "Canada/Eastern" -- Unix TZ values like those found in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones +# ## 3. UTC -- or blank/unspecified, will return timestamp in UTC +# # timezone = "Canada/Eastern" +# +# ## When set to "disable", timestamp will not incremented if there is a +# ## duplicate. +# # unique_timestamp = "auto" + + +# # Read metrics from MQTT topic(s) + [[inputs.mqtt_consumer]] +# ## MQTT broker URLs to be used. The format should be scheme://host:port, +# ## schema can be tcp, ssl, or ws. + servers = ["tcp://mosquitto:1883"] +# +# ## Topics that will be subscribed to. + topics = [ + "iescelia/#" + ] +# +# ## The message topic will be stored in a tag specified by this value. If set +# ## to the empty string no topic tag will be created. +# # topic_tag = "topic" +# +# ## QoS policy for messages +# ## 0 = at most once +# ## 1 = at least once +# ## 2 = exactly once +# ## +# ## When using a QoS of 1 or 2, you should enable persistent_session to allow +# ## resuming unacknowledged messages. +# # qos = 0 +# +# ## Connection timeout for initial connection in seconds +# # connection_timeout = "30s" +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Persistent session disables clearing of the client session on connection. +# ## In order for this option to work you must also set client_id to identify +# ## the client. To receive messages that arrived while the client is offline, +# ## also set the qos option to 1 or 2 and don't forget to also set the QoS when +# ## publishing. +# # persistent_session = false +# +# ## If unset, a random client ID will be generated. +# # client_id = "" +# +# ## Username and password to connect MQTT server. +# # username = "telegraf" +# # password = "metricsmetricsmetricsmetrics" +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md + #data_format = "influx" + data_format = "value" + data_type = "float" + + +# # Read metrics from NATS subject(s) +# [[inputs.nats_consumer]] +# ## urls of NATS servers +# servers = ["nats://localhost:4222"] +# +# ## subject(s) to consume +# subjects = ["telegraf"] +# +# ## name a queue group +# queue_group = "telegraf_consumers" +# +# ## Optional credentials +# # username = "" +# # password = "" +# +# ## Use Transport Layer Security +# # secure = false +# +# ## Optional TLS Config +# # tls_ca = "/etc/telegraf/ca.pem" +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false +# +# ## Sets the limits for pending msgs and bytes for each subscription +# ## These shouldn't need to be adjusted except in very high throughput scenarios +# # pending_message_limit = 65536 +# # pending_bytes_limit = 67108864 +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read NSQ topic for metrics. +# [[inputs.nsq_consumer]] +# ## Server option still works but is deprecated, we just prepend it to the nsqd array. +# # server = "localhost:4150" +# +# ## An array representing the NSQD TCP HTTP Endpoints +# nsqd = ["localhost:4150"] +# +# ## An array representing the NSQLookupd HTTP Endpoints +# nsqlookupd = ["localhost:4161"] +# topic = "telegraf" +# channel = "consumer" +# max_in_flight = 100 +# +# ## Maximum messages to read from the broker that have not been written by an +# ## output. For best throughput set based on the number of metrics within +# ## each message and the size of the output's metric_batch_size. +# ## +# ## For example, if each message from the queue contains 10 metrics and the +# ## output metric_batch_size is 1000, setting this to 100 will ensure that a +# ## full batch is collected and the write is triggered immediately without +# ## waiting until the next flush_interval. +# # max_undelivered_messages = 1000 +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Read metrics from one or many pgbouncer servers +# [[inputs.pgbouncer]] +# ## specify address via a url matching: +# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ +# ## ?sslmode=[disable|verify-ca|verify-full] +# ## or a simple string: +# ## host=localhost user=pqotest password=... sslmode=... dbname=app_production +# ## +# ## All connection parameters are optional. +# ## +# address = "host=localhost user=pgbouncer sslmode=disable" + + +# # Read metrics from one or many postgresql servers +# [[inputs.postgresql]] +# ## specify address via a url matching: +# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ +# ## ?sslmode=[disable|verify-ca|verify-full] +# ## or a simple string: +# ## host=localhost user=pqotest password=... sslmode=... dbname=app_production +# ## +# ## All connection parameters are optional. +# ## +# ## Without the dbname parameter, the driver will default to a database +# ## with the same name as the user. This dbname is just for instantiating a +# ## connection with the server and doesn't restrict the databases we are trying +# ## to grab metrics for. +# ## +# address = "host=localhost user=postgres sslmode=disable" +# ## A custom name for the database that will be used as the "server" tag in the +# ## measurement output. If not specified, a default one generated from +# ## the connection address is used. +# # outputaddress = "db01" +# +# ## connection configuration. +# ## maxlifetime - specify the maximum lifetime of a connection. +# ## default is forever (0s) +# max_lifetime = "0s" +# +# ## A list of databases to explicitly ignore. If not specified, metrics for all +# ## databases are gathered. Do NOT use with the 'databases' option. +# # ignored_databases = ["postgres", "template0", "template1"] +# +# ## A list of databases to pull metrics about. If not specified, metrics for all +# ## databases are gathered. Do NOT use with the 'ignored_databases' option. +# # databases = ["app_production", "testing"] + + +# # Read metrics from one or many postgresql servers +# [[inputs.postgresql_extensible]] +# ## specify address via a url matching: +# ## postgres://[pqgotest[:password]]@localhost[/dbname]\ +# ## ?sslmode=[disable|verify-ca|verify-full] +# ## or a simple string: +# ## host=localhost user=pqotest password=... sslmode=... dbname=app_production +# # +# ## All connection parameters are optional. # +# ## Without the dbname parameter, the driver will default to a database +# ## with the same name as the user. This dbname is just for instantiating a +# ## connection with the server and doesn't restrict the databases we are trying +# ## to grab metrics for. +# # +# address = "host=localhost user=postgres sslmode=disable" +# +# ## connection configuration. +# ## maxlifetime - specify the maximum lifetime of a connection. +# ## default is forever (0s) +# max_lifetime = "0s" +# +# ## A list of databases to pull metrics about. If not specified, metrics for all +# ## databases are gathered. +# ## databases = ["app_production", "testing"] +# # +# ## A custom name for the database that will be used as the "server" tag in the +# ## measurement output. If not specified, a default one generated from +# ## the connection address is used. +# # outputaddress = "db01" +# # +# ## Define the toml config where the sql queries are stored +# ## New queries can be added, if the withdbname is set to true and there is no +# ## databases defined in the 'databases field', the sql query is ended by a +# ## 'is not null' in order to make the query succeed. +# ## Example : +# ## The sqlquery : "SELECT * FROM pg_stat_database where datname" become +# ## "SELECT * FROM pg_stat_database where datname IN ('postgres', 'pgbench')" +# ## because the databases variable was set to ['postgres', 'pgbench' ] and the +# ## withdbname was true. Be careful that if the withdbname is set to false you +# ## don't have to define the where clause (aka with the dbname) the tagvalue +# ## field is used to define custom tags (separated by commas) +# ## The optional "measurement" value can be used to override the default +# ## output measurement name ("postgresql"). +# ## +# ## The script option can be used to specify the .sql file path. +# ## If script and sqlquery options specified at same time, sqlquery will be used +# ## +# ## Structure : +# ## [[inputs.postgresql_extensible.query]] +# ## sqlquery string +# ## version string +# ## withdbname boolean +# ## tagvalue string (comma separated) +# ## measurement string +# [[inputs.postgresql_extensible.query]] +# sqlquery="SELECT * FROM pg_stat_database" +# version=901 +# withdbname=false +# tagvalue="" +# measurement="" +# [[inputs.postgresql_extensible.query]] +# sqlquery="SELECT * FROM pg_stat_bgwriter" +# version=901 +# withdbname=false +# tagvalue="postgresql.stats" + + +# # Read metrics from one or many prometheus clients +# [[inputs.prometheus]] +# ## An array of urls to scrape metrics from. +# urls = ["http://localhost:9100/metrics"] +# +# ## Metric version controls the mapping from Prometheus metrics into +# ## Telegraf metrics. When using the prometheus_client output, use the same +# ## value in both plugins to ensure metrics are round-tripped without +# ## modification. +# ## +# ## example: metric_version = 1; deprecated in 1.13 +# ## metric_version = 2; recommended version +# # metric_version = 1 +# +# ## Url tag name (tag containing scrapped url. optional, default is "url") +# # url_tag = "scrapeUrl" +# +# ## An array of Kubernetes services to scrape metrics from. +# # kubernetes_services = ["http://my-service-dns.my-namespace:9100/metrics"] +# +# ## Kubernetes config file to create client from. +# # kube_config = "/path/to/kubernetes.config" +# +# ## Scrape Kubernetes pods for the following prometheus annotations: +# ## - prometheus.io/scrape: Enable scraping for this pod +# ## - prometheus.io/scheme: If the metrics endpoint is secured then you will need to +# ## set this to 'https' & most likely set the tls config. +# ## - prometheus.io/path: If the metrics path is not /metrics, define it with this annotation. +# ## - prometheus.io/port: If port is not 9102 use this annotation +# # monitor_kubernetes_pods = true +# ## Restricts Kubernetes monitoring to a single namespace +# ## ex: monitor_kubernetes_pods_namespace = "default" +# # monitor_kubernetes_pods_namespace = "" +# +# ## Use bearer token for authorization. ('bearer_token' takes priority) +# # bearer_token = "/path/to/bearer/token" +# ## OR +# # bearer_token_string = "abc_123" +# +# ## HTTP Basic Authentication username and password. ('bearer_token' and +# ## 'bearer_token_string' take priority) +# # username = "" +# # password = "" +# +# ## Specify timeout duration for slower prometheus clients (default is 3s) +# # response_timeout = "3s" +# +# ## Optional TLS Config +# # tls_ca = /path/to/cafile +# # tls_cert = /path/to/certfile +# # tls_key = /path/to/keyfile +# ## Use TLS but skip chain & host verification +# # insecure_skip_verify = false + + +# # Receive SNMP traps +# [[inputs.snmp_trap]] +# ## Transport, local address, and port to listen on. Transport must +# ## be "udp://". Omit local address to listen on all interfaces. +# ## example: "udp://127.0.0.1:1234" +# ## +# ## Special permissions may be required to listen on a port less than +# ## 1024. See README.md for details +# ## +# # service_address = "udp://:162" +# ## Timeout running snmptranslate command +# # timeout = "5s" + + +# # Generic socket listener capable of handling multiple socket types. +# [[inputs.socket_listener]] +# ## URL to listen on +# # service_address = "tcp://:8094" +# # service_address = "tcp://127.0.0.1:http" +# # service_address = "tcp4://:8094" +# # service_address = "tcp6://:8094" +# # service_address = "tcp6://[2001:db8::1]:8094" +# # service_address = "udp://:8094" +# # service_address = "udp4://:8094" +# # service_address = "udp6://:8094" +# # service_address = "unix:///tmp/telegraf.sock" +# # service_address = "unixgram:///tmp/telegraf.sock" +# +# ## Change the file mode bits on unix sockets. These permissions may not be +# ## respected by some platforms, to safely restrict write permissions it is best +# ## to place the socket into a directory that has previously been created +# ## with the desired permissions. +# ## ex: socket_mode = "777" +# # socket_mode = "" +# +# ## Maximum number of concurrent connections. +# ## Only applies to stream sockets (e.g. TCP). +# ## 0 (default) is unlimited. +# # max_connections = 1024 +# +# ## Read timeout. +# ## Only applies to stream sockets (e.g. TCP). +# ## 0 (default) is unlimited. +# # read_timeout = "30s" +# +# ## Optional TLS configuration. +# ## Only applies to stream sockets (e.g. TCP). +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# ## Enables client authentication if set. +# # tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"] +# +# ## Maximum socket buffer size (in bytes when no unit specified). +# ## For stream sockets, once the buffer fills up, the sender will start backing up. +# ## For datagram sockets, once the buffer fills up, metrics will start dropping. +# ## Defaults to the OS default. +# # read_buffer_size = "64KiB" +# +# ## Period between keep alive probes. +# ## Only applies to TCP sockets. +# ## 0 disables keep alive probes. +# ## Defaults to the OS configuration. +# # keep_alive_period = "5m" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# # data_format = "influx" +# +# ## Content encoding for message payloads, can be set to "gzip" to or +# ## "identity" to apply no encoding. +# # content_encoding = "identity" + + +# # Statsd UDP/TCP Server +# [[inputs.statsd]] +# ## Protocol, must be "tcp", "udp", "udp4" or "udp6" (default=udp) +# protocol = "udp" +# +# ## MaxTCPConnection - applicable when protocol is set to tcp (default=250) +# max_tcp_connections = 250 +# +# ## Enable TCP keep alive probes (default=false) +# tcp_keep_alive = false +# +# ## Specifies the keep-alive period for an active network connection. +# ## Only applies to TCP sockets and will be ignored if tcp_keep_alive is false. +# ## Defaults to the OS configuration. +# # tcp_keep_alive_period = "2h" +# +# ## Address and port to host UDP listener on +# service_address = ":8125" +# +# ## The following configuration options control when telegraf clears it's cache +# ## of previous values. If set to false, then telegraf will only clear it's +# ## cache when the daemon is restarted. +# ## Reset gauges every interval (default=true) +# delete_gauges = true +# ## Reset counters every interval (default=true) +# delete_counters = true +# ## Reset sets every interval (default=true) +# delete_sets = true +# ## Reset timings & histograms every interval (default=true) +# delete_timings = true +# +# ## Percentiles to calculate for timing & histogram stats +# percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0] +# +# ## separator to use between elements of a statsd metric +# metric_separator = "_" +# +# ## Parses tags in the datadog statsd format +# ## http://docs.datadoghq.com/guides/dogstatsd/ +# parse_data_dog_tags = false +# +# ## Parses datadog extensions to the statsd format +# datadog_extensions = false +# +# ## Statsd data translation templates, more info can be read here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/TEMPLATE_PATTERN.md +# # templates = [ +# # "cpu.* measurement*" +# # ] +# +# ## Number of UDP messages allowed to queue up, once filled, +# ## the statsd server will start dropping packets +# allowed_pending_messages = 10000 +# +# ## Number of timing/histogram values to track per-measurement in the +# ## calculation of percentiles. Raising this limit increases the accuracy +# ## of percentiles but also increases the memory usage and cpu time. +# percentile_limit = 1000 + + +# # Suricata stats plugin +# [[inputs.suricata]] +# ## Data sink for Suricata stats log +# # This is expected to be a filename of a +# # unix socket to be created for listening. +# source = "/var/run/suricata-stats.sock" +# +# # Delimiter for flattening field keys, e.g. subitem "alert" of "detect" +# # becomes "detect_alert" when delimiter is "_". +# delimiter = "_" + + +# # Accepts syslog messages following RFC5424 format with transports as per RFC5426, RFC5425, or RFC6587 +# [[inputs.syslog]] +# ## Specify an ip or hostname with port - eg., tcp://localhost:6514, tcp://10.0.0.1:6514 +# ## Protocol, address and port to host the syslog receiver. +# ## If no host is specified, then localhost is used. +# ## If no port is specified, 6514 is used (RFC5425#section-4.1). +# server = "tcp://:6514" +# +# ## TLS Config +# # tls_allowed_cacerts = ["/etc/telegraf/ca.pem"] +# # tls_cert = "/etc/telegraf/cert.pem" +# # tls_key = "/etc/telegraf/key.pem" +# +# ## Period between keep alive probes. +# ## 0 disables keep alive probes. +# ## Defaults to the OS configuration. +# ## Only applies to stream sockets (e.g. TCP). +# # keep_alive_period = "5m" +# +# ## Maximum number of concurrent connections (default = 0). +# ## 0 means unlimited. +# ## Only applies to stream sockets (e.g. TCP). +# # max_connections = 1024 +# +# ## Read timeout is the maximum time allowed for reading a single message (default = 5s). +# ## 0 means unlimited. +# # read_timeout = "5s" +# +# ## The framing technique with which it is expected that messages are transported (default = "octet-counting"). +# ## Whether the messages come using the octect-counting (RFC5425#section-4.3.1, RFC6587#section-3.4.1), +# ## or the non-transparent framing technique (RFC6587#section-3.4.2). +# ## Must be one of "octet-counting", "non-transparent". +# # framing = "octet-counting" +# +# ## The trailer to be expected in case of non-trasparent framing (default = "LF"). +# ## Must be one of "LF", or "NUL". +# # trailer = "LF" +# +# ## Whether to parse in best effort mode or not (default = false). +# ## By default best effort parsing is off. +# # best_effort = false +# +# ## Character to prepend to SD-PARAMs (default = "_"). +# ## A syslog message can contain multiple parameters and multiple identifiers within structured data section. +# ## Eg., [id1 name1="val1" name2="val2"][id2 name1="val1" nameA="valA"] +# ## For each combination a field is created. +# ## Its name is created concatenating identifier, sdparam_separator, and parameter name. +# # sdparam_separator = "_" + + +# # Stream a log file, like the tail -f command +# [[inputs.tail]] +# ## files to tail. +# ## These accept standard unix glob matching rules, but with the addition of +# ## ** as a "super asterisk". ie: +# ## "/var/log/**.log" -> recursively find all .log files in /var/log +# ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log +# ## "/var/log/apache.log" -> just tail the apache log file +# ## +# ## See https://github.com/gobwas/glob for more examples +# ## +# files = ["/var/mymetrics.out"] +# ## Read file from beginning. +# from_beginning = false +# ## Whether file is a named pipe +# pipe = false +# +# ## Method used to watch for file updates. Can be either "inotify" or "poll". +# # watch_method = "inotify" +# +# ## Data format to consume. +# ## Each data format has its own unique set of configuration options, read +# ## more about them here: +# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md +# data_format = "influx" + + +# # Generic TCP listener +# [[inputs.tcp_listener]] +# # DEPRECATED: the TCP listener plugin has been deprecated in favor of the +# # socket_listener plugin +# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener + + +# # Generic UDP listener +# [[inputs.udp_listener]] +# # DEPRECATED: the TCP listener plugin has been deprecated in favor of the +# # socket_listener plugin +# # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener + + +# # Read metrics from VMware vCenter +# [[inputs.vsphere]] +# ## List of vCenter URLs to be monitored. These three lines must be uncommented +# ## and edited for the plugin to work. +# vcenters = [ "https://vcenter.local/sdk" ] +# username = "user@corp.local" +# password = "secret" +# +# ## VMs +# ## Typical VM metrics (if omitted or empty, all metrics are collected) +# vm_metric_include = [ +# "cpu.demand.average", +# "cpu.idle.summation", +# "cpu.latency.average", +# "cpu.readiness.average", +# "cpu.ready.summation", +# "cpu.run.summation", +# "cpu.usagemhz.average", +# "cpu.used.summation", +# "cpu.wait.summation", +# "mem.active.average", +# "mem.granted.average", +# "mem.latency.average", +# "mem.swapin.average", +# "mem.swapinRate.average", +# "mem.swapout.average", +# "mem.swapoutRate.average", +# "mem.usage.average", +# "mem.vmmemctl.average", +# "net.bytesRx.average", +# "net.bytesTx.average", +# "net.droppedRx.summation", +# "net.droppedTx.summation", +# "net.usage.average", +# "power.power.average", +# "virtualDisk.numberReadAveraged.average", +# "virtualDisk.numberWriteAveraged.average", +# "virtualDisk.read.average", +# "virtualDisk.readOIO.latest", +# "virtualDisk.throughput.usage.average", +# "virtualDisk.totalReadLatency.average", +# "virtualDisk.totalWriteLatency.average", +# "virtualDisk.write.average", +# "virtualDisk.writeOIO.latest", +# "sys.uptime.latest", +# ] +# # vm_metric_exclude = [] ## Nothing is excluded by default +# # vm_instances = true ## true by default +# +# ## Hosts +# ## Typical host metrics (if omitted or empty, all metrics are collected) +# host_metric_include = [ +# "cpu.coreUtilization.average", +# "cpu.costop.summation", +# "cpu.demand.average", +# "cpu.idle.summation", +# "cpu.latency.average", +# "cpu.readiness.average", +# "cpu.ready.summation", +# "cpu.swapwait.summation", +# "cpu.usage.average", +# "cpu.usagemhz.average", +# "cpu.used.summation", +# "cpu.utilization.average", +# "cpu.wait.summation", +# "disk.deviceReadLatency.average", +# "disk.deviceWriteLatency.average", +# "disk.kernelReadLatency.average", +# "disk.kernelWriteLatency.average", +# "disk.numberReadAveraged.average", +# "disk.numberWriteAveraged.average", +# "disk.read.average", +# "disk.totalReadLatency.average", +# "disk.totalWriteLatency.average", +# "disk.write.average", +# "mem.active.average", +# "mem.latency.average", +# "mem.state.latest", +# "mem.swapin.average", +# "mem.swapinRate.average", +# "mem.swapout.average", +# "mem.swapoutRate.average", +# "mem.totalCapacity.average", +# "mem.usage.average", +# "mem.vmmemctl.average", +# "net.bytesRx.average", +# "net.bytesTx.average", +# "net.droppedRx.summation", +# "net.droppedTx.summation", +# "net.errorsRx.summation", +# "net.errorsTx.summation", +# "net.usage.average", +# "power.power.average", +# "storageAdapter.numberReadAveraged.average", +# "storageAdapter.numberWriteAveraged.average", +# "storageAdapter.read.average", +# "storageAdapter.write.average", +# "sys.uptime.latest", +# ] +# ## Collect IP addresses? Valid values are "ipv4" and "ipv6" +# # ip_addresses = ["ipv6", "ipv4" ] +# # host_metric_exclude = [] ## Nothing excluded by default +# # host_instances = true ## true by default +# +# ## Clusters +# # cluster_metric_include = [] ## if omitted or empty, all metrics are collected +# # cluster_metric_exclude = [] ## Nothing excluded by default +# # cluster_instances = false ## false by default +# +# ## Datastores +# # datastore_metric_include = [] ## if omitted or empty, all metrics are collected +# # datastore_metric_exclude = [] ## Nothing excluded by default +# # datastore_instances = false ## false by default for Datastores only +# +# ## Datacenters +# datacenter_metric_include = [] ## if omitted or empty, all metrics are collected +# datacenter_metric_exclude = [ "*" ] ## Datacenters are not collected by default. +# # datacenter_instances = false ## false by default for Datastores only +# +# ## Plugin Settings +# ## separator character to use for measurement and field names (default: "_") +# # separator = "_" +# +# ## number of objects to retreive per query for realtime resources (vms and hosts) +# ## set to 64 for vCenter 5.5 and 6.0 (default: 256) +# # max_query_objects = 256 +# +# ## number of metrics to retreive per query for non-realtime resources (clusters and datastores) +# ## set to 64 for vCenter 5.5 and 6.0 (default: 256) +# # max_query_metrics = 256 +# +# ## number of go routines to use for collection and discovery of objects and metrics +# # collect_concurrency = 1 +# # discover_concurrency = 1 +# +# ## whether or not to force discovery of new objects on initial gather call before collecting metrics +# ## when true for large environments this may cause errors for time elapsed while collecting metrics +# ## when false (default) the first collection cycle may result in no or limited metrics while objects are discovered +# # force_discover_on_init = false +# +# ## the interval before (re)discovering objects subject to metrics collection (default: 300s) +# # object_discovery_interval = "300s" +# +# ## timeout applies to any of the api request made to vcenter +# # timeout = "60s" +# +# ## When set to true, all samples are sent as integers. This makes the output +# ## data types backwards compatible with Telegraf 1.9 or lower. Normally all +# ## samples from vCenter, with the exception of percentages, are integer +# ## values, but under some conditions, some averaging takes place internally in +# ## the plugin. Setting this flag to "false" will send values as floats to +# ## preserve the full precision when averaging takes place. +# # use_int_samples = true +# +# ## Custom attributes from vCenter can be very useful for queries in order to slice the +# ## metrics along different dimension and for forming ad-hoc relationships. They are disabled +# ## by default, since they can add a considerable amount of tags to the resulting metrics. To +# ## enable, simply set custom_attribute_exlude to [] (empty set) and use custom_attribute_include +# ## to select the attributes you want to include. +# # custom_attribute_include = [] +# # custom_attribute_exclude = ["*"] +# +# ## Optional SSL Config +# # ssl_ca = "/path/to/cafile" +# # ssl_cert = "/path/to/certfile" +# # ssl_key = "/path/to/keyfile" +# ## Use SSL but skip chain & host verification +# # insecure_skip_verify = false + + +# # A Webhooks Event collector +# [[inputs.webhooks]] +# ## Address and port to host Webhook listener on +# service_address = ":1619" +# +# [inputs.webhooks.filestack] +# path = "/filestack" +# +# [inputs.webhooks.github] +# path = "/github" +# # secret = "" +# +# [inputs.webhooks.mandrill] +# path = "/mandrill" +# +# [inputs.webhooks.rollbar] +# path = "/rollbar" +# +# [inputs.webhooks.papertrail] +# path = "/papertrail" +# +# [inputs.webhooks.particle] +# path = "/particle" + + +# # This plugin implements the Zipkin http server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures. +# [[inputs.zipkin]] +# # path = "/api/v1/spans" # URL path for span data +# # port = 9411 # Port on which Telegraf listens diff --git a/Practica-PHP/apache/Dockerfile b/Practica-PHP/apache/Dockerfile new file mode 100644 index 0000000..7e37b61 --- /dev/null +++ b/Practica-PHP/apache/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Madrid + +RUN apt-get update \ + && apt-get install -y apache2 \ + && apt-get install -y php \ + && apt-get install -y libapache2-mod-php \ + && apt-get install -y php-mysql \ + && rm -rf /var/lib/apt/lists/* + +ENV APACHE_RUN_USER www-data +ENV APACHE_RUN_GROUP www-data +ENV APACHE_LOG_DIR /var/log/apache2 + +EXPOSE 80 + +ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] diff --git a/Practica-PHP/db/database.sql b/Practica-PHP/db/database.sql new file mode 100644 index 0000000..e6cb210 --- /dev/null +++ b/Practica-PHP/db/database.sql @@ -0,0 +1,11 @@ +DROP DATABASE IF EXISTS lamp_db; +CREATE DATABASE lamp_db CHARSET utf8mb4; +USE lamp_db; + +CREATE TABLE users ( + id int(11) NOT NULL auto_increment, + name varchar(100) NOT NULL, + age int(3) NOT NULL, + email varchar(100) NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/Practica-PHP/docker-compose.yml b/Practica-PHP/docker-compose.yml new file mode 100644 index 0000000..5a2de3c --- /dev/null +++ b/Practica-PHP/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3' + +services: + apache: + build: ./apache + ports: + - 80:80 + volumes: + - ./src:/var/www/html + + mysql: + image: mysql:8.0 + ports: + - 3306:3306 + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - mysql_data:/var/lib/mysql + - ./db:/docker-entrypoint-initdb.d + + phpmyadmin: + image: phpmyadmin:5 + ports: + - 8080:80 + environment: + - PMA_HOST=mysql + depends_on: + - mysql + +volumes: + mysql_data: \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.15/Ej_01.php b/Practica-PHP/src/Ej-1.15/Ej_01.php new file mode 100644 index 0000000..e2b4c37 --- /dev/null +++ b/Practica-PHP/src/Ej-1.15/Ej_01.php @@ -0,0 +1,3 @@ + diff --git a/Practica-PHP/src/Ej-1.15/Ej_02.php b/Practica-PHP/src/Ej-1.15/Ej_02.php new file mode 100644 index 0000000..8d42c88 --- /dev/null +++ b/Practica-PHP/src/Ej-1.15/Ej_02.php @@ -0,0 +1,18 @@ +Dirección IP"; +echo $_SERVER['SERVER_ADDR']; + +echo "

        Nombre del Host

        "; +echo $_SERVER['SERVER_NAME']; + +echo "

        Software del Servidor

        "; +echo $_SERVER['SERVER_SOFTWARE']; + +echo "

        Agente Usuario

        "; +echo $_SERVER['HTTP_USER_AGENT']; + +echo "

        Dirección IP del Cliente

        "; +echo $_SERVER['REMOTE_ADDR']; + +?> diff --git a/Practica-PHP/src/Ej-1.15/Ej_03.php b/Practica-PHP/src/Ej-1.15/Ej_03.php new file mode 100644 index 0000000..5d96834 --- /dev/null +++ b/Practica-PHP/src/Ej-1.15/Ej_03.php @@ -0,0 +1,8 @@ +
        +    
        +
        + +
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_01.php b/Practica-PHP/src/Ej-1.16/Ej_01.php
        new file mode 100644
        index 0000000..cf34f07
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_01.php
        @@ -0,0 +1,9 @@
        +";
        +    } else {
        +        echo "CRUZ.";
        +    }
        +?>
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_02.php b/Practica-PHP/src/Ej-1.16/Ej_02.php
        new file mode 100644
        index 0000000..626bc92
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_02.php
        @@ -0,0 +1,20 @@
        +$nota = Insuficiente 😡";
        +    }
        +    if ($nota == 5){
        +        echo "NOTA: $nota = Suficiente 😠";
        +    }
        +    if ($nota == 6){
        +        echo "NOTA: $nota = Bien 😞";
        +    }
        +    if ($nota == 7 || $nota == 8){
        +        echo "NOTA: $nota = Notable 😀";
        +    }
        +    if ($nota == 9 || $nota == 10){
        +        echo "NOTA: $nota = Sobresaliente 😁";
        +    }
        +?>
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_03.php b/Practica-PHP/src/Ej-1.16/Ej_03.php
        new file mode 100644
        index 0000000..4101c60
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_03.php
        @@ -0,0 +1,26 @@
        +LUNES ($dia)";
        +            break;
        +        case 2:
        +            echo "Hoy es MARTES ($dia)";
        +            break;
        +        case 3:
        +            echo "Hoy es MIERCOLES ($dia)";
        +            break;
        +        case 4:
        +            echo "Hoy es JUEVES ($dia)";
        +            break;
        +        case 5:
        +            echo "Hoy es VIERNES ($dia)";
        +            break;
        +        case 6:
        +            echo "Hoy es SABADO ($dia)";
        +            break;
        +        case 7:
        +            echo "Hoy es DOMINGO ($dia)";
        +    }
        +?>
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_04.php b/Practica-PHP/src/Ej-1.16/Ej_04.php
        new file mode 100644
        index 0000000..2577270
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_04.php
        @@ -0,0 +1,17 @@
        +";
        +    } elseif ($dado == 2) {
        +        echo "2";
        +    } elseif ($dado == 3) {
        +        echo "3";
        +    } elseif ($dado == 4) {
        +        echo "4";
        +    } elseif ($dado == 5) {
        +        echo "5";
        +    } elseif ($dado == 6) {
        +        echo "6";
        +    };
        +?>
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_05.php b/Practica-PHP/src/Ej-1.16/Ej_05.php
        new file mode 100644
        index 0000000..77ba276
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_05.php
        @@ -0,0 +1,24 @@
        +";
        +            break;
        +        case 2:
        +            echo "$dado";
        +            break;
        +        case 3:
        +            echo "$dado";
        +            break;
        +        case 4:
        +            echo "$dado";
        +            break;
        +        case 5:
        +            echo "$dado";
        +            break;
        +        case 6:
        +            echo "$dado";
        +            break;
        +    }
        +?>
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_06.php b/Practica-PHP/src/Ej-1.16/Ej_06.php
        new file mode 100644
        index 0000000..69a3e35
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_06.php
        @@ -0,0 +1,3 @@
        +
        diff --git a/Practica-PHP/src/Ej-1.16/Ej_07.php b/Practica-PHP/src/Ej-1.16/Ej_07.php
        new file mode 100644
        index 0000000..9341fb7
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.16/Ej_07.php
        @@ -0,0 +1,32 @@
        +";
        +    } elseif ($dado01 == 2) {
        +        echo "2";
        +    } elseif ($dado01 == 3) {
        +        echo "3";
        +    } elseif ($dado01 == 4) {
        +        echo "4";
        +    } elseif ($dado01 == 5) {
        +        echo "5";
        +    } elseif ($dado01 == 6) {
        +        echo "6";
        +    };
        +
        +    if ($dado02 == 1){
        +        echo "1";
        +    } elseif ($dado02 == 2) {
        +        echo "2";
        +    } elseif ($dado02 == 3) {
        +        echo "3";
        +    } elseif ($dado02 == 4) {
        +        echo "4";
        +    } elseif ($dado02 == 5) {
        +        echo "5";
        +    } elseif ($dado02 == 6) {
        +        echo "6";
        +    };
        +?>
        diff --git a/Practica-PHP/src/Ej-1.17/Ej_01.php b/Practica-PHP/src/Ej-1.17/Ej_01.php
        new file mode 100644
        index 0000000..c771631
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.17/Ej_01.php
        @@ -0,0 +1,12 @@
        +";
        +
        +    for ($i = 1; $i <= 10; $i ++){
        +        echo "";
        +        echo "$i";
        +        echo "";
        +    }
        +    
        +    echo "";
        +?>
        diff --git a/Practica-PHP/src/Ej-1.17/Ej_02.php b/Practica-PHP/src/Ej-1.17/Ej_02.php
        new file mode 100644
        index 0000000..c771631
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.17/Ej_02.php
        @@ -0,0 +1,12 @@
        +";
        +
        +    for ($i = 1; $i <= 10; $i ++){
        +        echo "";
        +        echo "$i";
        +        echo "";
        +    }
        +    
        +    echo "";
        +?>
        diff --git a/Practica-PHP/src/Ej-1.17/Ej_03.php b/Practica-PHP/src/Ej-1.17/Ej_03.php
        new file mode 100644
        index 0000000..5d2e891
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.17/Ej_03.php
        @@ -0,0 +1,13 @@
        +";
        +    echo "";
        +
        +    for ($i = 2; $i <= 100; $i = $i + 2) {
        +        echo "$i";
        +    }
        +
        +    echo "";
        +    echo "";
        +    
        +?>
        diff --git a/Practica-PHP/src/Ej-1.17/Ej_04.php b/Practica-PHP/src/Ej-1.17/Ej_04.php
        new file mode 100644
        index 0000000..cd1acf6
        --- /dev/null
        +++ b/Practica-PHP/src/Ej-1.17/Ej_04.php
        @@ -0,0 +1,21 @@
        +Tabla del: $num";
        +
        +    echo "";
        +
        +    for ($i = 1; $i <= 10; $i ++) {
        +
        +        $res = $num * $i;
        +        echo "";
        +        echo "";
        +        echo "";
        +        echo "";
        +        echo "";
        +        echo "";
        +        echo "";
        +    }
        +    echo "
        $numX$i=$res
        "; +?> diff --git a/Practica-PHP/src/Ej-1.17/Ej_05.php b/Practica-PHP/src/Ej-1.17/Ej_05.php new file mode 100644 index 0000000..8f61693 --- /dev/null +++ b/Practica-PHP/src/Ej-1.17/Ej_05.php @@ -0,0 +1,18 @@ +Tabla del: $num "; + echo ""; + for ($i = 1; $i <= 10; $i ++) { + $res = $num * $i; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + echo "
        $iX$i=$res
        "; + } +?> diff --git a/Practica-PHP/src/Ej-1.17/Ej_06.php b/Practica-PHP/src/Ej-1.17/Ej_06.php new file mode 100644 index 0000000..09764c3 --- /dev/null +++ b/Practica-PHP/src/Ej-1.17/Ej_06.php @@ -0,0 +1,21 @@ +Tabla del: $num "; + echo ""; + $i = 1; + while ($i <= 10) { + $res = $num * $i; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + $i ++; + } + echo ""; + echo "
        $iX$i=$res
        "; + $num ++; + } +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_01.php b/Practica-PHP/src/Ej-1.18/Ej_01.php new file mode 100644 index 0000000..f1dede0 --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_01.php @@ -0,0 +1,13 @@ +"; + } +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_02.php b/Practica-PHP/src/Ej-1.18/Ej_02.php new file mode 100644 index 0000000..158beb3 --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_02.php @@ -0,0 +1,31 @@ +"; + for ($i = 0; $i < 10; $i++ ) { + echo "$temp[$i]"; + } + echo ""; + echo ""; + echo "
        "; + + $total = array_sum($temp) / 10; + echo "Total suma array = ", array_sum($temp); + echo "
        "; + echo "Media del array = $total"; + + $suma = 0; + + for ($i = 0; $i < 10; $i++ ) { + $suma = $suma + $temp[$i]; + } + echo "
        "; + echo $suma; +?> + + diff --git a/Practica-PHP/src/Ej-1.18/Ej_03.php b/Practica-PHP/src/Ej-1.18/Ej_03.php new file mode 100644 index 0000000..4015b2b --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_03.php @@ -0,0 +1,20 @@ +"; + for ($i = 0; $i < 10; $i++ ) { + echo "$temp[$i]"; + } + echo ""; + echo ""; + echo "
        "; + + echo "Valor Máximo del array = ", max($temp); + echo "
        "; + +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_04.php b/Practica-PHP/src/Ej-1.18/Ej_04.php new file mode 100644 index 0000000..d7ca642 --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_04.php @@ -0,0 +1,20 @@ +"; + for ($i = 0; $i < 10; $i++ ) { + echo "$temp[$i]"; + } + echo ""; + echo ""; + echo "
        "; + + echo "Valor Máximo del array = ", min($temp); + echo "
        "; + +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_05.php b/Practica-PHP/src/Ej-1.18/Ej_05.php new file mode 100644 index 0000000..56af83f --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_05.php @@ -0,0 +1,26 @@ +"; + for ($i = 0; $i < 10; $i++ ) { + echo "$temp[$i]"; + } + echo ""; + echo ""; + echo "
        "; + + $total = array_sum($temp) / 10; + + echo "
        "; + echo "Media del array = $total"; + echo "
        "; + echo "Valor Máximo del array = ", max($temp); + echo "
        "; + echo "Valor Minimo del array = ", min($temp); + +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_06.php b/Practica-PHP/src/Ej-1.18/Ej_06.php new file mode 100644 index 0000000..5a84219 --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_06.php @@ -0,0 +1,31 @@ +"; + $i = 0; + while ( $i <= 10 ) { + echo "$temp[$i]"; + $i++; + } + + echo ""; + echo ""; + echo "
        "; + + $total = array_sum($temp) / 10; + + echo "
        "; + echo "Media del array = $total"; + echo "
        "; + echo "Valor Máximo del array = ", max($temp); + echo "
        "; + echo "Valor Minimo del array = ", min($temp); + +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_07.php b/Practica-PHP/src/Ej-1.18/Ej_07.php new file mode 100644 index 0000000..dc6740d --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_07.php @@ -0,0 +1,32 @@ +"; + $i = 0; + do { + echo "$temp[$i]"; + $i++; + } while ( $i <= 10 ); + + echo ""; + echo ""; + echo "
        "; + + $total = array_sum($temp) / 10; + + echo "
        "; + echo "Media del array = $total"; + echo "
        "; + echo "Valor Máximo del array = ", max($temp); + echo "
        "; + echo "Valor Minimo del array = ", min($temp); + +?> diff --git a/Practica-PHP/src/Ej-1.18/Ej_A.php b/Practica-PHP/src/Ej-1.18/Ej_A.php new file mode 100644 index 0000000..8b11d4b --- /dev/null +++ b/Practica-PHP/src/Ej-1.18/Ej_A.php @@ -0,0 +1,38 @@ +"; + for ($i = 0; $i < 10; $i++ ) { + echo "$temp[$i]"; + } + echo ""; + echo ""; + echo "
        "; + + + $maximo = $temp[0]; + $posicion_maximo = 0; + + + for ($i = 1; $i <= 10; $i++) { + if ($temp[$i] > $maximo) { + $maximo = $temp[$i]; + $posicion_maximo = $i; + } + } + + echo "
        "; + echo "Media del array = $total"; + echo "
        "; + echo "Valor Máximo del array = $maximo"; + echo "
        "; + echo "Posicion del Valor Máximo del array = $posicion_maximo"; + echo "
        "; + echo "Valor Minimo del array = ", min($temp); + +?> diff --git a/Practica-PHP/src/Ej-1.19/Ej_01.php b/Practica-PHP/src/Ej-1.19/Ej_01.php new file mode 100644 index 0000000..05faf83 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_01.php @@ -0,0 +1,9 @@ +"; + } +} + +tablaMultiplicar(5); +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_02.php b/Practica-PHP/src/Ej-1.19/Ej_02.php new file mode 100644 index 0000000..191bda2 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_02.php @@ -0,0 +1,15 @@ +"; + for ($j = 1; $j <= 10; $j++) { + echo $i . " x " . $j . " = " . ($i * $j) . "
        "; + } + echo "
        "; + } +} + + +tablasMultiplicarEntre(2, 4); + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_03.php b/Practica-PHP/src/Ej-1.19/Ej_03.php new file mode 100644 index 0000000..1ab4bc9 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_03.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_04.php b/Practica-PHP/src/Ej-1.19/Ej_04.php new file mode 100644 index 0000000..acdb712 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_04.php @@ -0,0 +1,15 @@ + 0) { + return $suma / $cantidad; + } else { + return 0; + } +} +$array_numeros = array(2, 4, 6, 8, 10); +$media = calcular_media($array_numeros); +echo "La media es: " . $media; + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_05.php b/Practica-PHP/src/Ej-1.19/Ej_05.php new file mode 100644 index 0000000..825eecc --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_05.php @@ -0,0 +1,19 @@ + 0) { + $maximo = $array[0]; + for ($i = 1; $i < count($array); $i++) { + if ($array[$i] > $maximo) { + $maximo = $array[$i]; + } + } + return $maximo; + } else { + return null; + } +} +$array_numeros = array(2, 4, 6, 8, 10); +$maximo = calcular_maximo($array_numeros); +echo "El valor máximo es: " . $maximo; + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_06.php b/Practica-PHP/src/Ej-1.19/Ej_06.php new file mode 100644 index 0000000..49dd484 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_06.php @@ -0,0 +1,20 @@ + 0) { + $minimo = $array[0]; + for ($i = 1; $i < count($array); $i++) { + if ($array[$i] < $minimo) { + $minimo = $array[$i]; + } + } + return $minimo; + } else { + return null; + } +} + +$array_numeros = array(2, 4, 6, 8, 10); +$minimo = calcular_minimo($array_numeros); +echo "El valor mínimo es: " . $minimo; + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_07.php b/Practica-PHP/src/Ej-1.19/Ej_07.php new file mode 100644 index 0000000..5cdb0b7 --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_07.php @@ -0,0 +1,14 @@ +"; + echo "PosiciónValor"; + foreach ($array as $posicion => $valor) { + echo "" . $posicion . "" . $valor . ""; + } + echo ""; +} + +$array_numeros = array(2, 4, 6, 8, 10); +imprimir_array($array_numeros); + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.19/Ej_08-A.php b/Practica-PHP/src/Ej-1.19/Ej_08-A.php new file mode 100644 index 0000000..2fcacfc --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_08-A.php @@ -0,0 +1,24 @@ + + +"; + // Llamar a la función calcular_media + $media = calcular_media($arr); + echo "La media es: $media\n"; + echo "
        "; + // Llamar a la función calcular_maximo + $max = calcular_maximo($arr); + echo "El máximo es: $max\n"; + echo "
        "; + // Llamar a la función calcular_minimo + $min = calcular_minimo($arr); + echo "El mínimo es: $min\n"; + echo "
        "; + // Llamar a la función imprimir_array + imprimir_array($arr); +?> diff --git a/Practica-PHP/src/Ej-1.19/Ej_08.php b/Practica-PHP/src/Ej-1.19/Ej_08.php new file mode 100644 index 0000000..bb63dfd --- /dev/null +++ b/Practica-PHP/src/Ej-1.19/Ej_08.php @@ -0,0 +1,55 @@ +"; + } +} + +// Función para imprimir las tablas de multiplicar entre dos números +function tablas_multiplicar($inicio, $fin) { + for ($i = $inicio; $i <= $fin; $i++) { + echo "Tabla de multiplicar del " . $i . ":
        "; + tabla_multiplicar($i); + echo "
        "; + } +} + +// Función para inicializar un array de números enteros entre un mínimo y un máximo +function inicializar_array($numero_de_elementos, $min, $max) { + $array = array(); + for ($i = 0; $i < $numero_de_elementos; $i++) { + $array[$i] = rand($min, $max); + } + return $array; +} + +// Función para calcular la media de los valores de un array +function calcular_media($array) { + $suma = array_sum($array); + $media = $suma / count($array); + return $media; +} + +// Función para calcular el máximo valor de un array +function calcular_maximo($array) { + $maximo = max($array); + return $maximo; +} + +// Función para calcular el mínimo valor de un array +function calcular_minimo($array) { + $minimo = min($array); + return $minimo; +} + +// Función para imprimir un array en una tabla con dos columnas +function imprimir_array($array) { + echo ""; + echo ""; + foreach ($array as $posicion => $valor) { + echo ""; + } + echo "
        PosiciónValor
        " . $posicion . "" . $valor . "
        "; +} +?> diff --git a/Practica-PHP/src/Ej-1.20/Ej_01.php b/Practica-PHP/src/Ej-1.20/Ej_01.php new file mode 100644 index 0000000..f77d37d --- /dev/null +++ b/Practica-PHP/src/Ej-1.20/Ej_01.php @@ -0,0 +1,22 @@ + + + + Formulario GET + + +

        Formulario GET

        +
        + + +

        + +
        + + Tu nombre es: $nombre

        "; + } + ?> + + diff --git a/Practica-PHP/src/Ej-1.20/Ej_02.php b/Practica-PHP/src/Ej-1.20/Ej_02.php new file mode 100644 index 0000000..8c6a093 --- /dev/null +++ b/Practica-PHP/src/Ej-1.20/Ej_02.php @@ -0,0 +1,22 @@ + + + + Formulario POST + + +

        Formulario POST

        +
        + + +

        + +
        + + Tu nombre es: $nombre

        "; + } + ?> + + diff --git a/Practica-PHP/src/Ej-1.20/Ej_03.php b/Practica-PHP/src/Ej-1.20/Ej_03.php new file mode 100644 index 0000000..513122c --- /dev/null +++ b/Practica-PHP/src/Ej-1.20/Ej_03.php @@ -0,0 +1,27 @@ + + + + Tabla de multiplicar + + +

        Tabla de multiplicar

        +
        + + +

        + +
        + + Tabla de multiplicar del $numero:"; + echo ""; + for($i=1; $i<=10; $i++) { + echo ""; + } + echo "
        $numero x $i= " . ($numero * $i) . "
        "; + } + ?> + + diff --git a/Practica-PHP/src/Ej-1.20/Ej_04.php b/Practica-PHP/src/Ej-1.20/Ej_04.php new file mode 100644 index 0000000..2c35f20 --- /dev/null +++ b/Practica-PHP/src/Ej-1.20/Ej_04.php @@ -0,0 +1,52 @@ + + + + Lanzamiento de monedas + + +

        Lanzamiento de monedas

        +
        + + +

        + + +

        + +
        + + "https://www.random.org/coins/faces/60-usd/0001c/obverse.jpg", + "EUR" => "https://www.random.org/coins/faces/60-eur/spain-1euro/obverse.jpg", + "ESP" => "https://www.random.org/coins/faces/60-esp/5ptas/obverse.jpg", + "GBP" => "https://www.random.org/coins/faces/60-gbp/1pound/obverse.jpg", + "CHF" => "https://www.random.org/coins/faces/60-chf/1franc/obverse.jpg" + ); + + if(isset($_GET['cantidad']) && isset($_GET['tipo'])) { + $cantidad = $_GET['cantidad']; + $tipo = $_GET['tipo']; + echo "

        Lanzamiento de $cantidad monedas de $tipo:

        "; + echo "

        Resultado:"; + for($i=1; $i<=$cantidad; $i++) { + if(rand(0, 1) == 1) { + $imagen = $imagenes[$tipo]; + } else { + // Usar la imagen en reversa de la moneda seleccionada + $imagen = str_replace("obverse", "reverse", $imagenes[$tipo]); + } + echo "$tipo "; + } + echo "

        "; + } + ?> + + diff --git a/Practica-PHP/src/Ej-1.21/Ej_01.php b/Practica-PHP/src/Ej-1.21/Ej_01.php new file mode 100644 index 0000000..c817dfd --- /dev/null +++ b/Practica-PHP/src/Ej-1.21/Ej_01.php @@ -0,0 +1,14 @@ + + + + Subir imagen + + +

        Subir imagen

        +
        + + + +
        + + diff --git a/Practica-PHP/src/Ej-1.21/upload.php b/Practica-PHP/src/Ej-1.21/upload.php new file mode 100644 index 0000000..1ea9f4f --- /dev/null +++ b/Practica-PHP/src/Ej-1.21/upload.php @@ -0,0 +1,16 @@ + diff --git a/Practica-PHP/src/Ej-1.22/Ej_01.php b/Practica-PHP/src/Ej-1.22/Ej_01.php new file mode 100644 index 0000000..541ed14 --- /dev/null +++ b/Practica-PHP/src/Ej-1.22/Ej_01.php @@ -0,0 +1,64 @@ +nombre = $nombre; + $this->apellido1 = $apellido1; + $this->apellido2 = $apellido2; + $this->edad = $edad; + } + + public function getNombre() { + return $this->nombre; + } + + public function setNombre($nombre) { + $this->nombre = $nombre; + } + + public function getApellido1() { + return $this->apellido1; + } + + public function setApellido1($apellido1) { + $this->apellido1 = $apellido1; + } + + public function getApellido2() { + return $this->apellido2; + } + + public function setApellido2($apellido2) { + $this->apellido2 = $apellido2; + } + + public function getEdad() { + return $this->edad; + } + + public function setEdad($edad) { + $this->edad = $edad; + } + + public function imprimir() { + echo "Nombre: " . $this->nombre . "
        "; + echo "Apellido 1: " . $this->apellido1 . "
        "; + echo "Apellido 2: " . $this->apellido2 . "
        "; + echo "Edad: " . $this->edad . "
        "; + } + } + +$persona1 = new Persona("Juan", "Pérez", "García", 30); +$persona1->imprimir(); + +echo "
        "; + +$persona2 = new Persona("María", "González", "López", 25); +$persona2->setEdad(26); +$persona2->imprimir(); + +?> \ No newline at end of file diff --git a/Practica-PHP/src/Ej-1.23/Ej_01.php b/Practica-PHP/src/Ej-1.23/Ej_01.php new file mode 100644 index 0000000..5ca7924 --- /dev/null +++ b/Practica-PHP/src/Ej-1.23/Ej_01.php @@ -0,0 +1,38 @@ + + + + Previsión meteorológica + + +

        Previsión meteorológica

        +
        + + + +
        + Previsión meteorológica para $city"; + echo "

        Temperatura: " . $data->main->temp . " °C

        "; + echo "

        Clima: " . $data->weather[0]->description . "

        "; + echo "

        Humedad: " . $data->main->humidity . "%

        "; + echo "

        Velocidad del viento: " . $data->wind->speed . " km/h

        "; + } + ?> +

        En su día profesor cree una web que realiza la misma función que esta, pero más bonita

        + Weather APP Web alejandroalsa.es + + diff --git a/Practica13.1/Ej_01/sg_backend.sh b/Practica13.1/Ej_01/sg_backend.sh new file mode 100755 index 0000000..8d86778 --- /dev/null +++ b/Practica13.1/Ej_01/sg_backend.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +clear + +set -x + +source variables.sh + +export AWS_PAGER="" + +aws ec2 create-security-group \ + --group-name $GROUP_NAME \ + --description "$DESCRIPTION" + + +aws ec2 authorize-security-group-ingress \ + --group-name $GROUP_NAME \ + --protocol $PROTOCOL \ + --port $SSH_PORT \ + --cidr $CIDR + +aws ec2 authorize-security-group-ingress \ + --group-name $GROUP_NAME \ + --protocol $PROTOCOL \ + --port $MYSQL_PORT \ + --cidr $CIDR \ No newline at end of file diff --git a/Practica13.1/Ej_01/variables.sh b/Practica13.1/Ej_01/variables.sh new file mode 100644 index 0000000..cacf440 --- /dev/null +++ b/Practica13.1/Ej_01/variables.sh @@ -0,0 +1,6 @@ +GROUP_NAME=SG-Backend +DESCRIPTION="Grupo de seguridad para maquinas Backend" +PROTOCOL=tcp +SSH_PORT=22 +MYSQL_PORT=3306 +CIDR=0.0.0.0/0 \ No newline at end of file diff --git a/Practica13.1/Ej_02/ec2_red.sh b/Practica13.1/Ej_02/ec2_red.sh new file mode 100755 index 0000000..8e75e33 --- /dev/null +++ b/Practica13.1/Ej_02/ec2_red.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +clear + +set -x + +source variables.sh + +export AWS_PAGER="" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME}]" \ No newline at end of file diff --git a/Practica13.1/Ej_02/variables.sh b/Practica13.1/Ej_02/variables.sh new file mode 100755 index 0000000..430cf09 --- /dev/null +++ b/Practica13.1/Ej_02/variables.sh @@ -0,0 +1,6 @@ +IMAGE_ID=ami-08e637cea2f053dfa +COUNT=1 +INSTANCE_TYPE=t2.micro +KEY_NAME=vockey +INSTANCE_NAME=Backend +SECURITY_GROUP=SG-Backend \ No newline at end of file diff --git a/Practica13.1/Ej_03/delete_ec2_wp.sh b/Practica13.1/Ej_03/delete_ec2_wp.sh new file mode 100755 index 0000000..d3fcd43 --- /dev/null +++ b/Practica13.1/Ej_03/delete_ec2_wp.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +clear + +set -x + +export AWS_PAGER="" + +INSTANCES_ID_LIST=$(aws ec2 describe-instances \ + --filters "Name=tag:Name,Values=iaw-practica-09-*" \ + --query "Reservations[*].Instances[0].InstanceId" \ + --output text) + +aws ec2 terminate-instances \ + --instance-ids $INSTANCES_ID_LIST \ No newline at end of file diff --git a/Practica13.1/Ej_03/ec2_wp.sh b/Practica13.1/Ej_03/ec2_wp.sh new file mode 100755 index 0000000..21c8d7b --- /dev/null +++ b/Practica13.1/Ej_03/ec2_wp.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +clear + +set -x + +source variables.sh + +export AWS_PAGER="" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_NAME_BALANCER \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME_BALANCER}]" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_NAME_FRONTEND_BALANCER \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME_FRONTEND_01}]" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_NAME_FRONTEND_BALANCER \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME_FRONTEND_02}]" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_NAME_BACKEND \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME_BACKEND}]" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_NAME_NFS_SERVER \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME_NFS_SERVER}]" diff --git a/Practica13.1/Ej_03/sg.sh b/Practica13.1/Ej_03/sg.sh new file mode 100755 index 0000000..62d2740 --- /dev/null +++ b/Practica13.1/Ej_03/sg.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +clear + +set -x + +export AWS_PAGER="" + +source variables.sh + +aws ec2 create-security-group \ + --group-name $SECURITY_GROUP_NAME_BALANCER \ + --description "$DESCRIPTION_BALANCER" + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_BALANCER \ + --protocol $PROTOCOL \ + --port $SSH_PORT \ + --cidr $CIDR + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_BALANCER \ + --protocol $PROTOCOL \ + --port $HTTPS_PORT \ + --cidr $CIDR + + aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_BALANCER \ + --protocol $PROTOCOL \ + --port $HTTP_PORT \ + --cidr $CIDR + +aws ec2 create-security-group \ + --group-name $SECURITY_GROUP_NAME_FRONTEND_BALANCER \ + --description "$DESCRIPTION_FRONTEND_BALANCER" + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_FRONTEND_BALANCER \ + --protocol $PROTOCOL \ + --port $SSH_PORT \ + --cidr $CIDR + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_FRONTEND_BALANCER \ + --protocol $PROTOCOL \ + --port $HTTP_PORT \ + --cidr $CIDR + +aws ec2 create-security-group \ + --group-name $SECURITY_GROUP_NAME_BACKEND \ + --description "$DESCRIPTION_BACKEND" + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_BACKEND \ + --protocol $PROTOCOL \ + --port $SSH_PORT \ + --cidr $CIDR + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_BACKEND \ + --protocol $PROTOCOL \ + --port $MYSQL_PORT \ + --cidr $CIDR + +aws ec2 create-security-group \ + --group-name $SECURITY_GROUP_NAME_NFS_SERVER \ + --description "$DESCRIPTION_NFS_SERVER" + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_NFS_SERVER \ + --protocol $PROTOCOL \ + --port $SSH_PORT \ + --cidr $CIDR + +aws ec2 authorize-security-group-ingress \ + --group-name $SECURITY_GROUP_NAME_NFS_SERVER \ + --protocol $PROTOCOL \ + --port $NFS_PORT \ + --cidr $CIDR + +./ec2_wp.sh diff --git a/Practica13.1/Ej_03/variables.sh b/Practica13.1/Ej_03/variables.sh new file mode 100755 index 0000000..6148253 --- /dev/null +++ b/Practica13.1/Ej_03/variables.sh @@ -0,0 +1,34 @@ +PROTOCOL=tcp +SSH_PORT=22 +HTTP_PORT=80 +HTTPS_PORT=443 +MYSQL_PORT=3306 +NFS_PORT=2049 +CIDR=0.0.0.0/0 + +SECURITY_GROUP_NAME_BALANCER=SG-Balancer +DESCRIPTION_BALANCER="Grupo de seguridad para balanceadores de carga" + +SECURITY_GROUP_NAME_FRONTEND_BALANCER=SG-Frontend-Balancer +DESCRIPTION_FRONTEND_BALANCER="Grupo de seguridad para los frontend con balanceador de carga" + +SECURITY_GROUP_NAME_BACKEND=SG-Backend +DESCRIPTION_BACKEND="Grupo de seguridad para los backend" + +SECURITY_GROUP_NAME_NFS_SERVER=SG-NFS-Server +DESCRIPTION_NFS_SERVER="Grupo de seguridad para los NFS Server" + +IMAGE_ID=ami-0b93ce03dcbcb10f6 +COUNT=1 +INSTANCE_TYPE=t2.small +KEY_NAME=vockey + +INSTANCE_NAME_BALANCER=iaw-practica-09-balancer + +INSTANCE_NAME_FRONTEND_01=iaw-practica-09-frontend-01 + +INSTANCE_NAME_FRONTEND_02=iaw-practica-09-frontend-02 + +INSTANCE_NAME_BACKEND=iaw-practica-09-backend + +INSTANCE_NAME_NFS_SERVER=iaw-practica-09-nfs-server \ No newline at end of file diff --git a/Practica13.1/Ej_04/comands.sh b/Practica13.1/Ej_04/comands.sh new file mode 100755 index 0000000..36debb9 --- /dev/null +++ b/Practica13.1/Ej_04/comands.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +clear + +set -x + +sudo apt-get update + +sudo apt-get upgrade -y + +sudo apt-get install apache2 -y \ No newline at end of file diff --git a/Practica13.1/Ej_04/ecs_user_data.sh b/Practica13.1/Ej_04/ecs_user_data.sh new file mode 100755 index 0000000..966665f --- /dev/null +++ b/Practica13.1/Ej_04/ecs_user_data.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +clear + +set -x + +source variables.sh + +export AWS_PAGER="" + +aws ec2 run-instances \ + --image-id $IMAGE_ID \ + --count $COUNT \ + --instance-type $INSTANCE_TYPE \ + --key-name $KEY_NAME \ + --security-groups $SECURITY_GROUP_DEFAULT \ + --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$INSTANCE_NAME}]" \ + --user-data file://comands.sh diff --git a/Practica13.1/Ej_04/variables.sh b/Practica13.1/Ej_04/variables.sh new file mode 100755 index 0000000..b2de9c6 --- /dev/null +++ b/Practica13.1/Ej_04/variables.sh @@ -0,0 +1,6 @@ +IMAGE_ID=ami-0b93ce03dcbcb10f6 +COUNT=1 +INSTANCE_TYPE=t2.micro +KEY_NAME=vockey +SECURITY_GROUP_DEFAULT=default +INSTANCE_NAME="ejecucion-user-data" \ No newline at end of file diff --git a/Practica13.1/Ej_05/ip.sh b/Practica13.1/Ej_05/ip.sh new file mode 100755 index 0000000..fe2d34b --- /dev/null +++ b/Practica13.1/Ej_05/ip.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +clear + +set -x + +export AWS_PAGER="" + +aws ec2 describe-instances \ + --filters "Name=instance-state-name,Values=running" \ + --query "Reservations[*].Instances[*].[Tags[*].Value, PublicIpAddress]" \ + --output yaml \ No newline at end of file diff --git a/Practica13.1/README.md b/Practica13.1/README.md new file mode 100644 index 0000000..6b46dae --- /dev/null +++ b/Practica13.1/README.md @@ -0,0 +1,22 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 13.1 + + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica13.2/Ej-01/main.yaml b/Practica13.2/Ej-01/main.yaml new file mode 100644 index 0000000..1965b46 --- /dev/null +++ b/Practica13.2/Ej-01/main.yaml @@ -0,0 +1,170 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Parameters: + IdAmi: + Type: String + Default: ami-06878d265978313ca + + Ram4Gb: + Type: String + Default: t2.medium + + Ram8Gb: + Type: String + Default: t2.large + + FrontendInstanceName: + Type: String + Default: iaw-practica-07-frontend + + BackendInstanceName: + Type: String + Default: iaw-practica-07-backend + + KeyFileName: + Type: String + Default: vockey + + FrontendSecurityGroupName: + Type: String + Default: SG_Frontend_No_Balancer_07 + + FrontendSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para la instancia frontend sin balanceador de carga + + BackendSecurityGroupName: + Type: String + Default: SG_Backend_07 + + BackendSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para las instancias backend + + SgIpProtocol: + Type: String + Default: tcp + + SgCidrIp: + Type: String + Default: 0.0.0.0/0 + + SshPort: + Type: String + Default: 22 + + HttpsPort: + Type: String + Default: 443 + + HttpPort: + Type: String + Default: 80 + + SqlPort: + Type: String + Default: 3306 + + +Resources: + FrontendNoBalancerSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: FrontendSecurityGroupName + GroupDescription: + Ref: FrontendSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: HttpsPort + ToPort: + Ref: HttpsPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: HttpPort + ToPort: + Ref: HttpPort + CidrIp: + Ref: SgCidrIp + + + BackendSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: BackendSecurityGroupName + GroupDescription: + Ref: BackendSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SqlPort + ToPort: + Ref: SqlPort + CidrIp: + Ref: SgCidrIp + + + FrontendInstance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram4Gb + SecurityGroups: + - !Ref FrontendNoBalancerSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: FrontendInstanceName + + + BackendInstance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram8Gb + SecurityGroups: + - !Ref BackendSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: BackendInstanceName + + + FrontendElascticIp: + Type: AWS::EC2::EIP + Properties: + InstanceId: !Ref FrontendInstance \ No newline at end of file diff --git a/Practica13.2/Ej-02/main.yaml b/Practica13.2/Ej-02/main.yaml new file mode 100644 index 0000000..d92de81 --- /dev/null +++ b/Practica13.2/Ej-02/main.yaml @@ -0,0 +1,307 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Parameters: + IdAmi: + Type: String + Default: ami-06878d265978313ca + + Ram4Gb: + Type: String + Default: t2.medium + + Ram8Gb: + Type: String + Default: t2.large + + BalancerInstanceName: + Type: String + Default: iaw-practica-09-balancer + + Frontend01InstanceName: + Type: String + Default: iaw-practica-09-frontend-01 + + Frontend02InstanceName: + Type: String + Default: iaw-practica-09-frontend-02 + + BackendInstanceName: + Type: String + Default: iaw-practica-09-backend + + NfsInstanceName: + Type: String + Default: iaw-practica-09-nfs-server + + KeyFileName: + Type: String + Default: vockey + + BalancerSecurityGroupName: + Type: String + Default: SG_Balancer_09 + + BalancerSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para balanceador de carga + + FrontendSecurityGroupName: + Type: String + Default: SG_Frontend_Balancer_09 + + FrontendSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para los frontales con balanceador de carga + + BackendSecurityGroupName: + Type: String + Default: SG_Backend_09 + + BackendSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para las bases de datos + + NfsSecurityGroupName: + Type: String + Default: SG_NFS_09 + + NfsSecurityGroupDescription: + Type: String + Default: Grupo de seguridad para el servidor NFS + + SgIpProtocol: + Type: String + Default: tcp + + SgCidrIp: + Type: String + Default: 0.0.0.0/0 + + SshPort: + Type: String + Default: 22 + + HttpsPort: + Type: String + Default: 443 + + HttpPort: + Type: String + Default: 80 + + SqlPort: + Type: String + Default: 3306 + + NfsPort: + Type: String + Default: 2049 + + +Resources: + BalancerSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: BalancerSecurityGroupName + GroupDescription: + Ref: BalancerSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: HttpsPort + ToPort: + Ref: HttpsPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: HttpPort + ToPort: + Ref: HttpPort + CidrIp: + Ref: SgCidrIp + + + FrontendSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: FrontendSecurityGroupName + GroupDescription: + Ref: FrontendSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: HttpPort + ToPort: + Ref: HttpPort + CidrIp: + Ref: SgCidrIp + + + BackendSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: BackendSecurityGroupName + GroupDescription: + Ref: BackendSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SqlPort + ToPort: + Ref: SqlPort + CidrIp: + Ref: SgCidrIp + + + NfsSecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: + Ref: NfsSecurityGroupName + GroupDescription: + Ref: NfsSecurityGroupDescription + SecurityGroupIngress: + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: SshPort + ToPort: + Ref: SshPort + CidrIp: + Ref: SgCidrIp + + - IpProtocol: + Ref: SgIpProtocol + FromPort: + Ref: NfsPort + ToPort: + Ref: NfsPort + CidrIp: + Ref: SgCidrIp + + + BalancerInstance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram4Gb + SecurityGroups: + - !Ref BalancerSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: BalancerInstanceName + + + Frontend01Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram4Gb + SecurityGroups: + - !Ref FrontendSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: Frontend01InstanceName + + + Frontend02Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram4Gb + SecurityGroups: + - !Ref FrontendSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: Frontend02InstanceName + + + BackendInstance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram8Gb + SecurityGroups: + - !Ref BackendSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: BackendInstanceName + + + NfsInstance: + Type: AWS::EC2::Instance + Properties: + ImageId: + Ref: IdAmi + InstanceType: + Ref: Ram8Gb + SecurityGroups: + - !Ref NfsSecurityGroup + KeyName: + Ref: KeyFileName + Tags: + - Key: Name + Value: + Ref: NfsInstanceName + + + BalancerElasticIp: + Type: AWS::EC2::EIP + Properties: + InstanceId: !Ref BalancerInstance diff --git a/Practica13.2/README.md b/Practica13.2/README.md new file mode 100644 index 0000000..8ec252b --- /dev/null +++ b/Practica13.2/README.md @@ -0,0 +1,75 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 13.2 + +En esta practica vamos a realizar la creacion de la infraestructura necesaria para desplegar la aplicación web propuesta en la práctica 7 y 9. + +Para ellos estamos utilizando las funcionalidades de AWS CloudFormation. + +En ambos despliegues se sigue la siguiente estructura: + +```txt +├── Ej-01 +│   ├── EC2 +│   │   ├── EC2-BackEnd +│   │   │   └── ec2-backend.yaml +│   │   └── EC2-FrontEnd +│   │   └── ec2-frontend.yaml +│   ├── main.yaml +│   ├── SG +│   │   ├── SG-BackEnd +│   │   │   └── sg-backend.yaml +│   │   └── SG-FrontEnd +│   │   └── sg-frontend.yaml +│   └── sg-back-fron.yaml +├── Ej-02 +│   ├── EC2 +│   │   ├── EC2-BackEnd +│   │   │   └── ec2-backend.yaml +│   │   ├── EC2-DataBase +│   │   │   └── ec2-database.yaml +│   │   ├── EC2-FrontEnd +│   │   │   └── ec2-frontend.yaml +│   │   ├── EC2-LoadBalancer +│   │   │   └── ec2-loadbalancer.yaml +│   │   └── EC2-NFS +│   │   └── ec2-nfs.yaml +│   ├── ec2-back-fron-load-bd.yaml +│   ├── SG +│   │   ├── SG-BackEnd +│   │   │   └── sg-backend.yaml +│   │   ├── SG-DataBase +│   │   │   └── sg-database.yaml +│   │   ├── SG-FrontEnd +│   │   │   └── sg-frontend.yaml +│   │   ├── SG-LoadBalancer +│   │   │   └── sg-backend.yaml +│   │   └── SG-NFS +│   │   └── sg-nfs.yaml +└── └── sg-back-fron-load-bd.yaml +``` + +En las carpetas de **EC** econtramos los `.yml` para el despliegue de las infraestructuras donde se desarrolla la version de AWS CloudFormation, amis de las imagenes, descripciones, tipos de instancias y grupos de seguridad. + +En las carpetas de **SG** encontramos los `.yml` para el despliegue de los grupos de seguridad, estos estan orientados a las necesidades descritas en las practicas 7 y 9. + +Por ultimo en el `main.yml`, se llama a todos los `.yml`, para que se puedan desplegar desde un unico archivo. + + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica13.2/aws-cloudformation-playground/README.md b/Practica13.2/aws-cloudformation-playground/README.md new file mode 100644 index 0000000..81106d5 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/README.md @@ -0,0 +1,15 @@ +# aws-cloudformation-playground + +Repositorio para hacer experimentos con AWS CloudFormation. + +- [Ejemplo 01](ejemplo-01/). Creación de una instancia EC2. +- [Ejemplo 02](ejemplo-02/). Creación de un grupo de seguridad y una instancia EC2. +- [Ejemplo 03](ejemplo-03/). Creación de un grupo de seguridad, una instancia EC2 y una IP elástica. La IP elástica se asocia con el recurso `AWS::EC2::EIPAssociation`. +- [Ejemplo 04](ejemplo-04/). Creación de un grupo de seguridad, una instancia EC2 y una IP elástica. La IP elástica se asocia con el recurso `AWS::EC2::EIP`. +- [Ejemplo 05](ejemplo-05/). Plantilla con parámetros para crear una instancia EC2. + +## Plantillas de ejemplo para la región `us-east-1` + +- [Soluciones](https://docs.aws.amazon.com/es_es/AWSCloudFormation/latest/UserGuide/sample-templates-applications-us-east-1.html). +- [Frameworks](https://docs.aws.amazon.com/es_es/AWSCloudFormation/latest/UserGuide/sample-templates-appframeworks-us-east-1.html). +- [Servicios](https://docs.aws.amazon.com/es_es/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-east-1.html). \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-01/README.md b/Practica13.2/aws-cloudformation-playground/ejemplo-01/README.md new file mode 100644 index 0000000..85f6aac --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-01/README.md @@ -0,0 +1,23 @@ +# Ejemplo 1 + +Ejemplo sencillo de creación de una instancia EC2. + +## Crear el _stack_ + +``` +aws cloudformation create-stack \ + --stack-name ejemplo-01 \ + --template-body file://ec2.yaml +``` + +## Comprobar el estado del __stack_ + +``` +aws cloudformation describe-stacks --stack-name ejemplo-01 +``` + +## Eliminar el _stack_ + +``` +aws cloudformation delete-stack --stack-name ejemplo-01 +``` \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-01/ec2.yaml b/Practica13.2/aws-cloudformation-playground/ejemplo-01/ec2.yaml new file mode 100644 index 0000000..598a7de --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-01/ec2.yaml @@ -0,0 +1,12 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: Ejemplo sencillo de creación de una instancia EC2 +Resources: + MyEC2Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: ami-08e637cea2f053dfa + InstanceType: t2.micro + KeyName: vockey + Tags: + - Key: Name + Value: instancia-ejemplo-01 \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-02/README.md b/Practica13.2/aws-cloudformation-playground/ejemplo-02/README.md new file mode 100644 index 0000000..aa68c67 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-02/README.md @@ -0,0 +1,25 @@ +# Ejemplo 2 + +Ejemplo sencillo de creación de un grupo de seguridad y una instancia EC2. + +La plantilla crea un grupo de seguridad con los puertos 22, 80 y 443 abiertos. También crea una instancia EC2 con la AMI de Ubuntu Server 22.04 y le asocia el grupo de seguridad. + +## Crear el _stack_ + +``` +aws cloudformation create-stack \ + --stack-name ejemplo-02 \ + --template-body file://ec2-sg.yaml +``` + +## Comprobar el estado del __stack_ + +``` +aws cloudformation describe-stacks --stack-name ejemplo-02 +``` + +## Eliminar el _stack_ + +``` +aws cloudformation delete-stack --stack-name ejemplo-02 +``` \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-02/ec2-sg.yaml b/Practica13.2/aws-cloudformation-playground/ejemplo-02/ec2-sg.yaml new file mode 100644 index 0000000..83b52d5 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-02/ec2-sg.yaml @@ -0,0 +1,34 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: | + Esta plantilla crea un grupo de seguridad con los puertos 22, 80 y 443 abiertos. + También crea una instancia EC2 con la AMI de Ubuntu Server 22.04 y le asocia el grupo de seguridad. +Resources: + MySecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: sg_ejemplo-02 + GroupDescription: Grupo de seguridad del ejemplo-02 + SecurityGroupIngress: + - IpProtocol: tcp + FromPort: 22 + ToPort: 22 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 80 + ToPort: 80 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 443 + ToPort: 443 + CidrIp: 0.0.0.0/0 + MyEC2Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: ami-06878d265978313ca + InstanceType: t2.small + SecurityGroups: + - !Ref MySecurityGroup + KeyName: vockey + Tags: + - Key: Name + Value: instancia-ejemplo-02 \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-03/README.md b/Practica13.2/aws-cloudformation-playground/ejemplo-03/README.md new file mode 100644 index 0000000..ced836d --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-03/README.md @@ -0,0 +1,23 @@ +# Ejemplo 3 + +Ejemplo sencillo de creación de un grupo de seguridad, una instancia EC2 y una IP elástica. La IP elástica se asocia con el recurso `AWS::EC2::EIPAssociation`. + +## Crear el _stack_ + +``` +aws cloudformation create-stack \ + --stack-name ejemplo-03 \ + --template-body file://ec2-sg-eip.yaml +``` + +## Comprobar el estado del __stack_ + +``` +aws cloudformation describe-stacks --stack-name ejemplo-03 +``` + +## Eliminar el _stack_ + +``` +aws cloudformation delete-stack --stack-name ejemplo-03 +``` \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-03/ec2-sg-eip.yaml b/Practica13.2/aws-cloudformation-playground/ejemplo-03/ec2-sg-eip.yaml new file mode 100644 index 0000000..4b983bb --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-03/ec2-sg-eip.yaml @@ -0,0 +1,43 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: | + Esta plantilla crea un grupo de seguridad con los puertos 22, 80 y 443 abiertos, + crea una instancia EC2 con la AMI de Ubuntu Server 22.04 y le asocia el grupo de seguridad. + También crea una IP elástica y la asocia a la instancia EC2 haciendo uso del recurso AWS::EC2::EIPAssociation. +Resources: + MySecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: sg_ejemplo-03 + GroupDescription: Grupo de seguridad del ejemplo-03 + SecurityGroupIngress: + - IpProtocol: tcp + FromPort: 22 + ToPort: 22 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 80 + ToPort: 80 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 443 + ToPort: 443 + CidrIp: 0.0.0.0/0 + MyEC2Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: ami-06878d265978313ca + InstanceType: t2.small + SecurityGroups: + - !Ref MySecurityGroup + KeyName: vockey + Tags: + - Key: Name + Value: instancia-ejemplo-03 + MyEIP: + Type: AWS::EC2::EIP + MyEIPAssociation: + Type: AWS::EC2::EIPAssociation + DependsOn: MyEIP + Properties: + AllocationId: !GetAtt MyEIP.AllocationId + InstanceId: !Ref MyEC2Instance \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-04/README.md b/Practica13.2/aws-cloudformation-playground/ejemplo-04/README.md new file mode 100644 index 0000000..20312e0 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-04/README.md @@ -0,0 +1,23 @@ +# Ejemplo 4 + +Ejemplo sencillo de creación de un grupo de seguridad, una instancia EC2 y una IP elástica. La IP elástica se asocia con el recurso `AWS::EC2::EIP`. + +## Crear el _stack_ + +``` +aws cloudformation create-stack \ + --stack-name ejemplo-04 \ + --template-body file://ec2-sg-eip.yaml +``` + +## Comprobar el estado del __stack_ + +``` +aws cloudformation describe-stacks --stack-name ejemplo-04 +``` + +## Eliminar el _stack_ + +``` +aws cloudformation delete-stack --stack-name ejemplo-04 +``` \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-04/ec2-sg-eip.yaml b/Practica13.2/aws-cloudformation-playground/ejemplo-04/ec2-sg-eip.yaml new file mode 100644 index 0000000..a29bb63 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-04/ec2-sg-eip.yaml @@ -0,0 +1,39 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: | + Esta plantilla crea un grupo de seguridad con los puertos 22, 80 y 443 abiertos, + crea una instancia EC2 con la AMI de Ubuntu Server 22.04 y le asocia el grupo de seguridad. + También crea una IP elástica y la asocia a la instancia EC2 mediante el recurso AWS::EC2::EIP. +Resources: + MySecurityGroup: + Type: AWS::EC2::SecurityGroup + Properties: + GroupName: sg_ejemplo-04 + GroupDescription: Grupo de seguridad del ejemplo-04 + SecurityGroupIngress: + - IpProtocol: tcp + FromPort: 22 + ToPort: 22 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 80 + ToPort: 80 + CidrIp: 0.0.0.0/0 + - IpProtocol: tcp + FromPort: 443 + ToPort: 443 + CidrIp: 0.0.0.0/0 + MyEC2Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: ami-06878d265978313ca + InstanceType: t2.small + SecurityGroups: + - !Ref MySecurityGroup + KeyName: vockey + Tags: + - Key: Name + Value: instancia-ejemplo-04 + MyEIP: + Type: AWS::EC2::EIP + Properties: + InstanceId: !Ref MyEC2Instance \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-05/README.md b/Practica13.2/aws-cloudformation-playground/ejemplo-05/README.md new file mode 100644 index 0000000..a64987b --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-05/README.md @@ -0,0 +1,26 @@ +# Ejemplo 5 + +Ejemplo sencillo de una plantilla con parámetros para crear una instancia EC2. + +## Crear el _stack_ + +``` +aws cloudformation create-stack \ + --stack-name ejemplo-05 \ + --template-body file://ejemplo-05/ec2.yaml \ + --parameters ParameterKey=KeyName,ParameterValue=vockey \ + ParameterKey=InstanceType,ParameterValue=t2.small \ + ParameterKey=ImageId,ParameterValue=ami-08e637cea2f053dfa +``` + +## Comprobar el estado del __stack_ + +``` +aws cloudformation describe-stacks --stack-name ejemplo-05 +``` + +## Eliminar el _stack_ + +``` +aws cloudformation delete-stack --stack-name ejemplo-05 +``` \ No newline at end of file diff --git a/Practica13.2/aws-cloudformation-playground/ejemplo-05/ec2.yaml b/Practica13.2/aws-cloudformation-playground/ejemplo-05/ec2.yaml new file mode 100644 index 0000000..1576bb8 --- /dev/null +++ b/Practica13.2/aws-cloudformation-playground/ejemplo-05/ec2.yaml @@ -0,0 +1,22 @@ +AWSTemplateFormatVersion: '2010-09-09' +Description: Ejemplo sencillo de creación de una instancia EC2 con parámetros +Parameters: + ImageId: + Type: AWS::EC2::Image::Id + Description: ID de la AMI para la instancia + InstanceType: + Type: String + Description: Tipo de instancia + KeyName: + Type: AWS::EC2::KeyPair::KeyName + Description: Nombre de la clave para la instancia +Resources: + MyEC2Instance: + Type: AWS::EC2::Instance + Properties: + ImageId: !Ref ImageId + InstanceType: !Ref InstanceType + KeyName: !Ref KeyName + Tags: + - Key: Name + Value: instancia-ejemplo-05 diff --git a/Practica13.3/.gitignore b/Practica13.3/.gitignore new file mode 100644 index 0000000..0e5ac79 --- /dev/null +++ b/Practica13.3/.gitignore @@ -0,0 +1,2 @@ +.venv +__pycache__ \ No newline at end of file diff --git a/Practica13.3/Ej-01/aws.py b/Practica13.3/Ej-01/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/Ej-01/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/Ej-01/main.py b/Practica13.3/Ej-01/main.py new file mode 100644 index 0000000..036ecb5 --- /dev/null +++ b/Practica13.3/Ej-01/main.py @@ -0,0 +1,15 @@ +import aws + +# Reglas para el grupo de seguridad +ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 3306, 'ToPort': 3306}] + +# Pedimos por teclado el nombre para el grupo de seguridad +group_name = input("Introduce el nombre del grupo de seguridad: ") + +# Pedimos por teclado una descripcion del grupo de seguridad +description = input("Introduce una descripcion para el grupo de seguridad: ") + +# Creamos el grupo de seguridad +aws.create_security_group(group_name, description, ingress_permissions) diff --git a/Practica13.3/Ej-02/aws.py b/Practica13.3/Ej-02/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/Ej-02/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/Ej-02/main.py b/Practica13.3/Ej-02/main.py new file mode 100644 index 0000000..e85b577 --- /dev/null +++ b/Practica13.3/Ej-02/main.py @@ -0,0 +1,59 @@ +import aws + +# Reglas para el grupo de seguridad +ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 3306, 'ToPort': 3306}] + +# Pedimos por teclado el nombre para el grupo de seguridad +group_name = input("Introduce el nombre del grupo de seguridad: ") + +# Pedimos por teclado una descripcion del grupo de seguridad +description = input("Introduce una descripcion para el grupo de seguridad: ") + +# Creamos el grupo de seguridad +aws.create_security_group(group_name, description, ingress_permissions) + +# Creamos un array con las AMIs de AWS +amis_list = ['ami-06878d265978313ca', 'ami-08e637cea2f053dfa'] + +# Imprimimos en pantalla una pequña lista de opciones para que el usuario sepa que S.O asignar +print('*-*-*-* AMIs Disponibles *-*-*-*') +print('1. Ubuntu Server') +print('2. Red Hat Enterprise Server') + +# Preguntamos por la AMI que desea gurdandola en la variable "opcion" +opcion = int(input("Introduce una AMI (1-2): ")) + +# Creamos un bucle para que el usuario tenga que introducir entre 1 u 2, si no, le vuelve a preguntar por una AMI +while opcion < 1 or opcion > 2: + print("Introduce una AMI entre (1-2)") + opcion = int(input("Introduce una AMI (1-2): ")) + +# Guardamos en la variable "ami_id", la opcion que elija el usuario (Le restamos -1 para que las opciones cuadren con los valores del array.) +ami_id = amis_list[opcion - 1] + +number_of_instances = int(input("Numero de instancias que deseas crear (1-9): ")) + +while number_of_instances <1 or number_of_instances > 9: + print("El minimo de instancias es 1 y el maximo 9") + number_of_instances = int(input("Numero de instancias que deseas crear (1-9): ")) + +instance_type_list = ['t2.micro', 't2.small', 't2.medium'] + +print('*-*-*-* Instancias Disponibles *-*-*-*') +print('1. t2.micro') +print('2. t2.small') +print('3. t2.medium') + +opcion = int(input("Introduce la instancia (1-3): ")) + +while opcion <1 or opcion >3: + print("La instancia introducida no es valida") + opcion = int(input("Introduce la instancia (1-3): ")) + +instance_type = instance_type_list[ opcion - 1] + +instance_name = input("Nombre de tu instancia: ") + +aws.create_instance(ami_id, number_of_instances, instance_type, 'vockey', instance_name, group_name) diff --git a/Practica13.3/Ej-03/aws.py b/Practica13.3/Ej-03/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/Ej-03/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/Ej-03/delete_infra.py b/Practica13.3/Ej-03/delete_infra.py new file mode 100644 index 0000000..8709353 --- /dev/null +++ b/Practica13.3/Ej-03/delete_infra.py @@ -0,0 +1,17 @@ +import aws + +ec2_list = ["EC2-LoadBalancer", "EC2-FrontEnd-01", "EC2-FrontEnd-02", "EC2-BackEnd", "EC2-NFS"] + +sg_list = ["sg_loa", "sg_fro", "sg_bac", "sg_nfs"] + + +for ec2_name in ec2_list: + print(f"Eliminado instancia: {ec2_name}...") + + aws.terminate_instance(ec2_name) + + +for sg_name in sg_list: + print(f"Eliminado grupo de seguridad: {sg_name}...") + + aws.delete_security_group(sg_name) diff --git a/Practica13.3/Ej-03/main.py b/Practica13.3/Ej-03/main.py new file mode 100644 index 0000000..24e2227 --- /dev/null +++ b/Practica13.3/Ej-03/main.py @@ -0,0 +1,47 @@ +import aws + +# Reglas para el grupo de seguridad +loadbalancer_ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 80}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 443, 'ToPort': 443}] + +frontend_ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 80}] + +backend_ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 3306}] + +nfs_ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 2049, 'ToPort': 2049}] + + +ami_id = "ami-06878d265978313ca" +instance_type = "t2.small" +ssh_key = "vockey" + + +# Creamos el grupo de seguridad +aws.create_security_group("sg_loa", "Grupo de seguridad: ", loadbalancer_ingress_permissions) +aws.create_security_group("sg_fro", "Grupo de seguridad: ", frontend_ingress_permissions) +aws.create_security_group("sg_bac", "Grupo de seguridad: ", backend_ingress_permissions) +aws.create_security_group("sg_nfs", "Grupo de seguridad: ", nfs_ingress_permissions) + + +aws.create_instance(ami_id, 1, instance_type, ssh_key, "EC2-LoadBalancer", "sg_loa") +aws.create_instance(ami_id, 1, instance_type, ssh_key, "EC2-FrontEnd-01", "sg_fro") +aws.create_instance(ami_id, 1, instance_type, ssh_key, "EC2-FrontEnd-02", "sg_fro") +aws.create_instance(ami_id, 1, instance_type, ssh_key, "EC2-BackEnd", "sg_bac") +aws.create_instance(ami_id, 1, instance_type, ssh_key, "EC2-NFS", "sg_nfs") + +# Creamos la IP Elastica +elastic_ip = aws.allocate_elastic_ip() + +# Obtenemos el ID del LoadBalancer +id_load_balancer = aws.get_instance_id("EC2-LoadBalancer") + +# Asociamos la IP Elastica al LoadBalancer +aws.associate_elastic_ip(elastic_ip, id_load_balancer) diff --git a/Practica13.3/Ej-04/aws.py b/Practica13.3/Ej-04/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/Ej-04/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/Ej-04/ej_01.yml b/Practica13.3/Ej-04/ej_01.yml new file mode 100644 index 0000000..2fa7500 --- /dev/null +++ b/Practica13.3/Ej-04/ej_01.yml @@ -0,0 +1,43 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: sg_ejemplo_12 + ec2_security_group_description: Grupo de seguridad del ejemplo 12 + ec2_instance_name: instancia_ejemplo_12 + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 443 + to_port: 443 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.3/Ej-04/ej_02.yml b/Practica13.3/Ej-04/ej_02.yml new file mode 100644 index 0000000..0063f14 --- /dev/null +++ b/Practica13.3/Ej-04/ej_02.yml @@ -0,0 +1,56 @@ +--- +- name: Playbook para crear un grupo de seguridad, una instancia EC2 y una IP elástica en AWS + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: sg_ejemplo_13 + ec2_security_group_description: Grupo de seguridad del ejemplo 13 + ec2_instance_name: instancia_ejemplo_13 + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 443 + to_port: 443 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 + + - name: Mostramos el contenido de la variable ec2 + debug: + msg: "ec2: {{ ec2 }}" + + - name: Crear una nueva IP elástica y asociar a la instancia + ec2_eip: + device_id: "{{ ec2.instances[0].instance_id }}" + register: eip + + - name: Mostrar la IP elástica + debug: + msg: "La IP elástica es: {{ eip.public_ip }}" diff --git a/Practica13.3/Ej-04/ej_03.yml b/Practica13.3/Ej-04/ej_03.yml new file mode 100644 index 0000000..b3627e8 --- /dev/null +++ b/Practica13.3/Ej-04/ej_03.yml @@ -0,0 +1,34 @@ +--- +- name: Playbook para eliminar un grupo de seguridad y una instancia EC2 en AWS + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: sg_ejemplo_12 + ec2_instance_name: instancia_ejemplo_12 + + tasks: + + - name: Obtener el id de instancia a partir del nombre + ec2_instance_info: + filters: + "tag:Name": "{{ ec2_instance_name }}" + "instance-state-name": "running" + register: ec2 + + - name: Desasociar de IP elástica de la instancia EC2 + ec2_eip: + device_id: "{{ ec2.instances[0].instance_id }}" + state: absent + + - name: Eliminar la instancia EC2 + ec2_instance: + filters: + "tag:Name": "{{ ec2_instance_name }}" + state: absent + + - name: Eliminar el grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + state: absent diff --git a/Practica13.3/Ej-04/main.py b/Practica13.3/Ej-04/main.py new file mode 100644 index 0000000..632d5e4 --- /dev/null +++ b/Practica13.3/Ej-04/main.py @@ -0,0 +1,30 @@ +import aws + +# Reglas para el grupo de seguridad +ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 80}] + +# Definimos el nombre para el grupo de seguridad +group_name = "backend-sg" + +# Definimos una descripción para el grupo de seguridad +description = "Grupo de seguridad: backend-sg" + +# Creamos el grupo de seguridad +aws.create_security_group(group_name, description, ingress_permissions) + +# Definimos la AMI para el S.O del EC2 +ami_id = "ami-08e637cea2f053dfa" + +# Definimos el número de instancias que crearemos +number_of_instances = 1 + +# Definimos el tipo de instancia que vamos a crear +instance_type = t2.micro + +# Definimos un nombre para la instancia +instance_name = "backend" + +# Finalmente creamos la instancia +aws.create_instance(ami_id, number_of_instances, instance_type, 'vockey', instance_name, group_name) diff --git a/Practica13.3/README.md b/Practica13.3/README.md new file mode 100644 index 0000000..016eaa9 --- /dev/null +++ b/Practica13.3/README.md @@ -0,0 +1,69 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 13.3 + +En esta practica vamos a realizar la creacion de las infraestructuras descritas en los enuncionados de los ejercicios. + +Para ellos estamos utilizando las funcionalidades de aws-python-boto3. + +En ambos despliegues se sigue la siguiente estructura: + +```txt +├── Ej-01 +│   ├── aws.py +│   ├── main.py +│   └── __pycache__ +│   └── aws.cpython-310.pyc +├── Ej-02 +│   ├── aws.py +│   ├── main.py +│   └── __pycache__ +│   └── aws.cpython-310.pyc +├── Ej-03 +│   ├── aws.py +│   ├── delete_infra.py +│   ├── main.py +│   └── __pycache__ +│   └── aws.cpython-310.pyc +├── Ej-04 +│   ├── aws.py +│   ├── ej_01.yml +│   ├── ej_02.yml +│   ├── ej_03.yml +└── └── main.py +``` + +En las carpetas se encuentra un archivo comun (`main.py`), donde se llama a los demas archivos para poder desplegar lso archivos de una forma unica. + +En cada carpera se siguen las siguientes caracteristicas: + +* **Ej-01** Un script de Python para crear un grupo de seguridad con el nombre backend-sg. Añada las siguientes reglas al grupo de seguridad: + * Acceso SSH (puerto 22/TCP) desde cualquier dirección IP. + * Acceso al puerto 3306/TCP desde cualquier dirección IP. +* **Ej-02** Un script de Python para crear una instancia EC2 que tengas las siguientes características. + * Identificador de la AMI: ami-08e637cea2f053dfa. Esta AMI se corresponde con la imagen Red Hat Enterprise Linux 9 (HVM). + * Número de instancias: 1 + * Tipo de instancia: t2.micro + * Clave privada: vockey + * Grupo de seguridad: backend-sg + * Nombre de la instancia: backend +* **Ej-03** Un script para crear la infraestructura de la práctica 9 y un script para eliminar la infraestructura de la práctica 9. +* **Ej-04** Modificacion de los ejemplos 7 y 14 de [este repositorio](https://github.com/josejuansanchez/aws-python-boto3) que utilizan boto3.resource, para añadir una nuevas funcionalidades. Por ejemplo, a la hora de crear una nueva instancia EC2 el programa puede mostrar al usuario una lista de AMIs disponibles y una lista de tipos de instancia. + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica13.3/aws-python-boto3-main/client/client.py b/Practica13.3/aws-python-boto3-main/client/client.py new file mode 100644 index 0000000..fd3c9ad --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/client/client.py @@ -0,0 +1,66 @@ +import boto3 + +""" +List all security groups +""" +def list_security_groups(): + ec2_client = boto3.client('ec2') + response = ec2_client.describe_security_groups() + + for sg in response['SecurityGroups']: + print(f"group_id: {sg.get('GroupId')} \t group_name: {sg.get('GroupName')} \t description: {sg.get('Description')}") + for rule in sg.get('IpPermissions'): + print(rule) + print() + +""" +List EC2 instances +""" +def list_instances(): + client = boto3.client('ec2') + response = client.describe_instances() + + for reservation in response['Reservations']: + for instance in reservation['Instances']: + print(f"InstanceId: {instance['InstanceId']}") + print(f"InstanceType: {instance['InstanceType']}") + print(f"KeyName: {instance['KeyName']}") + print(f"PrivateIpAddress: {instance['PrivateIpAddress']}") + print(f"PublicIpAddress: {instance['PublicIpAddress']}") + print(f"State: {instance['State']}") + print(f"Tags: {instance['Tags']}") + print() + +""" +List AMIs +""" +def list_amis(name, architecture, owner_alias): + client = boto3.client('ec2') + + filters = [ + {'Name': 'name', 'Values': [ name ]}, + {'Name': 'architecture', 'Values': [ architecture ]}, + {'Name': 'owner-alias', 'Values': [ owner_alias ]}] + + response = client.describe_images(Filters=filters) + + for ami in response['Images']: + try: + print(f"ImageId: \t {ami['ImageId']}") + print(f"Architecture: \t {ami['Architecture']}") + print(f"Hypervisor: \t {ami['Hypervisor']}") + print(f"Name: \t\t {ami['Name']}") + print(f"ImageOwnerAlias: {ami['ImageOwnerAlias']}") + print(f"PlatformDetails: {ami['PlatformDetails']}") + print(f"Description: \t {ami['Description']}") + print(f"CreationDate: \t {ami['CreationDate']}") + print() + except KeyError: + print() + pass + +if __name__ == "__main__": + list_security_groups() + list_instances() + list_amis(name="*ubuntu*22.04*", architecture="x86_64", owner_alias="amazon") + #list_amis(name="*debian*", architecture="x86_64", owner_alias="amazon") \ No newline at end of file diff --git a/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/aws.py b/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/main.py b/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/main.py new file mode 100644 index 0000000..66b5f6f --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/resource/ejemplo-01/main.py @@ -0,0 +1,76 @@ +import aws + +def show_menu(): + print('\n-- Security Group --') + print(' 1. Create security group') + print(' 2. Delete security group') + print(' 3. List security groups') + print('-- EC2 Instance --') + print(' 4. Create EC2 instance') + print(' 5. Start EC2 instance') + print(' 6. Stop EC2 instance') + print(' 7. Terminate EC2 instance') + print('-- EC2 Instances --') + print(' 8. List all EC2 instances') + print(' 9. Start all EC2 instances') + print(' 10. Stop all EC2 instances') + print(' 11. Terminate all EC2 instances') + print(' 12. Exit') + +def main(): + # Security group ingress permissions + ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 80}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 443, 'ToPort': 443}] + + # AMI ID + ami = 'ami-08c40ec9ead489470' + + # Instance type + instance_type = 't2.small' + + # SSH key name + key_name = 'vockey' + + option = 0 + while option != 12: + show_menu() + option = int(input('\nSelect an option (1-12): ')) + if option == 1: + name = input('Security group name: ') + description = input('Security group description: ') + aws.create_security_group(name, description, ingress_permissions) + elif option == 2: + name = input('Security group name: ') + aws.delete_security_group(name) + elif option == 3: + aws.list_security_groups() + elif option == 4: + min_count = int(input('Min count: ')) + security_group = input('Security group: ') + aws.create_instance(ami, min_count, instance_type, key_name, security_group) + elif option == 5: + name = input('Instance name: ') + aws.start_instance(name) + elif option == 6: + name = input('Instance name: ') + aws.stop_instance(name) + elif option == 7: + name = input('Instance name: ') + aws.terminate_instance(name) + elif option == 8: + aws.list_instances() + elif option == 9: + aws.start_instances() + elif option == 10: + aws.stop_instances() + elif option == 11: + aws.terminate_instances() + elif option == 12: + print('Bye!') + else: + print('Invalid option') + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/aws.py b/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/aws.py new file mode 100644 index 0000000..a77813b --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/aws.py @@ -0,0 +1,302 @@ +import boto3 +import botocore + +""" +List all VPCs +""" +def list_vpcs(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + print(vpc) + print(f"id: {vpc.id}") + print(f"cidr_block: {vpc.cidr_block}") + print(f"cidr_block_association_set: {vpc.cidr_block_association_set}") + print(f"dhcp_options_id: {vpc.dhcp_options_id}") + print(f"instance_tenancy: {vpc.instance_tenancy}") + print(f"ipv6_cidr_block_association_set: {vpc.ipv6_cidr_block_association_set}") + print(f"is_default: {vpc.is_default}") + print(f"owner_id: {vpc.owner_id}") + print(f"state: {vpc.state}") + print(f"tags: {vpc.tags}") + print(f"vpc_id: {vpc.vpc_id}") + +""" +Returns default VPC id +""" +def get_default_vpc_id(): + ec2 = boto3.resource('ec2') + for vpc in ec2.vpcs.all(): + if vpc.is_default == True: + return vpc.id + +""" +Create a security group +""" +def create_security_group(group_name, description, ingress_permissions): + ec2 = boto3.resource('ec2') + try: + sg = ec2.create_security_group(GroupName=group_name, Description=description) + for p in ingress_permissions: + sg.authorize_ingress(CidrIp=p['CidrIp'], IpProtocol=p['IpProtocol'], FromPort=p['FromPort'], ToPort=p['ToPort']) + print(f"Security group {group_name} created") + except botocore.exceptions.ClientError as error: + print(error) + +""" +List all security groups +""" +def list_security_groups(): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + print(f"group_id: {sg.group_id} \t group_name: {sg.group_name} \t description: {sg.description}") + for rule in sg.ip_permissions: + print(rule) + print() + +""" +Delete a security group +""" +def delete_security_group(group_name): + ec2 = boto3.resource('ec2') + + # Get the security group id from name + group_id = get_security_group_id(group_name) + + # Check if security group exists + if group_id is None: + print('The security group does not exist') + return + + # Delete the security group + try: + sg = ec2.SecurityGroup(group_id) + sg.delete() + print(f'The security group {group_name} has been deleted') + except botocore.exceptions.ClientError as error: + print(error) + +""" +Returns security group id +""" +def get_security_group_id(group_name): + ec2 = boto3.resource('ec2') + for sg in ec2.security_groups.all(): + if sg.group_name == group_name: + return sg.group_id + +""" +List EC2 instances +""" +def list_instances(): + ec2 = boto3.resource('ec2') + print("Instance \t\t State \t\t Name \t\t Private IP \t Public IP") + for i in ec2.instances.all(): + print(f"{i.id} \t {i.state['Name']} \t {i.tags[0]['Value']} \t {i.private_ip_address} \t {i.public_ip_address}") + +""" +Start all EC2 instances +""" +def start_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'stopped': + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Stop all EC2 instances +""" +def stop_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Terminate all EC2 instances +""" +def terminate_instances(): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.state['Name'] == 'running': + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by id +""" +def start_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.start() + print(f"Starting instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Stop an EC2 instance by id +""" +def stop_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + try: + for i in ec2.instances.all(): + if i.id == instance_id: + i.stop() + print(f"Stopping instance: {i.id} \t Name: {i.tags[0]['Value']}") + except botocore.exceptions.ClientError as error: + print(f"ERROR: {error.response['Error']['Code']}. {error.response['Error']['Message']}") + #raise error + +""" +Terminate an EC2 instance by id +""" +def terminate_instance_by_id(instance_id): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.id == instance_id: + i.terminate() + print(f"Terminating instance: {i.id} \t Name: {i.tags[0]['Value']}") + +""" +Start an EC2 instance by name +""" +def start_instance(instance_name): + # Create a boto3 instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Start the instances + for instance in instances_list: + instance.start() + print(f'Instance {instance.id} was started') + else: + print(f'The instance {instance_name} does not exist') + +""" +Stop an EC2 instance by name +""" +def stop_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Stop the instances + for instance in instances_list: + instance.stop() + print(f'Instance {instance.id} was stopped') + else: + print(f'The instance {instance_name} does not exist') + +""" +Terminate an EC2 instance by name +""" +def terminate_instance(instance_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Get the instance using the filter method + instances = ec2.instances.filter(Filters=[{'Name':'tag:Name', 'Values':[instance_name]}]) + + # Store the instances in a list + instances_list = [i for i in instances] + + if instances_list: + # Terminate the instances + for instance in instances_list: + instance.terminate() + print(f'Instance {instance.id} was terminated') + else: + print(f'The instance {instance_name} does not exist') + +""" +Create a new EC2 instance +""" +def create_instance(image_id, max_count, instance_type, key_name, instance_name, security_group_name): + # Create a boto3 resource instance + ec2 = boto3.resource('ec2') + + # Create an EC2 instance + instance = ec2.create_instances( + ImageId = image_id, + MinCount = 1, + MaxCount = max_count, + InstanceType = instance_type, + KeyName = key_name, + SecurityGroups = [ security_group_name ], + TagSpecifications=[{ + 'ResourceType': 'instance', + 'Tags': [{ + 'Key': 'Name', + 'Value': instance_name + }] + }]) + + #print(instance) + print(f'The instance {instance[0].id} has been created') + +""" +Returns instance id +""" +def get_instance_id(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.id + +""" +Returns the public IP of an instance +""" +def get_instance_public_ip(instance_name): + ec2 = boto3.resource('ec2') + for i in ec2.instances.all(): + if i.tags[0]['Value'] == instance_name: + return i.public_ip_address + +""" +Allocate an elastic IP +""" +def allocate_elastic_ip(): + ec2 = boto3.resource('ec2') + response = ec2.meta.client.allocate_address() + print(f"The elastic IP {response['PublicIp']} has been allocated") + return response['PublicIp'] + +""" +Get the allocation id of an elastic IP +""" +def get_allocation_id(public_ip): + ec2 = boto3.resource('ec2') + addresses = ec2.meta.client.describe_addresses(PublicIps=[public_ip]) + if addresses['Addresses']: + return addresses['Addresses'][0]['AllocationId'] + else: + return None + +""" +Associate an elastic IP to an instance +""" +def associate_elastic_ip(public_ip, instance_id): + ec2 = boto3.resource('ec2') + + print('Watting until the instance is running...') + ec2.Instance(instance_id).wait_until_running() + + allocation_id = get_allocation_id(public_ip) + ec2.meta.client.associate_address(AllocationId=allocation_id, InstanceId=instance_id) + print(f"The elastic IP {public_ip} has been associated to the instance {instance_id}") diff --git a/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/main.py b/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/main.py new file mode 100644 index 0000000..6c3e8d3 --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/resource/ejemplo-02/main.py @@ -0,0 +1,79 @@ +from aws import AWS + +def show_menu(): + print('\n-- Security Group --') + print(' 1. Create security group') + print(' 2. Delete security group') + print(' 3. List security groups') + print('-- EC2 Instance --') + print(' 4. Create EC2 instance') + print(' 5. Start EC2 instance') + print(' 6. Stop EC2 instance') + print(' 7. Terminate EC2 instance') + print('-- EC2 Instances --') + print(' 8. List all EC2 instances') + print(' 9. Start all EC2 instances') + print(' 10. Stop all EC2 instances') + print(' 11. Terminate all EC2 instances') + print(' 12. Exit') + +def main(): + # Create an object of the AWS class + aws_object = AWS() + + # Security group ingress permissions + ingress_permissions = [ + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 22, 'ToPort': 22}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 80, 'ToPort': 80}, + {'CidrIp': '0.0.0.0/0', 'IpProtocol': 'tcp', 'FromPort': 443, 'ToPort': 443}] + + # AMI ID + ami = 'ami-08c40ec9ead489470' + + # Instance type + instance_type = 't2.small' + + # SSH key name + key_name = 'vockey' + + option = 0 + while option != 12: + show_menu() + option = int(input('\nSelect an option (1-12): ')) + if option == 1: + name = input('Security group name: ') + description = input('Security group description: ') + aws_object.create_security_group(name, description, ingress_permissions) + elif option == 2: + name = input('Security group name: ') + aws_object.delete_security_group(name) + elif option == 3: + aws_object.list_security_groups() + elif option == 4: + min_count = int(input('Min count: ')) + security_group = input('Security group: ') + aws_object.create_instance(ami, min_count, instance_type, key_name, security_group) + elif option == 5: + name = input('Instance name: ') + aws_object.start_instance(name) + elif option == 6: + name = input('Instance name: ') + aws_object.stop_instance(name) + elif option == 7: + name = input('Instance name: ') + aws_object.terminate_instance(name) + elif option == 8: + aws_object.list_instances() + elif option == 9: + aws_object.start_instances() + elif option == 10: + aws_object.stop_instances() + elif option == 11: + aws_object.terminate_instances() + elif option == 12: + print('Bye!') + else: + print('Invalid option') + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Practica13.3/aws-python-boto3-main/start.sh b/Practica13.3/aws-python-boto3-main/start.sh new file mode 100755 index 0000000..bf7a8d4 --- /dev/null +++ b/Practica13.3/aws-python-boto3-main/start.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -x +python3 -m venv .venv +. .venv/bin/activate +python3 -m pip install boto3 \ No newline at end of file diff --git a/Practica13.4/INFRA-PRAC-07/main.yml b/Practica13.4/INFRA-PRAC-07/main.yml new file mode 100644 index 0000000..bd6a362 --- /dev/null +++ b/Practica13.4/INFRA-PRAC-07/main.yml @@ -0,0 +1,3 @@ +--- + - import_playbook: ./playbooks/ec2_frontend.yml + - import_playbook: ./playbooks/ec2_backend.yml diff --git a/Practica13.4/INFRA-PRAC-07/playbooks/ec2_backend.yml b/Practica13.4/INFRA-PRAC-07/playbooks/ec2_backend.yml new file mode 100644 index 0000000..e99be3e --- /dev/null +++ b/Practica13.4/INFRA-PRAC-07/playbooks/ec2_backend.yml @@ -0,0 +1,38 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para una Base de Datos + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: data_base_ec2 + ec2_security_group_description: Grupo de Base de Datos para EC2 + ec2_instance_name: data_base + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 3306 + to_port: 3306 + cidr_ip: 0.0.0.0/0 + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.4/INFRA-PRAC-07/playbooks/ec2_frontend.yml b/Practica13.4/INFRA-PRAC-07/playbooks/ec2_frontend.yml new file mode 100644 index 0000000..1dfdee5 --- /dev/null +++ b/Practica13.4/INFRA-PRAC-07/playbooks/ec2_frontend.yml @@ -0,0 +1,56 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para FRONTENDED + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: frontend_ec2 + ec2_security_group_description: Grupo de frontend para EC2 + ec2_instance_name: frontend + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 443 + to_port: 443 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 + + - name: Mostramos el contenido de la variable ec2 + debug: + msg: "ec2: {{ ec2 }}" + + - name: Crear una nueva IP elástica y asociar a la instancia + ec2_eip: + device_id: "{{ ec2.instances[0].instance_id }}" + register: eip + + - name: Mostrar la IP elástica + debug: + msg: "La IP elástica es: {{ eip.public_ip }}" diff --git a/Practica13.4/INFRA-PRAC-09/main.yml b/Practica13.4/INFRA-PRAC-09/main.yml new file mode 100644 index 0000000..8f71a3b --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/main.yml @@ -0,0 +1,6 @@ +--- + - import_playbook: ./playbooks/ec2_data.yml + - import_playbook: ./playbooks/ec2_front_01.yml + - import_playbook: ./playbooks/ec2_front_02.yml + - import_playbook: ./playbooks/ec2_load.yml + - import_playbook: ./playbooks/ec2_nfs.yml diff --git a/Practica13.4/INFRA-PRAC-09/playbooks/ec2_data.yml b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_data.yml new file mode 100644 index 0000000..e99be3e --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_data.yml @@ -0,0 +1,38 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para una Base de Datos + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: data_base_ec2 + ec2_security_group_description: Grupo de Base de Datos para EC2 + ec2_instance_name: data_base + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 3306 + to_port: 3306 + cidr_ip: 0.0.0.0/0 + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_01.yml b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_01.yml new file mode 100644 index 0000000..7e2e57d --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_01.yml @@ -0,0 +1,39 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para FRONTEND + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: frontend_ec2 + ec2_security_group_description: Grupo de frontend para EC2 + ec2_instance_name: frontend_01 + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_02.yml b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_02.yml new file mode 100644 index 0000000..402165d --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_front_02.yml @@ -0,0 +1,39 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para FRONTEND + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: frontend_ec2 + ec2_security_group_description: Grupo de frontend para EC2 + ec2_instance_name: frontend_02 + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.4/INFRA-PRAC-09/playbooks/ec2_load.yml b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_load.yml new file mode 100644 index 0000000..4316094 --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_load.yml @@ -0,0 +1,56 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para LOADBALANCER + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: loadbalancer_ec2 + ec2_security_group_description: Grupo de loadbalancer para EC2 + ec2_instance_name: loadbalancer + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 443 + to_port: 443 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 + + - name: Mostramos el contenido de la variable ec2 + debug: + msg: "ec2: {{ ec2 }}" + + - name: Crear una nueva IP elástica y asociar a la instancia + ec2_eip: + device_id: "{{ ec2.instances[0].instance_id }}" + register: eip + + - name: Mostrar la IP elástica + debug: + msg: "La IP elástica es: {{ eip.public_ip }}" diff --git a/Practica13.4/INFRA-PRAC-09/playbooks/ec2_nfs.yml b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_nfs.yml new file mode 100644 index 0000000..526ee53 --- /dev/null +++ b/Practica13.4/INFRA-PRAC-09/playbooks/ec2_nfs.yml @@ -0,0 +1,39 @@ +--- +- name: Playbook para crear un grupo de seguridad y una instancia EC2 en AWS para NFS + hosts: localhost + connection: local + gather_facts: false + + vars: + ec2_security_group: nfs_ec2 + ec2_security_group_description: Grupo de backend para NFS + ec2_instance_name: nfs + ec2_image: ami-06878d265978313ca + ec2_instance_type: t2.small + ec2_key_name: vockey + + tasks: + - name: Crear un grupo de seguridad + ec2_group: + name: "{{ ec2_security_group }}" + description: "{{ ec2_security_group_description }}" + rules: + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 2049 + to_port: 2049 + cidr_ip: 0.0.0.0/0 + register: security_group + + - name: Crear una instancia EC2 + ec2_instance: + name: "{{ ec2_instance_name }}" + key_name: "{{ ec2_key_name }}" + security_group: "{{ ec2_security_group }}" + instance_type: "{{ ec2_instance_type }}" + image_id: "{{ ec2_image }}" + state: running + register: ec2 diff --git a/Practica13.4/README.md b/Practica13.4/README.md new file mode 100644 index 0000000..a220c50 --- /dev/null +++ b/Practica13.4/README.md @@ -0,0 +1,45 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 13.4 + +En esta practica vamos a realizar la creacion de la infraestructura necesaria para desplegar la aplicación web propuesta en la práctica 7 y 9. + +Para ellos estamos utilizando las funcionalidades de Ansible. + +En ambos despliegues se sigue la siguiente estructura: + +```txt +├── INFRA-PRAC-07 +│   ├── main.yml +│   └── playbooks +│   ├── ec2_backend.yml +│   └── ec2_frontend.yml +├── INFRA-PRAC-09 +│   ├── main.yml +│   └── playbooks +│   ├── ec2_data.yml +│   ├── ec2_front_01.yml +│   ├── ec2_front_02.yml +│   ├── ec2_load.yml +└──-----└── ec2_nfs.yml +``` + +En ambos directorios estan los archivos `main.yml`, donde se llaman al resto de archivos para el despliegue. En cada uno es estos archivos se sigue una estructura basica para el despliegue de los servicios necesarios para cada una de la practicas 7 y 9, donde en cada uno tambien se crean los grupos de seguridad necesarios. + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/Practica13.5/INFRA-PRAC-07/main.tf b/Practica13.5/INFRA-PRAC-07/main.tf new file mode 100644 index 0000000..86c9478 --- /dev/null +++ b/Practica13.5/INFRA-PRAC-07/main.tf @@ -0,0 +1,79 @@ +# Configuramos el proveedor de AWS +provider "aws" { + region = var.region +} + +# ----------------------------------------- +# Creamos los grupos de seguridad +resource "aws_security_group" "sg_frontend" { + name = var.sg_name_frontend + description = var.sg_description_frontend +} + +resource "aws_security_group" "sg_backend" { + name = var.sg_name_backend + description = var.sg_description_backend +} + +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos las reglas de entrada del grupo de seguridad. +# Utilizamos un bucle para recorrer la lista de puertos definida como variable +resource "aws_security_group_rule" "ingress" { + security_group_id = aws_security_group.sg_frontend.id + type = "ingress" + + count = length(var.allowed_ingress_ports_frontend) + from_port = var.allowed_ingress_ports_frontend[count.index] + to_port = var.allowed_ingress_ports_frontend[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "ingress2" { + security_group_id = aws_security_group.sg_backend.id + type = "ingress" + + count = length(var.allowed_ingress_ports_backend) + from_port = var.allowed_ingress_ports_backend[count.index] + to_port = var.allowed_ingress_ports_backend[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos las instancias EC2 +resource "aws_instance" "FRONTEND_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_frontend.name] + + tags = { + Name = var.instance_name_frontend + } +} + +resource "aws_instance" "BACKEND_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_backend.name] + + tags = { + Name = var.instance_name_backend + } +} +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos una IP elástica y la asociamos a la instancia +resource "aws_eip" "ip_elastica" { + instance = aws_instance.FRONTEND_01.id +} +# ----------------------------------------- diff --git a/Practica13.5/INFRA-PRAC-07/output.tf b/Practica13.5/INFRA-PRAC-07/output.tf new file mode 100644 index 0000000..41e3f16 --- /dev/null +++ b/Practica13.5/INFRA-PRAC-07/output.tf @@ -0,0 +1,4 @@ +# Mostramos la IP pública de la instancia +output "elastic_ip" { + value = aws_eip.ip_elastica.public_ip +} \ No newline at end of file diff --git a/Practica13.5/INFRA-PRAC-07/variables.tf b/Practica13.5/INFRA-PRAC-07/variables.tf new file mode 100644 index 0000000..7cbf3aa --- /dev/null +++ b/Practica13.5/INFRA-PRAC-07/variables.tf @@ -0,0 +1,101 @@ +variable "region" { + description = "Región de AWS donde se creará la instancia" + type = string + default = "us-east-1" +} + + +# ----------------------------------------- +# Puertos para las dos instancias + +variable "allowed_ingress_ports_frontend" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80, 443] +} + +variable "allowed_ingress_ports_backend" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 3306] +} +# ----------------------------------------- + + +# ----------------------------------------- +# Nombre para las dos instancias y descripcion + +variable "sg_name_frontend" { + description = "Grupo de seguridad FRONTEND" + type = string + default = "sg_frontend" +} + +variable "sg_description_frontend" { + description = "Descripcion del grupo de seguridad FRONTEND" + type = string + default = "Grupo de seguridad para la instancia FRONTEND" +} + +variable "sg_name_backend" { + description = "Grupo de seguridad BACKEND" + type = string + default = "sg_backend" +} + +variable "sg_description_backend" { + description = "Descripcion del grupo de seguridad BACKEND" + type = string + default = "Grupo de seguridad para la instancia BACKEND" +} +# ----------------------------------------- + + +# ----------------------------------------- +# AMIs para las instancias + +variable "ami_id" { + description = "Identificador de la AMI" + type = string + default = "ami-00874d747dde814fa" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Tipos de instancias + +variable "instance_type" { + description = "Tipo de instancia" + type = string + default = "t2.small" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Clave publica + +variable "key_name" { + description = "Nombre de la clave pública" + type = string + default = "vockey" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Nombres de las instancias + +variable "instance_name_frontend" { + description = "Nombre de la instancia FRONTEND" + type = string + default = "FRONTEND_01" +} + +variable "instance_name_backend" { + description = "Nombre de la instancia BACKEND" + type = string + default = "BACKEND_01" +} +# ----------------------------------------- diff --git a/Practica13.5/INFRA-PRAC-09/main.tf b/Practica13.5/INFRA-PRAC-09/main.tf new file mode 100644 index 0000000..4696c32 --- /dev/null +++ b/Practica13.5/INFRA-PRAC-09/main.tf @@ -0,0 +1,143 @@ +# Configuramos el proveedor de AWS +provider "aws" { + region = var.region +} + +# ----------------------------------------- +# Creamos los grupos de seguridad +resource "aws_security_group" "sg_frontend" { + name = var.sg_name_frontend + description = var.sg_description_frontend +} + +resource "aws_security_group" "sg_backend" { + name = var.sg_name_backend + description = var.sg_description_backend +} + +resource "aws_security_group" "sg_loadbalancer" { + name = var.sg_name_loadbalancer + description = var.sg_description_loadbalancer +} + +resource "aws_security_group" "sg_nfs" { + name = var.sg_name_nfs + description = var.sg_description_nfs +} +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos las reglas de entrada del grupo de seguridad. +# Utilizamos un bucle para recorrer la lista de puertos definida como variable +resource "aws_security_group_rule" "ingress" { + security_group_id = aws_security_group.sg_frontend.id + type = "ingress" + + count = length(var.allowed_ingress_ports_frontend) + from_port = var.alloweallowed_ingress_ports_frontendd_ingress_ports[count.index] + to_port = var.allowed_ingallowed_ingress_ports_frontendress_ports[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "ingress2" { + security_group_id = aws_security_group.sg_backend.id + type = "ingress" + + count = length(var.allowed_ingress_ports_backend) + from_port = var.allowed_ingress_ports_backend[count.index] + to_port = var.allowed_ingress_ports_backend[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "ingress3" { + security_group_id = aws_security_group.sg_loadbalancer.id + type = "ingress" + + count = length(var.allowed_ingress_ports_loadbalancer) + from_port = var.allowed_ingress_ports_loadbalancer[count.index] + to_port = var.allowed_ingress_ports_loadbalancer[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} + +resource "aws_security_group_rule" "ingress4" { + security_group_id = aws_security_group.sg_nfs.id + type = "ingress" + + count = length(var.allowed_ingress_ports_nfs) + from_port = var.allowed_ingress_ports_nfs[count.index] + to_port = var.allowed_ingress_ports_nfs[count.index] + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] +} +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos las instancias EC2 +resource "aws_instance" "FRONTEND_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_frontend.name] + + tags = { + Name = var.instance_name_frontend_01 + } +} + +resource "aws_instance" "FRONTEND_02" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_backend.name] + + tags = { + Name = var.instance_name_frontend_02 + } +} + +resource "aws_instance" "BACKEND_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_frontend.name] + + tags = { + Name = var.instance_name_backend + } +} + +resource "aws_instance" "LOADBALANCER_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_loadbalancer.name] + + tags = { + Name = var.instance_name_loadbalancer + } +} + +resource "aws_instance" "NFS_01" { + ami = var.ami_id + instance_type = var.instance_type + key_name = var.key_name + security_groups = [aws_security_group.sg_nfs.name] + + tags = { + Name = var.instance_name_nfs + } +} +# ----------------------------------------- + + +# ----------------------------------------- +# Creamos una IP elástica y la asociamos a la instancia +resource "aws_eip" "ip_elastica" { + instance = aws_instance.LOADBALANCER_01.id +} +# ----------------------------------------- diff --git a/Practica13.5/INFRA-PRAC-09/output.tf b/Practica13.5/INFRA-PRAC-09/output.tf new file mode 100644 index 0000000..41e3f16 --- /dev/null +++ b/Practica13.5/INFRA-PRAC-09/output.tf @@ -0,0 +1,4 @@ +# Mostramos la IP pública de la instancia +output "elastic_ip" { + value = aws_eip.ip_elastica.public_ip +} \ No newline at end of file diff --git a/Practica13.5/INFRA-PRAC-09/variables.tf b/Practica13.5/INFRA-PRAC-09/variables.tf new file mode 100644 index 0000000..675fce1 --- /dev/null +++ b/Practica13.5/INFRA-PRAC-09/variables.tf @@ -0,0 +1,155 @@ +variable "region" { + description = "Región de AWS donde se creará la instancia" + type = string + default = "us-east-1" +} + + +# ----------------------------------------- +# Puertos para las cinco instancias + +variable "allowed_ingress_ports_frontend" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80] +} + +variable "allowed_ingress_ports_backend" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 3306] +} + +variable "allowed_ingress_ports_loadbalancer" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 80, 443] +} + +variable "allowed_ingress_ports_nfs" { + description = "Puertos de entrada del grupo de seguridad" + type = list(number) + default = [22, 2049] +} +# ----------------------------------------- + + +# ----------------------------------------- +# Nombre para las dos instancias y descripcion + +variable "sg_name_frontend" { + description = "Grupo de seguridad FRONTEND" + type = string + default = "sg_frontend" +} + +variable "sg_description_frontend" { + description = "Descripcion del grupo de seguridad FRONTEND" + type = string + default = "Grupo de seguridad para la instancia FRONTEND" +} + +variable "sg_name_backend" { + description = "Grupo de seguridad BACKEND" + type = string + default = "sg_backend" +} + +variable "sg_description_backend" { + description = "Descripcion del grupo de seguridad BACKEND" + type = string + default = "Grupo de seguridad para la instancia BACKEND" +} + +variable "sg_name_loadbalancer" { + description = "Grupo de seguridad LOADBALANCER" + type = string + default = "sg_loadbalancer" +} + +variable "sg_description_loadbalancer" { + description = "Descripcion del grupo de seguridad LOADBALANCER" + type = string + default = "Grupo de seguridad para la instancia LOADBALANCER" +} + +variable "sg_name_nfs" { + description = "Grupo de seguridad NFS" + type = string + default = "sg_nfs" +} + +variable "sg_description_nfs" { + description = "Descripcion del grupo de seguridad NFS" + type = string + default = "Grupo de seguridad para la instancia NFS" +} +# ----------------------------------------- + + +# ----------------------------------------- +# AMIs para las instancias + +variable "ami_id" { + description = "Identificador de la AMI" + type = string + default = "ami-00874d747dde814fa" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Tipos de instancias + +variable "instance_type" { + description = "Tipo de instancia" + type = string + default = "t2.small" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Clave publica + +variable "key_name" { + description = "Nombre de la clave pública" + type = string + default = "vockey" +} +# ----------------------------------------- + + +# ----------------------------------------- +# Nombres de las instancias + +variable "instance_name_frontend_01" { + description = "Nombre de la instancia FRONTEND_01" + type = string + default = "FRONTEND_01" +} + +variable "instance_name_frontend_02" { + description = "Nombre de la instancia FRONTEND_02" + type = string + default = "FRONTEND_02" +} + +variable "instance_name_backend" { + description = "Nombre de la instancia BACKEND" + type = string + default = "BACKEND_01" +} + +variable "instance_name_loadbalancer" { + description = "Nombre de la instancia LOADBALANCER" + type = string + default = "LOADBALANCER_01" +} + +variable "instance_name_nfs" { + description = "Nombre de la instancia NFS" + type = string + default = "NFS_01" +} +# ----------------------------------------- diff --git a/Practica13.5/README.md b/Practica13.5/README.md new file mode 100644 index 0000000..bb5f891 --- /dev/null +++ b/Practica13.5/README.md @@ -0,0 +1,42 @@ +![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) + + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre - PRACTICA 13.5 + + +En esta practica vamos a realizar la creacion de la infraestructura necesaria para desplegar la aplicación web propuesta en la práctica 7 y 9. + +Para ellos estamos utilizando las funcionalidades de Tarraform. + +En ambos despliegues se sigue la siguiente estructura: + +```txt +├── INFRA-PRAC-07 +│   ├── main.tf +│   ├── output.tf +│   └── variables.tf +├── INFRA-PRAC-09 +│   ├── main.tf +│   ├── output.tf +│   └── variables.tf +└── README.md +``` + +En ambos directorios estan los archivos `main.tf`, donde se llaman al resto de archivos para el despliegue. En cada uno es estos archivos se sigue una estructura basica para el despliegue de los servicios necesarios para cada una de la practicas 7 y 9, donde en cada uno tambien se crean los grupos de seguridad necesarios. + +## Ramas + +- [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) + +- [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + + +## Descarga + +```bash + git clone https://github.com/alejandroalsa/IAW.git +``` + +## Desarrollador + +- [@alejandroalsa](https://www.github.com/alejandroalsa) diff --git a/README.md b/README.md index 3f88b77..4637d3e 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,26 @@ ![LOGO](https://user-images.githubusercontent.com/67869168/221359506-18643ddb-b786-4f64-8ada-f6e0b25f744d.svg) -# PRACTICAS IAW - 2023 + +# PRACTICAS IAW - 2023 - IAW 2º Trimestre Este repositorio tiene como objetivo la agrupación de todas las prácticas del módulo de IAW (Implantación de Aplicaciones Web), del CFGS. + + ## Documentación La documentación de tolas las prácticas se encuentran en las carpetas correspondientes a cada práctica, allí podrán encontrar los README, con las explicaciones y acciones de cada parte del código. [Documentation](https://linktodocumentation) + ## Ramas - [IAW 1º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-1%C2%BA-Trimestre) - [IAW 2º Trimestre](https://github.com/alejandroalsa/IAW/tree/IAW-2%C2%BA-Trimestre) + ## Descarga ```bash